al-data-utils 0.3.2__tar.gz → 0.3.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 (66) hide show
  1. {al_data_utils-0.3.2/src/al_data_utils.egg-info → al_data_utils-0.3.3}/PKG-INFO +12 -12
  2. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/README.md +125 -125
  3. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/pyproject.toml +59 -59
  4. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/sql_utils/sql_utils.py +1 -1
  5. {al_data_utils-0.3.2 → al_data_utils-0.3.3/src/al_data_utils.egg-info}/PKG-INFO +12 -12
  6. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/LICENSE +0 -0
  7. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/setup.cfg +0 -0
  8. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/__init__.py +0 -0
  9. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/airflow_utils/__init__.py +0 -0
  10. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/airflow_utils/airflow_utils.py +0 -0
  11. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/azure_as_utils/__init__.py +0 -0
  12. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/azure_as_utils/auth.py +0 -0
  13. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/azure_as_utils/azure_as_utils.py +0 -0
  14. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/azure_as_utils/client.py +0 -0
  15. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/azure_as_utils/errors.py +0 -0
  16. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/azure_as_utils/models.py +0 -0
  17. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/azure_as_utils/poller.py +0 -0
  18. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/__init__.py +0 -0
  19. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/mssql/dacpac/__init__.py +0 -0
  20. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/mssql/dacpac/sqlpackage.py +0 -0
  21. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/mssql/schema_snapshot/__init__.py +0 -0
  22. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/mssql/schema_snapshot/config.py +0 -0
  23. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/mssql/schema_snapshot/emit/__init__.py +0 -0
  24. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/mssql/schema_snapshot/emit/foreign_keys.py +0 -0
  25. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/mssql/schema_snapshot/emit/indexes.py +0 -0
  26. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/mssql/schema_snapshot/emit/sql_objects.py +0 -0
  27. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/mssql/schema_snapshot/emit/tables.py +0 -0
  28. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/mssql/schema_snapshot/introspect/__init__.py +0 -0
  29. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/mssql/schema_snapshot/introspect/foreign_keys.py +0 -0
  30. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/mssql/schema_snapshot/introspect/functions.py +0 -0
  31. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/mssql/schema_snapshot/introspect/indexes.py +0 -0
  32. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/mssql/schema_snapshot/introspect/sequences.py +0 -0
  33. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/mssql/schema_snapshot/introspect/stored_procedures.py +0 -0
  34. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/mssql/schema_snapshot/introspect/synonyms.py +0 -0
  35. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/mssql/schema_snapshot/introspect/tables.py +0 -0
  36. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/mssql/schema_snapshot/introspect/views.py +0 -0
  37. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/mssql/schema_snapshot/io/__init__.py +0 -0
  38. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/mssql/schema_snapshot/io/layout.py +0 -0
  39. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/mssql/schema_snapshot/io/writer.py +0 -0
  40. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/mssql/schema_snapshot/models/__init__.py +0 -0
  41. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/mssql/schema_snapshot/models/foreign_key_def.py +0 -0
  42. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/mssql/schema_snapshot/models/index_def.py +0 -0
  43. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/mssql/schema_snapshot/models/sql_object_def.py +0 -0
  44. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/mssql/schema_snapshot/models/table_column_def.py +0 -0
  45. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/mssql/schema_snapshot/models/table_def.py +0 -0
  46. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/mssql/schema_snapshot/snapshot_processor.py +0 -0
  47. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/mssql/scripter/__init__.py +0 -0
  48. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/config_utils/__init__.py +0 -0
  49. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/config_utils/config_utils.py +0 -0
  50. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/files_sync_utils/__init__.py +0 -0
  51. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/files_sync_utils/files_sync_utils.py +0 -0
  52. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/geo_utils/__init__.py +0 -0
  53. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/git_utils/__init__.py +0 -0
  54. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/git_utils/git_utils.py +0 -0
  55. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/logging_utils/__init__.py +0 -0
  56. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/logging_utils/logging_utils.py +0 -0
  57. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/ones_api_utils/__init__.py +0 -0
  58. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/ones_api_utils/ones_api_utils.py +0 -0
  59. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/sql_utils/__init__.py +0 -0
  60. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/tg_utils/__init__.py +0 -0
  61. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/tg_utils/tg_utils.py +0 -0
  62. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils.egg-info/SOURCES.txt +0 -0
  63. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils.egg-info/dependency_links.txt +0 -0
  64. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils.egg-info/requires.txt +0 -0
  65. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils.egg-info/top_level.txt +0 -0
  66. {al_data_utils-0.3.2 → al_data_utils-0.3.3}/tests/test_azure_as_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: al-data-utils
3
- Version: 0.3.2
3
+ Version: 0.3.3
4
4
  Summary: Reusable utilities for data engineering (Airflow, Azure, Snowflake, SQL, config).
5
5
  Author-email: AL Data Labs <pypi@aldatalabs.com>
6
6
  License-Expression: MIT
@@ -31,17 +31,17 @@ Python 3.10+. Runtime dependencies (`pyyaml`, `sqlalchemy`, `pandas`, `requests`
31
31
 
32
32
  ## Modules
33
33
 
34
- - `airflow_utils` — Airflow Variable / connection helpers
35
- - `azure_as_utils` — Azure Analysis Services model refresh (REST + MSAL)
36
- - `backup_utils` — MSSQL schema snapshot to filesystem
37
- - `config_utils` — YAML config loading
38
- - `files_sync_utils` — folder inventory, sync plan, copy, retention
39
- - `geo_utils` — geo helpers
40
- - `git_utils` — git automation wrappers
41
- - `logging_utils` — unified logging
42
- - `ones_api_utils` — 1C/ОneS API client
43
- - `sql_utils` — `UnifiedSQLClient` (MSSQL / PostgreSQL / Snowflake via SQLAlchemy)
44
- - `tg_utils` — Telegram helpers
34
+ - `airflow_utils` - Airflow Variable / connection helpers
35
+ - `azure_as_utils` - Azure Analysis Services model refresh (REST + MSAL)
36
+ - `backup_utils` - MSSQL schema snapshot to filesystem
37
+ - `config_utils` - YAML config loading
38
+ - `files_sync_utils` - folder inventory, sync plan, copy, retention
39
+ - `geo_utils` - geo helpers
40
+ - `git_utils` - git automation wrappers
41
+ - `logging_utils` - unified logging
42
+ - `ones_api_utils` - 1C/ОneS API client
43
+ - `sql_utils` - `UnifiedSQLClient` (MSSQL / PostgreSQL / Snowflake via SQLAlchemy)
44
+ - `tg_utils` - Telegram helpers
45
45
 
46
46
  ## Examples
47
47
 
@@ -1,125 +1,125 @@
1
- # al-data-utils
2
-
3
- Reusable Python utilities for data and automation workflows.
4
-
5
- This repository contains independent utility modules for sync operations, git automation, SQL work, logging helpers, and MSSQL schema snapshot generation.
6
-
7
- ## Install
8
-
9
- ```bash
10
- pip install al-data-utils
11
- ```
12
-
13
- Python 3.10+. Runtime dependencies (`pyyaml`, `sqlalchemy`, `pandas`, `requests`, `msal`, ...) are expected from the host environment, typically an Airflow image.
14
-
15
- ## Modules
16
-
17
- - `airflow_utils` — Airflow Variable / connection helpers
18
- - `azure_as_utils` — Azure Analysis Services model refresh (REST + MSAL)
19
- - `backup_utils` — MSSQL schema snapshot to filesystem
20
- - `config_utils` — YAML config loading
21
- - `files_sync_utils` — folder inventory, sync plan, copy, retention
22
- - `geo_utils` — geo helpers
23
- - `git_utils` — git automation wrappers
24
- - `logging_utils` — unified logging
25
- - `ones_api_utils` — 1C/ОneS API client
26
- - `sql_utils` — `UnifiedSQLClient` (MSSQL / PostgreSQL / Snowflake via SQLAlchemy)
27
- - `tg_utils` — Telegram helpers
28
-
29
- ## Examples
30
-
31
- Runnable examples are available in the `examples` folder of the repository for the main utility groups.
32
- Use them as reference implementations for local scripts and automation jobs.
33
-
34
- ## MSSQL Schema Snapshot
35
-
36
- The snapshot tool exports SQL objects from MSSQL into a filesystem layout and syncs staging output to destination folders.
37
-
38
- Current behavior highlights:
39
-
40
- - Supports single DB and multi-DB runs in one execution.
41
- - Always writes outputs into per-DB folders.
42
- - Uses staging first, then syncs to final output.
43
- - Supports cleanup of staging folders.
44
- - Supports sync log retention cleanup.
45
- - Supports include and exclude filters per object type.
46
- - Supports DataGrip template override files.
47
-
48
- Output shape:
49
-
50
- ```text
51
- <MSSQL_OUT_DIR>/<DatabaseName>/schemas/<schema>/
52
- tables/
53
- views/
54
- routines/
55
- sequences/
56
- synonyms/
57
- ```
58
-
59
- ### Snapshot Environment Variables
60
-
61
- Core connection and output:
62
-
63
- - MSSQL_OUT_DIR
64
- - MSSQL_SERVER
65
- - MSSQL_DATABASE
66
- - MSSQL_DATABASES
67
- - MSSQL_AUTH_MODE
68
- - MSSQL_USER
69
- - MSSQL_PASSWORD
70
- - MSSQL_DRIVER
71
-
72
- Snapshot behavior:
73
-
74
- - MSSQL_ENABLE_TABLE_DEFINITIONS
75
- - MSSQL_ENABLE_INDEXES
76
- - MSSQL_ENABLE_FOREIGN_KEYS
77
- - MSSQL_ENABLE_VIEWS
78
- - MSSQL_ENABLE_STORED_PROCEDURES
79
- - MSSQL_ENABLE_FUNCTIONS
80
- - MSSQL_ENABLE_SEQUENCES
81
- - MSSQL_ENABLE_SYNONYMS
82
- - MSSQL_CLEANUP_STAGING
83
- - MSSQL_SYNC_LOG_RETENTION_DAYS
84
-
85
- Filters:
86
-
87
- - MSSQL_INCLUDE_SCHEMAS
88
- - MSSQL_EXCLUDE_SCHEMAS
89
- - MSSQL_INCLUDE_TABLES
90
- - MSSQL_EXCLUDE_TABLES
91
- - MSSQL_INCLUDE_VIEWS
92
- - MSSQL_EXCLUDE_VIEWS
93
- - MSSQL_INCLUDE_STORED_PROCEDURES
94
- - MSSQL_EXCLUDE_STORED_PROCEDURES
95
- - MSSQL_INCLUDE_FUNCTIONS
96
- - MSSQL_EXCLUDE_FUNCTIONS
97
- - MSSQL_INCLUDE_SEQUENCES
98
- - MSSQL_EXCLUDE_SEQUENCES
99
- - MSSQL_INCLUDE_SYNONYMS
100
- - MSSQL_EXCLUDE_SYNONYMS
101
-
102
- Notes:
103
-
104
- - If MSSQL_DATABASES is set, it is treated as a comma-separated list.
105
- - If MSSQL_DATABASES is empty, MSSQL_DATABASE is used.
106
- - If MSSQL_DATABASE contains commas, it is also treated as a list for backward compatibility.
107
-
108
- ## File Sync Utilities
109
-
110
- `files_sync_utils` provides:
111
-
112
- - Inventory building
113
- - Plan generation
114
- - Copy and update execution
115
- - Extra destination cleanup rules
116
- - Activity CSV logging
117
- - Log retention cleanup
118
-
119
- ## Git Utilities
120
-
121
- `git_utils` wraps common git automation operations with consistent behavior and error handling.
122
-
123
- ## Changelog
124
-
125
- See `CHANGELOG.md` in the repository for release notes.
1
+ # al-data-utils
2
+
3
+ Reusable Python utilities for data and automation workflows.
4
+
5
+ This repository contains independent utility modules for sync operations, git automation, SQL work, logging helpers, and MSSQL schema snapshot generation.
6
+
7
+ ## Install
8
+
9
+ ```bash
10
+ pip install al-data-utils
11
+ ```
12
+
13
+ Python 3.10+. Runtime dependencies (`pyyaml`, `sqlalchemy`, `pandas`, `requests`, `msal`, ...) are expected from the host environment, typically an Airflow image.
14
+
15
+ ## Modules
16
+
17
+ - `airflow_utils` - Airflow Variable / connection helpers
18
+ - `azure_as_utils` - Azure Analysis Services model refresh (REST + MSAL)
19
+ - `backup_utils` - MSSQL schema snapshot to filesystem
20
+ - `config_utils` - YAML config loading
21
+ - `files_sync_utils` - folder inventory, sync plan, copy, retention
22
+ - `geo_utils` - geo helpers
23
+ - `git_utils` - git automation wrappers
24
+ - `logging_utils` - unified logging
25
+ - `ones_api_utils` - 1C/ОneS API client
26
+ - `sql_utils` - `UnifiedSQLClient` (MSSQL / PostgreSQL / Snowflake via SQLAlchemy)
27
+ - `tg_utils` - Telegram helpers
28
+
29
+ ## Examples
30
+
31
+ Runnable examples are available in the `examples` folder of the repository for the main utility groups.
32
+ Use them as reference implementations for local scripts and automation jobs.
33
+
34
+ ## MSSQL Schema Snapshot
35
+
36
+ The snapshot tool exports SQL objects from MSSQL into a filesystem layout and syncs staging output to destination folders.
37
+
38
+ Current behavior highlights:
39
+
40
+ - Supports single DB and multi-DB runs in one execution.
41
+ - Always writes outputs into per-DB folders.
42
+ - Uses staging first, then syncs to final output.
43
+ - Supports cleanup of staging folders.
44
+ - Supports sync log retention cleanup.
45
+ - Supports include and exclude filters per object type.
46
+ - Supports DataGrip template override files.
47
+
48
+ Output shape:
49
+
50
+ ```text
51
+ <MSSQL_OUT_DIR>/<DatabaseName>/schemas/<schema>/
52
+ tables/
53
+ views/
54
+ routines/
55
+ sequences/
56
+ synonyms/
57
+ ```
58
+
59
+ ### Snapshot Environment Variables
60
+
61
+ Core connection and output:
62
+
63
+ - MSSQL_OUT_DIR
64
+ - MSSQL_SERVER
65
+ - MSSQL_DATABASE
66
+ - MSSQL_DATABASES
67
+ - MSSQL_AUTH_MODE
68
+ - MSSQL_USER
69
+ - MSSQL_PASSWORD
70
+ - MSSQL_DRIVER
71
+
72
+ Snapshot behavior:
73
+
74
+ - MSSQL_ENABLE_TABLE_DEFINITIONS
75
+ - MSSQL_ENABLE_INDEXES
76
+ - MSSQL_ENABLE_FOREIGN_KEYS
77
+ - MSSQL_ENABLE_VIEWS
78
+ - MSSQL_ENABLE_STORED_PROCEDURES
79
+ - MSSQL_ENABLE_FUNCTIONS
80
+ - MSSQL_ENABLE_SEQUENCES
81
+ - MSSQL_ENABLE_SYNONYMS
82
+ - MSSQL_CLEANUP_STAGING
83
+ - MSSQL_SYNC_LOG_RETENTION_DAYS
84
+
85
+ Filters:
86
+
87
+ - MSSQL_INCLUDE_SCHEMAS
88
+ - MSSQL_EXCLUDE_SCHEMAS
89
+ - MSSQL_INCLUDE_TABLES
90
+ - MSSQL_EXCLUDE_TABLES
91
+ - MSSQL_INCLUDE_VIEWS
92
+ - MSSQL_EXCLUDE_VIEWS
93
+ - MSSQL_INCLUDE_STORED_PROCEDURES
94
+ - MSSQL_EXCLUDE_STORED_PROCEDURES
95
+ - MSSQL_INCLUDE_FUNCTIONS
96
+ - MSSQL_EXCLUDE_FUNCTIONS
97
+ - MSSQL_INCLUDE_SEQUENCES
98
+ - MSSQL_EXCLUDE_SEQUENCES
99
+ - MSSQL_INCLUDE_SYNONYMS
100
+ - MSSQL_EXCLUDE_SYNONYMS
101
+
102
+ Notes:
103
+
104
+ - If MSSQL_DATABASES is set, it is treated as a comma-separated list.
105
+ - If MSSQL_DATABASES is empty, MSSQL_DATABASE is used.
106
+ - If MSSQL_DATABASE contains commas, it is also treated as a list for backward compatibility.
107
+
108
+ ## File Sync Utilities
109
+
110
+ `files_sync_utils` provides:
111
+
112
+ - Inventory building
113
+ - Plan generation
114
+ - Copy and update execution
115
+ - Extra destination cleanup rules
116
+ - Activity CSV logging
117
+ - Log retention cleanup
118
+
119
+ ## Git Utilities
120
+
121
+ `git_utils` wraps common git automation operations with consistent behavior and error handling.
122
+
123
+ ## Changelog
124
+
125
+ See `CHANGELOG.md` in the repository for release notes.
@@ -1,60 +1,60 @@
1
- [project]
2
- name = "al-data-utils"
3
- version = "0.3.2"
4
- description = "Reusable utilities for data engineering (Airflow, Azure, Snowflake, SQL, config)."
5
- authors = [{ name = "AL Data Labs", email = "pypi@aldatalabs.com" }]
6
- license = "MIT"
7
- license-files = ["LICENSE"]
8
- keywords = ["airflow", "data-engineering", "azure", "snowflake", "sql"]
9
- classifiers = [
10
- "Programming Language :: Python :: 3",
11
- "Operating System :: OS Independent",
12
- "Topic :: Software Development :: Libraries",
13
- ]
14
- readme = "README.md"
15
- requires-python = ">=3.10"
16
- dependencies = [
17
- "pyyaml",
18
- ] # other runtime deps (sqlalchemy, pandas, requests, msal, airflow) come from the host environment
19
-
20
- [project.urls]
21
- Homepage = "https://aldatalabs.com"
22
-
23
-
24
- [build-system]
25
- requires = ["setuptools>=77"]
26
- build-backend = "setuptools.build_meta"
27
-
28
- [tool.setuptools]
29
- package-dir = {"" = "src"}
30
-
31
- [tool.setuptools.packages.find]
32
- where = ["src"]
33
-
34
- # Ruff configuration
35
- [tool.ruff]
36
- # Exclude a variety of commonly ignored directories.
37
- exclude = [
38
- ".git",
39
- ".venv",
40
- ]
41
-
42
- # Assume Python 3.10
43
- target-version = "py310"
44
-
45
- # Same as Black.
46
- line-length = 88
47
- indent-width = 4
48
-
49
-
50
- [tool.ruff.format]
51
- quote-style = "single"
52
-
53
- # Like Black, indent with spaces, rather than tabs.
54
- indent-style = "space"
55
-
56
- # Like Black, respect magic trailing commas.
57
- skip-magic-trailing-comma = true
58
-
59
- # Like Black, automatically detect the appropriate line ending.
1
+ [project]
2
+ name = "al-data-utils"
3
+ version = "0.3.3"
4
+ description = "Reusable utilities for data engineering (Airflow, Azure, Snowflake, SQL, config)."
5
+ authors = [{ name = "AL Data Labs", email = "pypi@aldatalabs.com" }]
6
+ license = "MIT"
7
+ license-files = ["LICENSE"]
8
+ keywords = ["airflow", "data-engineering", "azure", "snowflake", "sql"]
9
+ classifiers = [
10
+ "Programming Language :: Python :: 3",
11
+ "Operating System :: OS Independent",
12
+ "Topic :: Software Development :: Libraries",
13
+ ]
14
+ readme = "README.md"
15
+ requires-python = ">=3.10"
16
+ dependencies = [
17
+ "pyyaml",
18
+ ] # other runtime deps (sqlalchemy, pandas, requests, msal, airflow) come from the host environment
19
+
20
+ [project.urls]
21
+ Homepage = "https://aldatalabs.com"
22
+
23
+
24
+ [build-system]
25
+ requires = ["setuptools>=77"]
26
+ build-backend = "setuptools.build_meta"
27
+
28
+ [tool.setuptools]
29
+ package-dir = {"" = "src"}
30
+
31
+ [tool.setuptools.packages.find]
32
+ where = ["src"]
33
+
34
+ # Ruff configuration
35
+ [tool.ruff]
36
+ # Exclude a variety of commonly ignored directories.
37
+ exclude = [
38
+ ".git",
39
+ ".venv",
40
+ ]
41
+
42
+ # Assume Python 3.10
43
+ target-version = "py310"
44
+
45
+ # Same as Black.
46
+ line-length = 88
47
+ indent-width = 4
48
+
49
+
50
+ [tool.ruff.format]
51
+ quote-style = "single"
52
+
53
+ # Like Black, indent with spaces, rather than tabs.
54
+ indent-style = "space"
55
+
56
+ # Like Black, respect magic trailing commas.
57
+ skip-magic-trailing-comma = true
58
+
59
+ # Like Black, automatically detect the appropriate line ending.
60
60
  line-ending = "auto"
@@ -89,7 +89,7 @@ class UnifiedSQLClient:
89
89
  else:
90
90
  raise ValueError(f'Unsupported dialect: {dialect}')
91
91
 
92
- self.engine = create_engine(self.connection_string, connect_args=connect_args)
92
+ self.engine = create_engine(self.connection_string, connect_args=connect_args, pool_pre_ping=True)
93
93
 
94
94
  @staticmethod
95
95
  def parse_dialect(value: str | SQLDialect) -> SQLDialect:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: al-data-utils
3
- Version: 0.3.2
3
+ Version: 0.3.3
4
4
  Summary: Reusable utilities for data engineering (Airflow, Azure, Snowflake, SQL, config).
5
5
  Author-email: AL Data Labs <pypi@aldatalabs.com>
6
6
  License-Expression: MIT
@@ -31,17 +31,17 @@ Python 3.10+. Runtime dependencies (`pyyaml`, `sqlalchemy`, `pandas`, `requests`
31
31
 
32
32
  ## Modules
33
33
 
34
- - `airflow_utils` — Airflow Variable / connection helpers
35
- - `azure_as_utils` — Azure Analysis Services model refresh (REST + MSAL)
36
- - `backup_utils` — MSSQL schema snapshot to filesystem
37
- - `config_utils` — YAML config loading
38
- - `files_sync_utils` — folder inventory, sync plan, copy, retention
39
- - `geo_utils` — geo helpers
40
- - `git_utils` — git automation wrappers
41
- - `logging_utils` — unified logging
42
- - `ones_api_utils` — 1C/ОneS API client
43
- - `sql_utils` — `UnifiedSQLClient` (MSSQL / PostgreSQL / Snowflake via SQLAlchemy)
44
- - `tg_utils` — Telegram helpers
34
+ - `airflow_utils` - Airflow Variable / connection helpers
35
+ - `azure_as_utils` - Azure Analysis Services model refresh (REST + MSAL)
36
+ - `backup_utils` - MSSQL schema snapshot to filesystem
37
+ - `config_utils` - YAML config loading
38
+ - `files_sync_utils` - folder inventory, sync plan, copy, retention
39
+ - `geo_utils` - geo helpers
40
+ - `git_utils` - git automation wrappers
41
+ - `logging_utils` - unified logging
42
+ - `ones_api_utils` - 1C/ОneS API client
43
+ - `sql_utils` - `UnifiedSQLClient` (MSSQL / PostgreSQL / Snowflake via SQLAlchemy)
44
+ - `tg_utils` - Telegram helpers
45
45
 
46
46
  ## Examples
47
47
 
File without changes
File without changes