atlan-application-sdk 0.1.1rc37__tar.gz → 0.1.1rc39__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.
Files changed (405) hide show
  1. atlan_application_sdk-0.1.1rc39/.github/release_notes.md +8 -0
  2. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/workflows/pre-release.yaml +1 -1
  3. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/workflows/pull_request.yaml +1 -1
  4. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/workflows/push.yaml +1 -1
  5. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/workflows/scale-tests.yaml +1 -1
  6. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/workflows/schedule.yaml +1 -1
  7. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/workflows/tag-and-publish.yaml +1 -1
  8. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/CHANGELOG.md +15 -0
  9. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/PKG-INFO +1 -1
  10. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/clients/atlan.py +56 -0
  11. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/clients/temporal.py +1 -1
  12. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/outputs/parquet.py +79 -34
  13. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/services/objectstore.py +83 -18
  14. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/version.py +1 -1
  15. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/pyproject.toml +1 -1
  16. atlan_application_sdk-0.1.1rc39/tests/unit/clients/test_atlan_client.py +606 -0
  17. atlan_application_sdk-0.1.1rc39/tests/unit/outputs/test_parquet_output.py +479 -0
  18. atlan_application_sdk-0.1.1rc39/tests/unit/services/test_objectstore.py +201 -0
  19. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/uv.lock +1 -1
  20. atlan_application_sdk-0.1.1rc37/.github/release_notes.md +0 -7
  21. atlan_application_sdk-0.1.1rc37/application_sdk/clients/async_atlan.py +0 -70
  22. atlan_application_sdk-0.1.1rc37/tests/unit/clients/test_async_atlan.py +0 -309
  23. atlan_application_sdk-0.1.1rc37/tests/unit/clients/test_atlan_client.py +0 -303
  24. atlan_application_sdk-0.1.1rc37/tests/unit/services/test_objectstore.py +0 -79
  25. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.cursor/BUGBOT.md +0 -0
  26. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.cursor/rules/documentation.mdc +0 -0
  27. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.cursor/rules/exception-handling.mdc +0 -0
  28. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.cursor/rules/guidelines.mdc +0 -0
  29. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.cursor/rules/logging.mdc +0 -0
  30. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.cursor/rules/performance.mdc +0 -0
  31. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.cursor/rules/setup.mdc +0 -0
  32. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.cursor/rules/standards.mdc +0 -0
  33. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.cursor/rules/testing.mdc +0 -0
  34. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.env.example +0 -0
  35. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/CODEOWNERS +0 -0
  36. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
  37. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/ISSUE_TEMPLATE/config.yaml +0 -0
  38. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
  39. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/actions/docgen/action.yaml +0 -0
  40. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/actions/doclint/action.yaml +0 -0
  41. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/actions/docstring-coverage/action.yaml +0 -0
  42. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/actions/e2e-apps/action.yaml +0 -0
  43. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/actions/e2e-examples/action.yaml +0 -0
  44. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/actions/setup-deps/action.yaml +0 -0
  45. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/actions/sync-branches/action.yaml +0 -0
  46. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/actions/trivy/action.yaml +0 -0
  47. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/actions/trivy-container/action.yaml +0 -0
  48. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/actions/unit-tests/action.yaml +0 -0
  49. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/dependabot.yaml +0 -0
  50. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/pull_request_template.md +0 -0
  51. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/scripts/extract_release_notes.py +0 -0
  52. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/scripts/pre_release.py +0 -0
  53. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/scripts/release.py +0 -0
  54. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/scripts/trivy-to-markdown.py +0 -0
  55. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/scripts/update_changelog.py +0 -0
  56. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/AMPM.yml +0 -0
  57. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/Accessibility.yml +0 -0
  58. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/Acronyms.yml +0 -0
  59. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/Adverbs.yml +0 -0
  60. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/Auto.yml +0 -0
  61. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/Avoid.yml +0 -0
  62. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/Contractions.yml +0 -0
  63. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/Dashes.yml +0 -0
  64. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/DateFormat.yml +0 -0
  65. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/DateNumbers.yml +0 -0
  66. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/DateOrder.yml +0 -0
  67. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/Ellipses.yml +0 -0
  68. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/FirstPerson.yml +0 -0
  69. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/Foreign.yml +0 -0
  70. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/Gender.yml +0 -0
  71. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/GenderBias.yml +0 -0
  72. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/GeneralURL.yml +0 -0
  73. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/HeadingAcronyms.yml +0 -0
  74. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/HeadingColons.yml +0 -0
  75. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/HeadingPunctuation.yml +0 -0
  76. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/Headings.yml +0 -0
  77. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/Hyphens.yml +0 -0
  78. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/Negative.yml +0 -0
  79. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/Ordinal.yml +0 -0
  80. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/OxfordComma.yml +0 -0
  81. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/Passive.yml +0 -0
  82. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/Percentages.yml +0 -0
  83. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/Plurals.yml +0 -0
  84. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/Quotes.yml +0 -0
  85. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/RangeTime.yml +0 -0
  86. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/Semicolon.yml +0 -0
  87. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/SentenceLength.yml +0 -0
  88. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/Spacing.yml +0 -0
  89. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/Suspended.yml +0 -0
  90. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/Terms.yml +0 -0
  91. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/URLFormat.yml +0 -0
  92. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/Units.yml +0 -0
  93. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/Vocab.yml +0 -0
  94. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/We.yml +0 -0
  95. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/Wordiness.yml +0 -0
  96. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/Microsoft/meta.json +0 -0
  97. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/config/vocabularies/deviations/accept.txt +0 -0
  98. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/styles/config/vocabularies/deviations/reject.txt +0 -0
  99. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/workflow-templates/checks.properties.json +0 -0
  100. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/workflow-templates/checks.yaml +0 -0
  101. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/workflow-templates/codeql.properties.json +0 -0
  102. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/workflow-templates/codeql.yaml +0 -0
  103. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/workflow-templates/dependency-review.properties.json +0 -0
  104. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/workflow-templates/dependency-review.yml +0 -0
  105. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/workflow-templates/stale.properties.json +0 -0
  106. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/workflow-templates/stale.yml +0 -0
  107. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/workflow-templates/trivy-container.properties.json +0 -0
  108. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/workflow-templates/trivy-container.yaml +0 -0
  109. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/workflow-templates/trivy.properties.json +0 -0
  110. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/workflow-templates/trivy.yaml +0 -0
  111. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/workflows/codeql.yaml +0 -0
  112. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/workflows/release.yaml.disabled +0 -0
  113. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/workflows/trivy-container.yaml +0 -0
  114. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.github/workflows/verify-snyk-status.yml +0 -0
  115. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.gitignore +0 -0
  116. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.pre-commit-config.yaml +0 -0
  117. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/.vscode/launch.json +0 -0
  118. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/CODE_OF_CONDUCT.md +0 -0
  119. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/CONTRIBUTING.md +0 -0
  120. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/LICENSE +0 -0
  121. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/NOTICE +0 -0
  122. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/README.md +0 -0
  123. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/SECURITY.md +0 -0
  124. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/__init__.py +0 -0
  125. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/activities/__init__.py +0 -0
  126. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/activities/common/__init__.py +0 -0
  127. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/activities/common/models.py +0 -0
  128. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/activities/common/utils.py +0 -0
  129. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/activities/lock_management.py +0 -0
  130. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/activities/metadata_extraction/__init__.py +0 -0
  131. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/activities/metadata_extraction/base.py +0 -0
  132. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/activities/metadata_extraction/rest.py +0 -0
  133. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/activities/metadata_extraction/sql.py +0 -0
  134. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/activities/query_extraction/__init__.py +0 -0
  135. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/activities/query_extraction/sql.py +0 -0
  136. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/application/__init__.py +0 -0
  137. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/application/metadata_extraction/sql.py +0 -0
  138. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/clients/__init__.py +0 -0
  139. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/clients/atlan_auth.py +0 -0
  140. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/clients/base.py +0 -0
  141. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/clients/redis.py +0 -0
  142. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/clients/sql.py +0 -0
  143. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/clients/utils.py +0 -0
  144. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/clients/workflow.py +0 -0
  145. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/common/__init__.py +0 -0
  146. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/common/aws_utils.py +0 -0
  147. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/common/dapr_utils.py +0 -0
  148. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/common/dataframe_utils.py +0 -0
  149. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/common/error_codes.py +0 -0
  150. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/common/utils.py +0 -0
  151. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/constants.py +0 -0
  152. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/decorators/__init__.py +0 -0
  153. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/decorators/locks.py +0 -0
  154. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/docgen/__init__.py +0 -0
  155. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/docgen/exporters/__init__.py +0 -0
  156. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/docgen/exporters/mkdocs.py +0 -0
  157. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/docgen/models/__init__.py +0 -0
  158. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/docgen/models/export/__init__.py +0 -0
  159. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/docgen/models/export/page.py +0 -0
  160. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/docgen/models/manifest/__init__.py +0 -0
  161. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/docgen/models/manifest/customer.py +0 -0
  162. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/docgen/models/manifest/internal.py +0 -0
  163. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/docgen/models/manifest/metadata.py +0 -0
  164. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/docgen/models/manifest/page.py +0 -0
  165. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/docgen/models/manifest/section.py +0 -0
  166. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/docgen/parsers/__init__.py +0 -0
  167. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/docgen/parsers/directory.py +0 -0
  168. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/docgen/parsers/manifest.py +0 -0
  169. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/events/__init__.py +0 -0
  170. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/events/models.py +0 -0
  171. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/handlers/__init__.py +0 -0
  172. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/handlers/base.py +0 -0
  173. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/handlers/sql.py +0 -0
  174. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/inputs/__init__.py +0 -0
  175. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/inputs/iceberg.py +0 -0
  176. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/inputs/json.py +0 -0
  177. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/inputs/parquet.py +0 -0
  178. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/inputs/sql_query.py +0 -0
  179. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/interceptors/__init__.py +0 -0
  180. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/interceptors/events.py +0 -0
  181. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/interceptors/lock.py +0 -0
  182. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/observability/__init__.py +0 -0
  183. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/observability/decorators/observability_decorator.py +0 -0
  184. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/observability/logger_adaptor.py +0 -0
  185. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/observability/metrics_adaptor.py +0 -0
  186. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/observability/observability.py +0 -0
  187. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/observability/traces_adaptor.py +0 -0
  188. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/observability/utils.py +0 -0
  189. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/outputs/__init__.py +0 -0
  190. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/outputs/iceberg.py +0 -0
  191. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/outputs/json.py +0 -0
  192. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/server/__init__.py +0 -0
  193. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/server/fastapi/__init__.py +0 -0
  194. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/server/fastapi/middleware/logmiddleware.py +0 -0
  195. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/server/fastapi/middleware/metrics.py +0 -0
  196. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/server/fastapi/models.py +0 -0
  197. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/server/fastapi/routers/__init__.py +0 -0
  198. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/server/fastapi/routers/server.py +0 -0
  199. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/server/fastapi/utils.py +0 -0
  200. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/services/__init__.py +0 -0
  201. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/services/atlan_storage.py +0 -0
  202. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/services/eventstore.py +0 -0
  203. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/services/secretstore.py +0 -0
  204. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/services/statestore.py +0 -0
  205. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/__init__.py +0 -0
  206. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/e2e/__init__.py +0 -0
  207. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/e2e/base.py +0 -0
  208. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/e2e/client.py +0 -0
  209. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/e2e/conftest.py +0 -0
  210. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/e2e/utils.py +0 -0
  211. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/hypothesis/__init__.py +0 -0
  212. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/hypothesis/strategies/__init__.py +0 -0
  213. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/hypothesis/strategies/clients/__init__.py +0 -0
  214. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/hypothesis/strategies/clients/sql.py +0 -0
  215. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/hypothesis/strategies/common/__init__.py +0 -0
  216. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/hypothesis/strategies/common/logger.py +0 -0
  217. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/hypothesis/strategies/handlers/__init__.py +0 -0
  218. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/hypothesis/strategies/handlers/sql/__init__.py +0 -0
  219. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/hypothesis/strategies/handlers/sql/sql_metadata.py +0 -0
  220. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/hypothesis/strategies/handlers/sql/sql_preflight.py +0 -0
  221. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/hypothesis/strategies/inputs/__init__.py +0 -0
  222. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/hypothesis/strategies/inputs/json_input.py +0 -0
  223. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/hypothesis/strategies/inputs/parquet_input.py +0 -0
  224. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/hypothesis/strategies/outputs/__init__.py +0 -0
  225. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/hypothesis/strategies/outputs/json_output.py +0 -0
  226. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/hypothesis/strategies/outputs/statestore.py +0 -0
  227. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/hypothesis/strategies/server/__init__.py +0 -0
  228. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/hypothesis/strategies/server/fastapi/__init__.py +0 -0
  229. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/hypothesis/strategies/sql_client.py +0 -0
  230. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/hypothesis/strategies/temporal.py +0 -0
  231. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/scale_data_generator/README.md +0 -0
  232. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/scale_data_generator/__init__.py +0 -0
  233. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/scale_data_generator/config_loader.py +0 -0
  234. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/scale_data_generator/data_generator.py +0 -0
  235. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/scale_data_generator/driver.py +0 -0
  236. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/scale_data_generator/examples/config.yaml +0 -0
  237. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/scale_data_generator/output_handler/__init__.py +0 -0
  238. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/scale_data_generator/output_handler/base.py +0 -0
  239. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/scale_data_generator/output_handler/csv_handler.py +0 -0
  240. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/scale_data_generator/output_handler/json_handler.py +0 -0
  241. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/scale_data_generator/output_handler/parquet_handler.py +0 -0
  242. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/test_utils/workflow_monitoring.py +0 -0
  243. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/transformers/__init__.py +0 -0
  244. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/transformers/atlas/__init__.py +0 -0
  245. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/transformers/atlas/sql.py +0 -0
  246. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/transformers/common/__init__.py +0 -0
  247. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/transformers/common/utils.py +0 -0
  248. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/transformers/query/__init__.py +0 -0
  249. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/transformers/query/templates/column.yaml +0 -0
  250. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/transformers/query/templates/database.yaml +0 -0
  251. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/transformers/query/templates/extras-procedure.yaml +0 -0
  252. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/transformers/query/templates/function.yaml +0 -0
  253. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/transformers/query/templates/schema.yaml +0 -0
  254. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/transformers/query/templates/table.yaml +0 -0
  255. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/transformers/query/templates/tag_attachment.yaml +0 -0
  256. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/worker.py +0 -0
  257. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/workflows/__init__.py +0 -0
  258. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/workflows/metadata_extraction/__init__.py +0 -0
  259. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/workflows/metadata_extraction/sql.py +0 -0
  260. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/workflows/query_extraction/__init__.py +0 -0
  261. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/application_sdk/workflows/query_extraction/sql.py +0 -0
  262. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/components/README.md +0 -0
  263. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/components/atlan-storage.yaml +0 -0
  264. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/components/aws-secrets.yaml +0 -0
  265. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/components/deployment-secrets.yaml +0 -0
  266. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/components/eventstore.yaml +0 -0
  267. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/components/objectstore.yaml +0 -0
  268. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/components/secretstore.yaml +0 -0
  269. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/components/statestore.yaml +0 -0
  270. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/docs/concepts/activities.md +0 -0
  271. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/docs/concepts/application.md +0 -0
  272. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/docs/concepts/application_sql.md +0 -0
  273. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/docs/concepts/atlanupload.md +0 -0
  274. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/docs/concepts/clients.md +0 -0
  275. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/docs/concepts/common.md +0 -0
  276. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/docs/concepts/handlers.md +0 -0
  277. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/docs/concepts/inputs.md +0 -0
  278. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/docs/concepts/output_paths.md +0 -0
  279. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/docs/concepts/outputs.md +0 -0
  280. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/docs/concepts/server.md +0 -0
  281. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/docs/concepts/services.md +0 -0
  282. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/docs/concepts/temporal_auth.md +0 -0
  283. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/docs/concepts/worker.md +0 -0
  284. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/docs/concepts/workflows.md +0 -0
  285. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/docs/configuration.md +0 -0
  286. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/docs/guides/architecture.md +0 -0
  287. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/docs/guides/atlantis.md +0 -0
  288. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/docs/guides/best-practices.md +0 -0
  289. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/docs/guides/getting-started.md +0 -0
  290. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/docs/guides/index.md +0 -0
  291. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/docs/guides/partners.md +0 -0
  292. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/docs/guides/secretstores.md +0 -0
  293. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/docs/guides/sql-application-guide.md +0 -0
  294. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/docs/guides/test-framework.md +0 -0
  295. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/docs/index.md +0 -0
  296. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/docs/setup/LINUX.md +0 -0
  297. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/docs/setup/MAC.md +0 -0
  298. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/docs/setup/WINDOWS.md +0 -0
  299. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/docs/setup/troubleshooting.md +0 -0
  300. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/docs/static/assets/logo.svg +0 -0
  301. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/docs/static/images/phoenix-sdk-featureset.png +0 -0
  302. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/docs/static/javascripts/mathjax.js +0 -0
  303. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/docs/static/stylesheets/extra.css +0 -0
  304. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/docs/mkdocs.yml +0 -0
  305. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/examples/README.md +0 -0
  306. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/examples/application_custom_fastapi.py +0 -0
  307. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/examples/application_fastapi.py +0 -0
  308. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/examples/application_hello_world.py +0 -0
  309. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/examples/application_sql.py +0 -0
  310. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/examples/application_sql_miner.py +0 -0
  311. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/examples/application_sql_with_custom_pyatlan_transformer.py +0 -0
  312. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/examples/application_sql_with_custom_transformer.py +0 -0
  313. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/examples/run_examples.py +0 -0
  314. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/examples/sql_query_templates/database.yaml +0 -0
  315. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/__init__.py +0 -0
  316. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/conftest.py +0 -0
  317. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/__init__.py +0 -0
  318. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/activities/__init__.py +0 -0
  319. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/activities/common/__init__.py +0 -0
  320. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/activities/common/test_utils.py +0 -0
  321. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/activities/metadata_extraction/__init__.py +0 -0
  322. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/activities/metadata_extraction/test_sql.py +0 -0
  323. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/activities/query_extraction/__init__.py +0 -0
  324. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/activities/test_activities.py +0 -0
  325. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/activities/test_lock_management.py +0 -0
  326. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/application/__init__.py +0 -0
  327. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/application/metadata_extraction/test_sql.py +0 -0
  328. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/application/test_application.py +0 -0
  329. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/clients/__init__.py +0 -0
  330. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/clients/test_async_sql_client.py +0 -0
  331. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/clients/test_atlan_auth.py +0 -0
  332. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/clients/test_atlanauth.py +0 -0
  333. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/clients/test_base_client.py +0 -0
  334. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/clients/test_redis_client.py +0 -0
  335. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/clients/test_sql_client.py +0 -0
  336. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/clients/test_temporal_client.py +0 -0
  337. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/common/test_aws_utils.py +0 -0
  338. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/common/test_credential_utils.py +0 -0
  339. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/common/test_utils.py +0 -0
  340. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/docgen/parsers/test_directory_parser.py +0 -0
  341. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/docgen/parsers/test_manifest_parser.py +0 -0
  342. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/handlers/__init__.py +0 -0
  343. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/handlers/sql/test_auth.py +0 -0
  344. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/handlers/sql/test_check_schemas_and_databases.py +0 -0
  345. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/handlers/sql/test_extract_allowed_schemas.py +0 -0
  346. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/handlers/sql/test_metadata.py +0 -0
  347. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/handlers/sql/test_preflight_check.py +0 -0
  348. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/handlers/sql/test_prepare_metadata.py +0 -0
  349. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/handlers/sql/test_tables_check.py +0 -0
  350. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/handlers/sql/test_validate_filters.py +0 -0
  351. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/handlers/test_base_handler.py +0 -0
  352. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/inputs/test_json.py +0 -0
  353. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/inputs/test_parquet.py +0 -0
  354. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/observability/__init__.py +0 -0
  355. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/observability/test_logger_adaptor.py +0 -0
  356. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/observability/test_metrics_adaptor.py +0 -0
  357. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/observability/test_traces_adaptor.py +0 -0
  358. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/outputs/test_iceberg.py +0 -0
  359. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/outputs/test_json_output.py +0 -0
  360. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/outputs/test_output.py +0 -0
  361. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/server/__init__.py +0 -0
  362. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/server/fastapi/routers/__init__.py +0 -0
  363. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/server/fastapi/routers/server.py +0 -0
  364. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/server/fastapi/test_fastapi.py +0 -0
  365. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/services/test_atlan_storage.py +0 -0
  366. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/services/test_eventstore.py +0 -0
  367. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/services/test_statestore.py +0 -0
  368. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/test_worker.py +0 -0
  369. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/transformers/__init__.py +0 -0
  370. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/transformers/atlas/__init__.py +0 -0
  371. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/transformers/atlas/resources/raw_columns.json +0 -0
  372. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/transformers/atlas/resources/raw_databases.json +0 -0
  373. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/transformers/atlas/resources/raw_functions.json +0 -0
  374. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/transformers/atlas/resources/raw_procedures.json +0 -0
  375. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/transformers/atlas/resources/raw_schemas.json +0 -0
  376. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/transformers/atlas/resources/raw_tables.json +0 -0
  377. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/transformers/atlas/resources/transformed_columns.json +0 -0
  378. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/transformers/atlas/resources/transformed_databases.json +0 -0
  379. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/transformers/atlas/resources/transformed_functions.json +0 -0
  380. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/transformers/atlas/resources/transformed_procedures.json +0 -0
  381. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/transformers/atlas/resources/transformed_schemas.json +0 -0
  382. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/transformers/atlas/resources/transformed_tables.json +0 -0
  383. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/transformers/atlas/test_column.py +0 -0
  384. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/transformers/atlas/test_database.py +0 -0
  385. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/transformers/atlas/test_function.py +0 -0
  386. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/transformers/atlas/test_procedure.py +0 -0
  387. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/transformers/atlas/test_schema.py +0 -0
  388. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/transformers/atlas/test_table.py +0 -0
  389. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/transformers/query/resources/raw/column.json +0 -0
  390. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/transformers/query/resources/raw/database.json +0 -0
  391. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/transformers/query/resources/raw/extras-procedure.json +0 -0
  392. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/transformers/query/resources/raw/function.json +0 -0
  393. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/transformers/query/resources/raw/schema.json +0 -0
  394. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/transformers/query/resources/raw/table.json +0 -0
  395. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/transformers/query/resources/transformed/column.json +0 -0
  396. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/transformers/query/resources/transformed/database.json +0 -0
  397. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/transformers/query/resources/transformed/extras-procedure.json +0 -0
  398. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/transformers/query/resources/transformed/function.json +0 -0
  399. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/transformers/query/resources/transformed/schema.json +0 -0
  400. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/transformers/query/resources/transformed/table.json +0 -0
  401. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/transformers/query/test_sql_transformer.py +0 -0
  402. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/transformers/query/test_sql_transformer_output_validation.py +0 -0
  403. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/workflows/metadata_extraction/test_sql_workflow.py +0 -0
  404. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/workflows/query_extraction/__init__.py +0 -0
  405. {atlan_application_sdk-0.1.1rc37 → atlan_application_sdk-0.1.1rc39}/tests/unit/workflows/query_extraction/test_sql.py +0 -0
@@ -0,0 +1,8 @@
1
+ ## v0.1.1rc39 (September 04, 2025)
2
+
3
+ Full Changelog: https://github.com/atlanhq/application-sdk/compare/v0.1.1rc38...v0.1.1rc39
4
+
5
+ ### Features
6
+
7
+ - implement delete file and prefix operations in ObjectStore (#694) (by @Mustafa in [6f71615](https://github.com/atlanhq/application-sdk/commit/6f71615))
8
+ - add Daft configuration constants and update Parquet output handling (by @Mustafa in [68c2593](https://github.com/atlanhq/application-sdk/commit/68c2593))
@@ -23,7 +23,7 @@ jobs:
23
23
  fetch-depth: 0 # Need full history for changelog
24
24
 
25
25
  - name: Set up Python
26
- uses: actions/setup-python@v5
26
+ uses: actions/setup-python@v6
27
27
  with:
28
28
  python-version: '3.11'
29
29
 
@@ -192,7 +192,7 @@ jobs:
192
192
  uv run poe generate-apidocs
193
193
 
194
194
  - name: Setup AWS Credentials
195
- uses: aws-actions/configure-aws-credentials@v4
195
+ uses: aws-actions/configure-aws-credentials@v5
196
196
  with:
197
197
  aws-region: ap-south-1
198
198
  # Only usable in atlanhq repositories
@@ -70,7 +70,7 @@ jobs:
70
70
  uv run poe generate-apidocs
71
71
 
72
72
  - name: Setup AWS Credentials
73
- uses: aws-actions/configure-aws-credentials@v4
73
+ uses: aws-actions/configure-aws-credentials@v5
74
74
  with:
75
75
  aws-region: ap-south-1
76
76
  # Only usable in atlanhq repositories
@@ -28,7 +28,7 @@ jobs:
28
28
  fetch-depth: 0
29
29
 
30
30
  - name: Set up Python 3.11
31
- uses: actions/setup-python@v5
31
+ uses: actions/setup-python@v6
32
32
  with:
33
33
  python-version: "3.11"
34
34
 
@@ -13,7 +13,7 @@ jobs:
13
13
  runs-on: ubuntu-latest
14
14
  steps:
15
15
  - name: Close Stale PRs
16
- uses: actions/stale@v9
16
+ uses: actions/stale@v10
17
17
  with:
18
18
  repo-token: ${{ secrets.ORG_PAT_GITHUB }}
19
19
  stale-issue-message: 'Stale Issue'
@@ -23,7 +23,7 @@ jobs:
23
23
  fetch-depth: 0 # Need full history for release notes
24
24
 
25
25
  - name: Setup Python
26
- uses: actions/setup-python@v5
26
+ uses: actions/setup-python@v6
27
27
  with:
28
28
  python-version: '3.11'
29
29
 
@@ -1,5 +1,20 @@
1
1
  # Changelog
2
2
 
3
+ ## v0.1.1rc39 (September 04, 2025)
4
+
5
+ Full Changelog: https://github.com/atlanhq/application-sdk/compare/v0.1.1rc38...v0.1.1rc39
6
+
7
+ ### Features
8
+
9
+ - implement delete file and prefix operations in ObjectStore (#694) (by @Mustafa in [6f71615](https://github.com/atlanhq/application-sdk/commit/6f71615))
10
+ - add Daft configuration constants and update Parquet output handling (by @Mustafa in [68c2593](https://github.com/atlanhq/application-sdk/commit/68c2593))
11
+
12
+
13
+
14
+ ## v0.1.1rc38 (September 03, 2025)
15
+
16
+ Full Changelog: https://github.com/atlanhq/application-sdk/compare/v0.1.1rc37...v0.1.1rc38
17
+
3
18
  ## v0.1.1rc37 (September 03, 2025)
4
19
 
5
20
  Full Changelog: https://github.com/atlanhq/application-sdk/compare/v0.1.1rc36...v0.1.1rc37
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: atlan-application-sdk
3
- Version: 0.1.1rc37
3
+ Version: 0.1.1rc39
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
@@ -1,5 +1,6 @@
1
1
  from typing import Optional
2
2
 
3
+ from pyatlan.client.aio import AsyncAtlanClient
3
4
  from pyatlan.client.atlan import AtlanClient
4
5
 
5
6
  from application_sdk.common.error_codes import ClientError
@@ -68,3 +69,58 @@ def _get_client_from_token(api_token_guid: str):
68
69
  f"{ClientError.AUTH_CONFIG_ERROR}: Environment variable CLIENT_SECRET is required when API_TOKEN_GUID is set."
69
70
  )
70
71
  return AtlanClient.from_token_guid(guid=api_token_guid)
72
+
73
+
74
+ async def get_async_client(
75
+ base_url: Optional[str] = None,
76
+ api_key: Optional[str] = None,
77
+ api_token_guid: Optional[str] = None,
78
+ ) -> AsyncAtlanClient:
79
+ """
80
+ Returns an authenticated AsyncAtlanClient instance using provided parameters or environment variables.
81
+
82
+ Selects authentication method based on the presence of parameters or environment variables and validates the required configuration.
83
+ In general, the use of environment variables is recommended. Any parameters specified will override the environment variables.
84
+
85
+ Args:
86
+ base_url: Atlan base URL (overrides ATLAN_BASE_URL)
87
+ api_key: Atlan API key (overrides ATLAN_API_KEY)
88
+ api_token_guid: API token GUID (overrides API_TOKEN_GUID)
89
+ """
90
+ # Resolve final values (parameters override env vars)
91
+ final_token_guid = api_token_guid or ATLAN_API_TOKEN_GUID
92
+ final_base_url = base_url or ATLAN_BASE_URL
93
+ final_api_key = api_key or ATLAN_API_KEY
94
+
95
+ # Priority 1: Token-based auth (recommended for production)
96
+ if final_token_guid:
97
+ if final_base_url or final_api_key:
98
+ logger.warning(
99
+ "Token auth takes precedence - ignoring base_url/api_key parameters as well as ATLAN_BASE_URL and ATLAN_API_KEY environment variables."
100
+ )
101
+ return await _get_async_client_from_token(final_token_guid)
102
+
103
+ # Priority 2: API key + base URL auth
104
+ if not final_base_url:
105
+ raise ClientError(
106
+ "ATLAN_BASE_URL is required (via parameter or environment variable)"
107
+ )
108
+ if not final_api_key:
109
+ raise ClientError(
110
+ "ATLAN_API_KEY is required (via parameter or environment variable)"
111
+ )
112
+
113
+ logger.info("Using API key-based authentication")
114
+ return AsyncAtlanClient(base_url=final_base_url, api_key=final_api_key)
115
+
116
+
117
+ async def _get_async_client_from_token(api_token_guid: str):
118
+ if not ATLAN_CLIENT_ID:
119
+ raise ClientError(
120
+ f"{ClientError.AUTH_CONFIG_ERROR}: Environment variable CLIENT_ID is required when API_TOKEN_GUID is set."
121
+ )
122
+ if not ATLAN_CLIENT_SECRET:
123
+ raise ClientError(
124
+ f"{ClientError.AUTH_CONFIG_ERROR}: Environment variable CLIENT_SECRET is required when API_TOKEN_GUID is set."
125
+ )
126
+ return await AsyncAtlanClient.from_token_guid(guid=api_token_guid)
@@ -151,7 +151,7 @@ class TemporalWorkflowClient(WorkflowClient):
151
151
  await asyncio.sleep(refresh_interval)
152
152
 
153
153
  # Get fresh token
154
- token = await self.auth_manager.get_access_token()
154
+ token = await self.auth_manager.get_access_token(force_refresh=True)
155
155
  if self.client:
156
156
  self.client.api_key = token
157
157
  logger.info("Updated client RPC metadata with fresh token")
@@ -1,5 +1,6 @@
1
1
  import os
2
- from typing import TYPE_CHECKING, List, Literal, Optional, Union
2
+ from enum import Enum
3
+ from typing import TYPE_CHECKING, List, Optional, Union
3
4
 
4
5
  from temporalio import activity
5
6
 
@@ -18,6 +19,14 @@ if TYPE_CHECKING:
18
19
  import pandas as pd
19
20
 
20
21
 
22
+ class WriteMode(Enum):
23
+ """Enumeration of write modes for Parquet output operations."""
24
+
25
+ APPEND = "append"
26
+ OVERWRITE = "overwrite"
27
+ OVERWRITE_PARTITIONS = "overwrite-partitions"
28
+
29
+
21
30
  class ParquetOutput(Output):
22
31
  """Output handler for writing data to Parquet files.
23
32
 
@@ -29,7 +38,6 @@ class ParquetOutput(Output):
29
38
  output_prefix (str): Prefix for files when uploading to object store.
30
39
  output_suffix (str): Suffix for output files.
31
40
  typename (Optional[str]): Type name of the entity e.g database, schema, table.
32
- mode (str): Write mode for parquet files ("append" or "overwrite").
33
41
  chunk_size (int): Maximum number of records per chunk.
34
42
  total_record_count (int): Total number of records processed.
35
43
  chunk_count (int): Number of chunks created.
@@ -45,7 +53,6 @@ class ParquetOutput(Output):
45
53
  output_suffix: str = "",
46
54
  output_prefix: str = "",
47
55
  typename: Optional[str] = None,
48
- write_mode: Literal["append", "overwrite", "overwrite-partitions"] = "append",
49
56
  chunk_size: Optional[int] = 100000,
50
57
  buffer_size: Optional[int] = 100000,
51
58
  total_record_count: int = 0,
@@ -61,7 +68,6 @@ class ParquetOutput(Output):
61
68
  output_suffix (str): Suffix for output files.
62
69
  output_prefix (str): Prefix for files when uploading to object store.
63
70
  typename (Optional[str], optional): Type name of the entity e.g database, schema, table.
64
- mode (str, optional): Write mode for parquet files. Defaults to "append".
65
71
  chunk_size (int, optional): Maximum records per chunk. Defaults to 100000.
66
72
  total_record_count (int, optional): Initial total record count. Defaults to 0.
67
73
  chunk_count (int, optional): Initial chunk count. Defaults to 0.
@@ -78,7 +84,6 @@ class ParquetOutput(Output):
78
84
  self.output_suffix = output_suffix
79
85
  self.output_prefix = output_prefix
80
86
  self.typename = typename
81
- self.write_mode = write_mode
82
87
  self.chunk_size = chunk_size
83
88
  self.buffer_size = buffer_size
84
89
  self.buffer: List[Union["pd.DataFrame", "daft.DataFrame"]] = [] # noqa: F821
@@ -103,7 +108,7 @@ class ParquetOutput(Output):
103
108
 
104
109
  def path_gen(
105
110
  self,
106
- chunk_start: int | None = None,
111
+ chunk_start: Optional[int] = None,
107
112
  chunk_count: int = 0,
108
113
  start_marker: Optional[str] = None,
109
114
  end_marker: Optional[str] = None,
@@ -111,7 +116,7 @@ class ParquetOutput(Output):
111
116
  """Generate a file path for a chunk.
112
117
 
113
118
  Args:
114
- chunk_start (int | None): Starting index of the chunk, or None for single chunk.
119
+ chunk_start (Optional[int]): Starting index of the chunk, or None for single chunk.
115
120
  chunk_count (int): Total number of chunks.
116
121
  start_marker (Optional[str]): Start marker for query extraction.
117
122
  end_marker (Optional[str]): End marker for query extraction.
@@ -182,7 +187,7 @@ class ParquetOutput(Output):
182
187
  name="parquet_write_records",
183
188
  value=len(dataframe),
184
189
  metric_type=MetricType.COUNTER,
185
- labels={"type": "pandas", "mode": self.write_mode},
190
+ labels={"type": "pandas", "mode": WriteMode.APPEND.value},
186
191
  description="Number of records written to Parquet files from pandas DataFrame",
187
192
  )
188
193
 
@@ -191,7 +196,7 @@ class ParquetOutput(Output):
191
196
  name="parquet_chunks_written",
192
197
  value=1,
193
198
  metric_type=MetricType.COUNTER,
194
- labels={"type": "pandas", "mode": self.write_mode},
199
+ labels={"type": "pandas", "mode": WriteMode.APPEND.value},
195
200
  description="Number of chunks written to Parquet files",
196
201
  )
197
202
 
@@ -203,69 +208,109 @@ class ParquetOutput(Output):
203
208
  name="parquet_write_errors",
204
209
  value=1,
205
210
  metric_type=MetricType.COUNTER,
206
- labels={"type": "pandas", "mode": self.write_mode, "error": str(e)},
211
+ labels={
212
+ "type": "pandas",
213
+ "mode": WriteMode.APPEND.value,
214
+ "error": str(e),
215
+ },
207
216
  description="Number of errors while writing to Parquet files",
208
217
  )
209
218
  logger.error(f"Error writing pandas dataframe to parquet: {str(e)}")
210
219
  raise
211
220
 
212
- async def write_daft_dataframe(self, dataframe: "daft.DataFrame"): # noqa: F821
221
+ async def write_daft_dataframe(
222
+ self,
223
+ dataframe: "daft.DataFrame", # noqa: F821
224
+ partition_cols: Optional[List] = None,
225
+ write_mode: Union[WriteMode, str] = WriteMode.APPEND,
226
+ morsel_size: int = 100_000,
227
+ ):
213
228
  """Write a daft DataFrame to Parquet files and upload to object store.
214
229
 
230
+ Uses Daft's native file size management to automatically split large DataFrames
231
+ into multiple parquet files based on the configured target file size. Supports
232
+ Hive partitioning for efficient data organization.
233
+
215
234
  Args:
216
235
  dataframe (daft.DataFrame): The DataFrame to write.
236
+ partition_cols (Optional[List]): Column names or expressions to use for Hive partitioning.
237
+ Can be strings (column names) or daft column expressions. If None (default), no partitioning is applied.
238
+ write_mode (Union[WriteMode, str]): Write mode for parquet files.
239
+ Use WriteMode.APPEND, WriteMode.OVERWRITE, WriteMode.OVERWRITE_PARTITIONS, or their string equivalents.
240
+ morsel_size (int): Default number of rows in a morsel used for the new local executor, when running locally on just a single machine,
241
+ Daft does not use partitions. Instead of using partitioning to control parallelism, the local execution engine performs a streaming-based
242
+ execution on small "morsels" of data, which provides much more stable memory utilization while improving the user experience with not having
243
+ to worry about partitioning.
244
+
245
+ Note:
246
+ - Daft automatically handles file chunking based on parquet_target_filesize
247
+ - Multiple files will be created if DataFrame exceeds DAPR limit
248
+ - If partition_cols is set, creates Hive-style directory structure
217
249
  """
218
250
  try:
251
+ import daft
252
+
253
+ # Convert string to enum if needed for backward compatibility
254
+ if isinstance(write_mode, str):
255
+ write_mode = WriteMode(write_mode)
256
+
219
257
  row_count = dataframe.count_rows()
220
258
  if row_count == 0:
221
259
  return
222
260
 
261
+ # Use Daft's execution context for temporary configuration
262
+ with daft.execution_config_ctx(
263
+ parquet_target_filesize=self.max_file_size_bytes,
264
+ default_morsel_size=morsel_size,
265
+ ):
266
+ # Daft automatically handles file splitting and naming
267
+ dataframe.write_parquet(
268
+ root_dir=self.output_path,
269
+ write_mode=write_mode.value,
270
+ partition_cols=partition_cols if partition_cols else [],
271
+ )
272
+
223
273
  # Update counters
224
274
  self.chunk_count += 1
225
275
  self.total_record_count += row_count
226
276
 
227
- # Generate file path using path_gen function
228
- if self.start_marker and self.end_marker:
229
- file_path = self.output_path
230
- else:
231
- file_path = f"{self.output_path}/{self.path_gen(self.chunk_start, self.chunk_count, self.start_marker, self.end_marker)}"
232
-
233
- # Write the dataframe to parquet using daft
234
- dataframe.write_parquet(
235
- file_path,
236
- write_mode=self.write_mode,
237
- )
238
-
239
277
  # Record metrics for successful write
240
278
  self.metrics.record_metric(
241
279
  name="parquet_write_records",
242
280
  value=row_count,
243
281
  metric_type=MetricType.COUNTER,
244
- labels={"type": "daft", "mode": self.write_mode},
282
+ labels={"type": "daft", "mode": write_mode.value},
245
283
  description="Number of records written to Parquet files from daft DataFrame",
246
284
  )
247
285
 
248
- # Record chunk metrics
286
+ # Record operation metrics (note: actual file count may be higher due to Daft's splitting)
249
287
  self.metrics.record_metric(
250
- name="parquet_chunks_written",
288
+ name="parquet_write_operations",
251
289
  value=1,
252
290
  metric_type=MetricType.COUNTER,
253
- labels={"type": "daft", "mode": self.write_mode},
254
- description="Number of chunks written to Parquet files",
291
+ labels={"type": "daft", "mode": write_mode.value},
292
+ description="Number of write operations to Parquet files",
255
293
  )
256
294
 
257
- # Upload the file to object store
258
- await ObjectStore.upload_file(
259
- source=file_path,
260
- destination=get_object_store_prefix(file_path),
295
+ # Upload the entire directory (contains multiple parquet files created by Daft)
296
+ if write_mode == WriteMode.OVERWRITE:
297
+ # Delete the directory from object store
298
+ await ObjectStore.delete_prefix(
299
+ prefix=get_object_store_prefix(self.output_path)
300
+ )
301
+
302
+ await ObjectStore.upload_prefix(
303
+ source=self.output_path,
304
+ destination=get_object_store_prefix(self.output_path),
261
305
  )
306
+
262
307
  except Exception as e:
263
308
  # Record metrics for failed write
264
309
  self.metrics.record_metric(
265
310
  name="parquet_write_errors",
266
311
  value=1,
267
312
  metric_type=MetricType.COUNTER,
268
- labels={"type": "daft", "mode": self.write_mode, "error": str(e)},
313
+ labels={"type": "daft", "mode": write_mode, "error": str(e)},
269
314
  description="Number of errors while writing to Parquet files",
270
315
  )
271
316
  logger.error(f"Error writing daft dataframe to parquet: {str(e)}")
@@ -279,7 +324,7 @@ class ParquetOutput(Output):
279
324
  """
280
325
  return self.output_path
281
326
 
282
- async def _flush_buffer(self, chunk_part):
327
+ async def _flush_buffer(self, chunk_part: int):
283
328
  """Flush the current buffer to a Parquet file.
284
329
 
285
330
  This method combines all DataFrames in the buffer, writes them to a Parquet file,
@@ -26,6 +26,31 @@ class ObjectStore:
26
26
  OBJECT_CREATE_OPERATION = "create"
27
27
  OBJECT_GET_OPERATION = "get"
28
28
  OBJECT_LIST_OPERATION = "list"
29
+ OBJECT_DELETE_OPERATION = "delete"
30
+
31
+ @classmethod
32
+ def _create_file_metadata(cls, key: str) -> dict[str, str]:
33
+ """Create metadata for file operations (get, delete, create).
34
+
35
+ Args:
36
+ key: The file key/path.
37
+
38
+ Returns:
39
+ Metadata dictionary with key, fileName, and blobName fields.
40
+ """
41
+ return {"key": key, "fileName": key, "blobName": key}
42
+
43
+ @classmethod
44
+ def _create_list_metadata(cls, prefix: str) -> dict[str, str]:
45
+ """Create metadata for list operations.
46
+
47
+ Args:
48
+ prefix: The prefix to list files under.
49
+
50
+ Returns:
51
+ Metadata dictionary with prefix and fileName fields, or empty dict if no prefix.
52
+ """
53
+ return {"prefix": prefix, "fileName": prefix} if prefix else {}
29
54
 
30
55
  @classmethod
31
56
  async def list_files(
@@ -44,12 +69,11 @@ class ObjectStore:
44
69
  Exception: If there's an error listing files from the object store.
45
70
  """
46
71
  try:
47
- metadata = {"prefix": prefix, "fileName": prefix} if prefix else {}
48
72
  data = json.dumps({"prefix": prefix}).encode("utf-8") if prefix else ""
49
73
 
50
74
  response_data = await cls._invoke_dapr_binding(
51
75
  operation=cls.OBJECT_LIST_OPERATION,
52
- metadata=metadata,
76
+ metadata=cls._create_list_metadata(prefix),
53
77
  data=data,
54
78
  store_name=store_name,
55
79
  )
@@ -105,12 +129,11 @@ class ObjectStore:
105
129
  Exception: If there's an error getting the file from the object store.
106
130
  """
107
131
  try:
108
- metadata = {"key": key, "fileName": key, "blobName": key}
109
132
  data = json.dumps({"key": key}).encode("utf-8") if key else ""
110
133
 
111
134
  response_data = await cls._invoke_dapr_binding(
112
135
  operation=cls.OBJECT_GET_OPERATION,
113
- metadata=metadata,
136
+ metadata=cls._create_file_metadata(key),
114
137
  data=data,
115
138
  store_name=store_name,
116
139
  )
@@ -144,20 +167,68 @@ class ObjectStore:
144
167
  return False
145
168
 
146
169
  @classmethod
147
- async def delete(
170
+ async def delete_file(
148
171
  cls, key: str, store_name: str = DEPLOYMENT_OBJECT_STORE_NAME
149
172
  ) -> None:
150
- """Delete a file or all files under a prefix from the object store.
173
+ """Delete a single file from the object store.
151
174
 
152
175
  Args:
153
- key: The file path or prefix to delete.
176
+ key: The file path to delete.
154
177
  store_name: Name of the Dapr object store binding to use.
155
178
 
156
- Note:
157
- This method is not implemented as it's not commonly used in the current codebase.
158
- Can be implemented when needed based on the underlying object store capabilities.
179
+ Raises:
180
+ Exception: If there's an error deleting the file from the object store.
181
+ """
182
+ try:
183
+ data = json.dumps({"key": key}).encode("utf-8")
184
+
185
+ await cls._invoke_dapr_binding(
186
+ operation=cls.OBJECT_DELETE_OPERATION,
187
+ metadata=cls._create_file_metadata(key),
188
+ data=data,
189
+ store_name=store_name,
190
+ )
191
+ logger.debug(f"Successfully deleted file: {key}")
192
+ except Exception as e:
193
+ logger.error(f"Error deleting file {key}: {str(e)}")
194
+ raise
195
+
196
+ @classmethod
197
+ async def delete_prefix(
198
+ cls, prefix: str, store_name: str = DEPLOYMENT_OBJECT_STORE_NAME
199
+ ) -> None:
200
+ """Delete all files under a prefix from the object store.
201
+
202
+ Args:
203
+ prefix: The prefix path to delete all files under.
204
+ store_name: Name of the Dapr object store binding to use.
205
+
206
+ Raises:
207
+ Exception: If there's an error deleting files from the object store.
159
208
  """
160
- raise NotImplementedError("Delete operation not yet implemented")
209
+ try:
210
+ # First, list all files under the prefix
211
+ files_to_delete = await cls.list_files(prefix=prefix, store_name=store_name)
212
+
213
+ if not files_to_delete:
214
+ logger.info(f"No files found under prefix: {prefix}")
215
+ return
216
+
217
+ logger.info(f"Deleting {len(files_to_delete)} files under prefix: {prefix}")
218
+
219
+ # Delete each file individually
220
+ for file_path in files_to_delete:
221
+ try:
222
+ await cls.delete_file(key=file_path, store_name=store_name)
223
+ except Exception as e:
224
+ logger.warning(f"Failed to delete file {file_path}: {str(e)}")
225
+ # Continue with other files even if one fails
226
+
227
+ logger.info(f"Successfully deleted all files under prefix: {prefix}")
228
+
229
+ except Exception as e:
230
+ logger.error(f"Error deleting files under prefix {prefix}: {str(e)}")
231
+ raise
161
232
 
162
233
  @classmethod
163
234
  async def upload_file(
@@ -191,17 +262,11 @@ class ObjectStore:
191
262
  logger.error(f"Error reading file {source}: {str(e)}")
192
263
  raise e
193
264
 
194
- metadata = {
195
- "key": destination,
196
- "blobName": destination,
197
- "fileName": destination,
198
- }
199
-
200
265
  try:
201
266
  await cls._invoke_dapr_binding(
202
267
  operation=cls.OBJECT_CREATE_OPERATION,
203
268
  data=file_content,
204
- metadata=metadata,
269
+ metadata=cls._create_file_metadata(destination),
205
270
  store_name=store_name,
206
271
  )
207
272
  logger.debug(f"Successfully uploaded file: {destination}")
@@ -2,4 +2,4 @@
2
2
  Version information for the application_sdk package.
3
3
  """
4
4
 
5
- __version__ = "0.1.1rc37"
5
+ __version__ = "0.1.1rc39"
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "atlan-application-sdk"
3
- version = "0.1.1rc37"
3
+ version = "0.1.1rc39"
4
4
  description = "Atlan Application SDK is a Python library for developing applications on the Atlan Platform"
5
5
  license = "Apache-2.0"
6
6
  authors = [