better-notion 0.9.7__tar.gz → 0.9.9__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 (163) hide show
  1. {better_notion-0.9.7 → better_notion-0.9.9}/PKG-INFO +1 -1
  2. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_cli/display.py +3 -6
  3. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_cli/main.py +30 -2
  4. {better_notion-0.9.7 → better_notion-0.9.9}/pyproject.toml +1 -1
  5. {better_notion-0.9.7 → better_notion-0.9.9}/.gitignore +0 -0
  6. {better_notion-0.9.7 → better_notion-0.9.9}/LICENSE +0 -0
  7. {better_notion-0.9.7 → better_notion-0.9.9}/README.md +0 -0
  8. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/__init__.py +0 -0
  9. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_api/__init__.py +0 -0
  10. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_api/client.py +0 -0
  11. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_api/collections/__init__.py +0 -0
  12. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_api/collections/blocks.py +0 -0
  13. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_api/collections/comments.py +0 -0
  14. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_api/collections/databases.py +0 -0
  15. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_api/collections/pages.py +0 -0
  16. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_api/collections/users.py +0 -0
  17. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_api/entities/__init__.py +0 -0
  18. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_api/entities/block.py +0 -0
  19. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_api/entities/comment.py +0 -0
  20. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_api/entities/database.py +0 -0
  21. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_api/entities/page.py +0 -0
  22. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_api/entities/user.py +0 -0
  23. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_api/errors.py +0 -0
  24. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_api/oauth.py +0 -0
  25. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_api/properties/__init__.py +0 -0
  26. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_api/properties/base.py +0 -0
  27. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_api/properties/checkbox.py +0 -0
  28. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_api/properties/date.py +0 -0
  29. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_api/properties/email.py +0 -0
  30. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_api/properties/number.py +0 -0
  31. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_api/properties/phone.py +0 -0
  32. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_api/properties/rich_text.py +0 -0
  33. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_api/properties/select.py +0 -0
  34. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_api/properties/title.py +0 -0
  35. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_api/properties/url.py +0 -0
  36. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_api/utils/__init__.py +0 -0
  37. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_api/utils/pagination.py +0 -0
  38. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_cli/__init__.py +0 -0
  39. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_cli/async_typer.py +0 -0
  40. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_cli/commands/__init__.py +0 -0
  41. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_cli/commands/auth.py +0 -0
  42. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_cli/commands/blocks.py +0 -0
  43. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_cli/commands/comments.py +0 -0
  44. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_cli/commands/config.py +0 -0
  45. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_cli/commands/databases.py +0 -0
  46. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_cli/commands/pages.py +0 -0
  47. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_cli/commands/plugins.py +0 -0
  48. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_cli/commands/search.py +0 -0
  49. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_cli/commands/update.py +0 -0
  50. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_cli/commands/users.py +0 -0
  51. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_cli/commands/workspace.py +0 -0
  52. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_cli/config.py +0 -0
  53. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_cli/errors.py +0 -0
  54. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_cli/markdown.py +0 -0
  55. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_cli/response.py +0 -0
  56. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_cli/utils/__init__.py +0 -0
  57. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/__init__.py +0 -0
  58. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/base/__init__.py +0 -0
  59. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/base/entity.py +0 -0
  60. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/cache/__init__.py +0 -0
  61. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/cache/cache.py +0 -0
  62. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/client.py +0 -0
  63. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/managers/__init__.py +0 -0
  64. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/managers/block_manager.py +0 -0
  65. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/managers/comment_manager.py +0 -0
  66. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/managers/database_manager.py +0 -0
  67. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/managers/page_manager.py +0 -0
  68. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/managers/user_manager.py +0 -0
  69. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/models/__init__.py +0 -0
  70. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/models/block.py +0 -0
  71. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/models/blocks/__init__.py +0 -0
  72. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/models/blocks/audio.py +0 -0
  73. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/models/blocks/bookmark.py +0 -0
  74. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/models/blocks/breadcrumb.py +0 -0
  75. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/models/blocks/bullet.py +0 -0
  76. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/models/blocks/callout.py +0 -0
  77. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/models/blocks/code.py +0 -0
  78. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/models/blocks/column.py +0 -0
  79. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/models/blocks/column_list.py +0 -0
  80. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/models/blocks/divider.py +0 -0
  81. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/models/blocks/embed.py +0 -0
  82. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/models/blocks/equation.py +0 -0
  83. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/models/blocks/file.py +0 -0
  84. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/models/blocks/heading.py +0 -0
  85. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/models/blocks/image.py +0 -0
  86. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/models/blocks/numbered.py +0 -0
  87. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/models/blocks/paragraph.py +0 -0
  88. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/models/blocks/pdf.py +0 -0
  89. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/models/blocks/quote.py +0 -0
  90. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/models/blocks/synced_block.py +0 -0
  91. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/models/blocks/table.py +0 -0
  92. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/models/blocks/table_row.py +0 -0
  93. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/models/blocks/template.py +0 -0
  94. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/models/blocks/todo.py +0 -0
  95. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/models/blocks/toggle.py +0 -0
  96. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/models/blocks/video.py +0 -0
  97. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/models/comment.py +0 -0
  98. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/models/database.py +0 -0
  99. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/models/page.py +0 -0
  100. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/models/user.py +0 -0
  101. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/parents/__init__.py +0 -0
  102. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/properties/__init__.py +0 -0
  103. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/properties/formula.py +0 -0
  104. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/properties/parsers.py +0 -0
  105. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/properties/relation.py +0 -0
  106. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/query/__init__.py +0 -0
  107. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/query/database_query.py +0 -0
  108. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/_sdk/query/filter_translator.py +0 -0
  109. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/plugins/__init__.py +0 -0
  110. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/plugins/base.py +0 -0
  111. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/plugins/loader.py +0 -0
  112. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/plugins/official/__init__.py +0 -0
  113. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/plugins/official/productivity.py +0 -0
  114. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/plugins/state.py +0 -0
  115. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/utils/__init__.py +0 -0
  116. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/utils/helpers.py +0 -0
  117. {better_notion-0.9.7 → better_notion-0.9.9}/better_notion/utils/retry.py +0 -0
  118. {better_notion-0.9.7 → better_notion-0.9.9}/tests/_sdk/base/test_entity.py +0 -0
  119. {better_notion-0.9.7 → better_notion-0.9.9}/tests/_sdk/cache/test_cache.py +0 -0
  120. {better_notion-0.9.7 → better_notion-0.9.9}/tests/_sdk/models/__init__.py +0 -0
  121. {better_notion-0.9.7 → better_notion-0.9.9}/tests/_sdk/models/blocks/test_advanced_blocks.py +0 -0
  122. {better_notion-0.9.7 → better_notion-0.9.9}/tests/_sdk/models/test_block.py +0 -0
  123. {better_notion-0.9.7 → better_notion-0.9.9}/tests/_sdk/models/test_database.py +0 -0
  124. {better_notion-0.9.7 → better_notion-0.9.9}/tests/_sdk/models/test_database_bug.py +0 -0
  125. {better_notion-0.9.7 → better_notion-0.9.9}/tests/_sdk/models/test_page.py +0 -0
  126. {better_notion-0.9.7 → better_notion-0.9.9}/tests/_sdk/models/test_user.py +0 -0
  127. {better_notion-0.9.7 → better_notion-0.9.9}/tests/_sdk/properties/test_formula.py +0 -0
  128. {better_notion-0.9.7 → better_notion-0.9.9}/tests/_sdk/properties/test_parsers.py +0 -0
  129. {better_notion-0.9.7 → better_notion-0.9.9}/tests/_sdk/properties/test_relation.py +0 -0
  130. {better_notion-0.9.7 → better_notion-0.9.9}/tests/_sdk/query/test_database_query.py +0 -0
  131. {better_notion-0.9.7 → better_notion-0.9.9}/tests/_sdk/query/test_filter_translator.py +0 -0
  132. {better_notion-0.9.7 → better_notion-0.9.9}/tests/_sdk/test_client.py +0 -0
  133. {better_notion-0.9.7 → better_notion-0.9.9}/tests/_sdk/test_comment.py +0 -0
  134. {better_notion-0.9.7 → better_notion-0.9.9}/tests/cli/__init__.py +0 -0
  135. {better_notion-0.9.7 → better_notion-0.9.9}/tests/cli/test_async_typer.py +0 -0
  136. {better_notion-0.9.7 → better_notion-0.9.9}/tests/cli/test_config.py +0 -0
  137. {better_notion-0.9.7 → better_notion-0.9.9}/tests/cli/test_display.py +0 -0
  138. {better_notion-0.9.7 → better_notion-0.9.9}/tests/cli/test_errors.py +0 -0
  139. {better_notion-0.9.7 → better_notion-0.9.9}/tests/cli/test_main.py +0 -0
  140. {better_notion-0.9.7 → better_notion-0.9.9}/tests/cli/test_pages_commands.py +0 -0
  141. {better_notion-0.9.7 → better_notion-0.9.9}/tests/cli/test_response.py +0 -0
  142. {better_notion-0.9.7 → better_notion-0.9.9}/tests/cli/test_update.py +0 -0
  143. {better_notion-0.9.7 → better_notion-0.9.9}/tests/conftest.py +0 -0
  144. {better_notion-0.9.7 → better_notion-0.9.9}/tests/integration/conftest.py +0 -0
  145. {better_notion-0.9.7 → better_notion-0.9.9}/tests/integration/test_blocks.py +0 -0
  146. {better_notion-0.9.7 → better_notion-0.9.9}/tests/integration/test_databases.py +0 -0
  147. {better_notion-0.9.7 → better_notion-0.9.9}/tests/integration/test_pages.py +0 -0
  148. {better_notion-0.9.7 → better_notion-0.9.9}/tests/integration/test_search.py +0 -0
  149. {better_notion-0.9.7 → better_notion-0.9.9}/tests/integration/test_users.py +0 -0
  150. {better_notion-0.9.7 → better_notion-0.9.9}/tests/plugins/__init__.py +0 -0
  151. {better_notion-0.9.7 → better_notion-0.9.9}/tests/plugins/test_base.py +0 -0
  152. {better_notion-0.9.7 → better_notion-0.9.9}/tests/plugins/test_loader.py +0 -0
  153. {better_notion-0.9.7 → better_notion-0.9.9}/tests/plugins/test_marketplace.py +0 -0
  154. {better_notion-0.9.7 → better_notion-0.9.9}/tests/plugins/test_plugin_commands_state.py +0 -0
  155. {better_notion-0.9.7 → better_notion-0.9.9}/tests/plugins/test_productivity_plugin.py +0 -0
  156. {better_notion-0.9.7 → better_notion-0.9.9}/tests/plugins/test_state.py +0 -0
  157. {better_notion-0.9.7 → better_notion-0.9.9}/tests/unit/test_client.py +0 -0
  158. {better_notion-0.9.7 → better_notion-0.9.9}/tests/unit/test_collections.py +0 -0
  159. {better_notion-0.9.7 → better_notion-0.9.9}/tests/unit/test_entities.py +0 -0
  160. {better_notion-0.9.7 → better_notion-0.9.9}/tests/unit/test_errors.py +0 -0
  161. {better_notion-0.9.7 → better_notion-0.9.9}/tests/unit/test_helpers.py +0 -0
  162. {better_notion-0.9.7 → better_notion-0.9.9}/tests/unit/test_properties.py +0 -0
  163. {better_notion-0.9.7 → better_notion-0.9.9}/tests/utils/test_retry.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: better-notion
3
- Version: 0.9.7
3
+ Version: 0.9.9
4
4
  Summary: A high-level Python SDK for the Notion API with developer experience in mind.
5
5
  Project-URL: Homepage, https://github.com/nesalia-inc/better-notion
6
6
  Project-URL: Documentation, https://github.com/nesalia-inc/better-notion#readme
@@ -130,9 +130,6 @@ def print_rich_table(
130
130
  if console is None:
131
131
  console = Console()
132
132
 
133
- if title:
134
- console.print(f"[bold blue]{title}[/bold blue]")
135
-
136
133
  # Convert dict with list headers to list of dicts
137
134
  if isinstance(data, dict) and all(isinstance(v, list) for v in data.values()):
138
135
  # data format: {"col1": [val1, val2], "col2": [val3, val4]}
@@ -143,6 +140,7 @@ def print_rich_table(
143
140
  table.add_column(col, style="cyan")
144
141
  for col in columns:
145
142
  table.add_row(*data[col])
143
+ console.print(table)
146
144
  elif isinstance(data, list):
147
145
  # data format: [{"col1": val1, "col2": val2}, ...]
148
146
  if not data:
@@ -154,12 +152,11 @@ def print_rich_table(
154
152
  for col in columns:
155
153
  table.add_column(col, style="cyan")
156
154
  for row in data:
157
- table.add_row(*[row.get(col, "") for col in columns])
155
+ table.add_row(*[str(row.get(col, "")) for col in columns])
156
+ console.print(table)
158
157
  else:
159
158
  console.print(str(data))
160
159
 
161
- console.print()
162
-
163
160
 
164
161
  def print_rich_info(
165
162
  info: dict[str, Any],
@@ -81,13 +81,41 @@ _load_official_plugins()
81
81
 
82
82
 
83
83
  @app.command()
84
- def version() -> None:
84
+ def version(
85
+ json_output: bool = typer.Option(False, "--json", "-j", help="Output as JSON"),
86
+ ) -> None:
85
87
  """
86
88
  Show the CLI version.
87
89
 
88
90
  Displays the version information for the Better Notion CLI.
89
91
  """
90
- typer.echo(format_success({"name": "Better Notion CLI", "version": __version__}))
92
+ from better_notion._cli.display import is_human_mode, print_rich_info
93
+
94
+ use_json = json_output or not is_human_mode()
95
+
96
+ version_info = {
97
+ "name": "Better Notion CLI",
98
+ "version": __version__
99
+ }
100
+
101
+ if use_json:
102
+ import json
103
+ typer.echo(json.dumps({
104
+ "success": True,
105
+ "meta": {
106
+ "version": __version__,
107
+ "timestamp": None,
108
+ "rate_limit": {
109
+ "remaining": None,
110
+ "reset_at": None
111
+ }
112
+ },
113
+ "data": version_info
114
+ }, indent=2))
115
+ else:
116
+ from rich.console import Console
117
+ console = Console()
118
+ console.print(f"[bold blue]Better Notion CLI[/bold blue] version [bold green]{__version__}[/bold green]")
91
119
 
92
120
 
93
121
  @app.callback()
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "better-notion"
3
- version = "0.9.7"
3
+ version = "0.9.9"
4
4
  description = "A high-level Python SDK for the Notion API with developer experience in mind."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
File without changes
File without changes
File without changes