analytics-toolkit 1.3.8.2__tar.gz → 1.3.8.3__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 (147) hide show
  1. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/PKG-INFO +2 -2
  2. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/README.md +1 -1
  3. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/__init__.py +3 -3
  4. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/__init__.py +2 -2
  5. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/table/__init__.py +2 -2
  6. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/table/api.py +1 -1
  7. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/table/partitions.py +4 -4
  8. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit.egg-info/PKG-INFO +2 -2
  9. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/pyproject.toml +1 -1
  10. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/tests/test_sql_architecture.py +3 -2
  11. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/tests/test_sql_backend_adapters.py +3 -1
  12. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/tests/test_sql_drop_many_partitions.py +24 -20
  13. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/tests/test_sql_improvements.py +1 -1
  14. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/LICENSE +0 -0
  15. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/__init__.py +0 -0
  16. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/ab_utils/__init__.py +0 -0
  17. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/ab_utils/api.py +0 -0
  18. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/ab_utils/bootstrap.py +0 -0
  19. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/ab_utils/constants.py +0 -0
  20. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/ab_utils/cuped.py +0 -0
  21. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/ab_utils/formatter.py +0 -0
  22. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/ab_utils/metrics.py +0 -0
  23. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/ab_utils/outliers.py +0 -0
  24. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/ab_utils/parallel.py +0 -0
  25. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/ab_utils/planning.py +0 -0
  26. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/ab_utils/ratio.py +0 -0
  27. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/ab_utils/rows.py +0 -0
  28. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/ab_utils/split.py +0 -0
  29. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/ab_utils/stats.py +0 -0
  30. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/ab_utils/validation.py +0 -0
  31. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/cli.py +0 -0
  32. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/dates/__init__.py +0 -0
  33. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/dates/dates.py +0 -0
  34. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/dates/functions.py +0 -0
  35. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/excel/__init__.py +0 -0
  36. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/excel/long_format.py +0 -0
  37. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/general/__init__.py +0 -0
  38. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/general/logging.py +0 -0
  39. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/general/read_file.py +0 -0
  40. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/_backend_adapters/__init__.py +0 -0
  41. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/_backend_adapters/base.py +0 -0
  42. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/_backend_adapters/clickhouse.py +0 -0
  43. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/_backend_adapters/dbapi.py +0 -0
  44. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/_backend_adapters/gp.py +0 -0
  45. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/_backend_adapters/registry.py +0 -0
  46. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/_backend_adapters/trino.py +0 -0
  47. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/_backend_adapters/utils.py +0 -0
  48. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/backend_adapters.py +0 -0
  49. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/clickhouse/__init__.py +0 -0
  50. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/clickhouse/lifecycle.py +0 -0
  51. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/clickhouse/options.py +0 -0
  52. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/clickhouse/wait.py +0 -0
  53. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/connection/__init__.py +0 -0
  54. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/connection/config.py +0 -0
  55. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/connection/errors.py +0 -0
  56. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/connection/get_sql_connection.py +0 -0
  57. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/connection/protocols.py +0 -0
  58. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/core/__init__.py +0 -0
  59. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/core/capabilities.py +0 -0
  60. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/core/identifiers.py +0 -0
  61. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/core/types.py +0 -0
  62. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/ddl/__init__.py +0 -0
  63. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/ddl/api.py +0 -0
  64. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/ddl/builders.py +0 -0
  65. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/ddl/clickhouse.py +0 -0
  66. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/ddl/extract_ddl.py +0 -0
  67. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/ddl/identifiers.py +0 -0
  68. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/ddl/models.py +0 -0
  69. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/ddl/schema.py +0 -0
  70. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/io/__init__.py +0 -0
  71. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/io/cancel_queries.py +0 -0
  72. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/io/execute_read.py +0 -0
  73. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/io/execute_sql.py +0 -0
  74. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/io/models.py +0 -0
  75. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/io/read_sql.py +0 -0
  76. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/load/__init__.py +0 -0
  77. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/load/load_df.py +0 -0
  78. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/load/load_sql_table.py +0 -0
  79. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/load/models.py +0 -0
  80. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/load/stage.py +0 -0
  81. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/table/_basic_ops.py +0 -0
  82. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/table/ch_create_table_as.py +0 -0
  83. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/table/create_table_from_sql.py +0 -0
  84. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/table/drop_tables.py +0 -0
  85. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/table/maintenance.py +0 -0
  86. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/table/models.py +0 -0
  87. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/table/table_validation.py +0 -0
  88. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/table/write_modes.py +0 -0
  89. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/transfer/__init__.py +0 -0
  90. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/transfer/flow/__init__.py +0 -0
  91. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/transfer/flow/api.py +0 -0
  92. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/transfer/flow/attempt.py +0 -0
  93. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/transfer/flow/estimate.py +0 -0
  94. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/transfer/flow/finalize.py +0 -0
  95. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/transfer/flow/stage.py +0 -0
  96. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/transfer/io/__init__.py +0 -0
  97. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/transfer/io/source.py +0 -0
  98. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/transfer/runtime/__init__.py +0 -0
  99. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/transfer/runtime/models.py +0 -0
  100. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/transfer/runtime/retry.py +0 -0
  101. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/dml/transfer/schema.py +0 -0
  102. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/execution/__init__.py +0 -0
  103. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/execution/labels.py +0 -0
  104. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/execution/operation_runner.py +0 -0
  105. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/execution/plan_steps.py +0 -0
  106. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/execution/plans.py +0 -0
  107. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/execution/query_timing.py +0 -0
  108. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/metadata/__init__.py +0 -0
  109. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/metadata/show_tables.py +0 -0
  110. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/metadata/table_info.py +0 -0
  111. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/orchestration/__init__.py +0 -0
  112. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/orchestration/async_sql.py +0 -0
  113. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/orchestration/parallel_sql.py +0 -0
  114. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/orchestration/pipeline.py +0 -0
  115. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit/sql/orchestration/tasks.py +0 -0
  116. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit.egg-info/SOURCES.txt +0 -0
  117. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit.egg-info/dependency_links.txt +0 -0
  118. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit.egg-info/entry_points.txt +0 -0
  119. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit.egg-info/requires.txt +0 -0
  120. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/analytics_toolkit.egg-info/top_level.txt +0 -0
  121. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/setup.cfg +0 -0
  122. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/tests/test_ab_utils_format.py +0 -0
  123. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/tests/test_ab_utils_metrics.py +0 -0
  124. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/tests/test_ab_utils_parallel.py +0 -0
  125. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/tests/test_ab_utils_split.py +0 -0
  126. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/tests/test_dates.py +0 -0
  127. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/tests/test_excel_long_format.py +0 -0
  128. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/tests/test_general_logging.py +0 -0
  129. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/tests/test_general_read_file.py +0 -0
  130. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/tests/test_rag_docs.py +0 -0
  131. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/tests/test_sql_async.py +0 -0
  132. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/tests/test_sql_cancel_queries.py +0 -0
  133. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/tests/test_sql_ch_create_table_as.py +0 -0
  134. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/tests/test_sql_connection_config.py +0 -0
  135. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/tests/test_sql_create_table_from_sql.py +0 -0
  136. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/tests/test_sql_drop_tables.py +0 -0
  137. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/tests/test_sql_execute_read.py +0 -0
  138. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/tests/test_sql_extract_ddl.py +0 -0
  139. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/tests/test_sql_gp_create_partitions.py +0 -0
  140. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/tests/test_sql_load_table.py +0 -0
  141. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/tests/test_sql_parallel.py +0 -0
  142. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/tests/test_sql_retries.py +0 -0
  143. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/tests/test_sql_show_tables.py +0 -0
  144. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/tests/test_sql_transfer_clickhouse.py +0 -0
  145. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/tests/test_sql_transfer_row_batches.py +0 -0
  146. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/tests/test_sql_transfer_schema.py +0 -0
  147. {analytics_toolkit-1.3.8.2 → analytics_toolkit-1.3.8.3}/tests/test_sql_transfer_source_batches.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: analytics-toolkit
3
- Version: 1.3.8.2
3
+ Version: 1.3.8.3
4
4
  Summary: Shared Python utilities for SQL, Excel, and date helpers.
5
5
  Author: analytics_toolkit contributors
6
6
  License: MIT License
@@ -75,7 +75,7 @@ Python toolkit for AB-test analysis, SQL workflows, Excel reports, and date help
75
75
 
76
76
  [Documentation Overview](https://github.com/Karapsin/analytics_toolkit/blob/main/docs/README.md)
77
77
 
78
- **Version:** `1.3.8.2`<br>
78
+ **Version:** `1.3.8.3`<br>
79
79
  **Depends:** Python (`>=3.8,<3.15`)<br>
80
80
  **Imports:** [clickhouse-connect](https://pypi.org/project/clickhouse-connect/) (`>=0.5.14,<1`), [lz4](https://pypi.org/project/lz4/) (`>=4.3.2,<5`), [numpy](https://pypi.org/project/numpy/) (`>=1.24.2,<2`), [openpyxl](https://pypi.org/project/openpyxl/) (`>=3.1.1,<4`), [orjson](https://pypi.org/project/orjson/) (`>=3.8.7,<4`), [pandas](https://pypi.org/project/pandas/) (`>=1.4.4,<3`), [psycopg2-binary](https://pypi.org/project/psycopg2-binary/) (`>=2.9.5,<3`), [python-dateutil](https://pypi.org/project/python-dateutil/) (`>=2.8.2,<3`), [pytz](https://pypi.org/project/pytz/) (`>=2022.7`), [requests](https://pypi.org/project/requests/) (`>=2.28.2,<3`), [scipy](https://pypi.org/project/scipy/) (`>=1.10.1,<2`), [sqlglot](https://pypi.org/project/sqlglot/) (`>=20,<31`), [sqlparse](https://pypi.org/project/sqlparse/) (`>=0.4.3,<1`), [tqdm](https://pypi.org/project/tqdm/) (`>=4.65.0,<5`), [trino](https://pypi.org/project/trino/) (`>=0.320,<1`), [zstandard](https://pypi.org/project/zstandard/) (`>=0.20.0,<1`)<br>
81
81
  **Suggests:** [apache-airflow](https://pypi.org/project/apache-airflow/) (`>=2.4,<3`; optional extra `airflow`)<br>
@@ -6,7 +6,7 @@ Python toolkit for AB-test analysis, SQL workflows, Excel reports, and date help
6
6
 
7
7
  [Documentation Overview](https://github.com/Karapsin/analytics_toolkit/blob/main/docs/README.md)
8
8
 
9
- **Version:** `1.3.8.2`<br>
9
+ **Version:** `1.3.8.3`<br>
10
10
  **Depends:** Python (`>=3.8,<3.15`)<br>
11
11
  **Imports:** [clickhouse-connect](https://pypi.org/project/clickhouse-connect/) (`>=0.5.14,<1`), [lz4](https://pypi.org/project/lz4/) (`>=4.3.2,<5`), [numpy](https://pypi.org/project/numpy/) (`>=1.24.2,<2`), [openpyxl](https://pypi.org/project/openpyxl/) (`>=3.1.1,<4`), [orjson](https://pypi.org/project/orjson/) (`>=3.8.7,<4`), [pandas](https://pypi.org/project/pandas/) (`>=1.4.4,<3`), [psycopg2-binary](https://pypi.org/project/psycopg2-binary/) (`>=2.9.5,<3`), [python-dateutil](https://pypi.org/project/python-dateutil/) (`>=2.8.2,<3`), [pytz](https://pypi.org/project/pytz/) (`>=2022.7`), [requests](https://pypi.org/project/requests/) (`>=2.28.2,<3`), [scipy](https://pypi.org/project/scipy/) (`>=1.10.1,<2`), [sqlglot](https://pypi.org/project/sqlglot/) (`>=20,<31`), [sqlparse](https://pypi.org/project/sqlparse/) (`>=0.4.3,<1`), [tqdm](https://pypi.org/project/tqdm/) (`>=4.65.0,<5`), [trino](https://pypi.org/project/trino/) (`>=0.320,<1`), [zstandard](https://pypi.org/project/zstandard/) (`>=0.20.0,<1`)<br>
12
12
  **Suggests:** [apache-airflow](https://pypi.org/project/apache-airflow/) (`>=2.4,<3`; optional extra `airflow`)<br>
@@ -32,7 +32,7 @@ from .dml.io.read_sql import read_sql as read
32
32
  from .dml.io.cancel_queries import cancel_queries
33
33
  from .dml.table import (
34
34
  drop_tables,
35
- drop_paritions,
35
+ drop_partitions,
36
36
  gp_create_partitions,
37
37
  gp_vacuum,
38
38
  )
@@ -52,7 +52,7 @@ _TIMED_PUBLIC_SQL_FUNCTION_NAMES = (
52
52
  "execute_read",
53
53
  "execute",
54
54
  "drop_tables",
55
- "drop_paritions",
55
+ "drop_partitions",
56
56
  "gp_create_partitions",
57
57
  "gp_vacuum",
58
58
  "load_df",
@@ -81,7 +81,7 @@ __all__ = [
81
81
  "generate_dummy_connections",
82
82
  "create_sql_table",
83
83
  "drop_tables",
84
- "drop_paritions",
84
+ "drop_partitions",
85
85
  "gp_create_partitions",
86
86
  "gp_vacuum",
87
87
  "load_df",
@@ -3,7 +3,7 @@ from .io.execute_sql import execute_sql
3
3
  from .io.read_sql import read_sql
4
4
  from .load.load_df import build_load_df_plan, load_df
5
5
  from .table import (
6
- drop_paritions,
6
+ drop_partitions,
7
7
  gp_create_partitions,
8
8
  gp_vacuum,
9
9
  )
@@ -13,7 +13,7 @@ __all__ = [
13
13
  "build_load_df_plan",
14
14
  "build_transfer_table_plan",
15
15
  "cancel_queries",
16
- "drop_paritions",
16
+ "drop_partitions",
17
17
  "execute_sql",
18
18
  "gp_create_partitions",
19
19
  "gp_vacuum",
@@ -35,7 +35,7 @@ from .table_validation import (
35
35
  validate_stage_target_key_overlap,
36
36
  validate_stage_uniqueness,
37
37
  )
38
- from .partitions import drop_paritions
38
+ from .partitions import drop_partitions
39
39
 
40
40
  __all__ = [
41
41
  "analyze_table",
@@ -52,7 +52,7 @@ __all__ = [
52
52
  "build_insert_from_table_sql",
53
53
  "count_table_rows",
54
54
  "CreateTableFromSqlOptions",
55
- "drop_paritions",
55
+ "drop_partitions",
56
56
  "DropManyPartitionsOptions",
57
57
  "drop_tables",
58
58
  "drop_table_with_retry",
@@ -47,7 +47,7 @@ from .partitions import (
47
47
  build_drop_many_partitions_plan,
48
48
  build_drop_many_partitions_sqls,
49
49
  build_gp_create_partitions_plan,
50
- drop_paritions,
50
+ drop_partitions,
51
51
  gp_create_partitions,
52
52
  )
53
53
  from .write_modes import (
@@ -213,7 +213,7 @@ def gp_create_partitions(
213
213
  return None
214
214
 
215
215
  @timed_public_sql_function
216
- def drop_paritions(
216
+ def drop_partitions(
217
217
  db_key: str,
218
218
  table: str,
219
219
  partition_keys_list: list[str],
@@ -255,7 +255,7 @@ def drop_paritions(
255
255
  def operation(connection_ref: dict[str, Any], attempt: int) -> None:
256
256
  with tracked_sql_operation(
257
257
  metadata=metadata,
258
- operation_name="drop_paritions",
258
+ operation_name="drop_partitions",
259
259
  alias=options.connection_key,
260
260
  backend=options.backend,
261
261
  phase="drop_partitions",
@@ -271,7 +271,7 @@ def drop_paritions(
271
271
 
272
272
  def context(attempt: int) -> SqlOperationContext:
273
273
  return SqlOperationContext(
274
- operation="drop_paritions",
274
+ operation="drop_partitions",
275
275
  alias=options.connection_key,
276
276
  backend=options.backend,
277
277
  phase="drop_partitions",
@@ -413,7 +413,7 @@ def build_drop_many_partitions_plan(
413
413
  query_label=options.query_label,
414
414
  )
415
415
  plan = SqlPlan(
416
- operation="drop_paritions",
416
+ operation="drop_partitions",
417
417
  target_alias=options.connection_key,
418
418
  target_backend=options.backend,
419
419
  target_table=options.target_table,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: analytics-toolkit
3
- Version: 1.3.8.2
3
+ Version: 1.3.8.3
4
4
  Summary: Shared Python utilities for SQL, Excel, and date helpers.
5
5
  Author: analytics_toolkit contributors
6
6
  License: MIT License
@@ -75,7 +75,7 @@ Python toolkit for AB-test analysis, SQL workflows, Excel reports, and date help
75
75
 
76
76
  [Documentation Overview](https://github.com/Karapsin/analytics_toolkit/blob/main/docs/README.md)
77
77
 
78
- **Version:** `1.3.8.2`<br>
78
+ **Version:** `1.3.8.3`<br>
79
79
  **Depends:** Python (`>=3.8,<3.15`)<br>
80
80
  **Imports:** [clickhouse-connect](https://pypi.org/project/clickhouse-connect/) (`>=0.5.14,<1`), [lz4](https://pypi.org/project/lz4/) (`>=4.3.2,<5`), [numpy](https://pypi.org/project/numpy/) (`>=1.24.2,<2`), [openpyxl](https://pypi.org/project/openpyxl/) (`>=3.1.1,<4`), [orjson](https://pypi.org/project/orjson/) (`>=3.8.7,<4`), [pandas](https://pypi.org/project/pandas/) (`>=1.4.4,<3`), [psycopg2-binary](https://pypi.org/project/psycopg2-binary/) (`>=2.9.5,<3`), [python-dateutil](https://pypi.org/project/python-dateutil/) (`>=2.8.2,<3`), [pytz](https://pypi.org/project/pytz/) (`>=2022.7`), [requests](https://pypi.org/project/requests/) (`>=2.28.2,<3`), [scipy](https://pypi.org/project/scipy/) (`>=1.10.1,<2`), [sqlglot](https://pypi.org/project/sqlglot/) (`>=20,<31`), [sqlparse](https://pypi.org/project/sqlparse/) (`>=0.4.3,<1`), [tqdm](https://pypi.org/project/tqdm/) (`>=4.65.0,<5`), [trino](https://pypi.org/project/trino/) (`>=0.320,<1`), [zstandard](https://pypi.org/project/zstandard/) (`>=0.20.0,<1`)<br>
81
81
  **Suggests:** [apache-airflow](https://pypi.org/project/apache-airflow/) (`>=2.4,<3`; optional extra `airflow`)<br>
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "analytics-toolkit"
7
- version = "1.3.8.2"
7
+ version = "1.3.8.3"
8
8
  description = "Shared Python utilities for SQL, Excel, and date helpers."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.8,<3.15"
@@ -14,7 +14,7 @@ def test_sql_facade_is_the_supported_public_surface() -> None:
14
14
  public_names = {
15
15
  "cancel_queries",
16
16
  "create_sql_table",
17
- "drop_paritions",
17
+ "drop_partitions",
18
18
  "drop_tables",
19
19
  "execute",
20
20
  "generate_dummy_connections",
@@ -38,6 +38,7 @@ def test_sql_facade_is_the_supported_public_surface() -> None:
38
38
  "ch_drop_table",
39
39
  "create_table_from_sql",
40
40
  "execute_sql",
41
+ "drop_paritions",
41
42
  "drop_many_partitions",
42
43
  "drop_table",
43
44
  "gp_cancel_all_running_queries",
@@ -83,7 +84,7 @@ def test_single_db_sql_public_operations_use_db_key() -> None:
83
84
  single_db_operations = {
84
85
  "create_sql_table",
85
86
  "cancel_queries",
86
- "drop_paritions",
87
+ "drop_partitions",
87
88
  "drop_tables",
88
89
  "execute",
89
90
  "execute_read",
@@ -58,7 +58,7 @@ def test_sql_public_api_exports_are_stable() -> None:
58
58
  public_names = {
59
59
  "async_sql",
60
60
  "create_sql_table",
61
- "drop_paritions",
61
+ "drop_partitions",
62
62
  "drop_tables",
63
63
  "execute",
64
64
  "execute_read",
@@ -96,6 +96,8 @@ def test_sql_public_api_exports_are_stable() -> None:
96
96
  assert "read_sql" not in sql_module.__all__
97
97
  assert "drop_table" not in sql_module.__all__
98
98
  assert not hasattr(sql_module, "drop_table")
99
+ assert "drop_paritions" not in sql_module.__all__
100
+ assert not hasattr(sql_module, "drop_paritions")
99
101
  assert "drop_many_partitions" not in sql_module.__all__
100
102
  assert not hasattr(sql_module, "drop_many_partitions")
101
103
  assert "transfer_table" not in sql_module.__all__
@@ -16,14 +16,18 @@ dml_table_module = importlib.import_module("analytics_toolkit.sql.dml.table")
16
16
  table_ops_module = importlib.import_module("analytics_toolkit.sql.dml.table.partitions")
17
17
 
18
18
 
19
- def test_drop_paritions_is_public_and_timed() -> None:
20
- assert sql_module.drop_paritions is table_ops_module.drop_paritions
21
- assert dml_table_module.drop_paritions is table_ops_module.drop_paritions
22
- assert "drop_paritions" in sql_module.__all__
23
- assert "drop_paritions" in dml_table_module.__all__
19
+ def test_drop_partitions_is_public_and_timed() -> None:
20
+ assert sql_module.drop_partitions is table_ops_module.drop_partitions
21
+ assert dml_table_module.drop_partitions is table_ops_module.drop_partitions
22
+ assert "drop_partitions" in sql_module.__all__
23
+ assert "drop_partitions" in dml_table_module.__all__
24
24
  assert "build_drop_many_partitions_sqls" in dml_table_module.__all__
25
- assert "drop_paritions" in sql_module._TIMED_PUBLIC_SQL_FUNCTION_NAMES
26
- assert getattr(sql_module.drop_paritions, "__sql_public_timing__", False)
25
+ assert "drop_partitions" in sql_module._TIMED_PUBLIC_SQL_FUNCTION_NAMES
26
+ assert getattr(sql_module.drop_partitions, "__sql_public_timing__", False)
27
+ assert "drop_paritions" not in sql_module.__all__
28
+ assert not hasattr(sql_module, "drop_paritions")
29
+ assert "drop_paritions" not in dml_table_module.__all__
30
+ assert not hasattr(dml_table_module, "drop_paritions")
27
31
 
28
32
 
29
33
  def test_build_drop_many_partitions_sqls_renders_backend_sql() -> None:
@@ -67,7 +71,7 @@ def test_build_drop_many_partitions_sqls_renders_backend_sql() -> None:
67
71
  ]
68
72
 
69
73
 
70
- def test_drop_paritions_executes_greenplum_in_order_and_commits(
74
+ def test_drop_partitions_executes_greenplum_in_order_and_commits(
71
75
  monkeypatch: pytest.MonkeyPatch,
72
76
  ) -> None:
73
77
  connection = FakeDbapiConnection()
@@ -77,7 +81,7 @@ def test_drop_paritions_executes_greenplum_in_order_and_commits(
77
81
  lambda key: connection,
78
82
  )
79
83
 
80
- result = table_ops_module.drop_paritions(
84
+ result = table_ops_module.drop_partitions(
81
85
  "gp",
82
86
  "sandbox.events",
83
87
  ["2025-05-01", "2025-05-02"],
@@ -93,7 +97,7 @@ def test_drop_paritions_executes_greenplum_in_order_and_commits(
93
97
  assert connection.close_calls == 1
94
98
 
95
99
 
96
- def test_drop_paritions_executes_trino_delete_without_commit(
100
+ def test_drop_partitions_executes_trino_delete_without_commit(
97
101
  monkeypatch: pytest.MonkeyPatch,
98
102
  ) -> None:
99
103
  connection = FakeDbapiConnection()
@@ -103,7 +107,7 @@ def test_drop_paritions_executes_trino_delete_without_commit(
103
107
  lambda key: connection,
104
108
  )
105
109
 
106
- table_ops_module.drop_paritions(
110
+ table_ops_module.drop_partitions(
107
111
  "trino",
108
112
  "sandbox.events",
109
113
  ["2025-05-01", "2025-05-02"],
@@ -118,7 +122,7 @@ def test_drop_paritions_executes_trino_delete_without_commit(
118
122
  assert connection.close_calls == 1
119
123
 
120
124
 
121
- def test_drop_paritions_executes_clickhouse_shard_drops(
125
+ def test_drop_partitions_executes_clickhouse_shard_drops(
122
126
  monkeypatch: pytest.MonkeyPatch,
123
127
  ) -> None:
124
128
  connection = FakeClickHouseClient()
@@ -128,7 +132,7 @@ def test_drop_paritions_executes_clickhouse_shard_drops(
128
132
  lambda key: connection,
129
133
  )
130
134
 
131
- table_ops_module.drop_paritions(
135
+ table_ops_module.drop_partitions(
132
136
  "ch",
133
137
  "sandbox.events",
134
138
  ["2025-05-01", "2025-05-02"],
@@ -143,7 +147,7 @@ def test_drop_paritions_executes_clickhouse_shard_drops(
143
147
  assert connection.close_calls == 1
144
148
 
145
149
 
146
- def test_drop_paritions_dry_run_returns_plan_without_connection(
150
+ def test_drop_partitions_dry_run_returns_plan_without_connection(
147
151
  monkeypatch: pytest.MonkeyPatch,
148
152
  ) -> None:
149
153
  monkeypatch.setattr(
@@ -152,21 +156,21 @@ def test_drop_paritions_dry_run_returns_plan_without_connection(
152
156
  lambda key: pytest.fail("connection should not be opened"),
153
157
  )
154
158
 
155
- plan = table_ops_module.drop_paritions(
159
+ plan = table_ops_module.drop_partitions(
156
160
  "gp",
157
161
  "sandbox.events",
158
162
  ["2025-05-01"],
159
163
  dry_run=True,
160
164
  )
161
165
 
162
- assert plan.operation == "drop_paritions"
166
+ assert plan.operation == "drop_partitions"
163
167
  assert plan.metadata.statement_count == 1
164
168
  assert plan.sqls == ["ALTER TABLE sandbox.events DROP PARTITION FOR ('2025-05-01')"]
165
169
 
166
170
 
167
- def test_drop_paritions_validates_required_inputs() -> None:
171
+ def test_drop_partitions_validates_required_inputs() -> None:
168
172
  with pytest.raises(InvalidSqlInputError):
169
- table_ops_module.drop_paritions(
173
+ table_ops_module.drop_partitions(
170
174
  "gp",
171
175
  "sandbox.events",
172
176
  [],
@@ -178,14 +182,14 @@ def test_drop_paritions_validates_required_inputs() -> None:
178
182
  [],
179
183
  )
180
184
  with pytest.raises(InvalidSqlInputError):
181
- table_ops_module.drop_paritions(
185
+ table_ops_module.drop_partitions(
182
186
  "gp",
183
187
  "sandbox.events",
184
188
  ["2025-05-01"],
185
189
  trino_partition_column="dt",
186
190
  )
187
191
  with pytest.raises(UnsupportedConnectionTypeError):
188
- table_ops_module.drop_paritions(
192
+ table_ops_module.drop_partitions(
189
193
  "unknown",
190
194
  "sandbox.events",
191
195
  ["2025-05-01"],
@@ -179,7 +179,7 @@ def test_public_sql_facade_exports_refactored_helpers() -> None:
179
179
  @pytest.mark.parametrize(
180
180
  "function_name",
181
181
  [
182
- "drop_paritions",
182
+ "drop_partitions",
183
183
  "drop_tables",
184
184
  "create_sql_table",
185
185
  "execute",