informatica-python 1.10.0__tar.gz → 1.10.1__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.
- {informatica_python-1.10.0 → informatica_python-1.10.1}/PKG-INFO +3 -2
- {informatica_python-1.10.0 → informatica_python-1.10.1}/README.md +2 -1
- {informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python/generators/mapping_gen.py +13 -4
- {informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python.egg-info/PKG-INFO +3 -2
- {informatica_python-1.10.0 → informatica_python-1.10.1}/pyproject.toml +1 -1
- {informatica_python-1.10.0 → informatica_python-1.10.1}/LICENSE +0 -0
- {informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python/__init__.py +0 -0
- {informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python/cli.py +0 -0
- {informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python/converter.py +0 -0
- {informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python/generators/__init__.py +0 -0
- {informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python/generators/config_gen.py +0 -0
- {informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python/generators/error_log_gen.py +0 -0
- {informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python/generators/helper_gen.py +0 -0
- {informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python/generators/sql_gen.py +0 -0
- {informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python/generators/workflow_gen.py +0 -0
- {informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python/models.py +0 -0
- {informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python/parser.py +0 -0
- {informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python/utils/__init__.py +0 -0
- {informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python/utils/datatype_map.py +0 -0
- {informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python/utils/expression_converter.py +0 -0
- {informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python/utils/lib_adapters.py +0 -0
- {informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python/utils/sql_dialect.py +0 -0
- {informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python.egg-info/SOURCES.txt +0 -0
- {informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python.egg-info/dependency_links.txt +0 -0
- {informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python.egg-info/entry_points.txt +0 -0
- {informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python.egg-info/requires.txt +0 -0
- {informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python.egg-info/top_level.txt +0 -0
- {informatica_python-1.10.0 → informatica_python-1.10.1}/setup.cfg +0 -0
- {informatica_python-1.10.0 → informatica_python-1.10.1}/tests/test_converter.py +0 -0
- {informatica_python-1.10.0 → informatica_python-1.10.1}/tests/test_expressions.py +0 -0
- {informatica_python-1.10.0 → informatica_python-1.10.1}/tests/test_integration.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: informatica-python
|
|
3
|
-
Version: 1.10.
|
|
3
|
+
Version: 1.10.1
|
|
4
4
|
Summary: Convert Informatica PowerCenter workflow XML to Python/PySpark code
|
|
5
5
|
Author: Nick
|
|
6
6
|
License: MIT
|
|
@@ -414,9 +414,10 @@ The generated `helper_functions.py` provides a complete runtime library:
|
|
|
414
414
|
|
|
415
415
|
## Changelog
|
|
416
416
|
|
|
417
|
-
### v1.10.
|
|
417
|
+
### v1.10.1 (Current)
|
|
418
418
|
- **Router multi-group output support**: Router transformations now properly handle `<GROUP>` elements with `EXPRESSION` attributes — generates separate filtered DataFrames for each named output group (e.g., `df_rtr_rest_type_per`, `df_rtr_rest_value_per`), not just the DEFAULT group
|
|
419
419
|
- **Connector group routing**: `FROMINSTANCEGROUP` / `TOINSTANCEGROUP` attributes on `CONNECTOR` elements are now parsed and used to wire downstream transforms/targets to the correct Router output group
|
|
420
|
+
- **Joiner group-aware routing**: Joiner transformations now correctly identify master/detail sources through Router group connectors — two different Router output groups feeding a Joiner are properly resolved to their distinct DataFrames
|
|
420
421
|
- **GroupDef expression field**: `GroupDef` model now stores the `EXPRESSION` attribute from `<GROUP>` XML elements
|
|
421
422
|
- **Backward-compatible Router fallback**: Existing `TABLEATTRIBUTE`-based Router group conditions (older XML format) continue to work — the code checks `<GROUP>` elements first, then falls back to `TABLEATTRIBUTE` entries
|
|
422
423
|
- **223 tests** passing
|
|
@@ -387,9 +387,10 @@ The generated `helper_functions.py` provides a complete runtime library:
|
|
|
387
387
|
|
|
388
388
|
## Changelog
|
|
389
389
|
|
|
390
|
-
### v1.10.
|
|
390
|
+
### v1.10.1 (Current)
|
|
391
391
|
- **Router multi-group output support**: Router transformations now properly handle `<GROUP>` elements with `EXPRESSION` attributes — generates separate filtered DataFrames for each named output group (e.g., `df_rtr_rest_type_per`, `df_rtr_rest_value_per`), not just the DEFAULT group
|
|
392
392
|
- **Connector group routing**: `FROMINSTANCEGROUP` / `TOINSTANCEGROUP` attributes on `CONNECTOR` elements are now parsed and used to wire downstream transforms/targets to the correct Router output group
|
|
393
|
+
- **Joiner group-aware routing**: Joiner transformations now correctly identify master/detail sources through Router group connectors — two different Router output groups feeding a Joiner are properly resolved to their distinct DataFrames
|
|
393
394
|
- **GroupDef expression field**: `GroupDef` model now stores the `EXPRESSION` attribute from `<GROUP>` XML elements
|
|
394
395
|
- **Backward-compatible Router fallback**: Existing `TABLEATTRIBUTE`-based Router group conditions (older XML format) continue to work — the code checks `<GROUP>` elements first, then falls back to `TABLEATTRIBUTE` entries
|
|
395
396
|
- **223 tests** passing
|
{informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python/generators/mapping_gen.py
RENAMED
|
@@ -963,10 +963,11 @@ def _gen_joiner_transform(lines, tx, tx_safe, input_df, input_sources, source_df
|
|
|
963
963
|
to_field = conn.to_field
|
|
964
964
|
port_to_col[to_field] = conn.from_field
|
|
965
965
|
port_to_col[to_field.lower()] = conn.from_field
|
|
966
|
+
src_key = f"{conn.from_instance}:{conn.from_instance_group}" if conn.from_instance_group else conn.from_instance
|
|
966
967
|
if to_field in master_fields or to_field.lower() in master_fields_lower:
|
|
967
|
-
master_src =
|
|
968
|
+
master_src = src_key
|
|
968
969
|
elif to_field in detail_fields or to_field.lower() in detail_fields_lower:
|
|
969
|
-
detail_src =
|
|
970
|
+
detail_src = src_key
|
|
970
971
|
|
|
971
972
|
if left_keys and right_keys and port_to_col:
|
|
972
973
|
left_keys = [port_to_col.get(k, port_to_col.get(k.lower(), k)) for k in left_keys]
|
|
@@ -984,9 +985,17 @@ def _gen_joiner_transform(lines, tx, tx_safe, input_df, input_sources, source_df
|
|
|
984
985
|
detail_src = s
|
|
985
986
|
break
|
|
986
987
|
|
|
988
|
+
def _resolve_src(key):
|
|
989
|
+
if key in source_dfs:
|
|
990
|
+
return source_dfs[key]
|
|
991
|
+
base = key.split(":")[0] if ":" in key else key
|
|
992
|
+
if base in source_dfs:
|
|
993
|
+
return source_dfs[base]
|
|
994
|
+
return f"df_{_safe_name(base)}"
|
|
995
|
+
|
|
987
996
|
if master_src and detail_src:
|
|
988
|
-
df_master =
|
|
989
|
-
df_detail =
|
|
997
|
+
df_master = _resolve_src(master_src)
|
|
998
|
+
df_detail = _resolve_src(detail_src)
|
|
990
999
|
|
|
991
1000
|
lines.append(f" # Join ({join_type}): {join_condition or 'auto'}")
|
|
992
1001
|
if left_keys and right_keys:
|
{informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python.egg-info/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: informatica-python
|
|
3
|
-
Version: 1.10.
|
|
3
|
+
Version: 1.10.1
|
|
4
4
|
Summary: Convert Informatica PowerCenter workflow XML to Python/PySpark code
|
|
5
5
|
Author: Nick
|
|
6
6
|
License: MIT
|
|
@@ -414,9 +414,10 @@ The generated `helper_functions.py` provides a complete runtime library:
|
|
|
414
414
|
|
|
415
415
|
## Changelog
|
|
416
416
|
|
|
417
|
-
### v1.10.
|
|
417
|
+
### v1.10.1 (Current)
|
|
418
418
|
- **Router multi-group output support**: Router transformations now properly handle `<GROUP>` elements with `EXPRESSION` attributes — generates separate filtered DataFrames for each named output group (e.g., `df_rtr_rest_type_per`, `df_rtr_rest_value_per`), not just the DEFAULT group
|
|
419
419
|
- **Connector group routing**: `FROMINSTANCEGROUP` / `TOINSTANCEGROUP` attributes on `CONNECTOR` elements are now parsed and used to wire downstream transforms/targets to the correct Router output group
|
|
420
|
+
- **Joiner group-aware routing**: Joiner transformations now correctly identify master/detail sources through Router group connectors — two different Router output groups feeding a Joiner are properly resolved to their distinct DataFrames
|
|
420
421
|
- **GroupDef expression field**: `GroupDef` model now stores the `EXPRESSION` attribute from `<GROUP>` XML elements
|
|
421
422
|
- **Backward-compatible Router fallback**: Existing `TABLEATTRIBUTE`-based Router group conditions (older XML format) continue to work — the code checks `<GROUP>` elements first, then falls back to `TABLEATTRIBUTE` entries
|
|
422
423
|
- **223 tests** passing
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python/generators/__init__.py
RENAMED
|
File without changes
|
{informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python/generators/config_gen.py
RENAMED
|
File without changes
|
|
File without changes
|
{informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python/generators/helper_gen.py
RENAMED
|
File without changes
|
{informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python/generators/sql_gen.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python/utils/__init__.py
RENAMED
|
File without changes
|
{informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python/utils/datatype_map.py
RENAMED
|
File without changes
|
|
File without changes
|
{informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python/utils/lib_adapters.py
RENAMED
|
File without changes
|
{informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python/utils/sql_dialect.py
RENAMED
|
File without changes
|
{informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python.egg-info/entry_points.txt
RENAMED
|
File without changes
|
{informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python.egg-info/requires.txt
RENAMED
|
File without changes
|
{informatica_python-1.10.0 → informatica_python-1.10.1}/informatica_python.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|