wpipe 2.1.2__tar.gz → 2.1.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.
- {wpipe-2.1.2 → wpipe-2.1.3}/PKG-INFO +1 -1
- {wpipe-2.1.2 → wpipe-2.1.3}/pyproject.toml +1 -1
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/pipe/pipe.py +19 -6
- {wpipe-2.1.2 → wpipe-2.1.3}/.gitignore +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/LICENSE +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/README.md +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/examples/01_basic_pipeline/01_simple_function/README.md +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/examples/01_basic_pipeline/01_simple_function/example.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/examples/01_basic_pipeline/02_class_steps/README.md +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/examples/01_basic_pipeline/02_class_steps/example.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/examples/01_basic_pipeline/03_mixed_steps/README.md +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/examples/01_basic_pipeline/03_mixed_steps/example.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/examples/01_basic_pipeline/04_default_values/README.md +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/examples/01_basic_pipeline/04_default_values/example.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/examples/01_basic_pipeline/05_args_kwargs/README.md +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/examples/01_basic_pipeline/05_args_kwargs/example.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/examples/01_basic_pipeline/06_dict_processing/README.md +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/examples/01_basic_pipeline/06_dict_processing/example.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/examples/01_basic_pipeline/07_multiple_runs/README.md +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/examples/01_basic_pipeline/07_multiple_runs/example.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/examples/01_basic_pipeline/08_data_aggregation/README.md +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/examples/01_basic_pipeline/08_data_aggregation/example.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/examples/01_basic_pipeline/09_empty_data/README.md +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/examples/01_basic_pipeline/09_empty_data/example.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/examples/01_basic_pipeline/10_lambda_steps/README.md +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/examples/01_basic_pipeline/10_lambda_steps/example.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/examples/01_basic_pipeline/11_decorator_steps/README.md +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/examples/01_basic_pipeline/11_decorator_steps/example.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/examples/01_basic_pipeline/12_context_manager/README.md +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/examples/01_basic_pipeline/12_context_manager/example.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/examples/01_basic_pipeline/13_async_pipeline/README.md +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/examples/01_basic_pipeline/13_async_pipeline/example.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/examples/01_basic_pipeline/14_pipeline_chaining/README.md +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/examples/01_basic_pipeline/14_pipeline_chaining/example.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/examples/01_basic_pipeline/15_pipeline_clone/README.md +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/examples/01_basic_pipeline/15_pipeline_clone/example.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/examples/01_basic_pipeline/16_LogGestor/example.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/examples/01_basic_pipeline/README.md +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/examples/15_export/01_json/export_json.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/examples/15_export/README.md +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/test/__init__.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/test/test_api_pipeline.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/test/test_async.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/test/test_basic_pipeline.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/test/test_checkpoint.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/test/test_core.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/test/test_dashboard_and_monitor.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/test/test_export.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/test/test_misc.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/test/test_nested_pipelines.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/test/test_pipe.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/test/test_pipe_async.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/test/test_pipeline_config.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/test/test_sqlite.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/test/test_tracking.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/test/test_util.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/test/test_yaml_config.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/README.md +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/__init__.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/api_client/__init__.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/api_client/api_client.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/checkpoint/README.md +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/checkpoint/__init__.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/checkpoint/checkpoint.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/composition/README.md +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/composition/__init__.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/composition/pipeline_step.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/dashboard/__init__.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/dashboard/__main__.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/dashboard/main.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/dashboard/static/dashboard.js +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/dashboard/static/styles.css +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/dashboard/templates/base.html +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/dashboard/templates/tabs/alerts.html +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/dashboard/templates/tabs/analytics.html +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/dashboard/templates/tabs/data.html +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/dashboard/templates/tabs/events.html +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/dashboard/templates/tabs/graph.html +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/dashboard/templates/tabs/pipelines.html +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/dashboard/templates/tabs/states.html +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/dashboard/templates/tabs/timeline.html +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/decorators/README.md +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/decorators/__init__.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/decorators/step.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/exception/__init__.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/exception/api_error.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/export/README.md +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/export/__init__.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/export/exporter.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/log/__init__.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/log/log.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/parallel/README.md +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/parallel/__init__.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/parallel/executor.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/pipe/__init__.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/pipe/components/__init__.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/pipe/components/constants.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/pipe/components/logic_blocks.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/pipe/components/logic_blocks_async.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/pipe/components/metrics.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/pipe/components/progress.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/pipe/components/reporting.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/pipe/pipe_async.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/pipe/pipe_async_minimal.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/ram/__init__.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/ram/ram.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/resource_monitor/README.md +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/resource_monitor/__init__.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/resource_monitor/monitor.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/sqlite/Sqlite.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/sqlite/__init__.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/sqlite/tables_dto/__init__.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/sqlite/tables_dto/log_gestor_model.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/sqlite/tables_dto/records.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/sqlite/tables_dto/tracker_models.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/timeout/README.md +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/timeout/__init__.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/timeout/timeout.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/tracking/__init__.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/tracking/alerts.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/tracking/analysis.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/tracking/queries.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/tracking/tracker.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/type_hinting/README.md +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/type_hinting/__init__.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/type_hinting/validators.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/util/__init__.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/util/transform.py +0 -0
- {wpipe-2.1.2 → wpipe-2.1.3}/wpipe/util/utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: wpipe
|
|
3
|
-
Version: 2.1.
|
|
3
|
+
Version: 2.1.3
|
|
4
4
|
Summary: Pipeline library with API integration for task orchestration and execution tracking
|
|
5
5
|
Project-URL: Homepage, https://github.com/wisrovi/wpipe
|
|
6
6
|
Project-URL: Documentation, https://wpipe.readthedocs.io/en/latest/
|
|
@@ -698,15 +698,23 @@ class Pipeline(APIClient):
|
|
|
698
698
|
raise
|
|
699
699
|
except Exception as e: # pylint: disable=broad-exception-caught
|
|
700
700
|
last_exception = e
|
|
701
|
-
|
|
702
|
-
|
|
701
|
+
tb_list = traceback.extract_tb(e.__traceback__)
|
|
702
|
+
|
|
703
|
+
# Find the most relevant frame (user code instead of library code)
|
|
704
|
+
# We look for the last frame that doesn't contain 'site-packages' or 'wpipe'
|
|
705
|
+
relevant_frame = tb_list[-1]
|
|
706
|
+
for frame in reversed(tb_list):
|
|
707
|
+
if "site-packages" not in frame.filename and "wpipe/pipe" not in frame.filename:
|
|
708
|
+
relevant_frame = frame
|
|
709
|
+
break
|
|
710
|
+
|
|
703
711
|
error_details = {
|
|
704
712
|
"step_name": name,
|
|
705
713
|
"error_message": str(e),
|
|
706
714
|
"error_traceback": traceback.format_exc(),
|
|
707
|
-
"file_path":
|
|
708
|
-
"line_number":
|
|
709
|
-
"method":
|
|
715
|
+
"file_path": relevant_frame.filename,
|
|
716
|
+
"line_number": relevant_frame.lineno,
|
|
717
|
+
"method": relevant_frame.name,
|
|
710
718
|
"timestamp": datetime.now().isoformat(),
|
|
711
719
|
"attempt": attempt + 1,
|
|
712
720
|
}
|
|
@@ -860,7 +868,12 @@ class Pipeline(APIClient):
|
|
|
860
868
|
step_id = item[3]
|
|
861
869
|
elif callable(item):
|
|
862
870
|
func = item
|
|
863
|
-
name
|
|
871
|
+
# Look for step name in priorities: NAME attribute > __name__ > class name
|
|
872
|
+
name = getattr(item, "NAME", getattr(item, "__name__", item.__class__.__name__))
|
|
873
|
+
if name == "task" or name == "function":
|
|
874
|
+
# Fallback to a more descriptive name if possible
|
|
875
|
+
name = item.__class__.__name__
|
|
876
|
+
|
|
864
877
|
version = getattr(item, "VERSION", "v1.0")
|
|
865
878
|
step_meta = getattr(item, "_wpipe_metadata", {})
|
|
866
879
|
|
|
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
|
|
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
|
|
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
|
|
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
|