notionary 0.1.26__tar.gz → 0.1.28__tar.gz

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 (63) hide show
  1. {notionary-0.1.26 → notionary-0.1.28}/PKG-INFO +1 -1
  2. {notionary-0.1.26 → notionary-0.1.28}/notionary/page/metadata/notion_icon_manager.py +12 -6
  3. {notionary-0.1.26 → notionary-0.1.28}/notionary/page/metadata/notion_page_cover_manager.py +11 -1
  4. {notionary-0.1.26 → notionary-0.1.28}/notionary/page/notion_page.py +1 -1
  5. {notionary-0.1.26 → notionary-0.1.28}/notionary.egg-info/PKG-INFO +1 -1
  6. {notionary-0.1.26 → notionary-0.1.28}/setup.py +1 -1
  7. {notionary-0.1.26 → notionary-0.1.28}/LICENSE +0 -0
  8. {notionary-0.1.26 → notionary-0.1.28}/README.md +0 -0
  9. {notionary-0.1.26 → notionary-0.1.28}/notionary/__init__.py +0 -0
  10. {notionary-0.1.26 → notionary-0.1.28}/notionary/database/database_discovery.py +0 -0
  11. {notionary-0.1.26 → notionary-0.1.28}/notionary/database/database_info_service.py +0 -0
  12. {notionary-0.1.26 → notionary-0.1.28}/notionary/database/models/page_result.py +0 -0
  13. {notionary-0.1.26 → notionary-0.1.28}/notionary/database/notion_database.py +0 -0
  14. {notionary-0.1.26 → notionary-0.1.28}/notionary/database/notion_database_factory.py +0 -0
  15. {notionary-0.1.26 → notionary-0.1.28}/notionary/elements/audio_element.py +0 -0
  16. {notionary-0.1.26 → notionary-0.1.28}/notionary/elements/bookmark_element.py +0 -0
  17. {notionary-0.1.26 → notionary-0.1.28}/notionary/elements/bulleted_list_element.py +0 -0
  18. {notionary-0.1.26 → notionary-0.1.28}/notionary/elements/callout_element.py +0 -0
  19. {notionary-0.1.26 → notionary-0.1.28}/notionary/elements/code_block_element.py +0 -0
  20. {notionary-0.1.26 → notionary-0.1.28}/notionary/elements/divider_element.py +0 -0
  21. {notionary-0.1.26 → notionary-0.1.28}/notionary/elements/embed_element.py +0 -0
  22. {notionary-0.1.26 → notionary-0.1.28}/notionary/elements/heading_element.py +0 -0
  23. {notionary-0.1.26 → notionary-0.1.28}/notionary/elements/image_element.py +0 -0
  24. {notionary-0.1.26 → notionary-0.1.28}/notionary/elements/mention_element.py +0 -0
  25. {notionary-0.1.26 → notionary-0.1.28}/notionary/elements/notion_block_element.py +0 -0
  26. {notionary-0.1.26 → notionary-0.1.28}/notionary/elements/numbered_list_element.py +0 -0
  27. {notionary-0.1.26 → notionary-0.1.28}/notionary/elements/paragraph_element.py +0 -0
  28. {notionary-0.1.26 → notionary-0.1.28}/notionary/elements/prompts/element_prompt_content.py +0 -0
  29. {notionary-0.1.26 → notionary-0.1.28}/notionary/elements/prompts/synthax_prompt_builder.py +0 -0
  30. {notionary-0.1.26 → notionary-0.1.28}/notionary/elements/qoute_element.py +0 -0
  31. {notionary-0.1.26 → notionary-0.1.28}/notionary/elements/registry/block_element_registry.py +0 -0
  32. {notionary-0.1.26 → notionary-0.1.28}/notionary/elements/registry/block_element_registry_builder.py +0 -0
  33. {notionary-0.1.26 → notionary-0.1.28}/notionary/elements/table_element.py +0 -0
  34. {notionary-0.1.26 → notionary-0.1.28}/notionary/elements/text_inline_formatter.py +0 -0
  35. {notionary-0.1.26 → notionary-0.1.28}/notionary/elements/todo_element.py +0 -0
  36. {notionary-0.1.26 → notionary-0.1.28}/notionary/elements/toggle_element.py +0 -0
  37. {notionary-0.1.26 → notionary-0.1.28}/notionary/elements/toggleable_heading_element.py +0 -0
  38. {notionary-0.1.26 → notionary-0.1.28}/notionary/elements/video_element.py +0 -0
  39. {notionary-0.1.26 → notionary-0.1.28}/notionary/exceptions/database_exceptions.py +0 -0
  40. {notionary-0.1.26 → notionary-0.1.28}/notionary/exceptions/page_creation_exception.py +0 -0
  41. {notionary-0.1.26 → notionary-0.1.28}/notionary/notion_client.py +0 -0
  42. {notionary-0.1.26 → notionary-0.1.28}/notionary/page/content/notion_page_content_chunker.py +0 -0
  43. {notionary-0.1.26 → notionary-0.1.28}/notionary/page/content/page_content_manager.py +0 -0
  44. {notionary-0.1.26 → notionary-0.1.28}/notionary/page/markdown_to_notion_converter.py +0 -0
  45. {notionary-0.1.26 → notionary-0.1.28}/notionary/page/metadata/metadata_editor.py +0 -0
  46. {notionary-0.1.26 → notionary-0.1.28}/notionary/page/notion_page_factory.py +0 -0
  47. {notionary-0.1.26 → notionary-0.1.28}/notionary/page/notion_to_markdown_converter.py +0 -0
  48. {notionary-0.1.26 → notionary-0.1.28}/notionary/page/properites/database_property_service.py +0 -0
  49. {notionary-0.1.26 → notionary-0.1.28}/notionary/page/properites/page_property_manager.py +0 -0
  50. {notionary-0.1.26 → notionary-0.1.28}/notionary/page/properites/property_formatter.py +0 -0
  51. {notionary-0.1.26 → notionary-0.1.28}/notionary/page/properites/property_operation_result.py +0 -0
  52. {notionary-0.1.26 → notionary-0.1.28}/notionary/page/properites/property_value_extractor.py +0 -0
  53. {notionary-0.1.26 → notionary-0.1.28}/notionary/page/relations/notion_page_relation_manager.py +0 -0
  54. {notionary-0.1.26 → notionary-0.1.28}/notionary/page/relations/notion_page_title_resolver.py +0 -0
  55. {notionary-0.1.26 → notionary-0.1.28}/notionary/page/relations/page_database_relation.py +0 -0
  56. {notionary-0.1.26 → notionary-0.1.28}/notionary/page/relations/relation_operation_result.py +0 -0
  57. {notionary-0.1.26 → notionary-0.1.28}/notionary/util/logging_mixin.py +0 -0
  58. {notionary-0.1.26 → notionary-0.1.28}/notionary/util/page_id_utils.py +0 -0
  59. {notionary-0.1.26 → notionary-0.1.28}/notionary.egg-info/SOURCES.txt +0 -0
  60. {notionary-0.1.26 → notionary-0.1.28}/notionary.egg-info/dependency_links.txt +0 -0
  61. {notionary-0.1.26 → notionary-0.1.28}/notionary.egg-info/requires.txt +0 -0
  62. {notionary-0.1.26 → notionary-0.1.28}/notionary.egg-info/top_level.txt +0 -0
  63. {notionary-0.1.26 → notionary-0.1.28}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: notionary
3
- Version: 0.1.26
3
+ Version: 0.1.28
4
4
  Summary: A toolkit to convert between Markdown and Notion blocks
5
5
  Home-page: https://github.com/mathisarends/notionary
6
6
  Author: Mathis Arends
@@ -26,19 +26,25 @@ class NotionPageIconManager(LoggingMixin):
26
26
  Retrieves the page icon - either emoji or external URL.
27
27
 
28
28
  Returns:
29
- str: Emoji character or URL if set, None if no icon
29
+ Optional[str]: Emoji character or URL if set, None if no icon
30
30
  """
31
31
  page_data = await self._client.get_page(self.page_id)
32
32
 
33
- if not page_data or "icon" not in page_data:
34
- return None
33
+ if not page_data:
34
+ return ""
35
+
36
+ # Get icon data, default to empty dict if not present or None
37
+ icon_data = page_data.get("icon")
38
+
39
+ # If icon is None or not present, return None
40
+ if not icon_data:
41
+ return ""
35
42
 
36
- icon_data = page_data.get("icon", {})
37
43
  icon_type = icon_data.get("type")
38
44
 
39
45
  if icon_type == "emoji":
40
46
  return icon_data.get("emoji")
41
- elif icon_type == "external":
47
+ if icon_type == "external":
42
48
  return icon_data.get("external", {}).get("url")
43
49
 
44
- return None
50
+ return ""
@@ -40,4 +40,14 @@ class NotionPageCoverManager(LoggingMixin):
40
40
  if not page_data:
41
41
  return ""
42
42
 
43
- return page_data.get("cover", {}).get("external", {}).get("url", "")
43
+ cover = page_data.get("cover")
44
+
45
+ if not cover or not isinstance(cover, dict):
46
+ return ""
47
+
48
+ external = cover.get("external")
49
+
50
+ if not external or not isinstance(external, dict):
51
+ return ""
52
+
53
+ return external.get("url", "")
@@ -204,7 +204,7 @@ class NotionPage(LoggingMixin):
204
204
  """
205
205
  return await self._page_icon_manager.set_icon(emoji, external_url)
206
206
 
207
- async def get_icon(self) -> Optional[str]:
207
+ async def get_icon(self) -> str:
208
208
  """
209
209
  Retrieve the page icon - either emoji or external URL.
210
210
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: notionary
3
- Version: 0.1.26
3
+ Version: 0.1.28
4
4
  Summary: A toolkit to convert between Markdown and Notion blocks
5
5
  Home-page: https://github.com/mathisarends/notionary
6
6
  Author: Mathis Arends
@@ -2,7 +2,7 @@ from setuptools import setup, find_namespace_packages
2
2
 
3
3
  setup(
4
4
  name="notionary",
5
- version="0.1.26",
5
+ version="0.1.28",
6
6
  packages=find_namespace_packages(include=["notionary*"]),
7
7
  install_requires=[
8
8
  "httpx>=0.28.0",
File without changes
File without changes
File without changes