ingestr 0.13.66__tar.gz → 0.13.68__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.
- {ingestr-0.13.66 → ingestr-0.13.68}/PKG-INFO +4 -4
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/main.py +1 -1
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/applovin_max/__init__.py +1 -0
- ingestr-0.13.68/ingestr/src/buildinfo.py +1 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/destinations.py +2 -2
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/linear/__init__.py +5 -3
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/linear/helpers.py +16 -4
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/sources.py +21 -1
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/stripe_analytics/helpers.py +0 -1
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/zoom/__init__.py +2 -2
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/zoom/helpers.py +1 -1
- {ingestr-0.13.66 → ingestr-0.13.68}/requirements.in +2 -2
- {ingestr-0.13.66 → ingestr-0.13.68}/requirements.txt +3 -3
- {ingestr-0.13.66 → ingestr-0.13.68}/requirements_arm64.txt +3 -3
- ingestr-0.13.66/ingestr/src/buildinfo.py +0 -1
- {ingestr-0.13.66 → ingestr-0.13.68}/.dockerignore +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/.githooks/pre-commit-hook.sh +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/.github/workflows/deploy-docs.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/.github/workflows/release.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/.github/workflows/secrets-scan.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/.github/workflows/tests.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/.gitignore +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/.gitleaksignore +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/.python-version +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/.vale.ini +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/Dockerfile +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/LICENSE.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/Makefile +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/README.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/.vitepress/config.mjs +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/.vitepress/theme/custom.css +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/.vitepress/theme/index.js +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/commands/example-uris.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/commands/ingest.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/getting-started/core-concepts.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/getting-started/incremental-loading.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/getting-started/quickstart.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/getting-started/telemetry.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/index.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/media/applovin_max.png +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/media/athena.png +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/media/clickhouse_img.png +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/media/cratedb-destination.png +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/media/cratedb-source.png +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/media/freshdesk_ingestion.png +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/media/gcp_spanner_ingestion.png +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/media/github.png +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/media/google_analytics_realtime_report.png +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/media/googleanalytics.png +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/media/ingestion_elasticsearch_img.png +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/media/kinesis.bigquery.png +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/media/linear.png +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/media/linkedin_ads.png +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/media/mixpanel_ingestion.png +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/media/personio.png +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/media/personio_duckdb.png +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/media/phantombuster.png +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/media/pipedrive.png +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/media/quickbook_ingestion.png +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/media/sftp.png +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/media/stripe_postgres.png +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/media/tiktok.png +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/media/zoom_ingestion.png +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/adjust.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/airtable.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/applovin.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/applovin_max.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/appsflyer.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/appstore.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/asana.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/athena.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/attio.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/bigquery.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/chess.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/clickhouse.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/cratedb.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/csv.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/custom_queries.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/databricks.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/db2.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/duckdb.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/dynamodb.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/elasticsearch.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/facebook-ads.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/frankfurter.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/freshdesk.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/gcs.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/github.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/google-ads.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/google_analytics.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/gorgias.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/gsheets.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/hubspot.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/isoc-pulse.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/kafka.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/kinesis.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/klaviyo.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/linear.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/linkedin_ads.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/mixpanel.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/mongodb.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/mssql.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/mysql.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/notion.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/oracle.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/personio.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/phantombuster.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/pinterest.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/pipedrive.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/postgres.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/quickbooks.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/redshift.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/s3.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/salesforce.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/sap-hana.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/sftp.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/shopify.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/slack.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/smartsheets.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/snowflake.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/solidgate.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/spanner.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/sqlite.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/stripe.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/tiktok-ads.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/trustpilot.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/zendesk.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/supported-sources/zoom.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/tutorials/load-kinesis-bigquery.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/tutorials/load-personio-duckdb.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/docs/tutorials/load-stripe-postgres.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/conftest.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/.gitignore +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/adjust/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/adjust/adjust_helpers.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/airtable/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/applovin/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/appsflyer/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/appsflyer/client.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/appstore/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/appstore/client.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/appstore/errors.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/appstore/models.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/appstore/resources.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/arrow/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/asana_source/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/asana_source/helpers.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/asana_source/settings.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/attio/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/attio/helpers.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/blob.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/chess/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/chess/helpers.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/chess/settings.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/collector/spinner.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/dynamodb/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/elasticsearch/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/errors.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/facebook_ads/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/facebook_ads/exceptions.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/facebook_ads/helpers.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/facebook_ads/settings.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/facebook_ads/utils.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/factory.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/filesystem/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/filesystem/helpers.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/filesystem/readers.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/filters.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/frankfurter/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/frankfurter/helpers.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/freshdesk/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/freshdesk/freshdesk_client.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/freshdesk/settings.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/github/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/github/helpers.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/github/queries.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/github/settings.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/google_ads/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/google_ads/field.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/google_ads/metrics.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/google_ads/predicates.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/google_ads/reports.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/google_analytics/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/google_analytics/helpers.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/google_sheets/README.md +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/google_sheets/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/google_sheets/helpers/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/google_sheets/helpers/api_calls.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/google_sheets/helpers/data_processing.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/gorgias/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/gorgias/helpers.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/http_client.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/hubspot/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/hubspot/helpers.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/hubspot/settings.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/isoc_pulse/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/kafka/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/kafka/helpers.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/kinesis/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/kinesis/helpers.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/klaviyo/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/klaviyo/client.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/klaviyo/helpers.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/linkedin_ads/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/linkedin_ads/dimension_time_enum.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/linkedin_ads/helpers.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/loader.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/mixpanel/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/mixpanel/client.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/mongodb/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/mongodb/helpers.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/notion/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/notion/helpers/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/notion/helpers/client.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/notion/helpers/database.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/notion/settings.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/partition.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/personio/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/personio/helpers.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/phantombuster/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/phantombuster/client.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/pinterest/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/pipedrive/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/pipedrive/helpers/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/pipedrive/helpers/custom_fields_munger.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/pipedrive/helpers/pages.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/pipedrive/settings.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/pipedrive/typing.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/quickbooks/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/resource.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/salesforce/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/salesforce/helpers.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/shopify/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/shopify/exceptions.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/shopify/helpers.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/shopify/settings.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/slack/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/slack/helpers.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/slack/settings.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/smartsheets/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/solidgate/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/solidgate/helpers.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/sql_database/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/sql_database/callbacks.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/stripe_analytics/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/stripe_analytics/settings.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/table_definition.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/telemetry/event.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/testdata/fakebqcredentials.json +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/tiktok_ads/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/tiktok_ads/tiktok_helpers.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/time.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/trustpilot/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/trustpilot/client.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/version.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/zendesk/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/zendesk/helpers/__init__.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/zendesk/helpers/api_helpers.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/zendesk/helpers/credentials.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/zendesk/helpers/talk_api.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/src/zendesk/settings.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/testdata/.gitignore +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/testdata/create_replace.csv +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/testdata/delete_insert_expected.csv +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/testdata/delete_insert_part1.csv +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/testdata/delete_insert_part2.csv +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/testdata/merge_expected.csv +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/testdata/merge_part1.csv +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/testdata/merge_part2.csv +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/ingestr/tests/unit/test_smartsheets.py +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/package-lock.json +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/package.json +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/pyproject.toml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/requirements-dev.txt +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/resources/demo.gif +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/resources/demo.tape +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/resources/ingestr.svg +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/Google/AMPM.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/Google/Acronyms.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/Google/Colons.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/Google/Contractions.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/Google/DateFormat.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/Google/Ellipses.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/Google/EmDash.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/Google/Exclamation.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/Google/FirstPerson.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/Google/Gender.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/Google/GenderBias.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/Google/HeadingPunctuation.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/Google/Headings.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/Google/Latin.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/Google/LyHyphens.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/Google/OptionalPlurals.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/Google/Ordinal.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/Google/OxfordComma.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/Google/Parens.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/Google/Passive.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/Google/Periods.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/Google/Quotes.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/Google/Ranges.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/Google/Semicolons.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/Google/Slang.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/Google/Spacing.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/Google/Spelling.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/Google/Units.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/Google/We.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/Google/Will.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/Google/WordList.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/Google/meta.json +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/Google/vocab.txt +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/bruin/Ingestr.yml +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/styles/config/vocabularies/bruin/accept.txt +0 -0
- {ingestr-0.13.66 → ingestr-0.13.68}/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.68
|
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
|
@@ -48,7 +48,7 @@ Requires-Dist: dataclasses-json==0.6.7
|
|
48
48
|
Requires-Dist: decorator==5.2.1
|
49
49
|
Requires-Dist: deprecation==2.1.0
|
50
50
|
Requires-Dist: dlt-cratedb==0.0.1
|
51
|
-
Requires-Dist: dlt==1.
|
51
|
+
Requires-Dist: dlt==1.11.0
|
52
52
|
Requires-Dist: dnspython==2.7.0
|
53
53
|
Requires-Dist: duckdb-engine==0.17.0
|
54
54
|
Requires-Dist: duckdb==1.2.1
|
@@ -179,7 +179,7 @@ Requires-Dist: snowflake-connector-python==3.14.0
|
|
179
179
|
Requires-Dist: snowflake-sqlalchemy==1.6.1
|
180
180
|
Requires-Dist: sortedcontainers==2.4.0
|
181
181
|
Requires-Dist: sqlalchemy-bigquery==1.12.1
|
182
|
-
Requires-Dist: sqlalchemy-cratedb==0.
|
182
|
+
Requires-Dist: sqlalchemy-cratedb==0.41.0
|
183
183
|
Requires-Dist: sqlalchemy-hana==2.0.0
|
184
184
|
Requires-Dist: sqlalchemy-redshift==0.8.14
|
185
185
|
Requires-Dist: sqlalchemy-spanner==1.11.0
|
@@ -202,7 +202,7 @@ Requires-Dist: tzdata==2025.1
|
|
202
202
|
Requires-Dist: tzlocal==5.3
|
203
203
|
Requires-Dist: uritemplate==4.1.1
|
204
204
|
Requires-Dist: urllib3==2.3.0
|
205
|
-
Requires-Dist: verlib2==0.
|
205
|
+
Requires-Dist: verlib2==0.2.0
|
206
206
|
Requires-Dist: wrapt==1.17.2
|
207
207
|
Requires-Dist: yarl==1.18.3
|
208
208
|
Requires-Dist: zeep==4.3.1
|
@@ -0,0 +1 @@
|
|
1
|
+
version = "v0.13.68"
|
@@ -90,7 +90,7 @@ class BigQueryDestination:
|
|
90
90
|
|
91
91
|
return dlt.destinations.bigquery(
|
92
92
|
credentials=credentials, # type: ignore
|
93
|
-
location=location,
|
93
|
+
location=location, # type: ignore
|
94
94
|
project_id=project_id,
|
95
95
|
**kwargs,
|
96
96
|
)
|
@@ -398,7 +398,7 @@ class AthenaDestination:
|
|
398
398
|
|
399
399
|
return dlt.destinations.athena(
|
400
400
|
query_result_bucket=query_result_path,
|
401
|
-
athena_work_group=source_params.get("workgroup", [None])[0],
|
401
|
+
athena_work_group=source_params.get("workgroup", [None])[0], # type: ignore
|
402
402
|
credentials=AwsCredentials(
|
403
403
|
aws_access_key_id=access_key_id, # type: ignore
|
404
404
|
aws_secret_access_key=secret_access_key, # type: ignore
|
@@ -3,7 +3,7 @@ from typing import Any, Dict, Iterable, Iterator
|
|
3
3
|
import dlt
|
4
4
|
import pendulum
|
5
5
|
|
6
|
-
from .helpers import
|
6
|
+
from .helpers import _normalize_issue, _normalize_team, _paginate
|
7
7
|
|
8
8
|
ISSUES_QUERY = """
|
9
9
|
query Issues($cursor: String) {
|
@@ -143,13 +143,15 @@ def linear_source(
|
|
143
143
|
yield item
|
144
144
|
|
145
145
|
@dlt.resource(name="teams", primary_key="id", write_disposition="merge")
|
146
|
-
def teams(
|
146
|
+
def teams(
|
147
|
+
updated_at: dlt.sources.incremental[str] = dlt.sources.incremental(
|
147
148
|
"updatedAt",
|
148
149
|
initial_value=start_date.isoformat(),
|
149
150
|
end_value=end_date.isoformat() if end_date else None,
|
150
151
|
range_start="closed",
|
151
152
|
range_end="closed",
|
152
|
-
),
|
153
|
+
),
|
154
|
+
) -> Iterator[Dict[str, Any]]:
|
153
155
|
print(start_date)
|
154
156
|
if updated_at.last_value:
|
155
157
|
current_start_date = pendulum.parse(updated_at.last_value)
|
@@ -1,10 +1,10 @@
|
|
1
|
-
import json
|
2
1
|
from typing import Any, Dict, Iterator, Optional
|
3
2
|
|
4
3
|
import requests
|
5
4
|
|
6
5
|
LINEAR_GRAPHQL_ENDPOINT = "https://api.linear.app/graphql"
|
7
6
|
|
7
|
+
|
8
8
|
def _graphql(
|
9
9
|
api_key: str, query: str, variables: Optional[Dict[str, Any]] = None
|
10
10
|
) -> Dict[str, Any]:
|
@@ -20,6 +20,7 @@ def _graphql(
|
|
20
20
|
raise ValueError(str(payload["errors"]))
|
21
21
|
return payload["data"]
|
22
22
|
|
23
|
+
|
23
24
|
def _paginate(api_key: str, query: str, root: str) -> Iterator[Dict[str, Any]]:
|
24
25
|
cursor: Optional[str] = None
|
25
26
|
while True:
|
@@ -30,6 +31,7 @@ def _paginate(api_key: str, query: str, root: str) -> Iterator[Dict[str, Any]]:
|
|
30
31
|
break
|
31
32
|
cursor = data["pageInfo"]["endCursor"]
|
32
33
|
|
34
|
+
|
33
35
|
def _normalize_issue(item: Dict[str, Any]) -> Dict[str, Any]:
|
34
36
|
field_mapping = {
|
35
37
|
"assignee": "assignee_id",
|
@@ -45,16 +47,26 @@ def _normalize_issue(item: Dict[str, Any]) -> Dict[str, Any]:
|
|
45
47
|
else:
|
46
48
|
item[value] = None
|
47
49
|
del item[key]
|
48
|
-
json_fields = [
|
50
|
+
json_fields = [
|
51
|
+
"comments",
|
52
|
+
"subscribers",
|
53
|
+
"attachments",
|
54
|
+
"labels",
|
55
|
+
"subtasks",
|
56
|
+
"projects",
|
57
|
+
"memberships",
|
58
|
+
"members",
|
59
|
+
]
|
49
60
|
for field in json_fields:
|
50
61
|
if item.get(field):
|
51
62
|
item[f"{field}"] = item[field].get("nodes", [])
|
52
|
-
|
63
|
+
|
53
64
|
return item
|
54
65
|
|
66
|
+
|
55
67
|
def _normalize_team(item: Dict[str, Any]) -> Dict[str, Any]:
|
56
68
|
json_fields = ["memberships", "members", "projects"]
|
57
69
|
for field in json_fields:
|
58
70
|
if item.get(field):
|
59
71
|
item[f"{field}"] = item[field].get("nodes", [])
|
60
|
-
return item
|
72
|
+
return item
|
@@ -76,6 +76,27 @@ class SqlSource:
|
|
76
76
|
if uri.startswith("mysql://"):
|
77
77
|
uri = uri.replace("mysql://", "mysql+pymysql://")
|
78
78
|
|
79
|
+
# Process Snowflake private key authentication
|
80
|
+
if uri.startswith("snowflake://"):
|
81
|
+
parsed_uri = urlparse(uri)
|
82
|
+
query_params = parse_qs(parsed_uri.query)
|
83
|
+
|
84
|
+
if "private_key" in query_params:
|
85
|
+
from dlt.common.libs.cryptography import decode_private_key
|
86
|
+
|
87
|
+
private_key = query_params["private_key"][0]
|
88
|
+
passphrase = query_params.get("private_key_passphrase", [None])[0]
|
89
|
+
decoded_key = decode_private_key(private_key, passphrase)
|
90
|
+
|
91
|
+
query_params["private_key"] = [base64.b64encode(decoded_key).decode()]
|
92
|
+
if "private_key_passphrase" in query_params:
|
93
|
+
del query_params["private_key_passphrase"]
|
94
|
+
|
95
|
+
# Rebuild URI
|
96
|
+
uri = parsed_uri._replace(
|
97
|
+
query=urlencode(query_params, doseq=True)
|
98
|
+
).geturl()
|
99
|
+
|
79
100
|
# clickhouse://<username>:<password>@<host>:<port>?secure=<secure>
|
80
101
|
if uri.startswith("clickhouse://"):
|
81
102
|
parsed_uri = urlparse(uri)
|
@@ -139,7 +160,6 @@ class SqlSource:
|
|
139
160
|
return engine.execution_options(read_only=True)
|
140
161
|
|
141
162
|
engine_adapter_callback = eng_callback
|
142
|
-
|
143
163
|
from dlt.common.libs.sql_alchemy import (
|
144
164
|
Engine,
|
145
165
|
MetaData,
|
@@ -42,14 +42,14 @@ def zoom_source(
|
|
42
42
|
end_dt = pendulum.now("UTC")
|
43
43
|
else:
|
44
44
|
end_dt = pendulum.parse(datetime.end_value)
|
45
|
-
|
45
|
+
|
46
46
|
base_params: Dict[str, Any] = {
|
47
47
|
"type": "scheduled",
|
48
48
|
"page_size": 300,
|
49
49
|
"from": start_dt.to_date_string(),
|
50
50
|
"to": end_dt.to_date_string(),
|
51
51
|
}
|
52
|
-
|
52
|
+
|
53
53
|
for user in client.get_users():
|
54
54
|
user_id = user["id"]
|
55
55
|
yield from client.get_meetings(user_id, base_params)
|
@@ -62,7 +62,7 @@ class ZoomClient:
|
|
62
62
|
break
|
63
63
|
params["next_page_token"] = token
|
64
64
|
|
65
|
-
#https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods/#operation/meetings
|
65
|
+
# https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods/#operation/meetings
|
66
66
|
def get_meetings(
|
67
67
|
self, user_id: str, params: Dict[str, Any]
|
68
68
|
) -> Iterator[Dict[str, Any]]:
|
@@ -2,7 +2,7 @@ asana==3.2.3
|
|
2
2
|
confluent-kafka==2.8.0
|
3
3
|
databricks-sql-connector==2.9.3
|
4
4
|
dataclasses-json==0.6.7
|
5
|
-
dlt==1.
|
5
|
+
dlt==1.11.0
|
6
6
|
dlt-cratedb>=0.0.1
|
7
7
|
duckdb_engine==0.17.0
|
8
8
|
duckdb==1.2.1
|
@@ -25,7 +25,7 @@ rich==13.9.4
|
|
25
25
|
rudder-sdk-python==2.1.4
|
26
26
|
snowflake-sqlalchemy==1.6.1
|
27
27
|
sqlalchemy-bigquery==1.12.1
|
28
|
-
sqlalchemy-cratedb==0.
|
28
|
+
sqlalchemy-cratedb==0.41.0
|
29
29
|
sqlalchemy-hana==2.0.0
|
30
30
|
sqlalchemy-redshift==0.8.14
|
31
31
|
SQLAlchemy==1.4.52
|
@@ -97,7 +97,7 @@ decorator==5.2.1
|
|
97
97
|
# via gcsfs
|
98
98
|
deprecation==2.1.0
|
99
99
|
# via rudder-sdk-python
|
100
|
-
dlt==1.
|
100
|
+
dlt==1.11.0
|
101
101
|
# via
|
102
102
|
# -r requirements.in
|
103
103
|
# dlt-cratedb
|
@@ -553,7 +553,7 @@ sqlalchemy==1.4.52
|
|
553
553
|
# sqlalchemy-spanner
|
554
554
|
sqlalchemy-bigquery==1.12.1
|
555
555
|
# via -r requirements.in
|
556
|
-
sqlalchemy-cratedb==0.
|
556
|
+
sqlalchemy-cratedb==0.41.0
|
557
557
|
# via -r requirements.in
|
558
558
|
sqlalchemy-hana==2.0.0
|
559
559
|
# via -r requirements.in
|
@@ -626,7 +626,7 @@ urllib3==2.3.0
|
|
626
626
|
# pyairtable
|
627
627
|
# requests
|
628
628
|
# types-requests
|
629
|
-
verlib2==0.
|
629
|
+
verlib2==0.2.0
|
630
630
|
# via
|
631
631
|
# crate
|
632
632
|
# sqlalchemy-cratedb
|
@@ -97,7 +97,7 @@ decorator==5.2.1
|
|
97
97
|
# via gcsfs
|
98
98
|
deprecation==2.1.0
|
99
99
|
# via rudder-sdk-python
|
100
|
-
dlt==1.
|
100
|
+
dlt==1.11.0
|
101
101
|
# via
|
102
102
|
# -r requirements.in
|
103
103
|
# dlt-cratedb
|
@@ -546,7 +546,7 @@ sqlalchemy==1.4.52
|
|
546
546
|
# sqlalchemy-spanner
|
547
547
|
sqlalchemy-bigquery==1.12.1
|
548
548
|
# via -r requirements.in
|
549
|
-
sqlalchemy-cratedb==0.
|
549
|
+
sqlalchemy-cratedb==0.41.0
|
550
550
|
# via -r requirements.in
|
551
551
|
sqlalchemy-hana==2.0.0
|
552
552
|
# via -r requirements.in
|
@@ -622,7 +622,7 @@ urllib3==2.5.0
|
|
622
622
|
# pyairtable
|
623
623
|
# requests
|
624
624
|
# types-requests
|
625
|
-
verlib2==0.
|
625
|
+
verlib2==0.2.0
|
626
626
|
# via
|
627
627
|
# crate
|
628
628
|
# sqlalchemy-cratedb
|
@@ -1 +0,0 @@
|
|
1
|
-
version = "v0.13.66"
|
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
|