ttnn-visualizer 0.52.1__py3-none-any.whl → 0.54.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.
@@ -1 +1 @@
1
- import{p as r,I as s,_ as a}from"./index-WayH7MCF.js";const n=async(o,_)=>{const i=r(o);let t;return _===s.STANDARD?t=await a(()=>import("./index-CnPrfHYh.js").then(e=>e.I),[]):t=await a(()=>import("./index-Cnc1EkDo.js").then(e=>e.I),[]),t[i]};export{n as splitPathsBySizeLoader};
1
+ import{p as r,I as s,_ as a}from"./index-eW1dMfMf.js";const n=async(o,_)=>{const i=r(o);let t;return _===s.STANDARD?t=await a(()=>import("./index-CnPrfHYh.js").then(e=>e.I),[]):t=await a(()=>import("./index-Cnc1EkDo.js").then(e=>e.I),[]),t[i]};export{n as splitPathsBySizeLoader};
@@ -34,8 +34,8 @@
34
34
  /* SERVER_CONFIG */
35
35
  </script>
36
36
 
37
- <script type="module" crossorigin src="/static/assets/index-WayH7MCF.js"></script>
38
- <link rel="stylesheet" crossorigin href="/static/assets/index-BxeIYL6g.css">
37
+ <script type="module" crossorigin src="/static/assets/index-eW1dMfMf.js"></script>
38
+ <link rel="stylesheet" crossorigin href="/static/assets/index-DdmYzvVg.css">
39
39
  </head>
40
40
  <body>
41
41
 
ttnn_visualizer/views.py CHANGED
@@ -68,6 +68,7 @@ from ttnn_visualizer.utils import (
68
68
  create_path_resolver,
69
69
  get_cluster_descriptor_path,
70
70
  read_last_synced_file,
71
+ str_to_bool,
71
72
  timer,
72
73
  )
73
74
 
@@ -346,6 +347,7 @@ def get_all_buffers(instance: Instance):
346
347
  def get_operations_buffers(instance: Instance):
347
348
  buffer_type = request.args.get("buffer_type", "")
348
349
  device_id = request.args.get("device_id", None)
350
+
349
351
  if buffer_type and str.isdigit(buffer_type):
350
352
  buffer_type = int(buffer_type)
351
353
  else:
@@ -686,6 +688,8 @@ def get_performance_results_report(instance: Instance):
686
688
  )
687
689
 
688
690
  name = request.args.get("name", None)
691
+ signpost = request.args.get("signpost", None)
692
+ stack_by_in0 = str_to_bool(request.args.get("stack_by_in0", "true"))
689
693
 
690
694
  if name and not current_app.config["SERVER_MODE"]:
691
695
  performance_path = Path(instance.performance_path).parent / name
@@ -693,7 +697,11 @@ def get_performance_results_report(instance: Instance):
693
697
  logger.info(f"************ Performance path set to {instance.performance_path}")
694
698
 
695
699
  try:
696
- report = OpsPerformanceReportQueries.generate_report(instance)
700
+ report = OpsPerformanceReportQueries.generate_report(
701
+ instance,
702
+ stack_by_in0=stack_by_in0,
703
+ signpost=signpost,
704
+ )
697
705
  except DataFormatError:
698
706
  return Response(status=HTTPStatus.UNPROCESSABLE_ENTITY)
699
707
 
@@ -905,7 +913,11 @@ def create_npe_files():
905
913
  data_directory = current_app.config["LOCAL_DATA_DIRECTORY"]
906
914
 
907
915
  for file in files:
908
- if not file.filename.endswith(".json") and not file.filename.endswith(".zst"):
916
+ if (
917
+ not file.filename.endswith(".json")
918
+ and not file.filename.endswith(".zst")
919
+ and not file.filename.endswith(".npeviz")
920
+ ):
909
921
  return StatusMessage(
910
922
  status=ConnectionTestStates.FAILED,
911
923
  message="NPE requires a valid .json or .zst file",
@@ -1276,7 +1288,7 @@ def get_npe_data(instance: Instance):
1276
1288
  if instance.npe_path.endswith(".zst"):
1277
1289
  compressed_path = Path(instance.npe_path)
1278
1290
  uncompressed_path = None
1279
- elif instance.npe_path.endswith(".json"):
1291
+ elif instance.npe_path.endswith(".json") or instance.npe_path.endswith(".npeviz"):
1280
1292
  compressed_path = None
1281
1293
  uncompressed_path = Path(instance.npe_path)
1282
1294
  else:
@@ -1295,16 +1307,15 @@ def get_npe_data(instance: Instance):
1295
1307
  if compressed_path and compressed_path.exists():
1296
1308
  with open(compressed_path, "rb") as file:
1297
1309
  compressed_data = file.read()
1298
- uncompressed_data = zstd.uncompress(compressed_data)
1299
- npe_data = json.loads(uncompressed_data)
1310
+ npe_data = zstd.uncompress(compressed_data)
1300
1311
  else:
1301
1312
  with open(uncompressed_path, "r") as file:
1302
- npe_data = json.load(file)
1303
- except json.JSONDecodeError as e:
1304
- logger.error(f"Invalid JSON in NPE file: {e}")
1313
+ npe_data = file.read()
1314
+ except Exception as e:
1315
+ logger.error(f"Error reading NPE file: {e}")
1305
1316
  return Response(status=HTTPStatus.UNPROCESSABLE_ENTITY)
1306
1317
 
1307
- return Response(orjson.dumps(npe_data), mimetype="application/json")
1318
+ return Response(npe_data, mimetype="application/json")
1308
1319
 
1309
1320
 
1310
1321
  @api.route("/notify", methods=["POST"])
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ttnn_visualizer
3
- Version: 0.52.1
3
+ Version: 0.54.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.1.1
26
+ Requires-Dist: tt-perf-report==1.1.3
27
27
  Requires-Dist: uvicorn==0.30.1
28
28
  Requires-Dist: zstd==1.5.7.0
29
29
  Provides-Extra: dev
@@ -1,6 +1,6 @@
1
1
  ttnn_visualizer/__init__.py,sha256=FCQeTWnXsf-Wx-fay53-lQsm0y5-GcPMUmzhE5upDx0,93
2
- ttnn_visualizer/app.py,sha256=7_jeAjIFhiYGxUriQ8NbztTeilKSLLzyqhM7B0i-qSU,8746
3
- ttnn_visualizer/csv_queries.py,sha256=3SH-h1gndDycl0vyCtu6PYt13D_e1j1BsxtN3x7rMqk,16666
2
+ ttnn_visualizer/app.py,sha256=w5jkzJO6d6SKKrUKnWJlBu3Jw8K-aHCaZ1wsxhlne3o,8793
3
+ ttnn_visualizer/csv_queries.py,sha256=g8nZOOl0yhn6f-8visNsdyynAV0YzG-TARavmkqlFTg,18841
4
4
  ttnn_visualizer/decorators.py,sha256=6xBg2J6kJrwc01fcHepLbFJoUhcEKBL410gfaR8YZuM,5383
5
5
  ttnn_visualizer/enums.py,sha256=SEIqp1tlc_zw2vQ8nHH9YTaV0m3Cb8fjn_goqz5wurE,203
6
6
  ttnn_visualizer/exceptions.py,sha256=KVZzb7YaWbq51DNMKPBcJHwG74RMYj_29WTSYOlXXeU,2096
@@ -10,22 +10,22 @@ ttnn_visualizer/instances.py,sha256=XctQgQXdlwtuXWFXFletRoX1m1lGUZdiW3TwIIjY0uw,
10
10
  ttnn_visualizer/models.py,sha256=-GG86m004fDS7QbKWOojYoucC1D8c84JsWaMf6OI_3Q,7811
11
11
  ttnn_visualizer/pytest_plugin.py,sha256=bEG0cbqH0HUuZT5Ox9tFoexFNTyimBBPpI_jp75b54c,2629
12
12
  ttnn_visualizer/queries.py,sha256=0s2zGA7CH1fbV6BWB-MhdHfWW7GhkDti4gVJyDmeCE8,9607
13
- ttnn_visualizer/serializers.py,sha256=LmjHIrFg8BLx1JKVFh9Nd_TcA7nyy1MwY2BOGnX1MKw,8029
14
- ttnn_visualizer/settings.py,sha256=W0PCeBCGXONNfFHqI7ATCVGhKv0a02-BhwBwrB3Clag,4660
13
+ ttnn_visualizer/serializers.py,sha256=iZ8sMjstBV0uxh-2HTby6iTdztDzRCqJ9tW_7Mag228,8878
14
+ ttnn_visualizer/settings.py,sha256=zs9qWfB83XY-KeEwfeaouKx81eSUjlxxAbIZ3nAj3_g,4719
15
15
  ttnn_visualizer/sftp_operations.py,sha256=9HwbPJPSO1UUQ98d5zeWAkEwR0zFPryUakcI68GqkVw,30181
16
16
  ttnn_visualizer/sockets.py,sha256=_Hdne33r4FrB2tg58Vw87FWLbgQ_ikICVp4o1Mkv2mo,4789
17
17
  ttnn_visualizer/ssh_client.py,sha256=-GS2_1tdlUqVoLfRS02i3_o1fQaM39UQN-jtAnPBmzQ,13511
18
18
  ttnn_visualizer/utils.py,sha256=_W990vRnup9zlWJ-g_Bggyo-wDjCYF49p0nPxWNgxrE,12934
19
- ttnn_visualizer/views.py,sha256=yKXwMLlVfw6frk0TNXBgzu92ilYahVdnVY-2BglHlDE,46521
20
- ttnn_visualizer/static/index.html,sha256=oY0oZewzSJ_UxK8SdZ5kWR00Fvvu7VV2CGTHHXxNG9o,1135
21
- ttnn_visualizer/static/assets/allPaths-DOFQJGIv.js,sha256=-Y27-zl8lr3YUoHkkL2lyrF_CZtTDfR4mQYpMzC3ZHE,255
22
- ttnn_visualizer/static/assets/allPathsLoader-Bca8XiL0.js,sha256=Z1iplVRcuCcpGO_36oJJhlJRs_3b-resgHes0QC6t88,477
23
- ttnn_visualizer/static/assets/index-BxeIYL6g.css,sha256=4nHHCfiI-9eVTeaPVT5DecxA6FtDD_O_MlyWEfsD9AA,624402
19
+ ttnn_visualizer/views.py,sha256=jyLUlzEml9SqXPMbKKR7ARzpG3aM_7dBZZVn339Z6-U,46789
20
+ ttnn_visualizer/static/index.html,sha256=eZZj9YbrVuoMqO3VaVfRttDNorRCrKJRdDi5FbTBsbA,1135
21
+ ttnn_visualizer/static/assets/allPaths-ClJTDoXf.js,sha256=1qQH5fhgEYDsSFAvj3goLoHADSI5uDX_K09CHSsM4Pg,255
22
+ ttnn_visualizer/static/assets/allPathsLoader-DLMimLnJ.js,sha256=JOxkohiCi4fFn1bd0H4Ux7SY1Q-qTudln5ClG2SwGzU,477
24
23
  ttnn_visualizer/static/assets/index-CnPrfHYh.js,sha256=xtrmUrKcMSwTBA7zqXJ6I_L70LzG9DkO-zbC3aWJS8g,289282
25
24
  ttnn_visualizer/static/assets/index-Cnc1EkDo.js,sha256=m-gmIOT0AsJcaW0TVjRpOwSm52Dfp4ZDcrdnIS4qBHA,298140
26
- ttnn_visualizer/static/assets/index-WayH7MCF.js,sha256=I154V85sTeZtnsPb-1DYOjVGo4fVOP3Y8vmXQAwHuzk,7900030
25
+ ttnn_visualizer/static/assets/index-DdmYzvVg.css,sha256=6O1dEDXvtKHruk-Z4MU1fVgRmjvLdoO3N75QlkHvpSs,626029
26
+ ttnn_visualizer/static/assets/index-eW1dMfMf.js,sha256=uKjoPiuIDjb8ZvG_DfrSXnjpIBvsCG2uIpN7DelaHOY,7903284
27
27
  ttnn_visualizer/static/assets/site-BTBrvHC5.webmanifest,sha256=Uy_XmnGuYFVf-OZuma2NvgEPdrCrevb3HZvaxSIHoA0,456
28
- ttnn_visualizer/static/assets/splitPathsBySizeLoader-BwHoJMaV.js,sha256=hnC3fe5W6owxE7pwJahXSQ5iRugvJaokxG4gyHMqP04,281
28
+ ttnn_visualizer/static/assets/splitPathsBySizeLoader-DjzfvTVt.js,sha256=PaKg0d8Ct0t2PpuDe6rCi7pePIQAwKh0z4zDNCNuEKM,281
29
29
  ttnn_visualizer/static/favicon/android-chrome-192x192.png,sha256=BZWA09Zxaa3fXbaeS6nhWo2e-DUSjm9ElzNQ_xTB5XU,6220
30
30
  ttnn_visualizer/static/favicon/android-chrome-512x512.png,sha256=HBiJSZyguB3o8fMJuqIGcpeBy_9JOdImme3wD02UYCw,62626
31
31
  ttnn_visualizer/static/favicon/favicon-32x32.png,sha256=Zw201qUsczQv1UvoQvJf5smQ2ss10xaTeWxmQNYCGtY,480
@@ -34,10 +34,10 @@ ttnn_visualizer/static/sample-data/cluster-desc.yaml,sha256=LMxOmsRUXtVVU5ogzYkX
34
34
  ttnn_visualizer/tests/__init__.py,sha256=FCQeTWnXsf-Wx-fay53-lQsm0y5-GcPMUmzhE5upDx0,93
35
35
  ttnn_visualizer/tests/test_queries.py,sha256=HqaDXwudZpXiigJdHkdJP8oiUc-PtHASbpLnQQpbD7A,13792
36
36
  ttnn_visualizer/tests/test_serializers.py,sha256=IJekAZRBpyOr_Ffp0dqSrnhFOU_ZZ8pHma_JO0j23TQ,18762
37
- ttnn_visualizer-0.52.1.dist-info/licenses/LICENSE,sha256=bapl7NysYmv8aYSVxr5qFDya0vCqppyjkyyNJYosBdc,20044
38
- ttnn_visualizer-0.52.1.dist-info/licenses/LICENSE_understanding.txt,sha256=pymi-yb_RvYM9p2ZA4iSNsImcvhDBBxlGuJCY9dTq7M,233
39
- ttnn_visualizer-0.52.1.dist-info/METADATA,sha256=XhXD0jh1liEgU9mpYeA9BNFYTws9bQfWr7a8L39fxbY,7780
40
- ttnn_visualizer-0.52.1.dist-info/WHEEL,sha256=lTU6B6eIfYoiQJTZNc-fyaR6BpL6ehTzU3xGYxn2n8k,91
41
- ttnn_visualizer-0.52.1.dist-info/entry_points.txt,sha256=QpuUpkmQ_mEHJTMqOBdU0MH2Z4WF_9iFsGACeyyAO1E,61
42
- ttnn_visualizer-0.52.1.dist-info/top_level.txt,sha256=M1EGkvDOuIfbhDbcUdz2-TSdmCtDoQ2Uyag9k5JLDSY,16
43
- ttnn_visualizer-0.52.1.dist-info/RECORD,,
37
+ ttnn_visualizer-0.54.0.dist-info/licenses/LICENSE,sha256=bapl7NysYmv8aYSVxr5qFDya0vCqppyjkyyNJYosBdc,20044
38
+ ttnn_visualizer-0.54.0.dist-info/licenses/LICENSE_understanding.txt,sha256=pymi-yb_RvYM9p2ZA4iSNsImcvhDBBxlGuJCY9dTq7M,233
39
+ ttnn_visualizer-0.54.0.dist-info/METADATA,sha256=kxsWbE8m8KdUzbJfqiaV_seTTavqy8zujiXGNj0l9CQ,7780
40
+ ttnn_visualizer-0.54.0.dist-info/WHEEL,sha256=lTU6B6eIfYoiQJTZNc-fyaR6BpL6ehTzU3xGYxn2n8k,91
41
+ ttnn_visualizer-0.54.0.dist-info/entry_points.txt,sha256=QpuUpkmQ_mEHJTMqOBdU0MH2Z4WF_9iFsGACeyyAO1E,61
42
+ ttnn_visualizer-0.54.0.dist-info/top_level.txt,sha256=M1EGkvDOuIfbhDbcUdz2-TSdmCtDoQ2Uyag9k5JLDSY,16
43
+ ttnn_visualizer-0.54.0.dist-info/RECORD,,
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/allPaths-DOFQJGIv.js","assets/index-CnPrfHYh.js","assets/index-Cnc1EkDo.js","assets/index-WayH7MCF.js","assets/index-BxeIYL6g.css"])))=>i.map(i=>d[i]);
2
- import{_ as e}from"./index-WayH7MCF.js";const s=async(t,a)=>{const{getIconPaths:o}=await e(async()=>{const{getIconPaths:r}=await import("./allPaths-DOFQJGIv.js");return{getIconPaths:r}},__vite__mapDeps([0,1,2,3,4]));return o(t,a)};export{s as allPathsLoader};