notionary 0.3.0__py3-none-any.whl → 0.3.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 +9 -2
- notionary/blocks/enums.py +27 -0
- notionary/comments/client.py +6 -9
- notionary/data_source/http/data_source_instance_client.py +4 -4
- notionary/data_source/query/__init__.py +9 -0
- notionary/data_source/query/builder.py +12 -3
- notionary/data_source/query/schema.py +5 -0
- notionary/data_source/service.py +14 -112
- notionary/database/service.py +16 -58
- notionary/exceptions/__init__.py +4 -0
- notionary/exceptions/block_parsing.py +21 -0
- notionary/http/client.py +1 -1
- notionary/page/content/factory.py +2 -0
- notionary/page/content/parser/pre_processsing/handlers/__init__.py +2 -0
- notionary/page/content/parser/pre_processsing/handlers/column_syntax.py +12 -8
- notionary/page/content/parser/pre_processsing/handlers/indentation.py +2 -0
- notionary/page/content/parser/pre_processsing/handlers/video_syntax.py +66 -0
- notionary/page/content/parser/pre_processsing/handlers/whitespace.py +2 -0
- notionary/page/properties/client.py +2 -2
- notionary/page/properties/service.py +14 -3
- notionary/page/service.py +17 -78
- notionary/shared/entity/service.py +94 -36
- notionary/utils/pagination.py +36 -32
- notionary/workspace/__init__.py +2 -2
- notionary/workspace/client.py +2 -0
- notionary/workspace/query/__init__.py +2 -2
- notionary/workspace/query/builder.py +25 -1
- notionary/workspace/query/models.py +9 -1
- notionary/workspace/query/service.py +29 -11
- notionary/workspace/service.py +31 -21
- {notionary-0.3.0.dist-info → notionary-0.3.1.dist-info}/METADATA +9 -5
- {notionary-0.3.0.dist-info → notionary-0.3.1.dist-info}/RECORD +34 -32
- {notionary-0.3.0.dist-info → notionary-0.3.1.dist-info}/WHEEL +0 -0
- {notionary-0.3.0.dist-info → notionary-0.3.1.dist-info}/licenses/LICENSE +0 -0
|
@@ -8,7 +8,7 @@ from notionary.workspace.query.models import (
|
|
|
8
8
|
)
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
class
|
|
11
|
+
class NotionWorkspaceQueryConfigBuilder:
|
|
12
12
|
def __init__(self, config: WorkspaceQueryConfig = None) -> None:
|
|
13
13
|
self.config = config or WorkspaceQueryConfig()
|
|
14
14
|
|
|
@@ -16,6 +16,10 @@ class WorkspaceQueryConfigBuilder:
|
|
|
16
16
|
self.config.query = query
|
|
17
17
|
return self
|
|
18
18
|
|
|
19
|
+
def with_total_results_limit(self, limit: int) -> Self:
|
|
20
|
+
self.config.total_results_limit = limit
|
|
21
|
+
return self
|
|
22
|
+
|
|
19
23
|
def with_pages_only(self) -> Self:
|
|
20
24
|
self.config.object_type = WorkspaceQueryObjectType.PAGE
|
|
21
25
|
return self
|
|
@@ -44,6 +48,26 @@ class WorkspaceQueryConfigBuilder:
|
|
|
44
48
|
def with_sort_by_last_edited(self) -> Self:
|
|
45
49
|
return self.with_sort_timestamp(SortTimestamp.LAST_EDITED_TIME)
|
|
46
50
|
|
|
51
|
+
def with_sort_by_created_time_ascending(self) -> Self:
|
|
52
|
+
self.config.sort_timestamp = SortTimestamp.CREATED_TIME
|
|
53
|
+
self.config.sort_direction = SortDirection.ASCENDING
|
|
54
|
+
return self
|
|
55
|
+
|
|
56
|
+
def with_sort_by_created_time_descending(self) -> Self:
|
|
57
|
+
self.config.sort_timestamp = SortTimestamp.CREATED_TIME
|
|
58
|
+
self.config.sort_direction = SortDirection.DESCENDING
|
|
59
|
+
return self
|
|
60
|
+
|
|
61
|
+
def with_sort_by_last_edited_ascending(self) -> Self:
|
|
62
|
+
self.config.sort_timestamp = SortTimestamp.LAST_EDITED_TIME
|
|
63
|
+
self.config.sort_direction = SortDirection.ASCENDING
|
|
64
|
+
return self
|
|
65
|
+
|
|
66
|
+
def with_sort_by_last_edited_descending(self) -> Self:
|
|
67
|
+
self.config.sort_timestamp = SortTimestamp.LAST_EDITED_TIME
|
|
68
|
+
self.config.sort_direction = SortDirection.DESCENDING
|
|
69
|
+
return self
|
|
70
|
+
|
|
47
71
|
def with_page_size(self, size: int) -> Self:
|
|
48
72
|
self.config.page_size = min(size, 100)
|
|
49
73
|
return self
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
from enum import StrEnum
|
|
2
|
+
from typing import Protocol
|
|
2
3
|
|
|
3
4
|
from pydantic import BaseModel, Field, field_validator, model_serializer
|
|
4
5
|
|
|
5
6
|
from notionary.shared.typings import JsonDict
|
|
6
7
|
|
|
7
8
|
|
|
9
|
+
class SearchableEntity(Protocol):
|
|
10
|
+
title: str
|
|
11
|
+
|
|
12
|
+
|
|
8
13
|
class SortDirection(StrEnum):
|
|
9
14
|
ASCENDING = "ascending"
|
|
10
15
|
DESCENDING = "descending"
|
|
@@ -25,9 +30,12 @@ class WorkspaceQueryConfig(BaseModel):
|
|
|
25
30
|
object_type: WorkspaceQueryObjectType | None = None
|
|
26
31
|
sort_direction: SortDirection = SortDirection.DESCENDING
|
|
27
32
|
sort_timestamp: SortTimestamp = SortTimestamp.LAST_EDITED_TIME
|
|
33
|
+
|
|
28
34
|
page_size: int = Field(default=100, ge=1, le=100)
|
|
29
35
|
start_cursor: str | None = None
|
|
30
36
|
|
|
37
|
+
total_results_limit: int | None = None
|
|
38
|
+
|
|
31
39
|
@field_validator("query")
|
|
32
40
|
@classmethod
|
|
33
41
|
def replace_empty_query_with_none(cls, value: str | None) -> str | None:
|
|
@@ -36,7 +44,7 @@ class WorkspaceQueryConfig(BaseModel):
|
|
|
36
44
|
return value
|
|
37
45
|
|
|
38
46
|
@model_serializer
|
|
39
|
-
def
|
|
47
|
+
def to_api_params(self) -> JsonDict:
|
|
40
48
|
search_dict: JsonDict = {}
|
|
41
49
|
|
|
42
50
|
if self.query:
|
|
@@ -2,22 +2,18 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
import asyncio
|
|
4
4
|
from collections.abc import AsyncIterator
|
|
5
|
-
from typing import TYPE_CHECKING
|
|
5
|
+
from typing import TYPE_CHECKING
|
|
6
6
|
|
|
7
7
|
from notionary.exceptions.search import DatabaseNotFound, DataSourceNotFound, PageNotFound
|
|
8
8
|
from notionary.utils.fuzzy import find_all_matches
|
|
9
9
|
from notionary.workspace.client import WorkspaceClient
|
|
10
|
-
from notionary.workspace.query.builder import
|
|
11
|
-
from notionary.workspace.query.models import WorkspaceQueryConfig
|
|
10
|
+
from notionary.workspace.query.builder import NotionWorkspaceQueryConfigBuilder
|
|
11
|
+
from notionary.workspace.query.models import SearchableEntity, WorkspaceQueryConfig
|
|
12
12
|
|
|
13
13
|
if TYPE_CHECKING:
|
|
14
14
|
from notionary import NotionDatabase, NotionDataSource, NotionPage
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
class SearchableEntity(Protocol):
|
|
18
|
-
title: str
|
|
19
|
-
|
|
20
|
-
|
|
21
17
|
class WorkspaceQueryService:
|
|
22
18
|
def __init__(self, client: WorkspaceClient | None = None) -> None:
|
|
23
19
|
self._client = client or WorkspaceClient()
|
|
@@ -49,20 +45,42 @@ class WorkspaceQueryService:
|
|
|
49
45
|
return await asyncio.gather(*data_source_tasks)
|
|
50
46
|
|
|
51
47
|
async def find_data_source(self, query: str) -> NotionDataSource:
|
|
52
|
-
config =
|
|
48
|
+
config = (
|
|
49
|
+
NotionWorkspaceQueryConfigBuilder()
|
|
50
|
+
.with_query(query)
|
|
51
|
+
.with_data_sources_only()
|
|
52
|
+
.with_page_size(100)
|
|
53
|
+
.build()
|
|
54
|
+
)
|
|
53
55
|
data_sources = await self.get_data_sources(config)
|
|
54
56
|
return self._find_exact_match(data_sources, query, DataSourceNotFound)
|
|
55
57
|
|
|
56
58
|
async def find_page(self, query: str) -> NotionPage:
|
|
57
|
-
config =
|
|
59
|
+
config = (
|
|
60
|
+
NotionWorkspaceQueryConfigBuilder()
|
|
61
|
+
.with_query(query)
|
|
62
|
+
.with_pages_only()
|
|
63
|
+
.with_page_size(100)
|
|
64
|
+
.build()
|
|
65
|
+
)
|
|
58
66
|
pages = await self.get_pages(config)
|
|
59
67
|
return self._find_exact_match(pages, query, PageNotFound)
|
|
60
68
|
|
|
61
69
|
async def find_database(self, query: str) -> NotionDatabase:
|
|
62
|
-
config =
|
|
70
|
+
config = (
|
|
71
|
+
NotionWorkspaceQueryConfigBuilder()
|
|
72
|
+
.with_query(query)
|
|
73
|
+
.with_data_sources_only()
|
|
74
|
+
.with_page_size(100)
|
|
75
|
+
.build()
|
|
76
|
+
)
|
|
63
77
|
data_sources = await self.get_data_sources(config)
|
|
64
78
|
|
|
65
|
-
|
|
79
|
+
parent_database_ids = [data_sources.get_parent_database_id_if_present() for data_sources in data_sources]
|
|
80
|
+
# filter none values which should not happen but for safety
|
|
81
|
+
parent_database_ids = [id for id in parent_database_ids if id is not None]
|
|
82
|
+
|
|
83
|
+
parent_database_tasks = [NotionDatabase.from_id(db_id) for db_id in parent_database_ids]
|
|
66
84
|
parent_databases = await asyncio.gather(*parent_database_tasks)
|
|
67
85
|
potential_databases = [database for database in parent_databases if database is not None]
|
|
68
86
|
|
notionary/workspace/service.py
CHANGED
|
@@ -4,7 +4,7 @@ from collections.abc import AsyncIterator, Callable
|
|
|
4
4
|
from typing import TYPE_CHECKING, Self
|
|
5
5
|
|
|
6
6
|
from notionary.user.service import UserService
|
|
7
|
-
from notionary.workspace.query.builder import
|
|
7
|
+
from notionary.workspace.query.builder import NotionWorkspaceQueryConfigBuilder
|
|
8
8
|
from notionary.workspace.query.models import WorkspaceQueryConfig, WorkspaceQueryObjectType
|
|
9
9
|
from notionary.workspace.query.service import WorkspaceQueryService
|
|
10
10
|
|
|
@@ -13,7 +13,9 @@ if TYPE_CHECKING:
|
|
|
13
13
|
from notionary.page.service import NotionPage
|
|
14
14
|
from notionary.user import BotUser, PersonUser
|
|
15
15
|
|
|
16
|
-
type _QueryConfigInput =
|
|
16
|
+
type _QueryConfigInput = (
|
|
17
|
+
WorkspaceQueryConfig | Callable[[NotionWorkspaceQueryConfigBuilder], NotionWorkspaceQueryConfigBuilder]
|
|
18
|
+
)
|
|
17
19
|
|
|
18
20
|
|
|
19
21
|
class NotionWorkspace:
|
|
@@ -43,14 +45,14 @@ class NotionWorkspace:
|
|
|
43
45
|
self,
|
|
44
46
|
config: _QueryConfigInput | None = None,
|
|
45
47
|
) -> list[NotionPage]:
|
|
46
|
-
query_config = self._resolve_config(config,
|
|
48
|
+
query_config = self._resolve_config(config, WorkspaceQueryObjectType.PAGE)
|
|
47
49
|
return await self._query_service.get_pages(query_config)
|
|
48
50
|
|
|
49
51
|
async def get_pages_stream(
|
|
50
52
|
self,
|
|
51
53
|
config: _QueryConfigInput | None = None,
|
|
52
54
|
) -> AsyncIterator[NotionPage]:
|
|
53
|
-
query_config = self._resolve_config(config,
|
|
55
|
+
query_config = self._resolve_config(config, WorkspaceQueryObjectType.PAGE)
|
|
54
56
|
async for page in self._query_service.get_pages_stream(query_config):
|
|
55
57
|
yield page
|
|
56
58
|
|
|
@@ -58,41 +60,49 @@ class NotionWorkspace:
|
|
|
58
60
|
self,
|
|
59
61
|
config: _QueryConfigInput | None = None,
|
|
60
62
|
) -> list[NotionDataSource]:
|
|
61
|
-
query_config = self._resolve_config(config,
|
|
63
|
+
query_config = self._resolve_config(config, WorkspaceQueryObjectType.DATA_SOURCE)
|
|
62
64
|
return await self._query_service.get_data_sources(query_config)
|
|
63
65
|
|
|
64
66
|
async def get_data_sources_stream(
|
|
65
67
|
self,
|
|
66
68
|
config: _QueryConfigInput | None = None,
|
|
67
69
|
) -> AsyncIterator[NotionDataSource]:
|
|
68
|
-
query_config = self._resolve_config(config,
|
|
70
|
+
query_config = self._resolve_config(config, WorkspaceQueryObjectType.DATA_SOURCE)
|
|
69
71
|
async for data_source in self._query_service.get_data_sources_stream(query_config):
|
|
70
72
|
yield data_source
|
|
71
73
|
|
|
72
74
|
def _resolve_config(
|
|
73
75
|
self,
|
|
74
76
|
config: _QueryConfigInput | None,
|
|
75
|
-
|
|
77
|
+
expected_object_type: WorkspaceQueryObjectType,
|
|
76
78
|
) -> WorkspaceQueryConfig:
|
|
77
|
-
if
|
|
78
|
-
return
|
|
79
|
-
|
|
80
|
-
builder = self._create_builder_with_defaults(default_object_type_to_query)
|
|
79
|
+
if config is None:
|
|
80
|
+
return self._create_default_config(expected_object_type)
|
|
81
81
|
|
|
82
|
-
if
|
|
83
|
-
config
|
|
82
|
+
if isinstance(config, WorkspaceQueryConfig):
|
|
83
|
+
return self._ensure_correct_object_type(config, expected_object_type)
|
|
84
84
|
|
|
85
|
-
return
|
|
85
|
+
return self._build_config_from_callable(config, expected_object_type)
|
|
86
86
|
|
|
87
|
-
def
|
|
88
|
-
|
|
87
|
+
def _create_default_config(self, object_type: WorkspaceQueryObjectType) -> WorkspaceQueryConfig:
|
|
88
|
+
return WorkspaceQueryConfig(object_type=object_type)
|
|
89
89
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
90
|
+
def _build_config_from_callable(
|
|
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)
|
|
94
98
|
|
|
95
|
-
|
|
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
|
|
96
106
|
|
|
97
107
|
async def get_users(self) -> list[PersonUser]:
|
|
98
108
|
return [user async for user in self._user_service.list_users_stream()]
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: notionary
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.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>
|
|
7
7
|
License: MIT
|
|
8
8
|
License-File: LICENSE
|
|
9
|
-
Requires-Python: >=3.
|
|
9
|
+
Requires-Python: >=3.12
|
|
10
10
|
Requires-Dist: aiofiles<25.0.0,>=24.1.0
|
|
11
11
|
Requires-Dist: httpx>=0.28.0
|
|
12
12
|
Requires-Dist: pydantic>=2.11.4
|
|
@@ -23,9 +23,13 @@ Description-Content-Type: text/markdown
|
|
|
23
23
|
|
|
24
24
|
<div align="center">
|
|
25
25
|
|
|
26
|
-
[](https://badge.fury.io/py/notionary)
|
|
27
|
+
[](https://www.python.org/downloads/)
|
|
28
|
+
[](https://opensource.org/licenses/MIT)
|
|
29
|
+
[](https://github.com/mathisarends/notionary)
|
|
30
|
+
[](https://pypi.org/project/notionary/)
|
|
31
|
+
[](https://mathisarends.github.io/notionary/)
|
|
32
|
+
[](https://developers.notion.com/)
|
|
29
33
|
|
|
30
34
|
**Transform complex Notion API interactions into simple, Pythonic code.**
|
|
31
35
|
Perfect for developers building AI agents, automation workflows, and dynamic content systems.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
notionary/__init__.py,sha256=
|
|
1
|
+
notionary/__init__.py,sha256=_nL90pjfhRkdxatfVRy_l1Ld86MloAmgqlWPKlYtAMc,445
|
|
2
2
|
notionary/blocks/__init__.py,sha256=LsVUgSsDYlLy-bwLqnukcr4uB8ZcCLMz3fGd4HsNXDY,99
|
|
3
3
|
notionary/blocks/client.py,sha256=zYy_eFz6NKFGqsESDddiUUZZfV6ybWWyzseThZEdIvI,5551
|
|
4
|
-
notionary/blocks/enums.py,sha256=
|
|
4
|
+
notionary/blocks/enums.py,sha256=xr1h-8kZCRRERaAsC4p8wTV7nkX7ili5D-_jNQ61Wk4,4772
|
|
5
5
|
notionary/blocks/schemas.py,sha256=7ZB4jbNzoKraa8O6yLLXeQXGskisUAzbOm1qHUYosNo,21413
|
|
6
6
|
notionary/blocks/rich_text/markdown_rich_text_converter.py,sha256=kZyCwKgv4BMTswmIPTyDVrLs4OQ9JQn9O-Qb0rxea1k,11642
|
|
7
7
|
notionary/blocks/rich_text/models.py,sha256=0aNsB_gpFiqBXAATL4yVMyOy4-zbN0WKB3rEaFQeTKs,4863
|
|
@@ -14,30 +14,31 @@ notionary/blocks/rich_text/name_id_resolver/page.py,sha256=DfjXyBLdkYl5UfoU2UGSl
|
|
|
14
14
|
notionary/blocks/rich_text/name_id_resolver/person.py,sha256=lhDBhJXL0VRoOu8eJc-uOcqXB78os8V6VePagBboKs8,1301
|
|
15
15
|
notionary/blocks/rich_text/name_id_resolver/port.py,sha256=VtTavK6rHL-_qTIjFMsO25cgh_oUHNS-qEM_mONOaS0,259
|
|
16
16
|
notionary/comments/__init__.py,sha256=1LfujehhvWqJmNKft6QvcbwhLlJOGq7cH1uTb4IUR2w,63
|
|
17
|
-
notionary/comments/client.py,sha256=
|
|
17
|
+
notionary/comments/client.py,sha256=43raXEooa_kA-iYlUSEFqtQuA9gJ1kHPLsbC0K0H_bE,2593
|
|
18
18
|
notionary/comments/factory.py,sha256=OmE1CBY5elpbvuSj64EmBfSlmED9VAYIQ65J5jKM15s,1511
|
|
19
19
|
notionary/comments/models.py,sha256=g-WTDSel8nhyRa60rN0U5FuccU0KVnsnJBi6Uqz7NVw,107
|
|
20
20
|
notionary/comments/schemas.py,sha256=AWDMeZbtOiaXfb45cxP5UhXOMxAqPYGetXzRWaJOdfQ,6003
|
|
21
21
|
notionary/comments/service.py,sha256=qRCwTTzjdSD2vgqCJCBPbSO3gyajyUD3JWV3qgiMFe0,1652
|
|
22
22
|
notionary/data_source/schemas.py,sha256=I1b1HEbOj_uWebgZFjZBLTe82DShxM8Tes4_imyfogU,849
|
|
23
|
-
notionary/data_source/service.py,sha256=
|
|
23
|
+
notionary/data_source/service.py,sha256=YFEd6q9ibkE92L8Erq-mpobQ20btzhzlGzJQVknNb28,10842
|
|
24
24
|
notionary/data_source/http/client.py,sha256=wvaBOIT5OtGdE0QjbcDUsuDnZ0TZ-CyIifBHp6OYTqE,445
|
|
25
|
-
notionary/data_source/http/data_source_instance_client.py,sha256=
|
|
25
|
+
notionary/data_source/http/data_source_instance_client.py,sha256=S2cDnUw3ISn7cM7vhdX6PGpAarneZri5NRlILlcBV_s,5006
|
|
26
26
|
notionary/data_source/properties/schemas.py,sha256=EWUtLplGdjbb688EU5EXWqMU2PSPf2GzGglLwS5wAgg,12067
|
|
27
|
-
notionary/data_source/query/
|
|
27
|
+
notionary/data_source/query/__init__.py,sha256=Q3uQf6r0xHYV_i5kn-Gdwf68QKJMnV_7vS_gO4I3kG8,226
|
|
28
|
+
notionary/data_source/query/builder.py,sha256=6oyTtcbs7TiJtitzXDiIk_tCaA3G6uvf_KXIQEJByGU,18740
|
|
28
29
|
notionary/data_source/query/resolver.py,sha256=zkV-ra2vvKdXAIcDO7zEzjvd_79YKLz6umczK6U8fpo,4370
|
|
29
|
-
notionary/data_source/query/schema.py,sha256=
|
|
30
|
+
notionary/data_source/query/schema.py,sha256=PdoboG_b8MDhRw5gfWAnVJpdUJc9b-jcWQs-EUGG8vk,9573
|
|
30
31
|
notionary/data_source/query/validator.py,sha256=wO0oT2i8d-Vl6ul_4ilXFyOxnOvM64HXdCRJPyu-xdE,3309
|
|
31
32
|
notionary/data_source/schema/registry.py,sha256=ageQvLYOnU1g65JcZ9cmQWfj0Sv7petNWUBl5eH-eFo,5185
|
|
32
33
|
notionary/data_source/schema/service.py,sha256=AFkHsOnTOSpf36pr2XHgw16Kna5hzw0GduAdLAh7bMQ,5977
|
|
33
34
|
notionary/database/client.py,sha256=oLl8iRPkNC7Fuu9tAhXg3iX5n6z_35Nvl-JN8i0aSd4,2213
|
|
34
35
|
notionary/database/database_metadata_update_client.py,sha256=LryhjGxDgLbRvuOUVvViZCogI0-Op4QkOlQUW4z8Tmg,905
|
|
35
36
|
notionary/database/schemas.py,sha256=RwhxDRa7v8IAtkXdJLu-gHclliClWmcIfa6xKYCUkZA,853
|
|
36
|
-
notionary/database/service.py,sha256=
|
|
37
|
-
notionary/exceptions/__init__.py,sha256=
|
|
37
|
+
notionary/database/service.py,sha256=yb3bo53wTg5UE2SzaDhqNzxbOnWo38apyiyF4uGZZNo,4449
|
|
38
|
+
notionary/exceptions/__init__.py,sha256=thgYj5f-RacLLaodqUVVi5jsQflMU9FgKjsnB8Q3AAE,1280
|
|
38
39
|
notionary/exceptions/api.py,sha256=5xCX5Xyaa8CMG2f4_fgkZQezPsSjqDrV27ByOY05meg,790
|
|
39
40
|
notionary/exceptions/base.py,sha256=vzMtgFalmpXVEOZDkyF0HqW--WBpq2rVJm-IG1f5vlY,44
|
|
40
|
-
notionary/exceptions/block_parsing.py,sha256=
|
|
41
|
+
notionary/exceptions/block_parsing.py,sha256=6Dd_pg6SEIjy9nNfbnmaLLsOPwra76bXbuFRkJ4Z8qg,1475
|
|
41
42
|
notionary/exceptions/properties.py,sha256=xHAU83C-8fxC1ColcIkA7wyhbAalfdz6Y3JSlFJuhy0,2199
|
|
42
43
|
notionary/exceptions/search.py,sha256=V3l-v5YcR5-zMcLw-A5rvCFMc0xhlWY6nVEVC8HMsDk,2160
|
|
43
44
|
notionary/exceptions/data_source/__init__.py,sha256=Xs4I-zVxVQiVhfTclJX7GuGVO5fMYQIWqiqFnh_O67M,170
|
|
@@ -46,15 +47,15 @@ notionary/exceptions/data_source/properties.py,sha256=WrudbojMa_ktCXvpe0OwegqI-P
|
|
|
46
47
|
notionary/file_upload/client.py,sha256=TVmtMi5iBrgUFLDb7emCwUetmfbTpVFFTnurJ-qU_gw,8384
|
|
47
48
|
notionary/file_upload/models.py,sha256=7a82S1c1PySTulyKJjrOQ-i986W8d3FbCkyGkyUumYc,1738
|
|
48
49
|
notionary/file_upload/service.py,sha256=WcqEE2OfZQ8EhYQWHKzy-Usnd8KzVI3M-1UFWJbJco8,12701
|
|
49
|
-
notionary/http/client.py,sha256=
|
|
50
|
+
notionary/http/client.py,sha256=FsrNcxSW99AFu6Gkhre53XcwAHkZZwe9h6H_z_FiGoU,7696
|
|
50
51
|
notionary/http/models.py,sha256=fvjKAGX-b6JcJ-W7V3DEt4v3SnsdikMa6N0c4aolslY,1352
|
|
51
52
|
notionary/page/page_context.py,sha256=dMxGuzNerfcfy6boRPrcEwxCsuNNeFwzQZg-BdeDgec,1506
|
|
52
53
|
notionary/page/page_http_client.py,sha256=YQdXkfMGu2wuJpALJBIsKKwoHv316n_sMjne-iqJYHc,445
|
|
53
54
|
notionary/page/page_metadata_update_client.py,sha256=jJc3SMFnt98YBAb9ie_OxQBXAiXpeCzslOcRRRGwVks,865
|
|
54
55
|
notionary/page/schemas.py,sha256=rEq1TSEGft8Y1P4ATcpYfxk7h_T7bLRxA2__dA2HJzQ,388
|
|
55
|
-
notionary/page/service.py,sha256=
|
|
56
|
+
notionary/page/service.py,sha256=2s89lgxxdE-TwRnmMdVTKtEXNuK4ufhLfP-4jhiQdhI,6185
|
|
56
57
|
notionary/page/blocks/client.py,sha256=2ukLeaYdFJCGzpQr-3eIZRFG2potXS-3MdKLoRha9bc,19
|
|
57
|
-
notionary/page/content/factory.py,sha256=
|
|
58
|
+
notionary/page/content/factory.py,sha256=MRrHgHIruOVJ1Atew4eF4thPTj2L73QVCbfc9YdYFEM,3760
|
|
58
59
|
notionary/page/content/service.py,sha256=5beyQrQMyjo5Mq6c0uaj3nfbKSA3ujU1aaKiKJN7r3U,2973
|
|
59
60
|
notionary/page/content/markdown/__init__.py,sha256=dhBiNIbiyG38eppjXC0fkZk3NVXzRGC8xqoE89jWHG0,80
|
|
60
61
|
notionary/page/content/markdown/builder.py,sha256=1t4_0mWedf9OM2V1DdDbtHxte8LWsgt8kCx3OkIVFR8,9008
|
|
@@ -122,11 +123,12 @@ notionary/page/content/parser/post_processing/handlers/__init__.py,sha256=Io7Qw_
|
|
|
122
123
|
notionary/page/content/parser/post_processing/handlers/rich_text_length.py,sha256=mFiKqq-dPHzUnjXHrWmHRXeU5WUCdGk7HplDxvCCbaE,3571
|
|
123
124
|
notionary/page/content/parser/post_processing/handlers/rich_text_length_truncation.py,sha256=UZhH3ifJtiJrV22jBAQqnTAWWJCAhmp0F4n0gY1RAE0,4143
|
|
124
125
|
notionary/page/content/parser/pre_processsing/service.py,sha256=moa5sHuNvzUQCVGe-4IvqrCEWtIaEMD6M7FMjLXENcM,507
|
|
125
|
-
notionary/page/content/parser/pre_processsing/handlers/__init__.py,sha256=
|
|
126
|
-
notionary/page/content/parser/pre_processsing/handlers/column_syntax.py,sha256=
|
|
127
|
-
notionary/page/content/parser/pre_processsing/handlers/indentation.py,sha256=
|
|
126
|
+
notionary/page/content/parser/pre_processsing/handlers/__init__.py,sha256=RX6VC1Q9tJAAjtt92hjOy20fcT7yFZP6PvNBjsp79sE,397
|
|
127
|
+
notionary/page/content/parser/pre_processsing/handlers/column_syntax.py,sha256=pd4uFYCriDZWZmM8Ma7nUZMcPh0DExQO0J37Gfpn1Jo,5456
|
|
128
|
+
notionary/page/content/parser/pre_processsing/handlers/indentation.py,sha256=RconFOfl0VR4_RHa4Kqcv9vmbK5xiXSUEXjoMPf1RJU,3324
|
|
128
129
|
notionary/page/content/parser/pre_processsing/handlers/port.py,sha256=Gm_GRGl1eGo1C8AM5CUfFdYAofe4Y0gAPScU2O1EcJo,153
|
|
129
|
-
notionary/page/content/parser/pre_processsing/handlers/
|
|
130
|
+
notionary/page/content/parser/pre_processsing/handlers/video_syntax.py,sha256=O4AA8Gea81NBJklGD-JE4IAeb-IEeWTE2wLTm8BXP1E,2731
|
|
131
|
+
notionary/page/content/parser/pre_processsing/handlers/whitespace.py,sha256=GknAlc4bm2T13MwPz3F-ZP_T_En6-KCQXneqToc2l5I,2685
|
|
130
132
|
notionary/page/content/renderer/context.py,sha256=yiEl0zHWrvfdqXm3tV7IQkuYhoIKaWv3s_PKCNyhRZ8,2015
|
|
131
133
|
notionary/page/content/renderer/factory.py,sha256=YUV0FQ55sPYwTpvDg1n-WoBio4UNUTj3cFg7IGzauzk,8901
|
|
132
134
|
notionary/page/content/renderer/service.py,sha256=llgxgijk6_rYGMLvYW9OdgcpLSk8xxg2mEELRK54CY0,1916
|
|
@@ -166,16 +168,16 @@ notionary/page/content/syntax/__init__.py,sha256=0OjmKk1n4QyZS_0nnKfVAFfn2wge2f4
|
|
|
166
168
|
notionary/page/content/syntax/grammar.py,sha256=vWJ1rgtekcRH4uIb94q83kYaBxmDD0E5YS7oGQR_1Aw,252
|
|
167
169
|
notionary/page/content/syntax/models.py,sha256=pkFoQVMu4eg6xIyi9JYkeRgegrB-QUAw7wlRrIKGIXE,1830
|
|
168
170
|
notionary/page/content/syntax/registry.py,sha256=RsN974l_ddwIv9V4WYFUcEVAo34_BcGiPdrXOtwdYYg,15697
|
|
169
|
-
notionary/page/properties/client.py,sha256=
|
|
171
|
+
notionary/page/properties/client.py,sha256=k4iS64txrzhWbaAn_xSzQ31b0yx6JLDh_madCCSLU14,6749
|
|
170
172
|
notionary/page/properties/factory.py,sha256=YnVWZ98RGYpV9iEY4Ufk7InIoeP9vWwMn5sSvcbSQ2k,1248
|
|
171
173
|
notionary/page/properties/models.py,sha256=G3e7vzmk3kU6G1c0oWX9QlKMdaPOuKwR76CscOUPJMg,8878
|
|
172
|
-
notionary/page/properties/service.py,sha256=
|
|
174
|
+
notionary/page/properties/service.py,sha256=RDPM6E3XaigzhW6fsIYKpZGqy_ErW88iQ2POmd1VrDA,13178
|
|
173
175
|
notionary/shared/typings.py,sha256=LKg_NJvqi0ZuyB6I995zg4XCyijGKY0T_bW90YiI5_g,58
|
|
174
176
|
notionary/shared/entity/client.py,sha256=knblCIKwUHgoxJ_z7QtrRES9E8P9keHQTvr6CMc69gA,1181
|
|
175
177
|
notionary/shared/entity/dto_parsers.py,sha256=yaADwtL9S6mlQzLSNlW71trL0E3FPBmykgI6wuLNKKU,2086
|
|
176
178
|
notionary/shared/entity/entity_metadata_update_client.py,sha256=MKNT6W4ZUVffdB1BzXBqcWuTqaaBBqZ7Q9cRLrynKOI,1769
|
|
177
179
|
notionary/shared/entity/schemas.py,sha256=-NDlmw3dWANFx2Nw_x1WKhtmp_PmcuzpJ2Tsxx7O23c,1132
|
|
178
|
-
notionary/shared/entity/service.py,sha256=
|
|
180
|
+
notionary/shared/entity/service.py,sha256=zB46PPnukgN7VQNwqQTKXvQclSDKgxkzgV_0_rIGtAo,8262
|
|
179
181
|
notionary/shared/models/cover.py,sha256=Qg3I6XS7pQUnsx3VO9_dRHHrt_VmJEpU8h3eu92Cqa0,495
|
|
180
182
|
notionary/shared/models/file.py,sha256=kU_hiLHEQDirBDoKkIKutXlRTSv3-hRJRfaoW-1hGtA,442
|
|
181
183
|
notionary/shared/models/icon.py,sha256=f1NVijUb4B_HhcGA7GtVsS1izycb8u8R7A3uy5qAu0o,603
|
|
@@ -192,18 +194,18 @@ notionary/user/service.py,sha256=20DaDC4Eozfzr2sf0VP3z6sORRKmfb5PdtGG02rJews,256
|
|
|
192
194
|
notionary/utils/date.py,sha256=HPwqmZoylTFKkyI8q4BJXT3q9B39nE55uVZAyG4JnDw,1729
|
|
193
195
|
notionary/utils/decorators.py,sha256=jKik6C_2mAzN1f1RUMkhzsqg7vC_tEO-CyYqLTnyTiw,3722
|
|
194
196
|
notionary/utils/fuzzy.py,sha256=k_D48yHbSd_ecFo3QlrxF5-5c3Bd8gR3bq-_W2J2ZyE,1783
|
|
195
|
-
notionary/utils/pagination.py,sha256=
|
|
197
|
+
notionary/utils/pagination.py,sha256=6h1ZZpgn5YFBBUCGAVntZ45wCeFiQRJhW0JqPPtN9Ws,3343
|
|
196
198
|
notionary/utils/uuid_utils.py,sha256=ygTQdiKmdtyb2iY7d9kuYbo8uGSeuhiHH2PhUza6ZUw,579
|
|
197
199
|
notionary/utils/mixins/logging.py,sha256=fCkHFYhNYeVfppCjD5WLKxY7Sr3FHlJ5UhNd7KzrvsM,1662
|
|
198
|
-
notionary/workspace/__init__.py,sha256=
|
|
199
|
-
notionary/workspace/client.py,sha256=
|
|
200
|
+
notionary/workspace/__init__.py,sha256=DlLV8qNtiuXxru5CorfMkBs_g7SkPalpnN0eNDkODM8,162
|
|
201
|
+
notionary/workspace/client.py,sha256=yChqszwc1FZeuWboqDSEMSkBPNhDO5buOGpdWqJDxLM,2447
|
|
200
202
|
notionary/workspace/schemas.py,sha256=uITRJpqHZD7LF7wOqZ6Cdx51a4Uk9rWZ110ib9EbIrA,562
|
|
201
|
-
notionary/workspace/service.py,sha256
|
|
202
|
-
notionary/workspace/query/__init__.py,sha256=
|
|
203
|
-
notionary/workspace/query/builder.py,sha256=
|
|
204
|
-
notionary/workspace/query/models.py,sha256=
|
|
205
|
-
notionary/workspace/query/service.py,sha256
|
|
206
|
-
notionary-0.3.
|
|
207
|
-
notionary-0.3.
|
|
208
|
-
notionary-0.3.
|
|
209
|
-
notionary-0.3.
|
|
203
|
+
notionary/workspace/service.py,sha256=-zznI2_-nBGf_fMVSDkzhe9uqmPv7N0aRTdA21tQ30Q,4983
|
|
204
|
+
notionary/workspace/query/__init__.py,sha256=aw0tu_k4OIYo5nzgQZQZSrQT0HBkyS_4z9g8shiT6-A,107
|
|
205
|
+
notionary/workspace/query/builder.py,sha256=0QV0OHAWIU0O5tXOeTQFKKNNmwaC81nLk_ecHrxdokE,2887
|
|
206
|
+
notionary/workspace/query/models.py,sha256=isebZ9wyvj75C65nhw3VsuJygyZmgZBNX8D5VOf3TAM,1851
|
|
207
|
+
notionary/workspace/query/service.py,sha256=EEHNwZnstoOyBeBa9yGWYs9n54el-IZ-wIWUwhjrxv8,4975
|
|
208
|
+
notionary-0.3.1.dist-info/METADATA,sha256=gq4kaA_KvdA2n1a4hM1XoAEzMWgkNVJ5D04LTsG2pCw,6493
|
|
209
|
+
notionary-0.3.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
210
|
+
notionary-0.3.1.dist-info/licenses/LICENSE,sha256=FLNy3l12swSnCggq3zOW_3gh4uaZ12DGZL1tR6Bc5Sk,1102
|
|
211
|
+
notionary-0.3.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|