flowcept 0.8.7__tar.gz → 0.8.9__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.
- {flowcept-0.8.7 → flowcept-0.8.9}/.github/workflows/create-release-n-publish.yml +2 -0
- flowcept-0.8.9/.github/workflows/version_bumper.py +54 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/PKG-INFO +7 -1
- {flowcept-0.8.7 → flowcept-0.8.9}/README.md +6 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/docs/getstarted.rst +9 -8
- {flowcept-0.8.7 → flowcept-0.8.9}/docs/index.rst +2 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/docs/task_schema.rst +8 -5
- {flowcept-0.8.7 → flowcept-0.8.9}/resources/sample_settings.yaml +1 -1
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/version.py +1 -1
- flowcept-0.8.7/.github/workflows/version_bumper.py +0 -33
- {flowcept-0.8.7 → flowcept-0.8.9}/.github/workflows/checks.yml +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/.github/workflows/run-llm-tests.yml +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/.github/workflows/run-tests-all-dbs.yml +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/.github/workflows/run-tests-in-container.yml +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/.github/workflows/run-tests-kafka.yml +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/.github/workflows/run-tests-py313.yml +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/.github/workflows/run-tests-simple.yml +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/.github/workflows/run-tests.yml +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/.github/workflows/run_examples.sh +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/.gitignore +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/.readthedocs.yaml +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/CONTRIBUTING.md +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/LICENSE +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/Makefile +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/deployment/Dockerfile +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/deployment/compose-grafana.yml +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/deployment/compose-kafka.yml +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/deployment/compose-mofka.yml +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/deployment/compose-mongo.yml +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/deployment/compose.yml +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/docs/api-reference.rst +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/docs/conf.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/docs/contributing.rst +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/docs/schemas.rst +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/docs/workflow_schema.rst +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/examples/dask_example.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/examples/distributed_consumer_example.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/examples/instrumented_loop_example.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/examples/instrumented_simple_example.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/examples/llm_complex/README.md +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/examples/llm_complex/custom_provenance_id_mapping.yaml +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/examples/llm_complex/llm_dataprep.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/examples/llm_complex/llm_main_example.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/examples/llm_complex/llm_model.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/examples/llm_complex/llm_test_runner.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/examples/mlflow_example.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/examples/single_layer_perceptron_example.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/examples/tensorboard_example.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/examples/unmanaged/main.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/examples/unmanaged/simple_task.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/notebooks/analytics.ipynb +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/notebooks/dask.ipynb +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/notebooks/dask_from_CLI.ipynb +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/notebooks/mlflow.ipynb +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/notebooks/reset_dask_nb_exec_counts.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/notebooks/tensorboard.ipynb +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/pyproject.toml +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/resources/mofka/bedrock_setup.sh +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/resources/mofka/consumer.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/resources/mofka/mofka-requirements.yaml +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/resources/mofka/mofka_config.json +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/resources/simple_redis_consumer.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/__init__.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/analytics/__init__.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/analytics/analytics_utils.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/analytics/data_augmentation.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/analytics/plot.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/__init__.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/autoflush_buffer.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/daos/__init__.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/daos/docdb_dao/__init__.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/daos/docdb_dao/docdb_dao_base.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/daos/docdb_dao/lmdb_dao.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/daos/docdb_dao/mongodb_dao.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/daos/keyvalue_dao.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/daos/mq_dao/__init__.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/daos/mq_dao/mq_dao_base.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/daos/mq_dao/mq_dao_kafka.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/daos/mq_dao/mq_dao_mofka.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/daos/mq_dao/mq_dao_redis.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/flowcept_dataclasses/__init__.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/flowcept_dataclasses/base_settings_dataclasses.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/flowcept_dataclasses/task_object.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/flowcept_dataclasses/telemetry.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/flowcept_dataclasses/workflow_object.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/flowcept_logger.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/query_utils.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/settings_factory.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/utils.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/vocabulary.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/configs.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowcept_api/__init__.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowcept_api/db_api.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowcept_api/flowcept_controller.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowcept_api/task_query_api.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowcept_webserver/__init__.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowcept_webserver/app.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowcept_webserver/resources/__init__.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowcept_webserver/resources/query_rsrc.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowcept_webserver/resources/task_messages_rsrc.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/__init__.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/__init__.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/base_interceptor.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/dask/__init__.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/dask/dask_dataclasses.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/dask/dask_interceptor.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/dask/dask_plugins.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/instrumentation_interceptor.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/interceptor_state_manager.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/mlflow/__init__.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/mlflow/interception_event_handler.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/mlflow/mlflow_dao.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/mlflow/mlflow_dataclasses.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/mlflow/mlflow_interceptor.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/tensorboard/__init__.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/tensorboard/tensorboard_dataclasses.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/tensorboard/tensorboard_interceptor.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/zambeze/__init__.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/zambeze/zambeze_dataclasses.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/zambeze/zambeze_interceptor.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/consumers/__init__.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/consumers/consumer_utils.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/consumers/document_inserter.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/telemetry_capture.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/instrumentation/__init__.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/instrumentation/flowcept_loop.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/instrumentation/flowcept_task.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/instrumentation/flowcept_torch.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/instrumentation/task_capture.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/tests/__init__.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/tests/adapters/__init__.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/tests/adapters/dask_test_utils.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/tests/adapters/test_dask.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/tests/adapters/test_dask_with_context_mgmt.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/tests/adapters/test_file_observer.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/tests/adapters/test_mlflow.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/tests/adapters/test_tensorboard.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/tests/api/__init__.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/tests/api/db_api_test.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/tests/api/flowcept_api_test.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/tests/api/sample_data.json +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/tests/api/sample_data_with_telemetry_and_rai.json +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/tests/api/task_query_api_test.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/tests/doc_db_inserter/__init__.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/tests/doc_db_inserter/doc_db_inserter_test.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/tests/instrumentation_tests/__init__.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/tests/instrumentation_tests/flowcept_explicit_tasks.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/tests/instrumentation_tests/flowcept_loop_test.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/tests/instrumentation_tests/flowcept_task_decorator_test.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/tests/instrumentation_tests/ml_tests/__init__.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/tests/instrumentation_tests/ml_tests/dl_trainer.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/tests/instrumentation_tests/ml_tests/ml_decorator_dask_test.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/tests/instrumentation_tests/ml_tests/ml_decorator_test.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/tests/misc_tests/__init__.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/tests/misc_tests/log_test.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/tests/misc_tests/singleton_test.py +0 -0
- {flowcept-0.8.7 → flowcept-0.8.9}/tests/misc_tests/telemetry_test.py +0 -0
|
@@ -25,9 +25,11 @@ jobs:
|
|
|
25
25
|
|
|
26
26
|
- name: Update version.py
|
|
27
27
|
run: |
|
|
28
|
+
pip install .[dev]
|
|
28
29
|
export PYTHONPATH=$PYTHONPATH:flowcept
|
|
29
30
|
cat resources/sample_settings.yaml
|
|
30
31
|
python .github/workflows/version_bumper.py
|
|
32
|
+
echo "After version_bumper.py"
|
|
31
33
|
cat src/flowcept/version.py
|
|
32
34
|
cat resources/sample_settings.yaml
|
|
33
35
|
git status
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# This script ensures consistent and automatic version updates across the project.
|
|
2
|
+
#
|
|
3
|
+
# We often forget to manually update the version string in all the necessary places,
|
|
4
|
+
# especially during merges to the main branch. To avoid human error and ensure
|
|
5
|
+
# systematic versioning, we run this script as part of our main branch merge process in the CI.
|
|
6
|
+
#
|
|
7
|
+
# It performs the following:
|
|
8
|
+
# - Reads the current version from src/flowcept/version.py
|
|
9
|
+
# - Increments the patch number (e.g., 0.1.4 -> 0.1.5)
|
|
10
|
+
# - Updates version.py with the new version
|
|
11
|
+
# - Reads the current flowcept_version from resources/sample_settings.yaml
|
|
12
|
+
# - Replaces the old version with the new one using simple string replacement (not YAML dumping)
|
|
13
|
+
#
|
|
14
|
+
# This guarantees that both source code and configuration files remain synchronized with respect to versioning.
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
import re
|
|
18
|
+
import yaml
|
|
19
|
+
|
|
20
|
+
version_file_path = "src/flowcept/version.py"
|
|
21
|
+
with open(version_file_path) as f:
|
|
22
|
+
code_str = f.read()
|
|
23
|
+
exec(code_str)
|
|
24
|
+
version = locals()["__version__"]
|
|
25
|
+
|
|
26
|
+
split_version = version.split(".")
|
|
27
|
+
old_patch_str = split_version[2]
|
|
28
|
+
re_found = re.findall(r"(\d+)(.*)", old_patch_str)[0]
|
|
29
|
+
old_patch_number = re_found[0]
|
|
30
|
+
|
|
31
|
+
new_patch_str = old_patch_str.replace(old_patch_number, str(int(old_patch_number) + 1))
|
|
32
|
+
|
|
33
|
+
split_version[2] = new_patch_str
|
|
34
|
+
new_version = ".".join(split_version)
|
|
35
|
+
|
|
36
|
+
print("New version: " + new_version)
|
|
37
|
+
new_code_str = code_str.replace(version, new_version)
|
|
38
|
+
|
|
39
|
+
with open(version_file_path, "w") as f:
|
|
40
|
+
f.write(new_code_str)
|
|
41
|
+
|
|
42
|
+
yaml_file_path = "resources/sample_settings.yaml"
|
|
43
|
+
with open(yaml_file_path) as f:
|
|
44
|
+
yaml_data = yaml.safe_load(f)
|
|
45
|
+
old_yaml_version = yaml_data.get("flowcept_version")
|
|
46
|
+
|
|
47
|
+
# Replace the old version string with the new one using str.replace()
|
|
48
|
+
with open(yaml_file_path) as f:
|
|
49
|
+
yaml_text = f.read()
|
|
50
|
+
|
|
51
|
+
new_yaml_text = yaml_text.replace(f"flowcept_version: {old_yaml_version}", f"flowcept_version: {new_version}")
|
|
52
|
+
|
|
53
|
+
with open(yaml_file_path, "w") as f:
|
|
54
|
+
f.write(new_yaml_text)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: flowcept
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.9
|
|
4
4
|
Summary: Capture and query workflow provenance data using data observability
|
|
5
5
|
Project-URL: GitHub, https://github.com/ORNL/flowcept
|
|
6
6
|
Author: Oak Ridge National Laboratory
|
|
@@ -88,6 +88,7 @@ Requires-Dist: tensorboard; extra == 'tensorboard'
|
|
|
88
88
|
Requires-Dist: tensorflow; extra == 'tensorboard'
|
|
89
89
|
Description-Content-Type: text/markdown
|
|
90
90
|
|
|
91
|
+
[](https://flowcept.readthedocs.io/)
|
|
91
92
|
[](https://github.com/ORNL/flowcept/actions/workflows/create-release-n-publish.yml)
|
|
92
93
|
[](https://pypi.org/project/flowcept)
|
|
93
94
|
[](https://github.com/ORNL/flowcept/actions/workflows/run-tests.yml)
|
|
@@ -107,6 +108,7 @@ Description-Content-Type: text/markdown
|
|
|
107
108
|
- [Data Persistence](#data-persistence)
|
|
108
109
|
- [Performance Tuning](#performance-tuning-for-performance-evaluation)
|
|
109
110
|
- [AMD GPU Setup](#install-amd-gpu-lib)
|
|
111
|
+
- [Further Documentation](#documentation)
|
|
110
112
|
|
|
111
113
|
## Overview
|
|
112
114
|
|
|
@@ -359,6 +361,10 @@ Which was installed using Frontier's /opt/rocm-6.3.1/share/amd_smi
|
|
|
359
361
|
|
|
360
362
|
Some unit tests utilize `torch==2.2.2`, `torchtext=0.17.2`, and `torchvision==0.17.2`. They are only really needed to run some tests and will be installed if you run `pip install flowcept[ml_dev]` or `pip install flowcept[all]`. If you want to use Flowcept with Torch, please adapt torch dependencies according to your project's dependencies.
|
|
361
363
|
|
|
364
|
+
## Documentation
|
|
365
|
+
|
|
366
|
+
Full documentation is available on [Read the Docs](https://myproject.readthedocs.io/en/latest/).
|
|
367
|
+
|
|
362
368
|
## Cite us
|
|
363
369
|
|
|
364
370
|
If you used Flowcept in your research, consider citing our paper.
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
[](https://flowcept.readthedocs.io/)
|
|
1
2
|
[](https://github.com/ORNL/flowcept/actions/workflows/create-release-n-publish.yml)
|
|
2
3
|
[](https://pypi.org/project/flowcept)
|
|
3
4
|
[](https://github.com/ORNL/flowcept/actions/workflows/run-tests.yml)
|
|
@@ -17,6 +18,7 @@
|
|
|
17
18
|
- [Data Persistence](#data-persistence)
|
|
18
19
|
- [Performance Tuning](#performance-tuning-for-performance-evaluation)
|
|
19
20
|
- [AMD GPU Setup](#install-amd-gpu-lib)
|
|
21
|
+
- [Further Documentation](#documentation)
|
|
20
22
|
|
|
21
23
|
## Overview
|
|
22
24
|
|
|
@@ -269,6 +271,10 @@ Which was installed using Frontier's /opt/rocm-6.3.1/share/amd_smi
|
|
|
269
271
|
|
|
270
272
|
Some unit tests utilize `torch==2.2.2`, `torchtext=0.17.2`, and `torchvision==0.17.2`. They are only really needed to run some tests and will be installed if you run `pip install flowcept[ml_dev]` or `pip install flowcept[all]`. If you want to use Flowcept with Torch, please adapt torch dependencies according to your project's dependencies.
|
|
271
273
|
|
|
274
|
+
## Documentation
|
|
275
|
+
|
|
276
|
+
Full documentation is available on [Read the Docs](https://myproject.readthedocs.io/en/latest/).
|
|
277
|
+
|
|
272
278
|
## Cite us
|
|
273
279
|
|
|
274
280
|
If you used Flowcept in your research, consider citing our paper.
|
|
@@ -2,7 +2,7 @@ Getting Started
|
|
|
2
2
|
===============
|
|
3
3
|
|
|
4
4
|
Quick Install
|
|
5
|
-
|
|
5
|
+
----------------------------------------------------------------------------------------------
|
|
6
6
|
|
|
7
7
|
To install Flowcept with its default dependencies, simply run:
|
|
8
8
|
|
|
@@ -15,7 +15,7 @@ This will install the core Flowcept package. For additional adapters or features
|
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
Start Up Services
|
|
18
|
-
|
|
18
|
+
----------------------------------------------------------------------------------------------
|
|
19
19
|
|
|
20
20
|
To start required services like the default Redis MQ system, use the provided Makefile target:
|
|
21
21
|
|
|
@@ -35,13 +35,14 @@ If you need MongoDB, you'll run:
|
|
|
35
35
|
For more options, see the `deployment directory <https://github.com/ORNL/flowcept/tree/main/deployment>`_.
|
|
36
36
|
|
|
37
37
|
Customizing Settings
|
|
38
|
-
|
|
38
|
+
----------------------------------------------------------------------------------------------
|
|
39
39
|
|
|
40
40
|
Flowcept allows extensive configuration via a YAML file. To use a custom configuration, set the environment variable
|
|
41
41
|
``FLOWCEPT_SETTINGS_PATH`` to point to the absolute path of your settings file. A sample file is provided at For more options, see the `sample_settings.yaml <https://github.com/ORNL/flowcept/blob/main/resources/sample_settings.yaml>`_.
|
|
42
42
|
|
|
43
43
|
Key Settings to Adjust
|
|
44
|
-
|
|
44
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
45
|
+
|
|
45
46
|
|
|
46
47
|
- **Service Connections:** Set host, port, and credentials for MQ (`mq:`), key-value DB (`kv_db:`), and optionally MongoDB (`mongodb:`).
|
|
47
48
|
- **Telemetry:** Toggle `cpu`, `mem`, `gpu`, `disk`, `network`, and `process_info` under `telemetry_capture:`.
|
|
@@ -53,7 +54,7 @@ Note that if using Redis, MQ and KV_DB are have same host. Refer to the sample s
|
|
|
53
54
|
|
|
54
55
|
|
|
55
56
|
Usage Example with Instrumentation
|
|
56
|
-
|
|
57
|
+
----------------------------------------------------------------------------------------------
|
|
57
58
|
|
|
58
59
|
Flowcept supports decorator-based instrumentation for capturing workflow execution data. Here's a simple example:
|
|
59
60
|
|
|
@@ -79,15 +80,15 @@ Flowcept supports decorator-based instrumentation for capturing workflow executi
|
|
|
79
80
|
|
|
80
81
|
|
|
81
82
|
Usage with Data Observability Adapters
|
|
82
|
-
|
|
83
|
+
----------------------------------------------------------------------------------------------
|
|
83
84
|
|
|
84
85
|
Flowcept includes adapters for MLFlow, Dask, and TensorBoard that can automatically capture provenance data.
|
|
85
86
|
|
|
86
87
|
For detailed usage and example configurations, refer to the `examples directory <https://github.com/ORNL/flowcept/tree/main/examples>`_.
|
|
87
88
|
|
|
88
89
|
|
|
89
|
-
Querying
|
|
90
|
-
|
|
90
|
+
Querying
|
|
91
|
+
----------------------------------------------------------------------------------------------
|
|
91
92
|
|
|
92
93
|
Once data is captured and persisted (e.g., to MongoDB), you can use Flowcept’s query interface:
|
|
93
94
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
Flowcept
|
|
2
2
|
========
|
|
3
3
|
|
|
4
|
+
GitHub Repository: https://github.com/ornl/flowcept
|
|
5
|
+
|
|
4
6
|
Flowcept is a runtime data integration system that captures and queries workflow provenance with minimal or no code changes. It unifies data across diverse workflows and tools, enabling integrated analysis and insights, especially in federated environments. Designed for scenarios involving critical data from multiple workflows, Flowcept seamlessly integrates data at runtime, providing a unified view for end-to-end monitoring and analysis, and enhanced support for Machine Learning (ML) workflows.
|
|
5
7
|
|
|
6
8
|
|
|
@@ -84,9 +84,10 @@ If telemetry data capture is enabled, telemetry data is captured both at the sta
|
|
|
84
84
|
GPU telemetry data, if available, is stored in the `gpu` field. Its structure varies based on the vendor:
|
|
85
85
|
|
|
86
86
|
- **Common Fields**
|
|
87
|
+
|
|
87
88
|
- **gpu_ix**: Index of the GPU used (int)
|
|
88
89
|
- **used**: Memory used (bytes)
|
|
89
|
-
- **temperature**: Dictionary of temperature data
|
|
90
|
+
- **temperature**: Dictionary of temperature data or int (see below)
|
|
90
91
|
- **power**: Dictionary or value representing power usage
|
|
91
92
|
- **id**: Device UUID
|
|
92
93
|
- **name** (NVIDIA only): GPU name
|
|
@@ -94,18 +95,20 @@ If telemetry data capture is enabled, telemetry data is captured both at the sta
|
|
|
94
95
|
- **others** (AMD only): Additional clock and performance data
|
|
95
96
|
|
|
96
97
|
- **AMD GPU**:
|
|
98
|
+
|
|
97
99
|
- **temperature**:
|
|
98
|
-
-
|
|
100
|
+
- edge, hotspot, mem, vrgfx, vrmem, hbm, fan_speed
|
|
99
101
|
- **power**:
|
|
100
|
-
-
|
|
102
|
+
- average_socket_power, energy_accumulator
|
|
101
103
|
- **others**:
|
|
102
|
-
-
|
|
104
|
+
- current_gfxclk, current_socclk, current_uclk, current_vclk0, current_dclk0
|
|
103
105
|
|
|
104
106
|
- **NVIDIA GPU**:
|
|
107
|
+
|
|
105
108
|
- **temperature**: GPU temperature in Celsius
|
|
106
109
|
- **power**: Power usage in milliwatts
|
|
107
110
|
- **used**: Memory used in bytes
|
|
108
111
|
- **name**: GPU model name
|
|
109
112
|
- **id**: Device UUID
|
|
110
113
|
|
|
111
|
-
Telemetry values may vary depending on system capabilities,
|
|
114
|
+
Telemetry values may vary depending on system capabilities, what is available in the GPU API, and what is enable in the settings.yaml file.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
flowcept_version: 0.8.
|
|
1
|
+
flowcept_version: 0.8.9 # Version of the Flowcept package. This setting file is compatible with this version.
|
|
2
2
|
|
|
3
3
|
project:
|
|
4
4
|
debug: true # Toggle debug mode. This will add a property `debug: true` to all saved data, making it easier to retrieve/delete them later.
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import re
|
|
2
|
-
|
|
3
|
-
version_file_path = "src/flowcept/version.py"
|
|
4
|
-
with open(version_file_path) as f:
|
|
5
|
-
code_str = f.read()
|
|
6
|
-
exec(code_str)
|
|
7
|
-
version = locals()["__version__"]
|
|
8
|
-
|
|
9
|
-
split_version = version.split(".")
|
|
10
|
-
old_patch_str = split_version[2]
|
|
11
|
-
re_found = re.findall(r"(\d+)(.*)", old_patch_str)[0]
|
|
12
|
-
old_patch_number = re_found[0]
|
|
13
|
-
|
|
14
|
-
new_patch_str = old_patch_str.replace(old_patch_number, str(int(old_patch_number) + 1))
|
|
15
|
-
|
|
16
|
-
split_version[2] = new_patch_str
|
|
17
|
-
new_version = ".".join(split_version)
|
|
18
|
-
|
|
19
|
-
print("New version: " + new_version)
|
|
20
|
-
new_code_str = code_str.replace(version, new_version)
|
|
21
|
-
|
|
22
|
-
with open(version_file_path, "w") as f:
|
|
23
|
-
f.write(new_code_str)
|
|
24
|
-
|
|
25
|
-
# Update version in sample_settings.yaml using str.replace()
|
|
26
|
-
yaml_file_path = "resources/sample_settings.yaml"
|
|
27
|
-
with open(yaml_file_path) as f:
|
|
28
|
-
yaml_text = f.read()
|
|
29
|
-
|
|
30
|
-
new_yaml_text = yaml_text.replace(f"flowcept_version: {version}", f"flowcept_version: {new_version}")
|
|
31
|
-
|
|
32
|
-
with open(yaml_file_path, "w") as f:
|
|
33
|
-
f.write(new_yaml_text)
|
|
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
|
{flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/flowcept_dataclasses/workflow_object.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
|
{flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowcept_webserver/resources/task_messages_rsrc.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
|
{flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/instrumentation_interceptor.py
RENAMED
|
File without changes
|
{flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/interceptor_state_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/mlflow/mlflow_dataclasses.py
RENAMED
|
File without changes
|
{flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/mlflow/mlflow_interceptor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/zambeze/zambeze_dataclasses.py
RENAMED
|
File without changes
|
{flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/zambeze/zambeze_interceptor.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
|
{flowcept-0.8.7 → flowcept-0.8.9}/tests/instrumentation_tests/flowcept_task_decorator_test.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flowcept-0.8.7 → flowcept-0.8.9}/tests/instrumentation_tests/ml_tests/ml_decorator_dask_test.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|