unstructured-ingest 0.0.0__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.
Potentially problematic release.
This version of unstructured-ingest might be problematic. Click here for more details.
- unstructured_ingest/__init__.py +1 -0
- unstructured_ingest/__version__.py +1 -0
- unstructured_ingest/cli/__init__.py +14 -0
- unstructured_ingest/cli/base/__init__.py +0 -0
- unstructured_ingest/cli/base/cmd.py +19 -0
- unstructured_ingest/cli/base/dest.py +87 -0
- unstructured_ingest/cli/base/src.py +57 -0
- unstructured_ingest/cli/cli.py +32 -0
- unstructured_ingest/cli/cmd_factory.py +12 -0
- unstructured_ingest/cli/cmds/__init__.py +145 -0
- unstructured_ingest/cli/cmds/airtable.py +69 -0
- unstructured_ingest/cli/cmds/astra.py +99 -0
- unstructured_ingest/cli/cmds/azure_cognitive_search.py +65 -0
- unstructured_ingest/cli/cmds/biomed.py +52 -0
- unstructured_ingest/cli/cmds/chroma.py +104 -0
- unstructured_ingest/cli/cmds/clarifai.py +71 -0
- unstructured_ingest/cli/cmds/confluence.py +69 -0
- unstructured_ingest/cli/cmds/databricks_volumes.py +163 -0
- unstructured_ingest/cli/cmds/delta_table.py +94 -0
- unstructured_ingest/cli/cmds/discord.py +47 -0
- unstructured_ingest/cli/cmds/elasticsearch.py +133 -0
- unstructured_ingest/cli/cmds/fsspec/__init__.py +0 -0
- unstructured_ingest/cli/cmds/fsspec/azure.py +94 -0
- unstructured_ingest/cli/cmds/fsspec/box.py +48 -0
- unstructured_ingest/cli/cmds/fsspec/dropbox.py +51 -0
- unstructured_ingest/cli/cmds/fsspec/fsspec.py +15 -0
- unstructured_ingest/cli/cmds/fsspec/gcs.py +71 -0
- unstructured_ingest/cli/cmds/fsspec/s3.py +74 -0
- unstructured_ingest/cli/cmds/fsspec/sftp.py +58 -0
- unstructured_ingest/cli/cmds/github.py +54 -0
- unstructured_ingest/cli/cmds/gitlab.py +54 -0
- unstructured_ingest/cli/cmds/google_drive.py +49 -0
- unstructured_ingest/cli/cmds/hubspot.py +70 -0
- unstructured_ingest/cli/cmds/jira.py +71 -0
- unstructured_ingest/cli/cmds/kafka.py +102 -0
- unstructured_ingest/cli/cmds/local.py +43 -0
- unstructured_ingest/cli/cmds/mongodb.py +72 -0
- unstructured_ingest/cli/cmds/notion.py +48 -0
- unstructured_ingest/cli/cmds/onedrive.py +66 -0
- unstructured_ingest/cli/cmds/opensearch.py +117 -0
- unstructured_ingest/cli/cmds/outlook.py +67 -0
- unstructured_ingest/cli/cmds/pinecone.py +71 -0
- unstructured_ingest/cli/cmds/qdrant.py +124 -0
- unstructured_ingest/cli/cmds/reddit.py +67 -0
- unstructured_ingest/cli/cmds/salesforce.py +58 -0
- unstructured_ingest/cli/cmds/sharepoint.py +66 -0
- unstructured_ingest/cli/cmds/slack.py +56 -0
- unstructured_ingest/cli/cmds/sql.py +66 -0
- unstructured_ingest/cli/cmds/vectara.py +66 -0
- unstructured_ingest/cli/cmds/weaviate.py +98 -0
- unstructured_ingest/cli/cmds/wikipedia.py +40 -0
- unstructured_ingest/cli/common.py +7 -0
- unstructured_ingest/cli/interfaces.py +656 -0
- unstructured_ingest/cli/utils.py +205 -0
- unstructured_ingest/connector/__init__.py +0 -0
- unstructured_ingest/connector/airtable.py +309 -0
- unstructured_ingest/connector/astra.py +237 -0
- unstructured_ingest/connector/azure_cognitive_search.py +144 -0
- unstructured_ingest/connector/biomed.py +313 -0
- unstructured_ingest/connector/chroma.py +158 -0
- unstructured_ingest/connector/clarifai.py +122 -0
- unstructured_ingest/connector/confluence.py +285 -0
- unstructured_ingest/connector/databricks_volumes.py +137 -0
- unstructured_ingest/connector/delta_table.py +203 -0
- unstructured_ingest/connector/discord.py +180 -0
- unstructured_ingest/connector/elasticsearch.py +396 -0
- unstructured_ingest/connector/fsspec/__init__.py +0 -0
- unstructured_ingest/connector/fsspec/azure.py +78 -0
- unstructured_ingest/connector/fsspec/box.py +109 -0
- unstructured_ingest/connector/fsspec/dropbox.py +160 -0
- unstructured_ingest/connector/fsspec/fsspec.py +359 -0
- unstructured_ingest/connector/fsspec/gcs.py +82 -0
- unstructured_ingest/connector/fsspec/s3.py +62 -0
- unstructured_ingest/connector/fsspec/sftp.py +81 -0
- unstructured_ingest/connector/git.py +124 -0
- unstructured_ingest/connector/github.py +173 -0
- unstructured_ingest/connector/gitlab.py +142 -0
- unstructured_ingest/connector/google_drive.py +349 -0
- unstructured_ingest/connector/hubspot.py +278 -0
- unstructured_ingest/connector/jira.py +469 -0
- unstructured_ingest/connector/kafka.py +294 -0
- unstructured_ingest/connector/local.py +139 -0
- unstructured_ingest/connector/mongodb.py +285 -0
- unstructured_ingest/connector/notion/__init__.py +0 -0
- unstructured_ingest/connector/notion/client.py +233 -0
- unstructured_ingest/connector/notion/connector.py +468 -0
- unstructured_ingest/connector/notion/helpers.py +584 -0
- unstructured_ingest/connector/notion/interfaces.py +32 -0
- unstructured_ingest/connector/notion/types/__init__.py +0 -0
- unstructured_ingest/connector/notion/types/block.py +95 -0
- unstructured_ingest/connector/notion/types/blocks/__init__.py +63 -0
- unstructured_ingest/connector/notion/types/blocks/bookmark.py +40 -0
- unstructured_ingest/connector/notion/types/blocks/breadcrumb.py +21 -0
- unstructured_ingest/connector/notion/types/blocks/bulleted_list_item.py +31 -0
- unstructured_ingest/connector/notion/types/blocks/callout.py +94 -0
- unstructured_ingest/connector/notion/types/blocks/child_database.py +23 -0
- unstructured_ingest/connector/notion/types/blocks/child_page.py +23 -0
- unstructured_ingest/connector/notion/types/blocks/code.py +43 -0
- unstructured_ingest/connector/notion/types/blocks/column_list.py +35 -0
- unstructured_ingest/connector/notion/types/blocks/divider.py +22 -0
- unstructured_ingest/connector/notion/types/blocks/embed.py +36 -0
- unstructured_ingest/connector/notion/types/blocks/equation.py +23 -0
- unstructured_ingest/connector/notion/types/blocks/file.py +49 -0
- unstructured_ingest/connector/notion/types/blocks/heading.py +37 -0
- unstructured_ingest/connector/notion/types/blocks/image.py +21 -0
- unstructured_ingest/connector/notion/types/blocks/link_preview.py +24 -0
- unstructured_ingest/connector/notion/types/blocks/link_to_page.py +29 -0
- unstructured_ingest/connector/notion/types/blocks/numbered_list.py +29 -0
- unstructured_ingest/connector/notion/types/blocks/paragraph.py +31 -0
- unstructured_ingest/connector/notion/types/blocks/pdf.py +49 -0
- unstructured_ingest/connector/notion/types/blocks/quote.py +37 -0
- unstructured_ingest/connector/notion/types/blocks/synced_block.py +57 -0
- unstructured_ingest/connector/notion/types/blocks/table.py +63 -0
- unstructured_ingest/connector/notion/types/blocks/table_of_contents.py +23 -0
- unstructured_ingest/connector/notion/types/blocks/template.py +30 -0
- unstructured_ingest/connector/notion/types/blocks/todo.py +42 -0
- unstructured_ingest/connector/notion/types/blocks/toggle.py +37 -0
- unstructured_ingest/connector/notion/types/blocks/unsupported.py +20 -0
- unstructured_ingest/connector/notion/types/blocks/video.py +22 -0
- unstructured_ingest/connector/notion/types/database.py +72 -0
- unstructured_ingest/connector/notion/types/database_properties/__init__.py +106 -0
- unstructured_ingest/connector/notion/types/database_properties/checkbox.py +38 -0
- unstructured_ingest/connector/notion/types/database_properties/created_by.py +35 -0
- unstructured_ingest/connector/notion/types/database_properties/created_time.py +34 -0
- unstructured_ingest/connector/notion/types/database_properties/date.py +41 -0
- unstructured_ingest/connector/notion/types/database_properties/email.py +36 -0
- unstructured_ingest/connector/notion/types/database_properties/files.py +37 -0
- unstructured_ingest/connector/notion/types/database_properties/formula.py +49 -0
- unstructured_ingest/connector/notion/types/database_properties/last_edited_by.py +34 -0
- unstructured_ingest/connector/notion/types/database_properties/last_edited_time.py +34 -0
- unstructured_ingest/connector/notion/types/database_properties/multiselect.py +73 -0
- unstructured_ingest/connector/notion/types/database_properties/number.py +49 -0
- unstructured_ingest/connector/notion/types/database_properties/people.py +40 -0
- unstructured_ingest/connector/notion/types/database_properties/phone_number.py +36 -0
- unstructured_ingest/connector/notion/types/database_properties/relation.py +67 -0
- unstructured_ingest/connector/notion/types/database_properties/rich_text.py +43 -0
- unstructured_ingest/connector/notion/types/database_properties/rollup.py +56 -0
- unstructured_ingest/connector/notion/types/database_properties/select.py +68 -0
- unstructured_ingest/connector/notion/types/database_properties/status.py +80 -0
- unstructured_ingest/connector/notion/types/database_properties/title.py +37 -0
- unstructured_ingest/connector/notion/types/database_properties/unique_id.py +50 -0
- unstructured_ingest/connector/notion/types/database_properties/url.py +37 -0
- unstructured_ingest/connector/notion/types/database_properties/verification.py +78 -0
- unstructured_ingest/connector/notion/types/date.py +26 -0
- unstructured_ingest/connector/notion/types/file.py +51 -0
- unstructured_ingest/connector/notion/types/page.py +44 -0
- unstructured_ingest/connector/notion/types/parent.py +66 -0
- unstructured_ingest/connector/notion/types/rich_text.py +189 -0
- unstructured_ingest/connector/notion/types/user.py +76 -0
- unstructured_ingest/connector/onedrive.py +232 -0
- unstructured_ingest/connector/opensearch.py +218 -0
- unstructured_ingest/connector/outlook.py +285 -0
- unstructured_ingest/connector/pinecone.py +140 -0
- unstructured_ingest/connector/qdrant.py +144 -0
- unstructured_ingest/connector/reddit.py +166 -0
- unstructured_ingest/connector/registry.py +109 -0
- unstructured_ingest/connector/salesforce.py +301 -0
- unstructured_ingest/connector/sharepoint.py +573 -0
- unstructured_ingest/connector/slack.py +224 -0
- unstructured_ingest/connector/sql.py +199 -0
- unstructured_ingest/connector/vectara.py +248 -0
- unstructured_ingest/connector/weaviate.py +190 -0
- unstructured_ingest/connector/wikipedia.py +208 -0
- unstructured_ingest/enhanced_dataclass/__init__.py +4 -0
- unstructured_ingest/enhanced_dataclass/core.py +99 -0
- unstructured_ingest/enhanced_dataclass/dataclasses.py +54 -0
- unstructured_ingest/enhanced_dataclass/json_mixin.py +125 -0
- unstructured_ingest/error.py +49 -0
- unstructured_ingest/evaluate.py +338 -0
- unstructured_ingest/ingest_backoff/__init__.py +3 -0
- unstructured_ingest/ingest_backoff/_common.py +102 -0
- unstructured_ingest/ingest_backoff/_wrapper.py +122 -0
- unstructured_ingest/interfaces.py +838 -0
- unstructured_ingest/logger.py +130 -0
- unstructured_ingest/main.py +11 -0
- unstructured_ingest/pipeline/__init__.py +22 -0
- unstructured_ingest/pipeline/copy.py +19 -0
- unstructured_ingest/pipeline/doc_factory.py +12 -0
- unstructured_ingest/pipeline/interfaces.py +265 -0
- unstructured_ingest/pipeline/partition.py +60 -0
- unstructured_ingest/pipeline/permissions.py +12 -0
- unstructured_ingest/pipeline/pipeline.py +117 -0
- unstructured_ingest/pipeline/reformat/__init__.py +0 -0
- unstructured_ingest/pipeline/reformat/chunking.py +130 -0
- unstructured_ingest/pipeline/reformat/embedding.py +66 -0
- unstructured_ingest/pipeline/source.py +77 -0
- unstructured_ingest/pipeline/utils.py +6 -0
- unstructured_ingest/pipeline/write.py +18 -0
- unstructured_ingest/processor.py +93 -0
- unstructured_ingest/runner/__init__.py +104 -0
- unstructured_ingest/runner/airtable.py +35 -0
- unstructured_ingest/runner/astra.py +34 -0
- unstructured_ingest/runner/base_runner.py +89 -0
- unstructured_ingest/runner/biomed.py +45 -0
- unstructured_ingest/runner/confluence.py +35 -0
- unstructured_ingest/runner/delta_table.py +34 -0
- unstructured_ingest/runner/discord.py +35 -0
- unstructured_ingest/runner/elasticsearch.py +40 -0
- unstructured_ingest/runner/fsspec/__init__.py +0 -0
- unstructured_ingest/runner/fsspec/azure.py +30 -0
- unstructured_ingest/runner/fsspec/box.py +28 -0
- unstructured_ingest/runner/fsspec/dropbox.py +30 -0
- unstructured_ingest/runner/fsspec/fsspec.py +40 -0
- unstructured_ingest/runner/fsspec/gcs.py +28 -0
- unstructured_ingest/runner/fsspec/s3.py +28 -0
- unstructured_ingest/runner/fsspec/sftp.py +28 -0
- unstructured_ingest/runner/github.py +37 -0
- unstructured_ingest/runner/gitlab.py +37 -0
- unstructured_ingest/runner/google_drive.py +35 -0
- unstructured_ingest/runner/hubspot.py +35 -0
- unstructured_ingest/runner/jira.py +35 -0
- unstructured_ingest/runner/kafka.py +34 -0
- unstructured_ingest/runner/local.py +23 -0
- unstructured_ingest/runner/mongodb.py +34 -0
- unstructured_ingest/runner/notion.py +61 -0
- unstructured_ingest/runner/onedrive.py +35 -0
- unstructured_ingest/runner/opensearch.py +40 -0
- unstructured_ingest/runner/outlook.py +33 -0
- unstructured_ingest/runner/reddit.py +35 -0
- unstructured_ingest/runner/salesforce.py +33 -0
- unstructured_ingest/runner/sharepoint.py +35 -0
- unstructured_ingest/runner/slack.py +33 -0
- unstructured_ingest/runner/utils.py +47 -0
- unstructured_ingest/runner/wikipedia.py +35 -0
- unstructured_ingest/runner/writers/__init__.py +48 -0
- unstructured_ingest/runner/writers/astra.py +22 -0
- unstructured_ingest/runner/writers/azure_cognitive_search.py +24 -0
- unstructured_ingest/runner/writers/base_writer.py +26 -0
- unstructured_ingest/runner/writers/chroma.py +22 -0
- unstructured_ingest/runner/writers/clarifai.py +19 -0
- unstructured_ingest/runner/writers/databricks_volumes.py +25 -0
- unstructured_ingest/runner/writers/delta_table.py +24 -0
- unstructured_ingest/runner/writers/elasticsearch.py +24 -0
- unstructured_ingest/runner/writers/fsspec/__init__.py +0 -0
- unstructured_ingest/runner/writers/fsspec/azure.py +24 -0
- unstructured_ingest/runner/writers/fsspec/box.py +21 -0
- unstructured_ingest/runner/writers/fsspec/dropbox.py +21 -0
- unstructured_ingest/runner/writers/fsspec/gcs.py +19 -0
- unstructured_ingest/runner/writers/fsspec/s3.py +21 -0
- unstructured_ingest/runner/writers/kafka.py +21 -0
- unstructured_ingest/runner/writers/mongodb.py +21 -0
- unstructured_ingest/runner/writers/opensearch.py +26 -0
- unstructured_ingest/runner/writers/pinecone.py +21 -0
- unstructured_ingest/runner/writers/qdrant.py +19 -0
- unstructured_ingest/runner/writers/sql.py +22 -0
- unstructured_ingest/runner/writers/vectara.py +22 -0
- unstructured_ingest/runner/writers/weaviate.py +21 -0
- unstructured_ingest/utils/__init__.py +0 -0
- unstructured_ingest/utils/compression.py +117 -0
- unstructured_ingest/utils/data_prep.py +112 -0
- unstructured_ingest/utils/dep_check.py +66 -0
- unstructured_ingest/utils/string_and_date_utils.py +39 -0
- unstructured_ingest/utils/table.py +73 -0
- unstructured_ingest/v2/__init__.py +1 -0
- unstructured_ingest/v2/cli/__init__.py +0 -0
- unstructured_ingest/v2/cli/base/__init__.py +4 -0
- unstructured_ingest/v2/cli/base/cmd.py +215 -0
- unstructured_ingest/v2/cli/base/dest.py +76 -0
- unstructured_ingest/v2/cli/base/importer.py +34 -0
- unstructured_ingest/v2/cli/base/src.py +70 -0
- unstructured_ingest/v2/cli/cli.py +24 -0
- unstructured_ingest/v2/cli/cmds/__init__.py +87 -0
- unstructured_ingest/v2/cli/cmds/astra.py +85 -0
- unstructured_ingest/v2/cli/cmds/azure_cognitive_search.py +72 -0
- unstructured_ingest/v2/cli/cmds/chroma.py +108 -0
- unstructured_ingest/v2/cli/cmds/databricks_volumes.py +161 -0
- unstructured_ingest/v2/cli/cmds/elasticsearch.py +159 -0
- unstructured_ingest/v2/cli/cmds/fsspec/__init__.py +0 -0
- unstructured_ingest/v2/cli/cmds/fsspec/azure.py +84 -0
- unstructured_ingest/v2/cli/cmds/fsspec/box.py +58 -0
- unstructured_ingest/v2/cli/cmds/fsspec/dropbox.py +58 -0
- unstructured_ingest/v2/cli/cmds/fsspec/fsspec.py +77 -0
- unstructured_ingest/v2/cli/cmds/fsspec/gcs.py +81 -0
- unstructured_ingest/v2/cli/cmds/fsspec/s3.py +84 -0
- unstructured_ingest/v2/cli/cmds/fsspec/sftp.py +80 -0
- unstructured_ingest/v2/cli/cmds/google_drive.py +74 -0
- unstructured_ingest/v2/cli/cmds/local.py +60 -0
- unstructured_ingest/v2/cli/cmds/mongodb.py +62 -0
- unstructured_ingest/v2/cli/cmds/onedrive.py +91 -0
- unstructured_ingest/v2/cli/cmds/opensearch.py +93 -0
- unstructured_ingest/v2/cli/cmds/pinecone.py +62 -0
- unstructured_ingest/v2/cli/cmds/salesforce.py +79 -0
- unstructured_ingest/v2/cli/cmds/sharepoint.py +112 -0
- unstructured_ingest/v2/cli/cmds/singlestore.py +96 -0
- unstructured_ingest/v2/cli/cmds/sql.py +84 -0
- unstructured_ingest/v2/cli/cmds/weaviate.py +100 -0
- unstructured_ingest/v2/cli/configs/__init__.py +6 -0
- unstructured_ingest/v2/cli/configs/chunk.py +89 -0
- unstructured_ingest/v2/cli/configs/embed.py +74 -0
- unstructured_ingest/v2/cli/configs/partition.py +99 -0
- unstructured_ingest/v2/cli/configs/processor.py +88 -0
- unstructured_ingest/v2/cli/interfaces.py +27 -0
- unstructured_ingest/v2/cli/utils.py +240 -0
- unstructured_ingest/v2/example.py +37 -0
- unstructured_ingest/v2/interfaces/__init__.py +29 -0
- unstructured_ingest/v2/interfaces/connector.py +32 -0
- unstructured_ingest/v2/interfaces/downloader.py +79 -0
- unstructured_ingest/v2/interfaces/file_data.py +49 -0
- unstructured_ingest/v2/interfaces/indexer.py +28 -0
- unstructured_ingest/v2/interfaces/process.py +20 -0
- unstructured_ingest/v2/interfaces/processor.py +48 -0
- unstructured_ingest/v2/interfaces/upload_stager.py +48 -0
- unstructured_ingest/v2/interfaces/uploader.py +39 -0
- unstructured_ingest/v2/logger.py +126 -0
- unstructured_ingest/v2/main.py +11 -0
- unstructured_ingest/v2/pipeline/__init__.py +0 -0
- unstructured_ingest/v2/pipeline/interfaces.py +167 -0
- unstructured_ingest/v2/pipeline/pipeline.py +284 -0
- unstructured_ingest/v2/pipeline/steps/__init__.py +0 -0
- unstructured_ingest/v2/pipeline/steps/chunk.py +85 -0
- unstructured_ingest/v2/pipeline/steps/download.py +124 -0
- unstructured_ingest/v2/pipeline/steps/embed.py +84 -0
- unstructured_ingest/v2/pipeline/steps/index.py +61 -0
- unstructured_ingest/v2/pipeline/steps/partition.py +78 -0
- unstructured_ingest/v2/pipeline/steps/stage.py +64 -0
- unstructured_ingest/v2/pipeline/steps/uncompress.py +68 -0
- unstructured_ingest/v2/pipeline/steps/upload.py +73 -0
- unstructured_ingest/v2/pipeline/utils.py +15 -0
- unstructured_ingest/v2/processes/__init__.py +0 -0
- unstructured_ingest/v2/processes/chunker.py +97 -0
- unstructured_ingest/v2/processes/connector_registry.py +63 -0
- unstructured_ingest/v2/processes/connectors/__init__.py +77 -0
- unstructured_ingest/v2/processes/connectors/astra.py +152 -0
- unstructured_ingest/v2/processes/connectors/azure_cognitive_search.py +211 -0
- unstructured_ingest/v2/processes/connectors/chroma.py +204 -0
- unstructured_ingest/v2/processes/connectors/databricks_volumes.py +96 -0
- unstructured_ingest/v2/processes/connectors/elasticsearch.py +401 -0
- unstructured_ingest/v2/processes/connectors/fsspec/__init__.py +37 -0
- unstructured_ingest/v2/processes/connectors/fsspec/azure.py +144 -0
- unstructured_ingest/v2/processes/connectors/fsspec/box.py +131 -0
- unstructured_ingest/v2/processes/connectors/fsspec/dropbox.py +130 -0
- unstructured_ingest/v2/processes/connectors/fsspec/fsspec.py +342 -0
- unstructured_ingest/v2/processes/connectors/fsspec/gcs.py +141 -0
- unstructured_ingest/v2/processes/connectors/fsspec/s3.py +164 -0
- unstructured_ingest/v2/processes/connectors/fsspec/sftp.py +166 -0
- unstructured_ingest/v2/processes/connectors/fsspec/utils.py +17 -0
- unstructured_ingest/v2/processes/connectors/google_drive.py +335 -0
- unstructured_ingest/v2/processes/connectors/local.py +204 -0
- unstructured_ingest/v2/processes/connectors/mongodb.py +138 -0
- unstructured_ingest/v2/processes/connectors/onedrive.py +216 -0
- unstructured_ingest/v2/processes/connectors/opensearch.py +155 -0
- unstructured_ingest/v2/processes/connectors/pinecone.py +178 -0
- unstructured_ingest/v2/processes/connectors/salesforce.py +293 -0
- unstructured_ingest/v2/processes/connectors/sharepoint.py +412 -0
- unstructured_ingest/v2/processes/connectors/singlestore.py +160 -0
- unstructured_ingest/v2/processes/connectors/sql.py +269 -0
- unstructured_ingest/v2/processes/connectors/utils.py +19 -0
- unstructured_ingest/v2/processes/connectors/weaviate.py +235 -0
- unstructured_ingest/v2/processes/embedder.py +76 -0
- unstructured_ingest/v2/processes/partitioner.py +166 -0
- unstructured_ingest/v2/processes/uncompress.py +43 -0
- unstructured_ingest-0.0.0.dist-info/METADATA +319 -0
- unstructured_ingest-0.0.0.dist-info/RECORD +356 -0
- unstructured_ingest-0.0.0.dist-info/WHEEL +5 -0
- unstructured_ingest-0.0.0.dist-info/entry_points.txt +2 -0
- unstructured_ingest-0.0.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# https://developers.notion.com/reference/property-object#rollup
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
from typing import Optional
|
|
4
|
+
|
|
5
|
+
from htmlBuilder.tags import Div, HtmlTag, Span
|
|
6
|
+
|
|
7
|
+
from unstructured_ingest.connector.notion.interfaces import (
|
|
8
|
+
DBCellBase,
|
|
9
|
+
DBPropertyBase,
|
|
10
|
+
FromJSONMixin,
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@dataclass
|
|
15
|
+
class RollupProp(FromJSONMixin):
|
|
16
|
+
function: str
|
|
17
|
+
relation_property_id: str
|
|
18
|
+
relation_property_name: str
|
|
19
|
+
rollup_property_id: str
|
|
20
|
+
rollup_property_name: str
|
|
21
|
+
|
|
22
|
+
@classmethod
|
|
23
|
+
def from_dict(cls, data: dict):
|
|
24
|
+
return cls(**data)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
@dataclass
|
|
28
|
+
class Rollup(DBPropertyBase):
|
|
29
|
+
id: str
|
|
30
|
+
name: str
|
|
31
|
+
rollup: RollupProp
|
|
32
|
+
type: str = "rollup"
|
|
33
|
+
|
|
34
|
+
@classmethod
|
|
35
|
+
def from_dict(cls, data: dict):
|
|
36
|
+
return cls(rollup=RollupProp.from_dict(data.pop("rollup")), **data)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
@dataclass
|
|
40
|
+
class RollupCell(DBCellBase):
|
|
41
|
+
id: str
|
|
42
|
+
rollup: dict
|
|
43
|
+
type: str = "rollup"
|
|
44
|
+
name: Optional[str] = None
|
|
45
|
+
|
|
46
|
+
@classmethod
|
|
47
|
+
def from_dict(cls, data: dict):
|
|
48
|
+
return cls(**data)
|
|
49
|
+
|
|
50
|
+
def get_html(self) -> Optional[HtmlTag]:
|
|
51
|
+
rollup = self.rollup
|
|
52
|
+
t = rollup.get("type")
|
|
53
|
+
v = rollup[t]
|
|
54
|
+
if isinstance(v, list):
|
|
55
|
+
return Div([], [Span([], str(x)) for x in v])
|
|
56
|
+
return Div([], str(v))
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# https://developers.notion.com/reference/property-object#select
|
|
2
|
+
from dataclasses import dataclass, field
|
|
3
|
+
from typing import List, Optional
|
|
4
|
+
|
|
5
|
+
from htmlBuilder.attributes import Style
|
|
6
|
+
from htmlBuilder.tags import Div, HtmlTag
|
|
7
|
+
|
|
8
|
+
from unstructured_ingest.connector.notion.interfaces import (
|
|
9
|
+
DBCellBase,
|
|
10
|
+
DBPropertyBase,
|
|
11
|
+
FromJSONMixin,
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@dataclass
|
|
16
|
+
class SelectOption(FromJSONMixin):
|
|
17
|
+
color: str
|
|
18
|
+
id: str
|
|
19
|
+
name: str
|
|
20
|
+
|
|
21
|
+
@classmethod
|
|
22
|
+
def from_dict(cls, data: dict):
|
|
23
|
+
return cls(**data)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
@dataclass
|
|
27
|
+
class SelectProp(FromJSONMixin):
|
|
28
|
+
options: List[SelectOption] = field(default_factory=list)
|
|
29
|
+
|
|
30
|
+
@classmethod
|
|
31
|
+
def from_dict(cls, data: dict):
|
|
32
|
+
return cls(options=[SelectOption.from_dict(o) for o in data.get("options", [])])
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
@dataclass
|
|
36
|
+
class Select(DBPropertyBase):
|
|
37
|
+
id: str
|
|
38
|
+
name: str
|
|
39
|
+
select: SelectProp
|
|
40
|
+
type: str = "select"
|
|
41
|
+
|
|
42
|
+
@classmethod
|
|
43
|
+
def from_dict(cls, data: dict):
|
|
44
|
+
return cls(select=SelectProp.from_dict(data.pop("select", {})), **data)
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
@dataclass
|
|
48
|
+
class SelectCell(DBCellBase):
|
|
49
|
+
id: str
|
|
50
|
+
select: Optional[SelectOption]
|
|
51
|
+
type: str = "select"
|
|
52
|
+
name: Optional[str] = None
|
|
53
|
+
|
|
54
|
+
@classmethod
|
|
55
|
+
def from_dict(cls, data: dict):
|
|
56
|
+
select_data = data.pop("select")
|
|
57
|
+
select = None
|
|
58
|
+
if select_data:
|
|
59
|
+
select = SelectOption.from_dict(select_data)
|
|
60
|
+
return cls(select=select, **data)
|
|
61
|
+
|
|
62
|
+
def get_html(self) -> Optional[HtmlTag]:
|
|
63
|
+
if select := self.select:
|
|
64
|
+
select_attr = []
|
|
65
|
+
if select.color and select.color != "default":
|
|
66
|
+
select_attr.append(Style(f"color: {select.color}"))
|
|
67
|
+
return Div(select_attr, select.name)
|
|
68
|
+
return None
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# https://developers.notion.com/reference/property-object#status
|
|
2
|
+
from dataclasses import dataclass, field
|
|
3
|
+
from typing import List, Optional
|
|
4
|
+
|
|
5
|
+
from htmlBuilder.attributes import Style
|
|
6
|
+
from htmlBuilder.tags import Div, HtmlTag
|
|
7
|
+
|
|
8
|
+
from unstructured_ingest.connector.notion.interfaces import (
|
|
9
|
+
DBCellBase,
|
|
10
|
+
DBPropertyBase,
|
|
11
|
+
FromJSONMixin,
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@dataclass
|
|
16
|
+
class StatusOption(FromJSONMixin):
|
|
17
|
+
color: str
|
|
18
|
+
id: str
|
|
19
|
+
name: str
|
|
20
|
+
|
|
21
|
+
@classmethod
|
|
22
|
+
def from_dict(cls, data: dict):
|
|
23
|
+
return cls(**data)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
@dataclass
|
|
27
|
+
class StatusGroup(FromJSONMixin):
|
|
28
|
+
color: str
|
|
29
|
+
id: str
|
|
30
|
+
name: str
|
|
31
|
+
option_ids: List[str] = field(default_factory=List[str])
|
|
32
|
+
|
|
33
|
+
@classmethod
|
|
34
|
+
def from_dict(cls, data: dict):
|
|
35
|
+
return cls(**data)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
@dataclass
|
|
39
|
+
class StatusProp(FromJSONMixin):
|
|
40
|
+
options: List[StatusOption] = field(default_factory=list)
|
|
41
|
+
groups: List[StatusGroup] = field(default_factory=list)
|
|
42
|
+
|
|
43
|
+
@classmethod
|
|
44
|
+
def from_dict(cls, data: dict):
|
|
45
|
+
return cls(
|
|
46
|
+
options=[StatusOption.from_dict(o) for o in data.get("options", [])],
|
|
47
|
+
groups=[StatusGroup.from_dict(g) for g in data.get("groups", [])],
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
@dataclass
|
|
52
|
+
class Status(DBPropertyBase):
|
|
53
|
+
id: str
|
|
54
|
+
name: str
|
|
55
|
+
status: StatusProp
|
|
56
|
+
type: str = "status"
|
|
57
|
+
|
|
58
|
+
@classmethod
|
|
59
|
+
def from_dict(cls, data: dict):
|
|
60
|
+
return cls(status=StatusProp.from_dict(data.pop("status", {})), **data)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
@dataclass
|
|
64
|
+
class StatusCell(DBCellBase):
|
|
65
|
+
id: str
|
|
66
|
+
status: Optional[StatusOption]
|
|
67
|
+
type: str = "status"
|
|
68
|
+
name: Optional[str] = None
|
|
69
|
+
|
|
70
|
+
@classmethod
|
|
71
|
+
def from_dict(cls, data: dict):
|
|
72
|
+
return cls(status=StatusOption.from_dict(data.pop("status", {})), **data)
|
|
73
|
+
|
|
74
|
+
def get_html(self) -> Optional[HtmlTag]:
|
|
75
|
+
if status := self.status:
|
|
76
|
+
select_attr = []
|
|
77
|
+
if status.color and status.color != "default":
|
|
78
|
+
select_attr.append(Style(f"color: {status.color}"))
|
|
79
|
+
return Div(select_attr, status.name)
|
|
80
|
+
return None
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# https://developers.notion.com/reference/property-object#title
|
|
2
|
+
from dataclasses import dataclass, field
|
|
3
|
+
from typing import List, Optional
|
|
4
|
+
|
|
5
|
+
from htmlBuilder.tags import Div, HtmlTag
|
|
6
|
+
|
|
7
|
+
from unstructured_ingest.connector.notion.interfaces import DBCellBase, DBPropertyBase
|
|
8
|
+
from unstructured_ingest.connector.notion.types.rich_text import RichText
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@dataclass
|
|
12
|
+
class Title(DBPropertyBase):
|
|
13
|
+
id: str
|
|
14
|
+
name: str
|
|
15
|
+
type: str = "title"
|
|
16
|
+
title: dict = field(default_factory=dict)
|
|
17
|
+
|
|
18
|
+
@classmethod
|
|
19
|
+
def from_dict(cls, data: dict):
|
|
20
|
+
return cls(**data)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
@dataclass
|
|
24
|
+
class TitleCell(DBCellBase):
|
|
25
|
+
id: str
|
|
26
|
+
title: List[RichText]
|
|
27
|
+
type: str = "title"
|
|
28
|
+
name: Optional[str] = None
|
|
29
|
+
|
|
30
|
+
@classmethod
|
|
31
|
+
def from_dict(cls, data: dict):
|
|
32
|
+
return cls(title=[RichText.from_dict(rt) for rt in data.pop("title", [])], **data)
|
|
33
|
+
|
|
34
|
+
def get_html(self) -> Optional[HtmlTag]:
|
|
35
|
+
if not self.title:
|
|
36
|
+
return None
|
|
37
|
+
return Div([], [rt.get_html() for rt in self.title])
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# https://developers.notion.com/reference/property-object#title
|
|
2
|
+
from dataclasses import dataclass, field
|
|
3
|
+
from typing import Optional
|
|
4
|
+
|
|
5
|
+
from htmlBuilder.tags import Div, HtmlTag
|
|
6
|
+
|
|
7
|
+
from unstructured_ingest.connector.notion.interfaces import (
|
|
8
|
+
DBCellBase,
|
|
9
|
+
DBPropertyBase,
|
|
10
|
+
FromJSONMixin,
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@dataclass
|
|
15
|
+
class UniqueID(DBPropertyBase):
|
|
16
|
+
id: str
|
|
17
|
+
name: str
|
|
18
|
+
type: str = "unique_id"
|
|
19
|
+
unique_id: dict = field(default_factory=dict)
|
|
20
|
+
|
|
21
|
+
@classmethod
|
|
22
|
+
def from_dict(cls, data: dict):
|
|
23
|
+
return cls(**data)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
@dataclass
|
|
27
|
+
class UniqueIDCellData(FromJSONMixin):
|
|
28
|
+
prefix: str
|
|
29
|
+
number: int
|
|
30
|
+
|
|
31
|
+
@classmethod
|
|
32
|
+
def from_dict(cls, data: dict):
|
|
33
|
+
return cls(**data)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
@dataclass
|
|
37
|
+
class UniqueIDCell(DBCellBase):
|
|
38
|
+
id: str
|
|
39
|
+
unique_id: Optional[UniqueIDCellData]
|
|
40
|
+
type: str = "title"
|
|
41
|
+
name: Optional[str] = None
|
|
42
|
+
|
|
43
|
+
@classmethod
|
|
44
|
+
def from_dict(cls, data: dict):
|
|
45
|
+
return cls(unique_id=UniqueIDCellData.from_dict(data.pop("unique_id")), **data)
|
|
46
|
+
|
|
47
|
+
def get_html(self) -> Optional[HtmlTag]:
|
|
48
|
+
if unique_id := self.unique_id:
|
|
49
|
+
return Div([], f"{unique_id.prefix}-{unique_id.number}")
|
|
50
|
+
return None
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# https://developers.notion.com/reference/property-object#url
|
|
2
|
+
from dataclasses import dataclass, field
|
|
3
|
+
from typing import Optional
|
|
4
|
+
|
|
5
|
+
from htmlBuilder.attributes import Href
|
|
6
|
+
from htmlBuilder.tags import A, HtmlTag
|
|
7
|
+
|
|
8
|
+
from unstructured_ingest.connector.notion.interfaces import DBCellBase, DBPropertyBase
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@dataclass
|
|
12
|
+
class URL(DBPropertyBase):
|
|
13
|
+
id: str
|
|
14
|
+
name: str
|
|
15
|
+
type: str = "url"
|
|
16
|
+
url: dict = field(default_factory=dict)
|
|
17
|
+
|
|
18
|
+
@classmethod
|
|
19
|
+
def from_dict(cls, data: dict):
|
|
20
|
+
return cls(**data)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
@dataclass
|
|
24
|
+
class URLCell(DBCellBase):
|
|
25
|
+
id: str
|
|
26
|
+
url: Optional[str] = None
|
|
27
|
+
name: Optional[str] = None
|
|
28
|
+
type: str = "url"
|
|
29
|
+
|
|
30
|
+
@classmethod
|
|
31
|
+
def from_dict(cls, data: dict):
|
|
32
|
+
return cls(**data)
|
|
33
|
+
|
|
34
|
+
def get_html(self) -> Optional[HtmlTag]:
|
|
35
|
+
if url := self.url:
|
|
36
|
+
return A([Href(url)], url)
|
|
37
|
+
return None
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# https://developers.notion.com/reference/property-object#url
|
|
2
|
+
from dataclasses import dataclass, field
|
|
3
|
+
from typing import Optional
|
|
4
|
+
|
|
5
|
+
from htmlBuilder.tags import Div, HtmlTag, Span
|
|
6
|
+
|
|
7
|
+
from unstructured_ingest.connector.notion.interfaces import (
|
|
8
|
+
DBCellBase,
|
|
9
|
+
DBPropertyBase,
|
|
10
|
+
FromJSONMixin,
|
|
11
|
+
GetHTMLMixin,
|
|
12
|
+
)
|
|
13
|
+
from unstructured_ingest.connector.notion.types.date import Date
|
|
14
|
+
from unstructured_ingest.connector.notion.types.user import People
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@dataclass
|
|
18
|
+
class Verification(DBPropertyBase):
|
|
19
|
+
id: str
|
|
20
|
+
name: str
|
|
21
|
+
type: str = "verification"
|
|
22
|
+
verification: dict = field(default_factory=dict)
|
|
23
|
+
|
|
24
|
+
@classmethod
|
|
25
|
+
def from_dict(cls, data: dict):
|
|
26
|
+
return cls(**data)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
@dataclass
|
|
30
|
+
class VerificationData(FromJSONMixin, GetHTMLMixin):
|
|
31
|
+
state: Optional[str]
|
|
32
|
+
verified_by: Optional[People]
|
|
33
|
+
date: Optional[Date]
|
|
34
|
+
|
|
35
|
+
@classmethod
|
|
36
|
+
def from_dict(cls, data: dict):
|
|
37
|
+
verified_by = data.pop("verified_by", None)
|
|
38
|
+
date = data.pop("date", None)
|
|
39
|
+
return cls(
|
|
40
|
+
verified_by=People.from_dict(data=verified_by) if verified_by else None,
|
|
41
|
+
date=Date.from_dict(data=date) if date else None,
|
|
42
|
+
**data,
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
def get_html(self) -> Optional[HtmlTag]:
|
|
46
|
+
elements = []
|
|
47
|
+
if state := self.state:
|
|
48
|
+
elements.append(Span([], state))
|
|
49
|
+
if (verified_by := self.verified_by) and (verified_by_html := verified_by.get_html()):
|
|
50
|
+
elements.append(verified_by_html)
|
|
51
|
+
if (date := self.date) and (date_html := date.get_html()):
|
|
52
|
+
elements.append(date_html)
|
|
53
|
+
if elements:
|
|
54
|
+
return Div([], elements)
|
|
55
|
+
return None
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
@dataclass
|
|
59
|
+
class VerificationCell(DBCellBase):
|
|
60
|
+
id: str
|
|
61
|
+
verification: Optional[VerificationData]
|
|
62
|
+
name: Optional[str] = None
|
|
63
|
+
type: str = "verification"
|
|
64
|
+
|
|
65
|
+
@classmethod
|
|
66
|
+
def from_dict(cls, data: dict):
|
|
67
|
+
return cls(verification=VerificationData.from_dict(data.pop("verification")), **data)
|
|
68
|
+
|
|
69
|
+
def get_html(self) -> Optional[HtmlTag]:
|
|
70
|
+
elements = []
|
|
71
|
+
if name := self.name:
|
|
72
|
+
elements.append(Span([], name))
|
|
73
|
+
if (verification := self.verification) and (verification_html := verification.get_html()):
|
|
74
|
+
elements.append(verification_html)
|
|
75
|
+
|
|
76
|
+
if elements:
|
|
77
|
+
return Div([], elements)
|
|
78
|
+
return None
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# https://developers.notion.com/reference/property-value-object#date-property-values
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
from typing import Optional
|
|
4
|
+
|
|
5
|
+
from htmlBuilder.tags import Div, HtmlTag
|
|
6
|
+
|
|
7
|
+
from unstructured_ingest.connector.notion.interfaces import FromJSONMixin, GetHTMLMixin
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@dataclass
|
|
11
|
+
class Date(FromJSONMixin, GetHTMLMixin):
|
|
12
|
+
start: str
|
|
13
|
+
end: Optional[str] = None
|
|
14
|
+
time_zone: Optional[str] = None
|
|
15
|
+
|
|
16
|
+
@classmethod
|
|
17
|
+
def from_dict(cls, data: dict):
|
|
18
|
+
return cls(**data)
|
|
19
|
+
|
|
20
|
+
def get_html(self) -> Optional[HtmlTag]:
|
|
21
|
+
text = f"{self.start}"
|
|
22
|
+
if end := self.end:
|
|
23
|
+
text += f" - {end}"
|
|
24
|
+
if self.time_zone:
|
|
25
|
+
text += f" {self.time_zone}"
|
|
26
|
+
return Div([], text)
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# https://developers.notion.com/reference/file-object
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
from typing import Optional
|
|
4
|
+
|
|
5
|
+
from htmlBuilder.attributes import Href
|
|
6
|
+
from htmlBuilder.tags import A, HtmlTag
|
|
7
|
+
|
|
8
|
+
from unstructured_ingest.connector.notion.interfaces import FromJSONMixin, GetHTMLMixin
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@dataclass
|
|
12
|
+
class External(FromJSONMixin):
|
|
13
|
+
url: str
|
|
14
|
+
|
|
15
|
+
@classmethod
|
|
16
|
+
def from_dict(cls, data: dict):
|
|
17
|
+
return cls(**data)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
@dataclass
|
|
21
|
+
class File(FromJSONMixin):
|
|
22
|
+
url: str
|
|
23
|
+
expiry_time: str
|
|
24
|
+
|
|
25
|
+
@classmethod
|
|
26
|
+
def from_dict(cls, data: dict):
|
|
27
|
+
return cls(**data)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
@dataclass
|
|
31
|
+
class FileObject(FromJSONMixin, GetHTMLMixin):
|
|
32
|
+
type: str
|
|
33
|
+
external: Optional[External] = None
|
|
34
|
+
file: Optional[File] = None
|
|
35
|
+
|
|
36
|
+
@classmethod
|
|
37
|
+
def from_dict(cls, data: dict):
|
|
38
|
+
t = data["type"]
|
|
39
|
+
file_object = cls(type=t)
|
|
40
|
+
if t == "external":
|
|
41
|
+
file_object.external = External.from_dict(data["external"])
|
|
42
|
+
elif t == "file":
|
|
43
|
+
file_object.file = File.from_dict(data["file"])
|
|
44
|
+
return file_object
|
|
45
|
+
|
|
46
|
+
def get_html(self) -> Optional[HtmlTag]:
|
|
47
|
+
if self.file:
|
|
48
|
+
return A([Href(self.file.url)], self.file.url)
|
|
49
|
+
if self.external:
|
|
50
|
+
return A([Href(self.external.url)], self.external.url)
|
|
51
|
+
return None
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# https://developers.notion.com/reference/page
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
from typing import Optional
|
|
4
|
+
|
|
5
|
+
from unstructured_ingest.connector.notion.interfaces import FromJSONMixin
|
|
6
|
+
from unstructured_ingest.connector.notion.types.file import FileObject
|
|
7
|
+
from unstructured_ingest.connector.notion.types.parent import Parent
|
|
8
|
+
from unstructured_ingest.connector.notion.types.user import PartialUser
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@dataclass
|
|
12
|
+
class Page(FromJSONMixin):
|
|
13
|
+
id: str
|
|
14
|
+
created_time: str
|
|
15
|
+
created_by: PartialUser
|
|
16
|
+
last_edited_time: str
|
|
17
|
+
last_edited_by: PartialUser
|
|
18
|
+
archived: bool
|
|
19
|
+
properties: dict
|
|
20
|
+
parent: Parent
|
|
21
|
+
url: str
|
|
22
|
+
public_url: str
|
|
23
|
+
request_id: Optional[str] = None
|
|
24
|
+
object: str = "page"
|
|
25
|
+
icon: Optional[FileObject] = None
|
|
26
|
+
cover: Optional[FileObject] = None
|
|
27
|
+
|
|
28
|
+
@classmethod
|
|
29
|
+
def from_dict(cls, data: dict):
|
|
30
|
+
created_by = data.pop("created_by")
|
|
31
|
+
last_edited_by = data.pop("last_edited_by")
|
|
32
|
+
icon = data.pop("icon")
|
|
33
|
+
cover = data.pop("cover")
|
|
34
|
+
parent = data.pop("parent")
|
|
35
|
+
page = cls(
|
|
36
|
+
created_by=PartialUser.from_dict(created_by),
|
|
37
|
+
last_edited_by=PartialUser.from_dict(last_edited_by),
|
|
38
|
+
icon=FileObject.from_dict(icon) if icon else None,
|
|
39
|
+
cover=FileObject.from_dict(cover) if cover else None,
|
|
40
|
+
parent=Parent.from_dict(parent),
|
|
41
|
+
**data,
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
return page
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# https://developers.notion.com/reference/parent-object
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
from unstructured_ingest.connector.notion.interfaces import FromJSONMixin
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
# https://developers.notion.com/reference/parent-object#database-parent
|
|
8
|
+
@dataclass
|
|
9
|
+
class DatabaseParent(FromJSONMixin):
|
|
10
|
+
database_id: str
|
|
11
|
+
type: str = "database_id"
|
|
12
|
+
|
|
13
|
+
@classmethod
|
|
14
|
+
def from_dict(cls, data: dict):
|
|
15
|
+
return cls(database_id=data["database_id"])
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
# https://developers.notion.com/reference/parent-object#page-parent
|
|
19
|
+
@dataclass
|
|
20
|
+
class PageParent(FromJSONMixin):
|
|
21
|
+
page_id: str
|
|
22
|
+
type: str = "page_id"
|
|
23
|
+
|
|
24
|
+
@classmethod
|
|
25
|
+
def from_dict(cls, data: dict):
|
|
26
|
+
return cls(page_id=data["page_id"])
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
# https://developers.notion.com/reference/parent-object#workspace-parent
|
|
30
|
+
@dataclass
|
|
31
|
+
class WorkspaceParent(FromJSONMixin):
|
|
32
|
+
type: str = "workspace"
|
|
33
|
+
workspace: bool = True
|
|
34
|
+
|
|
35
|
+
@classmethod
|
|
36
|
+
def from_dict(cls, data: dict):
|
|
37
|
+
return cls()
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
# https://developers.notion.com/reference/parent-object#block-parent
|
|
41
|
+
@dataclass
|
|
42
|
+
class BlockParent(FromJSONMixin):
|
|
43
|
+
block_id: str
|
|
44
|
+
type: str = "block_id"
|
|
45
|
+
|
|
46
|
+
@classmethod
|
|
47
|
+
def from_dict(cls, data: dict):
|
|
48
|
+
return cls(block_id=data["block_id"])
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
@dataclass
|
|
52
|
+
class Parent(FromJSONMixin):
|
|
53
|
+
block_id: str
|
|
54
|
+
type: str = "block_id"
|
|
55
|
+
|
|
56
|
+
@classmethod
|
|
57
|
+
def from_dict(cls, data: dict):
|
|
58
|
+
t = data["type"]
|
|
59
|
+
if t == "database_id":
|
|
60
|
+
return DatabaseParent.from_dict(data)
|
|
61
|
+
elif t == "page_id":
|
|
62
|
+
return PageParent.from_dict(data)
|
|
63
|
+
elif t == "workspace":
|
|
64
|
+
return WorkspaceParent.from_dict(data)
|
|
65
|
+
elif t == "block_id":
|
|
66
|
+
return BlockParent.from_dict(data)
|