2222 {"sectionBreak" : {"sectionStyle" : {}}},
2323 {
2424 "paragraph" : {
25- "elements" : [{"textRun" : {"content" : "Hello world\n " , "textStyle" : {}}}],
25+ "elements" : [
26+ {"textRun" : {"content" : "Hello world\n " , "textStyle" : {}}}
27+ ],
2628 "paragraphStyle" : {"namedStyleType" : "NORMAL_TEXT" },
2729 }
2830 },
3234 {"textRun" : {"content" : "This is " , "textStyle" : {}}},
3335 {"textRun" : {"content" : "bold" , "textStyle" : {"bold" : True }}},
3436 {"textRun" : {"content" : " and " , "textStyle" : {}}},
35- {"textRun" : {"content" : "italic" , "textStyle" : {"italic" : True }}},
37+ {
38+ "textRun" : {
39+ "content" : "italic" ,
40+ "textStyle" : {"italic" : True },
41+ }
42+ },
3643 {"textRun" : {"content" : " text.\n " , "textStyle" : {}}},
3744 ],
3845 "paragraphStyle" : {"namedStyleType" : "NORMAL_TEXT" },
5562 },
5663 {
5764 "paragraph" : {
58- "elements" : [{"textRun" : {"content" : "Heading one\n " , "textStyle" : {}}}],
65+ "elements" : [
66+ {"textRun" : {"content" : "Heading one\n " , "textStyle" : {}}}
67+ ],
5968 "paragraphStyle" : {"namedStyleType" : "HEADING_1" },
6069 }
6170 },
6271 {
6372 "paragraph" : {
64- "elements" : [{"textRun" : {"content" : "Heading two\n " , "textStyle" : {}}}],
73+ "elements" : [
74+ {"textRun" : {"content" : "Heading two\n " , "textStyle" : {}}}
75+ ],
6576 "paragraphStyle" : {"namedStyleType" : "HEADING_2" },
6677 }
6778 },
8192 "tableRows" : [
8293 {
8394 "tableCells" : [
84- {"content" : [{"paragraph" : {"elements" : [{"textRun" : {"content" : "Name\n " , "textStyle" : {}}}], "paragraphStyle" : {"namedStyleType" : "NORMAL_TEXT" }}}]},
85- {"content" : [{"paragraph" : {"elements" : [{"textRun" : {"content" : "Age\n " , "textStyle" : {}}}], "paragraphStyle" : {"namedStyleType" : "NORMAL_TEXT" }}}]},
95+ {
96+ "content" : [
97+ {
98+ "paragraph" : {
99+ "elements" : [
100+ {
101+ "textRun" : {
102+ "content" : "Name\n " ,
103+ "textStyle" : {},
104+ }
105+ }
106+ ],
107+ "paragraphStyle" : {
108+ "namedStyleType" : "NORMAL_TEXT"
109+ },
110+ }
111+ }
112+ ]
113+ },
114+ {
115+ "content" : [
116+ {
117+ "paragraph" : {
118+ "elements" : [
119+ {
120+ "textRun" : {
121+ "content" : "Age\n " ,
122+ "textStyle" : {},
123+ }
124+ }
125+ ],
126+ "paragraphStyle" : {
127+ "namedStyleType" : "NORMAL_TEXT"
128+ },
129+ }
130+ }
131+ ]
132+ },
86133 ]
87134 },
88135 {
89136 "tableCells" : [
90- {"content" : [{"paragraph" : {"elements" : [{"textRun" : {"content" : "Alice\n " , "textStyle" : {}}}], "paragraphStyle" : {"namedStyleType" : "NORMAL_TEXT" }}}]},
91- {"content" : [{"paragraph" : {"elements" : [{"textRun" : {"content" : "30\n " , "textStyle" : {}}}], "paragraphStyle" : {"namedStyleType" : "NORMAL_TEXT" }}}]},
137+ {
138+ "content" : [
139+ {
140+ "paragraph" : {
141+ "elements" : [
142+ {
143+ "textRun" : {
144+ "content" : "Alice\n " ,
145+ "textStyle" : {},
146+ }
147+ }
148+ ],
149+ "paragraphStyle" : {
150+ "namedStyleType" : "NORMAL_TEXT"
151+ },
152+ }
153+ }
154+ ]
155+ },
156+ {
157+ "content" : [
158+ {
159+ "paragraph" : {
160+ "elements" : [
161+ {
162+ "textRun" : {
163+ "content" : "30\n " ,
164+ "textStyle" : {},
165+ }
166+ }
167+ ],
168+ "paragraphStyle" : {
169+ "namedStyleType" : "NORMAL_TEXT"
170+ },
171+ }
172+ }
173+ ]
174+ },
92175 ]
93176 },
94177 ],
114197 {"sectionBreak" : {"sectionStyle" : {}}},
115198 {
116199 "paragraph" : {
117- "elements" : [{"textRun" : {"content" : "Item one\n " , "textStyle" : {}}}],
200+ "elements" : [
201+ {"textRun" : {"content" : "Item one\n " , "textStyle" : {}}}
202+ ],
118203 "paragraphStyle" : {"namedStyleType" : "NORMAL_TEXT" },
119204 "bullet" : {"listId" : "kix.list001" , "nestingLevel" : 0 },
120205 }
121206 },
122207 {
123208 "paragraph" : {
124- "elements" : [{"textRun" : {"content" : "Item two\n " , "textStyle" : {}}}],
209+ "elements" : [
210+ {"textRun" : {"content" : "Item two\n " , "textStyle" : {}}}
211+ ],
125212 "paragraphStyle" : {"namedStyleType" : "NORMAL_TEXT" },
126213 "bullet" : {"listId" : "kix.list001" , "nestingLevel" : 0 },
127214 }
@@ -196,8 +283,18 @@ class TestParseComments:
196283 def test_filters_resolved (self ):
197284 response = {
198285 "comments" : [
199- {"content" : "open" , "resolved" : False , "author" : {"displayName" : "A" }, "replies" : []},
200- {"content" : "closed" , "resolved" : True , "author" : {"displayName" : "B" }, "replies" : []},
286+ {
287+ "content" : "open" ,
288+ "resolved" : False ,
289+ "author" : {"displayName" : "A" },
290+ "replies" : [],
291+ },
292+ {
293+ "content" : "closed" ,
294+ "resolved" : True ,
295+ "author" : {"displayName" : "B" },
296+ "replies" : [],
297+ },
201298 ]
202299 }
203300 result = parse_drive_comments (response , include_resolved = False )
@@ -207,8 +304,18 @@ def test_filters_resolved(self):
207304 def test_includes_resolved (self ):
208305 response = {
209306 "comments" : [
210- {"content" : "open" , "resolved" : False , "author" : {"displayName" : "A" }, "replies" : []},
211- {"content" : "closed" , "resolved" : True , "author" : {"displayName" : "B" }, "replies" : []},
307+ {
308+ "content" : "open" ,
309+ "resolved" : False ,
310+ "author" : {"displayName" : "A" },
311+ "replies" : [],
312+ },
313+ {
314+ "content" : "closed" ,
315+ "resolved" : True ,
316+ "author" : {"displayName" : "B" },
317+ "replies" : [],
318+ },
212319 ]
213320 }
214321 result = parse_drive_comments (response , include_resolved = True )
@@ -237,7 +344,13 @@ class TestInlineComments:
237344 def test_inserts_footnote (self ):
238345 md = "Some text here."
239346 comments = [
240- {"author" : "Alice" , "content" : "Note." , "anchor_text" : "text" , "replies" : [], "resolved" : False }
347+ {
348+ "author" : "Alice" ,
349+ "content" : "Note." ,
350+ "anchor_text" : "text" ,
351+ "replies" : [],
352+ "resolved" : False ,
353+ }
241354 ]
242355 result = format_comments_inline (md , comments )
243356 assert "text[^c1]" in result
@@ -246,7 +359,13 @@ def test_inserts_footnote(self):
246359 def test_unmatched_goes_to_appendix (self ):
247360 md = "No match."
248361 comments = [
249- {"author" : "Alice" , "content" : "Note." , "anchor_text" : "missing" , "replies" : [], "resolved" : False }
362+ {
363+ "author" : "Alice" ,
364+ "content" : "Note." ,
365+ "anchor_text" : "missing" ,
366+ "replies" : [],
367+ "resolved" : False ,
368+ }
250369 ]
251370 result = format_comments_inline (md , comments )
252371 assert "## Comments" in result
@@ -256,7 +375,13 @@ def test_unmatched_goes_to_appendix(self):
256375class TestAppendixComments :
257376 def test_structure (self ):
258377 comments = [
259- {"author" : "Alice" , "content" : "Note." , "anchor_text" : "some text" , "replies" : [], "resolved" : False }
378+ {
379+ "author" : "Alice" ,
380+ "content" : "Note." ,
381+ "anchor_text" : "some text" ,
382+ "replies" : [],
383+ "resolved" : False ,
384+ }
260385 ]
261386 result = format_comments_appendix (comments )
262387 assert "## Comments" in result
0 commit comments