unstructured-ingest 0.4.0__tar.gz → 0.4.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of unstructured-ingest might be problematic. Click here for more details.
- {unstructured_ingest-0.4.0/unstructured_ingest.egg-info → unstructured_ingest-0.4.1}/PKG-INFO +16 -13
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/setup.py +1 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/utils/validation/equality.py +2 -1
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/unit/v2/connectors/sql/test_sql.py +4 -2
- unstructured_ingest-0.4.1/unstructured_ingest/__version__.py +1 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/utils/data_prep.py +11 -3
- unstructured_ingest-0.4.1/unstructured_ingest/utils/html.py +109 -0
- unstructured_ingest-0.4.1/unstructured_ingest/utils/ndjson.py +52 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/interfaces/upload_stager.py +3 -13
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/pipeline/steps/chunk.py +3 -4
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/pipeline/steps/embed.py +3 -4
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/pipeline/steps/partition.py +3 -4
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/confluence.py +95 -25
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/duckdb/base.py +2 -2
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/fsspec/azure.py +8 -8
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/fsspec/box.py +7 -7
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/fsspec/dropbox.py +9 -9
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/fsspec/fsspec.py +41 -9
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/fsspec/gcs.py +7 -7
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/fsspec/s3.py +8 -8
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/fsspec/sftp.py +5 -5
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/sql/__init__.py +4 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/sql/singlestore.py +2 -1
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/sql/sql.py +12 -8
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/sql/sqlite.py +2 -1
- unstructured_ingest-0.4.1/unstructured_ingest/v2/processes/connectors/sql/vastdb.py +270 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1/unstructured_ingest.egg-info}/PKG-INFO +16 -13
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest.egg-info/SOURCES.txt +3 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest.egg-info/requires.txt +16 -12
- unstructured_ingest-0.4.0/unstructured_ingest/__version__.py +0 -1
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/LICENSE.md +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/README.md +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/pyproject.toml +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/setup.cfg +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/chunkers/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/chunkers/test_chunkers.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/conftest.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/databricks/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/databricks/test_volumes_native.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/discord/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/discord/test_discord.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/duckdb/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/duckdb/conftest.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/duckdb/test_duckdb.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/duckdb/test_motherduck.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/elasticsearch/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/elasticsearch/conftest.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/elasticsearch/test_elasticsearch.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/elasticsearch/test_opensearch.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/sql/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/sql/test_databricks_delta_tables.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/sql/test_postgres.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/sql/test_singlestore.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/sql/test_snowflake.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/sql/test_sqlite.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/test_astradb.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/test_azure_ai_search.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/test_chroma.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/test_confluence.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/test_delta_table.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/test_lancedb.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/test_milvus.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/test_mongodb.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/test_neo4j.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/test_notion.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/test_onedrive.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/test_pinecone.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/test_qdrant.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/test_redis.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/test_s3.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/test_vectara.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/utils/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/utils/constants.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/utils/docker.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/utils/docker_compose.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/utils/validation/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/utils/validation/destination.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/utils/validation/source.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/utils/validation/utils.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/weaviate/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/weaviate/conftest.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/weaviate/test_cloud.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/connectors/weaviate/test_local.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/embedders/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/embedders/conftest.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/embedders/test_azure_openai.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/embedders/test_bedrock.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/embedders/test_huggingface.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/embedders/test_mixedbread.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/embedders/test_octoai.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/embedders/test_openai.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/embedders/test_togetherai.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/embedders/test_vertexai.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/embedders/test_voyageai.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/embedders/utils.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/partitioners/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/partitioners/test_partitioner.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/integration/utils.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/unit/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/unit/embed/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/unit/embed/test_mixedbreadai.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/unit/embed/test_octoai.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/unit/embed/test_openai.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/unit/embed/test_vertexai.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/unit/embed/test_voyageai.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/unit/test_error.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/unit/test_logger.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/unit/test_utils.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/unit/v2/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/unit/v2/chunkers/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/unit/v2/chunkers/test_chunkers.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/unit/v2/connectors/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/unit/v2/connectors/sql/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/unit/v2/connectors/test_confluence.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/unit/v2/embedders/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/unit/v2/embedders/test_bedrock.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/unit/v2/embedders/test_huggingface.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/unit/v2/embedders/test_mixedbread.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/unit/v2/embedders/test_octoai.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/unit/v2/embedders/test_openai.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/unit/v2/embedders/test_togetherai.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/unit/v2/embedders/test_vertexai.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/unit/v2/embedders/test_voyageai.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/unit/v2/partitioners/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/unit/v2/partitioners/test_partitioner.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/unit/v2/test_interfaces.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/unit/v2/test_utils.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/unit/v2/utils/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/unit/v2/utils/data_generator.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/base/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/base/cmd.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/base/dest.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/base/src.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cli.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmd_factory.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/airtable.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/astradb.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/azure_ai_search.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/biomed.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/chroma.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/clarifai.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/confluence.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/databricks_volumes.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/delta_table.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/discord.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/elasticsearch.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/fsspec/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/fsspec/azure.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/fsspec/box.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/fsspec/dropbox.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/fsspec/fsspec.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/fsspec/gcs.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/fsspec/s3.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/fsspec/sftp.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/github.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/gitlab.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/google_drive.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/hubspot.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/jira.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/kafka.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/local.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/mongodb.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/notion.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/onedrive.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/opensearch.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/outlook.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/pinecone.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/qdrant.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/reddit.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/salesforce.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/sharepoint.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/slack.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/sql.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/vectara.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/weaviate.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/cmds/wikipedia.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/common.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/interfaces.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/cli/utils.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/airtable.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/astradb.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/azure_ai_search.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/biomed.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/chroma.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/clarifai.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/confluence.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/databricks_volumes.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/delta_table.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/discord.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/elasticsearch.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/fsspec/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/fsspec/azure.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/fsspec/box.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/fsspec/dropbox.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/fsspec/fsspec.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/fsspec/gcs.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/fsspec/s3.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/fsspec/sftp.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/git.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/github.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/gitlab.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/google_drive.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/hubspot.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/jira.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/kafka.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/local.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/mongodb.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/client.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/connector.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/helpers.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/interfaces.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/block.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/blocks/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/blocks/bookmark.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/blocks/breadcrumb.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/blocks/bulleted_list_item.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/blocks/callout.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/blocks/child_database.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/blocks/child_page.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/blocks/code.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/blocks/column_list.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/blocks/divider.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/blocks/embed.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/blocks/equation.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/blocks/file.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/blocks/heading.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/blocks/image.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/blocks/link_preview.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/blocks/link_to_page.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/blocks/numbered_list.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/blocks/paragraph.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/blocks/pdf.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/blocks/quote.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/blocks/synced_block.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/blocks/table.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/blocks/table_of_contents.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/blocks/template.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/blocks/todo.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/blocks/toggle.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/blocks/unsupported.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/blocks/video.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/database.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/database_properties/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/database_properties/checkbox.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/database_properties/created_by.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/database_properties/created_time.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/database_properties/date.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/database_properties/email.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/database_properties/files.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/database_properties/formula.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/database_properties/last_edited_by.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/database_properties/last_edited_time.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/database_properties/multiselect.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/database_properties/number.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/database_properties/people.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/database_properties/phone_number.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/database_properties/relation.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/database_properties/rich_text.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/database_properties/rollup.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/database_properties/select.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/database_properties/status.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/database_properties/title.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/database_properties/unique_id.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/database_properties/url.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/database_properties/verification.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/date.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/file.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/page.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/parent.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/rich_text.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/notion/types/user.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/onedrive.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/opensearch.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/outlook.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/pinecone.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/qdrant.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/reddit.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/registry.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/salesforce.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/sharepoint.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/slack.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/sql.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/vectara.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/weaviate.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/connector/wikipedia.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/embed/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/embed/azure_openai.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/embed/bedrock.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/embed/huggingface.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/embed/interfaces.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/embed/mixedbreadai.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/embed/octoai.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/embed/openai.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/embed/togetherai.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/embed/vertexai.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/embed/voyageai.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/enhanced_dataclass/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/enhanced_dataclass/core.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/enhanced_dataclass/dataclasses.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/enhanced_dataclass/json_mixin.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/error.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/ingest_backoff/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/ingest_backoff/_common.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/ingest_backoff/_wrapper.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/interfaces.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/logger.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/main.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/pipeline/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/pipeline/copy.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/pipeline/doc_factory.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/pipeline/interfaces.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/pipeline/partition.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/pipeline/permissions.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/pipeline/pipeline.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/pipeline/reformat/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/pipeline/reformat/chunking.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/pipeline/reformat/embedding.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/pipeline/source.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/pipeline/utils.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/pipeline/write.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/processor.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/airtable.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/astradb.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/base_runner.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/biomed.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/confluence.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/delta_table.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/discord.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/elasticsearch.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/fsspec/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/fsspec/azure.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/fsspec/box.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/fsspec/dropbox.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/fsspec/fsspec.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/fsspec/gcs.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/fsspec/s3.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/fsspec/sftp.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/github.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/gitlab.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/google_drive.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/hubspot.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/jira.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/kafka.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/local.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/mongodb.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/notion.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/onedrive.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/opensearch.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/outlook.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/reddit.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/salesforce.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/sharepoint.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/slack.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/utils.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/wikipedia.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/writers/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/writers/astradb.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/writers/azure_ai_search.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/writers/base_writer.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/writers/chroma.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/writers/clarifai.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/writers/databricks_volumes.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/writers/delta_table.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/writers/elasticsearch.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/writers/fsspec/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/writers/fsspec/azure.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/writers/fsspec/box.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/writers/fsspec/dropbox.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/writers/fsspec/gcs.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/writers/fsspec/s3.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/writers/kafka.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/writers/mongodb.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/writers/opensearch.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/writers/pinecone.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/writers/qdrant.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/writers/sql.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/writers/vectara.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/runner/writers/weaviate.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/utils/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/utils/chunking.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/utils/compression.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/utils/dep_check.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/utils/google_filetype.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/utils/string_and_date_utils.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/utils/table.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/cli/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/cli/base/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/cli/base/cmd.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/cli/base/dest.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/cli/base/importer.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/cli/base/src.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/cli/cli.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/cli/cmds.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/cli/utils/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/cli/utils/click.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/cli/utils/model_conversion.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/constants.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/errors.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/interfaces/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/interfaces/connector.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/interfaces/downloader.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/interfaces/file_data.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/interfaces/indexer.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/interfaces/process.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/interfaces/processor.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/interfaces/uploader.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/logger.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/main.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/otel.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/pipeline/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/pipeline/interfaces.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/pipeline/otel.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/pipeline/pipeline.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/pipeline/steps/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/pipeline/steps/download.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/pipeline/steps/filter.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/pipeline/steps/index.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/pipeline/steps/stage.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/pipeline/steps/uncompress.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/pipeline/steps/upload.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/chunker.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connector_registry.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/airtable.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/astradb.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/azure_ai_search.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/chroma.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/couchbase.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/databricks/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/databricks/volumes.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/databricks/volumes_aws.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/databricks/volumes_azure.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/databricks/volumes_gcp.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/databricks/volumes_native.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/databricks/volumes_table.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/delta_table.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/discord.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/duckdb/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/duckdb/duckdb.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/duckdb/motherduck.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/elasticsearch/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/elasticsearch/elasticsearch.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/elasticsearch/opensearch.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/fsspec/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/fsspec/utils.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/gitlab.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/google_drive.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/kafka/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/kafka/cloud.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/kafka/kafka.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/kafka/local.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/kdbai.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/lancedb/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/lancedb/aws.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/lancedb/azure.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/lancedb/cloud.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/lancedb/gcp.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/lancedb/lancedb.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/lancedb/local.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/local.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/milvus.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/mongodb.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/neo4j.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/client.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/connector.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/helpers.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/interfaces.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/block.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/blocks/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/blocks/bookmark.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/blocks/breadcrumb.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/blocks/bulleted_list_item.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/blocks/callout.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/blocks/child_database.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/blocks/child_page.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/blocks/code.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/blocks/column_list.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/blocks/divider.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/blocks/embed.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/blocks/equation.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/blocks/file.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/blocks/heading.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/blocks/image.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/blocks/link_preview.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/blocks/link_to_page.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/blocks/numbered_list.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/blocks/paragraph.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/blocks/pdf.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/blocks/quote.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/blocks/synced_block.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/blocks/table.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/blocks/table_of_contents.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/blocks/template.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/blocks/todo.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/blocks/toggle.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/blocks/unsupported.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/blocks/video.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/database.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/database_properties/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/database_properties/checkbox.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/database_properties/created_by.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/database_properties/created_time.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/database_properties/date.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/database_properties/email.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/database_properties/files.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/database_properties/formula.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/database_properties/last_edited_by.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/database_properties/last_edited_time.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/database_properties/multiselect.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/database_properties/number.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/database_properties/people.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/database_properties/phone_number.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/database_properties/relation.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/database_properties/rich_text.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/database_properties/rollup.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/database_properties/select.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/database_properties/status.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/database_properties/title.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/database_properties/unique_id.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/database_properties/url.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/database_properties/verification.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/date.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/file.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/page.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/parent.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/rich_text.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/notion/types/user.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/onedrive.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/outlook.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/pinecone.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/qdrant/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/qdrant/cloud.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/qdrant/local.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/qdrant/qdrant.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/qdrant/server.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/redisdb.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/salesforce.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/sharepoint.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/slack.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/sql/databricks_delta_tables.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/sql/postgres.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/sql/snowflake.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/utils.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/vectara.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/weaviate/__init__.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/weaviate/cloud.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/weaviate/embedded.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/weaviate/local.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/connectors/weaviate/weaviate.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/embedder.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/filter.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/partitioner.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/processes/uncompress.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/unstructured_api.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/v2/utils.py +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest.egg-info/dependency_links.txt +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest.egg-info/entry_points.txt +0 -0
- {unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest.egg-info/top_level.txt +0 -0
{unstructured_ingest-0.4.0/unstructured_ingest.egg-info → unstructured_ingest-0.4.1}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: unstructured-ingest
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.1
|
|
4
4
|
Summary: A library that prepares raw documents for downstream ML tasks.
|
|
5
5
|
Home-page: https://github.com/Unstructured-IO/unstructured-ingest
|
|
6
6
|
Author: Unstructured Technologies
|
|
@@ -22,14 +22,13 @@ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
|
22
22
|
Requires-Python: >=3.9.0,<3.14
|
|
23
23
|
Description-Content-Type: text/markdown
|
|
24
24
|
License-File: LICENSE.md
|
|
25
|
+
Requires-Dist: tqdm
|
|
26
|
+
Requires-Dist: dataclasses_json
|
|
27
|
+
Requires-Dist: pandas
|
|
25
28
|
Requires-Dist: pydantic>=2.7
|
|
26
|
-
Requires-Dist: click
|
|
27
29
|
Requires-Dist: python-dateutil
|
|
28
|
-
Requires-Dist: pandas
|
|
29
|
-
Requires-Dist: ndjson
|
|
30
|
-
Requires-Dist: dataclasses_json
|
|
31
30
|
Requires-Dist: opentelemetry-sdk
|
|
32
|
-
Requires-Dist:
|
|
31
|
+
Requires-Dist: click
|
|
33
32
|
Provides-Extra: remote
|
|
34
33
|
Requires-Dist: unstructured-client>=0.26.1; extra == "remote"
|
|
35
34
|
Provides-Extra: csv
|
|
@@ -87,8 +86,8 @@ Requires-Dist: atlassian-python-api; extra == "confluence"
|
|
|
87
86
|
Provides-Extra: couchbase
|
|
88
87
|
Requires-Dist: couchbase; extra == "couchbase"
|
|
89
88
|
Provides-Extra: delta-table
|
|
90
|
-
Requires-Dist: deltalake; extra == "delta-table"
|
|
91
89
|
Requires-Dist: boto3; extra == "delta-table"
|
|
90
|
+
Requires-Dist: deltalake; extra == "delta-table"
|
|
92
91
|
Provides-Extra: discord
|
|
93
92
|
Requires-Dist: discord.py; extra == "discord"
|
|
94
93
|
Provides-Extra: dropbox
|
|
@@ -130,18 +129,18 @@ Requires-Dist: neo4j; extra == "neo4j"
|
|
|
130
129
|
Requires-Dist: networkx; extra == "neo4j"
|
|
131
130
|
Provides-Extra: notion
|
|
132
131
|
Requires-Dist: httpx; extra == "notion"
|
|
133
|
-
Requires-Dist: htmlBuilder; extra == "notion"
|
|
134
132
|
Requires-Dist: notion-client; extra == "notion"
|
|
133
|
+
Requires-Dist: htmlBuilder; extra == "notion"
|
|
135
134
|
Requires-Dist: backoff; extra == "notion"
|
|
136
135
|
Provides-Extra: onedrive
|
|
137
|
-
Requires-Dist: msal; extra == "onedrive"
|
|
138
136
|
Requires-Dist: Office365-REST-Python-Client; extra == "onedrive"
|
|
137
|
+
Requires-Dist: msal; extra == "onedrive"
|
|
139
138
|
Requires-Dist: bs4; extra == "onedrive"
|
|
140
139
|
Provides-Extra: opensearch
|
|
141
140
|
Requires-Dist: opensearch-py; extra == "opensearch"
|
|
142
141
|
Provides-Extra: outlook
|
|
143
|
-
Requires-Dist: msal; extra == "outlook"
|
|
144
142
|
Requires-Dist: Office365-REST-Python-Client; extra == "outlook"
|
|
143
|
+
Requires-Dist: msal; extra == "outlook"
|
|
145
144
|
Provides-Extra: pinecone
|
|
146
145
|
Requires-Dist: pinecone-client>=3.7.1; extra == "pinecone"
|
|
147
146
|
Provides-Extra: postgres
|
|
@@ -156,18 +155,18 @@ Provides-Extra: s3
|
|
|
156
155
|
Requires-Dist: fsspec; extra == "s3"
|
|
157
156
|
Requires-Dist: s3fs; extra == "s3"
|
|
158
157
|
Provides-Extra: sharepoint
|
|
159
|
-
Requires-Dist: msal; extra == "sharepoint"
|
|
160
158
|
Requires-Dist: Office365-REST-Python-Client; extra == "sharepoint"
|
|
159
|
+
Requires-Dist: msal; extra == "sharepoint"
|
|
161
160
|
Provides-Extra: salesforce
|
|
162
161
|
Requires-Dist: simple-salesforce; extra == "salesforce"
|
|
163
162
|
Provides-Extra: sftp
|
|
164
|
-
Requires-Dist: fsspec; extra == "sftp"
|
|
165
163
|
Requires-Dist: paramiko; extra == "sftp"
|
|
164
|
+
Requires-Dist: fsspec; extra == "sftp"
|
|
166
165
|
Provides-Extra: slack
|
|
167
166
|
Requires-Dist: slack_sdk[optional]; extra == "slack"
|
|
168
167
|
Provides-Extra: snowflake
|
|
169
|
-
Requires-Dist: psycopg2-binary; extra == "snowflake"
|
|
170
168
|
Requires-Dist: snowflake-connector-python; extra == "snowflake"
|
|
169
|
+
Requires-Dist: psycopg2-binary; extra == "snowflake"
|
|
171
170
|
Provides-Extra: wikipedia
|
|
172
171
|
Requires-Dist: wikipedia; extra == "wikipedia"
|
|
173
172
|
Provides-Extra: weaviate
|
|
@@ -182,6 +181,10 @@ Provides-Extra: vectara
|
|
|
182
181
|
Requires-Dist: httpx; extra == "vectara"
|
|
183
182
|
Requires-Dist: requests; extra == "vectara"
|
|
184
183
|
Requires-Dist: aiofiles; extra == "vectara"
|
|
184
|
+
Provides-Extra: vastdb
|
|
185
|
+
Requires-Dist: vastdb; extra == "vastdb"
|
|
186
|
+
Requires-Dist: ibis; extra == "vastdb"
|
|
187
|
+
Requires-Dist: pyarrow; extra == "vastdb"
|
|
185
188
|
Provides-Extra: embed-huggingface
|
|
186
189
|
Requires-Dist: sentence-transformers; extra == "embed-huggingface"
|
|
187
190
|
Provides-Extra: embed-octoai
|
|
@@ -132,6 +132,7 @@ connectors_reqs = {
|
|
|
132
132
|
),
|
|
133
133
|
"singlestore": load_requirements("requirements/connectors/singlestore.in"),
|
|
134
134
|
"vectara": load_requirements("requirements/connectors/vectara.in"),
|
|
135
|
+
"vastdb": load_requirements("requirements/connectors/vastdb.in"),
|
|
135
136
|
}
|
|
136
137
|
|
|
137
138
|
embed_reqs = {
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import json
|
|
2
2
|
from pathlib import Path
|
|
3
3
|
|
|
4
|
-
import ndjson
|
|
5
4
|
from bs4 import BeautifulSoup
|
|
6
5
|
from deepdiff import DeepDiff
|
|
7
6
|
|
|
7
|
+
from unstructured_ingest.utils import ndjson
|
|
8
|
+
|
|
8
9
|
|
|
9
10
|
def json_equality_check(expected_filepath: Path, current_filepath: Path) -> bool:
|
|
10
11
|
with expected_filepath.open() as f:
|
{unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/test/unit/v2/connectors/sql/test_sql.py
RENAMED
|
@@ -47,7 +47,9 @@ def test_run_output_filename_suffix(
|
|
|
47
47
|
mock_get_output_path = mocker.patch.object(
|
|
48
48
|
SQLUploadStager, "get_output_path", return_value=output_dir / expected
|
|
49
49
|
)
|
|
50
|
-
mock_write_output = mocker.patch
|
|
50
|
+
mock_write_output = mocker.patch(
|
|
51
|
+
"unstructured_ingest.v2.processes.connectors.sql.sql.write_data", return_value=None
|
|
52
|
+
)
|
|
51
53
|
|
|
52
54
|
# Act
|
|
53
55
|
result = mock_instance.run(
|
|
@@ -67,6 +69,6 @@ def test_run_output_filename_suffix(
|
|
|
67
69
|
mock_conform_dataframe.assert_called_once()
|
|
68
70
|
mock_get_output_path.assert_called_once_with(output_filename=expected, output_dir=output_dir)
|
|
69
71
|
mock_write_output.assert_called_once_with(
|
|
70
|
-
|
|
72
|
+
path=output_dir / expected, data=[{"key": "value"}, {"key": "value2"}]
|
|
71
73
|
)
|
|
72
74
|
assert result.name == expected
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.4.1" # pragma: no cover
|
{unstructured_ingest-0.4.0 → unstructured_ingest-0.4.1}/unstructured_ingest/utils/data_prep.py
RENAMED
|
@@ -4,9 +4,9 @@ from datetime import datetime
|
|
|
4
4
|
from pathlib import Path
|
|
5
5
|
from typing import Any, Generator, Iterable, Optional, Sequence, TypeVar, cast
|
|
6
6
|
|
|
7
|
-
import ndjson
|
|
8
7
|
import pandas as pd
|
|
9
8
|
|
|
9
|
+
from unstructured_ingest.utils import ndjson
|
|
10
10
|
from unstructured_ingest.v2.logger import logger
|
|
11
11
|
|
|
12
12
|
DATE_FORMATS = ("%Y-%m-%d", "%Y-%m-%dT%H:%M:%S", "%Y-%m-%d+%H:%M:%S", "%Y-%m-%dT%H:%M:%S%z")
|
|
@@ -153,6 +153,16 @@ def get_data_by_suffix(path: Path) -> list[dict]:
|
|
|
153
153
|
raise ValueError(f"Unsupported file type: {path}")
|
|
154
154
|
|
|
155
155
|
|
|
156
|
+
def write_data(path: Path, data: list[dict], indent: int = 2) -> None:
|
|
157
|
+
with path.open("w") as f:
|
|
158
|
+
if path.suffix == ".json":
|
|
159
|
+
json.dump(data, f, indent=indent, ensure_ascii=False)
|
|
160
|
+
elif path.suffix == ".ndjson":
|
|
161
|
+
ndjson.dump(data, f, ensure_ascii=False)
|
|
162
|
+
else:
|
|
163
|
+
raise IOError("Unsupported file type: {path}")
|
|
164
|
+
|
|
165
|
+
|
|
156
166
|
def get_data(path: Path) -> list[dict]:
|
|
157
167
|
try:
|
|
158
168
|
return get_data_by_suffix(path=path)
|
|
@@ -179,8 +189,6 @@ def get_data(path: Path) -> list[dict]:
|
|
|
179
189
|
except Exception as e:
|
|
180
190
|
logger.warning(f"failed to read {path} as parquet: {e}")
|
|
181
191
|
|
|
182
|
-
raise IOError(f"File could not be parsed: {path}")
|
|
183
|
-
|
|
184
192
|
|
|
185
193
|
def get_data_df(path: Path) -> pd.DataFrame:
|
|
186
194
|
with path.open() as f:
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import base64
|
|
2
|
+
from pathlib import Path
|
|
3
|
+
from typing import Optional
|
|
4
|
+
from urllib.parse import urlparse
|
|
5
|
+
from uuid import NAMESPACE_DNS, uuid5
|
|
6
|
+
|
|
7
|
+
import requests
|
|
8
|
+
from bs4 import BeautifulSoup
|
|
9
|
+
from requests import Session
|
|
10
|
+
|
|
11
|
+
from unstructured_ingest.v2.interfaces import DownloadResponse, FileData, SourceIdentifiers
|
|
12
|
+
from unstructured_ingest.v2.logger import logger
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def convert_image_tags(url: str, original_html: str, session: Optional[Session] = None) -> str:
|
|
16
|
+
session = session or requests.Session()
|
|
17
|
+
parsed_url = urlparse(url)
|
|
18
|
+
base_url = parsed_url.scheme + "://" + parsed_url.netloc
|
|
19
|
+
soup = BeautifulSoup(original_html, "html.parser")
|
|
20
|
+
images = soup.find_all("img")
|
|
21
|
+
for image in images:
|
|
22
|
+
current_source = image["src"]
|
|
23
|
+
if current_source.startswith("//"):
|
|
24
|
+
source_url = f"{parsed_url.scheme}:{current_source}"
|
|
25
|
+
elif current_source.startswith("http"):
|
|
26
|
+
source_url = current_source
|
|
27
|
+
else:
|
|
28
|
+
source_url = base_url + current_source
|
|
29
|
+
try:
|
|
30
|
+
response = session.get(source_url)
|
|
31
|
+
response.raise_for_status()
|
|
32
|
+
image_content = response.content
|
|
33
|
+
logger.debug(
|
|
34
|
+
"img tag having src updated from {} to base64 content".format(image["src"])
|
|
35
|
+
)
|
|
36
|
+
image["src"] = f"data:image/png;base64,{base64.b64encode(image_content).decode()}"
|
|
37
|
+
except Exception as e:
|
|
38
|
+
logger.warning(
|
|
39
|
+
f"failed to download image content from {source_url}: {e}", exc_info=True
|
|
40
|
+
)
|
|
41
|
+
return str(soup)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def download_link(
|
|
45
|
+
download_dir: Path, link: str, session: Optional[Session] = None, force_download: bool = False
|
|
46
|
+
) -> Path:
|
|
47
|
+
session = session or requests.Session()
|
|
48
|
+
filename = Path(urlparse(url=link).path).name
|
|
49
|
+
download_path = download_dir / filename
|
|
50
|
+
logger.debug(f"downloading file from {link} to {download_path}")
|
|
51
|
+
if download_path.exists() and download_path.is_file() and not force_download:
|
|
52
|
+
return download_path
|
|
53
|
+
with download_path.open("wb") as downloaded_file:
|
|
54
|
+
response = session.get(link)
|
|
55
|
+
response.raise_for_status()
|
|
56
|
+
downloaded_file.write(response.content)
|
|
57
|
+
return download_path
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
def download_embedded_files(
|
|
61
|
+
download_dir: Path,
|
|
62
|
+
original_filedata: FileData,
|
|
63
|
+
original_html: str,
|
|
64
|
+
session: Optional[Session] = None,
|
|
65
|
+
force_download: bool = False,
|
|
66
|
+
) -> list[DownloadResponse]:
|
|
67
|
+
session = session or requests.Session()
|
|
68
|
+
url = original_filedata.metadata.url
|
|
69
|
+
parsed_url = urlparse(url)
|
|
70
|
+
base_url = parsed_url.scheme + "://" + parsed_url.netloc
|
|
71
|
+
soup = BeautifulSoup(original_html, "html.parser")
|
|
72
|
+
tags = soup.find_all("a", href=True)
|
|
73
|
+
hrefs = [
|
|
74
|
+
tag["href"]
|
|
75
|
+
for tag in tags
|
|
76
|
+
if not tag["href"].startswith("#") and Path(tag["href"]).suffix != ""
|
|
77
|
+
]
|
|
78
|
+
results = []
|
|
79
|
+
for current_source in hrefs:
|
|
80
|
+
download_dir.mkdir(parents=True, exist_ok=True)
|
|
81
|
+
if current_source.startswith("//"):
|
|
82
|
+
source_url = f"{parsed_url.scheme}:{current_source}"
|
|
83
|
+
elif current_source.startswith("http"):
|
|
84
|
+
source_url = current_source
|
|
85
|
+
else:
|
|
86
|
+
source_url = base_url + current_source
|
|
87
|
+
try:
|
|
88
|
+
downloaded_path = download_link(
|
|
89
|
+
download_dir=download_dir,
|
|
90
|
+
link=source_url,
|
|
91
|
+
session=session,
|
|
92
|
+
force_download=force_download,
|
|
93
|
+
)
|
|
94
|
+
except Exception as e:
|
|
95
|
+
logger.warning(f"failed to download file content from {source_url}: {e}")
|
|
96
|
+
continue
|
|
97
|
+
result_file_data = original_filedata.model_copy(deep=True)
|
|
98
|
+
result_file_data.metadata.url = source_url
|
|
99
|
+
result_file_data.metadata.record_locator["parent_url"] = url
|
|
100
|
+
result_file_data.identifier = str(
|
|
101
|
+
uuid5(NAMESPACE_DNS, source_url + original_filedata.identifier)
|
|
102
|
+
)
|
|
103
|
+
filename = Path(urlparse(url=source_url).path).name
|
|
104
|
+
result_file_data.source_identifiers = SourceIdentifiers(
|
|
105
|
+
filename=filename, fullpath=filename
|
|
106
|
+
)
|
|
107
|
+
result_file_data.local_download_path = downloaded_path.as_posix()
|
|
108
|
+
results.append(DownloadResponse(file_data=result_file_data, path=downloaded_path))
|
|
109
|
+
return results
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import json
|
|
2
|
+
from typing import IO, Any
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
def dumps(obj: list[dict[str, Any]], **kwargs) -> str:
|
|
6
|
+
return "\n".join(json.dumps(each, **kwargs) for each in obj)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def dump(obj: list[dict[str, Any]], fp: IO, **kwargs) -> None:
|
|
10
|
+
# Indent breaks ndjson formatting
|
|
11
|
+
kwargs["indent"] = None
|
|
12
|
+
text = dumps(obj, **kwargs)
|
|
13
|
+
fp.write(text)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def loads(s: str, **kwargs) -> list[dict[str, Any]]:
|
|
17
|
+
return [json.loads(line, **kwargs) for line in s.splitlines()]
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def load(fp: IO, **kwargs) -> list[dict[str, Any]]:
|
|
21
|
+
return loads(fp.read(), **kwargs)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class writer(object):
|
|
25
|
+
def __init__(self, f, **kwargs):
|
|
26
|
+
self.f = f
|
|
27
|
+
self.kwargs = kwargs
|
|
28
|
+
|
|
29
|
+
def write(self, row):
|
|
30
|
+
stringified = json.dumps(row, **self.kwargs)
|
|
31
|
+
self.f.write(stringified + "\n")
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class reader(object):
|
|
35
|
+
def __init__(self, f, **kwargs):
|
|
36
|
+
self.f = f
|
|
37
|
+
self.kwargs = kwargs
|
|
38
|
+
|
|
39
|
+
def __iter__(self):
|
|
40
|
+
return self
|
|
41
|
+
|
|
42
|
+
def __next__(self):
|
|
43
|
+
line = ""
|
|
44
|
+
|
|
45
|
+
while line == "":
|
|
46
|
+
line = next(self.f).strip()
|
|
47
|
+
|
|
48
|
+
return json.loads(line, **self.kwargs)
|
|
49
|
+
|
|
50
|
+
# NOTE: this is necessary to comply with py27
|
|
51
|
+
def next(self):
|
|
52
|
+
return self.__next__()
|
|
@@ -2,11 +2,11 @@ import json
|
|
|
2
2
|
from abc import ABC
|
|
3
3
|
from dataclasses import dataclass
|
|
4
4
|
from pathlib import Path
|
|
5
|
-
from typing import Any,
|
|
5
|
+
from typing import Any, TypeVar
|
|
6
6
|
|
|
7
|
-
import ndjson
|
|
8
7
|
from pydantic import BaseModel
|
|
9
8
|
|
|
9
|
+
from unstructured_ingest.utils import ndjson
|
|
10
10
|
from unstructured_ingest.v2.interfaces.file_data import FileData
|
|
11
11
|
from unstructured_ingest.v2.interfaces.process import BaseProcess
|
|
12
12
|
|
|
@@ -22,16 +22,6 @@ UploadStagerConfigT = TypeVar("UploadStagerConfigT", bound=UploadStagerConfig)
|
|
|
22
22
|
class UploadStager(BaseProcess, ABC):
|
|
23
23
|
upload_stager_config: UploadStagerConfigT
|
|
24
24
|
|
|
25
|
-
def write_output(self, output_path: Path, data: list[dict], indent: Optional[int] = 2) -> None:
|
|
26
|
-
if output_path.suffix == ".json":
|
|
27
|
-
with output_path.open("w") as f:
|
|
28
|
-
json.dump(data, f, indent=indent)
|
|
29
|
-
elif output_path.suffix == ".ndjson":
|
|
30
|
-
with output_path.open("w") as f:
|
|
31
|
-
ndjson.dump(data, f)
|
|
32
|
-
else:
|
|
33
|
-
raise ValueError(f"Unsupported output format: {output_path}")
|
|
34
|
-
|
|
35
25
|
def conform_dict(self, element_dict: dict, file_data: FileData) -> dict:
|
|
36
26
|
return element_dict
|
|
37
27
|
|
|
@@ -49,7 +39,7 @@ class UploadStager(BaseProcess, ABC):
|
|
|
49
39
|
writer = ndjson.writer(out_f)
|
|
50
40
|
for element in reader:
|
|
51
41
|
conformed_element = self.conform_dict(element_dict=element, file_data=file_data)
|
|
52
|
-
writer.
|
|
42
|
+
writer.write(row=conformed_element)
|
|
53
43
|
writer.f.flush()
|
|
54
44
|
|
|
55
45
|
def process_whole(self, input_file: Path, output_file: Path, file_data: FileData) -> None:
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import asyncio
|
|
2
2
|
import hashlib
|
|
3
|
-
import json
|
|
4
3
|
from dataclasses import dataclass
|
|
5
4
|
from pathlib import Path
|
|
6
5
|
from typing import Callable, Optional, TypedDict
|
|
7
6
|
|
|
7
|
+
from unstructured_ingest.utils.data_prep import write_data
|
|
8
8
|
from unstructured_ingest.v2.interfaces import FileData
|
|
9
9
|
from unstructured_ingest.v2.interfaces.file_data import file_data_from_file
|
|
10
10
|
from unstructured_ingest.v2.logger import logger
|
|
@@ -44,9 +44,8 @@ class ChunkStep(PipelineStep):
|
|
|
44
44
|
return filepath
|
|
45
45
|
|
|
46
46
|
def _save_output(self, output_filepath: str, chunked_content: list[dict]):
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
json.dump(chunked_content, f, indent=2)
|
|
47
|
+
logger.debug(f"writing chunker output to: {output_filepath}")
|
|
48
|
+
write_data(path=Path(output_filepath), data=chunked_content)
|
|
50
49
|
|
|
51
50
|
async def _run_async(
|
|
52
51
|
self, fn: Callable, path: str, file_data_path: str, **kwargs
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import asyncio
|
|
2
2
|
import hashlib
|
|
3
|
-
import json
|
|
4
3
|
from dataclasses import dataclass
|
|
5
4
|
from pathlib import Path
|
|
6
5
|
from typing import Callable, Optional, TypedDict
|
|
7
6
|
|
|
7
|
+
from unstructured_ingest.utils.data_prep import write_data
|
|
8
8
|
from unstructured_ingest.v2.interfaces import FileData
|
|
9
9
|
from unstructured_ingest.v2.interfaces.file_data import file_data_from_file
|
|
10
10
|
from unstructured_ingest.v2.logger import logger
|
|
@@ -44,9 +44,8 @@ class EmbedStep(PipelineStep):
|
|
|
44
44
|
return filepath
|
|
45
45
|
|
|
46
46
|
def _save_output(self, output_filepath: str, embedded_content: list[dict]):
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
json.dump(embedded_content, f, indent=2)
|
|
47
|
+
logger.debug(f"writing embedded output to: {output_filepath}")
|
|
48
|
+
write_data(path=Path(output_filepath), data=embedded_content)
|
|
50
49
|
|
|
51
50
|
async def _run_async(self, fn: Callable, path: str, file_data_path: str) -> EmbedStepResponse:
|
|
52
51
|
path = Path(path)
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import asyncio
|
|
2
2
|
import hashlib
|
|
3
|
-
import json
|
|
4
3
|
from dataclasses import dataclass
|
|
5
4
|
from pathlib import Path
|
|
6
5
|
from typing import Callable, Optional, TypedDict
|
|
7
6
|
|
|
7
|
+
from unstructured_ingest.utils.data_prep import write_data
|
|
8
8
|
from unstructured_ingest.v2.interfaces import FileData
|
|
9
9
|
from unstructured_ingest.v2.interfaces.file_data import file_data_from_file
|
|
10
10
|
from unstructured_ingest.v2.logger import logger
|
|
@@ -44,9 +44,8 @@ class PartitionStep(PipelineStep):
|
|
|
44
44
|
return filepath
|
|
45
45
|
|
|
46
46
|
def _save_output(self, output_filepath: str, partitioned_content: list[dict]):
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
json.dump(partitioned_content, f, indent=2)
|
|
47
|
+
logger.debug(f"writing partitioned output to: {output_filepath}")
|
|
48
|
+
write_data(path=Path(output_filepath), data=partitioned_content)
|
|
50
49
|
|
|
51
50
|
async def _run_async(
|
|
52
51
|
self, fn: Callable, path: str, file_data_path: str
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
from contextlib import contextmanager
|
|
1
2
|
from dataclasses import dataclass, field
|
|
2
3
|
from pathlib import Path
|
|
3
4
|
from typing import TYPE_CHECKING, Generator, List, Optional
|
|
@@ -17,6 +18,7 @@ from unstructured_ingest.v2.interfaces import (
|
|
|
17
18
|
Indexer,
|
|
18
19
|
IndexerConfig,
|
|
19
20
|
SourceIdentifiers,
|
|
21
|
+
download_responses,
|
|
20
22
|
)
|
|
21
23
|
from unstructured_ingest.v2.logger import logger
|
|
22
24
|
from unstructured_ingest.v2.processes.connector_registry import (
|
|
@@ -71,17 +73,19 @@ class ConfluenceConnectionConfig(ConnectionConfig):
|
|
|
71
73
|
)
|
|
72
74
|
|
|
73
75
|
@requires_dependencies(["atlassian"], extras="confluence")
|
|
76
|
+
@contextmanager
|
|
74
77
|
def get_client(self) -> "Confluence":
|
|
75
78
|
from atlassian import Confluence
|
|
76
79
|
|
|
77
80
|
access_configs = self.access_config.get_secret_value()
|
|
78
|
-
|
|
81
|
+
with Confluence(
|
|
79
82
|
url=self.url,
|
|
80
83
|
username=self.username,
|
|
81
84
|
password=access_configs.password,
|
|
82
85
|
token=access_configs.token,
|
|
83
86
|
cloud=self.cloud,
|
|
84
|
-
)
|
|
87
|
+
) as client:
|
|
88
|
+
yield client
|
|
85
89
|
|
|
86
90
|
|
|
87
91
|
class ConfluenceIndexerConfig(IndexerConfig):
|
|
@@ -103,8 +107,8 @@ class ConfluenceIndexer(Indexer):
|
|
|
103
107
|
|
|
104
108
|
# Attempt to retrieve a list of spaces with limit=1.
|
|
105
109
|
# This should only succeed if all creds are valid
|
|
106
|
-
|
|
107
|
-
|
|
110
|
+
with self.connection_config.get_client() as client:
|
|
111
|
+
client.get_all_spaces(limit=1)
|
|
108
112
|
logger.info("Connection to Confluence successful.")
|
|
109
113
|
return True
|
|
110
114
|
except Exception as e:
|
|
@@ -116,21 +120,21 @@ class ConfluenceIndexer(Indexer):
|
|
|
116
120
|
if spaces:
|
|
117
121
|
return spaces
|
|
118
122
|
else:
|
|
119
|
-
|
|
120
|
-
|
|
123
|
+
with self.connection_config.get_client() as client:
|
|
124
|
+
all_spaces = client.get_all_spaces(limit=self.index_config.max_num_of_spaces)
|
|
121
125
|
space_ids = [space["key"] for space in all_spaces["results"]]
|
|
122
126
|
return space_ids
|
|
123
127
|
|
|
124
128
|
def _get_docs_ids_within_one_space(self, space_id: str) -> List[dict]:
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
129
|
+
with self.connection_config.get_client() as client:
|
|
130
|
+
pages = client.get_all_pages_from_space(
|
|
131
|
+
space=space_id,
|
|
132
|
+
start=0,
|
|
133
|
+
limit=self.index_config.max_num_of_docs_from_each_space,
|
|
134
|
+
expand=None,
|
|
135
|
+
content_type="page",
|
|
136
|
+
status=None,
|
|
137
|
+
)
|
|
134
138
|
doc_ids = [{"space_id": space_id, "doc_id": page["id"]} for page in pages]
|
|
135
139
|
return doc_ids
|
|
136
140
|
|
|
@@ -177,7 +181,18 @@ class ConfluenceIndexer(Indexer):
|
|
|
177
181
|
|
|
178
182
|
|
|
179
183
|
class ConfluenceDownloaderConfig(DownloaderConfig):
|
|
180
|
-
|
|
184
|
+
extract_images: bool = Field(
|
|
185
|
+
default=False,
|
|
186
|
+
description="if true, will download images and replace "
|
|
187
|
+
"the html content with base64 encoded images",
|
|
188
|
+
)
|
|
189
|
+
extract_files: bool = Field(
|
|
190
|
+
default=False, description="if true, will download any embedded files"
|
|
191
|
+
)
|
|
192
|
+
force_download: bool = Field(
|
|
193
|
+
default=False,
|
|
194
|
+
description="if true, will redownload extracted files even if they already exist locally",
|
|
195
|
+
)
|
|
181
196
|
|
|
182
197
|
|
|
183
198
|
@dataclass
|
|
@@ -186,14 +201,37 @@ class ConfluenceDownloader(Downloader):
|
|
|
186
201
|
download_config: ConfluenceDownloaderConfig = field(default_factory=ConfluenceDownloaderConfig)
|
|
187
202
|
connector_type: str = CONNECTOR_TYPE
|
|
188
203
|
|
|
189
|
-
def
|
|
204
|
+
def download_embedded_files(
|
|
205
|
+
self, session, html: str, current_file_data: FileData
|
|
206
|
+
) -> list[DownloadResponse]:
|
|
207
|
+
if not self.download_config.extract_files:
|
|
208
|
+
return []
|
|
209
|
+
from unstructured_ingest.utils.html import download_embedded_files
|
|
210
|
+
|
|
211
|
+
filepath = current_file_data.source_identifiers.relative_path
|
|
212
|
+
download_path = Path(self.download_dir) / filepath
|
|
213
|
+
download_dir = download_path.with_suffix("")
|
|
214
|
+
return download_embedded_files(
|
|
215
|
+
download_dir=download_dir,
|
|
216
|
+
original_filedata=current_file_data,
|
|
217
|
+
original_html=html,
|
|
218
|
+
session=session,
|
|
219
|
+
force_download=self.download_config.force_download,
|
|
220
|
+
)
|
|
221
|
+
|
|
222
|
+
def run(self, file_data: FileData, **kwargs) -> download_responses:
|
|
223
|
+
from bs4 import BeautifulSoup
|
|
224
|
+
|
|
225
|
+
from unstructured_ingest.utils.html import convert_image_tags
|
|
226
|
+
|
|
190
227
|
doc_id = file_data.identifier
|
|
191
228
|
try:
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
229
|
+
with self.connection_config.get_client() as client:
|
|
230
|
+
page = client.get_page_by_id(
|
|
231
|
+
page_id=doc_id,
|
|
232
|
+
expand="history.lastUpdated,version,body.view",
|
|
233
|
+
)
|
|
234
|
+
|
|
197
235
|
except Exception as e:
|
|
198
236
|
logger.error(f"Failed to retrieve page with ID {doc_id}: {e}", exc_info=True)
|
|
199
237
|
raise SourceConnectionError(f"Failed to retrieve page with ID {doc_id}: {e}")
|
|
@@ -202,20 +240,52 @@ class ConfluenceDownloader(Downloader):
|
|
|
202
240
|
raise ValueError(f"Page with ID {doc_id} does not exist.")
|
|
203
241
|
|
|
204
242
|
content = page["body"]["view"]["value"]
|
|
243
|
+
# This supports v2 html parsing in unstructured
|
|
244
|
+
title = page["title"]
|
|
245
|
+
title_html = f"<title>{title}</title>"
|
|
246
|
+
content = f"<body class='Document' >{title_html}{content}</body>"
|
|
247
|
+
if self.download_config.extract_images:
|
|
248
|
+
with self.connection_config.get_client() as client:
|
|
249
|
+
content = convert_image_tags(
|
|
250
|
+
url=file_data.metadata.url, original_html=content, session=client._session
|
|
251
|
+
)
|
|
205
252
|
|
|
206
253
|
filepath = file_data.source_identifiers.relative_path
|
|
207
254
|
download_path = Path(self.download_dir) / filepath
|
|
208
255
|
download_path.parent.mkdir(parents=True, exist_ok=True)
|
|
209
256
|
with open(download_path, "w", encoding="utf8") as f:
|
|
210
|
-
|
|
257
|
+
soup = BeautifulSoup(content, "html.parser")
|
|
258
|
+
f.write(soup.prettify())
|
|
211
259
|
|
|
212
260
|
# Update file_data with metadata
|
|
213
261
|
file_data.metadata.date_created = page["history"]["createdDate"]
|
|
214
262
|
file_data.metadata.date_modified = page["version"]["when"]
|
|
215
263
|
file_data.metadata.version = str(page["version"]["number"])
|
|
216
|
-
file_data.display_name =
|
|
264
|
+
file_data.display_name = title
|
|
217
265
|
|
|
218
|
-
|
|
266
|
+
download_response = self.generate_download_response(
|
|
267
|
+
file_data=file_data, download_path=download_path
|
|
268
|
+
)
|
|
269
|
+
if self.download_config.extract_files:
|
|
270
|
+
with self.connection_config.get_client() as client:
|
|
271
|
+
extracted_download_responses = self.download_embedded_files(
|
|
272
|
+
html=content,
|
|
273
|
+
current_file_data=download_response["file_data"],
|
|
274
|
+
session=client._session,
|
|
275
|
+
)
|
|
276
|
+
if extracted_download_responses:
|
|
277
|
+
for dr in extracted_download_responses:
|
|
278
|
+
fd = dr["file_data"]
|
|
279
|
+
source_file_path = Path(file_data.source_identifiers.fullpath).with_suffix(
|
|
280
|
+
""
|
|
281
|
+
)
|
|
282
|
+
new_fullpath = source_file_path / fd.source_identifiers.filename
|
|
283
|
+
fd.source_identifiers = SourceIdentifiers(
|
|
284
|
+
fullpath=new_fullpath.as_posix(), filename=new_fullpath.name
|
|
285
|
+
)
|
|
286
|
+
extracted_download_responses.append(download_response)
|
|
287
|
+
return extracted_download_responses
|
|
288
|
+
return download_response
|
|
219
289
|
|
|
220
290
|
|
|
221
291
|
confluence_source_entry = SourceRegistryEntry(
|
|
@@ -4,7 +4,7 @@ from typing import Any
|
|
|
4
4
|
|
|
5
5
|
import pandas as pd
|
|
6
6
|
|
|
7
|
-
from unstructured_ingest.utils.data_prep import get_data
|
|
7
|
+
from unstructured_ingest.utils.data_prep import get_data, write_data
|
|
8
8
|
from unstructured_ingest.v2.interfaces import FileData, UploadStager
|
|
9
9
|
from unstructured_ingest.v2.utils import get_enhanced_element_id
|
|
10
10
|
|
|
@@ -96,5 +96,5 @@ class BaseDuckDBUploadStager(UploadStager):
|
|
|
96
96
|
df[column] = df[column].apply(str)
|
|
97
97
|
|
|
98
98
|
data = df.to_dict(orient="records")
|
|
99
|
-
|
|
99
|
+
write_data(path=output_path, data=data)
|
|
100
100
|
return output_path
|