castor-extractor 0.19.6__tar.gz → 0.19.8__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 castor-extractor might be problematic. Click here for more details.
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/CHANGELOG.md +10 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/PKG-INFO +13 -3
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/knowledge/notion/client/client.py +3 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/knowledge/notion/client/pagination.py +5 -3
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/quality/soda/client/client.py +15 -5
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/quality/soda/client/credentials.py +3 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/quality/soda/client/pagination.py +1 -2
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/domo/client/client.py +3 -1
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/metabase/client/api/client.py +13 -2
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/snowflake/queries/table.sql +2 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/pyproject.toml +5 -5
- castor_extractor-0.19.6/castor_extractor/warehouse/synapse/__init__.py +0 -1
- castor_extractor-0.19.6/castor_extractor/warehouse/synapse/extract.py +0 -21
- castor_extractor-0.19.6/castor_extractor/warehouse/synapse/queries/.sqlfluff +0 -2
- castor_extractor-0.19.6/castor_extractor/warehouse/synapse/queries/database.sql +0 -6
- castor_extractor-0.19.6/castor_extractor/warehouse/synapse/queries/query.sql +0 -33
- castor_extractor-0.19.6/castor_extractor/warehouse/synapse/queries/schema.sql +0 -7
- castor_extractor-0.19.6/castor_extractor/warehouse/synapse/queries/table.sql +0 -36
- castor_extractor-0.19.6/castor_extractor/warehouse/synapse/queries/user.sql +0 -4
- castor_extractor-0.19.6/castor_extractor/warehouse/synapse/queries/view_ddl.sql +0 -8
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/Dockerfile +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/DockerfileUsage.md +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/LICENCE +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/README.md +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_bigquery.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_databricks.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_domo.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_looker.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_metabase_api.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_metabase_db.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_mode.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_mysql.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_notion.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_postgres.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_powerbi.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_qlik.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_redshift.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_salesforce.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_salesforce_reporting.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_sigma.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_snowflake.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_sqlserver.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_tableau.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/file_check.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/upload.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/file_checker/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/file_checker/column.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/file_checker/column_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/file_checker/constants.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/file_checker/enums.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/file_checker/file.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/file_checker/file_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/file_checker/file_test_users.csv +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/file_checker/file_test_users_valid.csv +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/file_checker/templates/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/file_checker/templates/generic_warehouse.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/knowledge/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/knowledge/notion/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/knowledge/notion/assets.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/knowledge/notion/client/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/knowledge/notion/client/client_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/knowledge/notion/client/constants.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/knowledge/notion/client/credentials.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/knowledge/notion/client/endpoints.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/knowledge/notion/extract.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/logger.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/quality/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/quality/soda/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/quality/soda/assets.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/quality/soda/client/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/quality/soda/client/endpoints.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/types.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/uploader/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/uploader/constant.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/uploader/env.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/uploader/env_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/uploader/upload.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/uploader/upload_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/uploader/utils.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/argument_parser.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/argument_parser_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/client/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/client/abstract.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/client/api/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/client/api/auth.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/client/api/auth_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/client/api/client.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/client/api/client_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/client/api/pagination.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/client/api/pagination_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/client/api/safe_request.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/client/api/safe_request_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/client/api/utils.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/client/api/utils_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/client/postgres.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/client/query.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/client/uri.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/client/uri_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/collection.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/collection_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/constants.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/dbt/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/dbt/assets.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/dbt/client.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/dbt/client_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/dbt/credentials.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/deprecate.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/env.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/files.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/files_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/formatter.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/formatter_test.csv +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/formatter_test.json +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/formatter_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/json_stream_write.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/load.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/object.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/object_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/pager/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/pager/pager.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/pager/pager_on_id.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/pager/pager_on_id_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/pager/pager_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/retry.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/retry_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/safe.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/safe_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/salesforce/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/salesforce/client.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/salesforce/client_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/salesforce/constants.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/salesforce/credentials.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/salesforce/credentials_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/salesforce/pagination.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/store.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/string.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/string_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/time.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/time_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/type.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/validation.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/validation_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/write.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/domo/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/domo/assets.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/domo/client/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/domo/client/credentials.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/domo/client/endpoints.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/domo/client/pagination.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/domo/client/pagination_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/domo/extract.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/looker/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/looker/api/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/looker/api/client.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/looker/api/client_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/looker/api/constants.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/looker/api/credentials.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/looker/api/extraction_parameters.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/looker/api/sdk.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/looker/api/sdk_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/looker/api/utils.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/looker/assets.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/looker/constant.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/looker/constants.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/looker/extract.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/looker/fields.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/looker/fields_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/looker/multithreading.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/metabase/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/metabase/assets.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/metabase/client/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/metabase/client/api/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/metabase/client/api/client_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/metabase/client/api/credentials.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/metabase/client/db/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/metabase/client/db/client.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/metabase/client/db/credentials.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/metabase/client/db/queries/.sqlfluff +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/metabase/client/db/queries/base_url.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/metabase/client/db/queries/card.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/metabase/client/db/queries/collection.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/metabase/client/db/queries/dashboard.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/metabase/client/db/queries/dashboard_cards.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/metabase/client/db/queries/database.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/metabase/client/db/queries/table.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/metabase/client/db/queries/user.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/metabase/client/decryption.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/metabase/client/decryption_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/metabase/client/shared.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/metabase/errors.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/metabase/extract.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/metabase/types.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/mode/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/mode/assets.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/mode/client/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/mode/client/client.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/mode/client/client_test.json +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/mode/client/client_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/mode/client/constants.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/mode/client/credentials.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/mode/errors.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/mode/extract.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/powerbi/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/powerbi/assets.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/powerbi/client/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/powerbi/client/constants.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/powerbi/client/credentials.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/powerbi/client/credentials_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/powerbi/client/rest.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/powerbi/client/rest_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/powerbi/client/utils.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/powerbi/client/utils_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/powerbi/extract.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/qlik/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/qlik/assets.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/qlik/client/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/qlik/client/constants.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/qlik/client/engine/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/qlik/client/engine/client.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/qlik/client/engine/constants.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/qlik/client/engine/credentials.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/qlik/client/engine/error.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/qlik/client/engine/error_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/qlik/client/engine/json_rpc.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/qlik/client/engine/json_rpc_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/qlik/client/engine/websocket.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/qlik/client/master.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/qlik/client/rest.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/qlik/client/rest_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/qlik/extract.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/salesforce_reporting/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/salesforce_reporting/assets.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/salesforce_reporting/client/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/salesforce_reporting/client/rest.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/salesforce_reporting/client/soql.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/salesforce_reporting/extract.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/sigma/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/sigma/assets.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/sigma/client/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/sigma/client/client.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/sigma/client/credentials.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/sigma/client/endpoints.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/sigma/client/pagination.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/sigma/extract.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/assets.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/client/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/client/client.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/client/client_utils.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/client/credentials.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/client/project.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/client/safe_mode.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/constants.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/errors.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/extract.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/gql_fields.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/tests/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/tests/unit/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/tests/unit/assets/graphql/metadata/metadata_1_get.json +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/tests/unit/assets/graphql/metadata/metadata_2_get.json +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/tests/unit/assets/rest_api/auth.xml +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/tests/unit/assets/rest_api/project_get.xml +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/tests/unit/assets/rest_api/user_get.xml +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/tests/unit/assets/rest_api/view_get_usage.xml +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/tests/unit/assets/rest_api/workbook_get.xml +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/tests/unit/graphql/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/tests/unit/graphql/paginated_object_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/tests/unit/rest_api/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/tests/unit/rest_api/auth_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/tests/unit/rest_api/credentials_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/tests/unit/rest_api/projects_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/tests/unit/rest_api/usages_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/tests/unit/rest_api/users_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/tests/unit/rest_api/workbooks_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/tests/unit/utils/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/tests/unit/utils/env_key.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/tsc_fields.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/types.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau/usage.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau_revamp/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau_revamp/assets.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau_revamp/client/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau_revamp/client/client.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau_revamp/client/client_metadata_api.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau_revamp/client/client_rest_api.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau_revamp/client/client_tsc.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau_revamp/client/credentials.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau_revamp/client/errors.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau_revamp/client/gql_queries.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau_revamp/client/rest_fields.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau_revamp/constants.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/visualization/tableau_revamp/extract.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/abstract/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/abstract/asset.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/abstract/asset_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/abstract/extract.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/abstract/query.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/abstract/time_filter.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/abstract/time_filter_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/bigquery/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/bigquery/client.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/bigquery/client_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/bigquery/credentials.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/bigquery/extract.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/bigquery/queries/.sqlfluff +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/bigquery/queries/column.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/bigquery/queries/cte/sharded.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/bigquery/queries/database.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/bigquery/queries/query.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/bigquery/queries/schema.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/bigquery/queries/table.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/bigquery/queries/table_with_tags.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/bigquery/queries/user.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/bigquery/queries/view_ddl.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/bigquery/query.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/bigquery/types.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/databricks/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/databricks/api_client.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/databricks/api_client_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/databricks/client.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/databricks/client_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/databricks/credentials.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/databricks/endpoints.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/databricks/extract.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/databricks/format.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/databricks/format_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/databricks/lineage.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/databricks/lineage_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/databricks/pagination.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/databricks/sql_client.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/databricks/test_constants.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/databricks/types.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/databricks/utils.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/databricks/utils_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/mysql/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/mysql/client.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/mysql/client_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/mysql/extract.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/mysql/queries/.sqlfluff +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/mysql/queries/column.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/mysql/queries/database.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/mysql/queries/query.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/mysql/queries/schema.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/mysql/queries/table.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/mysql/queries/user.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/mysql/queries/view_ddl.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/mysql/query.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/postgres/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/postgres/extract.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/postgres/queries/.sqlfluff +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/postgres/queries/column.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/postgres/queries/database.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/postgres/queries/group.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/postgres/queries/schema.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/postgres/queries/table.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/postgres/queries/user.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/postgres/query.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/redshift/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/redshift/client.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/redshift/client_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/redshift/extract.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/redshift/queries/.sqlfluff +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/redshift/queries/column.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/redshift/queries/database.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/redshift/queries/group.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/redshift/queries/query.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/redshift/queries/schema.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/redshift/queries/table.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/redshift/queries/table_freshness.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/redshift/queries/user.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/redshift/queries/view_ddl.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/redshift/query.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/salesforce/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/salesforce/client.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/salesforce/constants.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/salesforce/extract.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/salesforce/format.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/salesforce/format_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/salesforce/pagination.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/salesforce/soql.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/snowflake/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/snowflake/client.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/snowflake/client_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/snowflake/credentials.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/snowflake/credentials_test.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/snowflake/extract.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/snowflake/queries/.sqlfluff +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/snowflake/queries/column.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/snowflake/queries/column_lineage.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/snowflake/queries/database.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/snowflake/queries/function.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/snowflake/queries/grant_to_role.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/snowflake/queries/grant_to_user.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/snowflake/queries/query.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/snowflake/queries/role.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/snowflake/queries/schema.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/snowflake/queries/user.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/snowflake/queries/view_ddl.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/snowflake/query.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/sqlserver/__init__.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/sqlserver/client.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/sqlserver/extract.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/sqlserver/queries/.sqlfluff +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/sqlserver/queries/column.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/sqlserver/queries/database.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/sqlserver/queries/schema.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/sqlserver/queries/table.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/sqlserver/queries/user.sql +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/sqlserver/query.py +0 -0
- {castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/warehouse/synapse/queries/column.sql +0 -0
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
|
|
2
2
|
# Changelog
|
|
3
3
|
|
|
4
|
+
## 0.19.8 - 2024-09-18
|
|
5
|
+
|
|
6
|
+
* Metabase: Handle duplicate dashboards
|
|
7
|
+
* Snowflake: Exclude unnamed tables from extraction
|
|
8
|
+
* Bump dependencies: cryptography, setuptools
|
|
9
|
+
|
|
10
|
+
## 0.19.7 - 2024-09-05
|
|
11
|
+
|
|
12
|
+
* Metabase: Handle compatibility with older version
|
|
13
|
+
|
|
4
14
|
## 0.19.6 - 2024-09-03
|
|
5
15
|
|
|
6
16
|
* Metabase: Adding error handler on API call
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: castor-extractor
|
|
3
|
-
Version: 0.19.
|
|
3
|
+
Version: 0.19.8
|
|
4
4
|
Summary: Extract your metadata assets.
|
|
5
5
|
Home-page: https://www.castordoc.com/
|
|
6
6
|
License: EULA
|
|
@@ -29,7 +29,7 @@ Provides-Extra: redshift
|
|
|
29
29
|
Provides-Extra: snowflake
|
|
30
30
|
Provides-Extra: sqlserver
|
|
31
31
|
Provides-Extra: tableau
|
|
32
|
-
Requires-Dist: cryptography (>=
|
|
32
|
+
Requires-Dist: cryptography (>=43.0.0,<44.0.0) ; extra == "snowflake"
|
|
33
33
|
Requires-Dist: databricks-sql-connector (>=3.2.0,<4.0.0) ; extra == "databricks" or extra == "all"
|
|
34
34
|
Requires-Dist: google-api-core (>=2.1.1,<3.0.0)
|
|
35
35
|
Requires-Dist: google-auth (>=2,<3)
|
|
@@ -52,7 +52,7 @@ Requires-Dist: pymssql (>=2.2.11,<3.0.0) ; extra == "sqlserver" or extra == "all
|
|
|
52
52
|
Requires-Dist: pymysql[rsa] (>=1.1.0,<2.0.0) ; extra == "mysql" or extra == "all"
|
|
53
53
|
Requires-Dist: python-dateutil (>=2.0.0,<=3.0.0)
|
|
54
54
|
Requires-Dist: requests (>=2.0.0,<3.0.0)
|
|
55
|
-
Requires-Dist: setuptools (>=
|
|
55
|
+
Requires-Dist: setuptools (>=74,<75)
|
|
56
56
|
Requires-Dist: snowflake-connector-python (>=3.4.0,<4.0.0) ; extra == "snowflake" or extra == "all"
|
|
57
57
|
Requires-Dist: snowflake-sqlalchemy (!=1.2.5,<2.0.0) ; extra == "snowflake" or extra == "all"
|
|
58
58
|
Requires-Dist: sqlalchemy (>=1.4,<1.5)
|
|
@@ -208,6 +208,16 @@ For any questions or bug report, contact us at [support@castordoc.com](mailto:su
|
|
|
208
208
|
|
|
209
209
|
# Changelog
|
|
210
210
|
|
|
211
|
+
## 0.19.8 - 2024-09-18
|
|
212
|
+
|
|
213
|
+
* Metabase: Handle duplicate dashboards
|
|
214
|
+
* Snowflake: Exclude unnamed tables from extraction
|
|
215
|
+
* Bump dependencies: cryptography, setuptools
|
|
216
|
+
|
|
217
|
+
## 0.19.7 - 2024-09-05
|
|
218
|
+
|
|
219
|
+
* Metabase: Handle compatibility with older version
|
|
220
|
+
|
|
211
221
|
## 0.19.6 - 2024-09-03
|
|
212
222
|
|
|
213
223
|
* Metabase: Adding error handler on API call
|
|
@@ -20,6 +20,8 @@ NOTION_BASE_HEADERS = {
|
|
|
20
20
|
"User-Agent": CASTOR_NOTION_USER_AGENT,
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
NOTION_DEFAULT_TIMEOUT_S = 180
|
|
24
|
+
|
|
23
25
|
|
|
24
26
|
def _search_filter(asset: str) -> Dict[str, Dict[str, str]]:
|
|
25
27
|
return {"filter": {"value": asset, "property": "object"}}
|
|
@@ -45,6 +47,7 @@ class NotionClient(APIClient):
|
|
|
45
47
|
auth=auth,
|
|
46
48
|
headers=NOTION_BASE_HEADERS,
|
|
47
49
|
safe_mode=safe_mode or NOTION_SAFE_MODE,
|
|
50
|
+
timeout=NOTION_DEFAULT_TIMEOUT_S,
|
|
48
51
|
)
|
|
49
52
|
|
|
50
53
|
def users(self) -> Iterator[dict]:
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
from typing import Optional
|
|
2
2
|
|
|
3
|
+
from pydantic import Field
|
|
4
|
+
|
|
3
5
|
from ....utils import PaginationModel
|
|
4
6
|
|
|
5
7
|
|
|
6
8
|
class NotionPagination(PaginationModel):
|
|
7
9
|
"""Class to handle paginated results"""
|
|
8
10
|
|
|
9
|
-
results: list
|
|
10
|
-
next_cursor: Optional[str]
|
|
11
|
-
has_more: bool
|
|
11
|
+
results: list = Field(default_factory=list)
|
|
12
|
+
next_cursor: Optional[str] = None
|
|
13
|
+
has_more: bool = False
|
|
12
14
|
|
|
13
15
|
def is_last(self) -> bool:
|
|
14
16
|
return not self.has_more
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/quality/soda/client/client.py
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from functools import partial
|
|
2
|
-
from typing import Iterator
|
|
2
|
+
from typing import Callable, Iterator
|
|
3
3
|
|
|
4
4
|
from ....utils import (
|
|
5
5
|
APIClient,
|
|
@@ -11,10 +11,10 @@ from .credentials import SodaCredentials
|
|
|
11
11
|
from .endpoints import SodaEndpointFactory
|
|
12
12
|
from .pagination import SodaCloudPagination
|
|
13
13
|
|
|
14
|
-
_CLOUD_API = "https://cloud.soda.io/api/v1/"
|
|
15
14
|
_REQUESTS_PER_MINUTE = 10
|
|
16
15
|
_SECONDS_PER_MINUTE = 60
|
|
17
16
|
_RATE_LIMIT_MS = (_SECONDS_PER_MINUTE // _REQUESTS_PER_MINUTE) + 1
|
|
17
|
+
_CLOUD_PAGE_SIZE = 100
|
|
18
18
|
|
|
19
19
|
HEADERS = {"Content-Type": "application/json"}
|
|
20
20
|
|
|
@@ -24,16 +24,26 @@ class SodaClient(APIClient):
|
|
|
24
24
|
cloud_auth = BasicAuth(
|
|
25
25
|
username=credentials.api_key, password=credentials.secret
|
|
26
26
|
)
|
|
27
|
-
super().__init__(
|
|
27
|
+
super().__init__(
|
|
28
|
+
host=credentials.host, auth=cloud_auth, headers=HEADERS
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
@property
|
|
32
|
+
def _base_request(self) -> Callable:
|
|
33
|
+
return partial(self._get, params={"size": _CLOUD_PAGE_SIZE})
|
|
28
34
|
|
|
29
35
|
def datasets(self) -> Iterator[dict]:
|
|
30
|
-
request = partial(
|
|
36
|
+
request = partial(
|
|
37
|
+
self._base_request, endpoint=SodaEndpointFactory.datasets()
|
|
38
|
+
)
|
|
31
39
|
yield from fetch_all_pages(
|
|
32
40
|
request, SodaCloudPagination, rate_limit=_RATE_LIMIT_MS
|
|
33
41
|
)
|
|
34
42
|
|
|
35
43
|
def checks(self) -> Iterator[dict]:
|
|
36
|
-
request = partial(
|
|
44
|
+
request = partial(
|
|
45
|
+
self._base_request, endpoint=SodaEndpointFactory.checks()
|
|
46
|
+
)
|
|
37
47
|
yield from fetch_all_pages(
|
|
38
48
|
request, SodaCloudPagination, rate_limit=_RATE_LIMIT_MS
|
|
39
49
|
)
|
|
@@ -3,6 +3,8 @@ from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
|
3
3
|
|
|
4
4
|
SODA_ENV_PREFIX = "CASTOR_SODA_"
|
|
5
5
|
|
|
6
|
+
_CLOUD_API = "https://cloud.soda.io/api/v1/"
|
|
7
|
+
|
|
6
8
|
|
|
7
9
|
class SodaCredentials(BaseSettings):
|
|
8
10
|
"""Class to handle Soda rest API permissions"""
|
|
@@ -15,3 +17,4 @@ class SodaCredentials(BaseSettings):
|
|
|
15
17
|
|
|
16
18
|
api_key: str = Field(repr=False)
|
|
17
19
|
secret: str = Field(repr=False)
|
|
20
|
+
host: str = Field(default=_CLOUD_API)
|
|
@@ -2,7 +2,6 @@ from typing import List
|
|
|
2
2
|
|
|
3
3
|
from ....utils import PaginationModel
|
|
4
4
|
|
|
5
|
-
_CLOUD_PAGE_SIZE = 100
|
|
6
5
|
_CLOUD_FIRST_PAGE = 0
|
|
7
6
|
|
|
8
7
|
|
|
@@ -19,7 +18,7 @@ class SodaCloudPagination(PaginationModel):
|
|
|
19
18
|
if self.current_page_payload
|
|
20
19
|
else _CLOUD_FIRST_PAGE
|
|
21
20
|
)
|
|
22
|
-
return {"page": current_page + 1
|
|
21
|
+
return {"page": current_page + 1}
|
|
23
22
|
|
|
24
23
|
def page_results(self) -> list:
|
|
25
24
|
return self.content
|
|
@@ -45,6 +45,8 @@ _RETRY_EXCEPTIONS = [
|
|
|
45
45
|
_RETRY_COUNT = 2
|
|
46
46
|
_RETRY_BASE_MS = 10 * 60 * 1000 # 10 minutes
|
|
47
47
|
|
|
48
|
+
_PARENT_FOLDER = "/Dashboards"
|
|
49
|
+
|
|
48
50
|
logger = logging.getLogger(__name__)
|
|
49
51
|
|
|
50
52
|
|
|
@@ -177,7 +179,7 @@ class DomoClient:
|
|
|
177
179
|
def _process_pages(
|
|
178
180
|
self,
|
|
179
181
|
page_tree: List[dict],
|
|
180
|
-
parent_path: str =
|
|
182
|
+
parent_path: str = _PARENT_FOLDER,
|
|
181
183
|
) -> Iterator[dict]:
|
|
182
184
|
"""Recursively fetch pages while building the folder architecture"""
|
|
183
185
|
if not page_tree:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
from http import HTTPStatus
|
|
3
|
-
from typing import Any, Dict, Iterator, List, Optional, cast
|
|
3
|
+
from typing import Any, Dict, Iterator, List, Optional, Set, cast
|
|
4
4
|
|
|
5
5
|
import requests
|
|
6
6
|
from requests import HTTPError
|
|
@@ -134,11 +134,22 @@ class ApiClient:
|
|
|
134
134
|
collection = self._call(f"collection/{_id}/items?models=dashboard")
|
|
135
135
|
if not collection:
|
|
136
136
|
continue
|
|
137
|
+
|
|
138
|
+
seen_dashboard_ids: Set[int] = set()
|
|
139
|
+
|
|
137
140
|
for dashboard in cast(SerializedAsset, collection):
|
|
141
|
+
if dashboard.get("model") != "dashboard":
|
|
142
|
+
# This is to maintain compatibility with older versions
|
|
143
|
+
# where ?models=dashboard has no effects
|
|
144
|
+
continue
|
|
145
|
+
|
|
138
146
|
dashboard_id = dashboard.get("id")
|
|
139
147
|
if not dashboard_id:
|
|
140
148
|
continue
|
|
141
|
-
|
|
149
|
+
|
|
150
|
+
if dashboard_id not in seen_dashboard_ids:
|
|
151
|
+
seen_dashboard_ids.add(dashboard_id)
|
|
152
|
+
yield cast(Dict, self._call(f"dashboard/{dashboard_id}"))
|
|
142
153
|
|
|
143
154
|
@staticmethod
|
|
144
155
|
def _collection_specifics(collections: SerializedAsset) -> SerializedAsset:
|
|
@@ -41,6 +41,8 @@ FROM snowflake.account_usage.tables AS t
|
|
|
41
41
|
JOIN snowflake.account_usage.schemata AS s ON s.schema_id = t.table_schema_id
|
|
42
42
|
JOIN tags_agg_tables ta ON t.table_id = ta.table_id
|
|
43
43
|
WHERE TRUE
|
|
44
|
+
AND t.table_name IS NOT NULL
|
|
45
|
+
AND t.table_name != ''
|
|
44
46
|
AND UPPER(t.table_catalog) NOT IN ('SNOWFLAKE', 'UTIL_DB')
|
|
45
47
|
AND (
|
|
46
48
|
t.deleted IS NULL
|
|
@@ -3,7 +3,7 @@ requires = ["setuptools>=61.2"]
|
|
|
3
3
|
|
|
4
4
|
[tool.poetry]
|
|
5
5
|
name = "castor-extractor"
|
|
6
|
-
version = "0.19.
|
|
6
|
+
version = "0.19.8"
|
|
7
7
|
description = "Extract your metadata assets."
|
|
8
8
|
authors = ["Castor <support@castordoc.com>"]
|
|
9
9
|
license = "EULA"
|
|
@@ -27,7 +27,7 @@ include = [
|
|
|
27
27
|
[tool.poetry.dependencies]
|
|
28
28
|
python = ">=3.8, <3.13"
|
|
29
29
|
|
|
30
|
-
cryptography = { version = "^
|
|
30
|
+
cryptography = { version = "^43.0.0", optional = true }
|
|
31
31
|
google-api-core = ">=2.1.1, <3.0.0"
|
|
32
32
|
google-auth = "^2"
|
|
33
33
|
google-cloud-core = ">=2.1.0, <3.0.0"
|
|
@@ -51,7 +51,7 @@ python-dateutil = ">=2.0.0, <=3.0.0"
|
|
|
51
51
|
requests = ">=2.0.0, <3.0.0"
|
|
52
52
|
snowflake-connector-python = { version = "^3.4.0", optional = true }
|
|
53
53
|
snowflake-sqlalchemy = { version = "!=1.2.5, <2.0.0", optional = true }
|
|
54
|
-
setuptools = "^
|
|
54
|
+
setuptools = "^74"
|
|
55
55
|
sqlalchemy = "~1.4"
|
|
56
56
|
sqlalchemy-bigquery = { version = ">=1.0.0, <= 2.0.0", optional = true, extras = [
|
|
57
57
|
"bqstorage",
|
|
@@ -108,10 +108,10 @@ all = [
|
|
|
108
108
|
pytest = "^8"
|
|
109
109
|
pytest-freezegun = "^0.4"
|
|
110
110
|
requests-mock = "^1.11"
|
|
111
|
-
ruff = "^0.
|
|
111
|
+
ruff = "^0.6.4"
|
|
112
112
|
|
|
113
113
|
[tool.poetry.group.dev.dependencies]
|
|
114
|
-
deptry = "^0.
|
|
114
|
+
deptry = "^0.20"
|
|
115
115
|
|
|
116
116
|
[tool.poetry.scripts]
|
|
117
117
|
castor-extract-bigquery = "castor_extractor.commands.extract_bigquery:main"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
from .extract import SYNAPSE_ASSETS
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import logging
|
|
2
|
-
|
|
3
|
-
from ..abstract import (
|
|
4
|
-
CATALOG_ASSETS,
|
|
5
|
-
EXTERNAL_LINEAGE_ASSETS,
|
|
6
|
-
QUERIES_ASSETS,
|
|
7
|
-
VIEWS_ASSETS,
|
|
8
|
-
SupportedAssets,
|
|
9
|
-
WarehouseAsset,
|
|
10
|
-
WarehouseAssetGroup,
|
|
11
|
-
)
|
|
12
|
-
|
|
13
|
-
logger = logging.getLogger(__name__)
|
|
14
|
-
|
|
15
|
-
SYNAPSE_ASSETS: SupportedAssets = {
|
|
16
|
-
WarehouseAssetGroup.CATALOG: CATALOG_ASSETS,
|
|
17
|
-
WarehouseAssetGroup.QUERY: QUERIES_ASSETS,
|
|
18
|
-
WarehouseAssetGroup.VIEW_DDL: VIEWS_ASSETS,
|
|
19
|
-
WarehouseAssetGroup.ROLE: (WarehouseAsset.USER,),
|
|
20
|
-
WarehouseAssetGroup.EXTERNAL_LINEAGE: EXTERNAL_LINEAGE_ASSETS,
|
|
21
|
-
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
WITH query_execution AS (
|
|
2
|
-
SELECT
|
|
3
|
-
plan_id,
|
|
4
|
-
CASE execution_type_desc
|
|
5
|
-
WHEN 'Aborted' THEN 1
|
|
6
|
-
WHEN 'Exception' THEN 1
|
|
7
|
-
ELSE 0
|
|
8
|
-
END AS aborted,
|
|
9
|
-
MIN(CAST(first_execution_time AS DATETIME)) AS start_time,
|
|
10
|
-
MAX(CAST(last_execution_time AS DATETIME)) AS end_time
|
|
11
|
-
FROM sys.query_store_runtime_stats
|
|
12
|
-
WHERE CAST(first_execution_time AS DATE) = CAST(DATEADD(day, -1, getdate()) AS DATE)
|
|
13
|
-
-- Filtering on hour will be needed when running that query out of notebooks
|
|
14
|
-
GROUP BY plan_id, execution_type_desc
|
|
15
|
-
)
|
|
16
|
-
|
|
17
|
-
SELECT
|
|
18
|
-
q.query_id,
|
|
19
|
-
qt.query_sql_text AS query_text,
|
|
20
|
-
DB_NAME() AS database_id,
|
|
21
|
-
DB_NAME() AS database_name,
|
|
22
|
-
'SYNAPSE' AS user_name,
|
|
23
|
-
qp.plan_id AS process_id,
|
|
24
|
-
qe.aborted AS aborted,
|
|
25
|
-
qe.start_time AS start_time,
|
|
26
|
-
qe.end_time AS end_time
|
|
27
|
-
FROM sys.query_store_query AS q
|
|
28
|
-
JOIN sys.query_store_query_text AS qt
|
|
29
|
-
ON q.query_text_id = qt.query_text_id
|
|
30
|
-
JOIN sys.query_store_plan AS qp
|
|
31
|
-
ON q.query_id = qp.query_id
|
|
32
|
-
JOIN query_execution AS qe
|
|
33
|
-
ON qp.plan_id = qe.plan_id
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
WITH users AS (
|
|
2
|
-
SELECT DISTINCT
|
|
3
|
-
uid,
|
|
4
|
-
name
|
|
5
|
-
FROM sys.sysusers
|
|
6
|
-
)
|
|
7
|
-
|
|
8
|
-
SELECT
|
|
9
|
-
DB_NAME() as database_id,
|
|
10
|
-
DB_NAME() AS database_name,
|
|
11
|
-
DB_NAME() + '.' + s.name AS schema_id,
|
|
12
|
-
s.name AS schema_name,
|
|
13
|
-
DB_NAME() + '.' + s.name + '.' + o.name AS table_id,
|
|
14
|
-
o.name AS table_name,
|
|
15
|
-
CASE UPPER(REPLACE(o.type, ' ', ''))
|
|
16
|
-
WHEN 'U' THEN 'TABLE'
|
|
17
|
-
WHEN 'V' THEN 'VIEW'
|
|
18
|
-
ELSE 'UNKNOWN'
|
|
19
|
-
END AS table_type,
|
|
20
|
-
-- Normally schema owner is table owner, but we can
|
|
21
|
-
-- change table owner with ALTER AUTHORIZATION command
|
|
22
|
-
-- in this case we have to look up for the owner
|
|
23
|
-
-- in sys.objects table
|
|
24
|
-
COALESCE(su.name, pu.name) AS table_owner,
|
|
25
|
-
COALESCE(su.uid, pu.uid) AS table_owner_id,
|
|
26
|
-
NULL AS comment
|
|
27
|
-
FROM sys.objects AS o
|
|
28
|
-
JOIN sys.schemas AS s
|
|
29
|
-
ON o.schema_id = s.schema_id
|
|
30
|
-
LEFT JOIN users AS pu
|
|
31
|
-
ON s.principal_id = pu.uid
|
|
32
|
-
LEFT JOIN users AS su
|
|
33
|
-
ON o.principal_id = su.uid
|
|
34
|
-
WHERE
|
|
35
|
-
-- SYNAPSE NOTATION: U for TABLE, V for VIEW
|
|
36
|
-
o.type IN ('U', 'V')
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_bigquery.py
RENAMED
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_databricks.py
RENAMED
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_domo.py
RENAMED
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_looker.py
RENAMED
|
File without changes
|
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_metabase_db.py
RENAMED
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_mode.py
RENAMED
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_mysql.py
RENAMED
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_notion.py
RENAMED
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_postgres.py
RENAMED
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_powerbi.py
RENAMED
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_qlik.py
RENAMED
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_redshift.py
RENAMED
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_salesforce.py
RENAMED
|
File without changes
|
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_sigma.py
RENAMED
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_snowflake.py
RENAMED
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_sqlserver.py
RENAMED
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/commands/extract_tableau.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/file_checker/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/file_checker/column_test.py
RENAMED
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/file_checker/constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/file_checker/file_test.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/knowledge/notion/__init__.py
RENAMED
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/knowledge/notion/assets.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/knowledge/notion/extract.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/quality/soda/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/quality/soda/client/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/uploader/upload_test.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/argument_parser.py
RENAMED
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/argument_parser_test.py
RENAMED
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/client/__init__.py
RENAMED
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/client/abstract.py
RENAMED
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/client/api/__init__.py
RENAMED
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/client/api/auth.py
RENAMED
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/client/api/auth_test.py
RENAMED
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/client/api/client.py
RENAMED
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/client/api/client_test.py
RENAMED
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/client/api/pagination.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/client/api/utils.py
RENAMED
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/client/api/utils_test.py
RENAMED
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/client/postgres.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/client/uri_test.py
RENAMED
|
File without changes
|
|
File without changes
|
{castor_extractor-0.19.6 → castor_extractor-0.19.8}/castor_extractor/utils/collection_test.py
RENAMED
|
File without changes
|