fastworkflow 2.8.14__py3-none-any.whl → 2.8.16__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.
@@ -572,21 +572,20 @@ def get_cached_command_directory(workflow_folderpath: str) -> CommandDirectory:
572
572
  cache_folder = Path(CommandDirectory.get_commandinfo_folderpath(workflow_folderpath))
573
573
  cache_file = cache_folder / "command_directory.json"
574
574
 
575
- try:
576
- commands_root = Path(workflow_folderpath) / "_commands"
577
- if commands_root.exists():
578
- latest_src_mtime = max(p.stat().st_mtime for p in commands_root.rglob("*.py"))
579
- else:
580
- latest_src_mtime = 0.0
581
-
582
- # Fast-path: load JSON if it is newer than any source file
583
- if cache_file.exists() and cache_file.stat().st_mtime > latest_src_mtime:
584
- with contextlib.suppress(Exception):
585
- return CommandDirectory.model_validate_json(cache_file.read_text())
586
- # (Re)build and persist
587
- directory = CommandDirectory.load(workflow_folderpath)
588
- directory.save()
589
- return directory
590
- except Exception:
591
- # Final fallback – live build without caching safeguards
592
- return CommandDirectory.load(workflow_folderpath)
575
+ commands_root = Path(workflow_folderpath) / "_commands"
576
+ if commands_root.exists():
577
+ # Use a generator expression with a default to handle empty directories
578
+ latest_src_mtime = max((p.stat().st_mtime for p in commands_root.rglob("*.py")), default=0.0)
579
+ else:
580
+ latest_src_mtime = 0.0
581
+
582
+ # Fast-path: load JSON if it is newer than any source file
583
+ if cache_file.exists() and cache_file.stat().st_mtime > latest_src_mtime:
584
+ with contextlib.suppress(Exception): # Suppress errors during deserialization (e.g., corrupted cache)
585
+ # If deserialization fails, we'll just rebuild.
586
+ return CommandDirectory.model_validate_json(cache_file.read_text())
587
+
588
+ # (Re)build and persist
589
+ directory = CommandDirectory.load(workflow_folderpath)
590
+ directory.save()
591
+ return directory
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fastworkflow
3
- Version: 2.8.14
3
+ Version: 2.8.16
4
4
  Summary: A framework for rapidly building large-scale, deterministic, interactive workflows with a fault-tolerant, conversational UX
5
5
  License: Apache-2.0
6
6
  Keywords: fastworkflow,ai,workflow,llm,openai
@@ -33,7 +33,7 @@ fastworkflow/cache_matching.py,sha256=WoSQ7QuVGqOnecsIIdwb3A6gBpt0OJdSzx_a51nHoF
33
33
  fastworkflow/chat_session.py,sha256=lEpJmU_2a-4pB4QR7wACl8jHWZls1ROtQGgdVObY3BA,12308
34
34
  fastworkflow/cli.py,sha256=GmwV-uWOysBIxA17pPR4s357Qut7ge5R2nTteYnIkOc,21526
35
35
  fastworkflow/command_context_model.py,sha256=nWxLP3TR7WJr3yWCedqcdFOxo_kwae_mS3VRN2cOmK8,13437
36
- fastworkflow/command_directory.py,sha256=iUW8168fX6bTytPtYI1gcTHqORv0_qNZ7Nhhwr-ujqs,27163
36
+ fastworkflow/command_directory.py,sha256=gnt1n8IO8ZZSuxkzwN6kZlkCC6NVK7UzFEVBZeFm-DI,27189
37
37
  fastworkflow/command_executor.py,sha256=bKqOHBEVhCunE3B-zh6DNLERUiSmEiVJdfEoVVUq-zM,6412
38
38
  fastworkflow/command_interfaces.py,sha256=PWIKlcp0G8nmYl0vkrg1o6QzJL0pxXkfrn1joqTa0eU,460
39
39
  fastworkflow/command_routing.py,sha256=BtBPeYRVIUgHKhgGJpOirkZAyGjBEQuaZv5qBT0hEMc,15557
@@ -146,8 +146,8 @@ fastworkflow/utils/pydantic_model_2_dspy_signature_class.py,sha256=w1pvl8rJq48ul
146
146
  fastworkflow/utils/python_utils.py,sha256=Lt6P8lBMbLuLZaP9gd_7Kl7UvSPLm-NKPN6cPUdn53w,8194
147
147
  fastworkflow/utils/signatures.py,sha256=4ksF-65Q-22ZR_SW8O_cv5RhKKk0ecmWgykoAGKxr-k,19957
148
148
  fastworkflow/workflow.py,sha256=zHsA67IMlHAhpgM2CN96G_KsU_eMVXJf7axZ2zBBdhU,16436
149
- fastworkflow-2.8.14.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
150
- fastworkflow-2.8.14.dist-info/METADATA,sha256=T4cyt9gfiaVGLmgwfGxRzXM-jUn9EIuYXYpo8Y7Ss9Q,15387
151
- fastworkflow-2.8.14.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
152
- fastworkflow-2.8.14.dist-info/entry_points.txt,sha256=m8HqoPzCyaZLAx-V5X8MJgw3Lx3GiPDlxNEZ7K-Gb-U,54
153
- fastworkflow-2.8.14.dist-info/RECORD,,
149
+ fastworkflow-2.8.16.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
150
+ fastworkflow-2.8.16.dist-info/METADATA,sha256=0zD-ghNYv5qNtc_vwf4vbxCmXLBF7a0gsBUW-dLoELM,15387
151
+ fastworkflow-2.8.16.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
152
+ fastworkflow-2.8.16.dist-info/entry_points.txt,sha256=m8HqoPzCyaZLAx-V5X8MJgw3Lx3GiPDlxNEZ7K-Gb-U,54
153
+ fastworkflow-2.8.16.dist-info/RECORD,,