notionary 0.2.27__py3-none-any.whl → 0.3.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (395) hide show
  1. notionary/__init__.py +5 -20
  2. notionary/blocks/__init__.py +4 -4
  3. notionary/blocks/client.py +90 -216
  4. notionary/blocks/enums.py +167 -0
  5. notionary/blocks/rich_text/markdown_rich_text_converter.py +280 -0
  6. notionary/blocks/rich_text/models.py +178 -0
  7. notionary/blocks/rich_text/name_id_resolver/__init__.py +13 -0
  8. notionary/blocks/rich_text/name_id_resolver/data_source.py +32 -0
  9. notionary/blocks/rich_text/name_id_resolver/database.py +31 -0
  10. notionary/blocks/rich_text/name_id_resolver/page.py +34 -0
  11. notionary/blocks/rich_text/name_id_resolver/person.py +37 -0
  12. notionary/blocks/rich_text/name_id_resolver/port.py +11 -0
  13. notionary/blocks/rich_text/rich_text_markdown_converter.py +144 -0
  14. notionary/blocks/rich_text/rich_text_patterns.py +42 -0
  15. notionary/blocks/schemas.py +778 -0
  16. notionary/comments/__init__.py +1 -22
  17. notionary/comments/client.py +52 -187
  18. notionary/comments/factory.py +38 -0
  19. notionary/comments/models.py +5 -127
  20. notionary/comments/schemas.py +240 -0
  21. notionary/comments/service.py +34 -0
  22. notionary/data_source/http/client.py +11 -0
  23. notionary/data_source/http/data_source_instance_client.py +104 -0
  24. notionary/data_source/properties/schemas.py +402 -0
  25. notionary/data_source/query/builder.py +448 -0
  26. notionary/data_source/query/resolver.py +114 -0
  27. notionary/data_source/query/schema.py +302 -0
  28. notionary/data_source/query/validator.py +73 -0
  29. notionary/data_source/schema/registry.py +104 -0
  30. notionary/data_source/schema/service.py +136 -0
  31. notionary/data_source/schemas.py +27 -0
  32. notionary/data_source/service.py +377 -0
  33. notionary/database/client.py +30 -135
  34. notionary/database/database_metadata_update_client.py +19 -0
  35. notionary/database/schemas.py +29 -0
  36. notionary/database/service.py +168 -0
  37. notionary/exceptions/__init__.py +33 -0
  38. notionary/exceptions/api.py +41 -0
  39. notionary/exceptions/base.py +2 -0
  40. notionary/exceptions/block_parsing.py +16 -0
  41. notionary/exceptions/data_source/__init__.py +6 -0
  42. notionary/exceptions/data_source/builder.py +182 -0
  43. notionary/exceptions/data_source/properties.py +34 -0
  44. notionary/exceptions/properties.py +58 -0
  45. notionary/exceptions/search.py +57 -0
  46. notionary/file_upload/client.py +18 -30
  47. notionary/file_upload/models.py +7 -8
  48. notionary/file_upload/{notion_file_upload.py → service.py} +29 -64
  49. notionary/http/client.py +204 -0
  50. notionary/http/models.py +50 -0
  51. notionary/page/blocks/client.py +1 -0
  52. notionary/page/content/factory.py +73 -0
  53. notionary/page/content/markdown/__init__.py +5 -0
  54. notionary/page/content/markdown/builder.py +226 -0
  55. notionary/page/content/markdown/nodes/__init__.py +52 -0
  56. notionary/page/content/markdown/nodes/audio.py +23 -0
  57. notionary/page/content/markdown/nodes/base.py +12 -0
  58. notionary/page/content/markdown/nodes/bookmark.py +25 -0
  59. notionary/page/content/markdown/nodes/breadcrumb.py +14 -0
  60. notionary/page/content/markdown/nodes/bulleted_list.py +41 -0
  61. notionary/page/content/markdown/nodes/callout.py +34 -0
  62. notionary/page/content/markdown/nodes/code.py +28 -0
  63. notionary/page/content/markdown/nodes/columns.py +69 -0
  64. notionary/page/content/markdown/nodes/container.py +64 -0
  65. notionary/page/content/markdown/nodes/divider.py +14 -0
  66. notionary/page/content/markdown/nodes/embed.py +23 -0
  67. notionary/page/content/markdown/nodes/equation.py +19 -0
  68. notionary/page/content/markdown/nodes/file.py +23 -0
  69. notionary/page/content/markdown/nodes/heading.py +36 -0
  70. notionary/page/content/markdown/nodes/image.py +23 -0
  71. notionary/page/content/markdown/nodes/mixins/__init__.py +5 -0
  72. notionary/page/content/markdown/nodes/mixins/caption.py +12 -0
  73. notionary/page/content/markdown/nodes/numbered_list.py +38 -0
  74. notionary/page/content/markdown/nodes/paragraph.py +14 -0
  75. notionary/page/content/markdown/nodes/pdf.py +23 -0
  76. notionary/page/content/markdown/nodes/quote.py +27 -0
  77. notionary/page/content/markdown/nodes/space.py +14 -0
  78. notionary/page/content/markdown/nodes/table.py +45 -0
  79. notionary/page/content/markdown/nodes/table_of_contents.py +14 -0
  80. notionary/page/content/markdown/nodes/todo.py +38 -0
  81. notionary/page/content/markdown/nodes/toggle.py +27 -0
  82. notionary/page/content/markdown/nodes/video.py +23 -0
  83. notionary/page/content/parser/context.py +126 -0
  84. notionary/page/content/parser/factory.py +210 -0
  85. notionary/page/content/parser/parsers/__init__.py +58 -0
  86. notionary/page/content/parser/parsers/audio.py +40 -0
  87. notionary/page/content/parser/parsers/base.py +30 -0
  88. notionary/page/content/parser/parsers/bookmark.py +33 -0
  89. notionary/page/content/parser/parsers/breadcrumb.py +33 -0
  90. notionary/page/content/parser/parsers/bulleted_list.py +85 -0
  91. notionary/page/content/parser/parsers/callout.py +100 -0
  92. notionary/page/content/parser/parsers/caption.py +55 -0
  93. notionary/page/content/parser/parsers/code.py +81 -0
  94. notionary/page/content/parser/parsers/column.py +76 -0
  95. notionary/page/content/parser/parsers/column_list.py +81 -0
  96. notionary/page/content/parser/parsers/divider.py +33 -0
  97. notionary/page/content/parser/parsers/embed.py +33 -0
  98. notionary/page/content/parser/parsers/equation.py +65 -0
  99. notionary/page/content/parser/parsers/file.py +42 -0
  100. notionary/page/content/parser/parsers/heading.py +115 -0
  101. notionary/page/content/parser/parsers/image.py +42 -0
  102. notionary/page/content/parser/parsers/numbered_list.py +89 -0
  103. notionary/page/content/parser/parsers/paragraph.py +37 -0
  104. notionary/page/content/parser/parsers/pdf.py +42 -0
  105. notionary/page/content/parser/parsers/quote.py +125 -0
  106. notionary/page/content/parser/parsers/space.py +41 -0
  107. notionary/page/content/parser/parsers/table.py +144 -0
  108. notionary/page/content/parser/parsers/table_of_contents.py +32 -0
  109. notionary/page/content/parser/parsers/todo.py +96 -0
  110. notionary/page/content/parser/parsers/toggle.py +70 -0
  111. notionary/page/content/parser/parsers/video.py +42 -0
  112. notionary/page/content/parser/post_processing/handlers/__init__.py +5 -0
  113. notionary/page/content/parser/post_processing/handlers/rich_text_length.py +95 -0
  114. notionary/page/content/parser/post_processing/handlers/rich_text_length_truncation.py +114 -0
  115. notionary/page/content/parser/post_processing/port.py +9 -0
  116. notionary/page/content/parser/post_processing/service.py +16 -0
  117. notionary/page/content/parser/pre_processsing/handlers/__init__.py +11 -0
  118. notionary/page/content/parser/pre_processsing/handlers/column_syntax.py +130 -0
  119. notionary/page/content/parser/pre_processsing/handlers/indentation.py +84 -0
  120. notionary/page/content/parser/pre_processsing/handlers/port.py +7 -0
  121. notionary/page/content/parser/pre_processsing/handlers/whitespace.py +73 -0
  122. notionary/page/content/parser/pre_processsing/service.py +15 -0
  123. notionary/page/content/parser/service.py +78 -0
  124. notionary/page/content/renderer/context.py +51 -0
  125. notionary/page/content/renderer/factory.py +231 -0
  126. notionary/page/content/renderer/post_processing/handlers/__init__.py +5 -0
  127. notionary/page/content/renderer/post_processing/handlers/numbered_list.py +156 -0
  128. notionary/page/content/renderer/post_processing/port.py +7 -0
  129. notionary/page/content/renderer/post_processing/service.py +15 -0
  130. notionary/page/content/renderer/renderers/__init__.py +55 -0
  131. notionary/page/content/renderer/renderers/audio.py +31 -0
  132. notionary/page/content/renderer/renderers/base.py +31 -0
  133. notionary/page/content/renderer/renderers/bookmark.py +25 -0
  134. notionary/page/content/renderer/renderers/breadcrumb.py +21 -0
  135. notionary/page/content/renderer/renderers/bulleted_list.py +48 -0
  136. notionary/page/content/renderer/renderers/callout.py +50 -0
  137. notionary/page/content/renderer/renderers/captioned_block.py +58 -0
  138. notionary/page/content/renderer/renderers/code.py +34 -0
  139. notionary/page/content/renderer/renderers/column.py +53 -0
  140. notionary/page/content/renderer/renderers/column_list.py +44 -0
  141. notionary/page/content/renderer/renderers/divider.py +22 -0
  142. notionary/page/content/renderer/renderers/embed.py +25 -0
  143. notionary/page/content/renderer/renderers/equation.py +37 -0
  144. notionary/page/content/renderer/renderers/fallback.py +24 -0
  145. notionary/page/content/renderer/renderers/file.py +40 -0
  146. notionary/page/content/renderer/renderers/heading.py +95 -0
  147. notionary/page/content/renderer/renderers/image.py +31 -0
  148. notionary/page/content/renderer/renderers/numbered_list.py +42 -0
  149. notionary/page/content/renderer/renderers/paragraph.py +40 -0
  150. notionary/page/content/renderer/renderers/pdf.py +31 -0
  151. notionary/page/content/renderer/renderers/quote.py +49 -0
  152. notionary/page/content/renderer/renderers/table.py +115 -0
  153. notionary/page/content/renderer/renderers/table_of_contents.py +26 -0
  154. notionary/page/content/renderer/renderers/table_row.py +17 -0
  155. notionary/page/content/renderer/renderers/todo.py +56 -0
  156. notionary/page/content/renderer/renderers/toggle.py +52 -0
  157. notionary/page/content/renderer/renderers/video.py +31 -0
  158. notionary/page/content/renderer/service.py +50 -0
  159. notionary/page/content/service.py +68 -0
  160. notionary/page/content/syntax/__init__.py +4 -0
  161. notionary/page/content/syntax/grammar.py +10 -0
  162. notionary/page/content/syntax/models.py +66 -0
  163. notionary/page/content/syntax/registry.py +393 -0
  164. notionary/page/page_context.py +7 -16
  165. notionary/page/page_http_client.py +15 -0
  166. notionary/page/page_metadata_update_client.py +19 -0
  167. notionary/page/properties/client.py +144 -0
  168. notionary/page/properties/factory.py +26 -0
  169. notionary/page/properties/models.py +308 -0
  170. notionary/page/properties/service.py +261 -0
  171. notionary/page/schemas.py +13 -0
  172. notionary/page/service.py +225 -0
  173. notionary/shared/entity/client.py +29 -0
  174. notionary/shared/entity/dto_parsers.py +53 -0
  175. notionary/shared/entity/entity_metadata_update_client.py +41 -0
  176. notionary/shared/entity/schemas.py +45 -0
  177. notionary/shared/entity/service.py +171 -0
  178. notionary/shared/models/cover.py +20 -0
  179. notionary/shared/models/file.py +21 -0
  180. notionary/shared/models/icon.py +28 -0
  181. notionary/shared/models/parent.py +41 -0
  182. notionary/shared/properties/type.py +30 -0
  183. notionary/shared/typings.py +3 -0
  184. notionary/user/__init__.py +4 -8
  185. notionary/user/base.py +138 -0
  186. notionary/user/bot.py +70 -0
  187. notionary/user/client.py +22 -111
  188. notionary/user/person.py +41 -0
  189. notionary/user/schemas.py +67 -0
  190. notionary/user/service.py +65 -0
  191. notionary/utils/date.py +51 -0
  192. notionary/utils/decorators.py +122 -0
  193. notionary/utils/fuzzy.py +68 -0
  194. notionary/utils/mixins/logging.py +58 -0
  195. notionary/utils/pagination.py +100 -0
  196. notionary/utils/uuid_utils.py +20 -0
  197. notionary/workspace/__init__.py +4 -0
  198. notionary/workspace/client.py +62 -0
  199. notionary/workspace/query/__init__.py +3 -0
  200. notionary/workspace/query/builder.py +60 -0
  201. notionary/workspace/query/models.py +61 -0
  202. notionary/workspace/query/service.py +100 -0
  203. notionary/workspace/schemas.py +21 -0
  204. notionary/workspace/service.py +116 -0
  205. notionary-0.3.0.dist-info/METADATA +201 -0
  206. notionary-0.3.0.dist-info/RECORD +209 -0
  207. {notionary-0.2.27.dist-info → notionary-0.3.0.dist-info}/WHEEL +1 -1
  208. {notionary-0.2.27.dist-info → notionary-0.3.0.dist-info/licenses}/LICENSE +9 -9
  209. notionary/base_notion_client.py +0 -219
  210. notionary/blocks/_bootstrap.py +0 -271
  211. notionary/blocks/audio/__init__.py +0 -11
  212. notionary/blocks/audio/audio_element.py +0 -158
  213. notionary/blocks/audio/audio_markdown_node.py +0 -24
  214. notionary/blocks/audio/audio_models.py +0 -10
  215. notionary/blocks/base_block_element.py +0 -42
  216. notionary/blocks/bookmark/__init__.py +0 -12
  217. notionary/blocks/bookmark/bookmark_element.py +0 -83
  218. notionary/blocks/bookmark/bookmark_markdown_node.py +0 -28
  219. notionary/blocks/bookmark/bookmark_models.py +0 -15
  220. notionary/blocks/breadcrumbs/__init__.py +0 -15
  221. notionary/blocks/breadcrumbs/breadcrumb_element.py +0 -39
  222. notionary/blocks/breadcrumbs/breadcrumb_markdown_node.py +0 -13
  223. notionary/blocks/breadcrumbs/breadcrumb_models.py +0 -12
  224. notionary/blocks/bulleted_list/__init__.py +0 -15
  225. notionary/blocks/bulleted_list/bulleted_list_element.py +0 -74
  226. notionary/blocks/bulleted_list/bulleted_list_markdown_node.py +0 -20
  227. notionary/blocks/bulleted_list/bulleted_list_models.py +0 -17
  228. notionary/blocks/callout/__init__.py +0 -12
  229. notionary/blocks/callout/callout_element.py +0 -99
  230. notionary/blocks/callout/callout_markdown_node.py +0 -19
  231. notionary/blocks/callout/callout_models.py +0 -33
  232. notionary/blocks/child_database/__init__.py +0 -14
  233. notionary/blocks/child_database/child_database_element.py +0 -59
  234. notionary/blocks/child_database/child_database_models.py +0 -12
  235. notionary/blocks/child_page/__init__.py +0 -9
  236. notionary/blocks/child_page/child_page_element.py +0 -94
  237. notionary/blocks/child_page/child_page_models.py +0 -12
  238. notionary/blocks/code/__init__.py +0 -11
  239. notionary/blocks/code/code_element.py +0 -149
  240. notionary/blocks/code/code_markdown_node.py +0 -80
  241. notionary/blocks/code/code_models.py +0 -94
  242. notionary/blocks/column/__init__.py +0 -25
  243. notionary/blocks/column/column_element.py +0 -65
  244. notionary/blocks/column/column_list_element.py +0 -52
  245. notionary/blocks/column/column_list_markdown_node.py +0 -34
  246. notionary/blocks/column/column_markdown_node.py +0 -42
  247. notionary/blocks/column/column_models.py +0 -26
  248. notionary/blocks/divider/__init__.py +0 -12
  249. notionary/blocks/divider/divider_element.py +0 -41
  250. notionary/blocks/divider/divider_markdown_node.py +0 -11
  251. notionary/blocks/divider/divider_models.py +0 -12
  252. notionary/blocks/embed/__init__.py +0 -12
  253. notionary/blocks/embed/embed_element.py +0 -98
  254. notionary/blocks/embed/embed_markdown_node.py +0 -19
  255. notionary/blocks/embed/embed_models.py +0 -14
  256. notionary/blocks/equation/__init__.py +0 -13
  257. notionary/blocks/equation/equation_element.py +0 -133
  258. notionary/blocks/equation/equation_element_markdown_node.py +0 -23
  259. notionary/blocks/equation/equation_models.py +0 -11
  260. notionary/blocks/file/__init__.py +0 -23
  261. notionary/blocks/file/file_element.py +0 -133
  262. notionary/blocks/file/file_element_markdown_node.py +0 -24
  263. notionary/blocks/file/file_element_models.py +0 -39
  264. notionary/blocks/heading/__init__.py +0 -19
  265. notionary/blocks/heading/heading_element.py +0 -112
  266. notionary/blocks/heading/heading_markdown_node.py +0 -16
  267. notionary/blocks/heading/heading_models.py +0 -29
  268. notionary/blocks/image_block/__init__.py +0 -11
  269. notionary/blocks/image_block/image_element.py +0 -130
  270. notionary/blocks/image_block/image_markdown_node.py +0 -25
  271. notionary/blocks/image_block/image_models.py +0 -10
  272. notionary/blocks/markdown/markdown_builder.py +0 -525
  273. notionary/blocks/markdown/markdown_document_model.py +0 -0
  274. notionary/blocks/markdown/markdown_node.py +0 -25
  275. notionary/blocks/mixins/captions/__init__.py +0 -4
  276. notionary/blocks/mixins/captions/caption_markdown_node_mixin.py +0 -31
  277. notionary/blocks/mixins/captions/caption_mixin.py +0 -92
  278. notionary/blocks/mixins/file_upload/__init__.py +0 -3
  279. notionary/blocks/mixins/file_upload/file_upload_mixin.py +0 -320
  280. notionary/blocks/models.py +0 -174
  281. notionary/blocks/numbered_list/__init__.py +0 -16
  282. notionary/blocks/numbered_list/numbered_list_element.py +0 -65
  283. notionary/blocks/numbered_list/numbered_list_markdown_node.py +0 -17
  284. notionary/blocks/numbered_list/numbered_list_models.py +0 -17
  285. notionary/blocks/paragraph/__init__.py +0 -15
  286. notionary/blocks/paragraph/paragraph_element.py +0 -58
  287. notionary/blocks/paragraph/paragraph_markdown_node.py +0 -16
  288. notionary/blocks/paragraph/paragraph_models.py +0 -16
  289. notionary/blocks/pdf/__init__.py +0 -11
  290. notionary/blocks/pdf/pdf_element.py +0 -146
  291. notionary/blocks/pdf/pdf_markdown_node.py +0 -24
  292. notionary/blocks/pdf/pdf_models.py +0 -11
  293. notionary/blocks/quote/__init__.py +0 -14
  294. notionary/blocks/quote/quote_element.py +0 -75
  295. notionary/blocks/quote/quote_markdown_node.py +0 -16
  296. notionary/blocks/quote/quote_models.py +0 -18
  297. notionary/blocks/registry/__init__.py +0 -3
  298. notionary/blocks/registry/block_registry.py +0 -150
  299. notionary/blocks/rich_text/__init__.py +0 -33
  300. notionary/blocks/rich_text/rich_text_models.py +0 -221
  301. notionary/blocks/rich_text/text_inline_formatter.py +0 -456
  302. notionary/blocks/syntax_prompt_builder.py +0 -137
  303. notionary/blocks/table/__init__.py +0 -19
  304. notionary/blocks/table/table_element.py +0 -225
  305. notionary/blocks/table/table_markdown_node.py +0 -42
  306. notionary/blocks/table/table_models.py +0 -28
  307. notionary/blocks/table_of_contents/__init__.py +0 -17
  308. notionary/blocks/table_of_contents/table_of_contents_element.py +0 -80
  309. notionary/blocks/table_of_contents/table_of_contents_markdown_node.py +0 -21
  310. notionary/blocks/table_of_contents/table_of_contents_models.py +0 -18
  311. notionary/blocks/todo/__init__.py +0 -12
  312. notionary/blocks/todo/todo_element.py +0 -81
  313. notionary/blocks/todo/todo_markdown_node.py +0 -21
  314. notionary/blocks/todo/todo_models.py +0 -18
  315. notionary/blocks/toggle/__init__.py +0 -12
  316. notionary/blocks/toggle/toggle_element.py +0 -112
  317. notionary/blocks/toggle/toggle_markdown_node.py +0 -31
  318. notionary/blocks/toggle/toggle_models.py +0 -17
  319. notionary/blocks/toggleable_heading/__init__.py +0 -11
  320. notionary/blocks/toggleable_heading/toggleable_heading_element.py +0 -115
  321. notionary/blocks/toggleable_heading/toggleable_heading_markdown_node.py +0 -34
  322. notionary/blocks/types.py +0 -130
  323. notionary/blocks/video/__init__.py +0 -11
  324. notionary/blocks/video/video_element.py +0 -187
  325. notionary/blocks/video/video_element_models.py +0 -10
  326. notionary/blocks/video/video_markdown_node.py +0 -26
  327. notionary/database/__init__.py +0 -4
  328. notionary/database/database.py +0 -480
  329. notionary/database/database_filter_builder.py +0 -173
  330. notionary/database/database_provider.py +0 -227
  331. notionary/database/exceptions.py +0 -13
  332. notionary/database/models.py +0 -337
  333. notionary/database/notion_database.py +0 -487
  334. notionary/file_upload/__init__.py +0 -7
  335. notionary/page/client.py +0 -124
  336. notionary/page/markdown_whitespace_processor.py +0 -129
  337. notionary/page/models.py +0 -322
  338. notionary/page/notion_page.py +0 -712
  339. notionary/page/page_content_deleting_service.py +0 -117
  340. notionary/page/page_content_writer.py +0 -80
  341. notionary/page/property_formatter.py +0 -99
  342. notionary/page/reader/handler/__init__.py +0 -19
  343. notionary/page/reader/handler/base_block_renderer.py +0 -44
  344. notionary/page/reader/handler/block_processing_context.py +0 -35
  345. notionary/page/reader/handler/block_rendering_context.py +0 -48
  346. notionary/page/reader/handler/column_list_renderer.py +0 -51
  347. notionary/page/reader/handler/column_renderer.py +0 -60
  348. notionary/page/reader/handler/equation_renderer.py +0 -0
  349. notionary/page/reader/handler/line_renderer.py +0 -73
  350. notionary/page/reader/handler/numbered_list_renderer.py +0 -85
  351. notionary/page/reader/handler/toggle_renderer.py +0 -69
  352. notionary/page/reader/handler/toggleable_heading_renderer.py +0 -89
  353. notionary/page/reader/page_content_retriever.py +0 -81
  354. notionary/page/search_filter_builder.py +0 -132
  355. notionary/page/utils.py +0 -60
  356. notionary/page/writer/handler/__init__.py +0 -24
  357. notionary/page/writer/handler/code_handler.py +0 -72
  358. notionary/page/writer/handler/column_handler.py +0 -141
  359. notionary/page/writer/handler/column_list_handler.py +0 -139
  360. notionary/page/writer/handler/equation_handler.py +0 -74
  361. notionary/page/writer/handler/line_handler.py +0 -35
  362. notionary/page/writer/handler/line_processing_context.py +0 -54
  363. notionary/page/writer/handler/regular_line_handler.py +0 -86
  364. notionary/page/writer/handler/table_handler.py +0 -66
  365. notionary/page/writer/handler/toggle_handler.py +0 -159
  366. notionary/page/writer/handler/toggleable_heading_handler.py +0 -174
  367. notionary/page/writer/markdown_to_notion_converter.py +0 -139
  368. notionary/page/writer/markdown_to_notion_converter_context.py +0 -30
  369. notionary/page/writer/markdown_to_notion_text_length_post_processor.py +0 -0
  370. notionary/page/writer/notion_text_length_processor.py +0 -150
  371. notionary/schemas/__init__.py +0 -3
  372. notionary/schemas/base.py +0 -73
  373. notionary/shared/__init__.py +0 -3
  374. notionary/shared/name_to_id_resolver.py +0 -203
  375. notionary/telemetry/__init__.py +0 -19
  376. notionary/telemetry/service.py +0 -136
  377. notionary/telemetry/views.py +0 -73
  378. notionary/user/base_notion_user.py +0 -53
  379. notionary/user/models.py +0 -84
  380. notionary/user/notion_bot_user.py +0 -226
  381. notionary/user/notion_user.py +0 -255
  382. notionary/user/notion_user_manager.py +0 -101
  383. notionary/util/__init__.py +0 -15
  384. notionary/util/concurrency_limiter.py +0 -0
  385. notionary/util/factory_decorator.py +0 -0
  386. notionary/util/factory_only.py +0 -37
  387. notionary/util/fuzzy.py +0 -75
  388. notionary/util/logging_mixin.py +0 -59
  389. notionary/util/page_id_utils.py +0 -27
  390. notionary/util/singleton.py +0 -18
  391. notionary/util/singleton_metaclass.py +0 -22
  392. notionary/workspace.py +0 -105
  393. notionary-0.2.27.dist-info/METADATA +0 -270
  394. notionary-0.2.27.dist-info/RECORD +0 -202
  395. /notionary/{database → user}/factory.py +0 -0
@@ -0,0 +1,116 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import AsyncIterator, Callable
4
+ from typing import TYPE_CHECKING, Self
5
+
6
+ from notionary.user.service import UserService
7
+ from notionary.workspace.query.builder import WorkspaceQueryConfigBuilder
8
+ from notionary.workspace.query.models import WorkspaceQueryConfig, WorkspaceQueryObjectType
9
+ from notionary.workspace.query.service import WorkspaceQueryService
10
+
11
+ if TYPE_CHECKING:
12
+ from notionary.data_source.service import NotionDataSource
13
+ from notionary.page.service import NotionPage
14
+ from notionary.user import BotUser, PersonUser
15
+
16
+ type _QueryConfigInput = WorkspaceQueryConfig | Callable[[WorkspaceQueryConfigBuilder], WorkspaceQueryConfigBuilder]
17
+
18
+
19
+ class NotionWorkspace:
20
+ def __init__(
21
+ self,
22
+ name: str | None = None,
23
+ query_service: WorkspaceQueryService | None = None,
24
+ user_service: UserService | None = None,
25
+ ) -> None:
26
+ self._name = name
27
+ self._query_service = query_service or WorkspaceQueryService()
28
+ self._user_service = user_service or UserService()
29
+
30
+ @classmethod
31
+ async def from_current_integration(cls) -> Self:
32
+ from notionary.user import BotUser
33
+
34
+ bot_user = await BotUser.from_current_integration()
35
+
36
+ return cls(name=bot_user.workspace_name)
37
+
38
+ @property
39
+ def name(self) -> str:
40
+ return self._name
41
+
42
+ async def get_pages(
43
+ self,
44
+ config: _QueryConfigInput | None = None,
45
+ ) -> list[NotionPage]:
46
+ query_config = self._resolve_config(config, default_object_type_to_query=WorkspaceQueryObjectType.PAGE)
47
+ return await self._query_service.get_pages(query_config)
48
+
49
+ async def get_pages_stream(
50
+ self,
51
+ config: _QueryConfigInput | None = None,
52
+ ) -> AsyncIterator[NotionPage]:
53
+ query_config = self._resolve_config(config, default_object_type_to_query=WorkspaceQueryObjectType.PAGE)
54
+ async for page in self._query_service.get_pages_stream(query_config):
55
+ yield page
56
+
57
+ async def get_data_sources(
58
+ self,
59
+ config: _QueryConfigInput | None = None,
60
+ ) -> list[NotionDataSource]:
61
+ query_config = self._resolve_config(config, default_object_type_to_query=WorkspaceQueryObjectType.DATA_SOURCE)
62
+ return await self._query_service.get_data_sources(query_config)
63
+
64
+ async def get_data_sources_stream(
65
+ self,
66
+ config: _QueryConfigInput | None = None,
67
+ ) -> AsyncIterator[NotionDataSource]:
68
+ query_config = self._resolve_config(config, default_object_type_to_query=WorkspaceQueryObjectType.DATA_SOURCE)
69
+ async for data_source in self._query_service.get_data_sources_stream(query_config):
70
+ yield data_source
71
+
72
+ def _resolve_config(
73
+ self,
74
+ config: _QueryConfigInput | None,
75
+ default_object_type_to_query: WorkspaceQueryObjectType,
76
+ ) -> WorkspaceQueryConfig:
77
+ if isinstance(config, WorkspaceQueryConfig):
78
+ return config
79
+
80
+ builder = self._create_builder_with_defaults(default_object_type_to_query)
81
+
82
+ if callable(config):
83
+ config(builder)
84
+
85
+ return builder.build()
86
+
87
+ def _create_builder_with_defaults(self, object_type: WorkspaceQueryObjectType) -> WorkspaceQueryConfigBuilder:
88
+ builder = WorkspaceQueryConfigBuilder()
89
+
90
+ if object_type == WorkspaceQueryObjectType.PAGE:
91
+ builder.with_pages_only()
92
+ else:
93
+ builder.with_data_sources_only()
94
+
95
+ return builder
96
+
97
+ async def get_users(self) -> list[PersonUser]:
98
+ return [user async for user in self._user_service.list_users_stream()]
99
+
100
+ async def get_users_stream(self) -> AsyncIterator[PersonUser]:
101
+ async for user in self._user_service.list_users_stream():
102
+ yield user
103
+
104
+ async def get_bot_users(self) -> list[BotUser]:
105
+ return [user async for user in self._user_service.list_bot_users_stream()]
106
+
107
+ async def get_bot_users_stream(self) -> AsyncIterator[BotUser]:
108
+ async for user in self._user_service.list_bot_users_stream():
109
+ yield user
110
+
111
+ async def search_users(self, query: str) -> list[PersonUser]:
112
+ return [user async for user in self._user_service.search_users_stream(query)]
113
+
114
+ async def search_users_stream(self, query: str) -> AsyncIterator[PersonUser]:
115
+ async for user in self._user_service.search_users_stream(query):
116
+ yield user
@@ -0,0 +1,201 @@
1
+ Metadata-Version: 2.4
2
+ Name: notionary
3
+ Version: 0.3.0
4
+ Summary: Python library for programmatic Notion workspace management - databases, pages, and content with advanced Markdown support
5
+ Project-URL: Homepage, https://github.com/mathisarends/notionary
6
+ Author-email: Mathis Arends <mathisarends27@gmail.com>
7
+ License: MIT
8
+ License-File: LICENSE
9
+ Requires-Python: >=3.11
10
+ Requires-Dist: aiofiles<25.0.0,>=24.1.0
11
+ Requires-Dist: httpx>=0.28.0
12
+ Requires-Dist: pydantic>=2.11.4
13
+ Requires-Dist: python-dotenv<2.0.0,>=1.0.1
14
+ Description-Content-Type: text/markdown
15
+
16
+ <picture>
17
+ <source media="(prefers-color-scheme: dark)" srcset="./static/notionary-dark.png">
18
+ <source media="(prefers-color-scheme: light)" srcset="./static/notionary-light.png">
19
+ <img alt="Notionary logo: dark mode shows a white logo, light mode shows a black logo." src="./static/browser-use.png" width="full">
20
+ </picture>
21
+
22
+ <h1 align="center">The Modern Notion API for Python & AI Agents</h1>
23
+
24
+ <div align="center">
25
+
26
+ [![Python Version](https://img.shields.io/badge/python-3.8%2B-blue.svg)](https://www.python.org/downloads/)
27
+ [![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
28
+ [![Documentation](https://img.shields.io/badge/docs-mathisarends.github.io-blue.svg)](https://mathisarends.github.io/notionary/)
29
+
30
+ **Transform complex Notion API interactions into simple, Pythonic code.**
31
+ Perfect for developers building AI agents, automation workflows, and dynamic content systems.
32
+
33
+ </div>
34
+
35
+ ---
36
+
37
+ ## Why Notionary?
38
+
39
+ - **AI-Native Design** - Built specifically for AI agents with schema-driven markdown syntax
40
+ - **Smart Discovery** - Find pages and databases by name with fuzzy matching—no more hunting for IDs
41
+ - **Extended Markdown** - Rich syntax for toggles, columns, callouts, and media uploads
42
+ - **Async-First** - Modern Python with full async/await support and high performance
43
+ - **Round-Trip** - Read existing content, modify it, and write it back while preserving formatting
44
+ - **Complete Coverage** - Every Notion block type supported with type safety
45
+
46
+ ---
47
+
48
+ ## Installation
49
+
50
+ ```bash
51
+ pip install notionary
52
+ ```
53
+
54
+ Set up your [Notion integration](https://www.notion.so/profile/integrations) and configure your token:
55
+
56
+ ```bash
57
+ export NOTION_SECRET=your_integration_key
58
+ ```
59
+
60
+ ---
61
+
62
+ ## See It in Action
63
+
64
+ https://github.com/user-attachments/assets/da8b4691-bee4-4b0f-801e-dccacb630398
65
+
66
+ _Create rich database entries with properties, content, and beautiful formatting_
67
+
68
+ ---
69
+
70
+ ## Quick Start
71
+
72
+ ### Find → Create → Update Flow
73
+
74
+ ```python
75
+ from notionary import NotionPage
76
+
77
+ # Find pages by name with fuzzy matching
78
+ page = await NotionPage.from_title("Meeting Notes")
79
+
80
+ # Define rich content with extended markdown
81
+ content = """
82
+ ## Action Items
83
+ - [x] Review proposal
84
+ - [ ] Schedule meeting
85
+
86
+ [callout](Key decision made! "💡")
87
+
88
+ | Task | Owner | Deadline |
89
+ |------|-------|----------|
90
+ | Design Review | Alice | 2024-03-15 |
91
+ | Implementation | Bob | 2024-03-22 |
92
+
93
+ +++ Budget Details
94
+ See attached spreadsheet...
95
+ +++
96
+ """
97
+
98
+ await page.append_markdown(content)
99
+ ```
100
+
101
+ ### Complete Block Support
102
+
103
+ Every Notion block type with extended syntax:
104
+
105
+ | Block Type | Markdown Syntax | Use Case |
106
+ | ------------- | -------------------------------------------- | ---------------------------- |
107
+ | **Toggles** | `+++ Title\nContent\n+++` | Collapsible sections |
108
+ | **Columns** | `::: columns\n::: column\nContent\n:::\n:::` | Side-by-side layouts |
109
+ | **Tables** | Standard markdown tables | Structured data |
110
+ | **Media** | `[video](./file.mp4)(caption:Description)` | Auto-uploading files |
111
+ | **Code** | Standard code fences with captions | Code snippets |
112
+ | **Equations** | `$LaTeX$` | Mathematical expressions |
113
+ | **TOC** | `[toc]` | Auto-generated navigation |
114
+
115
+ ---
116
+
117
+ ## Key Features
118
+
119
+ <table>
120
+ <tr>
121
+ <td width="50%">
122
+
123
+ ### Smart Discovery
124
+
125
+ - Find pages/databases by name
126
+ - Fuzzy matching for approximate searches
127
+ - No more hunting for IDs or URLs
128
+
129
+ ### Extended Markdown
130
+
131
+ - Rich syntax beyond standard markdown
132
+ - Callouts, toggles, columns, media uploads
133
+ - Schema provided for AI agent integration
134
+
135
+ ### Modern Python
136
+
137
+ - Full async/await support
138
+ - Type hints throughout
139
+ - High-performance batch operations
140
+
141
+ </td>
142
+ <td width="50%">
143
+
144
+ ### Round-Trip Editing
145
+
146
+ - Read existing content as markdown
147
+ - Edit and modify preserving formatting
148
+ - Write back to Notion seamlessly
149
+
150
+ ### AI-Ready Architecture
151
+
152
+ - Schema-driven syntax for LLM prompts
153
+ - Perfect for AI content generation
154
+ - Handles complex nested structures
155
+
156
+ ### Complete Coverage
157
+
158
+ - Every Notion block type supported
159
+ - File uploads with automatic handling
160
+ - Database operations and properties
161
+
162
+ </td>
163
+ </tr>
164
+ </table>
165
+
166
+ ---
167
+
168
+ ## Examples & Documentation
169
+
170
+ ### Full Documentation
171
+
172
+ [**mathisarends.github.io/notionary**](https://mathisarends.github.io/notionary/) - Complete API reference, guides, and tutorials
173
+
174
+ ---
175
+
176
+ ## Contributing
177
+
178
+ We welcome contributions from the community! Whether you're:
179
+
180
+ - **Fixing bugs** - Help improve stability and reliability
181
+ - **Adding features** - Extend functionality for new use cases
182
+ - **Improving docs** - Make the library more accessible
183
+ - **Sharing examples** - Show creative applications and patterns
184
+
185
+ Check our [**Contributing Guide**](https://mathisarends.github.io/notionary/contributing/) to get started.
186
+
187
+ ---
188
+
189
+ <div align="center">
190
+
191
+ **Ready to revolutionize your Notion workflows?**
192
+
193
+ [📖 **Read the Docs**](https://mathisarends.github.io/notionary/) • [🚀 **Getting Started**](https://mathisarends.github.io/notionary/get-started/) • [💻 **Browse Examples**](examples/)
194
+
195
+ _Built with ❤️ for Python developers and AI agents_
196
+
197
+ ---
198
+
199
+ **Transform complex Notion API interactions into simple, powerful code.**
200
+
201
+ </div>
@@ -0,0 +1,209 @@
1
+ notionary/__init__.py,sha256=YzkqPfuFc4pBBVARb7oPrmARZJfddgcZYTT2XTmQL44,358
2
+ notionary/blocks/__init__.py,sha256=LsVUgSsDYlLy-bwLqnukcr4uB8ZcCLMz3fGd4HsNXDY,99
3
+ notionary/blocks/client.py,sha256=zYy_eFz6NKFGqsESDddiUUZZfV6ybWWyzseThZEdIvI,5551
4
+ notionary/blocks/enums.py,sha256=RT2XCC4pTzBLqARtDgt3sQFcdv3Sq7flJWwjCMHqeJU,4165
5
+ notionary/blocks/schemas.py,sha256=7ZB4jbNzoKraa8O6yLLXeQXGskisUAzbOm1qHUYosNo,21413
6
+ notionary/blocks/rich_text/markdown_rich_text_converter.py,sha256=kZyCwKgv4BMTswmIPTyDVrLs4OQ9JQn9O-Qb0rxea1k,11642
7
+ notionary/blocks/rich_text/models.py,sha256=0aNsB_gpFiqBXAATL4yVMyOy4-zbN0WKB3rEaFQeTKs,4863
8
+ notionary/blocks/rich_text/rich_text_markdown_converter.py,sha256=oKqh8vK5JTehiYC-y0m4bfRSkt5bq1gTpWZib7NIvoo,5512
9
+ notionary/blocks/rich_text/rich_text_patterns.py,sha256=nC2WosgLh_RhaEckVkSi-xUNJl14bKO2u2ImuOcufso,1703
10
+ notionary/blocks/rich_text/name_id_resolver/__init__.py,sha256=1WZprWsEpL-gWnZrSn7-DqhHUz0r_8OiOcyHi1P4i1g,372
11
+ notionary/blocks/rich_text/name_id_resolver/data_source.py,sha256=IQo-njsuyUENm05ccroU_EbmqExn8Kc3TQ2SsiLkop8,1269
12
+ notionary/blocks/rich_text/name_id_resolver/database.py,sha256=xrCnBUYfZJfDw9bSwUroWbqzK4N1P8eduBfKVug_KXg,1073
13
+ notionary/blocks/rich_text/name_id_resolver/page.py,sha256=DfjXyBLdkYl5UfoU2UGSllsRUM5XFp30H_OJwJdKdrI,1137
14
+ notionary/blocks/rich_text/name_id_resolver/person.py,sha256=lhDBhJXL0VRoOu8eJc-uOcqXB78os8V6VePagBboKs8,1301
15
+ notionary/blocks/rich_text/name_id_resolver/port.py,sha256=VtTavK6rHL-_qTIjFMsO25cgh_oUHNS-qEM_mONOaS0,259
16
+ notionary/comments/__init__.py,sha256=1LfujehhvWqJmNKft6QvcbwhLlJOGq7cH1uTb4IUR2w,63
17
+ notionary/comments/client.py,sha256=iMcZ7OO60Y6z7dRFU3Mx5o808l6EAi0soDJdS-gOzrM,2724
18
+ notionary/comments/factory.py,sha256=OmE1CBY5elpbvuSj64EmBfSlmED9VAYIQ65J5jKM15s,1511
19
+ notionary/comments/models.py,sha256=g-WTDSel8nhyRa60rN0U5FuccU0KVnsnJBi6Uqz7NVw,107
20
+ notionary/comments/schemas.py,sha256=AWDMeZbtOiaXfb45cxP5UhXOMxAqPYGetXzRWaJOdfQ,6003
21
+ notionary/comments/service.py,sha256=qRCwTTzjdSD2vgqCJCBPbSO3gyajyUD3JWV3qgiMFe0,1652
22
+ notionary/data_source/schemas.py,sha256=I1b1HEbOj_uWebgZFjZBLTe82DShxM8Tes4_imyfogU,849
23
+ notionary/data_source/service.py,sha256=IrUAIAezYvBJW0FuNC4ZFNJWNJ9shQeOi-DDzlMih8E,14482
24
+ notionary/data_source/http/client.py,sha256=wvaBOIT5OtGdE0QjbcDUsuDnZ0TZ-CyIifBHp6OYTqE,445
25
+ notionary/data_source/http/data_source_instance_client.py,sha256=UcD3D1U79QEqsnIGQQ-pXTD0mkw_n2p3NdJte7hhHX4,4931
26
+ notionary/data_source/properties/schemas.py,sha256=EWUtLplGdjbb688EU5EXWqMU2PSPf2GzGglLwS5wAgg,12067
27
+ notionary/data_source/query/builder.py,sha256=RDa1iNmsNDpguKptOjCtEw82h5g4dUEkL0MKPHAALBc,18365
28
+ notionary/data_source/query/resolver.py,sha256=zkV-ra2vvKdXAIcDO7zEzjvd_79YKLz6umczK6U8fpo,4370
29
+ notionary/data_source/query/schema.py,sha256=WQQY5QCZf_OG_siMRF64yWPnvPIXmxYKFwhpWHfZE3Y,9435
30
+ notionary/data_source/query/validator.py,sha256=wO0oT2i8d-Vl6ul_4ilXFyOxnOvM64HXdCRJPyu-xdE,3309
31
+ notionary/data_source/schema/registry.py,sha256=ageQvLYOnU1g65JcZ9cmQWfj0Sv7petNWUBl5eH-eFo,5185
32
+ notionary/data_source/schema/service.py,sha256=AFkHsOnTOSpf36pr2XHgw16Kna5hzw0GduAdLAh7bMQ,5977
33
+ notionary/database/client.py,sha256=oLl8iRPkNC7Fuu9tAhXg3iX5n6z_35Nvl-JN8i0aSd4,2213
34
+ notionary/database/database_metadata_update_client.py,sha256=LryhjGxDgLbRvuOUVvViZCogI0-Op4QkOlQUW4z8Tmg,905
35
+ notionary/database/schemas.py,sha256=RwhxDRa7v8IAtkXdJLu-gHclliClWmcIfa6xKYCUkZA,853
36
+ notionary/database/service.py,sha256=5dEgFAsSfsL3s0YD8ccfLgpnmZWZ4YWoeaYasjSwGD0,6139
37
+ notionary/exceptions/__init__.py,sha256=SHJo7TAq7VDY7fDRoaGeRwV7HFmzFaBsxy6hdwQFvO8,1066
38
+ notionary/exceptions/api.py,sha256=5xCX5Xyaa8CMG2f4_fgkZQezPsSjqDrV27ByOY05meg,790
39
+ notionary/exceptions/base.py,sha256=vzMtgFalmpXVEOZDkyF0HqW--WBpq2rVJm-IG1f5vlY,44
40
+ notionary/exceptions/block_parsing.py,sha256=OFURoDbD2jLsast6Lw4fUCuE57AZUTaWWULYOdefJPw,643
41
+ notionary/exceptions/properties.py,sha256=xHAU83C-8fxC1ColcIkA7wyhbAalfdz6Y3JSlFJuhy0,2199
42
+ notionary/exceptions/search.py,sha256=V3l-v5YcR5-zMcLw-A5rvCFMc0xhlWY6nVEVC8HMsDk,2160
43
+ notionary/exceptions/data_source/__init__.py,sha256=Xs4I-zVxVQiVhfTclJX7GuGVO5fMYQIWqiqFnh_O67M,170
44
+ notionary/exceptions/data_source/builder.py,sha256=MjDacxvR4C0OiW739R0razjfukKGCXi-TI538ajwVUI,6015
45
+ notionary/exceptions/data_source/properties.py,sha256=WrudbojMa_ktCXvpe0OwegqI-PCUMdi0rTf7-VWqYHo,1236
46
+ notionary/file_upload/client.py,sha256=TVmtMi5iBrgUFLDb7emCwUetmfbTpVFFTnurJ-qU_gw,8384
47
+ notionary/file_upload/models.py,sha256=7a82S1c1PySTulyKJjrOQ-i986W8d3FbCkyGkyUumYc,1738
48
+ notionary/file_upload/service.py,sha256=WcqEE2OfZQ8EhYQWHKzy-Usnd8KzVI3M-1UFWJbJco8,12701
49
+ notionary/http/client.py,sha256=kArX1-THEF9fs0zjzodeoeKi0o5t5MagRX3E7nwFe7g,7685
50
+ notionary/http/models.py,sha256=fvjKAGX-b6JcJ-W7V3DEt4v3SnsdikMa6N0c4aolslY,1352
51
+ notionary/page/page_context.py,sha256=dMxGuzNerfcfy6boRPrcEwxCsuNNeFwzQZg-BdeDgec,1506
52
+ notionary/page/page_http_client.py,sha256=YQdXkfMGu2wuJpALJBIsKKwoHv316n_sMjne-iqJYHc,445
53
+ notionary/page/page_metadata_update_client.py,sha256=jJc3SMFnt98YBAb9ie_OxQBXAiXpeCzslOcRRRGwVks,865
54
+ notionary/page/schemas.py,sha256=rEq1TSEGft8Y1P4ATcpYfxk7h_T7bLRxA2__dA2HJzQ,388
55
+ notionary/page/service.py,sha256=tKzk12gqfxJfxcJTIip71iFKgu7YWXHSpl7worttYHM,8561
56
+ notionary/page/blocks/client.py,sha256=2ukLeaYdFJCGzpQr-3eIZRFG2potXS-3MdKLoRha9bc,19
57
+ notionary/page/content/factory.py,sha256=hBnhR2utE6iHIWvBQiRpy17mDY3duaoRgJ4g9rbz9CI,3671
58
+ notionary/page/content/service.py,sha256=5beyQrQMyjo5Mq6c0uaj3nfbKSA3ujU1aaKiKJN7r3U,2973
59
+ notionary/page/content/markdown/__init__.py,sha256=dhBiNIbiyG38eppjXC0fkZk3NVXzRGC8xqoE89jWHG0,80
60
+ notionary/page/content/markdown/builder.py,sha256=1t4_0mWedf9OM2V1DdDbtHxte8LWsgt8kCx3OkIVFR8,9008
61
+ notionary/page/content/markdown/nodes/__init__.py,sha256=09XSsSNO4surN3lCHayqTC8zhcE5PZ7cAav_-js3dP4,1729
62
+ notionary/page/content/markdown/nodes/audio.py,sha256=CefGip__kbiqo6oBeBphgnZeB6sOBR3-bni9-WRCvK4,888
63
+ notionary/page/content/markdown/nodes/base.py,sha256=95mHu6KRKFXjtaPLHuJPYh8M4glqNGNwixZe1TXD0Z4,348
64
+ notionary/page/content/markdown/nodes/bookmark.py,sha256=Sez3V4nj6-rmbmfAdcgpXzfRkfS4feWU2RamKCOW_OU,966
65
+ notionary/page/content/markdown/nodes/breadcrumb.py,sha256=qkVQSNxcyfeTunTmstt5ydaR-QTsore2aykxkxqfKp4,523
66
+ notionary/page/content/markdown/nodes/bulleted_list.py,sha256=y7zgnsyVb5JlDriaKxXC9sBI2E1stVnYuOf-lxYnM9g,1479
67
+ notionary/page/content/markdown/nodes/callout.py,sha256=MRT6s3Q-XEcWL07bAYOjCDukUcw1pX9CtnrKKtkB0uQ,1111
68
+ notionary/page/content/markdown/nodes/code.py,sha256=DeptFjne05d3QP0Onm2dRYFH0w-sNecoKxibYVBvYxs,1069
69
+ notionary/page/content/markdown/nodes/columns.py,sha256=3-X5qsdYJhJbowPuGKVQpPtdGnKmbqLtV_Gw0c2zrkA,2346
70
+ notionary/page/content/markdown/nodes/container.py,sha256=GMl1Q_ust7Y51lw53wbAHM98kQGbBsSIKJyJfEv0elU,2526
71
+ notionary/page/content/markdown/nodes/divider.py,sha256=YTSYj7aJSubIVmGcpA3R4fsNDaYeK9vdKK3KvKCXo48,511
72
+ notionary/page/content/markdown/nodes/embed.py,sha256=ZmZrujsTwr_-genXfwa-DofCXRjvp6lnSqYy_V-Su6M,888
73
+ notionary/page/content/markdown/nodes/equation.py,sha256=t0hUTc0lOR9k6_9zDZRz5FNWKAtsborgfxJQsmKANM4,764
74
+ notionary/page/content/markdown/nodes/file.py,sha256=wO4vnumZDq2L7LdjXwO0bCroL-GZ9oIySf-Kr3yzJss,883
75
+ notionary/page/content/markdown/nodes/heading.py,sha256=7AY5WEtskBiYXgjJYSscIOK6n_c_1PillbUCidUlcyc,1200
76
+ notionary/page/content/markdown/nodes/image.py,sha256=mTVHgNVhI4Duv9ARhbuWirQ6-_FQSIq3m6IQCzRVicQ,888
77
+ notionary/page/content/markdown/nodes/numbered_list.py,sha256=GLr8AJ9rYr9zAvuWGWua1ERpdv8k3uUQ1W3pSrVmI9o,1334
78
+ notionary/page/content/markdown/nodes/paragraph.py,sha256=m9hk5QyjCnPRXHJzoHBtcNiB4fu1xKy2NV730vajm74,452
79
+ notionary/page/content/markdown/nodes/pdf.py,sha256=WwRnws-BDIU6s5Tjrg_H90rSr3D6pjbEfoonia3wP1Q,878
80
+ notionary/page/content/markdown/nodes/quote.py,sha256=2n1t0bMvJOwFgZ5FRlEy2Klaonaw8X75TXsp5eUUZ2g,923
81
+ notionary/page/content/markdown/nodes/space.py,sha256=eG-AlYkeC19QjG5uuYACdYBbaKYPqICodnUZTQR0kRw,503
82
+ notionary/page/content/markdown/nodes/table.py,sha256=F-GZWQie8LsJAYsgyFrg5wfSt5ZRY7A9PPh3NfWhn2M,1780
83
+ notionary/page/content/markdown/nodes/table_of_contents.py,sha256=THXvxPtFLM69GqJHhGsFhFcnC0eB_gz4Oat7G4ZzJ9Q,521
84
+ notionary/page/content/markdown/nodes/todo.py,sha256=7DJ1kHM-vpAD_HwMLOeyCxD5sns2G4ILZ98jG4SYFW0,1349
85
+ notionary/page/content/markdown/nodes/toggle.py,sha256=9fVsDPFHqrrpj2vYzbDklVitxtWGx5Oxji1ojFLpyRs,926
86
+ notionary/page/content/markdown/nodes/video.py,sha256=COmRavqXIoD7_Y8k1ha6b36gbBtYfyTH-c52mol-h8Q,888
87
+ notionary/page/content/markdown/nodes/mixins/__init__.py,sha256=KVWvxbgwrbfXt495N4xkIu4s8tD-miwVTcXa2fc9Kvc,98
88
+ notionary/page/content/markdown/nodes/mixins/caption.py,sha256=05tHz2RzNzyN6ggKk5gCR4iWWmM9ILwSCgfAxhgo9Bk,436
89
+ notionary/page/content/parser/context.py,sha256=oboLkBQCeUehYtgooycOJ0Vs830Jhx0HIPXBKPWdaaM,4750
90
+ notionary/page/content/parser/factory.py,sha256=M610fBJjqzHb8_rZX2bVgfpqm5Mkszt1njHK-3ovCJQ,7728
91
+ notionary/page/content/parser/service.py,sha256=gHonMPByZhNjUwMNJGPsNTZyfxIZp0Yaza6Z-huO6A8,2891
92
+ notionary/page/content/parser/parsers/__init__.py,sha256=cHGTAs7XZEHPmFHhlnno5J7nmLlfYwuTXtOtWvjWAD4,1637
93
+ notionary/page/content/parser/parsers/audio.py,sha256=FLpGkU1urTPTaUfT0Gnz0Hzgg9Y5exiPjMw-JHdnJjE,1327
94
+ notionary/page/content/parser/parsers/base.py,sha256=do1z_YLjQg1qdExtPaH1negInx3HLXz6kDBaGoCxGcM,988
95
+ notionary/page/content/parser/parsers/bookmark.py,sha256=OPHcQo4XVBNuV--IRarxgnnjDiStgxtUJvJ2WP_EQoA,1233
96
+ notionary/page/content/parser/parsers/breadcrumb.py,sha256=xkPj0dzQrpk349ruB0ysZ2g-7ezWAyrdEhQD3uC5A2s,1190
97
+ notionary/page/content/parser/parsers/bulleted_list.py,sha256=hmBW3CcZMbgKqq46mjm9THMqk7N1le3y2gN6f5Yjspg,3564
98
+ notionary/page/content/parser/parsers/callout.py,sha256=5291TO-6bKllZBP3i_yIrO9bcaPjeZFm4_JvLqOgjII,4022
99
+ notionary/page/content/parser/parsers/caption.py,sha256=nsS2_AENiGx-ojet8Esc0XjLOnIXmv10sjSJ6TrVzLA,2071
100
+ notionary/page/content/parser/parsers/code.py,sha256=A--JUlsjiudnULzKpAU_PkXusP4eP2oZk-r5O57I20k,3529
101
+ notionary/page/content/parser/parsers/column.py,sha256=8Y4pyg4rfk8lAR4AAstzXzD-UQayF3KC4JB7fokQUUM,2914
102
+ notionary/page/content/parser/parsers/column_list.py,sha256=utyOZLO6jEVNUFxDG_yMRKlvewVWCTsfa02w_pWz87g,3474
103
+ notionary/page/content/parser/parsers/divider.py,sha256=j9nuuViHAeXddWg-qt-IYLqnbpRu0tB--ll2nYPnUak,1148
104
+ notionary/page/content/parser/parsers/embed.py,sha256=VBxE6_-P7ifQMW83RhBLqVIO_3-G5CH7zHQvobvSAM0,1203
105
+ notionary/page/content/parser/parsers/equation.py,sha256=hJL4PbJkiBrfphgBCV_a9LRvVHMcUU1_O1lAHDELs5o,2333
106
+ notionary/page/content/parser/parsers/file.py,sha256=Zjj-b4xtvrdPiM3I-NvbY6pwdMlcOP8KRp6MObJpXsk,1349
107
+ notionary/page/content/parser/parsers/heading.py,sha256=MO3XpTlhO18F36rI-u5XQ7TXx739FmntCpvwcoi02N4,4524
108
+ notionary/page/content/parser/parsers/image.py,sha256=JBraNzXRV1d_EEO2rLYg-N1zA7ZHBWGGAbC5t7bVI2o,1357
109
+ notionary/page/content/parser/parsers/numbered_list.py,sha256=ouebkdw3dhbsERdqQLJlbvBP9cw9yJHoUg1r0wrGBrg,3623
110
+ notionary/page/content/parser/parsers/paragraph.py,sha256=GDzGxAQOBFgZPSdzZiK-OruSE3yVIZwyVMPn064NHmU,1359
111
+ notionary/page/content/parser/parsers/pdf.py,sha256=JNRcQxCOEGNxVDfoYe_OlFrFAUZjaLkQuuTkONJWkJY,1341
112
+ notionary/page/content/parser/parsers/quote.py,sha256=--zTyGPfg_V42yfShWQjYgD5x6pHIRqoMCqGl1QnVC0,5078
113
+ notionary/page/content/parser/parsers/space.py,sha256=BJ7IOXrpKO_Xjsb2GWzESW97Tju89VnddB5pkmq7pD4,1569
114
+ notionary/page/content/parser/parsers/table.py,sha256=eyrCdEEGyxmro4mHxKx6APnBHZAfLtWiD6Hlv_MwZvU,5479
115
+ notionary/page/content/parser/parsers/table_of_contents.py,sha256=f8JVQmBvV2ptrUYw5LPY5j844nbFlhU8K-3mfT7GMjk,1205
116
+ notionary/page/content/parser/parsers/todo.py,sha256=iv0WD8T2Y8DxJ3k0khLiyDHPhDJIe2veExu1Aco_a3E,3838
117
+ notionary/page/content/parser/parsers/toggle.py,sha256=x42I5ABN6SyoFxmeliZsToUwiZAtg1JEWTRuWZ6jIe8,2883
118
+ notionary/page/content/parser/parsers/video.py,sha256=NshablM97cL0G8yq_iz_UlOfCFCVujgOuaSCNIqdPCU,1357
119
+ notionary/page/content/parser/post_processing/port.py,sha256=ZjTz9pIrk3R8Hy_NdRWmYTYrGScNyWyqgzcSUk_1BkI,248
120
+ notionary/page/content/parser/post_processing/service.py,sha256=Wp_30iCcqtB7qZdO__E6f_WjNKhkaOQML6q4dW33bJM,608
121
+ notionary/page/content/parser/post_processing/handlers/__init__.py,sha256=Io7Qw_bR6lDXCCuFWUZqR5QmmZwqKG-icE1hRoRivIk,144
122
+ notionary/page/content/parser/post_processing/handlers/rich_text_length.py,sha256=mFiKqq-dPHzUnjXHrWmHRXeU5WUCdGk7HplDxvCCbaE,3571
123
+ notionary/page/content/parser/post_processing/handlers/rich_text_length_truncation.py,sha256=UZhH3ifJtiJrV22jBAQqnTAWWJCAhmp0F4n0gY1RAE0,4143
124
+ notionary/page/content/parser/pre_processsing/service.py,sha256=moa5sHuNvzUQCVGe-4IvqrCEWtIaEMD6M7FMjLXENcM,507
125
+ notionary/page/content/parser/pre_processsing/handlers/__init__.py,sha256=_sdsV57EiGZ7KEwBgVEpZHrz50TaLX66vw26Bgl4rdA,314
126
+ notionary/page/content/parser/pre_processsing/handlers/column_syntax.py,sha256=tEDlGBLW6RV-CKdmqVMY7qhrTzuEpQIOV6OLw2OYEzI,5296
127
+ notionary/page/content/parser/pre_processsing/handlers/indentation.py,sha256=lAHcjRpj_ET2XUr8TsuLZJgl593AzKu6dq3E3Bi3VQ8,3236
128
+ notionary/page/content/parser/pre_processsing/handlers/port.py,sha256=Gm_GRGl1eGo1C8AM5CUfFdYAofe4Y0gAPScU2O1EcJo,153
129
+ notionary/page/content/parser/pre_processsing/handlers/whitespace.py,sha256=KjYpnp00JD2jsNlcjCIHaZ5A7TT9zF2pEHHvzHiasGk,2597
130
+ notionary/page/content/renderer/context.py,sha256=yiEl0zHWrvfdqXm3tV7IQkuYhoIKaWv3s_PKCNyhRZ8,2015
131
+ notionary/page/content/renderer/factory.py,sha256=YUV0FQ55sPYwTpvDg1n-WoBio4UNUTj3cFg7IGzauzk,8901
132
+ notionary/page/content/renderer/service.py,sha256=llgxgijk6_rYGMLvYW9OdgcpLSk8xxg2mEELRK54CY0,1916
133
+ notionary/page/content/renderer/post_processing/port.py,sha256=VcfLsEyXd8EXMjYEf_uTX0-iq5RThwGvE7mgUsL6b8s,154
134
+ notionary/page/content/renderer/post_processing/service.py,sha256=dCc6GRRDkT3NmVHBerBf_TZfNjCIRbS8NdLJhaDQQsA,511
135
+ notionary/page/content/renderer/post_processing/handlers/__init__.py,sha256=LurntAvtz38tBpm3KAfd_Z-EyaxfG6WS_JPrytfc32M,144
136
+ notionary/page/content/renderer/post_processing/handlers/numbered_list.py,sha256=Ry7RpKa-VSp9VWShvu9KzoWgvyVGeJ3iy5z05o47mdk,5825
137
+ notionary/page/content/renderer/renderers/__init__.py,sha256=YinHG6qfAPRTLD2-fts0gnuDuxQW9ZMBXflxoEfQ16o,1636
138
+ notionary/page/content/renderer/renderers/audio.py,sha256=WfmY672zKhvykazxXPgOdiC3_DXJixBIGMezdlQpzRg,943
139
+ notionary/page/content/renderer/renderers/base.py,sha256=2y8pnPmk-Kf2eA_MKVsGsnt9oKuefaRx5C_ZWsrRa7c,1071
140
+ notionary/page/content/renderer/renderers/bookmark.py,sha256=rpd1SBDNO2uoCCRynGGHeqgudMzDXXNra-hTt3vxJdY,815
141
+ notionary/page/content/renderer/renderers/breadcrumb.py,sha256=M_Qlu73LmSwcCzsF1IJywZIekzOVBP1rd8md51dvfq8,782
142
+ notionary/page/content/renderer/renderers/bulleted_list.py,sha256=FYEmLHxxhG8HrhEnfBzSqoMLpavSphfpw3EbxghcMRE,2015
143
+ notionary/page/content/renderer/renderers/callout.py,sha256=R-wkczhIfaHto3aflh7LMv72vF3Za18MIu5z55nLah4,2017
144
+ notionary/page/content/renderer/renderers/captioned_block.py,sha256=74dx0IiGs1yCq2pXDJgivPsLoBWWr0JV7vDisintSuI,2227
145
+ notionary/page/content/renderer/renderers/code.py,sha256=0ZJpzr-1noVxGQLUyqHfhqv2cWPVAeLmOn-cKwSv-PA,1269
146
+ notionary/page/content/renderer/renderers/column.py,sha256=W9UwDaZPy1QtIfozNespwWvr2-8LWHB9MTtq8bTCUIc,1854
147
+ notionary/page/content/renderer/renderers/column_list.py,sha256=5XChh0doxfoKzYe9_lUdVg0DjKeuV2o83XIvlVqJnsQ,1615
148
+ notionary/page/content/renderer/renderers/divider.py,sha256=S6XvueUgihBC5I5y7_WHWeULfUq3ydvGNC8Mz72nNwQ,796
149
+ notionary/page/content/renderer/renderers/embed.py,sha256=v5Ycztt4koB-uboAn0b9hrvkM0SohBSQMFw_z75_cGw,794
150
+ notionary/page/content/renderer/renderers/equation.py,sha256=lLZ82s2y_K_0avrp6eX8LLvWXTnPX_9kI6bwhGFKe-g,1363
151
+ notionary/page/content/renderer/renderers/fallback.py,sha256=R-w6k5N3EmTQ5ytSzPNykpNwm9tq3dW71Xffchj4qXA,918
152
+ notionary/page/content/renderer/renderers/file.py,sha256=sLwRbScAwNSiGyVhY1DVTvRAg7vOAZ7_BoouCCQI-ec,1136
153
+ notionary/page/content/renderer/renderers/heading.py,sha256=6F1imJeTsn8b7YNtySv-YWbl7XgGxn7SauXaM15tbWo,3770
154
+ notionary/page/content/renderer/renderers/image.py,sha256=zcdEvS_csy1YymWVof1wiKDWCBq0TnL5Ky6PY3sdDbk,943
155
+ notionary/page/content/renderer/renderers/numbered_list.py,sha256=QVzpozfROnuutjbjV-U1qB_VpwpX7m8viSfqE-J_J8s,1818
156
+ notionary/page/content/renderer/renderers/paragraph.py,sha256=srwCP13H9V22wM1Ned0UODWmYrSYlcn4FJgoPb1B4fM,1620
157
+ notionary/page/content/renderer/renderers/pdf.py,sha256=USeqVEHYnxiiCi-IL8VEDdbaQ8EtbKSkSHzDPWeZVS0,923
158
+ notionary/page/content/renderer/renderers/quote.py,sha256=oBYP3kPzzxIRcqj-F1FAqOemG70V95nHm3NBxOOX4os,1987
159
+ notionary/page/content/renderer/renderers/table.py,sha256=CqmV9ii6MVbd8YJvJ18HXBPWXEaSM0i2ufgKJIbJlCo,4619
160
+ notionary/page/content/renderer/renderers/table_of_contents.py,sha256=pWlkz-jQ2jviI-it0XxJQsZ0G5I2ZtxZkC7pBSWnRBg,988
161
+ notionary/page/content/renderer/renderers/table_row.py,sha256=Zs1yFsU4hKIZizg4rGo8THGZ0VKrb3KNUQOT9ehmzFk,623
162
+ notionary/page/content/renderer/renderers/todo.py,sha256=J0hwarEEBhwlDvgSR5jwlJ_cvMw3dpi_UYaWZHCCYEc,2137
163
+ notionary/page/content/renderer/renderers/toggle.py,sha256=BGGvDlQMCaZxUQw-kmv5M5RZq86UZAWvBLLPkagKVtc,2045
164
+ notionary/page/content/renderer/renderers/video.py,sha256=2pKJFFkJheRl-G4qaXIJTvPvwBrUqk11RqqYrly2ptI,943
165
+ notionary/page/content/syntax/__init__.py,sha256=0OjmKk1n4QyZS_0nnKfVAFfn2wge2f4ANQT6UcbX7pg,127
166
+ notionary/page/content/syntax/grammar.py,sha256=vWJ1rgtekcRH4uIb94q83kYaBxmDD0E5YS7oGQR_1Aw,252
167
+ notionary/page/content/syntax/models.py,sha256=pkFoQVMu4eg6xIyi9JYkeRgegrB-QUAw7wlRrIKGIXE,1830
168
+ notionary/page/content/syntax/registry.py,sha256=RsN974l_ddwIv9V4WYFUcEVAo34_BcGiPdrXOtwdYYg,15697
169
+ notionary/page/properties/client.py,sha256=_VyiVdiN9G6MaZnzqCmsF8xWTC_dyr_Wly3JHLZ-52E,6723
170
+ notionary/page/properties/factory.py,sha256=YnVWZ98RGYpV9iEY4Ufk7InIoeP9vWwMn5sSvcbSQ2k,1248
171
+ notionary/page/properties/models.py,sha256=G3e7vzmk3kU6G1c0oWX9QlKMdaPOuKwR76CscOUPJMg,8878
172
+ notionary/page/properties/service.py,sha256=ypkIw9GaqF-Uy_GhZOEo_t3BInutgThwhcTY_hEplAg,12842
173
+ notionary/shared/typings.py,sha256=LKg_NJvqi0ZuyB6I995zg4XCyijGKY0T_bW90YiI5_g,58
174
+ notionary/shared/entity/client.py,sha256=knblCIKwUHgoxJ_z7QtrRES9E8P9keHQTvr6CMc69gA,1181
175
+ notionary/shared/entity/dto_parsers.py,sha256=yaADwtL9S6mlQzLSNlW71trL0E3FPBmykgI6wuLNKKU,2086
176
+ notionary/shared/entity/entity_metadata_update_client.py,sha256=MKNT6W4ZUVffdB1BzXBqcWuTqaaBBqZ7Q9cRLrynKOI,1769
177
+ notionary/shared/entity/schemas.py,sha256=-NDlmw3dWANFx2Nw_x1WKhtmp_PmcuzpJ2Tsxx7O23c,1132
178
+ notionary/shared/entity/service.py,sha256=8Q_mABjEGZvfGh3h5F0r6MGfoHUoWKWYSgGMPThjCF4,6089
179
+ notionary/shared/models/cover.py,sha256=Qg3I6XS7pQUnsx3VO9_dRHHrt_VmJEpU8h3eu92Cqa0,495
180
+ notionary/shared/models/file.py,sha256=kU_hiLHEQDirBDoKkIKutXlRTSv3-hRJRfaoW-1hGtA,442
181
+ notionary/shared/models/icon.py,sha256=f1NVijUb4B_HhcGA7GtVsS1izycb8u8R7A3uy5qAu0o,603
182
+ notionary/shared/models/parent.py,sha256=fptJhWHot35jN9IH9BhsXNMZfNClc8av1G2TR6SqRmY,888
183
+ notionary/shared/properties/type.py,sha256=04KNeWGzphJ2hN6AbVhfDfF89XxtSGzcmnatcPHkEQI,780
184
+ notionary/user/__init__.py,sha256=O1sa9EPnJKZgpEAARJhzgh0ULqmwB-JNIgoPUCwDGMo,111
185
+ notionary/user/base.py,sha256=M2psGOJt6YLKFMw_iWEYave67sfoBa2_0Sij00Zen5M,4362
186
+ notionary/user/bot.py,sha256=G093TD2ZNxwtKpCqKreHxGDa7jsBsAGq8yEqfR3nIT0,2585
187
+ notionary/user/client.py,sha256=CDevJlHfNnrfPE2OaaLWXeNro72J4ezCfwgdM_SJeAg,1410
188
+ notionary/user/factory.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
189
+ notionary/user/person.py,sha256=8w0xMNVLen8xx2DSff-3Y9H7x9A0B3FLZUZJQZ_qe4g,1144
190
+ notionary/user/schemas.py,sha256=ZPKopqd6OepGFPnbK3B13PgNH6l4hLCGMxpk0eWe41s,1432
191
+ notionary/user/service.py,sha256=20DaDC4Eozfzr2sf0VP3z6sORRKmfb5PdtGG02rJews,2565
192
+ notionary/utils/date.py,sha256=HPwqmZoylTFKkyI8q4BJXT3q9B39nE55uVZAyG4JnDw,1729
193
+ notionary/utils/decorators.py,sha256=jKik6C_2mAzN1f1RUMkhzsqg7vC_tEO-CyYqLTnyTiw,3722
194
+ notionary/utils/fuzzy.py,sha256=k_D48yHbSd_ecFo3QlrxF5-5c3Bd8gR3bq-_W2J2ZyE,1783
195
+ notionary/utils/pagination.py,sha256=Arf9j54SVgXh4WMpiv20buRuAQunwEjHI8pPoaCeQ0M,2951
196
+ notionary/utils/uuid_utils.py,sha256=ygTQdiKmdtyb2iY7d9kuYbo8uGSeuhiHH2PhUza6ZUw,579
197
+ notionary/utils/mixins/logging.py,sha256=fCkHFYhNYeVfppCjD5WLKxY7Sr3FHlJ5UhNd7KzrvsM,1662
198
+ notionary/workspace/__init__.py,sha256=J3Dbb3t1Ryf_gBhNELLOeQJ8s124ki6cdhEl91-WoqY,150
199
+ notionary/workspace/client.py,sha256=1gq3omouawJqyewN1PaTcKJWbdJQG9dVAxP-ZlCJB9w,2311
200
+ notionary/workspace/schemas.py,sha256=uITRJpqHZD7LF7wOqZ6Cdx51a4Uk9rWZ110ib9EbIrA,562
201
+ notionary/workspace/service.py,sha256=7OM8GCYHwNYfaNxKHfSBZKelEeVMHbl0I8x2uQzEO8s,4524
202
+ notionary/workspace/query/__init__.py,sha256=NE-Hausc1m2DsBAh9lesoH7hbxolREa0ZIBJWqKFsD4,95
203
+ notionary/workspace/query/builder.py,sha256=H2n9x7HKf5KG3wavugr-W5ouV8-atHQSk_CJkMBhJnY,1898
204
+ notionary/workspace/query/models.py,sha256=eTIBLPpTI24hufb83KRrBYVmuWBvtuv1w1cMz3UdC_s,1721
205
+ notionary/workspace/query/service.py,sha256=-9FwbeQQSCwscFom7Gv5_nyR8ELDBoCWYO16acxVqt0,4485
206
+ notionary-0.3.0.dist-info/METADATA,sha256=zHT1z36IRZ4pP7onTdavIxEZPlrrF_fG9SHzfS_O9uU,5884
207
+ notionary-0.3.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
208
+ notionary-0.3.0.dist-info/licenses/LICENSE,sha256=FLNy3l12swSnCggq3zOW_3gh4uaZ12DGZL1tR6Bc5Sk,1102
209
+ notionary-0.3.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.1.3
2
+ Generator: hatchling 1.27.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -4,18 +4,18 @@ Copyright (c) 2025 Mathis Kristoffer Arends
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
10
  furnished to do so, subject to the following conditions:
11
11
 
12
- The above copyright notice and this permission notice shall be included in
12
+ The above copyright notice and this permission notice shall be included in
13
13
  all copies or substantial portions of the Software.
14
14
 
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
19
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
21
  THE SOFTWARE.