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.
- {al_data_utils-0.3.2/src/al_data_utils.egg-info → al_data_utils-0.3.3}/PKG-INFO +12 -12
- {al_data_utils-0.3.2 → al_data_utils-0.3.3}/README.md +125 -125
- {al_data_utils-0.3.2 → al_data_utils-0.3.3}/pyproject.toml +59 -59
- {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/sql_utils/sql_utils.py +1 -1
- {al_data_utils-0.3.2 → al_data_utils-0.3.3/src/al_data_utils.egg-info}/PKG-INFO +12 -12
- {al_data_utils-0.3.2 → al_data_utils-0.3.3}/LICENSE +0 -0
- {al_data_utils-0.3.2 → al_data_utils-0.3.3}/setup.cfg +0 -0
- {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/__init__.py +0 -0
- {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/airflow_utils/__init__.py +0 -0
- {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/airflow_utils/airflow_utils.py +0 -0
- {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/azure_as_utils/__init__.py +0 -0
- {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/azure_as_utils/auth.py +0 -0
- {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
- {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/azure_as_utils/client.py +0 -0
- {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/azure_as_utils/errors.py +0 -0
- {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/azure_as_utils/models.py +0 -0
- {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/azure_as_utils/poller.py +0 -0
- {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/__init__.py +0 -0
- {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/mssql/dacpac/__init__.py +0 -0
- {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/mssql/dacpac/sqlpackage.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/mssql/scripter/__init__.py +0 -0
- {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/config_utils/__init__.py +0 -0
- {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/config_utils/config_utils.py +0 -0
- {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/files_sync_utils/__init__.py +0 -0
- {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
- {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/geo_utils/__init__.py +0 -0
- {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/git_utils/__init__.py +0 -0
- {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/git_utils/git_utils.py +0 -0
- {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/logging_utils/__init__.py +0 -0
- {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/logging_utils/logging_utils.py +0 -0
- {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/ones_api_utils/__init__.py +0 -0
- {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
- {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/sql_utils/__init__.py +0 -0
- {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/tg_utils/__init__.py +0 -0
- {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/tg_utils/tg_utils.py +0 -0
- {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils.egg-info/SOURCES.txt +0 -0
- {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils.egg-info/dependency_links.txt +0 -0
- {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils.egg-info/requires.txt +0 -0
- {al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils.egg-info/top_level.txt +0 -0
- {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.
|
|
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`
|
|
35
|
-
- `azure_as_utils`
|
|
36
|
-
- `backup_utils`
|
|
37
|
-
- `config_utils`
|
|
38
|
-
- `files_sync_utils`
|
|
39
|
-
- `geo_utils`
|
|
40
|
-
- `git_utils`
|
|
41
|
-
- `logging_utils`
|
|
42
|
-
- `ones_api_utils`
|
|
43
|
-
- `sql_utils`
|
|
44
|
-
- `tg_utils`
|
|
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`
|
|
18
|
-
- `azure_as_utils`
|
|
19
|
-
- `backup_utils`
|
|
20
|
-
- `config_utils`
|
|
21
|
-
- `files_sync_utils`
|
|
22
|
-
- `geo_utils`
|
|
23
|
-
- `git_utils`
|
|
24
|
-
- `logging_utils`
|
|
25
|
-
- `ones_api_utils`
|
|
26
|
-
- `sql_utils`
|
|
27
|
-
- `tg_utils`
|
|
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.
|
|
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.
|
|
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`
|
|
35
|
-
- `azure_as_utils`
|
|
36
|
-
- `backup_utils`
|
|
37
|
-
- `config_utils`
|
|
38
|
-
- `files_sync_utils`
|
|
39
|
-
- `geo_utils`
|
|
40
|
-
- `git_utils`
|
|
41
|
-
- `logging_utils`
|
|
42
|
-
- `ones_api_utils`
|
|
43
|
-
- `sql_utils`
|
|
44
|
-
- `tg_utils`
|
|
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
|
|
File without changes
|
|
File without changes
|
{al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/airflow_utils/airflow_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/azure_as_utils/azure_as_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/backup_utils/mssql/dacpac/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/files_sync_utils/files_sync_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/logging_utils/logging_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
{al_data_utils-0.3.2 → al_data_utils-0.3.3}/src/al_data_utils/ones_api_utils/ones_api_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|