orchestrator-core 4.0.2__py3-none-any.whl → 4.0.4__py3-none-any.whl
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.
- orchestrator/__init__.py +1 -1
- orchestrator/migrations/helpers.py +18 -4
- {orchestrator_core-4.0.2.dist-info → orchestrator_core-4.0.4.dist-info}/METADATA +4 -4
- {orchestrator_core-4.0.2.dist-info → orchestrator_core-4.0.4.dist-info}/RECORD +6 -6
- {orchestrator_core-4.0.2.dist-info → orchestrator_core-4.0.4.dist-info}/WHEEL +0 -0
- {orchestrator_core-4.0.2.dist-info → orchestrator_core-4.0.4.dist-info}/licenses/LICENSE +0 -0
orchestrator/__init__.py
CHANGED
|
@@ -27,14 +27,28 @@ logger = structlog.get_logger(__name__)
|
|
|
27
27
|
def has_table_column(table_name: str, column_name: str, conn: sa.engine.Connection) -> bool:
|
|
28
28
|
"""Checks if the specified column exists in a given table.
|
|
29
29
|
|
|
30
|
+
inspector.get_columns raises an exception if the table does not exist, so we catch that exception and return False.
|
|
31
|
+
This is useful for migrations where you want to ensure that a column exists before performing operations on it.
|
|
32
|
+
|
|
30
33
|
:param table_name: Name of the database table
|
|
31
34
|
:param column_name: Name of the column to check
|
|
32
35
|
:param conn: SQLAlchemy database Connection
|
|
33
|
-
:return: True if column exists, False otherwise
|
|
36
|
+
:return: True if the column exists, False otherwise
|
|
34
37
|
"""
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
+
result = conn.execute(
|
|
39
|
+
sa.text(
|
|
40
|
+
"""
|
|
41
|
+
SELECT column_name
|
|
42
|
+
FROM information_schema.columns
|
|
43
|
+
WHERE table_name = :table_name and column_name = :column_name
|
|
44
|
+
"""
|
|
45
|
+
),
|
|
46
|
+
{
|
|
47
|
+
"table_name": table_name,
|
|
48
|
+
"column_name": column_name,
|
|
49
|
+
},
|
|
50
|
+
)
|
|
51
|
+
return result.first() is not None
|
|
38
52
|
|
|
39
53
|
|
|
40
54
|
def get_resource_type_id_by_name(conn: sa.engine.Connection, name: str) -> UUID:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: orchestrator-core
|
|
3
|
-
Version: 4.0.
|
|
3
|
+
Version: 4.0.4
|
|
4
4
|
Summary: This is the orchestrator workflow engine.
|
|
5
5
|
Requires-Python: >=3.11,<3.14
|
|
6
6
|
Classifier: Intended Audience :: Information Technology
|
|
@@ -28,7 +28,7 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
28
28
|
Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
|
|
29
29
|
Classifier: Topic :: Internet :: WWW/HTTP
|
|
30
30
|
License-File: LICENSE
|
|
31
|
-
Requires-Dist: alembic==1.
|
|
31
|
+
Requires-Dist: alembic==1.16.1
|
|
32
32
|
Requires-Dist: anyio>=3.7.0
|
|
33
33
|
Requires-Dist: click==8.*
|
|
34
34
|
Requires-Dist: deprecated
|
|
@@ -39,7 +39,7 @@ Requires-Dist: more-itertools~=10.7.0
|
|
|
39
39
|
Requires-Dist: itsdangerous
|
|
40
40
|
Requires-Dist: Jinja2==3.1.6
|
|
41
41
|
Requires-Dist: orjson==3.10.18
|
|
42
|
-
Requires-Dist: prometheus-client==0.
|
|
42
|
+
Requires-Dist: prometheus-client==0.22.0
|
|
43
43
|
Requires-Dist: psycopg2-binary==2.9.10
|
|
44
44
|
Requires-Dist: pydantic[email]~=2.8.2
|
|
45
45
|
Requires-Dist: pydantic-settings~=2.9.1
|
|
@@ -49,7 +49,7 @@ Requires-Dist: pytz==2025.2
|
|
|
49
49
|
Requires-Dist: redis==5.1.1
|
|
50
50
|
Requires-Dist: schedule==1.1.0
|
|
51
51
|
Requires-Dist: semver==3.0.4
|
|
52
|
-
Requires-Dist: sentry-sdk[fastapi]~=2.
|
|
52
|
+
Requires-Dist: sentry-sdk[fastapi]~=2.29.1
|
|
53
53
|
Requires-Dist: SQLAlchemy==2.0.41
|
|
54
54
|
Requires-Dist: SQLAlchemy-Utils==0.41.2
|
|
55
55
|
Requires-Dist: structlog
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
orchestrator/__init__.py,sha256=
|
|
1
|
+
orchestrator/__init__.py,sha256=YVe09WczpF4MK2XPRNEAfLMjIE3YCIBlDRgfibiP9U8,1063
|
|
2
2
|
orchestrator/app.py,sha256=7UrXKjBKNSEaSSXAd5ww_RdMFhFqE4yvfj8faS2MzAA,12089
|
|
3
3
|
orchestrator/exception_handlers.py,sha256=UsW3dw8q0QQlNLcV359bIotah8DYjMsj2Ts1LfX4ClY,1268
|
|
4
4
|
orchestrator/log_config.py,sha256=1tPRX5q65e57a6a_zEii_PFK8SzWT0mnA5w2sKg4hh8,1853
|
|
@@ -210,7 +210,7 @@ orchestrator/metrics/subscriptions.py,sha256=vC1O8VmTq5oJxNrn5CU99Rf8cxzdyhc7tXb
|
|
|
210
210
|
orchestrator/migrations/README,sha256=heMzebYwlGhnE8_4CWJ4LS74WoEZjBy-S-mIJRxAEKI,39
|
|
211
211
|
orchestrator/migrations/alembic.ini,sha256=kMoADqhGeubU8xanILNaqm4oixLy9m4ngYtdGpZcc7I,873
|
|
212
212
|
orchestrator/migrations/env.py,sha256=M_cPoAL2axuuup5fvMy8I_WTPHEw0RbPEHkhZ3QEGoE,3740
|
|
213
|
-
orchestrator/migrations/helpers.py,sha256=
|
|
213
|
+
orchestrator/migrations/helpers.py,sha256=CAGGKhxpmhyKGfYcO-SUCPfMTOCZPfEpkJrcm2MYfcE,47979
|
|
214
214
|
orchestrator/migrations/script.py.mako,sha256=607Zrgp-Z-m9WGLt4wewN1QDOmHeifxcePUdADkSZyM,510
|
|
215
215
|
orchestrator/migrations/templates/alembic.ini.j2,sha256=8v7UbKvOiWEbEKQa-Au3uONKUuYx6aflulYanZX6r2I,883
|
|
216
216
|
orchestrator/migrations/templates/env.py.j2,sha256=LIt0ildZTZvNEx3imhy4GNzfFi_rPZg-8H7rGgrBOP8,2717
|
|
@@ -307,7 +307,7 @@ orchestrator/workflows/tasks/resume_workflows.py,sha256=MzJqlSXUvKStkT7NGzxZyRlf
|
|
|
307
307
|
orchestrator/workflows/tasks/validate_product_type.py,sha256=paG-NAY1bdde3Adt8zItkcBKf5Pxw6f5ngGW6an6dYU,3192
|
|
308
308
|
orchestrator/workflows/tasks/validate_products.py,sha256=GZJBoFF-WMphS7ghMs2-gqvV2iL1F0POhk0uSNt93n0,8510
|
|
309
309
|
orchestrator/workflows/translations/en-GB.json,sha256=ST53HxkphFLTMjFHonykDBOZ7-P_KxksktZU3GbxLt0,846
|
|
310
|
-
orchestrator_core-4.0.
|
|
311
|
-
orchestrator_core-4.0.
|
|
312
|
-
orchestrator_core-4.0.
|
|
313
|
-
orchestrator_core-4.0.
|
|
310
|
+
orchestrator_core-4.0.4.dist-info/licenses/LICENSE,sha256=b-aA5OZQuuBATmLKo_mln8CQrDPPhg3ghLzjPjLn4Tg,11409
|
|
311
|
+
orchestrator_core-4.0.4.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
|
|
312
|
+
orchestrator_core-4.0.4.dist-info/METADATA,sha256=EDGeOW4AxLgPbD6ZQDojlTPd8H3j4GOpD1vfWg-MgKA,5070
|
|
313
|
+
orchestrator_core-4.0.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|