notionary 0.2.26__py3-none-any.whl → 0.2.28__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 (387) hide show
  1. notionary/__init__.py +5 -20
  2. notionary/blocks/client.py +87 -215
  3. notionary/blocks/enums.py +167 -0
  4. notionary/blocks/rich_text/markdown_rich_text_converter.py +266 -0
  5. notionary/blocks/rich_text/models.py +164 -0
  6. notionary/blocks/rich_text/name_id_resolver/__init__.py +11 -0
  7. notionary/blocks/rich_text/name_id_resolver/database.py +31 -0
  8. notionary/blocks/rich_text/name_id_resolver/page.py +34 -0
  9. notionary/blocks/rich_text/name_id_resolver/person.py +37 -0
  10. notionary/blocks/rich_text/name_id_resolver/port.py +11 -0
  11. notionary/blocks/rich_text/rich_text_markdown_converter.py +132 -0
  12. notionary/blocks/rich_text/rich_text_patterns.py +39 -0
  13. notionary/blocks/schemas.py +746 -0
  14. notionary/comments/client.py +52 -187
  15. notionary/comments/factory.py +40 -0
  16. notionary/comments/models.py +5 -127
  17. notionary/comments/schemas.py +240 -0
  18. notionary/comments/service.py +34 -0
  19. notionary/data_source/http/client.py +11 -0
  20. notionary/data_source/http/data_source_instance_client.py +94 -0
  21. notionary/data_source/properties/models.py +406 -0
  22. notionary/data_source/query/builder.py +429 -0
  23. notionary/data_source/query/resolver.py +114 -0
  24. notionary/data_source/query/schema.py +304 -0
  25. notionary/data_source/query/validator.py +73 -0
  26. notionary/data_source/schemas.py +27 -0
  27. notionary/data_source/service.py +353 -0
  28. notionary/database/client.py +30 -135
  29. notionary/database/database_metadata_update_client.py +19 -0
  30. notionary/database/schemas.py +29 -0
  31. notionary/database/service.py +169 -0
  32. notionary/exceptions/__init__.py +33 -0
  33. notionary/exceptions/api.py +41 -0
  34. notionary/exceptions/base.py +2 -0
  35. notionary/exceptions/block_parsing.py +16 -0
  36. notionary/exceptions/data_source/__init__.py +6 -0
  37. notionary/exceptions/data_source/builder.py +182 -0
  38. notionary/exceptions/data_source/properties.py +34 -0
  39. notionary/exceptions/properties.py +58 -0
  40. notionary/exceptions/search.py +33 -0
  41. notionary/file_upload/client.py +18 -30
  42. notionary/file_upload/models.py +7 -8
  43. notionary/file_upload/{notion_file_upload.py → service.py} +29 -64
  44. notionary/http/client.py +205 -0
  45. notionary/http/models.py +49 -0
  46. notionary/page/blocks/client.py +1 -0
  47. notionary/page/content/factory.py +68 -0
  48. notionary/page/content/markdown/__init__.py +5 -0
  49. notionary/page/content/markdown/builder.py +304 -0
  50. notionary/page/content/markdown/nodes/__init__.py +54 -0
  51. notionary/page/content/markdown/nodes/audio.py +23 -0
  52. notionary/page/content/markdown/nodes/base.py +12 -0
  53. notionary/page/content/markdown/nodes/bookmark.py +25 -0
  54. notionary/page/content/markdown/nodes/breadcrumb.py +14 -0
  55. notionary/page/content/markdown/nodes/bulleted_list.py +18 -0
  56. notionary/page/content/markdown/nodes/callout.py +32 -0
  57. notionary/page/content/markdown/nodes/code.py +30 -0
  58. notionary/page/content/markdown/nodes/columns.py +51 -0
  59. notionary/page/content/markdown/nodes/divider.py +14 -0
  60. notionary/page/content/markdown/nodes/embed.py +23 -0
  61. notionary/page/content/markdown/nodes/equation.py +19 -0
  62. notionary/page/content/markdown/nodes/file.py +23 -0
  63. notionary/page/content/markdown/nodes/heading.py +16 -0
  64. notionary/page/content/markdown/nodes/image.py +23 -0
  65. notionary/page/content/markdown/nodes/mixins/caption.py +12 -0
  66. notionary/page/content/markdown/nodes/numbered_list.py +15 -0
  67. notionary/page/content/markdown/nodes/paragraph.py +14 -0
  68. notionary/page/content/markdown/nodes/pdf.py +23 -0
  69. notionary/page/content/markdown/nodes/quote.py +15 -0
  70. notionary/page/content/markdown/nodes/space.py +14 -0
  71. notionary/page/content/markdown/nodes/table.py +45 -0
  72. notionary/page/content/markdown/nodes/table_of_contents.py +14 -0
  73. notionary/page/content/markdown/nodes/todo.py +22 -0
  74. notionary/page/content/markdown/nodes/toggle.py +28 -0
  75. notionary/page/content/markdown/nodes/toggleable_heading.py +35 -0
  76. notionary/page/content/markdown/nodes/video.py +23 -0
  77. notionary/page/content/parser/context.py +49 -0
  78. notionary/page/content/parser/factory.py +219 -0
  79. notionary/page/content/parser/parsers/__init__.py +60 -0
  80. notionary/page/content/parser/parsers/audio.py +40 -0
  81. notionary/page/content/parser/parsers/base.py +30 -0
  82. notionary/page/content/parser/parsers/bookmark.py +33 -0
  83. notionary/page/content/parser/parsers/breadcrumb.py +33 -0
  84. notionary/page/content/parser/parsers/bulleted_list.py +41 -0
  85. notionary/page/content/parser/parsers/callout.py +129 -0
  86. notionary/page/content/parser/parsers/caption.py +55 -0
  87. notionary/page/content/parser/parsers/code.py +81 -0
  88. notionary/page/content/parser/parsers/column.py +117 -0
  89. notionary/page/content/parser/parsers/column_list.py +81 -0
  90. notionary/page/content/parser/parsers/divider.py +33 -0
  91. notionary/page/content/parser/parsers/embed.py +33 -0
  92. notionary/page/content/parser/parsers/equation.py +65 -0
  93. notionary/page/content/parser/parsers/file.py +42 -0
  94. notionary/page/content/parser/parsers/heading.py +58 -0
  95. notionary/page/content/parser/parsers/image.py +42 -0
  96. notionary/page/content/parser/parsers/numbered_list.py +45 -0
  97. notionary/page/content/parser/parsers/paragraph.py +36 -0
  98. notionary/page/content/parser/parsers/pdf.py +42 -0
  99. notionary/page/content/parser/parsers/quote.py +65 -0
  100. notionary/page/content/parser/parsers/space.py +35 -0
  101. notionary/page/content/parser/parsers/table.py +144 -0
  102. notionary/page/content/parser/parsers/table_of_contents.py +32 -0
  103. notionary/page/content/parser/parsers/todo.py +58 -0
  104. notionary/page/content/parser/parsers/toggle.py +127 -0
  105. notionary/page/content/parser/parsers/toggleable_heading.py +150 -0
  106. notionary/page/content/parser/parsers/video.py +42 -0
  107. notionary/page/content/parser/post_processing/handlers/__init__.py +5 -0
  108. notionary/page/content/parser/post_processing/handlers/rich_text_length.py +93 -0
  109. notionary/page/content/parser/post_processing/handlers/rich_text_length_truncation.py +93 -0
  110. notionary/page/content/parser/post_processing/port.py +9 -0
  111. notionary/page/content/parser/post_processing/service.py +16 -0
  112. notionary/page/content/parser/pre_processsing/handlers/__init__.py +9 -0
  113. notionary/page/content/parser/pre_processsing/handlers/column_syntax.py +80 -0
  114. notionary/page/content/parser/pre_processsing/handlers/port.py +7 -0
  115. notionary/page/content/parser/pre_processsing/handlers/whitespace.py +68 -0
  116. notionary/page/content/parser/pre_processsing/service.py +15 -0
  117. notionary/page/content/parser/service.py +69 -0
  118. notionary/page/content/renderer/context.py +48 -0
  119. notionary/page/content/renderer/factory.py +240 -0
  120. notionary/page/content/renderer/post_processing/handlers/__init__.py +5 -0
  121. notionary/page/content/renderer/post_processing/handlers/numbered_list_placeholdere.py +62 -0
  122. notionary/page/content/renderer/post_processing/port.py +7 -0
  123. notionary/page/content/renderer/post_processing/service.py +15 -0
  124. notionary/page/content/renderer/renderers/__init__.py +57 -0
  125. notionary/page/content/renderer/renderers/audio.py +31 -0
  126. notionary/page/content/renderer/renderers/base.py +31 -0
  127. notionary/page/content/renderer/renderers/bookmark.py +25 -0
  128. notionary/page/content/renderer/renderers/breadcrumb.py +21 -0
  129. notionary/page/content/renderer/renderers/bulleted_list.py +48 -0
  130. notionary/page/content/renderer/renderers/callout.py +65 -0
  131. notionary/page/content/renderer/renderers/captioned_block.py +58 -0
  132. notionary/page/content/renderer/renderers/code.py +34 -0
  133. notionary/page/content/renderer/renderers/column.py +44 -0
  134. notionary/page/content/renderer/renderers/column_list.py +31 -0
  135. notionary/page/content/renderer/renderers/divider.py +22 -0
  136. notionary/page/content/renderer/renderers/embed.py +25 -0
  137. notionary/page/content/renderer/renderers/equation.py +37 -0
  138. notionary/page/content/renderer/renderers/fallback.py +24 -0
  139. notionary/page/content/renderer/renderers/file.py +40 -0
  140. notionary/page/content/renderer/renderers/heading.py +69 -0
  141. notionary/page/content/renderer/renderers/image.py +31 -0
  142. notionary/page/content/renderer/renderers/numbered_list.py +41 -0
  143. notionary/page/content/renderer/renderers/paragraph.py +40 -0
  144. notionary/page/content/renderer/renderers/pdf.py +31 -0
  145. notionary/page/content/renderer/renderers/quote.py +49 -0
  146. notionary/page/content/renderer/renderers/table.py +115 -0
  147. notionary/page/content/renderer/renderers/table_of_contents.py +26 -0
  148. notionary/page/content/renderer/renderers/table_row.py +17 -0
  149. notionary/page/content/renderer/renderers/todo.py +56 -0
  150. notionary/page/content/renderer/renderers/toggle.py +53 -0
  151. notionary/page/content/renderer/renderers/toggleable_heading.py +78 -0
  152. notionary/page/content/renderer/renderers/video.py +31 -0
  153. notionary/page/content/renderer/service.py +50 -0
  154. notionary/page/content/service.py +65 -0
  155. notionary/page/content/syntax/models.py +68 -0
  156. notionary/page/content/syntax/service.py +453 -0
  157. notionary/page/page_context.py +7 -16
  158. notionary/page/page_http_client.py +15 -0
  159. notionary/page/page_metadata_update_client.py +19 -0
  160. notionary/page/properties/client.py +144 -0
  161. notionary/page/properties/factory.py +26 -0
  162. notionary/page/properties/models.py +307 -0
  163. notionary/page/properties/service.py +257 -0
  164. notionary/page/schemas.py +13 -0
  165. notionary/page/service.py +222 -0
  166. notionary/shared/entity/client.py +29 -0
  167. notionary/shared/entity/dto_parsers.py +53 -0
  168. notionary/shared/entity/entity_metadata_update_client.py +41 -0
  169. notionary/shared/entity/schemas.py +45 -0
  170. notionary/shared/entity/service.py +171 -0
  171. notionary/shared/models/cover.py +20 -0
  172. notionary/shared/models/file.py +21 -0
  173. notionary/shared/models/icon.py +28 -0
  174. notionary/shared/models/parent.py +41 -0
  175. notionary/shared/properties/type.py +30 -0
  176. notionary/user/__init__.py +4 -8
  177. notionary/user/base.py +89 -0
  178. notionary/user/bot.py +70 -0
  179. notionary/user/client.py +22 -111
  180. notionary/user/person.py +41 -0
  181. notionary/user/schemas.py +67 -0
  182. notionary/user/service.py +65 -0
  183. notionary/utils/async_retry.py +39 -0
  184. notionary/utils/date.py +51 -0
  185. notionary/utils/fuzzy.py +56 -0
  186. notionary/{util/logging_mixin.py → utils/mixins/logging.py} +4 -16
  187. notionary/utils/pagination.py +50 -0
  188. notionary/utils/singleton.py +13 -0
  189. notionary/utils/uuid_utils.py +20 -0
  190. notionary/workspace/__init__.py +3 -0
  191. notionary/workspace/client.py +62 -0
  192. notionary/workspace/query/builder.py +60 -0
  193. notionary/workspace/query/models.py +60 -0
  194. notionary/workspace/query/service.py +93 -0
  195. notionary/workspace/schemas.py +21 -0
  196. notionary/workspace/service.py +116 -0
  197. {notionary-0.2.26.dist-info → notionary-0.2.28.dist-info}/METADATA +54 -49
  198. notionary-0.2.28.dist-info/RECORD +200 -0
  199. {notionary-0.2.26.dist-info → notionary-0.2.28.dist-info}/WHEEL +1 -1
  200. {notionary-0.2.26.dist-info → notionary-0.2.28.dist-info/licenses}/LICENSE +9 -9
  201. notionary/base_notion_client.py +0 -219
  202. notionary/blocks/__init__.py +0 -5
  203. notionary/blocks/_bootstrap.py +0 -271
  204. notionary/blocks/audio/__init__.py +0 -11
  205. notionary/blocks/audio/audio_element.py +0 -158
  206. notionary/blocks/audio/audio_markdown_node.py +0 -24
  207. notionary/blocks/audio/audio_models.py +0 -10
  208. notionary/blocks/base_block_element.py +0 -42
  209. notionary/blocks/bookmark/__init__.py +0 -12
  210. notionary/blocks/bookmark/bookmark_element.py +0 -83
  211. notionary/blocks/bookmark/bookmark_markdown_node.py +0 -28
  212. notionary/blocks/bookmark/bookmark_models.py +0 -15
  213. notionary/blocks/breadcrumbs/__init__.py +0 -15
  214. notionary/blocks/breadcrumbs/breadcrumb_element.py +0 -39
  215. notionary/blocks/breadcrumbs/breadcrumb_markdown_node.py +0 -13
  216. notionary/blocks/breadcrumbs/breadcrumb_models.py +0 -12
  217. notionary/blocks/bulleted_list/__init__.py +0 -15
  218. notionary/blocks/bulleted_list/bulleted_list_element.py +0 -74
  219. notionary/blocks/bulleted_list/bulleted_list_markdown_node.py +0 -20
  220. notionary/blocks/bulleted_list/bulleted_list_models.py +0 -17
  221. notionary/blocks/callout/__init__.py +0 -12
  222. notionary/blocks/callout/callout_element.py +0 -99
  223. notionary/blocks/callout/callout_markdown_node.py +0 -19
  224. notionary/blocks/callout/callout_models.py +0 -33
  225. notionary/blocks/child_database/__init__.py +0 -14
  226. notionary/blocks/child_database/child_database_element.py +0 -59
  227. notionary/blocks/child_database/child_database_models.py +0 -12
  228. notionary/blocks/child_page/__init__.py +0 -9
  229. notionary/blocks/child_page/child_page_element.py +0 -94
  230. notionary/blocks/child_page/child_page_models.py +0 -12
  231. notionary/blocks/code/__init__.py +0 -11
  232. notionary/blocks/code/code_element.py +0 -149
  233. notionary/blocks/code/code_markdown_node.py +0 -80
  234. notionary/blocks/code/code_models.py +0 -94
  235. notionary/blocks/column/__init__.py +0 -25
  236. notionary/blocks/column/column_element.py +0 -65
  237. notionary/blocks/column/column_list_element.py +0 -52
  238. notionary/blocks/column/column_list_markdown_node.py +0 -34
  239. notionary/blocks/column/column_markdown_node.py +0 -42
  240. notionary/blocks/column/column_models.py +0 -26
  241. notionary/blocks/divider/__init__.py +0 -12
  242. notionary/blocks/divider/divider_element.py +0 -41
  243. notionary/blocks/divider/divider_markdown_node.py +0 -11
  244. notionary/blocks/divider/divider_models.py +0 -12
  245. notionary/blocks/embed/__init__.py +0 -12
  246. notionary/blocks/embed/embed_element.py +0 -98
  247. notionary/blocks/embed/embed_markdown_node.py +0 -19
  248. notionary/blocks/embed/embed_models.py +0 -14
  249. notionary/blocks/equation/__init__.py +0 -13
  250. notionary/blocks/equation/equation_element.py +0 -133
  251. notionary/blocks/equation/equation_element_markdown_node.py +0 -23
  252. notionary/blocks/equation/equation_models.py +0 -11
  253. notionary/blocks/file/__init__.py +0 -23
  254. notionary/blocks/file/file_element.py +0 -133
  255. notionary/blocks/file/file_element_markdown_node.py +0 -24
  256. notionary/blocks/file/file_element_models.py +0 -39
  257. notionary/blocks/heading/__init__.py +0 -19
  258. notionary/blocks/heading/heading_element.py +0 -112
  259. notionary/blocks/heading/heading_markdown_node.py +0 -16
  260. notionary/blocks/heading/heading_models.py +0 -29
  261. notionary/blocks/image_block/__init__.py +0 -11
  262. notionary/blocks/image_block/image_element.py +0 -130
  263. notionary/blocks/image_block/image_markdown_node.py +0 -25
  264. notionary/blocks/image_block/image_models.py +0 -10
  265. notionary/blocks/markdown/markdown_builder.py +0 -525
  266. notionary/blocks/markdown/markdown_document_model.py +0 -0
  267. notionary/blocks/markdown/markdown_node.py +0 -25
  268. notionary/blocks/mixins/captions/__init__.py +0 -4
  269. notionary/blocks/mixins/captions/caption_markdown_node_mixin.py +0 -31
  270. notionary/blocks/mixins/captions/caption_mixin.py +0 -92
  271. notionary/blocks/mixins/file_upload/__init__.py +0 -3
  272. notionary/blocks/mixins/file_upload/file_upload_mixin.py +0 -320
  273. notionary/blocks/models.py +0 -174
  274. notionary/blocks/numbered_list/__init__.py +0 -16
  275. notionary/blocks/numbered_list/numbered_list_element.py +0 -65
  276. notionary/blocks/numbered_list/numbered_list_markdown_node.py +0 -17
  277. notionary/blocks/numbered_list/numbered_list_models.py +0 -17
  278. notionary/blocks/paragraph/__init__.py +0 -15
  279. notionary/blocks/paragraph/paragraph_element.py +0 -58
  280. notionary/blocks/paragraph/paragraph_markdown_node.py +0 -16
  281. notionary/blocks/paragraph/paragraph_models.py +0 -16
  282. notionary/blocks/pdf/__init__.py +0 -11
  283. notionary/blocks/pdf/pdf_element.py +0 -146
  284. notionary/blocks/pdf/pdf_markdown_node.py +0 -24
  285. notionary/blocks/pdf/pdf_models.py +0 -11
  286. notionary/blocks/quote/__init__.py +0 -14
  287. notionary/blocks/quote/quote_element.py +0 -75
  288. notionary/blocks/quote/quote_markdown_node.py +0 -16
  289. notionary/blocks/quote/quote_models.py +0 -18
  290. notionary/blocks/registry/__init__.py +0 -3
  291. notionary/blocks/registry/block_registry.py +0 -150
  292. notionary/blocks/rich_text/__init__.py +0 -33
  293. notionary/blocks/rich_text/rich_text_models.py +0 -221
  294. notionary/blocks/rich_text/text_inline_formatter.py +0 -456
  295. notionary/blocks/syntax_prompt_builder.py +0 -137
  296. notionary/blocks/table/__init__.py +0 -19
  297. notionary/blocks/table/table_element.py +0 -225
  298. notionary/blocks/table/table_markdown_node.py +0 -42
  299. notionary/blocks/table/table_models.py +0 -28
  300. notionary/blocks/table_of_contents/__init__.py +0 -17
  301. notionary/blocks/table_of_contents/table_of_contents_element.py +0 -80
  302. notionary/blocks/table_of_contents/table_of_contents_markdown_node.py +0 -21
  303. notionary/blocks/table_of_contents/table_of_contents_models.py +0 -18
  304. notionary/blocks/todo/__init__.py +0 -12
  305. notionary/blocks/todo/todo_element.py +0 -81
  306. notionary/blocks/todo/todo_markdown_node.py +0 -21
  307. notionary/blocks/todo/todo_models.py +0 -18
  308. notionary/blocks/toggle/__init__.py +0 -12
  309. notionary/blocks/toggle/toggle_element.py +0 -112
  310. notionary/blocks/toggle/toggle_markdown_node.py +0 -31
  311. notionary/blocks/toggle/toggle_models.py +0 -17
  312. notionary/blocks/toggleable_heading/__init__.py +0 -11
  313. notionary/blocks/toggleable_heading/toggleable_heading_element.py +0 -115
  314. notionary/blocks/toggleable_heading/toggleable_heading_markdown_node.py +0 -34
  315. notionary/blocks/types.py +0 -130
  316. notionary/blocks/video/__init__.py +0 -11
  317. notionary/blocks/video/video_element.py +0 -187
  318. notionary/blocks/video/video_element_models.py +0 -10
  319. notionary/blocks/video/video_markdown_node.py +0 -26
  320. notionary/comments/__init__.py +0 -26
  321. notionary/database/__init__.py +0 -4
  322. notionary/database/database.py +0 -480
  323. notionary/database/database_filter_builder.py +0 -173
  324. notionary/database/database_provider.py +0 -227
  325. notionary/database/exceptions.py +0 -13
  326. notionary/database/factory.py +0 -0
  327. notionary/database/models.py +0 -337
  328. notionary/database/notion_database.py +0 -487
  329. notionary/file_upload/__init__.py +0 -7
  330. notionary/page/client.py +0 -124
  331. notionary/page/markdown_whitespace_processor.py +0 -129
  332. notionary/page/models.py +0 -322
  333. notionary/page/notion_page.py +0 -674
  334. notionary/page/page_content_deleting_service.py +0 -117
  335. notionary/page/page_content_writer.py +0 -80
  336. notionary/page/property_formatter.py +0 -99
  337. notionary/page/reader/handler/__init__.py +0 -19
  338. notionary/page/reader/handler/base_block_renderer.py +0 -44
  339. notionary/page/reader/handler/block_processing_context.py +0 -35
  340. notionary/page/reader/handler/block_rendering_context.py +0 -48
  341. notionary/page/reader/handler/column_list_renderer.py +0 -51
  342. notionary/page/reader/handler/column_renderer.py +0 -60
  343. notionary/page/reader/handler/equation_renderer.py +0 -0
  344. notionary/page/reader/handler/line_renderer.py +0 -73
  345. notionary/page/reader/handler/numbered_list_renderer.py +0 -85
  346. notionary/page/reader/handler/toggle_renderer.py +0 -69
  347. notionary/page/reader/handler/toggleable_heading_renderer.py +0 -89
  348. notionary/page/reader/page_content_retriever.py +0 -81
  349. notionary/page/search_filter_builder.py +0 -132
  350. notionary/page/utils.py +0 -60
  351. notionary/page/writer/handler/__init__.py +0 -24
  352. notionary/page/writer/handler/code_handler.py +0 -72
  353. notionary/page/writer/handler/column_handler.py +0 -141
  354. notionary/page/writer/handler/column_list_handler.py +0 -139
  355. notionary/page/writer/handler/equation_handler.py +0 -74
  356. notionary/page/writer/handler/line_handler.py +0 -35
  357. notionary/page/writer/handler/line_processing_context.py +0 -54
  358. notionary/page/writer/handler/regular_line_handler.py +0 -86
  359. notionary/page/writer/handler/table_handler.py +0 -66
  360. notionary/page/writer/handler/toggle_handler.py +0 -159
  361. notionary/page/writer/handler/toggleable_heading_handler.py +0 -174
  362. notionary/page/writer/markdown_to_notion_converter.py +0 -139
  363. notionary/page/writer/markdown_to_notion_converter_context.py +0 -30
  364. notionary/page/writer/markdown_to_notion_text_length_post_processor.py +0 -0
  365. notionary/page/writer/notion_text_length_processor.py +0 -150
  366. notionary/schemas/__init__.py +0 -3
  367. notionary/schemas/base.py +0 -73
  368. notionary/shared/__init__.py +0 -3
  369. notionary/shared/name_to_id_resolver.py +0 -203
  370. notionary/telemetry/__init__.py +0 -19
  371. notionary/telemetry/service.py +0 -136
  372. notionary/telemetry/views.py +0 -73
  373. notionary/user/base_notion_user.py +0 -53
  374. notionary/user/models.py +0 -84
  375. notionary/user/notion_bot_user.py +0 -226
  376. notionary/user/notion_user.py +0 -255
  377. notionary/user/notion_user_manager.py +0 -101
  378. notionary/util/__init__.py +0 -15
  379. notionary/util/concurrency_limiter.py +0 -0
  380. notionary/util/factory_decorator.py +0 -0
  381. notionary/util/factory_only.py +0 -37
  382. notionary/util/fuzzy.py +0 -75
  383. notionary/util/page_id_utils.py +0 -27
  384. notionary/util/singleton.py +0 -18
  385. notionary/util/singleton_metaclass.py +0 -22
  386. notionary/workspace.py +0 -105
  387. notionary-0.2.26.dist-info/RECORD +0 -202
@@ -0,0 +1,200 @@
1
+ notionary/__init__.py,sha256=YzkqPfuFc4pBBVARb7oPrmARZJfddgcZYTT2XTmQL44,358
2
+ notionary/blocks/client.py,sha256=qdoboI6362zc7zlaRA2wCc4HAnbS_nbHrtGYkGf77cc,5423
3
+ notionary/blocks/enums.py,sha256=FNRVKIlCuzZpBj4SThhbEpCwpJaVdiBVeJVWbDgRcsQ,4163
4
+ notionary/blocks/schemas.py,sha256=Hfq7teeDCDZv6WEaASdYvO3xg41UWiHkEWI5505IKhs,20567
5
+ notionary/blocks/rich_text/markdown_rich_text_converter.py,sha256=7wC9NYnHaA67YTP4hgLt153Xgqf1dwIrAq4TFCcL8LE,10888
6
+ notionary/blocks/rich_text/models.py,sha256=5xO0dOunH-7ujud6Af3t-2K9rZ32X2MVDA2FIc6vcww,4403
7
+ notionary/blocks/rich_text/rich_text_markdown_converter.py,sha256=Bdi3z9not_naN1MNnVlIv7KsyYA5u45nhFVX4V7KqdU,4796
8
+ notionary/blocks/rich_text/rich_text_patterns.py,sha256=fjxiL09veMorNRZpaAR9NM9OHs1-lFDgKDN6zVaYrac,1552
9
+ notionary/blocks/rich_text/name_id_resolver/__init__.py,sha256=0zAgtd0MhgnxKKrltAaFi8HOWeyyNSv2xTX5sO32tSU,288
10
+ notionary/blocks/rich_text/name_id_resolver/database.py,sha256=xrCnBUYfZJfDw9bSwUroWbqzK4N1P8eduBfKVug_KXg,1073
11
+ notionary/blocks/rich_text/name_id_resolver/page.py,sha256=DfjXyBLdkYl5UfoU2UGSllsRUM5XFp30H_OJwJdKdrI,1137
12
+ notionary/blocks/rich_text/name_id_resolver/person.py,sha256=lhDBhJXL0VRoOu8eJc-uOcqXB78os8V6VePagBboKs8,1301
13
+ notionary/blocks/rich_text/name_id_resolver/port.py,sha256=VtTavK6rHL-_qTIjFMsO25cgh_oUHNS-qEM_mONOaS0,259
14
+ notionary/comments/client.py,sha256=FNVLfYYeTIJp5lFvHKLmNejUS60aEZbm23sICJ4OH-U,2707
15
+ notionary/comments/factory.py,sha256=05zHia1RFW6rHC7PKEKMghQtpXJAobnxQnwc5XUqMsA,1572
16
+ notionary/comments/models.py,sha256=g-WTDSel8nhyRa60rN0U5FuccU0KVnsnJBi6Uqz7NVw,107
17
+ notionary/comments/schemas.py,sha256=AWDMeZbtOiaXfb45cxP5UhXOMxAqPYGetXzRWaJOdfQ,6003
18
+ notionary/comments/service.py,sha256=qRCwTTzjdSD2vgqCJCBPbSO3gyajyUD3JWV3qgiMFe0,1652
19
+ notionary/data_source/schemas.py,sha256=7WRXygB70RB3HqJzqO0u2Tx6llZTUDkXry1imXV-RvE,848
20
+ notionary/data_source/service.py,sha256=1qyzFgF6QN1SBxmoN-MblMjG8tpVGI0pNC1klsDXDoE,13624
21
+ notionary/data_source/http/client.py,sha256=wvaBOIT5OtGdE0QjbcDUsuDnZ0TZ-CyIifBHp6OYTqE,445
22
+ notionary/data_source/http/data_source_instance_client.py,sha256=h2BK1KeOYtCXUAvEbyc7elHgwab4C0eyorjMmoEwqv8,4545
23
+ notionary/data_source/properties/models.py,sha256=HRVo0-5pQN1MGHlYHwXX3IhvQUsAAr0gUqzA27RugrY,12190
24
+ notionary/data_source/query/builder.py,sha256=PaLqp6eM_vzB59MEE-6NB54kYFFz1PpDL6aTCOxzxNI,17565
25
+ notionary/data_source/query/resolver.py,sha256=zkV-ra2vvKdXAIcDO7zEzjvd_79YKLz6umczK6U8fpo,4370
26
+ notionary/data_source/query/schema.py,sha256=ZYucG6WF7fC95hMTKC9-uEcFEFcdjvLrBJLOkh9vKKo,9455
27
+ notionary/data_source/query/validator.py,sha256=NrNKaK5hltOIiIwL05vnXjYc9cwEeg8P8xDdDvTspiE,3311
28
+ notionary/database/client.py,sha256=oLl8iRPkNC7Fuu9tAhXg3iX5n6z_35Nvl-JN8i0aSd4,2213
29
+ notionary/database/database_metadata_update_client.py,sha256=LryhjGxDgLbRvuOUVvViZCogI0-Op4QkOlQUW4z8Tmg,905
30
+ notionary/database/schemas.py,sha256=RwhxDRa7v8IAtkXdJLu-gHclliClWmcIfa6xKYCUkZA,853
31
+ notionary/database/service.py,sha256=DnD29cY1WmexsRKXP8iTbOLE_FzpMRngaAssKCy8FFE,6208
32
+ notionary/exceptions/__init__.py,sha256=-nnXzkMDRUVcXbYlyrsoBBmYkrgh5OXous83_y3o1-E,1077
33
+ notionary/exceptions/api.py,sha256=5xCX5Xyaa8CMG2f4_fgkZQezPsSjqDrV27ByOY05meg,790
34
+ notionary/exceptions/base.py,sha256=vzMtgFalmpXVEOZDkyF0HqW--WBpq2rVJm-IG1f5vlY,44
35
+ notionary/exceptions/block_parsing.py,sha256=OFURoDbD2jLsast6Lw4fUCuE57AZUTaWWULYOdefJPw,643
36
+ notionary/exceptions/properties.py,sha256=xHAU83C-8fxC1ColcIkA7wyhbAalfdz6Y3JSlFJuhy0,2199
37
+ notionary/exceptions/search.py,sha256=_2Ouaj0tCUjDeVtU9vCQgM48O0LdpuLlXKshfpgu5Hg,1313
38
+ notionary/exceptions/data_source/__init__.py,sha256=Xs4I-zVxVQiVhfTclJX7GuGVO5fMYQIWqiqFnh_O67M,170
39
+ notionary/exceptions/data_source/builder.py,sha256=MjDacxvR4C0OiW739R0razjfukKGCXi-TI538ajwVUI,6015
40
+ notionary/exceptions/data_source/properties.py,sha256=WrudbojMa_ktCXvpe0OwegqI-PCUMdi0rTf7-VWqYHo,1236
41
+ notionary/file_upload/client.py,sha256=TVmtMi5iBrgUFLDb7emCwUetmfbTpVFFTnurJ-qU_gw,8384
42
+ notionary/file_upload/models.py,sha256=7a82S1c1PySTulyKJjrOQ-i986W8d3FbCkyGkyUumYc,1738
43
+ notionary/file_upload/service.py,sha256=WcqEE2OfZQ8EhYQWHKzy-Usnd8KzVI3M-1UFWJbJco8,12701
44
+ notionary/http/client.py,sha256=78BltIRfhK1zmvm3UvX7vwwDLrDD-nHt8BYgfGKmoUk,7793
45
+ notionary/http/models.py,sha256=iLtZQ6q5omiC2ZUsQkWZxxfJ_k0nqVlVyB1vlRYHDmg,1345
46
+ notionary/page/page_context.py,sha256=dMxGuzNerfcfy6boRPrcEwxCsuNNeFwzQZg-BdeDgec,1506
47
+ notionary/page/page_http_client.py,sha256=YQdXkfMGu2wuJpALJBIsKKwoHv316n_sMjne-iqJYHc,445
48
+ notionary/page/page_metadata_update_client.py,sha256=jJc3SMFnt98YBAb9ie_OxQBXAiXpeCzslOcRRRGwVks,865
49
+ notionary/page/schemas.py,sha256=rEq1TSEGft8Y1P4ATcpYfxk7h_T7bLRxA2__dA2HJzQ,388
50
+ notionary/page/service.py,sha256=It8pEh9og3UqMNgKhYEnnUL7fWHsdTNGa35mlhZghyg,8531
51
+ notionary/page/blocks/client.py,sha256=2ukLeaYdFJCGzpQr-3eIZRFG2potXS-3MdKLoRha9bc,19
52
+ notionary/page/content/factory.py,sha256=zlrgXN87N7xpmMuDgNnHloG9o9s6Yeg0w9vHtSQx_OM,3572
53
+ notionary/page/content/service.py,sha256=_AzBhhSYt57_y-4G0b0Wr-W1EZ3vv-rru17rabzw22I,2865
54
+ notionary/page/content/markdown/__init__.py,sha256=dhBiNIbiyG38eppjXC0fkZk3NVXzRGC8xqoE89jWHG0,80
55
+ notionary/page/content/markdown/builder.py,sha256=mFzUit6Xdm3oKNPXswTPZfSAW6s8IlRU4Po0YFqvdAo,11275
56
+ notionary/page/content/markdown/nodes/__init__.py,sha256=_7c_ZUR6ZP2Z_JBCVeIYM3mPYyqYyDf9mc64JFI0OL4,1830
57
+ notionary/page/content/markdown/nodes/audio.py,sha256=S_iiyj_Y9yW1aNjicJNdZD4tRd-GXAbcKSpgowVXX8Q,896
58
+ notionary/page/content/markdown/nodes/base.py,sha256=T171bl_f1-FuUay2ayKJDkP1JTBc29sDkZ4HIPUruso,356
59
+ notionary/page/content/markdown/nodes/bookmark.py,sha256=vosJHjzySv76b3Pb-Dwm1o71w41qCL216tMlQvKHTKY,974
60
+ notionary/page/content/markdown/nodes/breadcrumb.py,sha256=1NcfxNA-rVl0FOHQUTHlbnA2sTNDYYdNJYcc3GHECmA,531
61
+ notionary/page/content/markdown/nodes/bulleted_list.py,sha256=rlF_3UuVq4FrU-lMbArVKGX6EkxLtD_zoAMqUR8qwE8,700
62
+ notionary/page/content/markdown/nodes/callout.py,sha256=mb0MXyprHO1EqBuhbFkMR3Zx-noAzI1lZ5n__4Q3deQ,1187
63
+ notionary/page/content/markdown/nodes/code.py,sha256=HQEiu86UiVX6mu-lNP_VZ7ARYx7orADUavOZRdqYYtA,1135
64
+ notionary/page/content/markdown/nodes/columns.py,sha256=yZs50SFEbMgZqOB6Isj8y6au1SmES1AohIJxrzWgi6M,1967
65
+ notionary/page/content/markdown/nodes/divider.py,sha256=It3l1RrPZUJSAXrZXa0eaoTW69zKpKNHcH64AwvEY3k,519
66
+ notionary/page/content/markdown/nodes/embed.py,sha256=_lQA3r3sEze7I7s1xx0ChCEh0AYkRc_tawrhaQLriP0,896
67
+ notionary/page/content/markdown/nodes/equation.py,sha256=8Jxy-BHi7cS1rnhqS-mzAUxz30GFzNDgJa1NUqk04XY,772
68
+ notionary/page/content/markdown/nodes/file.py,sha256=90EEwrz7ZkC3VOq26dF6Y4xeF2unmRpXrfRb-WyHHac,891
69
+ notionary/page/content/markdown/nodes/heading.py,sha256=AchhMEC0rqlUxmQN-v77kzj5IlFl3ZKXBTeK5SJR5AA,646
70
+ notionary/page/content/markdown/nodes/image.py,sha256=7B4geMzI4MJl2ZJw-GKXgMkw-3zFl-6NZckrYJjJeYE,896
71
+ notionary/page/content/markdown/nodes/numbered_list.py,sha256=uA8JxzShApfoWF0FE0gBjhjpMMthaZzpor2h1M8aGg0,645
72
+ notionary/page/content/markdown/nodes/paragraph.py,sha256=0C95Eco7sJHyUfq8lIYBzEO9Y_s-gC7UaVVGTVHhZ94,460
73
+ notionary/page/content/markdown/nodes/pdf.py,sha256=IjrFWA3Z3_7lV3Pof4yB4RMxxnARirC08iok5-1pK4I,886
74
+ notionary/page/content/markdown/nodes/quote.py,sha256=b9QSVepghCDhVWjkORDyEEBgnpVfaIQdC4800kcRXkY,565
75
+ notionary/page/content/markdown/nodes/space.py,sha256=jXACgOuF4xLhiGs1Xp7tIS8RdiDtZgxLmZU5HSFXh9Q,511
76
+ notionary/page/content/markdown/nodes/table.py,sha256=_T5djT8-swI5bNsHzNTyCevwesvvjaCWIDJM-CuBtIY,1788
77
+ notionary/page/content/markdown/nodes/table_of_contents.py,sha256=zKM3QV7C69UDxTFIwcrnAOtzN1qkuqPuKzJ2vreZXrQ,529
78
+ notionary/page/content/markdown/nodes/todo.py,sha256=VHBcCAwiMajvnkMA8Rs-C4wWGQBZVT8K20vUEuvnLAo,903
79
+ notionary/page/content/markdown/nodes/toggle.py,sha256=RnUnQf6P061kxB3jZHxVCNCE-_xBbnzd4cemea-fdPY,1036
80
+ notionary/page/content/markdown/nodes/toggleable_heading.py,sha256=mxBuw6NGOOIUryO9X24eg1g-IzutSYpJxs66kvFRBco,1278
81
+ notionary/page/content/markdown/nodes/video.py,sha256=4sivxxlV4Wc_CjkpwgpGKyeWrK5z3Xa_ZJakKZAIadA,896
82
+ notionary/page/content/markdown/nodes/mixins/caption.py,sha256=oEbEmkwwMoIiravu7FaO02pRqGxGDI4Y-7H44qFqgSk,444
83
+ notionary/page/content/parser/context.py,sha256=6WcESDlxtIco8-nylF_qGM_fqOT-1NyM_ogNQ7DBtR0,1544
84
+ notionary/page/content/parser/factory.py,sha256=Pvg0txZDmRCzp6N5BC8fZds1oXy8dN0Ac8l3RSDnvno,8137
85
+ notionary/page/content/parser/service.py,sha256=JnqcReHIv_Q6gQXSFjEmdYDmDcdZpMpgMoTMYMGP-AI,2504
86
+ notionary/page/content/parser/parsers/__init__.py,sha256=YcMy9pnKduZI4H1yq1NyguMMVlATBS44vTDL9Ky692Q,1726
87
+ notionary/page/content/parser/parsers/audio.py,sha256=ZHzUr79Cr4d8rgEfPkRT8aEGPsTq_RKuHgeR93ew_7k,1335
88
+ notionary/page/content/parser/parsers/base.py,sha256=uAyVqgFe4bSnVHCuo4Lo6ql6Zi2aieJd_vr4nXexeYo,996
89
+ notionary/page/content/parser/parsers/bookmark.py,sha256=k0lQXcm4WcJFe2hrxmG277B8LCtLcMyvGM_Q-ijqJqo,1241
90
+ notionary/page/content/parser/parsers/breadcrumb.py,sha256=e0Zd9zg3nvyGdhBONfbGrzjHaQ5RNEhHpJrH5tBcihs,1198
91
+ notionary/page/content/parser/parsers/bulleted_list.py,sha256=qP91WKUyg5xbl8ICTYk8rkDjQH4oCq6H929o6ZzwD2Q,1654
92
+ notionary/page/content/parser/parsers/callout.py,sha256=lgse1Otos4Yl2E9CwdonMrNtQ82uXFKBK9HjbLg_aVk,5132
93
+ notionary/page/content/parser/parsers/caption.py,sha256=yd6ZVpKzVOxJzoT-S4nCuwjUiTSi_-hOXldflK8ajrs,2079
94
+ notionary/page/content/parser/parsers/code.py,sha256=kM0qfjTwFuFpdMQmUmtLgE8KYB9ZNYOqtd2n5DDFg4U,3529
95
+ notionary/page/content/parser/parsers/column.py,sha256=rrU3mT-QyhKTaGIXir7JvuLiRi9SzNo01Xu8ITrGwXU,4545
96
+ notionary/page/content/parser/parsers/column_list.py,sha256=g4i2lxwAtPCWND0sdRKx6GKV5WB4WJg7JT_gtPqWoXw,3352
97
+ notionary/page/content/parser/parsers/divider.py,sha256=gq1PdR6iZgoVvbyKNGLh-3blgjOa0F6_4Kn4uJfMK0g,1156
98
+ notionary/page/content/parser/parsers/embed.py,sha256=THzj9ofUWwK-lgo5Ov0IYkdeGVMdOkOJfauu4LwwQTc,1211
99
+ notionary/page/content/parser/parsers/equation.py,sha256=K9ZKEM64N_mIzD6mwlPRTiQf4LNRazMd5Xoj1zOJ8fc,2341
100
+ notionary/page/content/parser/parsers/file.py,sha256=vxuDZd5XlQJiQe4fKqU4CUKplV4iqi6uf_FOUMU_csQ,1357
101
+ notionary/page/content/parser/parsers/heading.py,sha256=SutNjgrp8oEN64CNkcsfi48L7weVMYsYeNA4N0INpZs,2076
102
+ notionary/page/content/parser/parsers/image.py,sha256=GF7hzx76uFeoKLzQKyuRxk-KiwYHIJtgn8dBfzTmspA,1365
103
+ notionary/page/content/parser/parsers/numbered_list.py,sha256=HcH4urqAN8CYLhjVa_4X4mfffKSbB5DbIUtaaOYZZtQ,1713
104
+ notionary/page/content/parser/parsers/paragraph.py,sha256=hy-iX7BA9fOp5pxldKIzomL3CUjtsmZNTTqpdlyVybE,1312
105
+ notionary/page/content/parser/parsers/pdf.py,sha256=9QwaAmfJVtV_vRuLx5mt0XFOKFdA_925ENCTCkXWXqI,1349
106
+ notionary/page/content/parser/parsers/quote.py,sha256=fDs_nVZyWpjLpGOJx44D3S9cjXE3gvDW7ikM06D7ti8,2481
107
+ notionary/page/content/parser/parsers/space.py,sha256=GpeNZ6b1fsThWS0zIDqZcUZnWav54QXLfuZKFZh1LnA,1282
108
+ notionary/page/content/parser/parsers/table.py,sha256=RE72rlaHK1KvrFj64SkZZKfUdXfooX_kZvBIW7Zd9Oo,5487
109
+ notionary/page/content/parser/parsers/table_of_contents.py,sha256=0HcMGtK_16vBuG2ecNDCywvH7NfHNlAMddZWop4vZFw,1213
110
+ notionary/page/content/parser/parsers/todo.py,sha256=vpzzRjDHImlntYviO-2oXCjv2vOfTNgMupcmfxNeusQ,2098
111
+ notionary/page/content/parser/parsers/toggle.py,sha256=Yn6qYlXe07MXhIy6ClHOQwFan6DREQeVHLeIVWRgYj0,5123
112
+ notionary/page/content/parser/parsers/toggleable_heading.py,sha256=ffqF33C8GbuiILAPtEm54wnpguGHQXeRP_IxPIYy5Qs,6129
113
+ notionary/page/content/parser/parsers/video.py,sha256=b9SJ9RSgXrmeM-haqo0HioCHVqaWBxzJyUoYrxr5vkU,1365
114
+ notionary/page/content/parser/post_processing/port.py,sha256=ZjTz9pIrk3R8Hy_NdRWmYTYrGScNyWyqgzcSUk_1BkI,248
115
+ notionary/page/content/parser/post_processing/service.py,sha256=Wp_30iCcqtB7qZdO__E6f_WjNKhkaOQML6q4dW33bJM,608
116
+ notionary/page/content/parser/post_processing/handlers/__init__.py,sha256=Io7Qw_bR6lDXCCuFWUZqR5QmmZwqKG-icE1hRoRivIk,144
117
+ notionary/page/content/parser/post_processing/handlers/rich_text_length.py,sha256=PQQ2tx0mkYhQ1Gw_Tm60ofVPaqvU1u1fvwAIM-hP6Zw,3478
118
+ notionary/page/content/parser/post_processing/handlers/rich_text_length_truncation.py,sha256=PQQ2tx0mkYhQ1Gw_Tm60ofVPaqvU1u1fvwAIM-hP6Zw,3478
119
+ notionary/page/content/parser/pre_processsing/service.py,sha256=moa5sHuNvzUQCVGe-4IvqrCEWtIaEMD6M7FMjLXENcM,507
120
+ notionary/page/content/parser/pre_processsing/handlers/__init__.py,sha256=cQX-LqiDdbFNWJaOA5UGQetTogYKxTGlXtLGc_P0gwk,236
121
+ notionary/page/content/parser/pre_processsing/handlers/column_syntax.py,sha256=v43YjZdGp9cZLLSEyN0el-e5WRp11b3ll28dHAj95OU,3409
122
+ notionary/page/content/parser/pre_processsing/handlers/port.py,sha256=Gm_GRGl1eGo1C8AM5CUfFdYAofe4Y0gAPScU2O1EcJo,153
123
+ notionary/page/content/parser/pre_processsing/handlers/whitespace.py,sha256=UEbMb2hL6VhY_Z7mFo8PqXFEYQXBSk0RXkBjhPirgmU,2299
124
+ notionary/page/content/renderer/context.py,sha256=NKhczcOnBN9D1ulMwpJ-AgZ0ehPJ0FiGhYN9ByXc1gE,1798
125
+ notionary/page/content/renderer/factory.py,sha256=uhnGee21DJWCywqqoY_8su7h8sMhaCGtthGfynaOqBQ,9340
126
+ notionary/page/content/renderer/service.py,sha256=llgxgijk6_rYGMLvYW9OdgcpLSk8xxg2mEELRK54CY0,1916
127
+ notionary/page/content/renderer/post_processing/port.py,sha256=VcfLsEyXd8EXMjYEf_uTX0-iq5RThwGvE7mgUsL6b8s,154
128
+ notionary/page/content/renderer/post_processing/service.py,sha256=dCc6GRRDkT3NmVHBerBf_TZfNjCIRbS8NdLJhaDQQsA,511
129
+ notionary/page/content/renderer/post_processing/handlers/__init__.py,sha256=-7mABesdUQjAwZoQulUED25Bwklz02Fs_MnqyPKzuI8,159
130
+ notionary/page/content/renderer/post_processing/handlers/numbered_list_placeholdere.py,sha256=A9-cVBy7eOMwmbsU0r8TrnsRr2d6NljqVCWDtlncDbc,2308
131
+ notionary/page/content/renderer/renderers/__init__.py,sha256=JKARJjRgrlWewaeEexqfPH6u_qb2ta9M56XEjtBLOpU,1729
132
+ notionary/page/content/renderer/renderers/audio.py,sha256=WfmY672zKhvykazxXPgOdiC3_DXJixBIGMezdlQpzRg,943
133
+ notionary/page/content/renderer/renderers/base.py,sha256=ipTUDOehw6AXA3HKc-FpHHsyDRpgc95waGKiOvr1mK4,1079
134
+ notionary/page/content/renderer/renderers/bookmark.py,sha256=rpd1SBDNO2uoCCRynGGHeqgudMzDXXNra-hTt3vxJdY,815
135
+ notionary/page/content/renderer/renderers/breadcrumb.py,sha256=M_Qlu73LmSwcCzsF1IJywZIekzOVBP1rd8md51dvfq8,782
136
+ notionary/page/content/renderer/renderers/bulleted_list.py,sha256=f-9eonJOPgDVefxOGhKl6XGMqVnAooeMIHvwiQb_QAY,2023
137
+ notionary/page/content/renderer/renderers/callout.py,sha256=qoDKu1RDsDJrTB9sO5vU1TRfUaKeB7YjbT3STJ1K_Ag,2769
138
+ notionary/page/content/renderer/renderers/captioned_block.py,sha256=cSM-QGp8DJYs4QM2LWRZW7ZbQSNQfRalKLsjKr4gJfc,2235
139
+ notionary/page/content/renderer/renderers/code.py,sha256=0ZJpzr-1noVxGQLUyqHfhqv2cWPVAeLmOn-cKwSv-PA,1269
140
+ notionary/page/content/renderer/renderers/column.py,sha256=TM7R2-s-blgu_QJlYlxxPp663IwHZGjo_UkCSC5iNac,1594
141
+ notionary/page/content/renderer/renderers/column_list.py,sha256=uA3MVObvYltuiywnnEJ1m9kzr6S47Z3pm-10lWv9B-Y,1206
142
+ notionary/page/content/renderer/renderers/divider.py,sha256=S6XvueUgihBC5I5y7_WHWeULfUq3ydvGNC8Mz72nNwQ,796
143
+ notionary/page/content/renderer/renderers/embed.py,sha256=v5Ycztt4koB-uboAn0b9hrvkM0SohBSQMFw_z75_cGw,794
144
+ notionary/page/content/renderer/renderers/equation.py,sha256=lLZ82s2y_K_0avrp6eX8LLvWXTnPX_9kI6bwhGFKe-g,1363
145
+ notionary/page/content/renderer/renderers/fallback.py,sha256=R-w6k5N3EmTQ5ytSzPNykpNwm9tq3dW71Xffchj4qXA,918
146
+ notionary/page/content/renderer/renderers/file.py,sha256=sLwRbScAwNSiGyVhY1DVTvRAg7vOAZ7_BoouCCQI-ec,1136
147
+ notionary/page/content/renderer/renderers/heading.py,sha256=Dr6CF__c7sVrDwomcOaCSC-YYsq-YR4-i4ugmmMVZZ4,2655
148
+ notionary/page/content/renderer/renderers/image.py,sha256=zcdEvS_csy1YymWVof1wiKDWCBq0TnL5Ky6PY3sdDbk,943
149
+ notionary/page/content/renderer/renderers/numbered_list.py,sha256=5GVRwpEIRMfP6HU3yjz6fsDqrD0ctadoIjNxFrlYMrw,1702
150
+ notionary/page/content/renderer/renderers/paragraph.py,sha256=srwCP13H9V22wM1Ned0UODWmYrSYlcn4FJgoPb1B4fM,1620
151
+ notionary/page/content/renderer/renderers/pdf.py,sha256=USeqVEHYnxiiCi-IL8VEDdbaQ8EtbKSkSHzDPWeZVS0,923
152
+ notionary/page/content/renderer/renderers/quote.py,sha256=0qar1-RUtTV1Z2-p35vXXe8atfrmRJ3B0pFPN6rwmbo,1995
153
+ notionary/page/content/renderer/renderers/table.py,sha256=CqmV9ii6MVbd8YJvJ18HXBPWXEaSM0i2ufgKJIbJlCo,4619
154
+ notionary/page/content/renderer/renderers/table_of_contents.py,sha256=pWlkz-jQ2jviI-it0XxJQsZ0G5I2ZtxZkC7pBSWnRBg,988
155
+ notionary/page/content/renderer/renderers/table_row.py,sha256=Zs1yFsU4hKIZizg4rGo8THGZ0VKrb3KNUQOT9ehmzFk,623
156
+ notionary/page/content/renderer/renderers/todo.py,sha256=EmW5V30unQVSq0kc1Uvr2SL-FSJ91RF6VQ_hXCUNgI0,2145
157
+ notionary/page/content/renderer/renderers/toggle.py,sha256=01kMW35ositTf1JK5Q-tWv-wqaYv14ADqWoN96_LwoI,2096
158
+ notionary/page/content/renderer/renderers/toggleable_heading.py,sha256=KSo43cxm0kC_8ns4zSkPv0NB4vIY1l-nIZlACeIbr9I,3150
159
+ notionary/page/content/renderer/renderers/video.py,sha256=2pKJFFkJheRl-G4qaXIJTvPvwBrUqk11RqqYrly2ptI,943
160
+ notionary/page/content/syntax/models.py,sha256=NOmjz3cwlhIwSpIInkfrejzk_dUi6cd2vDtECwJhsU4,1897
161
+ notionary/page/content/syntax/service.py,sha256=kWg_E51VkX_e4CLgeVvN3B9_SGTc1UygVivLW64K9s4,17831
162
+ notionary/page/properties/client.py,sha256=KJgGc_LJ9vVn6836Y7UwECwPRKeX1uF0qI3PwMzoDuI,6730
163
+ notionary/page/properties/factory.py,sha256=YnVWZ98RGYpV9iEY4Ufk7InIoeP9vWwMn5sSvcbSQ2k,1248
164
+ notionary/page/properties/models.py,sha256=wkEjdpwDPIoEXzLxFVVaYPlSkLhdyWXNfWv_XlcIq1o,8823
165
+ notionary/page/properties/service.py,sha256=sM5Wb0nusR-4jhm70a04R115Vi8vIp111blDmWJfC7k,12627
166
+ notionary/shared/entity/client.py,sha256=knblCIKwUHgoxJ_z7QtrRES9E8P9keHQTvr6CMc69gA,1181
167
+ notionary/shared/entity/dto_parsers.py,sha256=yaADwtL9S6mlQzLSNlW71trL0E3FPBmykgI6wuLNKKU,2086
168
+ notionary/shared/entity/entity_metadata_update_client.py,sha256=MKNT6W4ZUVffdB1BzXBqcWuTqaaBBqZ7Q9cRLrynKOI,1769
169
+ notionary/shared/entity/schemas.py,sha256=-NDlmw3dWANFx2Nw_x1WKhtmp_PmcuzpJ2Tsxx7O23c,1132
170
+ notionary/shared/entity/service.py,sha256=8Q_mABjEGZvfGh3h5F0r6MGfoHUoWKWYSgGMPThjCF4,6089
171
+ notionary/shared/models/cover.py,sha256=JExK6GSy-dSJ0jcL0Ab3b27V5szd8MzDKLkeAGpLSvM,487
172
+ notionary/shared/models/file.py,sha256=kU_hiLHEQDirBDoKkIKutXlRTSv3-hRJRfaoW-1hGtA,442
173
+ notionary/shared/models/icon.py,sha256=f1NVijUb4B_HhcGA7GtVsS1izycb8u8R7A3uy5qAu0o,603
174
+ notionary/shared/models/parent.py,sha256=fptJhWHot35jN9IH9BhsXNMZfNClc8av1G2TR6SqRmY,888
175
+ notionary/shared/properties/type.py,sha256=04KNeWGzphJ2hN6AbVhfDfF89XxtSGzcmnatcPHkEQI,780
176
+ notionary/user/__init__.py,sha256=O1sa9EPnJKZgpEAARJhzgh0ULqmwB-JNIgoPUCwDGMo,111
177
+ notionary/user/base.py,sha256=XwlVFGU6zh5NtQYpxBKYbeyCEFIq3t65Sf9BQdket9g,2816
178
+ notionary/user/bot.py,sha256=G093TD2ZNxwtKpCqKreHxGDa7jsBsAGq8yEqfR3nIT0,2585
179
+ notionary/user/client.py,sha256=CDevJlHfNnrfPE2OaaLWXeNro72J4ezCfwgdM_SJeAg,1410
180
+ notionary/user/person.py,sha256=8w0xMNVLen8xx2DSff-3Y9H7x9A0B3FLZUZJQZ_qe4g,1144
181
+ notionary/user/schemas.py,sha256=ZPKopqd6OepGFPnbK3B13PgNH6l4hLCGMxpk0eWe41s,1432
182
+ notionary/user/service.py,sha256=20DaDC4Eozfzr2sf0VP3z6sORRKmfb5PdtGG02rJews,2565
183
+ notionary/utils/async_retry.py,sha256=pkkBZvdX7MYB9vCv0OUgLGpkeAfJjmblnvsO4CMH0yM,1200
184
+ notionary/utils/date.py,sha256=HPwqmZoylTFKkyI8q4BJXT3q9B39nE55uVZAyG4JnDw,1729
185
+ notionary/utils/fuzzy.py,sha256=nUo5c0R7VMBacQihK6pwh6JT2irfGRN2rEny-1Ohqas,1544
186
+ notionary/utils/pagination.py,sha256=-G6zDgZJRZwMLdepQUB9wDeZuhV5ZwPvmvUiHqLY4SE,1367
187
+ notionary/utils/singleton.py,sha256=eNUWTVwOs0k5WDbXZ78nKJibGSrvhoNwsXHWS_KiLhk,321
188
+ notionary/utils/uuid_utils.py,sha256=ygTQdiKmdtyb2iY7d9kuYbo8uGSeuhiHH2PhUza6ZUw,579
189
+ notionary/utils/mixins/logging.py,sha256=udd-5VlAwGZSexX-P2Kq0CQd6iVnz1RnwoiHgjbDkw4,1355
190
+ notionary/workspace/__init__.py,sha256=hfC3MNMGKlxRsTBgtE0ORz91mgRPRXY4mCKEtinYGRU,71
191
+ notionary/workspace/client.py,sha256=a0yrTpBLQViZjBz2cEOmGyKC1FU1LiiNgLB8dA71KZ4,2294
192
+ notionary/workspace/schemas.py,sha256=uITRJpqHZD7LF7wOqZ6Cdx51a4Uk9rWZ110ib9EbIrA,562
193
+ notionary/workspace/service.py,sha256=7OM8GCYHwNYfaNxKHfSBZKelEeVMHbl0I8x2uQzEO8s,4524
194
+ notionary/workspace/query/builder.py,sha256=H2n9x7HKf5KG3wavugr-W5ouV8-atHQSk_CJkMBhJnY,1898
195
+ notionary/workspace/query/models.py,sha256=H9EwWObHR84GocMo_8HlYhUbAacmDw8fCYjHZjI0e94,1708
196
+ notionary/workspace/query/service.py,sha256=Ul2Vlrb-CantrMfkGZ9VcKiigPz9bkOKSNpDRJHmOzE,4246
197
+ notionary-0.2.28.dist-info/METADATA,sha256=SrK8LWeojpnPrK8gm_8cKBaqqm8hmD9gYqMf_-sIaNI,9049
198
+ notionary-0.2.28.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
199
+ notionary-0.2.28.dist-info/licenses/LICENSE,sha256=FLNy3l12swSnCggq3zOW_3gh4uaZ12DGZL1tR6Bc5Sk,1102
200
+ notionary-0.2.28.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.
@@ -1,219 +0,0 @@
1
- import asyncio
2
- import os
3
- from abc import ABC
4
- from enum import Enum
5
- from typing import Any, Dict, Optional, Union
6
-
7
- import httpx
8
- from dotenv import load_dotenv
9
-
10
- from notionary.util import LoggingMixin
11
-
12
- load_dotenv()
13
-
14
-
15
- class HttpMethod(Enum):
16
- """
17
- Enumeration of supported HTTP methods for API requests.
18
- """
19
-
20
- GET = "get"
21
- POST = "post"
22
- PATCH = "patch"
23
- DELETE = "delete"
24
-
25
-
26
- class BaseNotionClient(LoggingMixin, ABC):
27
- """
28
- Base client for Notion API operations.
29
- Handles connection management and generic HTTP requests.
30
- """
31
-
32
- BASE_URL = "https://api.notion.com/v1"
33
- NOTION_VERSION = "2022-06-28"
34
-
35
- def __init__(self, token: Optional[str] = None, timeout: int = 30):
36
- self.token = token or self._find_token()
37
- if not self.token:
38
- raise ValueError("Notion API token is required")
39
-
40
- self.headers = {
41
- "Authorization": f"Bearer {self.token}",
42
- "Content-Type": "application/json",
43
- "Notion-Version": self.NOTION_VERSION,
44
- }
45
-
46
- self.client: Optional[httpx.AsyncClient] = None
47
- self.timeout = timeout
48
- self._is_initialized = False
49
-
50
- def __del__(self):
51
- """Auto-cleanup when client is destroyed."""
52
- if not hasattr(self, "client") or not self.client:
53
- return
54
-
55
- try:
56
- loop = asyncio.get_event_loop()
57
- if not loop.is_running():
58
- self.logger.warning(
59
- "Event loop not running, could not auto-close NotionClient"
60
- )
61
- return
62
-
63
- loop.create_task(self.close())
64
- self.logger.debug("Created cleanup task for NotionClient")
65
- except RuntimeError:
66
- self.logger.warning("No event loop available for auto-closing NotionClient")
67
-
68
- async def __aenter__(self):
69
- """Async context manager entry."""
70
- await self.ensure_initialized()
71
- return self
72
-
73
- async def __aexit__(self, exc_type, exc_val, exc_tb):
74
- """Async context manager exit."""
75
- await self.close()
76
-
77
- async def ensure_initialized(self) -> None:
78
- """
79
- Ensures the HTTP client is initialized.
80
- """
81
- if not self._is_initialized or not self.client:
82
- self.client = httpx.AsyncClient(headers=self.headers, timeout=self.timeout)
83
- self._is_initialized = True
84
- self.logger.debug("NotionClient initialized")
85
-
86
- async def close(self) -> None:
87
- """
88
- Closes the HTTP client and releases resources.
89
- """
90
- if not hasattr(self, "client") or not self.client:
91
- return
92
-
93
- await self.client.aclose()
94
- self.client = None
95
- self._is_initialized = False
96
- self.logger.debug("NotionClient closed")
97
-
98
- async def get(
99
- self, endpoint: str, params: Optional[Dict[str, Any]] = None
100
- ) -> Optional[Dict[str, Any]]:
101
- """
102
- Sends a GET request to the specified Notion API endpoint.
103
-
104
- Args:
105
- endpoint: The API endpoint (without base URL)
106
- params: Query parameters to include in the request
107
- """
108
- return await self._make_request(HttpMethod.GET, endpoint, params=params)
109
-
110
- async def post(
111
- self, endpoint: str, data: Optional[Dict[str, Any]] = None
112
- ) -> Optional[Dict[str, Any]]:
113
- """
114
- Sends a POST request to the specified Notion API endpoint.
115
-
116
- Args:
117
- endpoint: The API endpoint (without base URL)
118
- data: Request body data
119
- """
120
- return await self._make_request(HttpMethod.POST, endpoint, data)
121
-
122
- async def patch(
123
- self, endpoint: str, data: Optional[Dict[str, Any]] = None
124
- ) -> Optional[Dict[str, Any]]:
125
- """
126
- Sends a PATCH request to the specified Notion API endpoint.
127
-
128
- Args:
129
- endpoint: The API endpoint (without base URL)
130
- data: Request body data
131
- """
132
- return await self._make_request(HttpMethod.PATCH, endpoint, data)
133
-
134
- async def delete(self, endpoint: str) -> bool:
135
- """
136
- Sends a DELETE request to the specified Notion API endpoint.
137
-
138
- Args:
139
- endpoint: The API endpoint (without base URL)
140
- """
141
- result = await self._make_request(HttpMethod.DELETE, endpoint)
142
- return result is not None
143
-
144
- async def _make_request(
145
- self,
146
- method: Union[HttpMethod, str],
147
- endpoint: str,
148
- data: Optional[Dict[str, Any]] = None,
149
- params: Optional[Dict[str, Any]] = None,
150
- ) -> Optional[Dict[str, Any]]:
151
- """
152
- Executes an HTTP request and returns the data or None on error.
153
-
154
- Args:
155
- method: HTTP method to use
156
- endpoint: API endpoint
157
- data: Request body data (for POST/PATCH)
158
- params: Query parameters (for GET requests)
159
- """
160
- await self.ensure_initialized()
161
-
162
- url = f"{self.BASE_URL}/{endpoint.lstrip('/')}"
163
- method_str = (
164
- method.value if isinstance(method, HttpMethod) else str(method).lower()
165
- )
166
-
167
- try:
168
- self.logger.debug("Sending %s request to %s", method_str.upper(), url)
169
-
170
- request_kwargs = {}
171
-
172
- # Add query parameters for GET requests
173
- if params:
174
- request_kwargs["params"] = params
175
-
176
- if (
177
- method_str in [HttpMethod.POST.value, HttpMethod.PATCH.value]
178
- and data is not None
179
- ):
180
- request_kwargs["json"] = data
181
-
182
- response: httpx.Response = await getattr(self.client, method_str)(
183
- url, **request_kwargs
184
- )
185
-
186
- response.raise_for_status()
187
- result_data = response.json()
188
- self.logger.debug("Request successful: %s", url)
189
- return result_data
190
-
191
- except httpx.HTTPStatusError as e:
192
- error_msg = (
193
- f"HTTP status error: {e.response.status_code} - {e.response.text}"
194
- )
195
- self.logger.error("Request failed (%s): %s", url, error_msg)
196
- return None
197
-
198
- except httpx.RequestError as e:
199
- error_msg = f"Request error: {str(e)}"
200
- self.logger.error("Request error (%s): %s", url, error_msg)
201
- return None
202
-
203
- def _find_token(self) -> Optional[str]:
204
- """
205
- Finds the Notion API token from environment variables.
206
- """
207
- token = next(
208
- (
209
- os.getenv(var)
210
- for var in ("NOTION_SECRET", "NOTION_INTEGRATION_KEY", "NOTION_TOKEN")
211
- if os.getenv(var)
212
- ),
213
- None,
214
- )
215
- if token:
216
- self.logger.debug("Found token in environment variable.")
217
- return token
218
- self.logger.warning("No Notion API token found in environment variables")
219
- return None
@@ -1,5 +0,0 @@
1
- from ._bootstrap import bootstrap_blocks
2
-
3
- __all__ = [
4
- "bootstrap_blocks",
5
- ]