castor-extractor 0.3.5__tar.gz → 0.3.7__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.3.5 → castor_extractor-0.3.7}/CHANGELOG.md +8 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/PKG-INFO +1 -1
- castor_extractor-0.3.7/castor_extractor/commands/__init__.py +3 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/commands/extract_metabase_api.py +1 -1
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/commands/extract_metabase_db.py +1 -1
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/file_checker/file.py +1 -1
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/file_checker/file_test.py +1 -2
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/uploader/upload_test.py +1 -1
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/utils/__init__.py +1 -0
- castor_extractor-0.3.7/castor_extractor/utils/deprecate.py +27 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/utils/formatter_test.py +1 -1
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/utils/store.py +1 -1
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/utils/write.py +2 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/metabase/client/api/client.py +2 -2
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/metabase/client/api/credentials.py +5 -5
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/metabase/client/db/client.py +1 -1
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/metabase/client/db/credentials.py +5 -5
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/bigquery/client.py +3 -3
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/bigquery/extract.py +1 -1
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/snowflake/client.py +1 -1
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/pyproject.toml +1 -1
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/setup.py +1 -1
- castor_extractor-0.3.5/castor_extractor/warehouse/__init__.py +0 -1
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/LICENCE +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/README.md +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/__init__.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/commands/extract_bigquery.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/commands/extract_looker.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/commands/extract_mode.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/commands/extract_postgres.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/commands/extract_powerbi.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/commands/extract_qlik.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/commands/extract_redshift.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/commands/extract_snowflake.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/commands/extract_tableau.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/commands/file_check.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/commands/upload.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/file_checker/__init__.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/file_checker/column.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/file_checker/column_test.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/file_checker/constants.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/file_checker/enums.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/file_checker/file_test_users.csv +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/file_checker/file_test_users_valid.csv +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/file_checker/templates/__init__.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/file_checker/templates/generic_warehouse.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/logger.py +0 -0
- {castor_extractor-0.3.5/castor_extractor/commands → castor_extractor-0.3.7/castor_extractor/transformation}/__init__.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/transformation/dbt/__init__.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/transformation/dbt/assets.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/transformation/dbt/client/__init__.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/transformation/dbt/client/client.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/transformation/dbt/client/credentials.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/uploader/__init__.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/uploader/constant.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/uploader/env.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/uploader/env_test.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/uploader/upload.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/uploader/utils.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/utils/collection.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/utils/constants.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/utils/env.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/utils/files.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/utils/files_test.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/utils/formatter.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/utils/formatter_test.csv +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/utils/formatter_test.json +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/utils/load.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/utils/object.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/utils/object_test.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/utils/pager.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/utils/pager_test.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/utils/retry.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/utils/retry_test.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/utils/safe.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/utils/safe_test.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/utils/string.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/utils/string_test.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/utils/time.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/utils/type.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/utils/uri.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/utils/uri_test.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/utils/validation.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/utils/validation_test.py +0 -0
- {castor_extractor-0.3.5/castor_extractor/transformation → castor_extractor-0.3.7/castor_extractor/visualization}/__init__.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/looker/__init__.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/looker/api/__init__.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/looker/api/client.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/looker/api/client_test.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/looker/api/constants.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/looker/api/sdk.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/looker/api/sdk_test.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/looker/api/utils.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/looker/assets.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/looker/constant.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/looker/env.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/looker/extract.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/looker/fields.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/looker/fields_test.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/looker/parameters.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/metabase/__init__.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/metabase/assets.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/metabase/client/__init__.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/metabase/client/api/__init__.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/metabase/client/db/__init__.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/metabase/client/db/queries/.sqlfluff +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/metabase/client/db/queries/base_url.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/metabase/client/db/queries/card.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/metabase/client/db/queries/collection.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/metabase/client/db/queries/dashboard.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/metabase/client/db/queries/dashboard_cards.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/metabase/client/db/queries/database.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/metabase/client/db/queries/table.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/metabase/client/db/queries/user.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/metabase/client/decryption.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/metabase/client/decryption_test.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/metabase/client/shared.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/metabase/errors.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/metabase/extract.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/metabase/types.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/mode/__init__.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/mode/assets.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/mode/client/__init__.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/mode/client/client.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/mode/client/client_test.json +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/mode/client/client_test.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/mode/client/constants.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/mode/client/credentials.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/mode/errors.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/mode/extract.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/powerbi/__init__.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/powerbi/assets.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/powerbi/client/__init__.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/powerbi/client/constants.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/powerbi/client/credentials.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/powerbi/client/rest.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/powerbi/client/rest_test.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/powerbi/client/utils.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/powerbi/client/utils_test.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/powerbi/extract.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/qlik/__init__.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/qlik/assets.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/qlik/client/__init__.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/qlik/client/constants.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/qlik/client/engine/__init__.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/qlik/client/engine/client.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/qlik/client/engine/constants.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/qlik/client/engine/error.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/qlik/client/engine/error_test.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/qlik/client/engine/json_rpc.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/qlik/client/engine/json_rpc_test.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/qlik/client/engine/websocket.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/qlik/client/master.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/qlik/client/rest.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/qlik/client/rest_test.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/qlik/constants.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/qlik/extract.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/tableau/__init__.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/tableau/assets.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/tableau/client/__init__.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/tableau/client/client.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/tableau/client/client_utils.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/tableau/client/credentials.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/tableau/client/project.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/tableau/client/safe_mode.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/tableau/constants.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/tableau/errors.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/tableau/extract.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/tableau/gql_fields.py +0 -0
- {castor_extractor-0.3.5/castor_extractor/visualization → castor_extractor-0.3.7/castor_extractor/visualization/tableau/tests}/__init__.py +0 -0
- {castor_extractor-0.3.5/castor_extractor/visualization/tableau/tests → castor_extractor-0.3.7/castor_extractor/visualization/tableau/tests/unit}/__init__.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/tableau/tests/unit/assets/graphql/metadata/metadata_1_get.json +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/tableau/tests/unit/assets/graphql/metadata/metadata_2_get.json +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/tableau/tests/unit/assets/rest_api/auth.xml +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/tableau/tests/unit/assets/rest_api/project_get.xml +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/tableau/tests/unit/assets/rest_api/user_get.xml +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/tableau/tests/unit/assets/rest_api/view_get_usage.xml +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/tableau/tests/unit/assets/rest_api/workbook_get.xml +0 -0
- {castor_extractor-0.3.5/castor_extractor/visualization/tableau/tests/unit → castor_extractor-0.3.7/castor_extractor/visualization/tableau/tests/unit/graphql}/__init__.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/tableau/tests/unit/graphql/paginated_object_test.py +0 -0
- {castor_extractor-0.3.5/castor_extractor/visualization/tableau/tests/unit/graphql → castor_extractor-0.3.7/castor_extractor/visualization/tableau/tests/unit/rest_api}/__init__.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/tableau/tests/unit/rest_api/auth_test.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/tableau/tests/unit/rest_api/credentials_test.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/tableau/tests/unit/rest_api/projects_test.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/tableau/tests/unit/rest_api/usages_test.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/tableau/tests/unit/rest_api/users_test.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/tableau/tests/unit/rest_api/workbooks_test.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/tableau/tests/unit/utils/__init__.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/tableau/tests/unit/utils/env_key.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/tableau/tsc_fields.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/tableau/types.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/tableau/usage.py +0 -0
- {castor_extractor-0.3.5/castor_extractor/visualization/tableau/tests/unit/rest_api → castor_extractor-0.3.7/castor_extractor/warehouse}/__init__.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/abstract/__init__.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/abstract/asset.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/abstract/client.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/abstract/extract.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/abstract/query.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/abstract/time_filter.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/abstract/time_filter_test.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/bigquery/__init__.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/bigquery/client_test.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/bigquery/queries/.sqlfluff +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/bigquery/queries/column.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/bigquery/queries/cte/sharded.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/bigquery/queries/database.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/bigquery/queries/query.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/bigquery/queries/schema.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/bigquery/queries/table.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/bigquery/queries/table_with_tags.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/bigquery/queries/user.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/bigquery/queries/view_ddl.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/bigquery/query.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/bigquery/types.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/postgres/__init__.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/postgres/client.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/postgres/extract.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/postgres/queries/.sqlfluff +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/postgres/queries/column.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/postgres/queries/database.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/postgres/queries/group.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/postgres/queries/schema.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/postgres/queries/table.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/postgres/queries/user.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/postgres/query.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/redshift/__init__.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/redshift/client.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/redshift/client_test.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/redshift/extract.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/redshift/queries/.sqlfluff +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/redshift/queries/column.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/redshift/queries/database.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/redshift/queries/group.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/redshift/queries/query.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/redshift/queries/schema.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/redshift/queries/table.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/redshift/queries/table_freshness.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/redshift/queries/user.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/redshift/queries/view_ddl.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/redshift/query.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/snowflake/__init__.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/snowflake/client_test.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/snowflake/extract.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/snowflake/queries/.sqlfluff +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/snowflake/queries/column.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/snowflake/queries/column_lineage.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/snowflake/queries/database.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/snowflake/queries/grant_to_role.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/snowflake/queries/grant_to_user.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/snowflake/queries/query.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/snowflake/queries/role.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/snowflake/queries/schema.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/snowflake/queries/table.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/snowflake/queries/user.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/snowflake/queries/view_ddl.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/snowflake/query.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/synapse/__init__.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/synapse/extract.py +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/synapse/queries/.sqlfluff +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/synapse/queries/column.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/synapse/queries/database.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/synapse/queries/query.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/synapse/queries/schema.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/synapse/queries/table.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/synapse/queries/user.sql +0 -0
- {castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/synapse/queries/view_ddl.sql +0 -0
|
@@ -125,7 +125,7 @@ class FileCheckerRun:
|
|
|
125
125
|
return
|
|
126
126
|
header = f"Issues detected on Row #{index+1}\n"
|
|
127
127
|
for k, v in row.items():
|
|
128
|
-
header += "{:<20} {:<100}\n"
|
|
128
|
+
header += f"{str(k):<20} {str(v):<100}\n"
|
|
129
129
|
self.logger.info(header + _SEPARATOR + issue_log + _SEPARATOR)
|
|
130
130
|
|
|
131
131
|
def occurrences(self, name: str) -> Set[str]:
|
{castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/file_checker/file_test.py
RENAMED
|
@@ -13,8 +13,7 @@ _TEST_FILE_VALID = "file_test_users_valid.csv"
|
|
|
13
13
|
def _content(path: str) -> Iterator[Dict]:
|
|
14
14
|
absolute_path = os.path.join(os.path.dirname(__file__), path)
|
|
15
15
|
with open(absolute_path) as csvfile:
|
|
16
|
-
|
|
17
|
-
yield row
|
|
16
|
+
yield from csv.DictReader(csvfile)
|
|
18
17
|
|
|
19
18
|
|
|
20
19
|
def _user_template() -> FileTemplate:
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
import sys
|
|
3
|
+
import warnings
|
|
4
|
+
from typing import Tuple
|
|
5
|
+
|
|
6
|
+
# DeprecationWarning is filtered by default
|
|
7
|
+
warnings.filterwarnings("once", category=DeprecationWarning)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def deprecate_python(min_version_supported: Tuple[int]):
|
|
11
|
+
"""raises a warning if python version < min_version_supported"""
|
|
12
|
+
|
|
13
|
+
python_version = (
|
|
14
|
+
sys.version_info.major,
|
|
15
|
+
sys.version_info.minor,
|
|
16
|
+
sys.version_info.micro,
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
python_version_str = ".".join(map(str, python_version))
|
|
20
|
+
min_supported_str = ".".join(map(str, min_version_supported))
|
|
21
|
+
|
|
22
|
+
if python_version < min_version_supported:
|
|
23
|
+
warnings.warn(
|
|
24
|
+
f"You are using python version {python_version_str}, please upgrade to version {min_supported_str} or higher."
|
|
25
|
+
" Your version will be soon deprecated",
|
|
26
|
+
DeprecationWarning,
|
|
27
|
+
)
|
|
@@ -37,7 +37,7 @@ SAMPLE_FILE = "formatter_test"
|
|
|
37
37
|
def _test(formatter: Formatter) -> None:
|
|
38
38
|
root = os.path.dirname(__file__)
|
|
39
39
|
path = os.path.join(root, f"{SAMPLE_FILE}.{formatter.extension()}")
|
|
40
|
-
with open(path) as file:
|
|
40
|
+
with open(path, "r") as file:
|
|
41
41
|
rows = list(formatter.deserialize(file))
|
|
42
42
|
first = rows[0]
|
|
43
43
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import json
|
|
2
2
|
import logging
|
|
3
3
|
import os
|
|
4
|
+
import sys
|
|
4
5
|
from datetime import datetime
|
|
5
6
|
from typing import Any, List
|
|
6
7
|
|
|
@@ -51,6 +52,7 @@ def write_summary(output_directory: str, ts: int, **kwargs):
|
|
|
51
52
|
write_json(
|
|
52
53
|
summary,
|
|
53
54
|
{
|
|
55
|
+
"python_version": sys.version,
|
|
54
56
|
"version": _current_version(),
|
|
55
57
|
"executed_at": datetime.fromtimestamp(ts).isoformat(),
|
|
56
58
|
**kwargs,
|
|
@@ -33,7 +33,7 @@ class ApiClient:
|
|
|
33
33
|
):
|
|
34
34
|
self._credentials = CredentialsApi(
|
|
35
35
|
base_url=get_value(CredentialsApiKey.BASE_URL, kwargs),
|
|
36
|
-
|
|
36
|
+
user=get_value(CredentialsApiKey.USER, kwargs),
|
|
37
37
|
password=get_value(CredentialsApiKey.PASSWORD, kwargs),
|
|
38
38
|
)
|
|
39
39
|
self._session = requests.Session()
|
|
@@ -91,7 +91,7 @@ class ApiClient:
|
|
|
91
91
|
def _login(self) -> str:
|
|
92
92
|
url = self._url("session")
|
|
93
93
|
payload = {
|
|
94
|
-
"username": self._credentials.
|
|
94
|
+
"username": self._credentials.user,
|
|
95
95
|
"password": self._credentials.password,
|
|
96
96
|
}
|
|
97
97
|
response = self._session.post(url, json=payload)
|
|
@@ -6,13 +6,13 @@ from .....utils import from_env
|
|
|
6
6
|
|
|
7
7
|
class CredentialsApiKey(Enum):
|
|
8
8
|
BASE_URL = "base_url"
|
|
9
|
-
|
|
9
|
+
USER = "user"
|
|
10
10
|
PASSWORD = "password"
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
CREDENTIALS_ENV: Dict[CredentialsApiKey, str] = {
|
|
14
14
|
CredentialsApiKey.BASE_URL: "CASTOR_METABASE_API_BASE_URL",
|
|
15
|
-
CredentialsApiKey.
|
|
15
|
+
CredentialsApiKey.USER: "CASTOR_METABASE_API_USERNAME",
|
|
16
16
|
CredentialsApiKey.PASSWORD: "CASTOR_METABASE_API_PASSWORD",
|
|
17
17
|
}
|
|
18
18
|
|
|
@@ -30,13 +30,13 @@ def get_value(key: CredentialsApiKey, kwargs: dict) -> str:
|
|
|
30
30
|
class CredentialsApi:
|
|
31
31
|
"""ValueObject for the credentials"""
|
|
32
32
|
|
|
33
|
-
def __init__(self, base_url: str,
|
|
33
|
+
def __init__(self, base_url: str, user: str, password: str):
|
|
34
34
|
self.base_url = base_url
|
|
35
|
-
self.
|
|
35
|
+
self.user = user
|
|
36
36
|
self.password = password
|
|
37
37
|
|
|
38
38
|
def to_dict(self, hide: bool = False) -> Dict[str, str]:
|
|
39
|
-
safe = (CredentialsApiKey.BASE_URL, CredentialsApiKey.
|
|
39
|
+
safe = (CredentialsApiKey.BASE_URL, CredentialsApiKey.USER)
|
|
40
40
|
unsafe = (CredentialsApiKey.PASSWORD,)
|
|
41
41
|
|
|
42
42
|
def val(k: CredentialsApiKey, v: str) -> str:
|
|
@@ -37,7 +37,7 @@ class DbClient:
|
|
|
37
37
|
port=get_value(CredentialsDbKey.PORT, kwargs),
|
|
38
38
|
database=get_value(CredentialsDbKey.DATABASE, kwargs),
|
|
39
39
|
schema=get_value(CredentialsDbKey.SCHEMA, kwargs),
|
|
40
|
-
|
|
40
|
+
user=get_value(CredentialsDbKey.USER, kwargs),
|
|
41
41
|
password=get_value(CredentialsDbKey.PASSWORD, kwargs),
|
|
42
42
|
)
|
|
43
43
|
self.encryption_secret_key = kwargs.get(
|
|
@@ -9,7 +9,7 @@ class CredentialsDbKey(Enum):
|
|
|
9
9
|
PORT = "port"
|
|
10
10
|
DATABASE = "database"
|
|
11
11
|
SCHEMA = "schema"
|
|
12
|
-
|
|
12
|
+
USER = "user"
|
|
13
13
|
PASSWORD = "password"
|
|
14
14
|
|
|
15
15
|
|
|
@@ -18,7 +18,7 @@ CREDENTIALS_ENV: Dict[CredentialsDbKey, str] = {
|
|
|
18
18
|
CredentialsDbKey.PORT: "CASTOR_METABASE_DB_PORT",
|
|
19
19
|
CredentialsDbKey.DATABASE: "CASTOR_METABASE_DB_DATABASE",
|
|
20
20
|
CredentialsDbKey.SCHEMA: "CASTOR_METABASE_DB_SCHEMA",
|
|
21
|
-
CredentialsDbKey.
|
|
21
|
+
CredentialsDbKey.USER: "CASTOR_METABASE_DB_USERNAME",
|
|
22
22
|
CredentialsDbKey.PASSWORD: "CASTOR_METABASE_DB_PASSWORD",
|
|
23
23
|
}
|
|
24
24
|
|
|
@@ -42,14 +42,14 @@ class CredentialsDb:
|
|
|
42
42
|
port: str,
|
|
43
43
|
database: str,
|
|
44
44
|
schema: str,
|
|
45
|
-
|
|
45
|
+
user: str,
|
|
46
46
|
password: str,
|
|
47
47
|
):
|
|
48
48
|
self.host = host
|
|
49
49
|
self.port = port
|
|
50
50
|
self.database = database
|
|
51
51
|
self.schema = schema
|
|
52
|
-
self.
|
|
52
|
+
self.user = user
|
|
53
53
|
self.password = password
|
|
54
54
|
|
|
55
55
|
def to_dict(self, hide: bool = False) -> Dict[str, str]:
|
|
@@ -58,7 +58,7 @@ class CredentialsDb:
|
|
|
58
58
|
CredentialsDbKey.PORT,
|
|
59
59
|
CredentialsDbKey.DATABASE,
|
|
60
60
|
CredentialsDbKey.SCHEMA,
|
|
61
|
-
CredentialsDbKey.
|
|
61
|
+
CredentialsDbKey.USER,
|
|
62
62
|
)
|
|
63
63
|
unsafe = (CredentialsDbKey.PASSWORD,)
|
|
64
64
|
|
{castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/bigquery/client.py
RENAMED
|
@@ -86,13 +86,13 @@ class BigQueryClient(SqlalchemyClient):
|
|
|
86
86
|
"""
|
|
87
87
|
Returns distinct (project_id, region) available for the given GCP client
|
|
88
88
|
"""
|
|
89
|
-
return
|
|
89
|
+
return {
|
|
90
90
|
(ds.project, ds._properties["location"])
|
|
91
91
|
for ds in self._list_datasets()
|
|
92
|
-
|
|
92
|
+
}
|
|
93
93
|
|
|
94
94
|
def get_datasets(self) -> Set[Tuple[str, str]]:
|
|
95
95
|
"""
|
|
96
96
|
Returns distinct (project_id, dataset_id) available for the given GCP client
|
|
97
97
|
"""
|
|
98
|
-
return
|
|
98
|
+
return {(ds.project, ds.dataset_id) for ds in self._list_datasets()}
|
{castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/bigquery/extract.py
RENAMED
|
@@ -38,7 +38,7 @@ def _credentials(params: dict) -> dict:
|
|
|
38
38
|
"""extract GCP credentials"""
|
|
39
39
|
path = params.get("credentials") or from_env(BIGQUERY_CREDENTIALS)
|
|
40
40
|
logger.info(f"Credentials fetched from {path}")
|
|
41
|
-
with open(path) as file:
|
|
41
|
+
with open(path, "r") as file:
|
|
42
42
|
return cast(dict, json.load(file))
|
|
43
43
|
|
|
44
44
|
|
{castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/warehouse/snowflake/client.py
RENAMED
|
@@ -34,7 +34,7 @@ def _use(connection: Connection, resource: UseResource, name: str):
|
|
|
34
34
|
DON'T COPY THIS CODE FOR ANOTHER PURPOSE
|
|
35
35
|
"""
|
|
36
36
|
target = resource.value
|
|
37
|
-
if not re.fullmatch("[\w_-]+", name):
|
|
37
|
+
if not re.fullmatch(r"[\w_-]+", name):
|
|
38
38
|
raise NameError(f"{target} name invalid {name}")
|
|
39
39
|
command = f'USE {target} "{name}"'
|
|
40
40
|
logger.info(f"executing {command}")
|
|
@@ -130,7 +130,7 @@ entry_points = \
|
|
|
130
130
|
|
|
131
131
|
setup_kwargs = {
|
|
132
132
|
'name': 'castor-extractor',
|
|
133
|
-
'version': '0.3.
|
|
133
|
+
'version': '0.3.7',
|
|
134
134
|
'description': 'Extract your metadata assets.',
|
|
135
135
|
'long_description': '# Castor Extractor <img src="https://app.castordoc.com/images/castor_icon_dark.svg" width=30 />\n\nThis library contains utilities to extract your metadata assets into `JSON` or `CSV` files, on your local machine.\nAfter extraction, those files can be pushed to Castor for ingestion.\n\n- Visualization assets are typically:\n - `dashboards`\n - `users`\n - `folders`\n - ...\n\n- Warehouse assets are typically:\n - `databases`\n - `schemas`\n - `tables`\n - `columns`\n - `queries`\n - ...\n\nIt also embeds utilities to help you push your metadata to Castor:\n\n- `File Checker` to validate your [generic](https://docs.castordoc.com/integrations/data-warehouses/generic-warehouse) CSV files before pushing to Castor\n- `Uploader` to push extracted files to our Google-Cloud-Storage (GCS)\n\n# Table of contents\n\n- [Castor Extractor ](#castor-extractor-)\n- [Table of contents](#table-of-contents)\n- [Installation](#installation)\n - [Create castor-env](#create-castor-env)\n - [PIP install](#pip-install)\n - [Create the output directory](#create-the-output-directory)\n- [Contact](#contact)\n\n# Installation\n\nRequirements: **python3.8+**\n<img src="https://upload.wikimedia.org/wikipedia/commons/c/c3/Python-logo-notext.svg" width=20 />\n\n## Create castor-env\n\nWe advise to create a dedicated [Python environment](https://docs.python.org/3/library/venv.html).\n\nHere\'s an example using `Pyenv` and Python `3.8.12`:\n\n- Install Pyenv\n\n```bash\nbrew install pyenv\nbrew install pyenv-virtualenv\n```\n\n- [optional] Update your `.bashrc` if you encounter this [issue](https://stackoverflow.com/questions/45577194/failed-to-activate-virtualenv-with-pyenv/45578839)\n\n```bash\neval "$(pyenv init -)"\neval "$(pyenv init --path)"\neval "$(pyenv virtualenv-init -)"\n```\n\n- [optional] Install python 3.8+\n\n```bash\npyenv versions # check your local python installations\n\npyenv install -v 3.8.12 # if none of the installed versions satisfy requirements 8+\n```\n\n- Create your virtual env\n\n```bash\npyenv virtualenv 3.8.12 castor-env # create a dedicated env\npyenv shell castor-env # activate the environment\n\n# optional checks\npython --version # should be `3.8.12`\npyenv version # should be `castor-env`\n```\n\n## PIP install\n\n⚠️ `castor-env` must be created AND activated first.\n\n```bash\npyenv shell castor-env\n(castor-env) $ # this means the environment is now active\n```\n\nℹ️ please upgrade `PIP` before installing Castor.\n\n```\npip install --upgrade pip\n```\n\nRun the following command to install `castor-extractor`:\n\n```\npip install castor-extractor\n```\n\nDepending on your use-case, you can also install one of the following `extras`:\n\n```\npip install castor-extractor[looker]\npip install castor-extractor[tableau]\npip install castor-extractor[metabase]\npip install castor-extractor[qlik]\npip install castor-extractor[bigquery]\npip install castor-extractor[redshift]\npip install castor-extractor[snowflake]\n```\n\n## Create the output directory\n\n```bash\nmkdir /tmp/castor\n```\n\nYou will provide this path in `extraction` scripts as following:\n\n```\ncastor-extract-bigquery --output=/tmp/castor\n```\n\nAlternatively, you can also set the following `ENV` in your `bashrc`:\n\n```bash\nexport CASTOR_OUTPUT_DIRECTORY="/tmp/castor"\n````\n\n# Contact\n\nFor any questions or bug report, contact us at [support@castordoc.com](mailto:support@castordoc.com)\n\n[Castor](https://castordoc.com) helps you find, understand, use your data assets\n',
|
|
136
136
|
'author': 'Castor',
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/commands/extract_bigquery.py
RENAMED
|
File without changes
|
{castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/commands/extract_looker.py
RENAMED
|
File without changes
|
|
File without changes
|
{castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/commands/extract_postgres.py
RENAMED
|
File without changes
|
{castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/commands/extract_powerbi.py
RENAMED
|
File without changes
|
|
File without changes
|
{castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/commands/extract_redshift.py
RENAMED
|
File without changes
|
{castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/commands/extract_snowflake.py
RENAMED
|
File without changes
|
{castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/commands/extract_tableau.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/file_checker/column_test.py
RENAMED
|
File without changes
|
{castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/file_checker/constants.py
RENAMED
|
File without changes
|
|
File without changes
|
{castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/file_checker/file_test_users.csv
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/transformation/dbt/__init__.py
RENAMED
|
File without changes
|
{castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/transformation/dbt/assets.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
|
|
File without changes
|
|
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.3.5 → castor_extractor-0.3.7}/castor_extractor/utils/formatter_test.json
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/looker/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/looker/api/sdk.py
RENAMED
|
File without changes
|
|
File without changes
|
{castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/looker/api/utils.py
RENAMED
|
File without changes
|
{castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/looker/assets.py
RENAMED
|
File without changes
|
{castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/looker/constant.py
RENAMED
|
File without changes
|
{castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/looker/env.py
RENAMED
|
File without changes
|
{castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/looker/extract.py
RENAMED
|
File without changes
|
{castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/looker/fields.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/metabase/assets.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
|
|
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.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/metabase/errors.py
RENAMED
|
File without changes
|
{castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/metabase/extract.py
RENAMED
|
File without changes
|
{castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/metabase/types.py
RENAMED
|
File without changes
|
{castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/mode/__init__.py
RENAMED
|
File without changes
|
{castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/mode/assets.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/mode/errors.py
RENAMED
|
File without changes
|
{castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/mode/extract.py
RENAMED
|
File without changes
|
{castor_extractor-0.3.5 → castor_extractor-0.3.7}/castor_extractor/visualization/powerbi/__init__.py
RENAMED
|
File without changes
|