classifyre-cli 0.7.2__tar.gz → 0.7.4__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 (432) hide show
  1. classifyre_cli-0.7.4/.turbo/turbo-build.log +3 -0
  2. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/PKG-INFO +1 -1
  3. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/package.json +1 -1
  4. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/pyproject.toml +49 -18
  5. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/scripts/generate_runtime_packages.py +8 -2
  6. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/pii/detector.py +3 -0
  7. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/models/generated_input.py +888 -292
  8. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/notebook/contract.py +7 -1
  9. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/notebook/sdk.py +605 -39
  10. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/pipeline/payload_window.py +6 -0
  11. classifyre_cli-0.7.4/src/sources/athena/__init__.py +3 -0
  12. classifyre_cli-0.7.4/src/sources/athena/source.py +251 -0
  13. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/atlassian_common.py +5 -23
  14. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/azure_blob_storage/source.py +28 -2
  15. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/base.py +6 -12
  16. classifyre_cli-0.7.4/src/sources/bigquery/__init__.py +3 -0
  17. classifyre_cli-0.7.4/src/sources/bigquery/source.py +326 -0
  18. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/custom/runner.py +61 -3
  19. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/custom/source.py +44 -13
  20. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/databricks/source.py +18 -2
  21. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/dremio/source.py +4 -1
  22. classifyre_cli-0.7.4/src/sources/duckdb_attached_base.py +205 -0
  23. classifyre_cli-0.7.4/src/sources/ducklake/__init__.py +3 -0
  24. classifyre_cli-0.7.4/src/sources/ducklake/source.py +149 -0
  25. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/email/source.py +2 -10
  26. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/google_cloud_storage/source.py +13 -0
  27. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/google_workspace/source.py +6 -10
  28. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/hive/source.py +30 -7
  29. classifyre_cli-0.7.4/src/sources/iceberg_rest/__init__.py +3 -0
  30. classifyre_cli-0.7.4/src/sources/iceberg_rest/source.py +234 -0
  31. classifyre_cli-0.7.4/src/sources/inline_paging.py +64 -0
  32. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/local_folder/source.py +15 -0
  33. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/microsoft_365/source.py +6 -10
  34. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/object_storage/base.py +254 -17
  35. classifyre_cli-0.7.4/src/sources/redshift/__init__.py +3 -0
  36. classifyre_cli-0.7.4/src/sources/redshift/source.py +268 -0
  37. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/s3_compatible_storage/source.py +15 -0
  38. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/snowflake/source.py +32 -14
  39. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/tabular_base.py +2 -1
  40. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/tabular_utils.py +26 -0
  41. classifyre_cli-0.7.4/src/sources/trino/__init__.py +3 -0
  42. classifyre_cli-0.7.4/src/sources/trino/source.py +293 -0
  43. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/utils/dependency_groups.py +6 -2
  44. classifyre_cli-0.7.4/src/utils/duckdb_engine.py +208 -0
  45. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/utils/embedded_files.py +92 -1
  46. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/utils/file_metadata.py +41 -51
  47. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/utils/file_parser.py +370 -35
  48. classifyre_cli-0.7.4/src/utils/lakehouse_layout.py +119 -0
  49. classifyre_cli-0.7.4/src/utils/lakehouse_storage.py +198 -0
  50. classifyre_cli-0.7.4/src/utils/lakehouse_tables.py +468 -0
  51. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/utils/sql_lineage.py +4 -0
  52. classifyre_cli-0.7.4/src/utils/table_files.py +778 -0
  53. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/utils/urn.py +9 -2
  54. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/pii/test_pii_detector.py +13 -0
  55. classifyre_cli-0.7.4/tests/fixtures/lakehouse/delta_orders/_delta_log/00000000000000000000.json +4 -0
  56. classifyre_cli-0.7.4/tests/fixtures/lakehouse/delta_orders/_delta_log/00000000000000000001.json +3 -0
  57. classifyre_cli-0.7.4/tests/fixtures/lakehouse/delta_orders/part-00000-8e40f93d-f646-442e-98a8-18f0971612ce-c000.snappy.parquet +0 -0
  58. classifyre_cli-0.7.4/tests/fixtures/lakehouse/delta_orders/part-00000-afccde2e-efea-42ae-9e3d-e90f414cb319-c000.zstd.parquet +0 -0
  59. classifyre_cli-0.7.4/tests/fixtures/lakehouse/iceberg_contacts/data/00000-0-06ba5ac9-2e19-493a-8af1-6e2a151ab86a.parquet +0 -0
  60. classifyre_cli-0.7.4/tests/fixtures/lakehouse/iceberg_contacts/data/00000-0-22687e03-28b5-4535-bf43-793a9480e5e7.parquet +0 -0
  61. classifyre_cli-0.7.4/tests/fixtures/lakehouse/iceberg_contacts/metadata/00000-3c4127bc-347a-464c-8b31-a41c01b1ff14.metadata.json +1 -0
  62. classifyre_cli-0.7.4/tests/fixtures/lakehouse/iceberg_contacts/metadata/00001-39f95fac-010a-49ac-840a-79115ff27a4c.metadata.json +1 -0
  63. classifyre_cli-0.7.4/tests/fixtures/lakehouse/iceberg_contacts/metadata/00002-9984336d-9505-42fb-a3a4-d29b353532b2.metadata.json +1 -0
  64. classifyre_cli-0.7.4/tests/fixtures/lakehouse/iceberg_contacts/metadata/00003-ce0de51a-c6a8-4113-8ada-ea9f11b966f7.metadata.json +1 -0
  65. classifyre_cli-0.7.4/tests/fixtures/lakehouse/iceberg_contacts/metadata/06ba5ac9-2e19-493a-8af1-6e2a151ab86a-m0.avro +0 -0
  66. classifyre_cli-0.7.4/tests/fixtures/lakehouse/iceberg_contacts/metadata/22687e03-28b5-4535-bf43-793a9480e5e7-m0.avro +0 -0
  67. classifyre_cli-0.7.4/tests/fixtures/lakehouse/iceberg_contacts/metadata/snap-2785867742726212752-0-06ba5ac9-2e19-493a-8af1-6e2a151ab86a.avro +0 -0
  68. classifyre_cli-0.7.4/tests/fixtures/lakehouse/iceberg_contacts/metadata/snap-6213427257547511542-0-22687e03-28b5-4535-bf43-793a9480e5e7.avro +0 -0
  69. classifyre_cli-0.7.4/tests/fixtures/lakehouse/make_fixtures.py +56 -0
  70. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_azure_blob_storage_source.py +51 -0
  71. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_custom_source.py +90 -5
  72. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_dremio_source.py +1 -0
  73. classifyre_cli-0.7.4/tests/test_lakehouse_catalog_sources.py +367 -0
  74. classifyre_cli-0.7.4/tests/test_notebook_cross_source.py +287 -0
  75. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_notebook_query_assets.py +27 -11
  76. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_s3_compatible_storage_source.py +53 -0
  77. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_tabular_utils.py +11 -0
  78. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/utils/test_file_parser.py +33 -15
  79. classifyre_cli-0.7.4/tests/utils/test_lakehouse_tables.py +342 -0
  80. classifyre_cli-0.7.4/tests/utils/test_table_files.py +345 -0
  81. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/uv.lock +1392 -1121
  82. classifyre_cli-0.7.2/.turbo/turbo-build.log +0 -3
  83. classifyre_cli-0.7.2/src/sources/delta_lake/__init__.py +0 -3
  84. classifyre_cli-0.7.2/src/sources/delta_lake/source.py +0 -146
  85. classifyre_cli-0.7.2/src/sources/iceberg/__init__.py +0 -3
  86. classifyre_cli-0.7.2/src/sources/iceberg/source.py +0 -155
  87. classifyre_cli-0.7.2/src/sources/lakehouse_base.py +0 -422
  88. classifyre_cli-0.7.2/tests/_lakehouse_fakes.py +0 -41
  89. classifyre_cli-0.7.2/tests/test_delta_lake_source.py +0 -165
  90. classifyre_cli-0.7.2/tests/test_iceberg_source.py +0 -175
  91. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/.gitignore +0 -0
  92. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/.python-version +0 -0
  93. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/README.md +0 -0
  94. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/main.py +0 -0
  95. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/scripts/generate_models.py +0 -0
  96. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/scripts/generate_sdk_completions.py +0 -0
  97. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/__init__.py +0 -0
  98. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/augmentation/__init__.py +0 -0
  99. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/augmentation/contract.py +0 -0
  100. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/augmentation/preview.py +0 -0
  101. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/augmentation/runner.py +0 -0
  102. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/augmentation/sdk.py +0 -0
  103. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/augmentation/session.py +0 -0
  104. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/config.py +0 -0
  105. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/__init__.py +0 -0
  106. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/base.py +0 -0
  107. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/broken_links/__init__.py +0 -0
  108. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/broken_links/detector.py +0 -0
  109. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/config.py +0 -0
  110. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/content/__init__.py +0 -0
  111. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/custom/__init__.py +0 -0
  112. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/custom/detector.py +0 -0
  113. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/custom/extractor.py +0 -0
  114. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/custom/runners/__init__.py +0 -0
  115. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/custom/runners/_base.py +0 -0
  116. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/custom/runners/_custom_detector.py +0 -0
  117. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/custom/runners/_decision.py +0 -0
  118. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/custom/runners/_factory.py +0 -0
  119. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/custom/runners/_gliner2.py +0 -0
  120. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/custom/runners/_image_classification.py +0 -0
  121. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/custom/runners/_llm.py +0 -0
  122. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/custom/runners/_object_detection.py +0 -0
  123. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/custom/runners/_provider_call.py +0 -0
  124. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/custom/runners/_regex.py +0 -0
  125. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/custom/runners/_tag.py +0 -0
  126. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/custom/runners/_text_classification.py +0 -0
  127. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/custom/trainer.py +0 -0
  128. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/custom_detector/__init__.py +0 -0
  129. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/custom_detector/contract.py +0 -0
  130. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/custom_detector/files.py +0 -0
  131. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/custom_detector/preview.py +0 -0
  132. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/custom_detector/results.py +0 -0
  133. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/custom_detector/runner.py +0 -0
  134. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/custom_detector/sdk.py +0 -0
  135. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/custom_detector/session.py +0 -0
  136. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/dependencies.py +0 -0
  137. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/engine_version.py +0 -0
  138. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/errors.py +0 -0
  139. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/pii/__init__.py +0 -0
  140. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/secrets/__init__.py +0 -0
  141. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/secrets/detector.py +0 -0
  142. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/threat/__init__.py +0 -0
  143. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/threat/code_security_detector.py +0 -0
  144. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/detectors/threat/yara_detector.py +0 -0
  145. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/file_evaluation/__init__.py +0 -0
  146. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/file_evaluation/asset_fixture.py +0 -0
  147. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/file_evaluation/runner.py +0 -0
  148. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/graph/__init__.py +0 -0
  149. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/graph/edges.py +0 -0
  150. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/main.py +0 -0
  151. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/models/generated_detectors.py +0 -0
  152. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/models/generated_single_asset_scan_results.py +0 -0
  153. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/notebook/__init__.py +0 -0
  154. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/notebook/child.py +0 -0
  155. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/notebook/cli.py +0 -0
  156. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/notebook/cohort.py +0 -0
  157. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/notebook/execute.py +0 -0
  158. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/notebook/files.py +0 -0
  159. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/notebook/groups.py +0 -0
  160. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/notebook/outputs.py +0 -0
  161. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/notebook/packages.py +0 -0
  162. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/notebook/protocol.py +0 -0
  163. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/notebook/redact.py +0 -0
  164. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/notebook/scaffold.py +0 -0
  165. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/notebook/serialize.py +0 -0
  166. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/outputs/__init__.py +0 -0
  167. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/outputs/base.py +0 -0
  168. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/outputs/console.py +0 -0
  169. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/outputs/factory.py +0 -0
  170. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/outputs/file.py +0 -0
  171. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/outputs/rest.py +0 -0
  172. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/pipeline/__init__.py +0 -0
  173. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/pipeline/asset_payload_server.py +0 -0
  174. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/pipeline/content_provider.py +0 -0
  175. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/pipeline/detector_breaker.py +0 -0
  176. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/pipeline/detector_pipeline.py +0 -0
  177. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/pipeline/finding_context.py +0 -0
  178. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/pipeline/media_artifact.py +0 -0
  179. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/pipeline/parsed_content_provider.py +0 -0
  180. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/pipeline/scan_cache.py +0 -0
  181. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/pipeline/text_artifact.py +0 -0
  182. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/pipeline/worker_pool.py +0 -0
  183. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/__init__.py +0 -0
  184. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/asset_metadata.py +0 -0
  185. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/azure_blob_storage/__init__.py +0 -0
  186. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/confluence/__init__.py +0 -0
  187. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/confluence/source.py +0 -0
  188. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/custom/__init__.py +0 -0
  189. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/custom/env.py +0 -0
  190. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/databricks/__init__.py +0 -0
  191. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/dependencies.py +0 -0
  192. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/dremio/__init__.py +0 -0
  193. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/dremio/client.py +0 -0
  194. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/dropbox/__init__.py +0 -0
  195. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/dropbox/auth.py +0 -0
  196. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/dropbox/source.py +0 -0
  197. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/elasticsearch/__init__.py +0 -0
  198. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/elasticsearch/source.py +0 -0
  199. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/email/__init__.py +0 -0
  200. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/git/__init__.py +0 -0
  201. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/git/source.py +0 -0
  202. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/google_cloud_storage/__init__.py +0 -0
  203. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/google_workspace/__init__.py +0 -0
  204. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/hive/__init__.py +0 -0
  205. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/hugging_face/__init__.py +0 -0
  206. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/hugging_face/source.py +0 -0
  207. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/jira/__init__.py +0 -0
  208. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/jira/source.py +0 -0
  209. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/kafka/__init__.py +0 -0
  210. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/kafka/rest.py +0 -0
  211. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/kafka/source.py +0 -0
  212. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/local_folder/__init__.py +0 -0
  213. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/meilisearch/__init__.py +0 -0
  214. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/meilisearch/source.py +0 -0
  215. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/microsoft_365/__init__.py +0 -0
  216. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/mongodb/__init__.py +0 -0
  217. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/mongodb/source.py +0 -0
  218. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/mssql/__init__.py +0 -0
  219. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/mssql/source.py +0 -0
  220. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/mysql/__init__.py +0 -0
  221. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/mysql/source.py +0 -0
  222. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/neo4j/__init__.py +0 -0
  223. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/neo4j/source.py +0 -0
  224. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/notion/__init__.py +0 -0
  225. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/notion/client.py +0 -0
  226. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/notion/source.py +0 -0
  227. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/opensearch/__init__.py +0 -0
  228. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/opensearch/source.py +0 -0
  229. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/oracle/__init__.py +0 -0
  230. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/oracle/source.py +0 -0
  231. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/postgresql/__init__.py +0 -0
  232. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/postgresql/source.py +0 -0
  233. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/powerbi/__init__.py +0 -0
  234. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/powerbi/source.py +0 -0
  235. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/recipe_normalizer.py +0 -0
  236. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/reddit/__init__.py +0 -0
  237. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/reddit/source.py +0 -0
  238. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/s3_client.py +0 -0
  239. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/s3_compatible_storage/README.md +0 -0
  240. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/s3_compatible_storage/__init__.py +0 -0
  241. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/sandbox/__init__.py +0 -0
  242. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/sandbox/source.py +0 -0
  243. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/search_engine_base.py +0 -0
  244. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/servicedesk/__init__.py +0 -0
  245. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/servicedesk/source.py +0 -0
  246. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/slack/__init__.py +0 -0
  247. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/slack/source.py +0 -0
  248. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/snowflake/__init__.py +0 -0
  249. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/sqlite/__init__.py +0 -0
  250. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/sqlite/source.py +0 -0
  251. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/tableau/__init__.py +0 -0
  252. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/tableau/source.py +0 -0
  253. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/wordpress/__init__.py +0 -0
  254. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/wordpress/source.py +0 -0
  255. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/youtube/__init__.py +0 -0
  256. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/sources/youtube/source.py +0 -0
  257. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/telemetry.py +0 -0
  258. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/utils/__init__.py +0 -0
  259. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/utils/archive_extraction.py +0 -0
  260. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/utils/content_extraction.py +0 -0
  261. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/utils/external_video.py +0 -0
  262. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/utils/file_to_images.py +0 -0
  263. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/utils/hashing.py +0 -0
  264. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/utils/legacy_office.py +0 -0
  265. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/utils/payload.py +0 -0
  266. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/utils/range_reader.py +0 -0
  267. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/utils/redaction.py +0 -0
  268. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/utils/resources.py +0 -0
  269. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/utils/sampling_cursor.py +0 -0
  270. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/utils/sampling_frontier.py +0 -0
  271. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/utils/source_files.py +0 -0
  272. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/utils/torch_runtime.py +0 -0
  273. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/utils/transcription.py +0 -0
  274. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/utils/uv_sync.py +0 -0
  275. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/utils/validation.py +0 -0
  276. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/src/utils/video_processing.py +0 -0
  277. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/__init__.py +0 -0
  278. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/conftest.py +0 -0
  279. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/__init__.py +0 -0
  280. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/broken_links/test_broken_links_detector.py +0 -0
  281. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/conftest.py +0 -0
  282. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/content/__init__.py +0 -0
  283. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/custom/__init__.py +0 -0
  284. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/custom/conftest.py +0 -0
  285. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/custom/test_decision_runner.py +0 -0
  286. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/custom/test_gliner25_runner.py +0 -0
  287. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/custom/test_gliner2_classification.py +0 -0
  288. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/custom/test_invoice_extraction.py +0 -0
  289. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/custom/test_llm_runner.py +0 -0
  290. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/custom/test_pipeline_integration.py +0 -0
  291. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/custom/test_regex_runner.py +0 -0
  292. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/custom/test_runner_hardening.py +0 -0
  293. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/custom/test_transformer_runners.py +0 -0
  294. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/pii/__init__.py +0 -0
  295. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/pii/conftest.py +0 -0
  296. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/pii/sample_invoice.pdf +0 -0
  297. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/pii/test_pii_chunking.py +0 -0
  298. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/pii/test_pii_detector_extended.py +0 -0
  299. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/pii/test_pii_regional_entities.py +0 -0
  300. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/pii/test_pii_severity.py +0 -0
  301. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/secrets/__init__.py +0 -0
  302. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/secrets/test_secrets_detector.py +0 -0
  303. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/secrets/test_secrets_detector_extended.py +0 -0
  304. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/test_base_detector.py +0 -0
  305. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/test_custom_detector_examples_runtime.py +0 -0
  306. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/test_custom_detector_session.py +0 -0
  307. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/test_detector_catalog_commercial.py +0 -0
  308. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/test_detector_pipeline_types.py +0 -0
  309. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/test_detector_schema_examples.py +0 -0
  310. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/test_detector_types.py +0 -0
  311. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/test_phase2_detectors.py +0 -0
  312. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/test_registry.py +0 -0
  313. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/test_tag_runner.py +0 -0
  314. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/threat/__init__.py +0 -0
  315. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/threat/test_code_security_detector.py +0 -0
  316. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/detectors/threat/test_yara_detector.py +0 -0
  317. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/integration/test_wordpress_broken_links_detector.py +0 -0
  318. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/integration/test_wordpress_links_assets.py +0 -0
  319. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/pipeline/test_detector_breaker.py +0 -0
  320. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/pipeline/test_detector_outcomes.py +0 -0
  321. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/pipeline/test_detector_pipeline.py +0 -0
  322. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/pipeline/test_worker_pool.py +0 -0
  323. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_arrow_ipc_payloads.py +0 -0
  324. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_assets_metadata_catalog.py +0 -0
  325. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_augmentation_contract.py +0 -0
  326. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_augmentation_edges.py +0 -0
  327. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_augmentation_patch.py +0 -0
  328. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_augmentation_scan_cache.py +0 -0
  329. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_augmentation_sdk.py +0 -0
  330. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_augmentation_session.py +0 -0
  331. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_augmentation_tags_end_to_end.py +0 -0
  332. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_automatic_new_first.py +0 -0
  333. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_base_source_attachment.py +0 -0
  334. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_base_source_sampling.py +0 -0
  335. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_byte_valued_fields.py +0 -0
  336. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_config.py +0 -0
  337. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_confluence_source.py +0 -0
  338. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_custom_detector_end_to_end.py +0 -0
  339. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_custom_detector_evaluation.py +0 -0
  340. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_custom_detector_notebook.py +0 -0
  341. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_custom_detector_templates.py +0 -0
  342. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_custom_extractor.py +0 -0
  343. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_custom_source_relationships.py +0 -0
  344. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_custom_source_tags_end_to_end.py +0 -0
  345. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_databricks_source.py +0 -0
  346. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_dependency_groups.py +0 -0
  347. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_detector_scope.py +0 -0
  348. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_dropbox_auth_command.py +0 -0
  349. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_dropbox_source.py +0 -0
  350. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_elasticsearch_source.py +0 -0
  351. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_email_source.py +0 -0
  352. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_file_evaluation_runner.py +0 -0
  353. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_finding_context.py +0 -0
  354. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_git_source.py +0 -0
  355. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_google_cloud_storage_source.py +0 -0
  356. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_google_workspace_source.py +0 -0
  357. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_graph_edges.py +0 -0
  358. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_hashing.py +0 -0
  359. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_hive_source.py +0 -0
  360. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_hugging_face_source.py +0 -0
  361. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_jira_source.py +0 -0
  362. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_kafka_source.py +0 -0
  363. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_lineage_loss_reporting.py +0 -0
  364. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_local_folder_source.py +0 -0
  365. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_main.py +0 -0
  366. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_media_embedding.py +0 -0
  367. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_meilisearch_source.py +0 -0
  368. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_microsoft_365_source.py +0 -0
  369. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_mongodb_source.py +0 -0
  370. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_mssql_source.py +0 -0
  371. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_mysql_source.py +0 -0
  372. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_neo4j_source.py +0 -0
  373. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_notebook_asset_entity.py +0 -0
  374. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_notebook_asset_extract.py +0 -0
  375. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_notebook_asset_tags.py +0 -0
  376. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_notebook_cohort.py +0 -0
  377. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_notebook_execute.py +0 -0
  378. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_notebook_files.py +0 -0
  379. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_notebook_groups.py +0 -0
  380. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_notebook_log_levels.py +0 -0
  381. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_notebook_packages.py +0 -0
  382. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_notebook_sdk_exports.py +0 -0
  383. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_notebook_serialize.py +0 -0
  384. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_notebook_templates.py +0 -0
  385. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_notion_source.py +0 -0
  386. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_object_storage_download_efficiency.py +0 -0
  387. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_opensearch_source.py +0 -0
  388. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_oracle_source.py +0 -0
  389. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_outputs.py +0 -0
  390. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_payload_window.py +0 -0
  391. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_payload_window_parquet.py +0 -0
  392. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_postgresql_source.py +0 -0
  393. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_powerbi_source.py +0 -0
  394. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_range_reading.py +0 -0
  395. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_recipe_normalizer.py +0 -0
  396. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_reddit_source.py +0 -0
  397. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_rest_backpressure.py +0 -0
  398. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_runtime_packages.py +0 -0
  399. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_sampling_automatic.py +0 -0
  400. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_sampling_cursor.py +0 -0
  401. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_sampling_frontier.py +0 -0
  402. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_sandbox_source.py +0 -0
  403. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_scan_cache.py +0 -0
  404. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_sdk_completions.py +0 -0
  405. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_secret_redaction.py +0 -0
  406. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_semantic_declarations.py +0 -0
  407. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_servicedesk_source.py +0 -0
  408. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_slack_source.py +0 -0
  409. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_snowflake_source.py +0 -0
  410. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_source_dependency_groups.py +0 -0
  411. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_source_strategy_conformance.py +0 -0
  412. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_sql_lineage.py +0 -0
  413. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_sqlite_source.py +0 -0
  414. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_tableau_source.py +0 -0
  415. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_tabular_automatic_sampling.py +0 -0
  416. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_tabular_lineage.py +0 -0
  417. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_torch_runtime.py +0 -0
  418. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_urn.py +0 -0
  419. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_uv_sync.py +0 -0
  420. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_view_dependencies_are_not_foreign_keys.py +0 -0
  421. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_wordpress_source.py +0 -0
  422. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_youtube_source.py +0 -0
  423. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/test_youtube_source_integration.py +0 -0
  424. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/utils/test_archive_extraction.py +0 -0
  425. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/utils/test_content_extraction.py +0 -0
  426. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/utils/test_embedded_files.py +0 -0
  427. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/utils/test_file_metadata.py +0 -0
  428. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/utils/test_file_to_images.py +0 -0
  429. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/utils/test_legacy_office.py +0 -0
  430. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/utils/test_payload.py +0 -0
  431. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/utils/test_transcription.py +0 -0
  432. {classifyre_cli-0.7.2 → classifyre_cli-0.7.4}/tests/utils/test_video_processing.py +0 -0
@@ -0,0 +1,3 @@
1
+ $ uv sync
2
+ Resolved 341 packages in 545ms
3
+ Checked 52 packages in 1ms
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: classifyre-cli
3
- Version: 0.7.2
3
+ Version: 0.7.4
4
4
  Summary: Classifyre CLI — scan and classify unstructured data sources
5
5
  License: MIT
6
6
  Keywords: data,ingestion,metadata,pii,secrets,unstructured
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@classifyre/cli",
3
- "version": "0.7.2",
3
+ "version": "0.7.4",
4
4
  "private": true,
5
5
  "scripts": {
6
6
  "build": "uv sync",
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "classifyre-cli"
3
- version = "0.7.2"
3
+ version = "0.7.4"
4
4
  description = "Classifyre CLI — scan and classify unstructured data sources"
5
5
  readme = "README.md"
6
6
  # Upper bound is load-bearing: onnxruntime publishes no cp315 wheels (notably
@@ -25,7 +25,10 @@ dependencies = [
25
25
  [tool.uv.sources]
26
26
  # Local editable install for development — ignored when published to PyPI
27
27
  classifyre-schemas = { path = "../../packages/schemas", editable = true }
28
- en-core-web-sm = { url = "https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.8.0/en_core_web_sm-3.8.0-py3-none-any.whl" }
28
+ # Explosion's en_core_web_sm 3.8.0 wheel, unchanged (same sha256), from our own
29
+ # Hugging Face copy pinned to a commit: GitHub's release download answered 504
30
+ # for hours and failed every CI run and image build that needed it.
31
+ en-core-web-sm = { url = "https://huggingface.co/classifyre/en_core_web_sm/resolve/36818c1a75b5bac93b4f0df26b76da8d1149ce8c/en_core_web_sm-3.8.0-py3-none-any.whl" }
29
32
  # CPU-only torch on Linux. The default PyPI Linux wheels bundle the full NVIDIA
30
33
  # CUDA stack (~5-7 GB) which is dead weight on our CPU-only CLI jobs (no GPU
31
34
  # requested). Pull torch/torchvision from the PyTorch CPU index on Linux so the
@@ -170,10 +173,22 @@ file-processing = [
170
173
  # when none is installed.
171
174
  "py7zr>=1.1.3",
172
175
  "rarfile>=4.3",
173
- # Table layer: Iceberg metadata resolution + SQL over Parquet without Spark.
174
- "pyiceberg>=0.9.0",
176
+ # Table layer: CSV/TSV, JSON lines, Avro, database files and the Delta and
177
+ # Iceberg tables bucket sources find (utils/table_files, utils/lakehouse_tables).
175
178
  "duckdb>=1.1.0",
176
179
  ]
180
+ # Lakehouse table formats DuckDB does not read reliably: Lance (pylance applies
181
+ # deletes and takes object_store storage options), Hudi (hudi-rs snapshot reads,
182
+ # copy-on-write and merge-on-read) and Paimon (pypaimon merges primary-key
183
+ # tables; DuckDB's community extension cannot take storage credentials). Delta
184
+ # and Iceberg go through DuckDB in file-processing. Installed on first use, when
185
+ # a bucket scan finds a table in one of these formats.
186
+ lakehouse = [
187
+ { include-group = "file-processing" },
188
+ "pylance>=0.30.0",
189
+ "hudi>=0.5.0",
190
+ "pypaimon>=2.1.0",
191
+ ]
177
192
  transcription = [
178
193
  # CPU audio/video transcription. faster-whisper decodes media via bundled
179
194
  # PyAV (no system ffmpeg required) and runs ctranslate2 for inference.
@@ -208,7 +223,7 @@ mssql = [
208
223
  "pymssql>=2.3.4,<3.0.0",
209
224
  ]
210
225
  oracle = [
211
- "oracledb>=2.5.1,<5.0.0",
226
+ "oracledb>=2.5.1,<27.0.0",
212
227
  ]
213
228
  hive = [
214
229
  "pyhive>=0.7.0,<1.0.0",
@@ -221,7 +236,7 @@ databricks = [
221
236
  "pyarrow>=24.0.0",
222
237
  ]
223
238
  snowflake = [
224
- "snowflake-connector-python>=4.5.0,<5.0.0",
239
+ "snowflake-connector-python>=4.5.0,<6.0.0",
225
240
  ]
226
241
  mongodb = [
227
242
  "pymongo>=4.17.0,<5.0.0",
@@ -279,19 +294,29 @@ reddit = [
279
294
  "yt-dlp>=2025.1.0",
280
295
  "youtube-transcript-api>=1.0.0",
281
296
  ]
282
- delta-lake = [
283
- # Pure-Python/Rust Delta reader (delta-rs) — no Spark, no JVM. Table metadata
284
- # and data-file lists come from deltalake; rows are sampled through DuckDB
285
- # (file-processing group) over the table's Parquet files.
286
- { include-group = "file-processing" },
287
- "deltalake>=0.25.0",
297
+ trino = [
298
+ # Trino's own DB-API client; also Starburst Galaxy and Enterprise.
299
+ "trino>=0.330.0,<1.0.0",
300
+ ]
301
+ athena = [
302
+ # Athena SQL (pyathena) and the Glue Data Catalog (boto3).
303
+ "pyathena>=3.9.0,<4.0.0",
288
304
  "boto3>=1.43.10,<2.0.0",
289
305
  ]
290
- iceberg = [
291
- # PyIceberg resolves table metadata and finds Parquet files without Spark;
292
- # DuckDB (file-processing group) samples rows from those files.
306
+ bigquery = [
307
+ # BigQuery client: tabledata.list for free row reads, queries only for
308
+ # RANDOM/LATEST samples.
309
+ "google-cloud-bigquery>=3.27.0,<4.0.0",
310
+ ]
311
+ redshift = [
312
+ # Amazon's driver: password and IAM sign-in (provisioned and Serverless).
313
+ "redshift-connector>=2.1.0,<3.0.0",
314
+ ]
315
+ iceberg-rest = [
316
+ # DuckDB attaches the catalog and reads its tables (file-processing);
317
+ # google-auth mints the access token for the BigLake metastore.
293
318
  { include-group = "file-processing" },
294
- "boto3>=1.43.10,<2.0.0",
319
+ "google-auth>=2.40,<3.0",
295
320
  ]
296
321
  kafka = [
297
322
  # librdkafka-based client (bundled wheels, no JVM).
@@ -422,8 +447,9 @@ module = [
422
447
  "re2.*",
423
448
  "faster_whisper",
424
449
  "faster_whisper.*",
425
- "pyiceberg.*",
426
- "deltalake.*",
450
+ "lance.*",
451
+ "hudi.*",
452
+ "pypaimon.*",
427
453
  "duckdb.*",
428
454
  "confluent_kafka.*",
429
455
  "boto3.*",
@@ -483,6 +509,11 @@ package = true
483
509
  # distribution declared by our video and OCR groups. Installing both would
484
510
  # overwrite the same cv2 namespace and add GUI libraries to CPU-only containers.
485
511
  exclude-dependencies = ["opencv-python"]
512
+ # pypaimon declares pyarrow<20, a pin from before newer pyarrow existed rather
513
+ # than a known break: its reader works on the pyarrow the rest of the CLI uses
514
+ # (the Databricks group needs >=24), which tests/utils/test_lakehouse_tables.py
515
+ # exercises. Without the override no environment can hold both groups.
516
+ override-dependencies = ["pyarrow>=24.0.0"]
486
517
  # Two transitive dependencies whose latest release breaks the package that
487
518
  # pulls it in, while that package's own requirement still allows it. Both
488
519
  # failures were silent in a scan: images and scans came back with no text, and
@@ -78,8 +78,12 @@ INCLUDED_GROUPS = (
78
78
  "youtube",
79
79
  "reddit",
80
80
  "kafka",
81
- "delta-lake",
82
- "iceberg",
81
+ "lakehouse",
82
+ "iceberg-rest",
83
+ "trino",
84
+ "athena",
85
+ "bigquery",
86
+ "redshift",
83
87
  # sqlglot: pure Python and small, and the thing a connector author reaches
84
88
  # for when they want to derive column lineage from a query they already have.
85
89
  "lineage",
@@ -125,6 +129,8 @@ MODULE_ALIASES: dict[str, tuple[str, ...]] = {
125
129
  "google-api-python-client": ("googleapiclient",),
126
130
  "google-auth": ("google.auth",),
127
131
  "google-cloud-storage": ("google.cloud.storage",),
132
+ "google-cloud-bigquery": ("google.cloud.bigquery",),
133
+ "pylance": ("lance",),
128
134
  "msgraph-sdk": ("msgraph",),
129
135
  "en-core-web-sm": ("en_core_web_sm",),
130
136
  "classifyre-schemas": ("schemas",),
@@ -151,6 +151,9 @@ class PIIDetector(BaseDetector):
151
151
  "fax": {"PHONE_NUMBER"},
152
152
  "name": {"PERSON"},
153
153
  "person": {"PERSON"},
154
+ # A "contact" column holds whoever to reach and how: a name, an e-mail
155
+ # address or a phone number, often one of each across rows.
156
+ "contact": {"PERSON", "EMAIL_ADDRESS", "PHONE_NUMBER"},
154
157
  "address": {"LOCATION"},
155
158
  "location": {"LOCATION"},
156
159
  "city": {"LOCATION"},