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.
Files changed (157) hide show
  1. {flowcept-0.8.7 → flowcept-0.8.9}/.github/workflows/create-release-n-publish.yml +2 -0
  2. flowcept-0.8.9/.github/workflows/version_bumper.py +54 -0
  3. {flowcept-0.8.7 → flowcept-0.8.9}/PKG-INFO +7 -1
  4. {flowcept-0.8.7 → flowcept-0.8.9}/README.md +6 -0
  5. {flowcept-0.8.7 → flowcept-0.8.9}/docs/getstarted.rst +9 -8
  6. {flowcept-0.8.7 → flowcept-0.8.9}/docs/index.rst +2 -0
  7. {flowcept-0.8.7 → flowcept-0.8.9}/docs/task_schema.rst +8 -5
  8. {flowcept-0.8.7 → flowcept-0.8.9}/resources/sample_settings.yaml +1 -1
  9. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/version.py +1 -1
  10. flowcept-0.8.7/.github/workflows/version_bumper.py +0 -33
  11. {flowcept-0.8.7 → flowcept-0.8.9}/.github/workflows/checks.yml +0 -0
  12. {flowcept-0.8.7 → flowcept-0.8.9}/.github/workflows/run-llm-tests.yml +0 -0
  13. {flowcept-0.8.7 → flowcept-0.8.9}/.github/workflows/run-tests-all-dbs.yml +0 -0
  14. {flowcept-0.8.7 → flowcept-0.8.9}/.github/workflows/run-tests-in-container.yml +0 -0
  15. {flowcept-0.8.7 → flowcept-0.8.9}/.github/workflows/run-tests-kafka.yml +0 -0
  16. {flowcept-0.8.7 → flowcept-0.8.9}/.github/workflows/run-tests-py313.yml +0 -0
  17. {flowcept-0.8.7 → flowcept-0.8.9}/.github/workflows/run-tests-simple.yml +0 -0
  18. {flowcept-0.8.7 → flowcept-0.8.9}/.github/workflows/run-tests.yml +0 -0
  19. {flowcept-0.8.7 → flowcept-0.8.9}/.github/workflows/run_examples.sh +0 -0
  20. {flowcept-0.8.7 → flowcept-0.8.9}/.gitignore +0 -0
  21. {flowcept-0.8.7 → flowcept-0.8.9}/.readthedocs.yaml +0 -0
  22. {flowcept-0.8.7 → flowcept-0.8.9}/CONTRIBUTING.md +0 -0
  23. {flowcept-0.8.7 → flowcept-0.8.9}/LICENSE +0 -0
  24. {flowcept-0.8.7 → flowcept-0.8.9}/Makefile +0 -0
  25. {flowcept-0.8.7 → flowcept-0.8.9}/deployment/Dockerfile +0 -0
  26. {flowcept-0.8.7 → flowcept-0.8.9}/deployment/compose-grafana.yml +0 -0
  27. {flowcept-0.8.7 → flowcept-0.8.9}/deployment/compose-kafka.yml +0 -0
  28. {flowcept-0.8.7 → flowcept-0.8.9}/deployment/compose-mofka.yml +0 -0
  29. {flowcept-0.8.7 → flowcept-0.8.9}/deployment/compose-mongo.yml +0 -0
  30. {flowcept-0.8.7 → flowcept-0.8.9}/deployment/compose.yml +0 -0
  31. {flowcept-0.8.7 → flowcept-0.8.9}/docs/api-reference.rst +0 -0
  32. {flowcept-0.8.7 → flowcept-0.8.9}/docs/conf.py +0 -0
  33. {flowcept-0.8.7 → flowcept-0.8.9}/docs/contributing.rst +0 -0
  34. {flowcept-0.8.7 → flowcept-0.8.9}/docs/schemas.rst +0 -0
  35. {flowcept-0.8.7 → flowcept-0.8.9}/docs/workflow_schema.rst +0 -0
  36. {flowcept-0.8.7 → flowcept-0.8.9}/examples/dask_example.py +0 -0
  37. {flowcept-0.8.7 → flowcept-0.8.9}/examples/distributed_consumer_example.py +0 -0
  38. {flowcept-0.8.7 → flowcept-0.8.9}/examples/instrumented_loop_example.py +0 -0
  39. {flowcept-0.8.7 → flowcept-0.8.9}/examples/instrumented_simple_example.py +0 -0
  40. {flowcept-0.8.7 → flowcept-0.8.9}/examples/llm_complex/README.md +0 -0
  41. {flowcept-0.8.7 → flowcept-0.8.9}/examples/llm_complex/custom_provenance_id_mapping.yaml +0 -0
  42. {flowcept-0.8.7 → flowcept-0.8.9}/examples/llm_complex/llm_dataprep.py +0 -0
  43. {flowcept-0.8.7 → flowcept-0.8.9}/examples/llm_complex/llm_main_example.py +0 -0
  44. {flowcept-0.8.7 → flowcept-0.8.9}/examples/llm_complex/llm_model.py +0 -0
  45. {flowcept-0.8.7 → flowcept-0.8.9}/examples/llm_complex/llm_test_runner.py +0 -0
  46. {flowcept-0.8.7 → flowcept-0.8.9}/examples/mlflow_example.py +0 -0
  47. {flowcept-0.8.7 → flowcept-0.8.9}/examples/single_layer_perceptron_example.py +0 -0
  48. {flowcept-0.8.7 → flowcept-0.8.9}/examples/tensorboard_example.py +0 -0
  49. {flowcept-0.8.7 → flowcept-0.8.9}/examples/unmanaged/main.py +0 -0
  50. {flowcept-0.8.7 → flowcept-0.8.9}/examples/unmanaged/simple_task.py +0 -0
  51. {flowcept-0.8.7 → flowcept-0.8.9}/notebooks/analytics.ipynb +0 -0
  52. {flowcept-0.8.7 → flowcept-0.8.9}/notebooks/dask.ipynb +0 -0
  53. {flowcept-0.8.7 → flowcept-0.8.9}/notebooks/dask_from_CLI.ipynb +0 -0
  54. {flowcept-0.8.7 → flowcept-0.8.9}/notebooks/mlflow.ipynb +0 -0
  55. {flowcept-0.8.7 → flowcept-0.8.9}/notebooks/reset_dask_nb_exec_counts.py +0 -0
  56. {flowcept-0.8.7 → flowcept-0.8.9}/notebooks/tensorboard.ipynb +0 -0
  57. {flowcept-0.8.7 → flowcept-0.8.9}/pyproject.toml +0 -0
  58. {flowcept-0.8.7 → flowcept-0.8.9}/resources/mofka/bedrock_setup.sh +0 -0
  59. {flowcept-0.8.7 → flowcept-0.8.9}/resources/mofka/consumer.py +0 -0
  60. {flowcept-0.8.7 → flowcept-0.8.9}/resources/mofka/mofka-requirements.yaml +0 -0
  61. {flowcept-0.8.7 → flowcept-0.8.9}/resources/mofka/mofka_config.json +0 -0
  62. {flowcept-0.8.7 → flowcept-0.8.9}/resources/simple_redis_consumer.py +0 -0
  63. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/__init__.py +0 -0
  64. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/analytics/__init__.py +0 -0
  65. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/analytics/analytics_utils.py +0 -0
  66. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/analytics/data_augmentation.py +0 -0
  67. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/analytics/plot.py +0 -0
  68. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/__init__.py +0 -0
  69. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/autoflush_buffer.py +0 -0
  70. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/daos/__init__.py +0 -0
  71. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/daos/docdb_dao/__init__.py +0 -0
  72. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/daos/docdb_dao/docdb_dao_base.py +0 -0
  73. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/daos/docdb_dao/lmdb_dao.py +0 -0
  74. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/daos/docdb_dao/mongodb_dao.py +0 -0
  75. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/daos/keyvalue_dao.py +0 -0
  76. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/daos/mq_dao/__init__.py +0 -0
  77. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/daos/mq_dao/mq_dao_base.py +0 -0
  78. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/daos/mq_dao/mq_dao_kafka.py +0 -0
  79. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/daos/mq_dao/mq_dao_mofka.py +0 -0
  80. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/daos/mq_dao/mq_dao_redis.py +0 -0
  81. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/flowcept_dataclasses/__init__.py +0 -0
  82. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/flowcept_dataclasses/base_settings_dataclasses.py +0 -0
  83. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/flowcept_dataclasses/task_object.py +0 -0
  84. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/flowcept_dataclasses/telemetry.py +0 -0
  85. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/flowcept_dataclasses/workflow_object.py +0 -0
  86. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/flowcept_logger.py +0 -0
  87. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/query_utils.py +0 -0
  88. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/settings_factory.py +0 -0
  89. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/utils.py +0 -0
  90. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/commons/vocabulary.py +0 -0
  91. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/configs.py +0 -0
  92. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowcept_api/__init__.py +0 -0
  93. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowcept_api/db_api.py +0 -0
  94. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowcept_api/flowcept_controller.py +0 -0
  95. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowcept_api/task_query_api.py +0 -0
  96. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowcept_webserver/__init__.py +0 -0
  97. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowcept_webserver/app.py +0 -0
  98. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowcept_webserver/resources/__init__.py +0 -0
  99. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowcept_webserver/resources/query_rsrc.py +0 -0
  100. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowcept_webserver/resources/task_messages_rsrc.py +0 -0
  101. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/__init__.py +0 -0
  102. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/__init__.py +0 -0
  103. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/base_interceptor.py +0 -0
  104. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/dask/__init__.py +0 -0
  105. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/dask/dask_dataclasses.py +0 -0
  106. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/dask/dask_interceptor.py +0 -0
  107. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/dask/dask_plugins.py +0 -0
  108. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/instrumentation_interceptor.py +0 -0
  109. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/interceptor_state_manager.py +0 -0
  110. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/mlflow/__init__.py +0 -0
  111. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/mlflow/interception_event_handler.py +0 -0
  112. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/mlflow/mlflow_dao.py +0 -0
  113. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/mlflow/mlflow_dataclasses.py +0 -0
  114. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/mlflow/mlflow_interceptor.py +0 -0
  115. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/tensorboard/__init__.py +0 -0
  116. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/tensorboard/tensorboard_dataclasses.py +0 -0
  117. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/tensorboard/tensorboard_interceptor.py +0 -0
  118. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/zambeze/__init__.py +0 -0
  119. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/zambeze/zambeze_dataclasses.py +0 -0
  120. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/adapters/zambeze/zambeze_interceptor.py +0 -0
  121. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/consumers/__init__.py +0 -0
  122. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/consumers/consumer_utils.py +0 -0
  123. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/consumers/document_inserter.py +0 -0
  124. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/flowceptor/telemetry_capture.py +0 -0
  125. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/instrumentation/__init__.py +0 -0
  126. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/instrumentation/flowcept_loop.py +0 -0
  127. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/instrumentation/flowcept_task.py +0 -0
  128. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/instrumentation/flowcept_torch.py +0 -0
  129. {flowcept-0.8.7 → flowcept-0.8.9}/src/flowcept/instrumentation/task_capture.py +0 -0
  130. {flowcept-0.8.7 → flowcept-0.8.9}/tests/__init__.py +0 -0
  131. {flowcept-0.8.7 → flowcept-0.8.9}/tests/adapters/__init__.py +0 -0
  132. {flowcept-0.8.7 → flowcept-0.8.9}/tests/adapters/dask_test_utils.py +0 -0
  133. {flowcept-0.8.7 → flowcept-0.8.9}/tests/adapters/test_dask.py +0 -0
  134. {flowcept-0.8.7 → flowcept-0.8.9}/tests/adapters/test_dask_with_context_mgmt.py +0 -0
  135. {flowcept-0.8.7 → flowcept-0.8.9}/tests/adapters/test_file_observer.py +0 -0
  136. {flowcept-0.8.7 → flowcept-0.8.9}/tests/adapters/test_mlflow.py +0 -0
  137. {flowcept-0.8.7 → flowcept-0.8.9}/tests/adapters/test_tensorboard.py +0 -0
  138. {flowcept-0.8.7 → flowcept-0.8.9}/tests/api/__init__.py +0 -0
  139. {flowcept-0.8.7 → flowcept-0.8.9}/tests/api/db_api_test.py +0 -0
  140. {flowcept-0.8.7 → flowcept-0.8.9}/tests/api/flowcept_api_test.py +0 -0
  141. {flowcept-0.8.7 → flowcept-0.8.9}/tests/api/sample_data.json +0 -0
  142. {flowcept-0.8.7 → flowcept-0.8.9}/tests/api/sample_data_with_telemetry_and_rai.json +0 -0
  143. {flowcept-0.8.7 → flowcept-0.8.9}/tests/api/task_query_api_test.py +0 -0
  144. {flowcept-0.8.7 → flowcept-0.8.9}/tests/doc_db_inserter/__init__.py +0 -0
  145. {flowcept-0.8.7 → flowcept-0.8.9}/tests/doc_db_inserter/doc_db_inserter_test.py +0 -0
  146. {flowcept-0.8.7 → flowcept-0.8.9}/tests/instrumentation_tests/__init__.py +0 -0
  147. {flowcept-0.8.7 → flowcept-0.8.9}/tests/instrumentation_tests/flowcept_explicit_tasks.py +0 -0
  148. {flowcept-0.8.7 → flowcept-0.8.9}/tests/instrumentation_tests/flowcept_loop_test.py +0 -0
  149. {flowcept-0.8.7 → flowcept-0.8.9}/tests/instrumentation_tests/flowcept_task_decorator_test.py +0 -0
  150. {flowcept-0.8.7 → flowcept-0.8.9}/tests/instrumentation_tests/ml_tests/__init__.py +0 -0
  151. {flowcept-0.8.7 → flowcept-0.8.9}/tests/instrumentation_tests/ml_tests/dl_trainer.py +0 -0
  152. {flowcept-0.8.7 → flowcept-0.8.9}/tests/instrumentation_tests/ml_tests/ml_decorator_dask_test.py +0 -0
  153. {flowcept-0.8.7 → flowcept-0.8.9}/tests/instrumentation_tests/ml_tests/ml_decorator_test.py +0 -0
  154. {flowcept-0.8.7 → flowcept-0.8.9}/tests/misc_tests/__init__.py +0 -0
  155. {flowcept-0.8.7 → flowcept-0.8.9}/tests/misc_tests/log_test.py +0 -0
  156. {flowcept-0.8.7 → flowcept-0.8.9}/tests/misc_tests/singleton_test.py +0 -0
  157. {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.7
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
+ [![Documentation](https://img.shields.io/badge/docs-readthedocs.io-green.svg)](https://flowcept.readthedocs.io/)
91
92
  [![Build](https://github.com/ORNL/flowcept/actions/workflows/create-release-n-publish.yml/badge.svg)](https://github.com/ORNL/flowcept/actions/workflows/create-release-n-publish.yml)
92
93
  [![PyPI](https://badge.fury.io/py/flowcept.svg)](https://pypi.org/project/flowcept)
93
94
  [![Tests](https://github.com/ORNL/flowcept/actions/workflows/run-tests.yml/badge.svg)](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
+ [![Documentation](https://img.shields.io/badge/docs-readthedocs.io-green.svg)](https://flowcept.readthedocs.io/)
1
2
  [![Build](https://github.com/ORNL/flowcept/actions/workflows/create-release-n-publish.yml/badge.svg)](https://github.com/ORNL/flowcept/actions/workflows/create-release-n-publish.yml)
2
3
  [![PyPI](https://badge.fury.io/py/flowcept.svg)](https://pypi.org/project/flowcept)
3
4
  [![Tests](https://github.com/ORNL/flowcept/actions/workflows/run-tests.yml/badge.svg)](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 with Flowcept.db.query
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
- - **edge**, **hotspot**, **mem**, **vrgfx**, **vrmem**, **hbm**, **fan_speed**
100
+ - edge, hotspot, mem, vrgfx, vrmem, hbm, fan_speed
99
101
  - **power**:
100
- - **average_socket_power**, **energy_accumulator**
102
+ - average_socket_power, energy_accumulator
101
103
  - **others**:
102
- - **current_gfxclk**, **current_socclk**, **current_uclk**, **current_vclk0**, **current_dclk0**
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, permissions, and configuration.
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.0 # Version of the Flowcept package. This setting file is compatible with this version.
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.
@@ -4,4 +4,4 @@
4
4
  # The expected format is: <Major>.<Minor>.<Patch>
5
5
  # This file is supposed to be automatically modified by the CI Bot.
6
6
  # See .github/workflows/version_bumper.py
7
- __version__ = "0.8.7"
7
+ __version__ = "0.8.9"
@@ -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