ingestr 0.13.30__tar.gz → 0.13.31__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 ingestr might be problematic. Click here for more details.
- {ingestr-0.13.30 → ingestr-0.13.31}/PKG-INFO +2 -2
- ingestr-0.13.31/ingestr/src/buildinfo.py +1 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/hubspot/__init__.py +18 -4
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/hubspot/helpers.py +17 -5
- {ingestr-0.13.30 → ingestr-0.13.31}/requirements.txt +1 -1
- ingestr-0.13.30/ingestr/src/buildinfo.py +0 -1
- {ingestr-0.13.30 → ingestr-0.13.31}/.dockerignore +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/.githooks/pre-commit-hook.sh +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/.github/workflows/deploy-docs.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/.github/workflows/release.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/.github/workflows/secrets-scan.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/.github/workflows/tests.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/.gitignore +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/.gitleaksignore +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/.python-version +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/.vale.ini +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/Dockerfile +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/LICENSE.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/Makefile +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/README.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/.vitepress/config.mjs +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/.vitepress/theme/custom.css +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/.vitepress/theme/index.js +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/commands/example-uris.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/commands/ingest.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/getting-started/core-concepts.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/getting-started/incremental-loading.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/getting-started/quickstart.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/getting-started/telemetry.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/index.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/media/applovin_max.png +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/media/athena.png +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/media/clickhouse_img.png +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/media/github.png +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/media/googleanalytics.png +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/media/kinesis.bigquery.png +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/media/linkedin_ads.png +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/media/personio.png +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/media/personio_duckdb.png +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/media/pipedrive.png +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/media/stripe_postgres.png +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/media/tiktok.png +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/adjust.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/airtable.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/applovin.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/applovin_max.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/appsflyer.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/appstore.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/asana.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/athena.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/bigquery.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/chess.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/clickhouse.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/csv.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/custom_queries.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/databricks.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/db2.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/duckdb.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/dynamodb.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/facebook-ads.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/frankfurter.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/gcs.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/github.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/google-ads.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/google_analytics.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/gorgias.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/gsheets.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/hubspot.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/kafka.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/kinesis.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/klaviyo.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/linkedin_ads.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/mongodb.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/mssql.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/mysql.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/notion.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/oracle.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/personio.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/pipedrive.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/postgres.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/redshift.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/s3.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/salesforce.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/sap-hana.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/shopify.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/slack.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/snowflake.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/sqlite.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/stripe.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/tiktok-ads.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/supported-sources/zendesk.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/tutorials/load-kinesis-bigquery.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/tutorials/load-personio-duckdb.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/docs/tutorials/load-stripe-postgres.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/conftest.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/main.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/.gitignore +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/adjust/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/adjust/adjust_helpers.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/airtable/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/applovin/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/applovin_max/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/appsflyer/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/appsflyer/client.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/appstore/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/appstore/client.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/appstore/errors.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/appstore/models.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/appstore/resources.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/arrow/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/asana_source/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/asana_source/helpers.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/asana_source/settings.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/blob.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/chess/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/chess/helpers.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/chess/settings.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/destinations.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/dynamodb/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/errors.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/facebook_ads/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/facebook_ads/exceptions.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/facebook_ads/helpers.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/facebook_ads/settings.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/factory.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/filesystem/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/filesystem/helpers.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/filesystem/readers.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/filters.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/frankfurter/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/frankfurter/helpers.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/github/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/github/helpers.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/github/queries.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/github/settings.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/google_ads/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/google_ads/field.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/google_ads/metrics.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/google_ads/predicates.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/google_ads/reports.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/google_analytics/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/google_analytics/helpers.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/google_sheets/README.md +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/google_sheets/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/google_sheets/helpers/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/google_sheets/helpers/api_calls.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/google_sheets/helpers/data_processing.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/gorgias/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/gorgias/helpers.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/hubspot/settings.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/kafka/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/kafka/helpers.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/kinesis/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/kinesis/helpers.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/klaviyo/_init_.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/klaviyo/client.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/klaviyo/helpers.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/linkedin_ads/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/linkedin_ads/dimension_time_enum.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/linkedin_ads/helpers.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/loader.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/mongodb/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/mongodb/helpers.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/notion/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/notion/helpers/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/notion/helpers/client.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/notion/helpers/database.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/notion/settings.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/partition.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/personio/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/personio/helpers.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/pipedrive/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/pipedrive/helpers/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/pipedrive/helpers/custom_fields_munger.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/pipedrive/helpers/pages.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/pipedrive/settings.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/pipedrive/typing.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/resource.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/salesforce/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/salesforce/helpers.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/shopify/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/shopify/exceptions.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/shopify/helpers.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/shopify/settings.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/slack/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/slack/helpers.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/slack/settings.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/sources.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/sql_database/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/sql_database/callbacks.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/stripe_analytics/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/stripe_analytics/helpers.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/stripe_analytics/settings.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/table_definition.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/telemetry/event.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/testdata/fakebqcredentials.json +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/tiktok_ads/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/tiktok_ads/tiktok_helpers.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/time.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/version.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/zendesk/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/zendesk/helpers/__init__.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/zendesk/helpers/api_helpers.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/zendesk/helpers/credentials.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/zendesk/helpers/talk_api.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/src/zendesk/settings.py +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/testdata/.gitignore +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/testdata/create_replace.csv +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/testdata/delete_insert_expected.csv +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/testdata/delete_insert_part1.csv +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/testdata/delete_insert_part2.csv +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/testdata/merge_expected.csv +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/testdata/merge_part1.csv +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/ingestr/testdata/merge_part2.csv +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/package-lock.json +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/package.json +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/pyproject.toml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/requirements-dev.txt +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/requirements.in +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/requirements_arm64.txt +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/resources/demo.gif +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/resources/demo.tape +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/resources/ingestr.svg +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/Google/AMPM.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/Google/Acronyms.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/Google/Colons.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/Google/Contractions.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/Google/DateFormat.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/Google/Ellipses.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/Google/EmDash.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/Google/Exclamation.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/Google/FirstPerson.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/Google/Gender.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/Google/GenderBias.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/Google/HeadingPunctuation.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/Google/Headings.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/Google/Latin.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/Google/LyHyphens.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/Google/OptionalPlurals.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/Google/Ordinal.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/Google/OxfordComma.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/Google/Parens.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/Google/Passive.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/Google/Periods.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/Google/Quotes.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/Google/Ranges.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/Google/Semicolons.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/Google/Slang.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/Google/Spacing.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/Google/Spelling.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/Google/Units.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/Google/We.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/Google/Will.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/Google/WordList.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/Google/meta.json +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/Google/vocab.txt +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/bruin/Ingestr.yml +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/styles/config/vocabularies/bruin/accept.txt +0 -0
- {ingestr-0.13.30 → ingestr-0.13.31}/test.env.template +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ingestr
|
|
3
|
-
Version: 0.13.
|
|
3
|
+
Version: 0.13.31
|
|
4
4
|
Summary: ingestr is a command-line application that ingests data from various sources and stores them in any database.
|
|
5
5
|
Project-URL: Homepage, https://github.com/bruin-data/ingestr
|
|
6
6
|
Project-URL: Issues, https://github.com/bruin-data/ingestr/issues
|
|
@@ -74,7 +74,7 @@ Requires-Dist: google-cloud-storage==3.1.0
|
|
|
74
74
|
Requires-Dist: google-crc32c==1.6.0
|
|
75
75
|
Requires-Dist: google-resumable-media==2.7.2
|
|
76
76
|
Requires-Dist: googleapis-common-protos==1.69.0
|
|
77
|
-
Requires-Dist: greenlet==3.2.
|
|
77
|
+
Requires-Dist: greenlet==3.2.1
|
|
78
78
|
Requires-Dist: grpcio-status==1.62.3
|
|
79
79
|
Requires-Dist: grpcio==1.70.0
|
|
80
80
|
Requires-Dist: hdbcli==2.23.27
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
version = "v0.13.31"
|
|
@@ -32,7 +32,12 @@ from dlt.common import pendulum
|
|
|
32
32
|
from dlt.common.typing import TDataItems
|
|
33
33
|
from dlt.sources import DltResource
|
|
34
34
|
|
|
35
|
-
from .helpers import
|
|
35
|
+
from .helpers import (
|
|
36
|
+
_get_property_names,
|
|
37
|
+
fetch_data,
|
|
38
|
+
fetch_data_raw,
|
|
39
|
+
fetch_property_history,
|
|
40
|
+
)
|
|
36
41
|
from .settings import (
|
|
37
42
|
ALL,
|
|
38
43
|
CRM_OBJECT_ENDPOINTS,
|
|
@@ -192,12 +197,21 @@ def hubspot(
|
|
|
192
197
|
api_key: str = api_key,
|
|
193
198
|
custom_object_name: str = custom_object,
|
|
194
199
|
) -> Iterator[TDataItems]:
|
|
195
|
-
get_custom_object =
|
|
200
|
+
get_custom_object = fetch_data_raw(CRM_SCHEMAS_ENDPOINT, api_key)
|
|
196
201
|
object_type_id = None
|
|
197
|
-
|
|
198
|
-
|
|
202
|
+
|
|
203
|
+
custom_object_lowercase = custom_object_name.lower()
|
|
204
|
+
for custom_object in get_custom_object["results"]:
|
|
205
|
+
if custom_object["name"].lower() == custom_object_lowercase:
|
|
199
206
|
object_type_id = custom_object["objectTypeId"]
|
|
200
207
|
break
|
|
208
|
+
|
|
209
|
+
# sometimes people use the plural name of the object type by accident, we should try to match that if we can
|
|
210
|
+
if "labels" in custom_object:
|
|
211
|
+
if custom_object_lowercase == custom_object["labels"]["plural"].lower():
|
|
212
|
+
object_type_id = custom_object["objectTypeId"]
|
|
213
|
+
break
|
|
214
|
+
|
|
201
215
|
if object_type_id is None:
|
|
202
216
|
raise ValueError(f"There is no such custom object as {custom_object_name}")
|
|
203
217
|
custom_object_properties = f"crm/v3/properties/{object_type_id}"
|
|
@@ -130,6 +130,7 @@ def fetch_data(
|
|
|
130
130
|
# Parse the API response and yield the properties of each result
|
|
131
131
|
# Parse the response JSON data
|
|
132
132
|
_data = r.json()
|
|
133
|
+
|
|
133
134
|
# Yield the properties of each result in the API response
|
|
134
135
|
while _data is not None:
|
|
135
136
|
if "results" in _data:
|
|
@@ -156,6 +157,7 @@ def fetch_data(
|
|
|
156
157
|
if "id" not in _obj and "id" in _result:
|
|
157
158
|
# Move id from properties to top level
|
|
158
159
|
_obj["id"] = _result["id"]
|
|
160
|
+
|
|
159
161
|
if "associations" in _result:
|
|
160
162
|
for association in _result["associations"]:
|
|
161
163
|
__values = [
|
|
@@ -168,12 +170,13 @@ def fetch_data(
|
|
|
168
170
|
]
|
|
169
171
|
]
|
|
170
172
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
173
|
+
# remove duplicates from list of dicts
|
|
174
|
+
__values = [
|
|
175
|
+
dict(t) for t in {tuple(d.items()) for d in __values}
|
|
176
|
+
]
|
|
177
|
+
|
|
178
|
+
_obj[association] = __values
|
|
175
179
|
|
|
176
|
-
_obj[association] = __values
|
|
177
180
|
_objects.append(_obj)
|
|
178
181
|
yield _objects
|
|
179
182
|
|
|
@@ -208,3 +211,12 @@ def _get_property_names(api_key: str, object_type: str) -> List[str]:
|
|
|
208
211
|
properties.extend([prop["name"] for prop in page])
|
|
209
212
|
|
|
210
213
|
return properties
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
def fetch_data_raw(
|
|
217
|
+
endpoint: str, api_key: str, params: Optional[Dict[str, Any]] = None
|
|
218
|
+
) -> Iterator[List[Dict[str, Any]]]:
|
|
219
|
+
url = get_url(endpoint)
|
|
220
|
+
headers = _get_headers(api_key)
|
|
221
|
+
r = requests.get(url, headers=headers, params=params)
|
|
222
|
+
return r.json()
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
version = "v0.13.30"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|