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.
- mermaid_trace-0.6.0.post0/PKG-INFO +272 -0
- mermaid_trace-0.6.0.post0/README.md +206 -0
- mermaid_trace-0.6.0.post0/README_CN.md +216 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/en/API.md +23 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/en/CHANGELOG.md +13 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/en/USER_GUIDE.md +52 -0
- mermaid_trace-0.6.0.post0/docs/en/code_comments/src/mermaid_trace/__init__.md +167 -0
- mermaid_trace-0.6.0.post0/docs/en/code_comments/src/mermaid_trace/cli.md +111 -0
- mermaid_trace-0.6.0.post0/docs/en/code_comments/src/mermaid_trace/core/__init__.md +100 -0
- mermaid_trace-0.6.0.post0/docs/en/code_comments/src/mermaid_trace/core/config.md +135 -0
- mermaid_trace-0.6.0.post0/docs/en/code_comments/src/mermaid_trace/core/context.md +180 -0
- mermaid_trace-0.6.0.post0/docs/en/code_comments/src/mermaid_trace/core/decorators.md +488 -0
- mermaid_trace-0.6.0.post0/docs/en/code_comments/src/mermaid_trace/core/events.md +97 -0
- mermaid_trace-0.6.0.post0/docs/en/code_comments/src/mermaid_trace/core/formatter.md +211 -0
- mermaid_trace-0.6.0.post0/docs/en/code_comments/src/mermaid_trace/core/utils.md +191 -0
- mermaid_trace-0.6.0.post0/docs/en/code_comments/src/mermaid_trace/handlers/async_handler.md +223 -0
- mermaid_trace-0.6.0.post0/docs/en/code_comments/src/mermaid_trace/handlers/mermaid_handler.md +251 -0
- mermaid_trace-0.6.0.post0/docs/en/code_comments/src/mermaid_trace/integrations/__init__.md +54 -0
- mermaid_trace-0.6.0.post0/docs/en/code_comments/src/mermaid_trace/integrations/fastapi.md +229 -0
- mermaid_trace-0.6.0.post0/docs/en/code_comments/src/mermaid_trace/integrations/langchain.md +387 -0
- mermaid_trace-0.6.0.post0/docs/en/code_comments/src/mermaid_trace/server.md +84 -0
- mermaid_trace-0.6.0.post0/docs/images/master_preview.png +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/API.md +23 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/CHANGELOG.md +13 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/UPDATE_LOG.md +52 -0
- mermaid_trace-0.6.0.post0/docs/zh/UPDATE_SUMMARY.md +21 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/USER_GUIDE.md +52 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/code_comments/src/mermaid_trace/cli.md +16 -8
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/code_comments/src/mermaid_trace/integrations/__init__.md +21 -0
- mermaid_trace-0.6.0.post0/docs/zh/code_comments/src/mermaid_trace/integrations/langchain.md +344 -0
- mermaid_trace-0.6.0.post0/docs/zh/code_comments/src/mermaid_trace/server.md +84 -0
- mermaid_trace-0.6.0.post0/examples/09_langchain_integration.py +91 -0
- mermaid_trace-0.6.0.post0/examples/MermaidTrace_Demo.ipynb +285 -0
- mermaid_trace-0.6.0.post0/examples/MermaidTrace_Demo_CN.ipynb +285 -0
- mermaid_trace-0.6.0.post0/examples/mermaid_diagrams/basic_demo.mmd +13 -0
- mermaid_trace-0.6.0.post0/mermaid_diagrams/comparison_demo.mmd +16 -0
- mermaid_trace-0.6.0.post0/mermaid_diagrams/examples/langchain_trace.mmd +16 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/tests/core/config_override/dummy.mmd +3 -3
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/pyproject.toml +8 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/src/mermaid_trace/cli.py +30 -2
- mermaid_trace-0.6.0.post0/src/mermaid_trace/integrations/__init__.py +9 -0
- mermaid_trace-0.6.0.post0/src/mermaid_trace/integrations/langchain.py +312 -0
- mermaid_trace-0.6.0.post0/src/mermaid_trace/server.py +406 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/core/test_cli.py +8 -1
- mermaid_trace-0.6.0.post0/tests/integrations/test_langchain.py +171 -0
- mermaid_trace-0.5.3.post0/PKG-INFO +0 -232
- mermaid_trace-0.5.3.post0/README.md +0 -170
- mermaid_trace-0.5.3.post0/README_CN.md +0 -172
- mermaid_trace-0.5.3.post0/docs/zh/UPDATE_SUMMARY.md +0 -22
- mermaid_trace-0.5.3.post0/src/mermaid_trace/integrations/__init__.py +0 -4
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/.github/workflows/ci.yml +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/.github/workflows/release.yml +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/.gitignore +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/LICENSE +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/SECURITY.md +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/en/CONTRIBUTING.md +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/en/LICENSE +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/CONTRIBUTING.md +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/LICENSE +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/code_comments/src/mermaid_trace/__init__.md +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/code_comments/src/mermaid_trace/core/__init__.md +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/code_comments/src/mermaid_trace/core/config.md +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/code_comments/src/mermaid_trace/core/context.md +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/code_comments/src/mermaid_trace/core/decorators.md +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/code_comments/src/mermaid_trace/core/events.md +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/code_comments/src/mermaid_trace/core/formatter.md +0 -0
- {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
- {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
- {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
- {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
- {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
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/code_comments/src/mermaid_trace/core/utils.md +0 -0
- {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
- {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
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/docs/zh/code_comments/src/mermaid_trace/integrations/fastapi.md +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/examples/01_basic_usage.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/examples/02_advanced_instrumentation.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/examples/03_async_concurrency.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/examples/04_error_handling.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/examples/05_intelligent_collapsing.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/examples/06_fastapi_integration.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/examples/07_full_stack_app.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/examples/08-log-rotation.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/examples/README.md +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/examples/08-log-rotation.mmd +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/examples/08-log-rotation.mmd.1 +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/examples/08-log-rotation.mmd.2 +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/examples/08-log-rotation.mmd.3 +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/examples/08-log-rotation.mmd.4 +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/examples/08-log-rotation.mmd.5 +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/examples/async_flow.mmd +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/examples/basic_flow.mmd +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/examples/collapsed_flow.mmd +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/examples/error_handling.mmd +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/examples/fastapi_trace.mmd +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/examples/full_stack_app.mmd +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/examples/instrumentation_demo.mmd +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/tests/handlers/handlers/append.mmd +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/tests/handlers/handlers/async_flow.mmd +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/tests/handlers/handlers/delay.mmd +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/tests/handlers/handlers/flush_flow.mmd +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/tests/handlers/handlers/test_flow.mmd +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/tests/integrations/integration_fastapi/api_flow.mmd +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/tests/overwrite_logic/test_overwrite_default.mmd +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/tests/overwrite_logic/test_overwrite_false.mmd +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/tests/scenarios/basic_flow/basic_flow.mmd +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/tests/scenarios/concurrency/concurrency.mmd +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/tests/scenarios/concurrency/trace_ids.mmd +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/tests/scenarios/edge_cases/edge.mmd +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/tests/scenarios/performance/bench_False.mmd +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/tests/scenarios/performance/bench_True.mmd +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/mermaid_diagrams/tests/scenarios/performance/overhead.mmd +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/src/mermaid_trace/__init__.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/src/mermaid_trace/core/__init__.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/src/mermaid_trace/core/config.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/src/mermaid_trace/core/context.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/src/mermaid_trace/core/decorators.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/src/mermaid_trace/core/events.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/src/mermaid_trace/core/formatter.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/src/mermaid_trace/core/utils.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/src/mermaid_trace/handlers/async_handler.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/src/mermaid_trace/handlers/mermaid_handler.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/src/mermaid_trace/integrations/fastapi.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/src/mermaid_trace/py.typed +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/test.db +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/__init__.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/conftest.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/core/__init__.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/core/test_cli_coverage.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/core/test_config_coverage.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/core/test_config_override.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/core/test_context.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/core/test_context_extra.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/core/test_decorators_coverage.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/core/test_decorators_extra.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/core/test_events.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/core/test_formatter.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/core/test_formatter_coverage.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/core/test_formatter_extra.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/core/test_utils.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/core/test_utils_coverage.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/handlers/test_async_handler_coverage.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/handlers/test_handlers.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/handlers/test_mermaid_handler_coverage.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/integrations/test_fastapi_coverage.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/integrations/test_integration_decorators.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/integrations/test_integration_fastapi.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/scenarios/test_basic_flow.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/scenarios/test_concurrency.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/scenarios/test_edge_cases.py +0 -0
- {mermaid_trace-0.5.3.post0 → mermaid_trace-0.6.0.post0}/tests/scenarios/test_performance.py +0 -0
- {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
|
+
[](https://blog.csdn.net/Yunyi_Chi)
|
|
74
|
+
[](https://github.com/xt765/mermaid-trace)
|
|
75
|
+
[](https://gitee.com/xt765/mermaid-trace)
|
|
76
|
+
[](https://pypi.org/project/mermaid-trace/)
|
|
77
|
+
[](https://pypi.org/project/mermaid-trace/)
|
|
78
|
+
[](LICENSE)
|
|
79
|
+
[](https://github.com/xt765/mermaid-trace/actions/workflows/ci.yml)
|
|
80
|
+
[](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
|
+

|
|
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
|
+
[](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
|
+
[](https://blog.csdn.net/Yunyi_Chi)
|
|
8
|
+
[](https://github.com/xt765/mermaid-trace)
|
|
9
|
+
[](https://gitee.com/xt765/mermaid-trace)
|
|
10
|
+
[](https://pypi.org/project/mermaid-trace/)
|
|
11
|
+
[](https://pypi.org/project/mermaid-trace/)
|
|
12
|
+
[](LICENSE)
|
|
13
|
+
[](https://github.com/xt765/mermaid-trace/actions/workflows/ci.yml)
|
|
14
|
+
[](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
|
+

|
|
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
|
+
[](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
|