notionary 0.3.1__py3-none-any.whl → 0.4.1__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.
- notionary/__init__.py +49 -1
- notionary/blocks/client.py +37 -11
- notionary/blocks/enums.py +0 -6
- notionary/blocks/rich_text/markdown_rich_text_converter.py +49 -15
- notionary/blocks/rich_text/models.py +13 -4
- notionary/blocks/rich_text/name_id_resolver/data_source.py +9 -3
- notionary/blocks/rich_text/name_id_resolver/person.py +6 -2
- notionary/blocks/rich_text/rich_text_markdown_converter.py +10 -3
- notionary/blocks/schemas.py +33 -78
- notionary/comments/client.py +19 -6
- notionary/comments/factory.py +10 -3
- notionary/comments/schemas.py +10 -31
- notionary/comments/service.py +12 -4
- notionary/data_source/http/data_source_instance_client.py +59 -17
- notionary/data_source/properties/schemas.py +156 -115
- notionary/data_source/query/builder.py +67 -18
- notionary/data_source/query/resolver.py +16 -5
- notionary/data_source/query/schema.py +24 -6
- notionary/data_source/query/validator.py +18 -6
- notionary/data_source/schema/registry.py +31 -12
- notionary/data_source/schema/service.py +66 -20
- notionary/data_source/schemas.py +2 -2
- notionary/data_source/service.py +103 -43
- notionary/database/client.py +27 -9
- notionary/database/database_metadata_update_client.py +12 -4
- notionary/database/schemas.py +2 -2
- notionary/database/service.py +14 -9
- notionary/exceptions/__init__.py +20 -4
- notionary/exceptions/api.py +2 -2
- notionary/exceptions/base.py +1 -1
- notionary/exceptions/block_parsing.py +9 -5
- notionary/exceptions/data_source/builder.py +13 -7
- notionary/exceptions/data_source/properties.py +6 -4
- notionary/exceptions/file_upload.py +76 -0
- notionary/exceptions/properties.py +7 -5
- notionary/exceptions/search.py +10 -6
- notionary/file_upload/__init__.py +4 -0
- notionary/file_upload/client.py +128 -210
- notionary/file_upload/config/__init__.py +17 -0
- notionary/file_upload/config/config.py +39 -0
- notionary/file_upload/config/constants.py +16 -0
- notionary/file_upload/file/reader.py +28 -0
- notionary/file_upload/query/__init__.py +7 -0
- notionary/file_upload/query/builder.py +58 -0
- notionary/file_upload/query/models.py +37 -0
- notionary/file_upload/schemas.py +80 -0
- notionary/file_upload/service.py +182 -291
- notionary/file_upload/validation/factory.py +66 -0
- notionary/file_upload/validation/impl/file_name_length.py +25 -0
- notionary/file_upload/validation/models.py +134 -0
- notionary/file_upload/validation/port.py +7 -0
- notionary/file_upload/validation/service.py +17 -0
- notionary/file_upload/validation/validators/__init__.py +11 -0
- notionary/file_upload/validation/validators/file_exists.py +15 -0
- notionary/file_upload/validation/validators/file_extension.py +131 -0
- notionary/file_upload/validation/validators/file_name_length.py +21 -0
- notionary/file_upload/validation/validators/upload_limit.py +31 -0
- notionary/http/client.py +33 -30
- notionary/page/content/__init__.py +9 -0
- notionary/page/content/factory.py +21 -7
- notionary/page/content/markdown/builder.py +85 -23
- notionary/page/content/markdown/nodes/audio.py +8 -4
- notionary/page/content/markdown/nodes/base.py +3 -3
- notionary/page/content/markdown/nodes/bookmark.py +5 -3
- notionary/page/content/markdown/nodes/breadcrumb.py +2 -2
- notionary/page/content/markdown/nodes/bulleted_list.py +5 -3
- notionary/page/content/markdown/nodes/callout.py +2 -2
- notionary/page/content/markdown/nodes/code.py +5 -3
- notionary/page/content/markdown/nodes/columns.py +3 -3
- notionary/page/content/markdown/nodes/container.py +9 -5
- notionary/page/content/markdown/nodes/divider.py +2 -2
- notionary/page/content/markdown/nodes/embed.py +8 -4
- notionary/page/content/markdown/nodes/equation.py +4 -2
- notionary/page/content/markdown/nodes/file.py +8 -4
- notionary/page/content/markdown/nodes/heading.py +2 -2
- notionary/page/content/markdown/nodes/image.py +8 -4
- notionary/page/content/markdown/nodes/mixins/caption.py +5 -3
- notionary/page/content/markdown/nodes/numbered_list.py +5 -3
- notionary/page/content/markdown/nodes/paragraph.py +4 -2
- notionary/page/content/markdown/nodes/pdf.py +8 -4
- notionary/page/content/markdown/nodes/quote.py +2 -2
- notionary/page/content/markdown/nodes/space.py +2 -2
- notionary/page/content/markdown/nodes/table.py +8 -5
- notionary/page/content/markdown/nodes/table_of_contents.py +2 -2
- notionary/page/content/markdown/nodes/todo.py +15 -7
- notionary/page/content/markdown/nodes/toggle.py +2 -2
- notionary/page/content/markdown/nodes/video.py +8 -4
- notionary/page/content/markdown/structured_output/__init__.py +73 -0
- notionary/page/content/markdown/structured_output/models.py +391 -0
- notionary/page/content/markdown/structured_output/service.py +211 -0
- notionary/page/content/parser/context.py +1 -1
- notionary/page/content/parser/factory.py +26 -8
- notionary/page/content/parser/parsers/audio.py +12 -32
- notionary/page/content/parser/parsers/base.py +2 -2
- notionary/page/content/parser/parsers/bookmark.py +2 -2
- notionary/page/content/parser/parsers/breadcrumb.py +2 -2
- notionary/page/content/parser/parsers/bulleted_list.py +19 -6
- notionary/page/content/parser/parsers/callout.py +15 -5
- notionary/page/content/parser/parsers/caption.py +9 -3
- notionary/page/content/parser/parsers/code.py +21 -7
- notionary/page/content/parser/parsers/column.py +8 -4
- notionary/page/content/parser/parsers/column_list.py +19 -7
- notionary/page/content/parser/parsers/divider.py +2 -2
- notionary/page/content/parser/parsers/embed.py +2 -4
- notionary/page/content/parser/parsers/equation.py +8 -4
- notionary/page/content/parser/parsers/file.py +12 -34
- notionary/page/content/parser/parsers/file_like_block.py +109 -0
- notionary/page/content/parser/parsers/heading.py +31 -10
- notionary/page/content/parser/parsers/image.py +12 -34
- notionary/page/content/parser/parsers/numbered_list.py +18 -6
- notionary/page/content/parser/parsers/paragraph.py +3 -1
- notionary/page/content/parser/parsers/pdf.py +12 -34
- notionary/page/content/parser/parsers/quote.py +28 -9
- notionary/page/content/parser/parsers/space.py +2 -2
- notionary/page/content/parser/parsers/table.py +31 -10
- notionary/page/content/parser/parsers/table_of_contents.py +7 -3
- notionary/page/content/parser/parsers/todo.py +15 -5
- notionary/page/content/parser/parsers/toggle.py +15 -5
- notionary/page/content/parser/parsers/video.py +12 -34
- notionary/page/content/parser/post_processing/handlers/rich_text_length.py +8 -2
- notionary/page/content/parser/post_processing/handlers/rich_text_length_truncation.py +8 -2
- notionary/page/content/parser/post_processing/service.py +3 -1
- notionary/page/content/parser/pre_processsing/handlers/column_syntax.py +21 -7
- notionary/page/content/parser/pre_processsing/handlers/indentation.py +11 -4
- notionary/page/content/parser/pre_processsing/handlers/video_syntax.py +13 -6
- notionary/page/content/parser/service.py +4 -1
- notionary/page/content/renderer/context.py +15 -5
- notionary/page/content/renderer/factory.py +12 -6
- notionary/page/content/renderer/post_processing/handlers/numbered_list.py +19 -9
- notionary/page/content/renderer/renderers/audio.py +20 -23
- notionary/page/content/renderer/renderers/base.py +3 -3
- notionary/page/content/renderer/renderers/bookmark.py +3 -1
- notionary/page/content/renderer/renderers/bulleted_list.py +11 -5
- notionary/page/content/renderer/renderers/callout.py +19 -7
- notionary/page/content/renderer/renderers/captioned_block.py +11 -5
- notionary/page/content/renderer/renderers/code.py +6 -2
- notionary/page/content/renderer/renderers/column.py +3 -1
- notionary/page/content/renderer/renderers/column_list.py +3 -1
- notionary/page/content/renderer/renderers/embed.py +3 -1
- notionary/page/content/renderer/renderers/equation.py +3 -1
- notionary/page/content/renderer/renderers/file.py +20 -23
- notionary/page/content/renderer/renderers/file_like_block.py +47 -0
- notionary/page/content/renderer/renderers/heading.py +22 -8
- notionary/page/content/renderer/renderers/image.py +20 -23
- notionary/page/content/renderer/renderers/numbered_list.py +8 -3
- notionary/page/content/renderer/renderers/paragraph.py +12 -4
- notionary/page/content/renderer/renderers/pdf.py +20 -23
- notionary/page/content/renderer/renderers/quote.py +14 -6
- notionary/page/content/renderer/renderers/table.py +15 -5
- notionary/page/content/renderer/renderers/todo.py +16 -6
- notionary/page/content/renderer/renderers/toggle.py +8 -4
- notionary/page/content/renderer/renderers/video.py +20 -23
- notionary/page/content/renderer/service.py +9 -3
- notionary/page/content/service.py +21 -7
- notionary/page/content/syntax/definition/__init__.py +11 -0
- notionary/page/content/syntax/definition/models.py +57 -0
- notionary/page/content/syntax/definition/registry.py +371 -0
- notionary/page/content/syntax/prompts/__init__.py +4 -0
- notionary/page/content/syntax/prompts/models.py +11 -0
- notionary/page/content/syntax/prompts/registry.py +703 -0
- notionary/page/page_metadata_update_client.py +12 -4
- notionary/page/properties/client.py +46 -16
- notionary/page/properties/factory.py +6 -2
- notionary/page/properties/{models.py → schemas.py} +93 -107
- notionary/page/properties/service.py +111 -37
- notionary/page/schemas.py +3 -3
- notionary/page/service.py +21 -7
- notionary/shared/entity/client.py +6 -2
- notionary/shared/entity/dto_parsers.py +4 -37
- notionary/shared/entity/entity_metadata_update_client.py +25 -5
- notionary/shared/entity/schemas.py +6 -6
- notionary/shared/entity/service.py +89 -35
- notionary/shared/models/file.py +36 -6
- notionary/shared/models/icon.py +5 -12
- notionary/user/base.py +6 -2
- notionary/user/bot.py +22 -14
- notionary/user/client.py +3 -1
- notionary/user/person.py +3 -1
- notionary/user/schemas.py +3 -1
- notionary/user/service.py +6 -2
- notionary/utils/decorators.py +13 -9
- notionary/utils/fuzzy.py +6 -2
- notionary/utils/mixins/logging.py +3 -1
- notionary/utils/pagination.py +14 -4
- notionary/workspace/__init__.py +6 -2
- notionary/workspace/query/__init__.py +2 -1
- notionary/workspace/query/service.py +42 -13
- notionary/workspace/service.py +74 -46
- {notionary-0.3.1.dist-info → notionary-0.4.1.dist-info}/METADATA +1 -1
- notionary-0.4.1.dist-info/RECORD +236 -0
- notionary/file_upload/models.py +0 -69
- notionary/page/blocks/client.py +0 -1
- notionary/page/content/syntax/__init__.py +0 -4
- notionary/page/content/syntax/models.py +0 -66
- notionary/page/content/syntax/registry.py +0 -393
- notionary/page/page_context.py +0 -50
- notionary/shared/models/cover.py +0 -20
- notionary-0.3.1.dist-info/RECORD +0 -211
- /notionary/page/content/syntax/{grammar.py → definition/grammar.py} +0 -0
- {notionary-0.3.1.dist-info → notionary-0.4.1.dist-info}/WHEEL +0 -0
- {notionary-0.3.1.dist-info → notionary-0.4.1.dist-info}/licenses/LICENSE +0 -0
|
@@ -4,7 +4,11 @@ import asyncio
|
|
|
4
4
|
from collections.abc import AsyncIterator
|
|
5
5
|
from typing import TYPE_CHECKING
|
|
6
6
|
|
|
7
|
-
from notionary.exceptions.search import
|
|
7
|
+
from notionary.exceptions.search import (
|
|
8
|
+
DatabaseNotFound,
|
|
9
|
+
DataSourceNotFound,
|
|
10
|
+
PageNotFound,
|
|
11
|
+
)
|
|
8
12
|
from notionary.utils.fuzzy import find_all_matches
|
|
9
13
|
from notionary.workspace.client import WorkspaceClient
|
|
10
14
|
from notionary.workspace.query.builder import NotionWorkspaceQueryConfigBuilder
|
|
@@ -18,7 +22,9 @@ class WorkspaceQueryService:
|
|
|
18
22
|
def __init__(self, client: WorkspaceClient | None = None) -> None:
|
|
19
23
|
self._client = client or WorkspaceClient()
|
|
20
24
|
|
|
21
|
-
async def get_pages_stream(
|
|
25
|
+
async def get_pages_stream(
|
|
26
|
+
self, search_config: WorkspaceQueryConfig
|
|
27
|
+
) -> AsyncIterator[NotionPage]:
|
|
22
28
|
from notionary import NotionPage
|
|
23
29
|
|
|
24
30
|
async for page_dto in self._client.query_pages_stream(search_config):
|
|
@@ -27,21 +33,33 @@ class WorkspaceQueryService:
|
|
|
27
33
|
async def get_pages(self, search_config: WorkspaceQueryConfig) -> list[NotionPage]:
|
|
28
34
|
from notionary import NotionPage
|
|
29
35
|
|
|
30
|
-
page_dtos = [
|
|
36
|
+
page_dtos = [
|
|
37
|
+
dto async for dto in self._client.query_pages_stream(search_config)
|
|
38
|
+
]
|
|
31
39
|
page_tasks = [NotionPage.from_id(dto.id) for dto in page_dtos]
|
|
32
40
|
return await asyncio.gather(*page_tasks)
|
|
33
41
|
|
|
34
|
-
async def get_data_sources_stream(
|
|
42
|
+
async def get_data_sources_stream(
|
|
43
|
+
self, search_config: WorkspaceQueryConfig
|
|
44
|
+
) -> AsyncIterator[NotionDataSource]:
|
|
35
45
|
from notionary import NotionDataSource
|
|
36
46
|
|
|
37
|
-
async for data_source_dto in self._client.query_data_sources_stream(
|
|
47
|
+
async for data_source_dto in self._client.query_data_sources_stream(
|
|
48
|
+
search_config
|
|
49
|
+
):
|
|
38
50
|
yield await NotionDataSource.from_id(data_source_dto.id)
|
|
39
51
|
|
|
40
|
-
async def get_data_sources(
|
|
52
|
+
async def get_data_sources(
|
|
53
|
+
self, search_config: WorkspaceQueryConfig
|
|
54
|
+
) -> list[NotionDataSource]:
|
|
41
55
|
from notionary import NotionDataSource
|
|
42
56
|
|
|
43
|
-
data_source_dtos = [
|
|
44
|
-
|
|
57
|
+
data_source_dtos = [
|
|
58
|
+
dto async for dto in self._client.query_data_sources_stream(search_config)
|
|
59
|
+
]
|
|
60
|
+
data_source_tasks = [
|
|
61
|
+
NotionDataSource.from_id(dto.id) for dto in data_source_dtos
|
|
62
|
+
]
|
|
45
63
|
return await asyncio.gather(*data_source_tasks)
|
|
46
64
|
|
|
47
65
|
async def find_data_source(self, query: str) -> NotionDataSource:
|
|
@@ -76,13 +94,20 @@ class WorkspaceQueryService:
|
|
|
76
94
|
)
|
|
77
95
|
data_sources = await self.get_data_sources(config)
|
|
78
96
|
|
|
79
|
-
parent_database_ids = [
|
|
97
|
+
parent_database_ids = [
|
|
98
|
+
data_sources.get_parent_database_id_if_present()
|
|
99
|
+
for data_sources in data_sources
|
|
100
|
+
]
|
|
80
101
|
# filter none values which should not happen but for safety
|
|
81
102
|
parent_database_ids = [id for id in parent_database_ids if id is not None]
|
|
82
103
|
|
|
83
|
-
parent_database_tasks = [
|
|
104
|
+
parent_database_tasks = [
|
|
105
|
+
NotionDatabase.from_id(db_id) for db_id in parent_database_ids
|
|
106
|
+
]
|
|
84
107
|
parent_databases = await asyncio.gather(*parent_database_tasks)
|
|
85
|
-
potential_databases = [
|
|
108
|
+
potential_databases = [
|
|
109
|
+
database for database in parent_databases if database is not None
|
|
110
|
+
]
|
|
86
111
|
|
|
87
112
|
return self._find_exact_match(potential_databases, query, DatabaseNotFound)
|
|
88
113
|
|
|
@@ -96,7 +121,9 @@ class WorkspaceQueryService:
|
|
|
96
121
|
raise exception_class(query, [])
|
|
97
122
|
|
|
98
123
|
query_lower = query.lower()
|
|
99
|
-
exact_matches = [
|
|
124
|
+
exact_matches = [
|
|
125
|
+
result for result in search_results if result.title.lower() == query_lower
|
|
126
|
+
]
|
|
100
127
|
|
|
101
128
|
if exact_matches:
|
|
102
129
|
return exact_matches[0]
|
|
@@ -104,7 +131,9 @@ class WorkspaceQueryService:
|
|
|
104
131
|
suggestions = self._get_fuzzy_suggestions(search_results, query)
|
|
105
132
|
raise exception_class(query, suggestions)
|
|
106
133
|
|
|
107
|
-
def _get_fuzzy_suggestions(
|
|
134
|
+
def _get_fuzzy_suggestions(
|
|
135
|
+
self, search_results: list[SearchableEntity], query: str
|
|
136
|
+
) -> list[str]:
|
|
108
137
|
sorted_by_similarity = find_all_matches(
|
|
109
138
|
query=query,
|
|
110
139
|
items=search_results,
|
notionary/workspace/service.py
CHANGED
|
@@ -5,18 +5,16 @@ from typing import TYPE_CHECKING, Self
|
|
|
5
5
|
|
|
6
6
|
from notionary.user.service import UserService
|
|
7
7
|
from notionary.workspace.query.builder import NotionWorkspaceQueryConfigBuilder
|
|
8
|
-
from notionary.workspace.query.models import
|
|
8
|
+
from notionary.workspace.query.models import (
|
|
9
|
+
WorkspaceQueryConfig,
|
|
10
|
+
WorkspaceQueryObjectType,
|
|
11
|
+
)
|
|
9
12
|
from notionary.workspace.query.service import WorkspaceQueryService
|
|
10
13
|
|
|
11
14
|
if TYPE_CHECKING:
|
|
12
|
-
from notionary
|
|
13
|
-
from notionary.page.service import NotionPage
|
|
15
|
+
from notionary import NotionDataSource, NotionPage
|
|
14
16
|
from notionary.user import BotUser, PersonUser
|
|
15
17
|
|
|
16
|
-
type _QueryConfigInput = (
|
|
17
|
-
WorkspaceQueryConfig | Callable[[NotionWorkspaceQueryConfigBuilder], NotionWorkspaceQueryConfigBuilder]
|
|
18
|
-
)
|
|
19
|
-
|
|
20
18
|
|
|
21
19
|
class NotionWorkspace:
|
|
22
20
|
def __init__(
|
|
@@ -43,66 +41,96 @@ class NotionWorkspace:
|
|
|
43
41
|
|
|
44
42
|
async def get_pages(
|
|
45
43
|
self,
|
|
46
|
-
|
|
44
|
+
*,
|
|
45
|
+
filter_fn: Callable[
|
|
46
|
+
[NotionWorkspaceQueryConfigBuilder], NotionWorkspaceQueryConfigBuilder
|
|
47
|
+
]
|
|
48
|
+
| None = None,
|
|
49
|
+
query_config: WorkspaceQueryConfig | None = None,
|
|
47
50
|
) -> list[NotionPage]:
|
|
48
|
-
query_config
|
|
49
|
-
|
|
51
|
+
if filter_fn is not None and query_config is not None:
|
|
52
|
+
raise ValueError("Use either filter_fn OR query_config, not both")
|
|
53
|
+
|
|
54
|
+
resolved_config = self._resolve_query_config(
|
|
55
|
+
filter_fn, query_config, WorkspaceQueryObjectType.PAGE
|
|
56
|
+
)
|
|
57
|
+
return await self._query_service.get_pages(resolved_config)
|
|
50
58
|
|
|
51
59
|
async def get_pages_stream(
|
|
52
60
|
self,
|
|
53
|
-
|
|
61
|
+
*,
|
|
62
|
+
filter_fn: Callable[
|
|
63
|
+
[NotionWorkspaceQueryConfigBuilder], NotionWorkspaceQueryConfigBuilder
|
|
64
|
+
]
|
|
65
|
+
| None = None,
|
|
66
|
+
query_config: WorkspaceQueryConfig | None = None,
|
|
54
67
|
) -> AsyncIterator[NotionPage]:
|
|
55
|
-
query_config
|
|
56
|
-
|
|
68
|
+
if filter_fn is not None and query_config is not None:
|
|
69
|
+
raise ValueError("Use either filter_fn OR query_config, not both")
|
|
70
|
+
|
|
71
|
+
resolved_config = self._resolve_query_config(
|
|
72
|
+
filter_fn, query_config, WorkspaceQueryObjectType.PAGE
|
|
73
|
+
)
|
|
74
|
+
async for page in self._query_service.get_pages_stream(resolved_config):
|
|
57
75
|
yield page
|
|
58
76
|
|
|
59
77
|
async def get_data_sources(
|
|
60
78
|
self,
|
|
61
|
-
|
|
79
|
+
*,
|
|
80
|
+
filter_fn: Callable[
|
|
81
|
+
[NotionWorkspaceQueryConfigBuilder], NotionWorkspaceQueryConfigBuilder
|
|
82
|
+
]
|
|
83
|
+
| None = None,
|
|
84
|
+
query_config: WorkspaceQueryConfig | None = None,
|
|
62
85
|
) -> list[NotionDataSource]:
|
|
63
|
-
query_config
|
|
64
|
-
|
|
86
|
+
if filter_fn is not None and query_config is not None:
|
|
87
|
+
raise ValueError("Use either filter_fn OR query_config, not both")
|
|
88
|
+
|
|
89
|
+
resolved_config = self._resolve_query_config(
|
|
90
|
+
filter_fn, query_config, WorkspaceQueryObjectType.DATA_SOURCE
|
|
91
|
+
)
|
|
92
|
+
return await self._query_service.get_data_sources(resolved_config)
|
|
65
93
|
|
|
66
94
|
async def get_data_sources_stream(
|
|
67
95
|
self,
|
|
68
|
-
|
|
96
|
+
*,
|
|
97
|
+
filter_fn: Callable[
|
|
98
|
+
[NotionWorkspaceQueryConfigBuilder], NotionWorkspaceQueryConfigBuilder
|
|
99
|
+
]
|
|
100
|
+
| None = None,
|
|
101
|
+
query_config: WorkspaceQueryConfig | None = None,
|
|
69
102
|
) -> AsyncIterator[NotionDataSource]:
|
|
70
|
-
query_config
|
|
71
|
-
|
|
103
|
+
if filter_fn is not None and query_config is not None:
|
|
104
|
+
raise ValueError("Use either filter_fn OR query_config, not both")
|
|
105
|
+
|
|
106
|
+
resolved_config = self._resolve_query_config(
|
|
107
|
+
filter_fn, query_config, WorkspaceQueryObjectType.DATA_SOURCE
|
|
108
|
+
)
|
|
109
|
+
async for data_source in self._query_service.get_data_sources_stream(
|
|
110
|
+
resolved_config
|
|
111
|
+
):
|
|
72
112
|
yield data_source
|
|
73
113
|
|
|
74
|
-
def
|
|
114
|
+
def _resolve_query_config(
|
|
75
115
|
self,
|
|
76
|
-
|
|
116
|
+
filter_fn: Callable[
|
|
117
|
+
[NotionWorkspaceQueryConfigBuilder], NotionWorkspaceQueryConfigBuilder
|
|
118
|
+
]
|
|
119
|
+
| None,
|
|
120
|
+
query_config: WorkspaceQueryConfig | None,
|
|
77
121
|
expected_object_type: WorkspaceQueryObjectType,
|
|
78
122
|
) -> WorkspaceQueryConfig:
|
|
79
|
-
if
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
return self._ensure_correct_object_type(config, expected_object_type)
|
|
84
|
-
|
|
85
|
-
return self._build_config_from_callable(config, expected_object_type)
|
|
123
|
+
if filter_fn is not None:
|
|
124
|
+
builder = NotionWorkspaceQueryConfigBuilder()
|
|
125
|
+
configured_builder = filter_fn(builder)
|
|
126
|
+
query_config = configured_builder.build()
|
|
86
127
|
|
|
87
|
-
|
|
88
|
-
|
|
128
|
+
if query_config is None:
|
|
129
|
+
query_config = WorkspaceQueryConfig(object_type=expected_object_type)
|
|
130
|
+
else:
|
|
131
|
+
query_config.object_type = expected_object_type
|
|
89
132
|
|
|
90
|
-
|
|
91
|
-
self,
|
|
92
|
-
config_callable: Callable[[NotionWorkspaceQueryConfigBuilder], NotionWorkspaceQueryConfigBuilder],
|
|
93
|
-
expected_object_type: WorkspaceQueryObjectType,
|
|
94
|
-
) -> WorkspaceQueryConfig:
|
|
95
|
-
builder = NotionWorkspaceQueryConfigBuilder()
|
|
96
|
-
config_callable(builder)
|
|
97
|
-
return self._ensure_correct_object_type(builder.build(), expected_object_type)
|
|
98
|
-
|
|
99
|
-
def _ensure_correct_object_type(
|
|
100
|
-
self,
|
|
101
|
-
config: WorkspaceQueryConfig,
|
|
102
|
-
expected_object_type: WorkspaceQueryObjectType,
|
|
103
|
-
) -> WorkspaceQueryConfig:
|
|
104
|
-
config.object_type = expected_object_type
|
|
105
|
-
return config
|
|
133
|
+
return query_config
|
|
106
134
|
|
|
107
135
|
async def get_users(self) -> list[PersonUser]:
|
|
108
136
|
return [user async for user in self._user_service.list_users_stream()]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: notionary
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.1
|
|
4
4
|
Summary: Python library for programmatic Notion workspace management - databases, pages, and content with advanced Markdown support
|
|
5
5
|
Project-URL: Homepage, https://github.com/mathisarends/notionary
|
|
6
6
|
Author-email: Mathis Arends <mathisarends27@gmail.com>
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
notionary/__init__.py,sha256=mbK-28YsP87lcwkG0r4vngtomCnktBWYGLh0K6Ay2pQ,1664
|
|
2
|
+
notionary/blocks/__init__.py,sha256=LsVUgSsDYlLy-bwLqnukcr4uB8ZcCLMz3fGd4HsNXDY,99
|
|
3
|
+
notionary/blocks/client.py,sha256=-W1LKrj-OutvHiBajAQSRrnDQvgqx8pV3sX1mNqtWJI,5887
|
|
4
|
+
notionary/blocks/enums.py,sha256=Y_la49porLNRMI72n8Ucl_CDjo2xuH-RNwx3BesxHig,4663
|
|
5
|
+
notionary/blocks/schemas.py,sha256=Edsy8agI7b44JQsS_fq2CIv7n21uhytP15WX4x8oI8I,19975
|
|
6
|
+
notionary/blocks/rich_text/markdown_rich_text_converter.py,sha256=wv9GEdv5vUs6dD9sZQPvaQ1yGwvsr9IhneTLuoq_w2E,12078
|
|
7
|
+
notionary/blocks/rich_text/models.py,sha256=-6RWGGVt2a8EennakYC0jFLMDESTJy23GI1G3YTG0Ss,5009
|
|
8
|
+
notionary/blocks/rich_text/rich_text_markdown_converter.py,sha256=MvZEmKHbynmghbgw3Q2CbbDVnGt_qvX2qmjHlE4LRkI,5607
|
|
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=5shofz678u87TwRqTdyZNEbAeN7E6YDT9w_OxOS80UY,1335
|
|
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=O_rmgeP9AKSA7NvG51vtjgGVyOzPvztpc3WscRB38_4,1349
|
|
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=s4rlrSHchBspgkEAc2ZnOAepB9FgDg3BUTHW_5i51FU,2727
|
|
18
|
+
notionary/comments/factory.py,sha256=dJRTjvmleAhHQiJEAXdTIvV_UzQnnWoFItJJSeOWX_Y,1596
|
|
19
|
+
notionary/comments/models.py,sha256=g-WTDSel8nhyRa60rN0U5FuccU0KVnsnJBi6Uqz7NVw,107
|
|
20
|
+
notionary/comments/schemas.py,sha256=w54cPys5CWTQhjpYuwG9SJix2nU6z2rzVgpW9ANlzxI,5386
|
|
21
|
+
notionary/comments/service.py,sha256=Qt0AmLwhQeFjMr-UCW76MPqTPI0CdbfiubPz3mGTwYw,1735
|
|
22
|
+
notionary/data_source/schemas.py,sha256=xfKxy51zWlpXiLRZfRZWzFvIFwqw3hy69ydh-LJJzn0,829
|
|
23
|
+
notionary/data_source/service.py,sha256=G61MC3Z4x3tCMg6ZSjNaXz2qC5I7EINUZ816hFlnBIk,11966
|
|
24
|
+
notionary/data_source/http/client.py,sha256=wvaBOIT5OtGdE0QjbcDUsuDnZ0TZ-CyIifBHp6OYTqE,445
|
|
25
|
+
notionary/data_source/http/data_source_instance_client.py,sha256=8jRXv_GPrRcUawNJbARYb5oCoqbdzopUNwTvYUT46uI,5438
|
|
26
|
+
notionary/data_source/properties/schemas.py,sha256=4JRXPULqt38zdFhbQ0hg0xOMQto23_8b5x5lrLLG2VY,13124
|
|
27
|
+
notionary/data_source/query/__init__.py,sha256=Q3uQf6r0xHYV_i5kn-Gdwf68QKJMnV_7vS_gO4I3kG8,226
|
|
28
|
+
notionary/data_source/query/builder.py,sha256=2BLQ8ZztqYbFUGaV84ArAYqQt8fDSI2rEGdFDB-Uwgo,19216
|
|
29
|
+
notionary/data_source/query/resolver.py,sha256=qFrwJdJf9P4m_-BGtWDHhilTRF1vPH5WTm7dmOluoDE,4468
|
|
30
|
+
notionary/data_source/query/schema.py,sha256=YlF5dya-MCTPezLUSfJ3xS2gJ4APEvJKiIZITcdw3_g,9754
|
|
31
|
+
notionary/data_source/query/validator.py,sha256=r1wTeiAeum3gCT54WvNItiVo7D73cVAicV47kO2RdAU,3429
|
|
32
|
+
notionary/data_source/schema/registry.py,sha256=ODOXFB_-ZZxdXC7px_GYolHdCivyX0mRcUjd2nRSZjA,5503
|
|
33
|
+
notionary/data_source/schema/service.py,sha256=QAu0JfdDC0UP_SpVYbOFjZxMpARksJYCdeO-nHZxZGE,6466
|
|
34
|
+
notionary/database/client.py,sha256=ey_5i5QUa0yBdLkWopHvUUltpsgLqTmLB3rdm9RBKVs,2414
|
|
35
|
+
notionary/database/database_metadata_update_client.py,sha256=CaNrEA6EdxXGaWfwnGeS_RFibzMlXzR8A8huJCS1Pt0,980
|
|
36
|
+
notionary/database/schemas.py,sha256=gzihLqe4YjGExWZ4X_s9yU-lm5Ezr1YFjviNCyxW1HE,838
|
|
37
|
+
notionary/database/service.py,sha256=p165TWCYTskt5ddSTXM-5e1WXlnzzGfwLMVpNpMduIA,4474
|
|
38
|
+
notionary/exceptions/__init__.py,sha256=6_rxx95hjzaN8FgmfcZXZeAZFmOaO9eNESnhCooVhjM,1547
|
|
39
|
+
notionary/exceptions/api.py,sha256=TxDAKh9-DXX3eYis-S_zE07WB0-UcyQsxBjIKKoFBT8,798
|
|
40
|
+
notionary/exceptions/base.py,sha256=Ey5rEWO9x9GIQOcGrgQcLz0pehPXGPQdEm8MIpV7Uq4,48
|
|
41
|
+
notionary/exceptions/block_parsing.py,sha256=QbvSLdX_4VoEtOqy7nRk-_VjQt4rbedtuA2dh2SVkMA,1535
|
|
42
|
+
notionary/exceptions/file_upload.py,sha256=rbCq1_bbVLejt-BfZwLZA9fT3DocbQHdxmQxH99FFDA,2908
|
|
43
|
+
notionary/exceptions/properties.py,sha256=0j06puvIYrtdIXtsp6ijINtx8jLa1ugCt6nQyxNycnU,2239
|
|
44
|
+
notionary/exceptions/search.py,sha256=afbWhlWx9PhhX5CNhAvKkAKe2PNaoylIsb9iKjBf-bA,2208
|
|
45
|
+
notionary/exceptions/data_source/__init__.py,sha256=Xs4I-zVxVQiVhfTclJX7GuGVO5fMYQIWqiqFnh_O67M,170
|
|
46
|
+
notionary/exceptions/data_source/builder.py,sha256=3MBVGoEpg99m4CDaIoqZ9nnGJepguCpIopr_TnwZ_JE,6069
|
|
47
|
+
notionary/exceptions/data_source/properties.py,sha256=cVivCxdYezZtXAiztQA_71ExtBXiXcsJc0x3MVirw-I,1264
|
|
48
|
+
notionary/file_upload/__init__.py,sha256=MeOzKCT9RVNvikespbjE9cucfMgsh9R0JwoUfhRTjVQ,178
|
|
49
|
+
notionary/file_upload/client.py,sha256=ouB1K-gmZAibN5jKZ6iY5HM3r2ShAju4nfklzCm7yGY,5391
|
|
50
|
+
notionary/file_upload/schemas.py,sha256=71lNUxvdebtFSWOV9LqVIB_mMIg0AE-8ay-FXAOVqjE,2304
|
|
51
|
+
notionary/file_upload/service.py,sha256=6I_RDuKt0B2tX8DzkGEYy44GNaz4F13vsP8eFOqFcps,8848
|
|
52
|
+
notionary/file_upload/config/__init__.py,sha256=BS6sI4ElRMUyxro4ohw6ll7OvIzc46Ss7jjHaJCrLfY,480
|
|
53
|
+
notionary/file_upload/config/config.py,sha256=9Kc4GZREhHhJFSXT1EdZWFz6Btghy5Qp51vAzSZhdVU,1164
|
|
54
|
+
notionary/file_upload/config/constants.py,sha256=KoWJLrPPaTiELKyqrV9-Cng2nq6Y-v0MTxQJPyMnWUI,452
|
|
55
|
+
notionary/file_upload/file/reader.py,sha256=I4FmXdPU2dpBiIULfiVnhdiEwlLBMqa9iIO_IbzlLKw,1036
|
|
56
|
+
notionary/file_upload/query/__init__.py,sha256=9ZpH2HV-m7YmdKrQ5kDUC9FmcB1zjegUSK_0CTxX1Ho,155
|
|
57
|
+
notionary/file_upload/query/builder.py,sha256=6sFyb0GLxtaMQp88ihL3UiDOplXSuixd2v-wK3_577Y,1978
|
|
58
|
+
notionary/file_upload/query/models.py,sha256=c5XIq7WkfjmESMAj47OYFnuheT_jqP68bmYWrNHIq0E,1069
|
|
59
|
+
notionary/file_upload/validation/factory.py,sha256=3goSgCHDdtD7cAz_lDkrXdnvlP9otgruV95EvtHuLwo,2306
|
|
60
|
+
notionary/file_upload/validation/models.py,sha256=12IZmdzdmxjM1FmK0b0Br34_npOnieNOsdEEpBxgLJA,2996
|
|
61
|
+
notionary/file_upload/validation/port.py,sha256=S__YHYXLDlz2deCNNp5mv4fr6abmFyTfFGoftHB-_ZI,148
|
|
62
|
+
notionary/file_upload/validation/service.py,sha256=quTdUXCtGFHddqyIplF8SKaXSQ6zTh-Xw_jMq9jAvzI,681
|
|
63
|
+
notionary/file_upload/validation/impl/file_name_length.py,sha256=wKBm-HCUPc166bcKxt6ZbhneNdXJr0y84VeYVdlGinY,971
|
|
64
|
+
notionary/file_upload/validation/validators/__init__.py,sha256=UAQGLrDgr4Fv4ESPU0f0nEEY2FNm3VcpB8EZ3nKdDDo,347
|
|
65
|
+
notionary/file_upload/validation/validators/file_exists.py,sha256=nL1M9KK2N0YCo3JABSHZioPg0m0R3MJGDMemyL_EduY,486
|
|
66
|
+
notionary/file_upload/validation/validators/file_extension.py,sha256=Dc7RveuTZNWHq0OvwIbk5XAc1mylqM4CEHkfyCpmPcg,5440
|
|
67
|
+
notionary/file_upload/validation/validators/file_name_length.py,sha256=xdZTzw3XUUHd8I6_T6_oD7NdG2t6defLEZAB-QKsvoI,830
|
|
68
|
+
notionary/file_upload/validation/validators/upload_limit.py,sha256=UdhDsh57HPPNPQ3kcEAffVnm2CgBF77Fa2G47OmLs7Q,1146
|
|
69
|
+
notionary/http/client.py,sha256=fFbM81zLpw59y3fk4QiwRFuFEqmrbziylC1jkO8X5Vs,7392
|
|
70
|
+
notionary/http/models.py,sha256=fvjKAGX-b6JcJ-W7V3DEt4v3SnsdikMa6N0c4aolslY,1352
|
|
71
|
+
notionary/page/page_http_client.py,sha256=YQdXkfMGu2wuJpALJBIsKKwoHv316n_sMjne-iqJYHc,445
|
|
72
|
+
notionary/page/page_metadata_update_client.py,sha256=RmUKouWpQfG_J-Nu8qPEv1CBYSsTBSlQRjchixWFB9o,940
|
|
73
|
+
notionary/page/schemas.py,sha256=uodDbDQDL8b-qvvjnvRXrliFoM7o6tzmLziRBmjVhTE,359
|
|
74
|
+
notionary/page/service.py,sha256=MmdllMqP6iRFv5NwVvD8Ayo-qpoEzU5_UcVnqb-_xHI,6359
|
|
75
|
+
notionary/page/content/__init__.py,sha256=e0YejZODxp82zP5278tT10X0DR4DaSu6WCEsvN_5g_Y,247
|
|
76
|
+
notionary/page/content/factory.py,sha256=8H51oQ34ZKOZEuGesvUxCXcAN7iUwHoxPRhEYCOq1fE,3878
|
|
77
|
+
notionary/page/content/service.py,sha256=OF1uXy6xZx0rjmGFezuz3s9YAnSkOlDByJBvekC7buY,3133
|
|
78
|
+
notionary/page/content/markdown/__init__.py,sha256=dhBiNIbiyG38eppjXC0fkZk3NVXzRGC8xqoE89jWHG0,80
|
|
79
|
+
notionary/page/content/markdown/builder.py,sha256=rPrwUrfvpdrebi8O5Ej0A7TTcfgZbWVGWLRZFOZDjwU,9640
|
|
80
|
+
notionary/page/content/markdown/nodes/__init__.py,sha256=09XSsSNO4surN3lCHayqTC8zhcE5PZ7cAav_-js3dP4,1729
|
|
81
|
+
notionary/page/content/markdown/nodes/audio.py,sha256=ROwOh3TDgML1Xx7WhoAJVOIPXvFZ9p7iQXlLN49maTg,956
|
|
82
|
+
notionary/page/content/markdown/nodes/base.py,sha256=gGdFbPIdBx_tIfxdlRGfJs4wdwTYQKxJVfXWr2hFe0A,389
|
|
83
|
+
notionary/page/content/markdown/nodes/bookmark.py,sha256=c4l04Zvx0y4Nzh9utvxN8mpmNMdgyAJF0KhnzYFUGuY,1008
|
|
84
|
+
notionary/page/content/markdown/nodes/breadcrumb.py,sha256=St-k3n7FuWDLBKDRYLhWCkBTipP_Zispc8J71NZXWY4,554
|
|
85
|
+
notionary/page/content/markdown/nodes/bulleted_list.py,sha256=h1pZtewjXKdJvFbCrPoxusX9nshxmHpZdP3YBJjdofg,1534
|
|
86
|
+
notionary/page/content/markdown/nodes/callout.py,sha256=q7iKooafroBSSNFOy45oD5Fs0if3h10NXIDmvfnhA5k,1142
|
|
87
|
+
notionary/page/content/markdown/nodes/code.py,sha256=FXLmjrGSNBPu6FK8bb8Ss8So0UMZCfmwcZSXS95GmjE,1111
|
|
88
|
+
notionary/page/content/markdown/nodes/columns.py,sha256=c8Z8pZyajToW-f0PJyykh5nlt26rHSF-7HprLibDZxg,2387
|
|
89
|
+
notionary/page/content/markdown/nodes/container.py,sha256=h7rtpjg53wXzwOYpXoeT27CfbsWeaEQYtUv05TfqaLg,2621
|
|
90
|
+
notionary/page/content/markdown/nodes/divider.py,sha256=091DyG5hUPlFiN6C-3VykhvcY0kJip7QiqArSJxkFko,542
|
|
91
|
+
notionary/page/content/markdown/nodes/embed.py,sha256=Qo8LcTHFXQIjZcW6Wet9Hl6CTSfkk6svM-2Qd6dqkI0,956
|
|
92
|
+
notionary/page/content/markdown/nodes/equation.py,sha256=Cz5x-tC0ApUlqZeyRPHW4gLzzpEPCeOXaXIrlNEzBkM,811
|
|
93
|
+
notionary/page/content/markdown/nodes/file.py,sha256=5kgazA_SrBGOVDqVARC_IwVnERFezd03K9poK96Ezcs,951
|
|
94
|
+
notionary/page/content/markdown/nodes/heading.py,sha256=QjutIsomhotP2PqZ6CaFpA_xVU2bmeflulBnndI9-UA,1231
|
|
95
|
+
notionary/page/content/markdown/nodes/image.py,sha256=tM_tjqh4UtCYZp3jCwCAmb9MT3eTgKa6AjqlxJFflx8,956
|
|
96
|
+
notionary/page/content/markdown/nodes/numbered_list.py,sha256=FDhrcPYHuB8jK5qR8FeuxR5pburl33u3JmatnDQUoAI,1389
|
|
97
|
+
notionary/page/content/markdown/nodes/paragraph.py,sha256=9qiKUTxdfUnMteN5jnHKxB8ug53VOpKv1UdLEfc8k74,499
|
|
98
|
+
notionary/page/content/markdown/nodes/pdf.py,sha256=pow2CatNjiiGCb-izMqkysIY5OAkIfRWO8KyrpAXOvE,946
|
|
99
|
+
notionary/page/content/markdown/nodes/quote.py,sha256=Updr513k3jXQnPBCDp1hljZJ-O_pwlbQJSPsaRcdVjg,954
|
|
100
|
+
notionary/page/content/markdown/nodes/space.py,sha256=j_vM0U8cGGR3YswHyjAo3UNZAAhA1UC5CLiiHgt516M,534
|
|
101
|
+
notionary/page/content/markdown/nodes/table.py,sha256=8t_yp0AhfH3R5FH_u7orfpaPbycPtuVSQb_zgwzyzDk,1770
|
|
102
|
+
notionary/page/content/markdown/nodes/table_of_contents.py,sha256=Mx1AkglikodV9hTCW96AjmHQ6YdWaR2UurcOoUohf-U,552
|
|
103
|
+
notionary/page/content/markdown/nodes/todo.py,sha256=yLOYEcScsgJWijde-Hkg7cNaFLe-WEShRqgmvWo1Wkg,1640
|
|
104
|
+
notionary/page/content/markdown/nodes/toggle.py,sha256=LNeaIcHOxdUmh6GcIPOby59XsgQx48FL4nPGJnU4mlc,957
|
|
105
|
+
notionary/page/content/markdown/nodes/video.py,sha256=7YxB7hmhuYFvQvjztwhg6QONybbVBW8g97Pyv1UGnvE,956
|
|
106
|
+
notionary/page/content/markdown/nodes/mixins/__init__.py,sha256=KVWvxbgwrbfXt495N4xkIu4s8tD-miwVTcXa2fc9Kvc,98
|
|
107
|
+
notionary/page/content/markdown/nodes/mixins/caption.py,sha256=dZ6pIQqC8sugLgWJQ_M3we5PZNcTGtifo01UM01hejk,483
|
|
108
|
+
notionary/page/content/markdown/structured_output/__init__.py,sha256=cmeY_xDlcg7bVuBIgBYMeCRnGYpOx94d3ow0uNo_g1o,1596
|
|
109
|
+
notionary/page/content/markdown/structured_output/models.py,sha256=zOZeA8EkSsibmahswi26l_s7o2OFPhEnkxlaAi_XgBk,14057
|
|
110
|
+
notionary/page/content/markdown/structured_output/service.py,sha256=e5YFbcbGzlXlx7Szefp3JBlKxUAG1wHA5H45B1kYv_A,7663
|
|
111
|
+
notionary/page/content/parser/context.py,sha256=PXbLPIGvNNO0nJbS0yxONhoozvg-_qqtZYsBzixU3rs,4761
|
|
112
|
+
notionary/page/content/parser/factory.py,sha256=AL24BsYO6sU8cwSkhWHJSyzHu8oZH0FSCnSlOAT_Uh4,8373
|
|
113
|
+
notionary/page/content/parser/service.py,sha256=MNUfZ7I3GqhQIDtr9VtLykl7wAwi5LW2F0FoJbK9ICQ,2919
|
|
114
|
+
notionary/page/content/parser/parsers/__init__.py,sha256=cHGTAs7XZEHPmFHhlnno5J7nmLlfYwuTXtOtWvjWAD4,1637
|
|
115
|
+
notionary/page/content/parser/parsers/audio.py,sha256=vamZLqUEduQ3YA3dHT4w_3iaHnkbctqDM5Qzi9YkXEo,700
|
|
116
|
+
notionary/page/content/parser/parsers/base.py,sha256=g1UTGvthxwSuh53qA27EFHbAe3K6dCruhHvGBEwQs1w,1019
|
|
117
|
+
notionary/page/content/parser/parsers/bookmark.py,sha256=lsvQIuzamfKwgkUePx1GVY2TveChuFcS_4X8xGX18Ig,1264
|
|
118
|
+
notionary/page/content/parser/parsers/breadcrumb.py,sha256=SSD58OjTfsXxUkS24K_dEQPsb_KF9THks6M_k6NQ2D8,1221
|
|
119
|
+
notionary/page/content/parser/parsers/bulleted_list.py,sha256=ejCOcqKTOdq866w1Oq_wibU8XFWN5NfJ4O7n6T8W7zs,3694
|
|
120
|
+
notionary/page/content/parser/parsers/callout.py,sha256=6JSIIZVTxNdNn4GOHpJ6MUtH5r9X3n16mOG4rx8NJEk,4131
|
|
121
|
+
notionary/page/content/parser/parsers/caption.py,sha256=b8cBXeJrVN2-gunPXBREOTv3oUZixdbx2ioDe3vzYsE,2153
|
|
122
|
+
notionary/page/content/parser/parsers/code.py,sha256=fcBPF5TJoOqpA6zVK6beH9E9qexhKtXn9a60FRZEPRA,3686
|
|
123
|
+
notionary/page/content/parser/parsers/column.py,sha256=pJ_YC1wQMPumX0e2Uq-PHCggeCqUywfYIBDlryCg5ZA,2977
|
|
124
|
+
notionary/page/content/parser/parsers/column_list.py,sha256=SdnI_eakJB0TPxhVRaufm7JMD2Gmyt0YmpAuySty7Ds,3598
|
|
125
|
+
notionary/page/content/parser/parsers/divider.py,sha256=_n9003aWRBf05f3kfo8Ad6m4fOmKf81aJVj989rwfLs,1179
|
|
126
|
+
notionary/page/content/parser/parsers/embed.py,sha256=ocEcHEuefu8Em0HJw4pDYIfClRxpM2ORamaIymQkisc,1200
|
|
127
|
+
notionary/page/content/parser/parsers/equation.py,sha256=kpYgPdX1kOSpDtRnA_dovOn0zNuKS0BUms8syjpSFBY,2404
|
|
128
|
+
notionary/page/content/parser/parsers/file.py,sha256=8B605C4sdJSit5bSxn3-nPKQ5pfuely0qiGI7E_yChk,693
|
|
129
|
+
notionary/page/content/parser/parsers/file_like_block.py,sha256=JTxpF0YEKGG6Fiq15bkMquwqLojk4t3tDpDTFi-QDo4,4167
|
|
130
|
+
notionary/page/content/parser/parsers/heading.py,sha256=gdXKza8EL9D_kvqTE95_tgwV6A8egJDNOmdA_5m6jb4,4753
|
|
131
|
+
notionary/page/content/parser/parsers/image.py,sha256=kHaTG30BVJerSjb9JGGC9aKPb-MNi2KlKRaDSYrM3_o,700
|
|
132
|
+
notionary/page/content/parser/parsers/numbered_list.py,sha256=979FroSuApLmM2pJgIBnIrFTVrSK3k6TBClk7seUos8,3761
|
|
133
|
+
notionary/page/content/parser/parsers/paragraph.py,sha256=8ij-m-LBw_n6oxDAyheACCzJfUa-gkavH6q6wiT80mQ,1383
|
|
134
|
+
notionary/page/content/parser/parsers/pdf.py,sha256=yJ_-Glxv8OzklaPkyJzEZYE1wreZ3vNkH_oxyLoiCpE,686
|
|
135
|
+
notionary/page/content/parser/parsers/quote.py,sha256=8SXu2Icm81k9vUeXln5ZBGt94vyhrwXEZFjQihm3M9s,5271
|
|
136
|
+
notionary/page/content/parser/parsers/space.py,sha256=LQEp9IUtpld8L7JKZKqYoEASQXjJ5lO1zmgZFp5IhRM,1600
|
|
137
|
+
notionary/page/content/parser/parsers/table.py,sha256=QCEWU_cRw4puQ33MP4yL_T2glrv7fm6Eajso8p8V2iE,5680
|
|
138
|
+
notionary/page/content/parser/parsers/table_of_contents.py,sha256=FQrlG6DDWsKuZj7t7vSQAXzC2dQeYqDVQGuxseiUmvY,1257
|
|
139
|
+
notionary/page/content/parser/parsers/todo.py,sha256=4nNl5Rzef2Pkxc0HPghlh1tZjNr7gWZFOGqGd49-0LU,3952
|
|
140
|
+
notionary/page/content/parser/parsers/toggle.py,sha256=x0hlamN7Nx__9nFHRgm78AAgd4eZ7dzd8UL0H35HzIw,3000
|
|
141
|
+
notionary/page/content/parser/parsers/video.py,sha256=xCnOk1jWLpBvE7QsbGbiMNlsvykPMSbgEChgofULxm8,700
|
|
142
|
+
notionary/page/content/parser/post_processing/port.py,sha256=ZjTz9pIrk3R8Hy_NdRWmYTYrGScNyWyqgzcSUk_1BkI,248
|
|
143
|
+
notionary/page/content/parser/post_processing/service.py,sha256=NK-6sc496iVlpIdmDdJqHIE-IljsdBU2rKPytJN1Gm4,624
|
|
144
|
+
notionary/page/content/parser/post_processing/handlers/__init__.py,sha256=Io7Qw_bR6lDXCCuFWUZqR5QmmZwqKG-icE1hRoRivIk,144
|
|
145
|
+
notionary/page/content/parser/post_processing/handlers/rich_text_length.py,sha256=bpTAnJP3auAWF2EUBPbby4nMtK9gKXcK44YxVnJH8og,3639
|
|
146
|
+
notionary/page/content/parser/post_processing/handlers/rich_text_length_truncation.py,sha256=hIa1ruBcdle-tGZItdQz5r3-IeYl02N2FA4EA5DLVsE,4211
|
|
147
|
+
notionary/page/content/parser/pre_processsing/service.py,sha256=moa5sHuNvzUQCVGe-4IvqrCEWtIaEMD6M7FMjLXENcM,507
|
|
148
|
+
notionary/page/content/parser/pre_processsing/handlers/__init__.py,sha256=RX6VC1Q9tJAAjtt92hjOy20fcT7yFZP6PvNBjsp79sE,397
|
|
149
|
+
notionary/page/content/parser/pre_processsing/handlers/column_syntax.py,sha256=RTum_ACB9TKXmWgxPWypJsVfbB44G6aCytVO7-pRmCU,5632
|
|
150
|
+
notionary/page/content/parser/pre_processsing/handlers/indentation.py,sha256=FqFByaZyIzhav_7jaWZK9zu-6NLoAOueosTTTbLZbBY,3426
|
|
151
|
+
notionary/page/content/parser/pre_processsing/handlers/port.py,sha256=Gm_GRGl1eGo1C8AM5CUfFdYAofe4Y0gAPScU2O1EcJo,153
|
|
152
|
+
notionary/page/content/parser/pre_processsing/handlers/video_syntax.py,sha256=XELL_c8HEtb_-9dFRqy5q1LxMAF6sMwyIBZh2FIrHgg,2841
|
|
153
|
+
notionary/page/content/parser/pre_processsing/handlers/whitespace.py,sha256=GknAlc4bm2T13MwPz3F-ZP_T_En6-KCQXneqToc2l5I,2685
|
|
154
|
+
notionary/page/content/renderer/context.py,sha256=rdziry_nPPD3E__pV6feEHYS64n84edDANKviYjfTto,2142
|
|
155
|
+
notionary/page/content/renderer/factory.py,sha256=5RBri8zJ8K9uYjSNKmRzYstS6TK6F4k82N_rMYH6EH8,9016
|
|
156
|
+
notionary/page/content/renderer/service.py,sha256=zmuVz7ZWpLsm2JguGeSOm7tFVQ9vCp5lfGE8Z0mVN5M,1975
|
|
157
|
+
notionary/page/content/renderer/post_processing/port.py,sha256=VcfLsEyXd8EXMjYEf_uTX0-iq5RThwGvE7mgUsL6b8s,154
|
|
158
|
+
notionary/page/content/renderer/post_processing/service.py,sha256=dCc6GRRDkT3NmVHBerBf_TZfNjCIRbS8NdLJhaDQQsA,511
|
|
159
|
+
notionary/page/content/renderer/post_processing/handlers/__init__.py,sha256=LurntAvtz38tBpm3KAfd_Z-EyaxfG6WS_JPrytfc32M,144
|
|
160
|
+
notionary/page/content/renderer/post_processing/handlers/numbered_list.py,sha256=htSCfPiAo1i2sRsVic7F0ND3FriQCdpFaTdECkgD1iM,5952
|
|
161
|
+
notionary/page/content/renderer/renderers/__init__.py,sha256=YinHG6qfAPRTLD2-fts0gnuDuxQW9ZMBXflxoEfQ16o,1636
|
|
162
|
+
notionary/page/content/renderer/renderers/audio.py,sha256=SmVMLavRAZN2sYPLP0zKUkES5uJFgwnIlXqFyFGwHUQ,809
|
|
163
|
+
notionary/page/content/renderer/renderers/base.py,sha256=OjZp9Q_dR10qt7u9jNJ_og0s3HRrIbGmQfbMWGTc8Gs,1112
|
|
164
|
+
notionary/page/content/renderer/renderers/bookmark.py,sha256=7CxyNoP_Y6DXyb3LkJydQfpmosYsD2ltYD93NFsdnEw,826
|
|
165
|
+
notionary/page/content/renderer/renderers/breadcrumb.py,sha256=M_Qlu73LmSwcCzsF1IJywZIekzOVBP1rd8md51dvfq8,782
|
|
166
|
+
notionary/page/content/renderer/renderers/bulleted_list.py,sha256=LG42ppbFv1zecgBhNjSkBlP4JKr-zBDI3mdTKTIawp4,2107
|
|
167
|
+
notionary/page/content/renderer/renderers/callout.py,sha256=uBsHSf_28K_kJxNuPeQSHvwKBYQ2vFYHRetjS5vxEds,2187
|
|
168
|
+
notionary/page/content/renderer/renderers/captioned_block.py,sha256=lcl0PkLzRqzsY2rVYVpDZaDpyL0UNGQVQeOaSu3DC2E,2319
|
|
169
|
+
notionary/page/content/renderer/renderers/code.py,sha256=zDfHOOqcKtM2NDNPc3OUNjUzwEmM-ALCAB7dOYFm388,1304
|
|
170
|
+
notionary/page/content/renderer/renderers/column.py,sha256=vnzrhTtsTJ-SHz2GVjY9t9e4yOS-8M0-1UD1Ny9slOQ,1870
|
|
171
|
+
notionary/page/content/renderer/renderers/column_list.py,sha256=5-CiS8rY9NTvC11JkrE95qHa1BHXwMw1O06CCqj_lGM,1631
|
|
172
|
+
notionary/page/content/renderer/renderers/divider.py,sha256=S6XvueUgihBC5I5y7_WHWeULfUq3ydvGNC8Mz72nNwQ,796
|
|
173
|
+
notionary/page/content/renderer/renderers/embed.py,sha256=H3PzkpE3Gy4OYTRsrA0-XcTX6bc8vCoofP-WdLv4fzU,805
|
|
174
|
+
notionary/page/content/renderer/renderers/equation.py,sha256=oYdIJAoxRFLcvH0z4kyIvgL0yoWx2z4tD5d-qykQeU0,1389
|
|
175
|
+
notionary/page/content/renderer/renderers/fallback.py,sha256=R-w6k5N3EmTQ5ytSzPNykpNwm9tq3dW71Xffchj4qXA,918
|
|
176
|
+
notionary/page/content/renderer/renderers/file.py,sha256=bNJMiwcHpAggk1HAw-typSgSrzybQKUn9hm7NatEjqE,1008
|
|
177
|
+
notionary/page/content/renderer/renderers/file_like_block.py,sha256=TVENJMz4mEhgVg-3YV4NGzVzSnnr2WP2KP7Ra1ddYgo,1349
|
|
178
|
+
notionary/page/content/renderer/renderers/heading.py,sha256=25MpNFuOg-8_cmPczPpPFjW21rwJN6CC2qUrcc9LKfM,3961
|
|
179
|
+
notionary/page/content/renderer/renderers/image.py,sha256=RDHuNC9tdFX9fJ2iaWePZaj-JlJNQWHyFUN-ZmdFWAA,793
|
|
180
|
+
notionary/page/content/renderer/renderers/numbered_list.py,sha256=BK9DdQK0uD1jNzOeP51ZhnGXDrW42BID3a2Pq_IqlRc,1891
|
|
181
|
+
notionary/page/content/renderer/renderers/paragraph.py,sha256=06geVGwaNrm8M9BOQOxZIb5GaqVKJhzDY77jJx1FKVc,1697
|
|
182
|
+
notionary/page/content/renderer/renderers/pdf.py,sha256=Rxnx_lkA0T9_X7BAuiTG5UDQGckce0FhINF5N_aLTNI,801
|
|
183
|
+
notionary/page/content/renderer/renderers/quote.py,sha256=wCknQoJKVKAnkDBt2u3cR-vjUw4-cNLM-NiDDsCLIRE,2103
|
|
184
|
+
notionary/page/content/renderer/renderers/table.py,sha256=2_W88gA9CyfetBor9Sa2ZjBsVsA1Esra2cyG1vget6Q,4704
|
|
185
|
+
notionary/page/content/renderer/renderers/table_of_contents.py,sha256=pWlkz-jQ2jviI-it0XxJQsZ0G5I2ZtxZkC7pBSWnRBg,988
|
|
186
|
+
notionary/page/content/renderer/renderers/table_row.py,sha256=Zs1yFsU4hKIZizg4rGo8THGZ0VKrb3KNUQOT9ehmzFk,623
|
|
187
|
+
notionary/page/content/renderer/renderers/todo.py,sha256=s5ZWSL95WSABJzgl0bQ5L9BBzUcCe3_g14oOC_k4ObU,2289
|
|
188
|
+
notionary/page/content/renderer/renderers/toggle.py,sha256=927S9DcyB2M0Mayfhb-TOZX7tCH-oLhGsbPOUQFKHbE,2113
|
|
189
|
+
notionary/page/content/renderer/renderers/video.py,sha256=mKiG6zHTgfNkl5ZlAqA3RfghptROnYckkVVJMRqgomE,809
|
|
190
|
+
notionary/page/content/syntax/definition/__init__.py,sha256=iKaxk8qUMjGxXrni8-S0ZzR80Y_rZKuXf9pXonzQs5M,338
|
|
191
|
+
notionary/page/content/syntax/definition/grammar.py,sha256=vWJ1rgtekcRH4uIb94q83kYaBxmDD0E5YS7oGQR_1Aw,252
|
|
192
|
+
notionary/page/content/syntax/definition/models.py,sha256=CpiPUceaIH4K-DMV6gEdSB4m6k_hXIDogLjRJ9HeIhE,1247
|
|
193
|
+
notionary/page/content/syntax/definition/registry.py,sha256=RDmy4qbHBn4dhQ-lm9zJhWtyECx9IUJ2qTP3O3jLfmQ,15510
|
|
194
|
+
notionary/page/content/syntax/prompts/__init__.py,sha256=HwKOnjRf3u8-zBUpKXSwrd1f1o5_wb0tNXdrYnFWUr8,140
|
|
195
|
+
notionary/page/content/syntax/prompts/models.py,sha256=it51evqp8b6zuz04Yz8bb7g0-6O_1ZwB5EXyQ2ItGx8,247
|
|
196
|
+
notionary/page/content/syntax/prompts/registry.py,sha256=kRAQWpu9LfahMza4bLv4sGY6Lbp5KqeuthG9Av1FPR4,33556
|
|
197
|
+
notionary/page/properties/client.py,sha256=WiFY-60QzxDg3jtwlDECBwDbOEncPLkwi5uQNsj2Ou8,7046
|
|
198
|
+
notionary/page/properties/factory.py,sha256=HKrRsWUTqhyQGsxt1W1z3rCjpU7VYqtV6MWJcvvgQU8,1296
|
|
199
|
+
notionary/page/properties/schemas.py,sha256=0QOgbtJYsAI8oVnp6ZNgHhiJqRHWRRDpD8B8oYPCUKo,8548
|
|
200
|
+
notionary/page/properties/service.py,sha256=e46oFlnVkYXRIlGqRwhndnWNXXgwAZY9wroTXAH9d9w,13978
|
|
201
|
+
notionary/shared/typings.py,sha256=LKg_NJvqi0ZuyB6I995zg4XCyijGKY0T_bW90YiI5_g,58
|
|
202
|
+
notionary/shared/entity/client.py,sha256=tM2jUnYaEUfn0XDA0fZeKYww3bhNviCx6zmjYOzJjzs,1216
|
|
203
|
+
notionary/shared/entity/dto_parsers.py,sha256=xTrxdpecslDdt10bJYjQrHH3eP6YkuMYWcI8lxSMwXA,612
|
|
204
|
+
notionary/shared/entity/entity_metadata_update_client.py,sha256=aDRq1jEJ2WrJZ9f2CJiJ8GSaGftFiftMM2ZHjs7xynY,2456
|
|
205
|
+
notionary/shared/entity/schemas.py,sha256=SpcpWnNYmhjsVhR66bRCst68YU7IJk52f9x66L_V0Ic,1072
|
|
206
|
+
notionary/shared/entity/service.py,sha256=W7MkZmrjDVbeohmDE_DP0YUYwOkhFkeH2u7XbmrgKj4,10145
|
|
207
|
+
notionary/shared/models/file.py,sha256=chZzEWC-3yhEabYuF4xoRSy8-CJ3bX9NBupCqpsTmqQ,1154
|
|
208
|
+
notionary/shared/models/icon.py,sha256=XGkNmMA13iDkLeMo0cpz2t7JwxEnXfxEeSvJs3OisJo,402
|
|
209
|
+
notionary/shared/models/parent.py,sha256=fptJhWHot35jN9IH9BhsXNMZfNClc8av1G2TR6SqRmY,888
|
|
210
|
+
notionary/shared/properties/type.py,sha256=04KNeWGzphJ2hN6AbVhfDfF89XxtSGzcmnatcPHkEQI,780
|
|
211
|
+
notionary/user/__init__.py,sha256=O1sa9EPnJKZgpEAARJhzgh0ULqmwB-JNIgoPUCwDGMo,111
|
|
212
|
+
notionary/user/base.py,sha256=OKiD4fJc6qCl0XNIZdek0JNXK_e6W-QYOA7fj63c7Xk,4418
|
|
213
|
+
notionary/user/bot.py,sha256=422Z40BGGkTbr3fu359jBX-nxihdCNJkZQU9xbiQQX4,2642
|
|
214
|
+
notionary/user/client.py,sha256=bPGtM9htHV0vzcvem05MpfSAO5UZusjzZBLGYg20jVE,1434
|
|
215
|
+
notionary/user/factory.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
216
|
+
notionary/user/person.py,sha256=_O54NbSDQnVcl9VI0Ggi4zgA8psr4MruuwAiaI71x-M,1170
|
|
217
|
+
notionary/user/schemas.py,sha256=iIZPPm-k6xTcX4Pcb_4kdS_kLFGuzK96XSH8D2FpQ5M,1440
|
|
218
|
+
notionary/user/service.py,sha256=GXkQB3ZPTbgf_9aCCcdvEG1uKp92G9LW1xd5aJBMhjM,2629
|
|
219
|
+
notionary/utils/date.py,sha256=HPwqmZoylTFKkyI8q4BJXT3q9B39nE55uVZAyG4JnDw,1729
|
|
220
|
+
notionary/utils/decorators.py,sha256=JXc9Of8JbM4PMkUUnvZdyX_qvi2_X_9I9-ILI41rA3E,3792
|
|
221
|
+
notionary/utils/fuzzy.py,sha256=Xzqj_v_rUVwk9ep9v6GNVkGkQ2njum34ViEe0ew6H2M,1808
|
|
222
|
+
notionary/utils/pagination.py,sha256=xxV4blbvMvbeicaU4SeKNvoOOCw8s8GF0Rj4FPJaZgA,3427
|
|
223
|
+
notionary/utils/uuid_utils.py,sha256=ygTQdiKmdtyb2iY7d9kuYbo8uGSeuhiHH2PhUza6ZUw,579
|
|
224
|
+
notionary/utils/mixins/logging.py,sha256=L-J6UPaiR0dusaswYkvvW4yR0IK6_xzBv3WSFEXKG5w,1678
|
|
225
|
+
notionary/workspace/__init__.py,sha256=xrygBj5RNzLm69bhuxc2pptPs1wIwAMLf30GUEF3OYY,227
|
|
226
|
+
notionary/workspace/client.py,sha256=yChqszwc1FZeuWboqDSEMSkBPNhDO5buOGpdWqJDxLM,2447
|
|
227
|
+
notionary/workspace/schemas.py,sha256=uITRJpqHZD7LF7wOqZ6Cdx51a4Uk9rWZ110ib9EbIrA,562
|
|
228
|
+
notionary/workspace/service.py,sha256=AxBqbNASIzChzBbMoLt4kNj0LhZaVa3CCBLpf6mU6NM,5713
|
|
229
|
+
notionary/workspace/query/__init__.py,sha256=qK-D7DVUpAeil6hQBJ0Cyi2m-nCcz5TA5qso70eyDw4,173
|
|
230
|
+
notionary/workspace/query/builder.py,sha256=0QV0OHAWIU0O5tXOeTQFKKNNmwaC81nLk_ecHrxdokE,2887
|
|
231
|
+
notionary/workspace/query/models.py,sha256=isebZ9wyvj75C65nhw3VsuJygyZmgZBNX8D5VOf3TAM,1851
|
|
232
|
+
notionary/workspace/query/service.py,sha256=hDxuOfKtyWwrDI3Pip0Sip9VNFyxsbc3Ur9VsC25wrY,5265
|
|
233
|
+
notionary-0.4.1.dist-info/METADATA,sha256=x90BZ_8tVBFl3h_MIIsLGlgIVMB4goibglGxA91nxUs,6493
|
|
234
|
+
notionary-0.4.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
235
|
+
notionary-0.4.1.dist-info/licenses/LICENSE,sha256=FLNy3l12swSnCggq3zOW_3gh4uaZ12DGZL1tR6Bc5Sk,1102
|
|
236
|
+
notionary-0.4.1.dist-info/RECORD,,
|
notionary/file_upload/models.py
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
from enum import Enum
|
|
2
|
-
from typing import Literal
|
|
3
|
-
|
|
4
|
-
from pydantic import BaseModel
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
class UploadMode(str, Enum):
|
|
8
|
-
"""Enum for file upload modes."""
|
|
9
|
-
|
|
10
|
-
SINGLE_PART = "single_part"
|
|
11
|
-
MULTI_PART = "multi_part"
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
class FileUploadResponse(BaseModel):
|
|
15
|
-
"""
|
|
16
|
-
Represents a Notion file upload object as returned by the File Upload API.
|
|
17
|
-
"""
|
|
18
|
-
|
|
19
|
-
object: Literal["file_upload"]
|
|
20
|
-
id: str
|
|
21
|
-
created_time: str
|
|
22
|
-
last_edited_time: str
|
|
23
|
-
expiry_time: str
|
|
24
|
-
upload_url: str
|
|
25
|
-
archived: bool
|
|
26
|
-
status: str # "pending", "uploaded", "failed", etc.
|
|
27
|
-
filename: str | None = None
|
|
28
|
-
content_type: str | None = None
|
|
29
|
-
content_length: int | None = None
|
|
30
|
-
request_id: str
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
class FileUploadListResponse(BaseModel):
|
|
34
|
-
"""
|
|
35
|
-
Response model for listing file uploads from /v1/file_uploads endpoint.
|
|
36
|
-
"""
|
|
37
|
-
|
|
38
|
-
object: Literal["list"]
|
|
39
|
-
results: list[FileUploadResponse]
|
|
40
|
-
next_cursor: str | None = None
|
|
41
|
-
has_more: bool
|
|
42
|
-
type: Literal["file_upload"]
|
|
43
|
-
file_upload: dict = {}
|
|
44
|
-
request_id: str
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
class FileUploadCreateRequest(BaseModel):
|
|
48
|
-
"""
|
|
49
|
-
Request model for creating a file upload.
|
|
50
|
-
"""
|
|
51
|
-
|
|
52
|
-
filename: str
|
|
53
|
-
content_type: str | None = None
|
|
54
|
-
content_length: int | None = None
|
|
55
|
-
mode: UploadMode = UploadMode.SINGLE_PART
|
|
56
|
-
|
|
57
|
-
def model_dump(self, **kwargs):
|
|
58
|
-
"""Override to exclude None values"""
|
|
59
|
-
data = super().model_dump(**kwargs)
|
|
60
|
-
return {k: v for k, v in data.items() if v is not None}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
class FileUploadCompleteRequest(BaseModel):
|
|
64
|
-
"""
|
|
65
|
-
Request model for completing a multi-part file upload.
|
|
66
|
-
"""
|
|
67
|
-
|
|
68
|
-
# Usually empty for complete requests, but keeping for future extensibility
|
|
69
|
-
pass
|
notionary/page/blocks/client.py
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
# PageBlockClient
|