ttnn-visualizer 0.49.0__py3-none-any.whl → 0.64.0__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.
Files changed (36) hide show
  1. ttnn_visualizer/app.py +151 -49
  2. ttnn_visualizer/csv_queries.py +154 -45
  3. ttnn_visualizer/decorators.py +0 -9
  4. ttnn_visualizer/exceptions.py +0 -7
  5. ttnn_visualizer/models.py +20 -1
  6. ttnn_visualizer/queries.py +8 -0
  7. ttnn_visualizer/serializers.py +53 -9
  8. ttnn_visualizer/settings.py +24 -10
  9. ttnn_visualizer/ssh_client.py +1 -4
  10. ttnn_visualizer/static/assets/allPaths-DWjqav_8.js +1 -0
  11. ttnn_visualizer/static/assets/allPathsLoader-B0eRT9aL.js +2 -0
  12. ttnn_visualizer/static/assets/index-BE2R-cuu.css +1 -0
  13. ttnn_visualizer/static/assets/index-BZITDwoa.js +1 -0
  14. ttnn_visualizer/static/assets/{index-DVrPLQJ7.js → index-DDrUX09k.js} +274 -479
  15. ttnn_visualizer/static/assets/index-voJy5fZe.js +1 -0
  16. ttnn_visualizer/static/assets/splitPathsBySizeLoader-_GpmIkFm.js +1 -0
  17. ttnn_visualizer/static/index.html +2 -2
  18. ttnn_visualizer/tests/test_serializers.py +2 -0
  19. ttnn_visualizer/tests/test_utils.py +362 -0
  20. ttnn_visualizer/utils.py +142 -0
  21. ttnn_visualizer/views.py +181 -87
  22. {ttnn_visualizer-0.49.0.dist-info → ttnn_visualizer-0.64.0.dist-info}/METADATA +58 -30
  23. ttnn_visualizer-0.64.0.dist-info/RECORD +44 -0
  24. {ttnn_visualizer-0.49.0.dist-info → ttnn_visualizer-0.64.0.dist-info}/licenses/LICENSE +6 -0
  25. ttnn_visualizer/remote_sqlite_setup.py +0 -100
  26. ttnn_visualizer/static/assets/allPaths-G_CNx_x1.js +0 -1
  27. ttnn_visualizer/static/assets/allPathsLoader-s_Yfmxfp.js +0 -2
  28. ttnn_visualizer/static/assets/index-CnPrfHYh.js +0 -1
  29. ttnn_visualizer/static/assets/index-Cnc1EkDo.js +0 -1
  30. ttnn_visualizer/static/assets/index-UuXdrHif.css +0 -7
  31. ttnn_visualizer/static/assets/splitPathsBySizeLoader-ivxxaHxa.js +0 -1
  32. ttnn_visualizer-0.49.0.dist-info/RECORD +0 -44
  33. {ttnn_visualizer-0.49.0.dist-info → ttnn_visualizer-0.64.0.dist-info}/WHEEL +0 -0
  34. {ttnn_visualizer-0.49.0.dist-info → ttnn_visualizer-0.64.0.dist-info}/entry_points.txt +0 -0
  35. {ttnn_visualizer-0.49.0.dist-info → ttnn_visualizer-0.64.0.dist-info}/licenses/LICENSE_understanding.txt +0 -0
  36. {ttnn_visualizer-0.49.0.dist-info → ttnn_visualizer-0.64.0.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ttnn_visualizer
3
- Version: 0.49.0
3
+ Version: 0.64.0
4
4
  Summary: TT-NN Visualizer
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Classifier: License :: OSI Approved :: MIT License
@@ -23,7 +23,7 @@ Requires-Dist: pydantic_core==2.27.1
23
23
  Requires-Dist: pydantic==2.10.3
24
24
  Requires-Dist: python-dotenv==1.0.1
25
25
  Requires-Dist: PyYAML==6.0.2
26
- Requires-Dist: tt-perf-report==1.0.7
26
+ Requires-Dist: tt-perf-report==1.1.11
27
27
  Requires-Dist: uvicorn==0.30.1
28
28
  Requires-Dist: zstd==1.5.7.0
29
29
  Provides-Extra: dev
@@ -32,6 +32,13 @@ Requires-Dist: isort==6.0.1; extra == "dev"
32
32
  Requires-Dist: mypy; extra == "dev"
33
33
  Requires-Dist: playwright==1.48.0; extra == "dev"
34
34
  Requires-Dist: pytest==8.4.1; extra == "dev"
35
+ Provides-Extra: docs
36
+ Requires-Dist: myst_parser==4.0.1; extra == "docs"
37
+ Requires-Dist: nbsphinx==0.9.7; extra == "docs"
38
+ Requires-Dist: sphinx_rtd_theme==3.0.2; extra == "docs"
39
+ Requires-Dist: sphinx_sitemap==2.9.0; extra == "docs"
40
+ Requires-Dist: sphinx==8.1.3; extra == "docs"
41
+ Requires-Dist: sphinxcontrib.email==0.3.6; extra == "docs"
35
42
  Dynamic: license-file
36
43
 
37
44
 
@@ -51,7 +58,7 @@ A tool for visualizing the Tenstorrent Neural Network model (TT-NN)
51
58
 
52
59
  <h2>
53
60
 
54
- [Buy Hardware](https://tenstorrent.com/cards/) | [Install TT-NN](https://github.com/tenstorrent/tt-metal/blob/main/INSTALLING.md) | [Discord](https://discord.gg/tvhGzHQwaj) | [Join Us](https://boards.greenhouse.io/tenstorrent/jobs/4155609007)
61
+ [Buy Hardware](https://tenstorrent.com/cards/) | [Install TT-NN](https://docs.tenstorrent.com/tt-metal/latest/ttnn/ttnn/installing.html) | [Discord](https://discord.gg/tvhGzHQwaj) | [Join Us](https://boards.greenhouse.io/tenstorrent/jobs/4155609007)
55
62
 
56
63
  </h2>
57
64
 
@@ -67,27 +74,52 @@ After installation run `ttnn-visualizer` to start the application.
67
74
 
68
75
  It is recommended to do this within a virtual environment. The minimum Python version is **3.10**.
69
76
 
70
- Please see the [getting started](https://github.com/tenstorrent/ttnn-visualizer/blob/main/docs/getting-started.md) guide for further information on getting up and running with TT-NN Visualizer.
77
+ Please see the [install guide](https://docs.tenstorrent.com/ttnn-visualizer/src/installing.html) guide for further information on getting up and running with TT-NN Visualizer.
71
78
 
72
- If you want to test out TT-NN Visualizer you can try some of the [sample data](https://github.com/tenstorrent/ttnn-visualizer/tree/main?tab=readme-ov-file#sample-reports). See [loading data](https://github.com/tenstorrent/ttnn-visualizer/blob/main/docs/getting-started.md#loading-data) for instructions on how to use this.
79
+ If you want to test out TT-NN Visualizer you can try some of the [sample data](https://github.com/tenstorrent/ttnn-visualizer/tree/main?tab=readme-ov-file#sample-reports). See [loading data](https://docs.tenstorrent.com/ttnn-visualizer/src/installing.html#loading-data) for instructions on how to use this.
73
80
 
74
81
  ## Features
75
82
 
76
83
  For the latest updates and features, please see [releases](https://github.com/tenstorrent/ttnn-visualizer/releases).
77
84
 
78
- - Comprehensive list of all operations in the model
79
- - Interactive graph visualization of operations
80
- - Detailed and interactive L1, DRAM, and circular buffer memory plots
81
- - Filterable list of tensor details
82
- - Overview of all buffers for the entire model run
83
- - Visualization of input and output tensors with core tiling and sharding details
84
- - Visualize inputs/outputs per tensor or tensor allocation across each core
85
- - Detailed insights into L1 peak memory consumption, with an interactive graph of allocation over time
86
- - Navigate a tree of device operations with associated buffers and circular buffers
87
- - Operation flow graph for a holistic view of model execution
88
- - Load reports via the local file system or through an SSH connection
89
- - Supports multiple instances of the application running concurrently
90
- - BETA: Network-on-chip performance estimator (NPE) for Tenstorrent Tensix-based devices
85
+ ### Reports
86
+ - Upload reports from the local file system or sync remotely via SSH
87
+ - Switch seamlessly between previously uploaded or synced reports
88
+ - Run multiple instances of the application concurrently with different data
89
+ - Set data ranges for both memory and performance traces
90
+ - Display physical topology and configuration of Tenstorrent chip clusters
91
+
92
+ ### Operations
93
+ - Filterable list of all operations in the model
94
+ - Interactive memory and tensor visualizations, including per core allocations, memory layout, allocation over time
95
+ - Input/output tensors details per operation including allocation details per core
96
+ - Navigable device operation tree with associated buffers and circular buffers
97
+
98
+ ### Tensors
99
+ - List of tensor details filterable by buffer type
100
+ - Flagging of high consumer or late deallocated tensors
101
+
102
+ ### Buffers
103
+ - Visual overview of all buffers for the entire model run by L1 or DRAM memory
104
+ - Toggle additional overlays such as memory layouts or late deallocated tensors
105
+ - Ease of navigation to the relevant operation
106
+ - Track a specific buffer in the data across the application
107
+ - Filterable table view for a more schematic look at buffers
108
+
109
+ ### Graph
110
+ - Interactive model graph view showing all operations and connecting tensors
111
+ - Filter out deallocated operations
112
+ - Find all operations by name
113
+
114
+ ### Performance
115
+ - Integration with tt-perf-report and rendering of performance analysis
116
+ - Interactive charts and tables
117
+ - Multiple filtering options of performance data
118
+ - Compare multiple performance traces
119
+
120
+ ### NPE
121
+ - Network-on-chip performance estimator (NPE) for Tenstorrent Tensix-based devices
122
+ - Dedicated NPE visualizations: zones, transfers, congestion, timelines with elaborate filtering capability
91
123
 
92
124
  ### Demo
93
125
 
@@ -97,32 +129,31 @@ https://github.com/user-attachments/assets/4e51a636-c6d6-46df-bf34-a06bca13c0b3
97
129
 
98
130
  | L1 Summary with Tensor highlight | Operation inputs and outputs |
99
131
  |-----------------------------------------------|------------------------------------------|
100
- | <img width="400" alt="L1 Summary with Tensor highlight" src="https://github.com/user-attachments/assets/6679e3ab-3819-4037-bf63-15aac0f8b625" /> | <img width="400" alt="Operation inputs and outputs" src="https://github.com/user-attachments/assets/7b0bf6da-d6e5-4b8d-b2cd-457181ac6b99" /> |
132
+ | <img width="400" alt="L1 Summary with Tensor highlight" src="https://github.com/user-attachments/assets/7c6a3558-1084-492b-ac0b-f5f910487c8f" /> | <img width="400" alt="Operation inputs and outputs" src="https://github.com/user-attachments/assets/48197e65-4831-4005-9da8-99574c47d5c7" /> |
101
133
 
102
134
  | Device operations with memory consumption | DRAM memory allocation |
103
135
  |-----------------------------------------------|------------------------------------------|
104
- | <img width="400" alt="Device operations with memory consumption" src="https://github.com/user-attachments/assets/46f51cde-86ec-4251-8f41-261b5e14e1b7" />| <img width="400" alt="DRAM memory allocations" src="https://github.com/user-attachments/assets/588dbb57-3964-48f8-aa0d-bafc614706d3" /> |
136
+ | <img width="400" alt="Device operations with memory consumption" src="https://github.com/user-attachments/assets/4b8cefb9-fd75-4291-9e64-ab2f2c866c51" />| <img width="400" alt="DRAM memory allocations" src="https://github.com/user-attachments/assets/a9ad8b1d-200c-4c10-b1d8-5d76900c688c" /> |
105
137
 
106
138
  | Operation graph view | Model buffer summary |
107
139
  |-----------------------------------------------|------------------------------------------|
108
- | <img width="400" alt="Operation graph view" src="https://github.com/user-attachments/assets/a77b099e-9caa-4758-8dee-8b30cad4dad8" /> | <img width="400" alt="Model buffer summary" src="https://github.com/user-attachments/assets/90a4c0e6-58cb-4031-b224-a91f3beadc51" /> |
140
+ | <img width="400" alt="Operation graph view" src="https://github.com/user-attachments/assets/422f1591-4232-4d16-a783-726960261443" /> | <img width="400" alt="Model buffer summary" src="https://github.com/user-attachments/assets/9afa48b2-628d-4dad-ac89-42fda762aee6" /> |
109
141
 
110
142
  | Per core allocation details | Per core allocation details for individual tensors |
111
143
  |-----------------------------------------------|------------------------------------------|
112
- | <img width="400" alt="Per core allocation details" src="https://github.com/user-attachments/assets/0d4a833a-d9b6-4239-a953-42c0b84d4f80" /> | <img width="400" alt="Per core allocation details for individual tensor" src="https://github.com/user-attachments/assets/06b69fbb-c6fc-45fe-9360-36722e68bee5" /> |
144
+ | <img width="400" alt="Per core allocation details" src="https://github.com/user-attachments/assets/681c8d0e-c628-4839-afca-f31ff9d53f73" /> | <img width="400" alt="Per core allocation details for individual tensor" src="https://github.com/user-attachments/assets/a9d66f2d-2457-4ced-b777-6e8f0c54eb86" /> |
113
145
 
114
146
  | Tensor details list | Performance report |
115
147
  |-----------------------------------------------|------------------------------------------|
116
- | <img width="400" alt="Tensor details list" src="https://github.com/user-attachments/assets/919da94e-45f9-432e-9eb4-c584b4140663" /> | <img width="400" alt="Performnance analysis" src="https://github.com/user-attachments/assets/468b0acb-733e-4891-8e16-781c47889017" /> |
148
+ | <img width="400" alt="Tensor details list" src="https://github.com/user-attachments/assets/315089ff-ae75-4615-87b9-19c45431871c" /> | <img width="400" alt="Performnance analysis" src="https://github.com/user-attachments/assets/468b0acb-733e-4891-8e16-781c47889017" /> |
117
149
 
118
150
  | Performance charts | |
119
151
  |-----------------------------------------------|------------------------------------------|
120
- | <img width="400" alt="Performance charts" src="https://github.com/user-attachments/assets/23e6b1d0-2def-490a-8921-3477ded2c8ce" /> | <img width="400" alt="Performance charts" src="https://github.com/user-attachments/assets/ee620711-10be-4582-ab6f-635c896a1101" /> |
152
+ | <img width="400" alt="Performance charts" src="https://github.com/user-attachments/assets/19f6bd6f-8f48-48dd-b9ee-726b1a1e40e3" /> | <img width="400" alt="Performance charts" src="https://github.com/user-attachments/assets/bc6ae03b-f143-4ee5-9f14-834ddf8b0cde" /> |
121
153
 
122
154
  | NPE | |
123
155
  |-----------------------------------------------|------------------------------------------|
124
- | <img width="400" alt="NPE" src="https://github.com/user-attachments/assets/5a25a79c-0fcc-4298-aaae-8e8656b99ab5" /> | <img width="400" alt="NPE" src="https://github.com/user-attachments/assets/b2845948-02fa-4255-81f4-fc3257a282da" />
125
-
156
+ | <img width="400" alt="NPE" src="https://github.com/user-attachments/assets/5f45c1bf-565d-4003-b3b7-0ddd90cbdeca" /> | <img width="400" alt="NPE" src="https://github.com/user-attachments/assets/8a3e9a09-4c86-45a6-9916-52fba16debc6" />
126
157
 
127
158
  ## Sample reports
128
159
 
@@ -147,9 +178,6 @@ Unzip the files into their own directories and select them with the local folder
147
178
  **T3K synthetic**
148
179
  [synthetic_t3k_small.json.zip](https://github.com/user-attachments/files/20491459/synthetic_t3k_small.json.zip)
149
180
 
150
-
151
-
152
-
153
181
  ## Contributing
154
182
 
155
- How to run [TT-NN Visualizer](https://github.com/tenstorrent/ttnn-visualizer/blob/main/docs/contributing.md) from source.
183
+ How to run [TT-NN Visualizer](https://docs.tenstorrent.com/ttnn-visualizer/src/running-from-source.html) from source.
@@ -0,0 +1,44 @@
1
+ ttnn_visualizer/__init__.py,sha256=FCQeTWnXsf-Wx-fay53-lQsm0y5-GcPMUmzhE5upDx0,93
2
+ ttnn_visualizer/app.py,sha256=M7kXzWjfMekaIfskFwa0YtKSFJIj5C7mqe1N-cda8TU,12565
3
+ ttnn_visualizer/csv_queries.py,sha256=hcgxk53SXhiTq1B-6yEKNvDbOG5MJAv1ARWxxT3t_cU,19596
4
+ ttnn_visualizer/decorators.py,sha256=6xBg2J6kJrwc01fcHepLbFJoUhcEKBL410gfaR8YZuM,5383
5
+ ttnn_visualizer/enums.py,sha256=SEIqp1tlc_zw2vQ8nHH9YTaV0m3Cb8fjn_goqz5wurE,203
6
+ ttnn_visualizer/exceptions.py,sha256=KVZzb7YaWbq51DNMKPBcJHwG74RMYj_29WTSYOlXXeU,2096
7
+ ttnn_visualizer/extensions.py,sha256=6OIRJ8-_ccfjOaXSruRXiS29jEbxp4Pyk-0JlD8IHBQ,379
8
+ ttnn_visualizer/file_uploads.py,sha256=HFcC6TBt5I0oBkiKgM2Qw1W7hpixE8TOTACS5N-rmGE,5013
9
+ ttnn_visualizer/instances.py,sha256=XctQgQXdlwtuXWFXFletRoX1m1lGUZdiW3TwIIjY0uw,11564
10
+ ttnn_visualizer/models.py,sha256=udECbVuxseZ2n6wkLCJnBxMOYq10mbHkQXmhLIECaxk,8376
11
+ ttnn_visualizer/pytest_plugin.py,sha256=bEG0cbqH0HUuZT5Ox9tFoexFNTyimBBPpI_jp75b54c,2629
12
+ ttnn_visualizer/queries.py,sha256=j9PYYwzJBKJF32Fa-hyV00cPApw1_Xr_y6MpqFGBI3k,9867
13
+ ttnn_visualizer/serializers.py,sha256=mKxcDu9g4gAxHB6wP_1l5VJvIBmnYDIJTikiaMYXupg,9374
14
+ ttnn_visualizer/settings.py,sha256=FvfSqzuXEOLDH3i_mXZODHjYQEJBE6V_mPQcqz6P6zA,5168
15
+ ttnn_visualizer/sftp_operations.py,sha256=9HwbPJPSO1UUQ98d5zeWAkEwR0zFPryUakcI68GqkVw,30181
16
+ ttnn_visualizer/sockets.py,sha256=_Hdne33r4FrB2tg58Vw87FWLbgQ_ikICVp4o1Mkv2mo,4789
17
+ ttnn_visualizer/ssh_client.py,sha256=x-BUUnsaKGReuOrSpHdcIaoH6RdGiQQYWx2_pOkGzJ0,13410
18
+ ttnn_visualizer/utils.py,sha256=rYQuPXdIYj5O2_U9_rqoPkU7croyXcAomdr6sOYHmgA,18291
19
+ ttnn_visualizer/views.py,sha256=hHrsVdRWWq-FxDUk2QaJhAPgOtda_zqwE_330hEP59k,48348
20
+ ttnn_visualizer/static/index.html,sha256=79w5Up5r86chLQba68cIDWCyqRLIoxvujia-HO75Ovc,1135
21
+ ttnn_visualizer/static/assets/allPaths-DWjqav_8.js,sha256=3X0scflty02C4E1O25OygkYwtV751bwpy-zyINWUYLE,255
22
+ ttnn_visualizer/static/assets/allPathsLoader-B0eRT9aL.js,sha256=3DaduTOIYjrZ14Yzqs4tR6QXJYglQpBzXYqnNy_Ilok,477
23
+ ttnn_visualizer/static/assets/index-BE2R-cuu.css,sha256=sRIyVGj6fHjhBZALw7r25cstDfth2d5HIWG1oEp0C4A,630398
24
+ ttnn_visualizer/static/assets/index-BZITDwoa.js,sha256=ax1pY3gjtvqTUiQSBZ6ZN9M6P9VJ4-eXzZ-C9F46Ozg,303183
25
+ ttnn_visualizer/static/assets/index-DDrUX09k.js,sha256=TytlYsQKKFPSwA2vvhNYixWWs3x8H3Q-SkoUTjnQybY,7919047
26
+ ttnn_visualizer/static/assets/index-voJy5fZe.js,sha256=4MEkPCpdjZkMgT0Kmxfdh5DCtJWMf-TAVQ3rc28BtEQ,293910
27
+ ttnn_visualizer/static/assets/site-BTBrvHC5.webmanifest,sha256=Uy_XmnGuYFVf-OZuma2NvgEPdrCrevb3HZvaxSIHoA0,456
28
+ ttnn_visualizer/static/assets/splitPathsBySizeLoader-_GpmIkFm.js,sha256=Zv8b0FWYGHtAUSg5OyUNLD80xS7Ok2-vtahHMrZ37lI,281
29
+ ttnn_visualizer/static/favicon/android-chrome-192x192.png,sha256=BZWA09Zxaa3fXbaeS6nhWo2e-DUSjm9ElzNQ_xTB5XU,6220
30
+ ttnn_visualizer/static/favicon/android-chrome-512x512.png,sha256=HBiJSZyguB3o8fMJuqIGcpeBy_9JOdImme3wD02UYCw,62626
31
+ ttnn_visualizer/static/favicon/favicon-32x32.png,sha256=Zw201qUsczQv1UvoQvJf5smQ2ss10xaTeWxmQNYCGtY,480
32
+ ttnn_visualizer/static/favicon/favicon.svg,sha256=wDPY3VrekJ_DE1TnJ2vUy602K3S4Xe9TgrdZ7jXK9c8,633
33
+ ttnn_visualizer/static/sample-data/cluster-desc.yaml,sha256=LMxOmsRUXtVVU5ogzYkXUozB3dg2IzqIRJQpV_O5qMU,29618
34
+ ttnn_visualizer/tests/__init__.py,sha256=FCQeTWnXsf-Wx-fay53-lQsm0y5-GcPMUmzhE5upDx0,93
35
+ ttnn_visualizer/tests/test_queries.py,sha256=HqaDXwudZpXiigJdHkdJP8oiUc-PtHASbpLnQQpbD7A,13792
36
+ ttnn_visualizer/tests/test_serializers.py,sha256=xwWaiH-uQN-yiEkOScCsF-JEmQliQ62eKTURijdDPBo,18820
37
+ ttnn_visualizer/tests/test_utils.py,sha256=9vUuCNg1mwhtB5RZKdJf-vo0lt9M5niHwkSezFwmklk,11186
38
+ ttnn_visualizer-0.64.0.dist-info/licenses/LICENSE,sha256=VHSLFZL7Jyfvyrl2flFqBgHbBK9AiL_qy0ApbEbE8vc,20459
39
+ ttnn_visualizer-0.64.0.dist-info/licenses/LICENSE_understanding.txt,sha256=pymi-yb_RvYM9p2ZA4iSNsImcvhDBBxlGuJCY9dTq7M,233
40
+ ttnn_visualizer-0.64.0.dist-info/METADATA,sha256=iniwDgKX4ruuTML_MB0CoX8aa0FDME1FTZBfTPoEErQ,8912
41
+ ttnn_visualizer-0.64.0.dist-info/WHEEL,sha256=lTU6B6eIfYoiQJTZNc-fyaR6BpL6ehTzU3xGYxn2n8k,91
42
+ ttnn_visualizer-0.64.0.dist-info/entry_points.txt,sha256=QpuUpkmQ_mEHJTMqOBdU0MH2Z4WF_9iFsGACeyyAO1E,61
43
+ ttnn_visualizer-0.64.0.dist-info/top_level.txt,sha256=M1EGkvDOuIfbhDbcUdz2-TSdmCtDoQ2Uyag9k5JLDSY,16
44
+ ttnn_visualizer-0.64.0.dist-info/RECORD,,
@@ -166,6 +166,8 @@ The following separate and independent dependencies are utilized by this project
166
166
  - gunicorn - MIT - https://github.com/benoitc/gunicorn/blob/master/LICENSE
167
167
  - isort - MIT - https://github.com/PyCQA/isort/blob/main/LICENSE
168
168
  - mypy - MIT - https://github.com/python/mypy/blob/master/LICENSE
169
+ - myst_parser - MIT - https://github.com/executablebooks/MyST-Parser
170
+ - nbsphinx - MIT - https://github.com/spatialaudio/nbsphinx/
169
171
  - orjson - Dual-license Apache-2.0 or MIT - https://github.com/ijl/orjson/blob/master/LICENSE-APACHE and https://github.com/ijl/orjson/blob/master/LICENSE-MIT
170
172
  - pandas - BSD‑3‑Clause - https://github.com/pandas-dev/pandas/blob/main/LICENSE
171
173
  - playwright - Apache-2.0 - https://github.com/microsoft/playwright-python/blob/main/LICENSE
@@ -176,6 +178,10 @@ The following separate and independent dependencies are utilized by this project
176
178
  - python-dotenv - BSD‑3‑Clause - https://github.com/theskumar/python-dotenv/blob/main/LICENSE
177
179
  - PyYAML - MIT - https://github.com/yaml/pyyaml/blob/main/LICENSE
178
180
  - setuptools - MIT - https://github.com/pypa/setuptools/blob/main/LICENSE
181
+ - sphinx - BSD-2-Clause - https://github.com/sphinx-doc/sphinx
182
+ - sphinx_rtd_theme - MIT - https://github.com/readthedocs/sphinx_rtd_theme
183
+ - sphinx_sitemap - MIT - https://github.com/jdillard/sphinx-sitemap
184
+ - sphinxcontrib.email - BSD-3-Clause - https://github.com/sphinx-contrib/email
179
185
  - tt-perf-report - MIT - https://opensource.org/license/mit
180
186
  - uvicorn - BSD‑3‑Clause - https://github.com/encode/uvicorn/blob/master/LICENSE.md
181
187
  - wheel - MIT - https://opensource.org/license/mit
@@ -1,100 +0,0 @@
1
- # SPDX-License-Identifier: Apache-2.0
2
- #
3
- # SPDX-FileCopyrightText: © 2025 Tenstorrent AI ULC
4
-
5
- import re
6
-
7
- from ttnn_visualizer.decorators import remote_exception_handler
8
- from ttnn_visualizer.enums import ConnectionTestStates
9
- from ttnn_visualizer.exceptions import RemoteSqliteException, SSHException
10
- from ttnn_visualizer.models import RemoteConnection
11
- from ttnn_visualizer.ssh_client import SSHClient
12
-
13
- MINIMUM_SQLITE_VERSION = "3.38.0"
14
-
15
-
16
- def _execute_ssh_command(remote_connection: RemoteConnection, command: str) -> str:
17
- """Execute an SSH command and return the output."""
18
- ssh_client = SSHClient(remote_connection)
19
- try:
20
- return ssh_client.execute_command(command, timeout=30)
21
- except SSHException as e:
22
- raise RemoteSqliteException(
23
- message=str(e),
24
- status=ConnectionTestStates.FAILED,
25
- )
26
-
27
-
28
- def find_sqlite_binary(connection):
29
- """Check if SQLite is installed on the remote machine and return its path."""
30
- try:
31
- output = _execute_ssh_command(connection, "which sqlite3")
32
- binary_path = output.strip()
33
- if binary_path:
34
- print(f"SQLite binary found at: {binary_path}")
35
- return binary_path
36
- return None
37
- except RemoteSqliteException:
38
- # Re-raise RemoteSqliteException as-is
39
- raise
40
- except Exception as e:
41
- raise RemoteSqliteException(
42
- message=f"Error finding SQLite binary: {str(e)}",
43
- status=ConnectionTestStates.FAILED,
44
- )
45
-
46
-
47
- def is_sqlite_executable(remote_connection: RemoteConnection, binary_path):
48
- """Check if the SQLite binary is executable by trying to run it."""
49
- try:
50
- output = _execute_ssh_command(remote_connection, f"{binary_path} --version")
51
- version_output = output.strip()
52
-
53
- version = get_sqlite_version(version_output)
54
- if not is_version_at_least(version, MINIMUM_SQLITE_VERSION):
55
- raise Exception(
56
- f"SQLite version {version} is below the required minimum of {MINIMUM_SQLITE_VERSION}."
57
- )
58
-
59
- print(f"SQLite binary at {binary_path} is executable. Version: {version}")
60
- return True
61
-
62
- except RemoteSqliteException:
63
- # Re-raise RemoteSqliteException as-is
64
- raise
65
- except Exception as e:
66
- raise Exception(f"Error checking SQLite executability: {str(e)}")
67
-
68
-
69
- def get_sqlite_version(version_output):
70
- """Extract and return the SQLite version number from the output."""
71
- match = re.search(r"(\d+\.\d+\.\d+)", version_output)
72
- if match:
73
- return match.group(1)
74
- else:
75
- raise ValueError("Could not parse SQLite version from output.")
76
-
77
-
78
- def is_version_at_least(version, minimum_version):
79
- """Check if the provided version is at least the minimum version."""
80
- version_parts = [int(v) for v in version.split(".")]
81
- minimum_parts = [int(v) for v in minimum_version.split(".")]
82
-
83
- return version_parts >= minimum_parts
84
-
85
-
86
- @remote_exception_handler
87
- def check_sqlite_path(remote_connection: RemoteConnection):
88
- try:
89
- is_sqlite_executable(remote_connection, remote_connection.sqliteBinaryPath)
90
- except Exception as e:
91
- raise RemoteSqliteException(message=str(e), status=ConnectionTestStates.FAILED)
92
-
93
-
94
- def get_sqlite_path(connection: RemoteConnection):
95
- try:
96
- path = find_sqlite_binary(connection)
97
- if path:
98
- return path
99
- except Exception as e:
100
- raise RemoteSqliteException(message=str(e), status=ConnectionTestStates.FAILED)
@@ -1 +0,0 @@
1
- import{I as s}from"./index-CnPrfHYh.js";import{I as r}from"./index-Cnc1EkDo.js";import{p as n,I as c}from"./index-DVrPLQJ7.js";function p(t,a){const o=n(t);return a===c.STANDARD?s[o]:r[o]}export{s as IconSvgPaths16,r as IconSvgPaths20,p as getIconPaths};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/allPaths-G_CNx_x1.js","assets/index-CnPrfHYh.js","assets/index-Cnc1EkDo.js","assets/index-DVrPLQJ7.js","assets/index-UuXdrHif.css"])))=>i.map(i=>d[i]);
2
- import{_ as e}from"./index-DVrPLQJ7.js";const s=async(t,a)=>{const{getIconPaths:o}=await e(async()=>{const{getIconPaths:r}=await import("./allPaths-G_CNx_x1.js");return{getIconPaths:r}},__vite__mapDeps([0,1,2,3,4]));return o(t,a)};export{s as allPathsLoader};