From adacd8e5b1d9868fdbb39a80446bee85dd5703bf Mon Sep 17 00:00:00 2001 From: Roman Isecke <136338424+rbiseck3@users.noreply.github.com> Date: Tue, 17 Oct 2023 12:11:16 -0400 Subject: [PATCH] roman/update ingest pipeline docs (#1689) ### Description * Update all existing connector docs to use new pipeline approach ### Additional changes: * Some defaults were set for the runners to match those in the configs to make those easy to handle, i.e. the biomed runner: ```python max_retries: int = 5, max_request_time: int = 45, decay: float = 0.3, ``` --- CHANGELOG.md | 8 +++ docs/source/source_connectors/airtable.rst | 33 ++++++---- docs/source/source_connectors/azure.rst | 33 ++++++---- docs/source/source_connectors/biomed.rst | 41 ++++++------ docs/source/source_connectors/box.rst | 31 +++++---- docs/source/source_connectors/confluence.rst | 34 ++++++---- docs/source/source_connectors/delta_table.rst | 37 +++++++---- docs/source/source_connectors/discord.rst | 43 ++++++------- docs/source/source_connectors/dropbox.rst | 31 +++++---- .../source_connectors/elasticsearch.rst | 36 +++++++---- docs/source/source_connectors/github.rst | 33 ++++++---- docs/source/source_connectors/gitlab.rst | 33 ++++++---- .../google_cloud_storage.rst | 33 ++++++---- .../source/source_connectors/google_drive.rst | 33 ++++++---- docs/source/source_connectors/jira.rst | 36 +++++++---- .../source_connectors/local_connector.rst | 36 +++++++---- docs/source/source_connectors/notion.rst | 33 ++++++---- docs/source/source_connectors/onedrive.rst | 33 ++++++---- docs/source/source_connectors/outlook.rst | 31 +++++---- docs/source/source_connectors/reddit.rst | 33 ++++++---- docs/source/source_connectors/s3.rst | 33 ++++++---- docs/source/source_connectors/salesforce.rst | 31 +++++---- docs/source/source_connectors/sharepoint.rst | 35 ++++++---- docs/source/source_connectors/slack.rst | 33 ++++++---- docs/source/source_connectors/wikipedia.rst | 34 ++++++---- unstructured/__version__.py | 2 +- unstructured/ingest/README.md | 60 ++++++++++++++---- .../img/unstructured_ingest_cli_diagram.jpg | Bin 37683 -> 0 bytes ...structured_ingest_cli_pipeline_diagram.png | Bin 0 -> 91991 bytes ...unstructured_ingest_processing_diagram.jpg | Bin 169628 -> 0 bytes unstructured/ingest/runner/azure.py | 8 ++- unstructured/ingest/runner/biomed.py | 6 +- unstructured/ingest/runner/confluence.py | 4 +- 33 files changed, 574 insertions(+), 333 deletions(-) delete mode 100644 unstructured/ingest/img/unstructured_ingest_cli_diagram.jpg create mode 100644 unstructured/ingest/img/unstructured_ingest_cli_pipeline_diagram.png delete mode 100644 unstructured/ingest/img/unstructured_ingest_processing_diagram.jpg diff --git a/CHANGELOG.md b/CHANGELOG.md index b848599d7..0eeda7a50 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +## 0.10.25-dev0 + +### Enhancements + +### Features + +### Fixes + ## 0.10.24 ### Enhancements diff --git a/docs/source/source_connectors/airtable.rst b/docs/source/source_connectors/airtable.rst index 839ec9acf..8fe4a6f63 100644 --- a/docs/source/source_connectors/airtable.rst +++ b/docs/source/source_connectors/airtable.rst @@ -31,18 +31,21 @@ Run Locally import os - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.airtable import airtable + from unstructured.ingest.interfaces import PartitionConfig, ReadConfig, ProcessorConfig + from unstructured.ingest.runner import AirtableRunner if __name__ == "__main__": - airtable( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = AirtableRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="airtable-ingest-output", num_processes=2, ), - personal_access_token=os.getenv("AIRTABLE_PERSONAL_ACCESS_TOKEN"), + read_config=ReadConfig(), + partition_config=PartitionConfig() + ) + runner.run( + personal_access_token=os.getenv("AIRTABLE_PERSONAL_ACCESS_TOKEN") ) Run via the API @@ -72,19 +75,23 @@ You can also use upstream connectors with the ``unstructured`` API. For this you import os - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.airtable import airtable + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import AirtableRunner if __name__ == "__main__": - airtable( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = AirtableRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="airtable-ingest-output", num_processes=2, + ), + read_config=ReadConfig(), + partition_config=PartitionConfig( partition_by_api=True, api_key=os.getenv("UNSTRUCTURED_API_KEY"), ), + ) + runner.run( personal_access_token=os.getenv("AIRTABLE_PERSONAL_ACCESS_TOKEN"), ) diff --git a/docs/source/source_connectors/azure.rst b/docs/source/source_connectors/azure.rst index 479f4e1d5..f7b82dd14 100644 --- a/docs/source/source_connectors/azure.rst +++ b/docs/source/source_connectors/azure.rst @@ -28,17 +28,22 @@ Run Locally .. code:: python - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.azure import azure + import os + + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import AzureRunner if __name__ == "__main__": - azure( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = AzureRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="azure-ingest-output", num_processes=2, ), + read_config=ReadConfig(), + partition_config=PartitionConfig(), + ) + runner.run( remote_url="abfs://container1/", account_name="azureunstructured1", ) @@ -56,19 +61,23 @@ You can also use upstream connectors with the ``unstructured`` API. For this you import os - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.azure import azure + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import AzureRunner if __name__ == "__main__": - azure( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = AzureRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="azure-ingest-output", num_processes=2, + ), + read_config=ReadConfig(), + partition_config=PartitionConfig( partition_by_api=True, api_key=os.getenv("UNSTRUCTURED_API_KEY"), ), + ) + runner.run( remote_url="abfs://container1/", account_name="azureunstructured1", ) diff --git a/docs/source/source_connectors/biomed.rst b/docs/source/source_connectors/biomed.rst index cec1deab6..2ef9de1d3 100644 --- a/docs/source/source_connectors/biomed.rst +++ b/docs/source/source_connectors/biomed.rst @@ -29,19 +29,22 @@ Run Locally .. code:: python - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.biomed import biomed + import os + + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import BiomedRunner if __name__ == "__main__": - biomed( - verbose=True, - read_config=ReadConfig( - preserve_downloads=True, - ), - partition_config=PartitionConfig( - output_dir="biomed-ingest-output-path", + runner = BiomedRunner( + processor_config=ProcessorConfig( + verbose=True, + output_dir="bioemt-ingest-output", num_processes=2, ), + read_config=ReadConfig(), + partition_config=PartitionConfig(), + ) + runner.run( path="oa_pdf/07/07/sbaa031.073.PMC7234218.pdf", ) @@ -72,21 +75,23 @@ You can also use upstream connectors with the ``unstructured`` API. For this you import os - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.biomed import biomed + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import BiomedRunner if __name__ == "__main__": - biomed( - verbose=True, - read_config=ReadConfig( - preserve_downloads=True, - ), - partition_config=PartitionConfig( - output_dir="biomed-ingest-output-path", + runner = BiomedRunner( + processor_config=ProcessorConfig( + verbose=True, + output_dir="bioemt-ingest-output", num_processes=2, + ), + read_config=ReadConfig(), + partition_config=PartitionConfig( partition_by_api=True, api_key=os.getenv("UNSTRUCTURED_API_KEY"), ), + ) + runner.run( path="oa_pdf/07/07/sbaa031.073.PMC7234218.pdf", ) diff --git a/docs/source/source_connectors/box.rst b/docs/source/source_connectors/box.rst index c075566db..c0e0bd7cc 100644 --- a/docs/source/source_connectors/box.rst +++ b/docs/source/source_connectors/box.rst @@ -32,17 +32,20 @@ Run Locally import os - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.box import box + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import BoxRunner if __name__ == "__main__": - box( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = BoxRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="box-output", num_processes=2, ), + read_config=ReadConfig(), + partition_config=PartitionConfig(), + ) + runner.run( box_app_config=os.getenv("BOX_APP_CONFIG_PATH"), recursive=True, remote_url="box://utic-test-ingest-fixtures", @@ -76,19 +79,23 @@ You can also use upstream connectors with the ``unstructured`` API. For this you import os - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.box import box + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import BoxRunner if __name__ == "__main__": - box( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = BoxRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="box-output", num_processes=2, + ), + read_config=ReadConfig(), + partition_config=PartitionConfig( partition_by_api=True, api_key=os.getenv("UNSTRUCTURED_API_KEY"), ), + ) + runner.run( box_app_config=os.getenv("BOX_APP_CONFIG_PATH"), recursive=True, remote_url="box://utic-test-ingest-fixtures", diff --git a/docs/source/source_connectors/confluence.rst b/docs/source/source_connectors/confluence.rst index 83c3eda7e..69161ec3d 100644 --- a/docs/source/source_connectors/confluence.rst +++ b/docs/source/source_connectors/confluence.rst @@ -30,18 +30,24 @@ Run Locally .. code:: python - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.confluence import confluence + import os + + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import ConfluenceRunner if __name__ == "__main__": - confluence( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = ConfluenceRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="confluence-ingest-output", num_processes=2, + ), + read_config=ReadConfig(), + partition_config=PartitionConfig( metadata_exclude=["filename", "file_directory", "metadata.data_source.date_processed"], ), + ) + runner.run( url="https://unstructured-ingest-test.atlassian.net", user_email="12345678@unstructured.io", api_token="ABCDE1234ABDE1234ABCDE1234", @@ -75,20 +81,24 @@ You can also use upstream connectors with the ``unstructured`` API. For this you import os - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.confluence import confluence + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import ConfluenceRunner if __name__ == "__main__": - confluence( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = ConfluenceRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="confluence-ingest-output", num_processes=2, + ), + read_config=ReadConfig(), + partition_config=PartitionConfig( metadata_exclude=["filename", "file_directory", "metadata.data_source.date_processed"], partition_by_api=True, api_key=os.getenv("UNSTRUCTURED_API_KEY"), ), + ) + runner.run( url="https://unstructured-ingest-test.atlassian.net", user_email="12345678@unstructured.io", api_token="ABCDE1234ABDE1234ABCDE1234", diff --git a/docs/source/source_connectors/delta_table.rst b/docs/source/source_connectors/delta_table.rst index b8d18d94f..86a9a2813 100644 --- a/docs/source/source_connectors/delta_table.rst +++ b/docs/source/source_connectors/delta_table.rst @@ -29,19 +29,24 @@ Run Locally .. code:: python - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.delta_table import delta_table + import os + + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import DeltaTableRunner if __name__ == "__main__": - delta_table( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = DeltaTableRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="delta-table-example", num_processes=2, ), + read_config=ReadConfig(), + partition_config=PartitionConfig(), + ) + runner.run( table_uri="s3://utic-dev-tech-fixtures/sample-delta-lake-data/deltatable/", - storage_options="AWS_REGION=us-east-2,AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY" + storage_options="AWS_REGION=us-east-2,AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY", ) @@ -71,21 +76,25 @@ You can also use upstream connectors with the ``unstructured`` API. For this you import os - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.delta_table import delta_table + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import DeltaTableRunner if __name__ == "__main__": - delta_table( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = DeltaTableRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="delta-table-example", num_processes=2, + ), + read_config=ReadConfig(), + partition_config=PartitionConfig( partition_by_api=True, api_key=os.getenv("UNSTRUCTURED_API_KEY"), ), + ) + runner.run( table_uri="s3://utic-dev-tech-fixtures/sample-delta-lake-data/deltatable/", - storage_options="AWS_REGION=us-east-2,AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY" + storage_options="AWS_REGION=us-east-2,AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY", ) Additionally, you will need to pass the ``--partition-endpoint`` if you're running the API locally. You can find more information about the ``unstructured`` API `here `_. diff --git a/docs/source/source_connectors/discord.rst b/docs/source/source_connectors/discord.rst index 9455b7eeb..e488a2f69 100644 --- a/docs/source/source_connectors/discord.rst +++ b/docs/source/source_connectors/discord.rst @@ -32,23 +32,22 @@ Run Locally import os - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.discord import discord + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import DiscordRunner if __name__ == "__main__": - discord( - verbose=True, - read_config=ReadConfig( - download_dir="discord-ingest-download", - preserve_downloads=True, - ), - partition_config=PartitionConfig( - output_dir="discord-example", + runner = DiscordRunner( + processor_config=ProcessorConfig( + verbose=True, + output_dir="discord-ingest-example", num_processes=2, ), + read_config=ReadConfig(), + partition_config=PartitionConfig(), + ) + runner.run( channels=["12345678"], token=os.getenv("DISCORD_TOKEN"), - period=None, ) Run via the API @@ -79,25 +78,25 @@ You can also use upstream connectors with the ``unstructured`` API. For this you import os - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.discord import discord + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import DiscordRunner if __name__ == "__main__": - discord( - verbose=True, - read_config=ReadConfig( - download_dir="discord-ingest-download", - preserve_downloads=True, - ), - partition_config=PartitionConfig( - output_dir="discord-example", + runner = DiscordRunner( + processor_config=ProcessorConfig( + verbose=True, + output_dir="discord-ingest-example", num_processes=2, + ), + read_config=ReadConfig(), + partition_config=PartitionConfig( partition_by_api=True, api_key=os.getenv("UNSTRUCTURED_API_KEY"), ), + ) + runner.run( channels=["12345678"], token=os.getenv("DISCORD_TOKEN"), - period=None, ) Additionally, you will need to pass the ``--partition-endpoint`` if you're running the API locally. You can find more information about the ``unstructured`` API `here `_. diff --git a/docs/source/source_connectors/dropbox.rst b/docs/source/source_connectors/dropbox.rst index f8e3d9c86..fe00d4267 100644 --- a/docs/source/source_connectors/dropbox.rst +++ b/docs/source/source_connectors/dropbox.rst @@ -32,17 +32,20 @@ Run Locally import os - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.dropbox import dropbox + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import DropboxRunner if __name__ == "__main__": - dropbox( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = DropboxRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="dropbox-output", num_processes=2, ), + read_config=ReadConfig(), + partition_config=PartitionConfig(), + ) + runner.run( remote_url="dropbox:// /", token=os.getenv("DROPBOX_TOKEN"), recursive=True, @@ -76,19 +79,23 @@ You can also use upstream connectors with the ``unstructured`` API. For this you import os - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.dropbox import dropbox + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import DropboxRunner if __name__ == "__main__": - dropbox( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = DropboxRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="dropbox-output", num_processes=2, + ), + read_config=ReadConfig(), + partition_config=PartitionConfig( partition_by_api=True, api_key=os.getenv("UNSTRUCTURED_API_KEY"), ), + ) + runner.run( remote_url="dropbox:// /", token=os.getenv("DROPBOX_TOKEN"), recursive=True, diff --git a/docs/source/source_connectors/elasticsearch.rst b/docs/source/source_connectors/elasticsearch.rst index f8f7391ff..6ded79e6f 100644 --- a/docs/source/source_connectors/elasticsearch.rst +++ b/docs/source/source_connectors/elasticsearch.rst @@ -30,18 +30,24 @@ Run Locally .. code:: python - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.elasticsearch import elasticsearch + import os + + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import ElasticSearchRunner if __name__ == "__main__": - elasticsearch( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = ElasticSearchRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="elasticsearch-ingest-output", num_processes=2, + ), + read_config=ReadConfig(), + partition_config=PartitionConfig( metadata_exclude=["filename", "file_directory", "metadata.data_source.date_processed"], ), + ) + runner.run( url="http://localhost:9200", index_name="movies", jq_query="{ethnicity, director, plot}", @@ -75,20 +81,24 @@ You can also use upstream connectors with the ``unstructured`` API. For this you import os - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.elasticsearch import elasticsearch + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import ElasticSearchRunner if __name__ == "__main__": - elasticsearch( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = ElasticSearchRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="elasticsearch-ingest-output", num_processes=2, - metadata_exclude=["filename", "file_directory", "metadata.data_source.date_processed"], + ), + read_config=ReadConfig(), + partition_config=PartitionConfig( partition_by_api=True, api_key=os.getenv("UNSTRUCTURED_API_KEY"), + metadata_exclude=["filename", "file_directory", "metadata.data_source.date_processed"], ), + ) + runner.run( url="http://localhost:9200", index_name="movies", jq_query="{ethnicity, director, plot}", diff --git a/docs/source/source_connectors/github.rst b/docs/source/source_connectors/github.rst index a8ba7c52c..1db63311a 100644 --- a/docs/source/source_connectors/github.rst +++ b/docs/source/source_connectors/github.rst @@ -29,17 +29,22 @@ Run Locally .. code:: python - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.github import github + import os + + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import GithubRunner if __name__ == "__main__": - github( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = GithubRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="github-ingest-output", num_processes=2, ), + read_config=ReadConfig(), + partition_config=PartitionConfig(), + ) + runner.run( url="Unstructured-IO/unstructured", git_branch="main", ) @@ -71,19 +76,23 @@ You can also use upstream connectors with the ``unstructured`` API. For this you import os - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.github import github + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import GithubRunner if __name__ == "__main__": - github( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = GithubRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="github-ingest-output", num_processes=2, + ), + read_config=ReadConfig(), + partition_config=PartitionConfig( partition_by_api=True, api_key=os.getenv("UNSTRUCTURED_API_KEY"), ), + ) + runner.run( url="Unstructured-IO/unstructured", git_branch="main", ) diff --git a/docs/source/source_connectors/gitlab.rst b/docs/source/source_connectors/gitlab.rst index 646fedb68..546d0c255 100644 --- a/docs/source/source_connectors/gitlab.rst +++ b/docs/source/source_connectors/gitlab.rst @@ -29,17 +29,22 @@ Run Locally .. code:: python - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.gitlab import gitlab + import os + + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import GitlabRunner if __name__ == "__main__": - gitlab( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = GitlabRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="gitlab-ingest-output", num_processes=2, ), + read_config=ReadConfig(), + partition_config=PartitionConfig(), + ) + runner.run( url="https://gitlab.com/gitlab-com/content-sites/docsy-gitlab", git_branch="v0.0.7", ) @@ -71,19 +76,23 @@ You can also use upstream connectors with the ``unstructured`` API. For this you import os - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.gitlab import gitlab + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import GitlabRunner if __name__ == "__main__": - gitlab( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = GitlabRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="gitlab-ingest-output", num_processes=2, + ), + read_config=ReadConfig(), + partition_config=PartitionConfig( partition_by_api=True, api_key=os.getenv("UNSTRUCTURED_API_KEY"), ), + ) + runner.run( url="https://gitlab.com/gitlab-com/content-sites/docsy-gitlab", git_branch="v0.0.7", ) diff --git a/docs/source/source_connectors/google_cloud_storage.rst b/docs/source/source_connectors/google_cloud_storage.rst index 54e009fe8..5984663cc 100644 --- a/docs/source/source_connectors/google_cloud_storage.rst +++ b/docs/source/source_connectors/google_cloud_storage.rst @@ -29,17 +29,22 @@ Run Locally .. code:: python - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.gcs import gcs + import os + + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import GCSRunner if __name__ == "__main__": - gcs( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = GCSRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="gcs-output", num_processes=2, ), + read_config=ReadConfig(), + partition_config=PartitionConfig(), + ) + runner.run( remote_url="gs://utic-test-ingest-fixtures-public/", recursive=True, ) @@ -69,19 +74,23 @@ You can also use upstream connectors with the ``unstructured`` API. For this you import os - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.gcs import gcs + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import GCSRunner if __name__ == "__main__": - gcs( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = GCSRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="gcs-output", num_processes=2, + ), + read_config=ReadConfig(), + partition_config=PartitionConfig( partition_by_api=True, api_key=os.getenv("UNSTRUCTURED_API_KEY"), ), + ) + runner.run( remote_url="gs://utic-test-ingest-fixtures-public/", recursive=True, ) diff --git a/docs/source/source_connectors/google_drive.rst b/docs/source/source_connectors/google_drive.rst index 869f68079..d2d8decab 100644 --- a/docs/source/source_connectors/google_drive.rst +++ b/docs/source/source_connectors/google_drive.rst @@ -30,17 +30,22 @@ Run Locally .. code:: python - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.google_drive import gdrive + import os + + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import GoogleDriveRunner if __name__ == "__main__": - gdrive( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = GoogleDriveRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="google-drive-ingest-output", num_processes=2, ), + read_config=ReadConfig(), + partition_config=PartitionConfig(), + ) + runner.run( drive_id="POPULATE WITH FILE OR FOLDER ID", service_account_key="POPULATE WITH DRIVE SERVICE ACCOUNT KEY", recursive=True, @@ -74,19 +79,23 @@ You can also use upstream connectors with the ``unstructured`` API. For this you import os - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.google_drive import gdrive + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import GoogleDriveRunner if __name__ == "__main__": - gdrive( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = GoogleDriveRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="google-drive-ingest-output", num_processes=2, + ), + read_config=ReadConfig(), + partition_config=PartitionConfig( partition_by_api=True, api_key=os.getenv("UNSTRUCTURED_API_KEY"), ), + ) + runner.run( drive_id="POPULATE WITH FILE OR FOLDER ID", service_account_key="POPULATE WITH DRIVE SERVICE ACCOUNT KEY", recursive=True, diff --git a/docs/source/source_connectors/jira.rst b/docs/source/source_connectors/jira.rst index f93bb26f4..f9116f26e 100644 --- a/docs/source/source_connectors/jira.rst +++ b/docs/source/source_connectors/jira.rst @@ -31,18 +31,24 @@ Run Locally .. code:: python - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.jira import jira + import os + + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import JiraRunner if __name__ == "__main__": - jira( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = JiraRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="jira-ingest-output", num_processes=2, + ), + read_config=ReadConfig(), + partition_config=PartitionConfig( metadata_exclude=["filename", "file_directory", "metadata.data_source.date_processed"], ), + ) + runner.run( url="https://unstructured-jira-connector-test.atlassian.net", user_email="12345678@unstructured.io", api_token="ABCDE1234ABDE1234ABCDE1234", @@ -76,20 +82,24 @@ You can also use upstream connectors with the ``unstructured`` API. For this you import os - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.jira import jira + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import JiraRunner if __name__ == "__main__": - jira( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = JiraRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="jira-ingest-output", num_processes=2, - metadata_exclude=["filename", "file_directory", "metadata.data_source.date_processed"], + ), + read_config=ReadConfig(), + partition_config=PartitionConfig( partition_by_api=True, api_key=os.getenv("UNSTRUCTURED_API_KEY"), + metadata_exclude=["filename", "file_directory", "metadata.data_source.date_processed"], ), + ) + runner.run( url="https://unstructured-jira-connector-test.atlassian.net", user_email="12345678@unstructured.io", api_token="ABCDE1234ABDE1234ABCDE1234", diff --git a/docs/source/source_connectors/local_connector.rst b/docs/source/source_connectors/local_connector.rst index b93ab589b..74d1c7fbe 100644 --- a/docs/source/source_connectors/local_connector.rst +++ b/docs/source/source_connectors/local_connector.rst @@ -23,17 +23,25 @@ Run Locally .. code:: python - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.local import local + import os + + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import LocalRunner if __name__ == "__main__": - local( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = LocalRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="local-ingest-output", num_processes=2, ), + read_config=ReadConfig(), + partition_config=PartitionConfig( + partition_by_api=True, + api_key=os.getenv("UNSTRUCTURED_API_KEY"), + ), + ) + runner.run( input_path="example-docs", recursive=True, ) @@ -65,19 +73,23 @@ You can also use upstream connectors with the ``unstructured`` API. For this you import os - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.local import local + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import LocalRunner if __name__ == "__main__": - local( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = LocalRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="local-ingest-output", num_processes=2, + ), + read_config=ReadConfig(), + partition_config=PartitionConfig( partition_by_api=True, api_key=os.getenv("UNSTRUCTURED_API_KEY"), ), + ) + runner.run( input_path="example-docs", recursive=True, ) diff --git a/docs/source/source_connectors/notion.rst b/docs/source/source_connectors/notion.rst index 3036a0192..07e3f7971 100644 --- a/docs/source/source_connectors/notion.rst +++ b/docs/source/source_connectors/notion.rst @@ -30,17 +30,22 @@ Run Locally .. code:: python - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.notion import notion + import os + + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import NotionRunner if __name__ == "__main__": - notion( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = NotionRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="notion-ingest-output", num_processes=2, ), + read_config=ReadConfig(), + partition_config=PartitionConfig(), + ) + runner.run( api_key="POPULATE API KEY", page_ids=["LIST", "OF", "PAGE", "IDS"], database_ids=["LIST", "OF", "DATABASE", "IDS"], @@ -75,19 +80,23 @@ You can also use upstream connectors with the ``unstructured`` API. For this you import os - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.notion import notion + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import NotionRunner if __name__ == "__main__": - notion( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = NotionRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="notion-ingest-output", num_processes=2, + ), + read_config=ReadConfig(), + partition_config=PartitionConfig( partition_by_api=True, api_key=os.getenv("UNSTRUCTURED_API_KEY"), ), + ) + runner.run( api_key="POPULATE API KEY", page_ids=["LIST", "OF", "PAGE", "IDS"], database_ids=["LIST", "OF", "DATABASE", "IDS"], diff --git a/docs/source/source_connectors/onedrive.rst b/docs/source/source_connectors/onedrive.rst index 592a49313..1539fe4ea 100644 --- a/docs/source/source_connectors/onedrive.rst +++ b/docs/source/source_connectors/onedrive.rst @@ -33,17 +33,22 @@ Run Locally .. code:: python - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.onedrive import onedrive + import os + + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import OneDriveRunner if __name__ == "__main__": - onedrive( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = OneDriveRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="onedrive-ingest-output", num_processes=2, ), + read_config=ReadConfig(), + partition_config=PartitionConfig(), + ) + runner.run( client_id="", client_cred="", authority_url="", @@ -84,19 +89,23 @@ You can also use upstream connectors with the ``unstructured`` API. For this you import os - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.onedrive import onedrive + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import OneDriveRunner if __name__ == "__main__": - onedrive( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = OneDriveRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="onedrive-ingest-output", num_processes=2, + ), + read_config=ReadConfig(), + partition_config=PartitionConfig( partition_by_api=True, api_key=os.getenv("UNSTRUCTURED_API_KEY"), ), + ) + runner.run( client_id="", client_cred="", authority_url="", diff --git a/docs/source/source_connectors/outlook.rst b/docs/source/source_connectors/outlook.rst index 0e7873861..aca9009ba 100644 --- a/docs/source/source_connectors/outlook.rst +++ b/docs/source/source_connectors/outlook.rst @@ -35,17 +35,20 @@ Run Locally import os - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.outlook import outlook + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import OutlookRunner if __name__ == "__main__": - outlook( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = OutlookRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="outlook-output", num_processes=2, ), + read_config=ReadConfig(), + partition_config=PartitionConfig(), + ) + runner.run( client_id=os.getenv("MS_CLIENT_ID"), client_cred=os.getenv("MS_CLIENT_CRED"), tenant=os.getenv("MS_TENANT_ID"), @@ -81,19 +84,23 @@ You can also use upstream connectors with the ``unstructured`` API. For this you import os - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.outlook import outlook + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import OutlookRunner if __name__ == "__main__": - outlook( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = OutlookRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="outlook-output", num_processes=2, + ), + read_config=ReadConfig(), + partition_config=PartitionConfig( partition_by_api=True, api_key=os.getenv("UNSTRUCTURED_API_KEY"), ), + ) + runner.run( client_id=os.getenv("MS_CLIENT_ID"), client_cred=os.getenv("MS_CLIENT_CRED"), tenant=os.getenv("MS_TENANT_ID"), diff --git a/docs/source/source_connectors/reddit.rst b/docs/source/source_connectors/reddit.rst index 4d7c82be8..955997e57 100644 --- a/docs/source/source_connectors/reddit.rst +++ b/docs/source/source_connectors/reddit.rst @@ -33,17 +33,22 @@ Run Locally .. code:: python - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.reddit import reddit + import os + + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import RedditRunner if __name__ == "__main__": - reddit( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = RedditRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="reddit-ingest-output", num_processes=2, ), + read_config=ReadConfig(), + partition_config=PartitionConfig(), + ) + runner.run( subreddit_name="machinelearning", client_id="", client_secret="", @@ -83,19 +88,23 @@ You can also use upstream connectors with the ``unstructured`` API. For this you import os - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.reddit import reddit + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import RedditRunner if __name__ == "__main__": - reddit( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = RedditRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="reddit-ingest-output", num_processes=2, + ), + read_config=ReadConfig(), + partition_config=PartitionConfig( partition_by_api=True, api_key=os.getenv("UNSTRUCTURED_API_KEY"), ), + ) + runner.run( subreddit_name="machinelearning", client_id="", client_secret="", diff --git a/docs/source/source_connectors/s3.rst b/docs/source/source_connectors/s3.rst index 483937a84..22179d0f9 100644 --- a/docs/source/source_connectors/s3.rst +++ b/docs/source/source_connectors/s3.rst @@ -28,17 +28,22 @@ Run Locally .. code:: python - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.s3 import s3 + import os + + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import S3Runner if __name__ == "__main__": - s3( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = S3Runner( + processor_config=ProcessorConfig( + verbose=True, output_dir="s3-small-batch-output", num_processes=2, ), + read_config=ReadConfig(), + partition_config=PartitionConfig(), + ) + runner.run( remote_url="s3://utic-dev-tech-fixtures/small-pdf-set/", anonymous=True, ) @@ -69,19 +74,23 @@ You can also use upstream connectors with the ``unstructured`` API. For this you import os - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.s3 import s3 + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import S3Runner if __name__ == "__main__": - s3( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = S3Runner( + processor_config=ProcessorConfig( + verbose=True, output_dir="s3-small-batch-output", num_processes=2, + ), + read_config=ReadConfig(), + partition_config=PartitionConfig( partition_by_api=True, api_key=os.getenv("UNSTRUCTURED_API_KEY"), ), + ) + runner.run( remote_url="s3://utic-dev-tech-fixtures/small-pdf-set/", anonymous=True, ) diff --git a/docs/source/source_connectors/salesforce.rst b/docs/source/source_connectors/salesforce.rst index fd52ad6d6..b289169c2 100644 --- a/docs/source/source_connectors/salesforce.rst +++ b/docs/source/source_connectors/salesforce.rst @@ -34,17 +34,20 @@ Run Locally import os - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.salesforce import salesforce + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import SalesforceRunner if __name__ == "__main__": - salesforce( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = SalesforceRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="salesforce-output", num_processes=2, ), + read_config=ReadConfig(), + partition_config=PartitionConfig(), + ) + runner.run( username=os.getenv("SALESFORCE_USERNAME"), consumer_key=os.getenv("SALESFORCE_CONSUMER_KEY"), private_key_path=os.getenv("SALESFORCE_PRIVATE_KEY_PATH"), @@ -82,19 +85,23 @@ You can also use upstream connectors with the ``unstructured`` API. For this you import os - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.salesforce import salesforce + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import SalesforceRunner if __name__ == "__main__": - salesforce( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = SalesforceRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="salesforce-output", num_processes=2, + ), + read_config=ReadConfig(), + partition_config=PartitionConfig( partition_by_api=True, api_key=os.getenv("UNSTRUCTURED_API_KEY"), ), + ) + runner.run( username=os.getenv("SALESFORCE_USERNAME"), consumer_key=os.getenv("SALESFORCE_CONSUMER_KEY"), private_key_path=os.getenv("SALESFORCE_PRIVATE_KEY_PATH"), diff --git a/docs/source/source_connectors/sharepoint.rst b/docs/source/source_connectors/sharepoint.rst index ce5fba4c1..3d447898b 100644 --- a/docs/source/source_connectors/sharepoint.rst +++ b/docs/source/source_connectors/sharepoint.rst @@ -35,17 +35,22 @@ Run Locally .. code:: python - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.sharepoint import sharepoint + import os + + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import SharePointRunner if __name__ == "__main__": - sharepoint( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = SharePointRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="sharepoint-ingest-output", num_processes=2, ), + read_config=ReadConfig(), + partition_config=PartitionConfig(), + ) + runner.run( client_id="", client_cred="", site="", @@ -56,7 +61,6 @@ Run Locally # Flag to process only files within the site(s) files_only=True, path="Shared Documents", - recursive=False, ) Run via the API @@ -92,19 +96,23 @@ You can also use upstream connectors with the ``unstructured`` API. For this you import os - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.sharepoint import sharepoint + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import SharePointRunner if __name__ == "__main__": - sharepoint( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = SharePointRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="sharepoint-ingest-output", num_processes=2, + ), + read_config=ReadConfig(), + partition_config=PartitionConfig( partition_by_api=True, api_key=os.getenv("UNSTRUCTURED_API_KEY"), ), + ) + runner.run( client_id="", client_cred="", site="", @@ -115,7 +123,6 @@ You can also use upstream connectors with the ``unstructured`` API. For this you # Flag to process only files within the site(s) files_only=True, path="Shared Documents", - recursive=False, ) Additionally, you will need to pass the ``--partition-endpoint`` if you're running the API locally. You can find more information about the ``unstructured`` API `here `_. diff --git a/docs/source/source_connectors/slack.rst b/docs/source/source_connectors/slack.rst index 53da13a25..1907ed93e 100644 --- a/docs/source/source_connectors/slack.rst +++ b/docs/source/source_connectors/slack.rst @@ -30,17 +30,22 @@ Run Locally .. code:: python - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.slack import slack + import os + + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import SlackRunner if __name__ == "__main__": - slack( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = SlackRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="slack-ingest-download", num_processes=2, ), + read_config=ReadConfig(), + partition_config=PartitionConfig(), + ) + runner.run( channels=["12345678"], token="12345678", start_date="2023-04-01T01:00:00-08:00", @@ -75,19 +80,23 @@ You can also use upstream connectors with the ``unstructured`` API. For this you import os - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.slack import slack + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import SlackRunner if __name__ == "__main__": - slack( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = SlackRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="slack-ingest-download", num_processes=2, + ), + read_config=ReadConfig(), + partition_config=PartitionConfig( partition_by_api=True, api_key=os.getenv("UNSTRUCTURED_API_KEY"), ), + ) + runner.run( channels=["12345678"], token="12345678", start_date="2023-04-01T01:00:00-08:00", diff --git a/docs/source/source_connectors/wikipedia.rst b/docs/source/source_connectors/wikipedia.rst index cf6a6af06..0810a519a 100644 --- a/docs/source/source_connectors/wikipedia.rst +++ b/docs/source/source_connectors/wikipedia.rst @@ -28,18 +28,22 @@ Run Locally .. code:: python - from unstructured.ingest.runner.wikipedia import wikipedia - from unstructured.ingest.interfaces import ReadConfig, PartitionConfig + import os + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import WikipediaRunner if __name__ == "__main__": - wikipedia( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = WikipediaRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="wikipedia-ingest-output", - num_processes=2 + num_processes=2, ), + read_config=ReadConfig(), + partition_config=PartitionConfig(), + ) + runner.run( page_title="Open Source Software", auto_suggest=False, ) @@ -70,19 +74,23 @@ You can also use upstream connectors with the ``unstructured`` API. For this you import os - from unstructured.ingest.interfaces import PartitionConfig, ReadConfig - from unstructured.ingest.runner.wikipedia import wikipedia + from unstructured.ingest.interfaces import PartitionConfig, ProcessorConfig, ReadConfig + from unstructured.ingest.runner import WikipediaRunner if __name__ == "__main__": - wikipedia( - verbose=True, - read_config=ReadConfig(), - partition_config=PartitionConfig( + runner = WikipediaRunner( + processor_config=ProcessorConfig( + verbose=True, output_dir="wikipedia-ingest-output", num_processes=2, + ), + read_config=ReadConfig(), + partition_config=PartitionConfig( partition_by_api=True, api_key=os.getenv("UNSTRUCTURED_API_KEY"), ), + ) + runner.run( page_title="Open Source Software", auto_suggest=False, ) diff --git a/unstructured/__version__.py b/unstructured/__version__.py index 23c7a4e85..b1a5c77b4 100644 --- a/unstructured/__version__.py +++ b/unstructured/__version__.py @@ -1 +1 @@ -__version__ = "0.10.24" # pragma: no cover +__version__ = "0.10.25-dev0" # pragma: no cover diff --git a/unstructured/ingest/README.md b/unstructured/ingest/README.md index 4cb3b1832..dc6fb96cd 100644 --- a/unstructured/ingest/README.md +++ b/unstructured/ingest/README.md @@ -36,14 +36,16 @@ just execute `unstructured/ingest/main.py`, e.g.: --output-dir s3-small-batch-output \ --num-processes 2 -## Adding Data Connectors +## Adding Source Data Connectors -To add a connector, refer to [unstructured/ingest/connector/github.py](unstructured/ingest/connector/github.py) as example that implements the three relevant abstract base classes. +To add a connector, refer to [unstructured/ingest/connector/github.py](unstructured/ingest/connector/github.py) as an example that implements the three relevant abstract base classes. If the connector has an available `fsspec` implementation, then refer to [unstructured/ingest/connector/s3.py](unstructured/ingest/connector/s3.py). Then, update [unstructured/ingest/main.py/cli](unstructured/ingest/cli) to add a subcommand associated with the connector, and hook it up to the parent group. +Add an implementation of `BaseRunner` in the runner directory to connect the invocation of the CLI with the underlying connector created. + Create at least one folder [examples/ingest](examples/ingest) with an easily reproducible script that shows the new connector in action. @@ -54,6 +56,16 @@ to be checked into CI under test_unstructured_ingest/expected-structured-output/ The `main.py` flags of --re-download/--no-re-download , --download-dir, --preserve-downloads, --structured-output-dir, and --reprocess are honored by the connector. +## Adding Destination Data Connectors + +To add a destination connector, refer to [unstructured/ingest/connector/delta-table.py](unstructured/ingest/connector/delta-table.py) as an example, which extends the `BaseDestinationConnector`, and the `WriteConfig`. It also shows how an existing data provider can be used for both a source and destination connector. + +Similar to the runner used to connect source connectors with the CLI, destination connectors require an entry in the writer map defined in [unstructured/ingest/runner/writers.py](unstructured/ingest/runner/writers.py). This allows any source connector to use any destination connector. + +Regarding the entry in the CLI, destination connectors are exposed as a subcommand that gets added to each source connector parent command. Special care needs to be taken here to not break the code being run by the source connector. Take a look at how the base runner class is dynamically pulled using the name of the parent CLI command in [unstructured/ingest/cli/cmds/delta_table.py](unstructured/ingest/cli/cmds/delta_table.py). + +Similar tests and examples should be added to demonstrate/validate the use of the destination connector similar to the steps laid out for a source connector. + ### The checklist: In checklist form, the above steps are summarized as: @@ -76,11 +88,11 @@ In checklist form, the above steps are summarized as: - [ ] The added dependencies should be imported at runtime when the new connector is invoked, rather than as top-level imports. - [ ] Add the decorator `unstructured.utils.requires_dependencies` on top of each class instance or function that uses those connector-specific dependencies e.g. for `GitHubConnector` should look like `@requires_dependencies(dependencies=["github"], extras="github")` - [ ] Run `make tidy` and `make check` to ensure linting checks pass. -- [ ] Update ingest documentation [here](https://github.com/Unstructured-IO/unstructured/tree/eb8ce8913729826b62fd4e1224f70d67c5289b9d/docs/source) +- [ ] Update ingest documentation [here](https://github.com/Unstructured-IO/unstructured/tree/main/docs/source) - [ ] For team members that are developing in the original repository: - [ ] If there are secret variables created for the connector tests, make sure to: - [ ] add the secrets into Github (contact someone with access) - - [ ] include the secret variables in [`ci.yml`](https://github.com/Unstructured-IO/unstructured/blob/eb8ce8913729826b62fd4e1224f70d67c5289b9d/.github/workflows/ci.yml) and [`ingest-test-fixtures-update-pr.yml`](https://github.com/Unstructured-IO/unstructured/blob/eb8ce8913729826b62fd4e1224f70d67c5289b9d/.github/workflows/ingest-test-fixtures-update-pr.yml) + - [ ] include the secret variables in [`ci.yml`](https://github.com/Unstructured-IO/unstructured/blob/main/.github/workflows/ci.yml) and [`ingest-test-fixtures-update-pr.yml`](https://github.com/Unstructured-IO/unstructured/blob/main/.github/workflows/ingest-test-fixtures-update-pr.yml) - [ ] add a make install line in the workflow configurations to be able to provide the workflow machine with the required dependencies on the connector while testing - [ ] Whenever necessary, use the [ingest update test fixtures](https://github.com/Unstructured-IO/unstructured/actions/workflows/ingest-test-fixtures-update-pr.yml) workflow to update the test fixtures. - [ ] Honors the conventions of `BaseConnectorConfig` defined in [unstructured/ingest/interfaces.py](unstructured/ingest/interfaces.py) which is passed through [the CLI](unstructured/ingest/main.py): @@ -95,18 +107,42 @@ In checklist form, the above steps are summarized as: `unstructured/ingest/main.py` is the entrypoint for the `unstructured-ingest` cli. It calls the cli Command as fetched from `cli.py` `get_cmd()`. -`get_cmd()` aggregates all subcommands (one per connector) as defined in the cli.cmd module. Each of these per-connector commands define the connector specific options and import the relevant common options. They call out to the corollary cli.runner.[CONNECTOR].py module. +The ingest directory is broken up in such a way that most of the code can be used with or without invoking the CLI itself: -The runner is a vanilla (not Click wrapped) Python function which also explicitly exposes the connector specific arguments. It instantiates the connector with aggregated options / configs and passes it in call to `process_documents()` in `processor.py`. +* **Connector:** This houses the main code that is responsible for reaching out to external data providers and pulling down the data (i.e. S3, Azure, etc) +* **Runner:** This serves as the interface between the CLI specific commands and running the connector code. A base runner class exists that defines much of the common functionality across all connectors and allowed for typed methods to be defined to explicitly connect the CLI command to the specific connector. +* **CLI:** This is where the `Click` python library is introduced to create the cli bindings that a user interacts with then invoking the CLI directly. Many of the common options across commands are abstracted away and add options dynamically to click commands. -![unstructured ingest cli diagram](img/unstructured_ingest_cli_diagram.jpg) +The ingest flow is similar to an ETL pipeline that gets defined at runtime based on user input: -Given an instance of BaseConnector with a reference to its ConnectorConfig (BaseConnectorConfig and StandardConnectorConfig) and set of processing parameters, `process_documents()` instantiates the Processor class and calls its `run()` method. +![unstructured ingest cli diagram](img/unstructured_ingest_cli_pipeline_diagram.png) -The Processor class (operating in the Main Process) calls to the connector to fetch `get_ingest_docs()`, a list of lazy download IngestDocs, each a skinny serializable object with connection config. These IngestDocs are filtered (where output results already exist locally) and passed to a multiprocessing Pool. Each subprocess in the pool then operates as a Worker Process. The Worker Process first initializes a logger, since it is operating in its own spawn of the Python interpreter. It then calls the `process_document()` function in `doc_processor.generalized.py`. +Each step in the pipeline caches the results in a default location if one is not provided to it. This allows for the pipeline +to pick up where it ended if an error occurred before it finished without having to recompute everything that ran successfully. +It uses a hash of the parameters passed in for each step along with the previous step to know if the results it already has are +still valid or should be recomputed regardless of them existing already. This allows you to change parameters associated with a +step in the tail end of the pipeline and it only recomputes from there. -The `process_document()` function is given an IngestDoc, which has a reference to the respective ConnectorConfigs. Also defined is a global session_handler (of type BaseSessionHandler). This contains any session/connection relevant data for the IngestDoc that can be re-used when processing sibling IngestDocs from the same BaseConnector / config. If the value for the session_handle isn't assigned, a session_handle is created from the IngestDoc and assigned to the global variable, otherwise the existing global variable value ("session") is leveraged to process the IngestDoc. The function proceeds to call the IngestDoc's `get_file()`, `process_file()`, `write_result()`, and `clean_up()` methods. +**Multiprocessing:** One of the options for the pipeline is how many processes to use. Not all steps support multiprocessing, but if they do, a multiprocessing Pool is used to speed up the process. For debugging purposes, if a single process is set, multiprocessing Pool isn't used at all. -Once all multiprocessing subprocesses complete a final call to the BaseConnector `clean_up()` method is made. +While all the configurations are added to a single Click command when the CLI is invoked as options, many of these are bundled together based on a particular step in the pipeline. A `BaseConfig` + is extended in the root interfaces file and then that can be extended once again in the cli-specific interfaces file which adds a function on how the fields in the base config should be mapped to `Click` options. +### Configs +* `PartitionConfig`: Data associated with running the partitioning over the files pulled down via the source connector. +* `ProcessorConfig`: Data around the process as a whole, such as number of processes to use when running, where to store the final result of the pipeline, and if an error should be raised if a single doc fails. By default, the pipeline will continue with that it can, so if a doc fails out of many, an error will be logged and the rest will continue. +* `ReadConfig`: Data associated with pulling the data from the source data provider, such as if it should be redownloaded, regardless of the files already existing. +* `EmbeddingConfig`: Data associated with running an optional embedder on the data, which adds a new field to the output json for each element with it's associated embeddings vector. +* `ChunkingConfig`: Data associated with running an optional chunker over the partitioned data. +* `PermissionsConfig`: Data associated with pulling down permissions data (i.e. RBAC). This is an optional feature and if enabled, will append the information pulled down to the metadata associated with an element. +* `WriteConfig`: Any specific data needed to write to a destination connector. This does not have to be used if not needed. -![unstructured ingest processing diagram](img/unstructured_ingest_processing_diagram.jpg) +For the flow of the pipeline, the only required steps are: +* **Doc Factory:** This creates instances of `BaseIngestDoc` which provide references to a file on the source data provider without downloading anything yet. +* **Source Node:** This is responsible for downloading and content and producing a representation of that content suitable for partitioning. +* **Partitioner:** Responsible for running partition over the content produced by the previous source node. + +Optional Steps: +* **Reformat Nodes:** Any number of reformat nodes can be set to modify the partitioned content. Currently chunking and embedding are supported. +* **Write Node:** If set, write the results to a destination via a destination connector. + +Because there can be any number of reformat nodes, the final destination is not deterministic, so an extra step is added at the end of all reformat nodes to copy the final result to the location the user expects it to be when the pipeline ends. diff --git a/unstructured/ingest/img/unstructured_ingest_cli_diagram.jpg b/unstructured/ingest/img/unstructured_ingest_cli_diagram.jpg deleted file mode 100644 index 8cfb7cb2c1c626dc30675219e767d871da3c997d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37683 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 diff --git a/unstructured/ingest/img/unstructured_ingest_cli_pipeline_diagram.png b/unstructured/ingest/img/unstructured_ingest_cli_pipeline_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..cf2c94f4779e6791e3a76e0d92bc28b30c3e0148 GIT binary patch literal 91991 zcmeEu2|Sfs_kT$t$xM=Y9x~=g=9!3)P-f>CkMWqt%$W%xqKt*2qmG$WW>SXCga}cY zXa4&^-QM@!_xIla{NDTdeJaj*p8f3o?6ucgd#&$x?ZU3ADH5DKd-BMUBLvDya+*hu zU=4zQ_i;~vD~paf{ovP8l%}H0k*9CZ%^W#$anxB}*V)$H+zN>}!XhYp@QFo$&(a>{ z%pxeqA|PPm;J^d7GO=(nu|@INA)LV_aNpJ*Ze?zTfFHCG;1du$&(C+BPv9EAAd8^% z{trF@o{JYmZXC2Xu|U`zc6i0!(+Y_+VGℜ^6~bv0pJUv$AuxM_IB6%7E|6cFqVS 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
i{#I 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 J<8^%-`wwJu#3KLz diff --git a/unstructured/ingest/runner/azure.py b/unstructured/ingest/runner/azure.py index 86fde1546..67488adc2 100644 --- a/unstructured/ingest/runner/azure.py +++ b/unstructured/ingest/runner/azure.py @@ -9,9 +9,11 @@ from unstructured.ingest.runner.utils import update_download_dir_remote_url class AzureRunner(FsspecBaseRunner): def run( self, - account_name: t.Optional[str], - account_key: t.Optional[str], - connection_string: t.Optional[str], + remote_url: str, + account_name: t.Optional[str] = None, + account_key: t.Optional[str] = None, + connection_string: t.Optional[str] = None, + recursive: bool = False, **kwargs, ): ingest_log_streaming_init(logging.DEBUG if self.processor_config.verbose else logging.INFO) diff --git a/unstructured/ingest/runner/biomed.py b/unstructured/ingest/runner/biomed.py index 203270975..94c4b503c 100644 --- a/unstructured/ingest/runner/biomed.py +++ b/unstructured/ingest/runner/biomed.py @@ -10,9 +10,9 @@ from unstructured.ingest.runner.utils import update_download_dir_hash class BiomedRunner(Runner): def run( self, - max_retries: int, - max_request_time: int, - decay: float, + max_retries: int = 5, + max_request_time: int = 45, + decay: float = 0.3, path: t.Optional[str] = None, api_id: t.Optional[str] = None, api_from: t.Optional[str] = None, diff --git a/unstructured/ingest/runner/confluence.py b/unstructured/ingest/runner/confluence.py index 2cda95c6f..07091e3cf 100644 --- a/unstructured/ingest/runner/confluence.py +++ b/unstructured/ingest/runner/confluence.py @@ -13,8 +13,8 @@ class ConfluenceRunner(Runner): url: str, user_email: str, api_token: str, - max_num_of_spaces: int, - max_num_of_docs_from_each_space: int, + max_num_of_spaces: int = 500, + max_num_of_docs_from_each_space: int = 100, spaces: t.Optional[t.List[str]] = None, **kwargs, ):