atlan-application-sdk 0.1.1rc41__tar.gz → 0.1.1rc42__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.
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/ISSUE_TEMPLATE/bug_report.yaml +9 -9
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/ISSUE_TEMPLATE/feature_request.yaml +8 -8
- atlan_application_sdk-0.1.1rc42/.github/release_notes.md +7 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/CHANGELOG.md +9 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/PKG-INFO +1 -1
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/activities/common/utils.py +78 -4
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/activities/metadata_extraction/sql.py +0 -2
- atlan_application_sdk-0.1.1rc42/application_sdk/inputs/__init__.py +168 -0
- atlan_application_sdk-0.1.1rc42/application_sdk/inputs/json.py +136 -0
- atlan_application_sdk-0.1.1rc42/application_sdk/inputs/parquet.py +260 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/hypothesis/strategies/inputs/json_input.py +10 -5
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/hypothesis/strategies/inputs/parquet_input.py +9 -4
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/version.py +1 -1
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/pyproject.toml +1 -1
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/activities/common/test_utils.py +165 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/activities/metadata_extraction/test_sql.py +2 -2
- atlan_application_sdk-0.1.1rc42/tests/unit/common/test_utils_file_discovery.py +147 -0
- atlan_application_sdk-0.1.1rc42/tests/unit/inputs/test_base_input.py +398 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/inputs/test_json.py +99 -69
- atlan_application_sdk-0.1.1rc42/tests/unit/inputs/test_parquet.py +469 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/uv.lock +1 -1
- atlan_application_sdk-0.1.1rc41/.github/release_notes.md +0 -8
- atlan_application_sdk-0.1.1rc41/application_sdk/inputs/__init__.py +0 -72
- atlan_application_sdk-0.1.1rc41/application_sdk/inputs/json.py +0 -164
- atlan_application_sdk-0.1.1rc41/application_sdk/inputs/parquet.py +0 -181
- atlan_application_sdk-0.1.1rc41/tests/unit/inputs/test_parquet.py +0 -688
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.cursor/BUGBOT.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.cursor/rules/documentation.mdc +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.cursor/rules/exception-handling.mdc +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.cursor/rules/guidelines.mdc +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.cursor/rules/logging.mdc +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.cursor/rules/performance.mdc +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.cursor/rules/setup.mdc +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.cursor/rules/standards.mdc +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.cursor/rules/testing.mdc +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.env.example +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/CODEOWNERS +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/ISSUE_TEMPLATE/config.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/actions/docgen/action.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/actions/doclint/action.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/actions/docstring-coverage/action.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/actions/e2e-apps/action.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/actions/e2e-examples/action.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/actions/setup-deps/action.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/actions/sync-branches/action.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/actions/trivy/action.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/actions/trivy-container/action.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/actions/unit-tests/action.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/dependabot.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/pull_request_template.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/scripts/extract_release_notes.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/scripts/pre_release.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/scripts/release.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/scripts/trivy-to-markdown.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/scripts/update_changelog.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/AMPM.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/Accessibility.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/Acronyms.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/Adverbs.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/Auto.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/Avoid.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/Contractions.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/Dashes.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/DateFormat.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/DateNumbers.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/DateOrder.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/Ellipses.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/FirstPerson.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/Foreign.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/Gender.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/GenderBias.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/GeneralURL.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/HeadingAcronyms.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/HeadingColons.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/HeadingPunctuation.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/Headings.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/Hyphens.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/Negative.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/Ordinal.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/OxfordComma.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/Passive.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/Percentages.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/Plurals.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/Quotes.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/RangeTime.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/Semicolon.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/SentenceLength.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/Spacing.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/Suspended.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/Terms.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/URLFormat.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/Units.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/Vocab.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/We.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/Wordiness.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/Microsoft/meta.json +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/config/vocabularies/deviations/accept.txt +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/styles/config/vocabularies/deviations/reject.txt +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/workflow-templates/checks.properties.json +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/workflow-templates/checks.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/workflow-templates/codeql.properties.json +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/workflow-templates/codeql.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/workflow-templates/dependency-review.properties.json +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/workflow-templates/dependency-review.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/workflow-templates/stale.properties.json +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/workflow-templates/stale.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/workflow-templates/trivy-container.properties.json +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/workflow-templates/trivy-container.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/workflow-templates/trivy.properties.json +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/workflow-templates/trivy.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/workflows/codeql.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/workflows/pre-release.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/workflows/pull_request.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/workflows/push.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/workflows/release.yaml.disabled +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/workflows/scale-tests.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/workflows/schedule.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/workflows/tag-and-publish.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/workflows/trivy-container.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.github/workflows/verify-snyk-status.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.gitignore +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.pre-commit-config.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/.vscode/launch.json +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/CODE_OF_CONDUCT.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/CONTRIBUTING.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/LICENSE +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/NOTICE +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/README.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/SECURITY.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/activities/.cursor/BUGBOT.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/activities/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/activities/common/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/activities/common/models.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/activities/lock_management.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/activities/metadata_extraction/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/activities/metadata_extraction/base.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/activities/metadata_extraction/rest.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/activities/query_extraction/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/activities/query_extraction/sql.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/application/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/application/metadata_extraction/sql.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/clients/.cursor/BUGBOT.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/clients/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/clients/atlan.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/clients/atlan_auth.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/clients/base.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/clients/models.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/clients/redis.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/clients/sql.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/clients/temporal.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/clients/utils.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/clients/workflow.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/common/.cursor/BUGBOT.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/common/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/common/aws_utils.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/common/dapr_utils.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/common/dataframe_utils.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/common/error_codes.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/common/utils.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/constants.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/decorators/.cursor/BUGBOT.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/decorators/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/decorators/locks.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/docgen/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/docgen/exporters/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/docgen/exporters/mkdocs.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/docgen/models/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/docgen/models/export/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/docgen/models/export/page.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/docgen/models/manifest/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/docgen/models/manifest/customer.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/docgen/models/manifest/internal.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/docgen/models/manifest/metadata.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/docgen/models/manifest/page.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/docgen/models/manifest/section.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/docgen/parsers/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/docgen/parsers/directory.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/docgen/parsers/manifest.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/events/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/events/models.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/handlers/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/handlers/base.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/handlers/sql.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/inputs/.cursor/BUGBOT.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/inputs/iceberg.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/inputs/sql_query.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/interceptors/.cursor/BUGBOT.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/interceptors/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/interceptors/cleanup.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/interceptors/events.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/interceptors/lock.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/observability/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/observability/decorators/observability_decorator.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/observability/logger_adaptor.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/observability/metrics_adaptor.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/observability/observability.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/observability/traces_adaptor.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/observability/utils.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/outputs/.cursor/BUGBOT.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/outputs/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/outputs/iceberg.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/outputs/json.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/outputs/parquet.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/server/.cursor/BUGBOT.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/server/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/server/fastapi/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/server/fastapi/middleware/logmiddleware.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/server/fastapi/middleware/metrics.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/server/fastapi/models.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/server/fastapi/routers/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/server/fastapi/routers/server.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/server/fastapi/utils.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/services/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/services/atlan_storage.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/services/eventstore.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/services/objectstore.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/services/secretstore.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/services/statestore.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/e2e/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/e2e/base.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/e2e/client.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/e2e/conftest.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/e2e/utils.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/hypothesis/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/hypothesis/strategies/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/hypothesis/strategies/clients/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/hypothesis/strategies/clients/sql.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/hypothesis/strategies/common/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/hypothesis/strategies/common/logger.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/hypothesis/strategies/handlers/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/hypothesis/strategies/handlers/sql/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/hypothesis/strategies/handlers/sql/sql_metadata.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/hypothesis/strategies/handlers/sql/sql_preflight.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/hypothesis/strategies/inputs/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/hypothesis/strategies/outputs/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/hypothesis/strategies/outputs/json_output.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/hypothesis/strategies/outputs/statestore.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/hypothesis/strategies/server/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/hypothesis/strategies/server/fastapi/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/hypothesis/strategies/sql_client.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/hypothesis/strategies/temporal.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/scale_data_generator/README.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/scale_data_generator/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/scale_data_generator/config_loader.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/scale_data_generator/data_generator.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/scale_data_generator/driver.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/scale_data_generator/examples/config.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/scale_data_generator/output_handler/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/scale_data_generator/output_handler/base.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/scale_data_generator/output_handler/csv_handler.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/scale_data_generator/output_handler/json_handler.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/scale_data_generator/output_handler/parquet_handler.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/test_utils/workflow_monitoring.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/transformers/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/transformers/atlas/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/transformers/atlas/sql.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/transformers/common/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/transformers/common/utils.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/transformers/query/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/transformers/query/templates/column.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/transformers/query/templates/database.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/transformers/query/templates/extras-procedure.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/transformers/query/templates/function.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/transformers/query/templates/schema.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/transformers/query/templates/table.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/transformers/query/templates/tag_attachment.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/worker.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/workflows/.cursor/BUGBOT.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/workflows/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/workflows/metadata_extraction/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/workflows/metadata_extraction/sql.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/workflows/query_extraction/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/application_sdk/workflows/query_extraction/sql.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/components/README.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/components/atlan-storage.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/components/aws-secrets.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/components/deployment-secrets.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/components/eventstore.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/components/objectstore.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/components/secretstore.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/components/statestore.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/docs/concepts/activities.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/docs/concepts/application.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/docs/concepts/application_sql.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/docs/concepts/atlanupload.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/docs/concepts/clients.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/docs/concepts/common.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/docs/concepts/handlers.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/docs/concepts/inputs.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/docs/concepts/output_paths.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/docs/concepts/outputs.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/docs/concepts/server.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/docs/concepts/services.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/docs/concepts/temporal_auth.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/docs/concepts/worker.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/docs/concepts/workflows.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/docs/configuration.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/docs/guides/architecture.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/docs/guides/atlantis.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/docs/guides/best-practices.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/docs/guides/getting-started.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/docs/guides/index.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/docs/guides/partners.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/docs/guides/secretstores.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/docs/guides/sql-application-guide.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/docs/guides/test-framework.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/docs/index.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/docs/setup/LINUX.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/docs/setup/MAC.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/docs/setup/WINDOWS.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/docs/setup/troubleshooting.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/docs/static/assets/logo.svg +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/docs/static/images/phoenix-sdk-featureset.png +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/docs/static/javascripts/mathjax.js +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/docs/static/stylesheets/extra.css +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/docs/mkdocs.yml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/examples/README.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/examples/application_custom_fastapi.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/examples/application_fastapi.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/examples/application_hello_world.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/examples/application_sql.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/examples/application_sql_miner.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/examples/application_sql_with_custom_pyatlan_transformer.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/examples/application_sql_with_custom_transformer.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/examples/run_examples.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/examples/sql_query_templates/database.yaml +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/.cursor/BUGBOT.md +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/conftest.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/activities/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/activities/common/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/activities/metadata_extraction/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/activities/query_extraction/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/activities/test_activities.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/activities/test_lock_management.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/application/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/application/metadata_extraction/test_sql.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/application/test_application.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/clients/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/clients/test_async_sql_client.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/clients/test_atlan_auth.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/clients/test_atlan_client.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/clients/test_atlanauth.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/clients/test_base_client.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/clients/test_redis_client.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/clients/test_sql_client.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/clients/test_temporal_client.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/common/test_aws_utils.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/common/test_credential_utils.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/common/test_utils.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/docgen/parsers/test_directory_parser.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/docgen/parsers/test_manifest_parser.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/handlers/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/handlers/sql/test_auth.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/handlers/sql/test_check_schemas_and_databases.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/handlers/sql/test_extract_allowed_schemas.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/handlers/sql/test_metadata.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/handlers/sql/test_preflight_check.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/handlers/sql/test_prepare_metadata.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/handlers/sql/test_tables_check.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/handlers/sql/test_validate_filters.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/handlers/test_base_handler.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/observability/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/observability/test_logger_adaptor.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/observability/test_metrics_adaptor.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/observability/test_traces_adaptor.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/outputs/test_iceberg.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/outputs/test_json_output.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/outputs/test_output.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/outputs/test_parquet_output.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/server/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/server/fastapi/routers/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/server/fastapi/routers/server.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/server/fastapi/test_fastapi.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/services/test_atlan_storage.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/services/test_eventstore.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/services/test_objectstore.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/services/test_statestore.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/test_worker.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/transformers/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/transformers/atlas/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/transformers/atlas/resources/raw_columns.json +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/transformers/atlas/resources/raw_databases.json +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/transformers/atlas/resources/raw_functions.json +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/transformers/atlas/resources/raw_procedures.json +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/transformers/atlas/resources/raw_schemas.json +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/transformers/atlas/resources/raw_tables.json +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/transformers/atlas/resources/transformed_columns.json +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/transformers/atlas/resources/transformed_databases.json +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/transformers/atlas/resources/transformed_functions.json +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/transformers/atlas/resources/transformed_procedures.json +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/transformers/atlas/resources/transformed_schemas.json +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/transformers/atlas/resources/transformed_tables.json +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/transformers/atlas/test_column.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/transformers/atlas/test_database.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/transformers/atlas/test_function.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/transformers/atlas/test_procedure.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/transformers/atlas/test_schema.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/transformers/atlas/test_table.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/transformers/query/resources/raw/column.json +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/transformers/query/resources/raw/database.json +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/transformers/query/resources/raw/extras-procedure.json +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/transformers/query/resources/raw/function.json +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/transformers/query/resources/raw/schema.json +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/transformers/query/resources/raw/table.json +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/transformers/query/resources/transformed/column.json +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/transformers/query/resources/transformed/database.json +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/transformers/query/resources/transformed/extras-procedure.json +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/transformers/query/resources/transformed/function.json +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/transformers/query/resources/transformed/schema.json +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/transformers/query/resources/transformed/table.json +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/transformers/query/test_sql_transformer.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/transformers/query/test_sql_transformer_output_validation.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/workflows/metadata_extraction/test_sql_workflow.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/workflows/query_extraction/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc41 → atlan_application_sdk-0.1.1rc42}/tests/unit/workflows/query_extraction/test_sql.py +0 -0
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
name: "
|
|
1
|
+
name: "Bug Report"
|
|
2
2
|
description: File a bug report for the Application SDK.
|
|
3
|
-
title: "
|
|
3
|
+
title: "<title>"
|
|
4
4
|
labels: ["bug"]
|
|
5
5
|
|
|
6
6
|
body:
|
|
7
7
|
- type: textarea
|
|
8
8
|
id: description
|
|
9
9
|
attributes:
|
|
10
|
-
label: "
|
|
10
|
+
label: "Description"
|
|
11
11
|
description: Clear and concise description of the issue.
|
|
12
12
|
placeholder: What went wrong?
|
|
13
13
|
validations:
|
|
@@ -16,7 +16,7 @@ body:
|
|
|
16
16
|
- type: input
|
|
17
17
|
id: reprod-url
|
|
18
18
|
attributes:
|
|
19
|
-
label: "
|
|
19
|
+
label: "Reproduction Repo/Script (if any)"
|
|
20
20
|
description: Link to a minimal repo or script that reproduces the issue.
|
|
21
21
|
placeholder: https://github.com/your/repo
|
|
22
22
|
validations:
|
|
@@ -25,7 +25,7 @@ body:
|
|
|
25
25
|
- type: textarea
|
|
26
26
|
id: reprod
|
|
27
27
|
attributes:
|
|
28
|
-
label: "
|
|
28
|
+
label: "Reproduction Steps"
|
|
29
29
|
description: Steps to reproduce the bug.
|
|
30
30
|
value: |
|
|
31
31
|
1. Import SDK
|
|
@@ -38,7 +38,7 @@ body:
|
|
|
38
38
|
- type: textarea
|
|
39
39
|
id: logs
|
|
40
40
|
attributes:
|
|
41
|
-
label: "
|
|
41
|
+
label: "Logs / Tracebacks"
|
|
42
42
|
description: Paste any relevant logs or error messages here (no need for backticks).
|
|
43
43
|
render: bash
|
|
44
44
|
validations:
|
|
@@ -47,7 +47,7 @@ body:
|
|
|
47
47
|
- type: textarea
|
|
48
48
|
id: expected
|
|
49
49
|
attributes:
|
|
50
|
-
label: "
|
|
50
|
+
label: "Expected vs Actual"
|
|
51
51
|
description: What was the expected behavior and what actually happened?
|
|
52
52
|
validations:
|
|
53
53
|
required: true
|
|
@@ -55,7 +55,7 @@ body:
|
|
|
55
55
|
- type: dropdown
|
|
56
56
|
id: environment
|
|
57
57
|
attributes:
|
|
58
|
-
label: "
|
|
58
|
+
label: "Environment"
|
|
59
59
|
description: What environment are you running this in?
|
|
60
60
|
options:
|
|
61
61
|
- MacOS
|
|
@@ -68,7 +68,7 @@ body:
|
|
|
68
68
|
- type: input
|
|
69
69
|
id: sdk-version
|
|
70
70
|
attributes:
|
|
71
|
-
label: "
|
|
71
|
+
label: "SDK Version"
|
|
72
72
|
description: What version of the SDK are you using?
|
|
73
73
|
placeholder: e.g. 0.1.0
|
|
74
74
|
validations:
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
name: "
|
|
1
|
+
name: "Feature Request"
|
|
2
2
|
description: Suggest a new feature or enhancement for the Application SDK.
|
|
3
|
-
title: "
|
|
3
|
+
title: "<title>"
|
|
4
4
|
labels: ["enhancement"]
|
|
5
5
|
|
|
6
6
|
body:
|
|
7
7
|
- type: textarea
|
|
8
8
|
id: summary
|
|
9
9
|
attributes:
|
|
10
|
-
label: "
|
|
10
|
+
label: "Summary"
|
|
11
11
|
description: Briefly describe the proposed feature.
|
|
12
12
|
placeholder: What would you like to see added or improved?
|
|
13
13
|
validations:
|
|
@@ -16,7 +16,7 @@ body:
|
|
|
16
16
|
- type: textarea
|
|
17
17
|
id: example
|
|
18
18
|
attributes:
|
|
19
|
-
label: "
|
|
19
|
+
label: "Basic Example"
|
|
20
20
|
description: Provide a simple code snippet or example of how this feature would work.
|
|
21
21
|
placeholder: Share a code example or expected usage.
|
|
22
22
|
validations:
|
|
@@ -25,7 +25,7 @@ body:
|
|
|
25
25
|
- type: textarea
|
|
26
26
|
id: motivation
|
|
27
27
|
attributes:
|
|
28
|
-
label: "
|
|
28
|
+
label: "Motivation"
|
|
29
29
|
description: What problem does this feature solve or what use case does it support?
|
|
30
30
|
placeholder: Why is this feature needed?
|
|
31
31
|
validations:
|
|
@@ -34,7 +34,7 @@ body:
|
|
|
34
34
|
- type: textarea
|
|
35
35
|
id: drawbacks
|
|
36
36
|
attributes:
|
|
37
|
-
label: "
|
|
37
|
+
label: "Drawbacks"
|
|
38
38
|
description: Any potential downsides, risks, or performance impacts?
|
|
39
39
|
placeholder: Be honest and neutral about what this might affect.
|
|
40
40
|
validations:
|
|
@@ -43,7 +43,7 @@ body:
|
|
|
43
43
|
- type: textarea
|
|
44
44
|
id: unresolved
|
|
45
45
|
attributes:
|
|
46
|
-
label: "
|
|
46
|
+
label: "Unresolved Questions"
|
|
47
47
|
description: Are there any open questions or decisions to be made?
|
|
48
48
|
placeholder: Anything unclear about how to approach this?
|
|
49
49
|
validations:
|
|
@@ -52,7 +52,7 @@ body:
|
|
|
52
52
|
- type: textarea
|
|
53
53
|
id: references
|
|
54
54
|
attributes:
|
|
55
|
-
label: "
|
|
55
|
+
label: "Reference Issues / PRs"
|
|
56
56
|
description: Link to any related issues or pull requests.
|
|
57
57
|
placeholder: e.g. #123, #456
|
|
58
58
|
validations:
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
## v0.1.1rc42 (September 15, 2025)
|
|
2
|
+
|
|
3
|
+
Full Changelog: https://github.com/atlanhq/application-sdk/compare/v0.1.1rc41...v0.1.1rc42
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
- enhance file handling in Input classes (#697) (by @Mustafa in [a792fa6](https://github.com/atlanhq/application-sdk/commit/a792fa6))
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
|
|
4
|
+
## v0.1.1rc42 (September 15, 2025)
|
|
5
|
+
|
|
6
|
+
Full Changelog: https://github.com/atlanhq/application-sdk/compare/v0.1.1rc41...v0.1.1rc42
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
- enhance file handling in Input classes (#697) (by @Mustafa in [a792fa6](https://github.com/atlanhq/application-sdk/commit/a792fa6))
|
|
11
|
+
|
|
3
12
|
## v0.1.1rc41 (September 11, 2025)
|
|
4
13
|
|
|
5
14
|
Full Changelog: https://github.com/atlanhq/application-sdk/compare/v0.1.1rc40...v0.1.1rc41
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: atlan-application-sdk
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.1rc42
|
|
4
4
|
Summary: Atlan Application SDK is a Python library for developing applications on the Atlan Platform
|
|
5
5
|
Project-URL: Repository, https://github.com/atlanhq/application-sdk
|
|
6
6
|
Project-URL: Documentation, https://github.com/atlanhq/application-sdk/README.md
|
|
@@ -5,10 +5,11 @@ including workflow ID retrieval, automatic heartbeating, and periodic heartbeat
|
|
|
5
5
|
"""
|
|
6
6
|
|
|
7
7
|
import asyncio
|
|
8
|
+
import glob
|
|
8
9
|
import os
|
|
9
10
|
from datetime import timedelta
|
|
10
11
|
from functools import wraps
|
|
11
|
-
from typing import Any, Awaitable, Callable, Optional, TypeVar, cast
|
|
12
|
+
from typing import Any, Awaitable, Callable, List, Optional, TypeVar, cast
|
|
12
13
|
|
|
13
14
|
from temporalio import activity
|
|
14
15
|
|
|
@@ -79,17 +80,47 @@ def build_output_path() -> str:
|
|
|
79
80
|
|
|
80
81
|
def get_object_store_prefix(path: str) -> str:
|
|
81
82
|
"""Get the object store prefix for the path.
|
|
83
|
+
|
|
84
|
+
This function handles two types of paths:
|
|
85
|
+
1. Paths under TEMPORARY_PATH - converts them to relative object store paths
|
|
86
|
+
2. User-provided paths - returns them as-is (already relative object store paths)
|
|
87
|
+
|
|
82
88
|
Args:
|
|
83
|
-
path: The path to
|
|
89
|
+
path: The path to convert to object store prefix.
|
|
84
90
|
|
|
85
91
|
Returns:
|
|
86
92
|
The object store prefix for the path.
|
|
87
93
|
|
|
88
|
-
|
|
94
|
+
Examples:
|
|
95
|
+
>>> # Temporary path case
|
|
89
96
|
>>> get_object_store_prefix("./local/tmp/artifacts/apps/appName/workflows/wf-123/run-456")
|
|
90
97
|
"artifacts/apps/appName/workflows/wf-123/run-456"
|
|
98
|
+
|
|
99
|
+
>>> # User-provided path case
|
|
100
|
+
>>> get_object_store_prefix("datasets/sales/2024/")
|
|
101
|
+
"datasets/sales/2024"
|
|
91
102
|
"""
|
|
92
|
-
|
|
103
|
+
# Normalize paths for comparison
|
|
104
|
+
abs_path = os.path.abspath(path)
|
|
105
|
+
abs_temp_path = os.path.abspath(TEMPORARY_PATH)
|
|
106
|
+
|
|
107
|
+
# Check if path is under TEMPORARY_PATH
|
|
108
|
+
try:
|
|
109
|
+
# Use os.path.commonpath to properly check if path is under temp directory
|
|
110
|
+
# This prevents false positives like '/tmp/local123' matching '/tmp/local'
|
|
111
|
+
common_path = os.path.commonpath([abs_path, abs_temp_path])
|
|
112
|
+
if common_path == abs_temp_path:
|
|
113
|
+
# Path is under temp directory, convert to relative object store path
|
|
114
|
+
relative_path = os.path.relpath(abs_path, abs_temp_path)
|
|
115
|
+
# Normalize path separators to forward slashes for object store
|
|
116
|
+
return relative_path.replace(os.path.sep, "/")
|
|
117
|
+
else:
|
|
118
|
+
# Path is already a relative object store path, return as-is
|
|
119
|
+
return path.strip("/")
|
|
120
|
+
except ValueError:
|
|
121
|
+
# os.path.commonpath or os.path.relpath can raise ValueError on Windows with different drives
|
|
122
|
+
# In this case, treat as user-provided path, return as-is
|
|
123
|
+
return path.strip("/")
|
|
93
124
|
|
|
94
125
|
|
|
95
126
|
def auto_heartbeater(fn: F) -> F:
|
|
@@ -199,3 +230,46 @@ async def send_periodic_heartbeat(delay: float, *details: Any) -> None:
|
|
|
199
230
|
while True:
|
|
200
231
|
await asyncio.sleep(delay)
|
|
201
232
|
activity.heartbeat(*details)
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
def find_local_files_by_extension(
|
|
236
|
+
path: str,
|
|
237
|
+
extension: str,
|
|
238
|
+
file_names: Optional[List[str]] = None,
|
|
239
|
+
) -> List[str]:
|
|
240
|
+
"""Find local files at the specified local path, optionally filtering by file names.
|
|
241
|
+
|
|
242
|
+
Args:
|
|
243
|
+
path (str): Local path to search in (file or directory)
|
|
244
|
+
extension (str): File extension to filter by (e.g., '.parquet', '.json')
|
|
245
|
+
file_names (Optional[List[str]]): List of file names (basenames) to filter by, paths are not supported
|
|
246
|
+
|
|
247
|
+
Returns:
|
|
248
|
+
List[str]: List of matching file paths
|
|
249
|
+
|
|
250
|
+
Example:
|
|
251
|
+
>>> find_local_files_by_extension("/data", ".parquet", ["file1.parquet", "file2.parquet"])
|
|
252
|
+
['file1.parquet', 'file2.parquet']
|
|
253
|
+
|
|
254
|
+
>>> find_local_files_by_extension("/data/single.json", ".json")
|
|
255
|
+
['single.json']
|
|
256
|
+
"""
|
|
257
|
+
if os.path.isfile(path) and path.endswith(extension):
|
|
258
|
+
# Single file - return it directly
|
|
259
|
+
return [path]
|
|
260
|
+
|
|
261
|
+
elif os.path.isdir(path):
|
|
262
|
+
# Directory - find all files in directory
|
|
263
|
+
all_files = glob.glob(
|
|
264
|
+
os.path.join(path, "**", f"*{extension}"),
|
|
265
|
+
recursive=True,
|
|
266
|
+
)
|
|
267
|
+
|
|
268
|
+
# Filter by file names if specified
|
|
269
|
+
if file_names:
|
|
270
|
+
file_names_set = set(file_names) # Convert to set for O(1) lookup
|
|
271
|
+
return [f for f in all_files if os.path.basename(f) in file_names_set]
|
|
272
|
+
else:
|
|
273
|
+
return all_files
|
|
274
|
+
|
|
275
|
+
return []
|
|
@@ -860,9 +860,7 @@ class BaseSQLMetadataExtractionActivities(ActivitiesInterface):
|
|
|
860
860
|
|
|
861
861
|
raw_input = ParquetInput(
|
|
862
862
|
path=os.path.join(output_path, "raw"),
|
|
863
|
-
input_prefix=output_prefix,
|
|
864
863
|
file_names=workflow_args.get("file_names"),
|
|
865
|
-
chunk_size=None,
|
|
866
864
|
)
|
|
867
865
|
raw_input = raw_input.get_batched_daft_dataframe()
|
|
868
866
|
transformed_output = JsonOutput(
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import os
|
|
2
|
+
from abc import ABC, abstractmethod
|
|
3
|
+
from typing import TYPE_CHECKING, AsyncIterator, Iterator, List, Union
|
|
4
|
+
|
|
5
|
+
from application_sdk.activities.common.utils import (
|
|
6
|
+
find_local_files_by_extension,
|
|
7
|
+
get_object_store_prefix,
|
|
8
|
+
)
|
|
9
|
+
from application_sdk.common.error_codes import IOError
|
|
10
|
+
from application_sdk.constants import TEMPORARY_PATH
|
|
11
|
+
from application_sdk.observability.logger_adaptor import get_logger
|
|
12
|
+
from application_sdk.services.objectstore import ObjectStore
|
|
13
|
+
|
|
14
|
+
logger = get_logger(__name__)
|
|
15
|
+
|
|
16
|
+
if TYPE_CHECKING:
|
|
17
|
+
import daft
|
|
18
|
+
import pandas as pd
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class Input(ABC):
|
|
22
|
+
"""
|
|
23
|
+
Abstract base class for input data sources.
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
async def download_files(self) -> List[str]:
|
|
27
|
+
"""Download files from object store if not available locally.
|
|
28
|
+
|
|
29
|
+
Flow:
|
|
30
|
+
1. Check if files exist locally at self.path
|
|
31
|
+
2. If not, try to download from object store
|
|
32
|
+
3. Filter by self.file_names if provided
|
|
33
|
+
4. Return list of file paths for logging purposes
|
|
34
|
+
|
|
35
|
+
Returns:
|
|
36
|
+
List[str]: List of file paths
|
|
37
|
+
|
|
38
|
+
Raises:
|
|
39
|
+
AttributeError: When the input class doesn't support file operations or _extension
|
|
40
|
+
IOError: When no files found locally or in object store
|
|
41
|
+
"""
|
|
42
|
+
# Step 1: Check if files exist locally
|
|
43
|
+
local_files = find_local_files_by_extension(
|
|
44
|
+
self.path, self._EXTENSION, self.file_names
|
|
45
|
+
)
|
|
46
|
+
if local_files:
|
|
47
|
+
logger.info(
|
|
48
|
+
f"Found {len(local_files)} {self._EXTENSION} files locally at: {self.path}"
|
|
49
|
+
)
|
|
50
|
+
return local_files
|
|
51
|
+
|
|
52
|
+
# Step 2: Try to download from object store
|
|
53
|
+
logger.info(
|
|
54
|
+
f"No local {self._EXTENSION} files found at {self.path}, checking object store..."
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
try:
|
|
58
|
+
# Determine what to download based on path type and filters
|
|
59
|
+
downloaded_paths = []
|
|
60
|
+
|
|
61
|
+
if self.path.endswith(self._EXTENSION):
|
|
62
|
+
# Single file case (file_names validation already ensures this is valid)
|
|
63
|
+
source_path = get_object_store_prefix(self.path)
|
|
64
|
+
destination_path = os.path.join(TEMPORARY_PATH, source_path)
|
|
65
|
+
await ObjectStore.download_file(
|
|
66
|
+
source=source_path,
|
|
67
|
+
destination=destination_path,
|
|
68
|
+
)
|
|
69
|
+
downloaded_paths.append(destination_path)
|
|
70
|
+
|
|
71
|
+
elif self.file_names:
|
|
72
|
+
# Directory with specific files - download each file individually
|
|
73
|
+
for file_name in self.file_names:
|
|
74
|
+
file_path = os.path.join(self.path, file_name)
|
|
75
|
+
source_path = get_object_store_prefix(file_path)
|
|
76
|
+
destination_path = os.path.join(TEMPORARY_PATH, source_path)
|
|
77
|
+
await ObjectStore.download_file(
|
|
78
|
+
source=source_path,
|
|
79
|
+
destination=destination_path,
|
|
80
|
+
)
|
|
81
|
+
downloaded_paths.append(destination_path)
|
|
82
|
+
else:
|
|
83
|
+
# Download entire directory
|
|
84
|
+
source_path = get_object_store_prefix(self.path)
|
|
85
|
+
destination_path = os.path.join(TEMPORARY_PATH, source_path)
|
|
86
|
+
await ObjectStore.download_prefix(
|
|
87
|
+
source=source_path,
|
|
88
|
+
destination=destination_path,
|
|
89
|
+
)
|
|
90
|
+
# Find the actual files in the downloaded directory
|
|
91
|
+
found_files = find_local_files_by_extension(
|
|
92
|
+
destination_path, self._EXTENSION, getattr(self, "file_names", None)
|
|
93
|
+
)
|
|
94
|
+
downloaded_paths.extend(found_files)
|
|
95
|
+
|
|
96
|
+
# Check results
|
|
97
|
+
if downloaded_paths:
|
|
98
|
+
logger.info(
|
|
99
|
+
f"Successfully downloaded {len(downloaded_paths)} {self._EXTENSION} files from object store"
|
|
100
|
+
)
|
|
101
|
+
return downloaded_paths
|
|
102
|
+
else:
|
|
103
|
+
raise IOError(
|
|
104
|
+
f"{IOError.OBJECT_STORE_READ_ERROR}: Downloaded from object store but no {self._EXTENSION} files found"
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
except Exception as e:
|
|
108
|
+
logger.error(f"Failed to download from object store: {str(e)}")
|
|
109
|
+
raise IOError(
|
|
110
|
+
f"{IOError.OBJECT_STORE_DOWNLOAD_ERROR}: No {self._EXTENSION} files found locally at '{self.path}' and failed to download from object store. "
|
|
111
|
+
f"Error: {str(e)}"
|
|
112
|
+
)
|
|
113
|
+
|
|
114
|
+
@abstractmethod
|
|
115
|
+
async def get_batched_dataframe(
|
|
116
|
+
self,
|
|
117
|
+
) -> Union[Iterator["pd.DataFrame"], AsyncIterator["pd.DataFrame"]]:
|
|
118
|
+
"""
|
|
119
|
+
Get an iterator of batched pandas DataFrames.
|
|
120
|
+
|
|
121
|
+
Returns:
|
|
122
|
+
Iterator["pd.DataFrame"]: An iterator of batched pandas DataFrames.
|
|
123
|
+
|
|
124
|
+
Raises:
|
|
125
|
+
NotImplementedError: If the method is not implemented.
|
|
126
|
+
"""
|
|
127
|
+
raise NotImplementedError
|
|
128
|
+
|
|
129
|
+
@abstractmethod
|
|
130
|
+
async def get_dataframe(self) -> "pd.DataFrame":
|
|
131
|
+
"""
|
|
132
|
+
Get a single pandas DataFrame.
|
|
133
|
+
|
|
134
|
+
Returns:
|
|
135
|
+
"pd.DataFrame": A pandas DataFrame.
|
|
136
|
+
|
|
137
|
+
Raises:
|
|
138
|
+
NotImplementedError: If the method is not implemented.
|
|
139
|
+
"""
|
|
140
|
+
raise NotImplementedError
|
|
141
|
+
|
|
142
|
+
@abstractmethod
|
|
143
|
+
async def get_batched_daft_dataframe(
|
|
144
|
+
self,
|
|
145
|
+
) -> Union[Iterator["daft.DataFrame"], AsyncIterator["daft.DataFrame"]]: # noqa: F821
|
|
146
|
+
"""
|
|
147
|
+
Get an iterator of batched daft DataFrames.
|
|
148
|
+
|
|
149
|
+
Returns:
|
|
150
|
+
Iterator[daft.DataFrame]: An iterator of batched daft DataFrames.
|
|
151
|
+
|
|
152
|
+
Raises:
|
|
153
|
+
NotImplementedError: If the method is not implemented.
|
|
154
|
+
"""
|
|
155
|
+
raise NotImplementedError
|
|
156
|
+
|
|
157
|
+
@abstractmethod
|
|
158
|
+
async def get_daft_dataframe(self) -> "daft.DataFrame": # noqa: F821
|
|
159
|
+
"""
|
|
160
|
+
Get a single daft DataFrame.
|
|
161
|
+
|
|
162
|
+
Returns:
|
|
163
|
+
daft.DataFrame: A daft DataFrame.
|
|
164
|
+
|
|
165
|
+
Raises:
|
|
166
|
+
NotImplementedError: If the method is not implemented.
|
|
167
|
+
"""
|
|
168
|
+
raise NotImplementedError
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
from typing import TYPE_CHECKING, AsyncIterator, Iterator, List, Optional, Union
|
|
2
|
+
|
|
3
|
+
from application_sdk.inputs import Input
|
|
4
|
+
from application_sdk.observability.logger_adaptor import get_logger
|
|
5
|
+
|
|
6
|
+
if TYPE_CHECKING:
|
|
7
|
+
import daft
|
|
8
|
+
import pandas as pd
|
|
9
|
+
|
|
10
|
+
logger = get_logger(__name__)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class JsonInput(Input):
|
|
14
|
+
"""
|
|
15
|
+
JSON Input class to read data from JSON files using daft and pandas.
|
|
16
|
+
Supports reading both single files and directories containing multiple JSON files.
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
_EXTENSION = ".json"
|
|
20
|
+
|
|
21
|
+
def __init__(
|
|
22
|
+
self,
|
|
23
|
+
path: str,
|
|
24
|
+
file_names: Optional[List[str]] = None,
|
|
25
|
+
chunk_size: int = 100000,
|
|
26
|
+
):
|
|
27
|
+
"""Initialize the JsonInput class.
|
|
28
|
+
|
|
29
|
+
Args:
|
|
30
|
+
path (str): Path to JSON file or directory containing JSON files.
|
|
31
|
+
It accepts both types of paths:
|
|
32
|
+
local path or object store path
|
|
33
|
+
Wildcards are not supported.
|
|
34
|
+
file_names (Optional[List[str]]): List of specific file names to read. Defaults to None.
|
|
35
|
+
chunk_size (int): Number of rows per batch. Defaults to 100000.
|
|
36
|
+
|
|
37
|
+
Raises:
|
|
38
|
+
ValueError: When path is not provided or when single file path is combined with file_names
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
# Validate that single file path and file_names are not both specified
|
|
42
|
+
if path.endswith(self._EXTENSION) and file_names:
|
|
43
|
+
raise ValueError(
|
|
44
|
+
f"Cannot specify both a single file path ('{path}') and file_names filter. "
|
|
45
|
+
f"Either provide a directory path with file_names, or specify the exact file path without file_names."
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
self.path = path
|
|
49
|
+
self.chunk_size = chunk_size
|
|
50
|
+
self.file_names = file_names
|
|
51
|
+
|
|
52
|
+
async def get_batched_dataframe(
|
|
53
|
+
self,
|
|
54
|
+
) -> Union[AsyncIterator["pd.DataFrame"], Iterator["pd.DataFrame"]]:
|
|
55
|
+
"""
|
|
56
|
+
Method to read the data from the json files in the path
|
|
57
|
+
and return as a batched pandas dataframe
|
|
58
|
+
"""
|
|
59
|
+
try:
|
|
60
|
+
import pandas as pd
|
|
61
|
+
|
|
62
|
+
# Ensure files are available (local or downloaded)
|
|
63
|
+
json_files = await self.download_files()
|
|
64
|
+
logger.info(f"Reading {len(json_files)} JSON files in batches")
|
|
65
|
+
|
|
66
|
+
for json_file in json_files:
|
|
67
|
+
json_reader_obj = pd.read_json(
|
|
68
|
+
json_file,
|
|
69
|
+
chunksize=self.chunk_size,
|
|
70
|
+
lines=True,
|
|
71
|
+
)
|
|
72
|
+
for chunk in json_reader_obj:
|
|
73
|
+
yield chunk
|
|
74
|
+
except Exception as e:
|
|
75
|
+
logger.error(f"Error reading batched data from JSON: {str(e)}")
|
|
76
|
+
raise
|
|
77
|
+
|
|
78
|
+
async def get_dataframe(self) -> "pd.DataFrame":
|
|
79
|
+
"""
|
|
80
|
+
Method to read the data from the json files in the path
|
|
81
|
+
and return as a single combined pandas dataframe
|
|
82
|
+
"""
|
|
83
|
+
try:
|
|
84
|
+
import pandas as pd
|
|
85
|
+
|
|
86
|
+
# Ensure files are available (local or downloaded)
|
|
87
|
+
json_files = await self.download_files()
|
|
88
|
+
logger.info(f"Reading {len(json_files)} JSON files as pandas dataframe")
|
|
89
|
+
|
|
90
|
+
return pd.concat(
|
|
91
|
+
(pd.read_json(json_file, lines=True) for json_file in json_files),
|
|
92
|
+
ignore_index=True,
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
except Exception as e:
|
|
96
|
+
logger.error(f"Error reading data from JSON: {str(e)}")
|
|
97
|
+
raise
|
|
98
|
+
|
|
99
|
+
async def get_batched_daft_dataframe(
|
|
100
|
+
self,
|
|
101
|
+
) -> Union[AsyncIterator["daft.DataFrame"], Iterator["daft.DataFrame"]]: # noqa: F821
|
|
102
|
+
"""
|
|
103
|
+
Method to read the data from the json files in the path
|
|
104
|
+
and return as a batched daft dataframe
|
|
105
|
+
"""
|
|
106
|
+
try:
|
|
107
|
+
import daft
|
|
108
|
+
|
|
109
|
+
# Ensure files are available (local or downloaded)
|
|
110
|
+
json_files = await self.download_files()
|
|
111
|
+
logger.info(f"Reading {len(json_files)} JSON files as daft batches")
|
|
112
|
+
|
|
113
|
+
# Yield each discovered file as separate batch with chunking
|
|
114
|
+
for json_file in json_files:
|
|
115
|
+
yield daft.read_json(json_file, _chunk_size=self.chunk_size)
|
|
116
|
+
except Exception as e:
|
|
117
|
+
logger.error(f"Error reading batched data from JSON using daft: {str(e)}")
|
|
118
|
+
raise
|
|
119
|
+
|
|
120
|
+
async def get_daft_dataframe(self) -> "daft.DataFrame": # noqa: F821
|
|
121
|
+
"""
|
|
122
|
+
Method to read the data from the json files in the path
|
|
123
|
+
and return as a single combined daft dataframe
|
|
124
|
+
"""
|
|
125
|
+
try:
|
|
126
|
+
import daft
|
|
127
|
+
|
|
128
|
+
# Ensure files are available (local or downloaded)
|
|
129
|
+
json_files = await self.download_files()
|
|
130
|
+
logger.info(f"Reading {len(json_files)} JSON files with daft")
|
|
131
|
+
|
|
132
|
+
# Use the discovered/downloaded files directly
|
|
133
|
+
return daft.read_json(json_files)
|
|
134
|
+
except Exception as e:
|
|
135
|
+
logger.error(f"Error reading data from JSON using daft: {str(e)}")
|
|
136
|
+
raise
|