mermaid-trace 0.5.3.post0__tar.gz → 0.6.0.post0__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 (152) hide show
  1. mermaid_trace-0.6.0.post0/PKG-INFO +272 -0
  2. mermaid_trace-0.6.0.post0/README.md +206 -0
  3. mermaid_trace-0.6.0.post0/README_CN.md +216 -0
  4. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/en/API.md +23 -0
  5. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/en/CHANGELOG.md +13 -0
  6. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/en/USER_GUIDE.md +52 -0
  7. mermaid_trace-0.6.0.post0/docs/en/code_comments/src/mermaid_trace/__init__.md +167 -0
  8. mermaid_trace-0.6.0.post0/docs/en/code_comments/src/mermaid_trace/cli.md +111 -0
  9. mermaid_trace-0.6.0.post0/docs/en/code_comments/src/mermaid_trace/core/__init__.md +100 -0
  10. mermaid_trace-0.6.0.post0/docs/en/code_comments/src/mermaid_trace/core/config.md +135 -0
  11. mermaid_trace-0.6.0.post0/docs/en/code_comments/src/mermaid_trace/core/context.md +180 -0
  12. mermaid_trace-0.6.0.post0/docs/en/code_comments/src/mermaid_trace/core/decorators.md +488 -0
  13. mermaid_trace-0.6.0.post0/docs/en/code_comments/src/mermaid_trace/core/events.md +97 -0
  14. mermaid_trace-0.6.0.post0/docs/en/code_comments/src/mermaid_trace/core/formatter.md +211 -0
  15. mermaid_trace-0.6.0.post0/docs/en/code_comments/src/mermaid_trace/core/utils.md +191 -0
  16. mermaid_trace-0.6.0.post0/docs/en/code_comments/src/mermaid_trace/handlers/async_handler.md +223 -0
  17. mermaid_trace-0.6.0.post0/docs/en/code_comments/src/mermaid_trace/handlers/mermaid_handler.md +251 -0
  18. mermaid_trace-0.6.0.post0/docs/en/code_comments/src/mermaid_trace/integrations/__init__.md +54 -0
  19. mermaid_trace-0.6.0.post0/docs/en/code_comments/src/mermaid_trace/integrations/fastapi.md +229 -0
  20. mermaid_trace-0.6.0.post0/docs/en/code_comments/src/mermaid_trace/integrations/langchain.md +387 -0
  21. mermaid_trace-0.6.0.post0/docs/en/code_comments/src/mermaid_trace/server.md +84 -0
  22. mermaid_trace-0.6.0.post0/docs/images/master_preview.png +0 -0
  23. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/API.md +23 -0
  24. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/CHANGELOG.md +13 -0
  25. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/UPDATE_LOG.md +52 -0
  26. mermaid_trace-0.6.0.post0/docs/zh/UPDATE_SUMMARY.md +21 -0
  27. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/USER_GUIDE.md +52 -0
  28. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/code_comments/src/mermaid_trace/cli.md +16 -8
  29. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/code_comments/src/mermaid_trace/integrations/__init__.md +21 -0
  30. mermaid_trace-0.6.0.post0/docs/zh/code_comments/src/mermaid_trace/integrations/langchain.md +344 -0
  31. mermaid_trace-0.6.0.post0/docs/zh/code_comments/src/mermaid_trace/server.md +84 -0
  32. mermaid_trace-0.6.0.post0/examples/09_langchain_integration.py +91 -0
  33. mermaid_trace-0.6.0.post0/examples/MermaidTrace_Demo.ipynb +285 -0
  34. mermaid_trace-0.6.0.post0/examples/MermaidTrace_Demo_CN.ipynb +285 -0
  35. mermaid_trace-0.6.0.post0/examples/mermaid_diagrams/basic_demo.mmd +13 -0
  36. mermaid_trace-0.6.0.post0/mermaid_diagrams/comparison_demo.mmd +16 -0
  37. mermaid_trace-0.6.0.post0/mermaid_diagrams/examples/langchain_trace.mmd +16 -0
  38. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/tests/core/config_override/dummy.mmd +3 -3
  39. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/pyproject.toml +8 -0
  40. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/src/mermaid_trace/cli.py +30 -2
  41. mermaid_trace-0.6.0.post0/src/mermaid_trace/integrations/__init__.py +9 -0
  42. mermaid_trace-0.6.0.post0/src/mermaid_trace/integrations/langchain.py +312 -0
  43. mermaid_trace-0.6.0.post0/src/mermaid_trace/server.py +406 -0
  44. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/core/test_cli.py +8 -1
  45. mermaid_trace-0.6.0.post0/tests/integrations/test_langchain.py +171 -0
  46. mermaid_trace-0.5.3.post0/PKG-INFO +0 -232
  47. mermaid_trace-0.5.3.post0/README.md +0 -170
  48. mermaid_trace-0.5.3.post0/README_CN.md +0 -172
  49. mermaid_trace-0.5.3.post0/docs/zh/UPDATE_SUMMARY.md +0 -22
  50. mermaid_trace-0.5.3.post0/src/mermaid_trace/integrations/__init__.py +0 -4
  51. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/.github/workflows/ci.yml +0 -0
  52. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/.github/workflows/release.yml +0 -0
  53. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/.gitignore +0 -0
  54. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/LICENSE +0 -0
  55. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/SECURITY.md +0 -0
  56. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/en/CONTRIBUTING.md +0 -0
  57. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/en/LICENSE +0 -0
  58. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/CONTRIBUTING.md +0 -0
  59. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/LICENSE +0 -0
  60. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/code_comments/src/mermaid_trace/__init__.md +0 -0
  61. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/code_comments/src/mermaid_trace/core/__init__.md +0 -0
  62. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/code_comments/src/mermaid_trace/core/config.md +0 -0
  63. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/code_comments/src/mermaid_trace/core/context.md +0 -0
  64. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/code_comments/src/mermaid_trace/core/decorators.md +0 -0
  65. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/code_comments/src/mermaid_trace/core/events.md +0 -0
  66. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/code_comments/src/mermaid_trace/core/formatter.md +0 -0
  67. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/code_comments/src/mermaid_trace/core/image/context/1769443810901.png +0 -0
  68. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/code_comments/src/mermaid_trace/core/image/context/1769443817389.png +0 -0
  69. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/code_comments/src/mermaid_trace/core/image/context/1769443818915.png +0 -0
  70. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/code_comments/src/mermaid_trace/core/image/context/1769443830665.png +0 -0
  71. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/code_comments/src/mermaid_trace/core/image/context/1769443835553.png +0 -0
  72. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/code_comments/src/mermaid_trace/core/utils.md +0 -0
  73. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/code_comments/src/mermaid_trace/handlers/async_handler.md +0 -0
  74. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/code_comments/src/mermaid_trace/handlers/mermaid_handler.md +0 -0
  75. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/code_comments/src/mermaid_trace/integrations/fastapi.md +0 -0
  76. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/examples/01_basic_usage.py +0 -0
  77. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/examples/02_advanced_instrumentation.py +0 -0
  78. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/examples/03_async_concurrency.py +0 -0
  79. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/examples/04_error_handling.py +0 -0
  80. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/examples/05_intelligent_collapsing.py +0 -0
  81. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/examples/06_fastapi_integration.py +0 -0
  82. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/examples/07_full_stack_app.py +0 -0
  83. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/examples/08-log-rotation.py +0 -0
  84. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/examples/README.md +0 -0
  85. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/examples/08-log-rotation.mmd +0 -0
  86. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/examples/08-log-rotation.mmd.1 +0 -0
  87. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/examples/08-log-rotation.mmd.2 +0 -0
  88. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/examples/08-log-rotation.mmd.3 +0 -0
  89. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/examples/08-log-rotation.mmd.4 +0 -0
  90. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/examples/08-log-rotation.mmd.5 +0 -0
  91. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/examples/async_flow.mmd +0 -0
  92. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/examples/basic_flow.mmd +0 -0
  93. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/examples/collapsed_flow.mmd +0 -0
  94. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/examples/error_handling.mmd +0 -0
  95. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/examples/fastapi_trace.mmd +0 -0
  96. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/examples/full_stack_app.mmd +0 -0
  97. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/examples/instrumentation_demo.mmd +0 -0
  98. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/tests/handlers/handlers/append.mmd +0 -0
  99. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/tests/handlers/handlers/async_flow.mmd +0 -0
  100. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/tests/handlers/handlers/delay.mmd +0 -0
  101. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/tests/handlers/handlers/flush_flow.mmd +0 -0
  102. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/tests/handlers/handlers/test_flow.mmd +0 -0
  103. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/tests/integrations/integration_fastapi/api_flow.mmd +0 -0
  104. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/tests/overwrite_logic/test_overwrite_default.mmd +0 -0
  105. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/tests/overwrite_logic/test_overwrite_false.mmd +0 -0
  106. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/tests/scenarios/basic_flow/basic_flow.mmd +0 -0
  107. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/tests/scenarios/concurrency/concurrency.mmd +0 -0
  108. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/tests/scenarios/concurrency/trace_ids.mmd +0 -0
  109. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/tests/scenarios/edge_cases/edge.mmd +0 -0
  110. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/tests/scenarios/performance/bench_False.mmd +0 -0
  111. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/tests/scenarios/performance/bench_True.mmd +0 -0
  112. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/tests/scenarios/performance/overhead.mmd +0 -0
  113. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/src/mermaid_trace/__init__.py +0 -0
  114. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/src/mermaid_trace/core/__init__.py +0 -0
  115. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/src/mermaid_trace/core/config.py +0 -0
  116. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/src/mermaid_trace/core/context.py +0 -0
  117. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/src/mermaid_trace/core/decorators.py +0 -0
  118. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/src/mermaid_trace/core/events.py +0 -0
  119. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/src/mermaid_trace/core/formatter.py +0 -0
  120. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/src/mermaid_trace/core/utils.py +0 -0
  121. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/src/mermaid_trace/handlers/async_handler.py +0 -0
  122. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/src/mermaid_trace/handlers/mermaid_handler.py +0 -0
  123. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/src/mermaid_trace/integrations/fastapi.py +0 -0
  124. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/src/mermaid_trace/py.typed +0 -0
  125. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/test.db +0 -0
  126. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/__init__.py +0 -0
  127. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/conftest.py +0 -0
  128. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/core/__init__.py +0 -0
  129. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/core/test_cli_coverage.py +0 -0
  130. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/core/test_config_coverage.py +0 -0
  131. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/core/test_config_override.py +0 -0
  132. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/core/test_context.py +0 -0
  133. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/core/test_context_extra.py +0 -0
  134. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/core/test_decorators_coverage.py +0 -0
  135. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/core/test_decorators_extra.py +0 -0
  136. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/core/test_events.py +0 -0
  137. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/core/test_formatter.py +0 -0
  138. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/core/test_formatter_coverage.py +0 -0
  139. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/core/test_formatter_extra.py +0 -0
  140. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/core/test_utils.py +0 -0
  141. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/core/test_utils_coverage.py +0 -0
  142. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/handlers/test_async_handler_coverage.py +0 -0
  143. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/handlers/test_handlers.py +0 -0
  144. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/handlers/test_mermaid_handler_coverage.py +0 -0
  145. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/integrations/test_fastapi_coverage.py +0 -0
  146. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/integrations/test_integration_decorators.py +0 -0
  147. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/integrations/test_integration_fastapi.py +0 -0
  148. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/scenarios/test_basic_flow.py +0 -0
  149. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/scenarios/test_concurrency.py +0 -0
  150. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/scenarios/test_edge_cases.py +0 -0
  151. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/scenarios/test_performance.py +0 -0
  152. {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tox.ini +0 -0
@@ -0,0 +1,272 @@
1
+ Metadata-Version: 2.4
2
+ Name: mermaid-trace
3
+ Version: 0.6.0.post0
4
+ Summary: Visualize your Python code execution flow as Mermaid Sequence Diagrams.
5
+ Project-URL: Documentation, https://github.com/xt765/mermaid-trace#readme
6
+ Project-URL: Changelog, https://github.com/xt765/mermaid-trace/blob/main/docs/en/CHANGELOG.md
7
+ Project-URL: Issues, https://github.com/xt765/mermaid-trace/issues
8
+ Project-URL: Source, https://github.com/xt765/mermaid-trace
9
+ Author-email: xt765 <xt765@foxmail.com>
10
+ License: MIT License
11
+
12
+ Copyright (c) 2026 xt765
13
+
14
+ Permission is hereby granted, free of charge, to any person obtaining a copy
15
+ of this software and associated documentation files (the "Software"), to deal
16
+ in the Software without restriction, including without limitation the rights
17
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
18
+ copies of the Software, and to permit persons to whom the Software is
19
+ furnished to do so, subject to the following conditions:
20
+
21
+ The above copyright notice and this permission notice shall be included in all
22
+ copies or substantial portions of the Software.
23
+
24
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
25
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
26
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
27
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
28
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
29
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
30
+ SOFTWARE.
31
+ License-File: LICENSE
32
+ Keywords: asyncio,logging,mermaid,mermaid-trace,sequence-diagram,trace,visualization
33
+ Classifier: Development Status :: 4 - Beta
34
+ Classifier: Intended Audience :: Developers
35
+ Classifier: License :: OSI Approved :: MIT License
36
+ Classifier: Operating System :: OS Independent
37
+ Classifier: Programming Language :: Python
38
+ Classifier: Programming Language :: Python :: 3.10
39
+ Classifier: Programming Language :: Python :: 3.11
40
+ Classifier: Programming Language :: Python :: 3.12
41
+ Classifier: Programming Language :: Python :: 3.13
42
+ Classifier: Programming Language :: Python :: Implementation :: CPython
43
+ Classifier: Programming Language :: Python :: Implementation :: PyPy
44
+ Classifier: Topic :: Software Development :: Debuggers
45
+ Classifier: Topic :: System :: Logging
46
+ Requires-Python: >=3.10
47
+ Requires-Dist: typing-extensions>=4.0.0
48
+ Requires-Dist: watchdog>=2.0.0
49
+ Provides-Extra: all
50
+ Requires-Dist: fastapi>=0.100.0; extra == 'all'
51
+ Requires-Dist: langchain-core>=0.1.0; extra == 'all'
52
+ Provides-Extra: dev
53
+ Requires-Dist: fastapi>=0.100.0; extra == 'dev'
54
+ Requires-Dist: httpx; extra == 'dev'
55
+ Requires-Dist: langchain-core>=0.1.0; extra == 'dev'
56
+ Requires-Dist: mypy; extra == 'dev'
57
+ Requires-Dist: pytest; extra == 'dev'
58
+ Requires-Dist: pytest-asyncio; extra == 'dev'
59
+ Requires-Dist: pytest-cov; extra == 'dev'
60
+ Requires-Dist: ruff; extra == 'dev'
61
+ Provides-Extra: fastapi
62
+ Requires-Dist: fastapi>=0.100.0; extra == 'fastapi'
63
+ Provides-Extra: langchain
64
+ Requires-Dist: langchain-core>=0.1.0; extra == 'langchain'
65
+ Description-Content-Type: text/markdown
66
+
67
+ # MermaidTrace: Visualize Your Python Code Logic
68
+
69
+ **Stop drowning in cryptic logs. One line of code to transform complex execution logic into clear Mermaid sequence diagrams.**
70
+
71
+ 🌐 **Language**: [English](README.md) | [中文](README_CN.md)
72
+
73
+ [![CSDN Blog](https://img.shields.io/badge/CSDN-玄同765-orange?style=flat-square&logo=csdn)](https://blog.csdn.net/Yunyi_Chi)
74
+ [![GitHub](https://img.shields.io/badge/GitHub-mermaid--trace-black?style=flat-square&logo=github)](https://github.com/xt765/mermaid-trace)
75
+ [![Gitee](https://img.shields.io/badge/Gitee-mermaid--trace-red?style=flat-square&logo=gitee)](https://gitee.com/xt765/mermaid-trace)
76
+ [![PyPI version](https://img.shields.io/pypi/v/mermaid-trace.svg?style=flat-square&color=blue)](https://pypi.org/project/mermaid-trace/)
77
+ [![Python Versions](https://img.shields.io/pypi/pyversions/mermaid-trace.svg?style=flat-square&color=blue)](https://pypi.org/project/mermaid-trace/)
78
+ [![License](https://img.shields.io/github/license/xt765/mermaid-trace?style=flat-square)](LICENSE)
79
+ [![CI Status](https://img.shields.io/github/actions/workflow/status/xt765/mermaid-trace/ci.yml?style=flat-square&label=CI)](https://github.com/xt765/mermaid-trace/actions/workflows/ci.yml)
80
+ [![Codecov](https://img.shields.io/codecov/c/github/xt765/mermaid-trace?style=flat-square&logo=codecov)](https://codecov.io/gh/xt765/mermaid-trace)
81
+
82
+ ---
83
+
84
+ ## ⚡️ Understand MermaidTrace in 5 Seconds
85
+
86
+ #### 1. Original Code (15+ lines)
87
+ ```python
88
+ @trace(source="User", target="OrderSys")
89
+ def create_order(user_id, items):
90
+ # Complex business logic
91
+ if not check_inventory(items):
92
+ return "Out of Stock"
93
+
94
+ # Nested logic calls
95
+ price = calculate_price(items)
96
+ discount = get_discount(user_id)
97
+ final = price - discount
98
+
99
+ # External service interactions
100
+ res = pay_service.process(final)
101
+ if res.success:
102
+ update_stock(items)
103
+ send_notif(user_id)
104
+ return "Success"
105
+ return "Failed"
106
+ ```
107
+
108
+ #### 2. Auto-Generated Sequence Diagram
109
+ ```mermaid
110
+ sequenceDiagram
111
+ autonumber
112
+ User->>OrderSys: create_order(user_id, items)
113
+ activate OrderSys
114
+ OrderSys->>Inventory: check_inventory(items)
115
+ Inventory-->>OrderSys: True
116
+ OrderSys->>Pricing: calculate_price(items)
117
+ Pricing-->>OrderSys: 100.0
118
+ OrderSys->>UserDB: get_discount(user_id)
119
+ UserDB-->>OrderSys: 5.0
120
+ OrderSys->>PayService: process(95.0)
121
+ activate PayService
122
+ PayService-->>OrderSys: success
123
+ deactivate PayService
124
+ OrderSys->>Inventory: update_stock(items)
125
+ OrderSys->>Notification: send_notif(user_id)
126
+ OrderSys-->>User: "Success"
127
+ deactivate OrderSys
128
+ ```
129
+
130
+ ---
131
+
132
+ ## 🚀 Dynamic Demo & Online Tryout
133
+
134
+ ### 🎬 Quick Demo
135
+
136
+ ![MermaidTrace Master Preview](docs/images/master_preview.png)
137
+
138
+ *(Master Preview: Multi-file browsing, live-reload, and interactive pan/zoom)*
139
+
140
+ ```mermaid
141
+ sequenceDiagram
142
+ participant CLI as mermaid-trace CLI
143
+ participant App as Python App
144
+ participant Web as Live Preview
145
+
146
+ Note over CLI, Web: Enable Live Preview Mode
147
+ CLI->>Web: Start HTTP Server (localhost:8000)
148
+ App->>App: Run Logic (with @trace decorator)
149
+ App->>App: Auto-update flow.mmd
150
+ Web->>Web: File Change Detected (Hot Reload)
151
+ Web-->>CLI: Render Latest Diagram
152
+ ```
153
+ *(From adding decorators to browser live preview in 10 seconds)*
154
+
155
+ ### 🛠️ Try Online (Google Colab)
156
+
157
+ No local setup required. Experience core features in your browser:
158
+
159
+ [![Open In Colab](https://img.shields.io/badge/Colab-Open%20in%20Colab-blue?style=flat&logo=google-colab&logoColor=white)](https://colab.research.google.com/github/xt765/mermaid-trace/blob/main/examples/MermaidTrace_Demo.ipynb)
160
+
161
+ ---
162
+
163
+ ## 🎯 Why MermaidTrace? (Use Cases)
164
+
165
+ ### 1. Master "Legacy" Codebases
166
+ **Pain**: Taking over a complex, undocumented legacy project with tangled function calls.
167
+ **Solution**: Add `@trace_class` or `@trace` to entry points and run the code once.
168
+ **Value**: Instantly generate a complete execution path map to understand the architecture.
169
+
170
+ ### 2. Automated Technical Docs
171
+ **Pain**: Manual sequence diagrams are time-consuming and quickly become outdated.
172
+ **Solution**: Integrate MermaidTrace during development.
173
+ **Value**: Diagrams stay 100% in sync with your code logic automatically.
174
+
175
+ ### 3. Debug Complex Recursion & Concurrency
176
+ **Pain**: Nested calls or async tasks produce interleaved logs that are impossible to read.
177
+ **Solution**: Use built-in async support and intelligent collapsing.
178
+ **Value**: Visualize recursion depth and concurrency flow to pinpoint logic bottlenecks.
179
+
180
+ ---
181
+
182
+ ## 🚀 Quick Start in 3 Steps
183
+
184
+ ### 1. Install
185
+ ```bash
186
+ pip install mermaid-trace
187
+ ```
188
+
189
+ ### 2. Add Decorators
190
+ ```python
191
+ from mermaid_trace import trace, configure_flow
192
+
193
+ # Configure output file
194
+ configure_flow("my_flow.mmd")
195
+
196
+ @trace(source="User", target="AuthService")
197
+ def login(username):
198
+ return verify_db(username)
199
+
200
+ @trace(source="AuthService", target="DB")
201
+ def verify_db(username):
202
+ return True
203
+
204
+ login("admin")
205
+ ```
206
+
207
+ ### 3. View Diagram
208
+
209
+ Run the built-in CLI tool to preview in real-time (with hot-reload):
210
+
211
+ ```bash
212
+ # Basic preview
213
+ mermaid-trace serve my_flow.mmd
214
+
215
+ # Master mode (Directory browsing, zoom, multi-file switching)
216
+ mermaid-trace serve . --master
217
+ # Or preview a specific file in Master mode
218
+ mermaid-trace serve .\mermaid_diagrams\examples\08-log-rotation.mmd --master
219
+ ```
220
+
221
+ ### 🔗 LangChain Integration
222
+ Visualize LLM chains, agents, and RAG retrieval with a single handler:
223
+ ```python
224
+ from mermaid_trace.integrations.langchain import MermaidTraceCallbackHandler
225
+
226
+ handler = MermaidTraceCallbackHandler(host_name="MyAIApp")
227
+ # Pass to any LangChain object
228
+ chain.invoke({"input": "..."}, config={"callbacks": [handler]})
229
+ ```
230
+
231
+ ---
232
+
233
+ ## ✨ Key Features
234
+
235
+ - **Decorator-Driven**: Simply add `@trace` or `@trace_interaction` to functions.
236
+ - **Auto-Instrumentation**: Use `@trace_class` to trace a whole class at once.
237
+ - **Third-Party Patching**: Use `patch_object` to trace calls inside external libraries.
238
+ - **Async Support**: Seamlessly works with `asyncio` coroutines and concurrency.
239
+ - **Enhanced Web UI**: Interactive preview server with file browsing, auto-reload, and pan/zoom support (use `--master`).
240
+ - **Intelligent Collapsing**: Automatically collapses repetitive calls and identifies loops.
241
+ - **FastAPI Integration**: Middleware for zero-config HTTP request tracing.
242
+ - **LangChain Integration**: Callback Handler for LLM chains and agent visualization.
243
+ - **Detailed Exceptions**: Captures full stack traces for errors, displayed in the diagram.
244
+
245
+ ---
246
+
247
+ ## 📚 Documentation
248
+
249
+ ### Core Documentation
250
+
251
+ [User Guide](docs/en/USER_GUIDE.md) · [API Reference](docs/en/API.md) · [Contributing Guidelines](docs/en/CONTRIBUTING.md) · [Changelog](docs/en/CHANGELOG.md) · [License](LICENSE)
252
+
253
+ ### Code Comment Documents
254
+
255
+ | Category | Links |
256
+ | :--- | :--- |
257
+ | **Core Modules** | [Context](docs/en/code_comments/src/mermaid_trace/core/context.md) · [Decorators](docs/en/code_comments/src/mermaid_trace/core/decorators.md) · [Events](docs/en/code_comments/src/mermaid_trace/core/events.md) · [Formatter](docs/en/code_comments/src/mermaid_trace/core/formatter.md) |
258
+ | **Handlers** | [Async Handler](docs/en/code_comments/src/mermaid_trace/handlers/async_handler.md) · [Mermaid Handler](docs/en/code_comments/src/mermaid_trace/handlers/mermaid_handler.md) |
259
+ | **Integrations** | [FastAPI](docs/en/code_comments/src/mermaid_trace/integrations/fastapi.md) |
260
+ | **Others** | [init](docs/en/code_comments/src/mermaid_trace/__init__.md) · [CLI](docs/en/code_comments/src/mermaid_trace/cli.md) |
261
+
262
+ ---
263
+
264
+ ## 🤝 Contributing
265
+
266
+ We welcome contributions! Please see [CONTRIBUTING.md](docs/en/CONTRIBUTING.md) for details.
267
+
268
+ ---
269
+
270
+ ## 📄 License
271
+
272
+ MIT
@@ -0,0 +1,206 @@
1
+ # MermaidTrace: Visualize Your Python Code Logic
2
+
3
+ **Stop drowning in cryptic logs. One line of code to transform complex execution logic into clear Mermaid sequence diagrams.**
4
+
5
+ 🌐 **Language**: [English](README.md) | [中文](README_CN.md)
6
+
7
+ [![CSDN Blog](https://img.shields.io/badge/CSDN-玄同765-orange?style=flat-square&logo=csdn)](https://blog.csdn.net/Yunyi_Chi)
8
+ [![GitHub](https://img.shields.io/badge/GitHub-mermaid--trace-black?style=flat-square&logo=github)](https://github.com/xt765/mermaid-trace)
9
+ [![Gitee](https://img.shields.io/badge/Gitee-mermaid--trace-red?style=flat-square&logo=gitee)](https://gitee.com/xt765/mermaid-trace)
10
+ [![PyPI version](https://img.shields.io/pypi/v/mermaid-trace.svg?style=flat-square&color=blue)](https://pypi.org/project/mermaid-trace/)
11
+ [![Python Versions](https://img.shields.io/pypi/pyversions/mermaid-trace.svg?style=flat-square&color=blue)](https://pypi.org/project/mermaid-trace/)
12
+ [![License](https://img.shields.io/github/license/xt765/mermaid-trace?style=flat-square)](LICENSE)
13
+ [![CI Status](https://img.shields.io/github/actions/workflow/status/xt765/mermaid-trace/ci.yml?style=flat-square&label=CI)](https://github.com/xt765/mermaid-trace/actions/workflows/ci.yml)
14
+ [![Codecov](https://img.shields.io/codecov/c/github/xt765/mermaid-trace?style=flat-square&logo=codecov)](https://codecov.io/gh/xt765/mermaid-trace)
15
+
16
+ ---
17
+
18
+ ## ⚡️ Understand MermaidTrace in 5 Seconds
19
+
20
+ #### 1. Original Code (15+ lines)
21
+ ```python
22
+ @trace(source="User", target="OrderSys")
23
+ def create_order(user_id, items):
24
+ # Complex business logic
25
+ if not check_inventory(items):
26
+ return "Out of Stock"
27
+
28
+ # Nested logic calls
29
+ price = calculate_price(items)
30
+ discount = get_discount(user_id)
31
+ final = price - discount
32
+
33
+ # External service interactions
34
+ res = pay_service.process(final)
35
+ if res.success:
36
+ update_stock(items)
37
+ send_notif(user_id)
38
+ return "Success"
39
+ return "Failed"
40
+ ```
41
+
42
+ #### 2. Auto-Generated Sequence Diagram
43
+ ```mermaid
44
+ sequenceDiagram
45
+ autonumber
46
+ User->>OrderSys: create_order(user_id, items)
47
+ activate OrderSys
48
+ OrderSys->>Inventory: check_inventory(items)
49
+ Inventory-->>OrderSys: True
50
+ OrderSys->>Pricing: calculate_price(items)
51
+ Pricing-->>OrderSys: 100.0
52
+ OrderSys->>UserDB: get_discount(user_id)
53
+ UserDB-->>OrderSys: 5.0
54
+ OrderSys->>PayService: process(95.0)
55
+ activate PayService
56
+ PayService-->>OrderSys: success
57
+ deactivate PayService
58
+ OrderSys->>Inventory: update_stock(items)
59
+ OrderSys->>Notification: send_notif(user_id)
60
+ OrderSys-->>User: "Success"
61
+ deactivate OrderSys
62
+ ```
63
+
64
+ ---
65
+
66
+ ## 🚀 Dynamic Demo & Online Tryout
67
+
68
+ ### 🎬 Quick Demo
69
+
70
+ ![MermaidTrace Master Preview](docs/images/master_preview.png)
71
+
72
+ *(Master Preview: Multi-file browsing, live-reload, and interactive pan/zoom)*
73
+
74
+ ```mermaid
75
+ sequenceDiagram
76
+ participant CLI as mermaid-trace CLI
77
+ participant App as Python App
78
+ participant Web as Live Preview
79
+
80
+ Note over CLI, Web: Enable Live Preview Mode
81
+ CLI->>Web: Start HTTP Server (localhost:8000)
82
+ App->>App: Run Logic (with @trace decorator)
83
+ App->>App: Auto-update flow.mmd
84
+ Web->>Web: File Change Detected (Hot Reload)
85
+ Web-->>CLI: Render Latest Diagram
86
+ ```
87
+ *(From adding decorators to browser live preview in 10 seconds)*
88
+
89
+ ### 🛠️ Try Online (Google Colab)
90
+
91
+ No local setup required. Experience core features in your browser:
92
+
93
+ [![Open In Colab](https://img.shields.io/badge/Colab-Open%20in%20Colab-blue?style=flat&logo=google-colab&logoColor=white)](https://colab.research.google.com/github/xt765/mermaid-trace/blob/main/examples/MermaidTrace_Demo.ipynb)
94
+
95
+ ---
96
+
97
+ ## 🎯 Why MermaidTrace? (Use Cases)
98
+
99
+ ### 1. Master "Legacy" Codebases
100
+ **Pain**: Taking over a complex, undocumented legacy project with tangled function calls.
101
+ **Solution**: Add `@trace_class` or `@trace` to entry points and run the code once.
102
+ **Value**: Instantly generate a complete execution path map to understand the architecture.
103
+
104
+ ### 2. Automated Technical Docs
105
+ **Pain**: Manual sequence diagrams are time-consuming and quickly become outdated.
106
+ **Solution**: Integrate MermaidTrace during development.
107
+ **Value**: Diagrams stay 100% in sync with your code logic automatically.
108
+
109
+ ### 3. Debug Complex Recursion & Concurrency
110
+ **Pain**: Nested calls or async tasks produce interleaved logs that are impossible to read.
111
+ **Solution**: Use built-in async support and intelligent collapsing.
112
+ **Value**: Visualize recursion depth and concurrency flow to pinpoint logic bottlenecks.
113
+
114
+ ---
115
+
116
+ ## 🚀 Quick Start in 3 Steps
117
+
118
+ ### 1. Install
119
+ ```bash
120
+ pip install mermaid-trace
121
+ ```
122
+
123
+ ### 2. Add Decorators
124
+ ```python
125
+ from mermaid_trace import trace, configure_flow
126
+
127
+ # Configure output file
128
+ configure_flow("my_flow.mmd")
129
+
130
+ @trace(source="User", target="AuthService")
131
+ def login(username):
132
+ return verify_db(username)
133
+
134
+ @trace(source="AuthService", target="DB")
135
+ def verify_db(username):
136
+ return True
137
+
138
+ login("admin")
139
+ ```
140
+
141
+ ### 3. View Diagram
142
+
143
+ Run the built-in CLI tool to preview in real-time (with hot-reload):
144
+
145
+ ```bash
146
+ # Basic preview
147
+ mermaid-trace serve my_flow.mmd
148
+
149
+ # Master mode (Directory browsing, zoom, multi-file switching)
150
+ mermaid-trace serve . --master
151
+ # Or preview a specific file in Master mode
152
+ mermaid-trace serve .\mermaid_diagrams\examples\08-log-rotation.mmd --master
153
+ ```
154
+
155
+ ### 🔗 LangChain Integration
156
+ Visualize LLM chains, agents, and RAG retrieval with a single handler:
157
+ ```python
158
+ from mermaid_trace.integrations.langchain import MermaidTraceCallbackHandler
159
+
160
+ handler = MermaidTraceCallbackHandler(host_name="MyAIApp")
161
+ # Pass to any LangChain object
162
+ chain.invoke({"input": "..."}, config={"callbacks": [handler]})
163
+ ```
164
+
165
+ ---
166
+
167
+ ## ✨ Key Features
168
+
169
+ - **Decorator-Driven**: Simply add `@trace` or `@trace_interaction` to functions.
170
+ - **Auto-Instrumentation**: Use `@trace_class` to trace a whole class at once.
171
+ - **Third-Party Patching**: Use `patch_object` to trace calls inside external libraries.
172
+ - **Async Support**: Seamlessly works with `asyncio` coroutines and concurrency.
173
+ - **Enhanced Web UI**: Interactive preview server with file browsing, auto-reload, and pan/zoom support (use `--master`).
174
+ - **Intelligent Collapsing**: Automatically collapses repetitive calls and identifies loops.
175
+ - **FastAPI Integration**: Middleware for zero-config HTTP request tracing.
176
+ - **LangChain Integration**: Callback Handler for LLM chains and agent visualization.
177
+ - **Detailed Exceptions**: Captures full stack traces for errors, displayed in the diagram.
178
+
179
+ ---
180
+
181
+ ## 📚 Documentation
182
+
183
+ ### Core Documentation
184
+
185
+ [User Guide](docs/en/USER_GUIDE.md) · [API Reference](docs/en/API.md) · [Contributing Guidelines](docs/en/CONTRIBUTING.md) · [Changelog](docs/en/CHANGELOG.md) · [License](LICENSE)
186
+
187
+ ### Code Comment Documents
188
+
189
+ | Category | Links |
190
+ | :--- | :--- |
191
+ | **Core Modules** | [Context](docs/en/code_comments/src/mermaid_trace/core/context.md) · [Decorators](docs/en/code_comments/src/mermaid_trace/core/decorators.md) · [Events](docs/en/code_comments/src/mermaid_trace/core/events.md) · [Formatter](docs/en/code_comments/src/mermaid_trace/core/formatter.md) |
192
+ | **Handlers** | [Async Handler](docs/en/code_comments/src/mermaid_trace/handlers/async_handler.md) · [Mermaid Handler](docs/en/code_comments/src/mermaid_trace/handlers/mermaid_handler.md) |
193
+ | **Integrations** | [FastAPI](docs/en/code_comments/src/mermaid_trace/integrations/fastapi.md) |
194
+ | **Others** | [init](docs/en/code_comments/src/mermaid_trace/__init__.md) · [CLI](docs/en/code_comments/src/mermaid_trace/cli.md) |
195
+
196
+ ---
197
+
198
+ ## 🤝 Contributing
199
+
200
+ We welcome contributions! Please see [CONTRIBUTING.md](docs/en/CONTRIBUTING.md) for details.
201
+
202
+ ---
203
+
204
+ ## 📄 License
205
+
206
+ MIT