ttnn-visualizer 0.26.0__py3-none-any.whl → 0.27.1__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{_ as o,a as _,b as i,p as c,I as u}from"./index-rIoXC5rS.js";var p=function(n,s){return o(void 0,void 0,void 0,function(){var a,r;return _(this,function(e){switch(e.label){case 0:return a=c(n),s!==u.STANDARD?[3,2]:[4,i(()=>import("./index-BVMreIQm.js").then(t=>t.I),[])];case 1:return r=e.sent(),[3,4];case 2:return[4,i(()=>import("./index-Do7YB6C4.js").then(t=>t.I),[])];case 3:r=e.sent(),e.label=4;case 4:return[2,r[a]]}})})};export{p as splitPathsBySizeLoader};
1
+ import{_ as o,a as _,b as i,p as c,I as u}from"./index-BVO5CCjN.js";var p=function(n,s){return o(void 0,void 0,void 0,function(){var a,r;return _(this,function(e){switch(e.label){case 0:return a=c(n),s!==u.STANDARD?[3,2]:[4,i(()=>import("./index-BVMreIQm.js").then(t=>t.I),[])];case 1:return r=e.sent(),[3,4];case 2:return[4,i(()=>import("./index-Do7YB6C4.js").then(t=>t.I),[])];case 3:r=e.sent(),e.label=4;case 4:return[2,r[a]]}})})};export{p as splitPathsBySizeLoader};
@@ -27,8 +27,8 @@
27
27
  name="theme-color"
28
28
  content="#33333d"
29
29
  />
30
- <script type="module" crossorigin src="/assets/index-rIoXC5rS.js"></script>
31
- <link rel="stylesheet" crossorigin href="/assets/index-S-_ELv4m.css">
30
+ <script type="module" crossorigin src="/assets/index-BVO5CCjN.js"></script>
31
+ <link rel="stylesheet" crossorigin href="/assets/index-BTfoVg9a.css">
32
32
  </head>
33
33
  <body>
34
34
  <div id="root"></div>
ttnn_visualizer/views.py CHANGED
@@ -29,7 +29,7 @@ from ttnn_visualizer.models import (
29
29
  RemoteReportFolder,
30
30
  RemoteConnection,
31
31
  StatusMessage,
32
- TabSession,
32
+ Instance,
33
33
  )
34
34
  from ttnn_visualizer.queries import DatabaseQueries
35
35
  from ttnn_visualizer.remote_sqlite_setup import get_sqlite_path, check_sqlite_path
@@ -43,7 +43,7 @@ from ttnn_visualizer.serializers import (
43
43
  serialize_devices,
44
44
  )
45
45
  from ttnn_visualizer.sessions import (
46
- update_tab_session,
46
+ update_instance,
47
47
  )
48
48
  from ttnn_visualizer.sftp_operations import (
49
49
  sync_remote_folders,
@@ -176,7 +176,7 @@ def operation_detail(operation_id, session):
176
176
  )
177
177
  @with_session
178
178
  @timer
179
- def operation_history(session: TabSession):
179
+ def operation_history(session: Instance):
180
180
  operation_history_filename = "operation_history.json"
181
181
  if session.remote_connection and session.remote_connection.useRemoteQuerying:
182
182
  if not session.remote_folder:
@@ -203,7 +203,7 @@ def operation_history(session: TabSession):
203
203
  @api.route("/config")
204
204
  @with_session
205
205
  @timer
206
- def get_config(session: TabSession):
206
+ def get_config(session: Instance):
207
207
  if session.remote_connection and session.remote_connection.useRemoteQuerying:
208
208
  if not session.remote_folder:
209
209
  return {}
@@ -225,7 +225,7 @@ def get_config(session: TabSession):
225
225
  @api.route("/tensors", methods=["GET"])
226
226
  @with_session
227
227
  @timer
228
- def tensors_list(session: TabSession):
228
+ def tensors_list(session: Instance):
229
229
  with DatabaseQueries(session) as db:
230
230
  device_id = request.args.get("device_id", None)
231
231
  tensors = list(db.query_tensors(filters={"device_id": device_id}))
@@ -240,7 +240,7 @@ def tensors_list(session: TabSession):
240
240
  @api.route("/buffer", methods=["GET"])
241
241
  @with_session
242
242
  @timer
243
- def buffer_detail(session: TabSession):
243
+ def buffer_detail(session: Instance):
244
244
  address = request.args.get("address")
245
245
  operation_id = request.args.get("operation_id")
246
246
 
@@ -262,7 +262,7 @@ def buffer_detail(session: TabSession):
262
262
  @api.route("/buffer-pages", methods=["GET"])
263
263
  @with_session
264
264
  @timer
265
- def buffer_pages(session: TabSession):
265
+ def buffer_pages(session: Instance):
266
266
  address = request.args.get("address")
267
267
  operation_id = request.args.get("operation_id")
268
268
  buffer_type = request.args.get("buffer_type", "")
@@ -297,7 +297,7 @@ def buffer_pages(session: TabSession):
297
297
  @api.route("/tensors/<tensor_id>", methods=["GET"])
298
298
  @with_session
299
299
  @timer
300
- def tensor_detail(tensor_id, session: TabSession):
300
+ def tensor_detail(tensor_id, session: Instance):
301
301
  with DatabaseQueries(session) as db:
302
302
  tensors = list(db.query_tensors(filters={"tensor_id": tensor_id}))
303
303
  if not tensors:
@@ -308,7 +308,7 @@ def tensor_detail(tensor_id, session: TabSession):
308
308
 
309
309
  @api.route("/operation-buffers", methods=["GET"])
310
310
  @with_session
311
- def get_operations_buffers(session: TabSession):
311
+ def get_operations_buffers(session: Instance):
312
312
  buffer_type = request.args.get("buffer_type", "")
313
313
  device_id = request.args.get("device_id", None)
314
314
  if buffer_type and str.isdigit(buffer_type):
@@ -328,7 +328,7 @@ def get_operations_buffers(session: TabSession):
328
328
 
329
329
  @api.route("/operation-buffers/<operation_id>", methods=["GET"])
330
330
  @with_session
331
- def get_operation_buffers(operation_id, session: TabSession):
331
+ def get_operation_buffers(operation_id, session: Instance):
332
332
  buffer_type = request.args.get("buffer_type", "")
333
333
  device_id = request.args.get("device_id", None)
334
334
  if buffer_type and str.isdigit(buffer_type):
@@ -357,7 +357,7 @@ def get_operation_buffers(operation_id, session: TabSession):
357
357
 
358
358
  @api.route("/profiler/device-log", methods=["GET"])
359
359
  @with_session
360
- def get_profiler_data(session: TabSession):
360
+ def get_profiler_data(session: Instance):
361
361
  if not session.profiler_path:
362
362
  return Response(status=HTTPStatus.NOT_FOUND)
363
363
  with DeviceLogProfilerQueries(session) as csv:
@@ -367,7 +367,7 @@ def get_profiler_data(session: TabSession):
367
367
 
368
368
  @api.route("/profiler/perf-results", methods=["GET"])
369
369
  @with_session
370
- def get_profiler_performance_data(session: TabSession):
370
+ def get_profiler_performance_data(session: Instance):
371
371
  if not session.profiler_path:
372
372
  return Response(status=HTTPStatus.NOT_FOUND)
373
373
  with OpsPerformanceQueries(session) as csv:
@@ -378,7 +378,7 @@ def get_profiler_performance_data(session: TabSession):
378
378
 
379
379
  @api.route("/profiler/perf-results/raw", methods=["GET"])
380
380
  @with_session
381
- def get_profiler_perf_results_data_raw(session: TabSession):
381
+ def get_profiler_perf_results_data_raw(session: Instance):
382
382
  if not session.profiler_path:
383
383
  return Response(status=HTTPStatus.NOT_FOUND)
384
384
  content = OpsPerformanceQueries.get_raw_csv(session)
@@ -391,7 +391,7 @@ def get_profiler_perf_results_data_raw(session: TabSession):
391
391
 
392
392
  @api.route("/profiler/perf-results/report", methods=["GET"])
393
393
  @with_session
394
- def get_profiler_perf_results_report(session: TabSession):
394
+ def get_profiler_perf_results_report(session: Instance):
395
395
  if not session.profiler_path:
396
396
  return Response(status=HTTPStatus.NOT_FOUND)
397
397
 
@@ -405,7 +405,7 @@ def get_profiler_perf_results_report(session: TabSession):
405
405
 
406
406
  @api.route("/profiler/device-log/raw", methods=["GET"])
407
407
  @with_session
408
- def get_profiler_data_raw(session: TabSession):
408
+ def get_profiler_data_raw(session: Instance):
409
409
  if not session.profiler_path:
410
410
  return Response(status=HTTPStatus.NOT_FOUND)
411
411
  content = DeviceLogProfilerQueries.get_raw_csv(session)
@@ -418,7 +418,7 @@ def get_profiler_data_raw(session: TabSession):
418
418
 
419
419
  @api.route("/profiler/device-log/zone/<zone>", methods=["GET"])
420
420
  @with_session
421
- def get_zone_statistics(zone, session: TabSession):
421
+ def get_zone_statistics(zone, session: Instance):
422
422
  if not session.profiler_path:
423
423
  return Response(status=HTTPStatus.NOT_FOUND)
424
424
  with DeviceLogProfilerQueries(session) as csv:
@@ -428,7 +428,7 @@ def get_zone_statistics(zone, session: TabSession):
428
428
 
429
429
  @api.route("/devices", methods=["GET"])
430
430
  @with_session
431
- def get_devices(session: TabSession):
431
+ def get_devices(session: Instance):
432
432
  with DatabaseQueries(session) as db:
433
433
  devices = list(db.query_devices())
434
434
  return serialize_devices(devices)
@@ -450,8 +450,8 @@ def create_report_files():
450
450
 
451
451
  save_uploaded_files(files, report_directory, report_name)
452
452
 
453
- tab_id = request.args.get("tabId")
454
- update_tab_session(tab_id=tab_id, report_name=report_name, clear_remote=True)
453
+ instance_id = request.args.get("instanceId")
454
+ update_instance(instance_id=instance_id, report_name=report_name, clear_remote=True)
455
455
 
456
456
  return StatusMessage(
457
457
  status=ConnectionTestStates.OK, message="Success."
@@ -461,7 +461,7 @@ def create_report_files():
461
461
  def create_profile_files():
462
462
  files = request.files.getlist("files")
463
463
  report_directory = Path(current_app.config["LOCAL_DATA_DIRECTORY"])
464
- tab_id = request.args.get("tabId")
464
+ instance_id = request.args.get("instanceId")
465
465
 
466
466
  if not validate_files(
467
467
  files,
@@ -498,8 +498,8 @@ def create_profile_files():
498
498
  str(report_directory),
499
499
  )
500
500
 
501
- update_tab_session(
502
- tab_id=tab_id, profile_name=profiler_folder_name, clear_remote=True
501
+ update_instance(
502
+ instance_id=instance_id, profile_name=profiler_folder_name, clear_remote=True
503
503
  )
504
504
 
505
505
  return StatusMessage(
@@ -525,8 +525,8 @@ def create_npe_files():
525
525
 
526
526
  save_uploaded_files(files, target_directory, npe_name)
527
527
 
528
- tab_id = request.args.get("tabId")
529
- update_tab_session(tab_id=tab_id, npe_name=npe_name, clear_remote=True)
528
+ instance_id = request.args.get("instanceId")
529
+ update_instance(instance_id=instance_id, npe_name=npe_name, clear_remote=True)
530
530
 
531
531
  return StatusMessage(
532
532
  status=ConnectionTestStates.OK, message="Success"
@@ -595,7 +595,7 @@ import yaml
595
595
 
596
596
  @api.route("/cluster_desc", methods=["GET"])
597
597
  @with_session
598
- def get_cluster_description_file(session: TabSession):
598
+ def get_cluster_description_file(session: Instance):
599
599
  if not session.remote_connection:
600
600
  return jsonify({"error": "Remote connection not found"}), 404
601
601
 
@@ -695,7 +695,7 @@ def sync_remote_folder():
695
695
 
696
696
  folder = request_body.get("folder")
697
697
  profile = request_body.get("profile", None)
698
- tab_id = request.args.get("tabId", None)
698
+ instance_id = request.args.get("instanceId", None)
699
699
  connection = RemoteConnection.model_validate(
700
700
  request_body.get("connection"), strict=False
701
701
  )
@@ -708,7 +708,7 @@ def sync_remote_folder():
708
708
  remote_dir,
709
709
  profile=profile_folder,
710
710
  exclude_patterns=[r"/tensors(/|$)"],
711
- sid=tab_id,
711
+ sid=instance_id,
712
712
  )
713
713
 
714
714
  profile_folder.lastSynced = int(time.time())
@@ -726,7 +726,7 @@ def sync_remote_folder():
726
726
  remote_folder.remotePath,
727
727
  remote_dir,
728
728
  exclude_patterns=[r"/tensors(/|$)"],
729
- sid=tab_id,
729
+ sid=instance_id,
730
730
  )
731
731
 
732
732
  remote_folder.lastSynced = int(time.time())
@@ -792,11 +792,11 @@ def use_remote_folder():
792
792
 
793
793
  remote_path = f"{Path(report_data_directory).name}/{connection.host}/{connection_directory.name}"
794
794
 
795
- tab_id = request.args.get("tabId")
796
- current_app.logger.info(f"Setting active report for {tab_id} - {remote_path}")
795
+ instance_id = request.args.get("instanceId")
796
+ current_app.logger.info(f"Setting active report for {instance_id} - {remote_path}")
797
797
 
798
- update_tab_session(
799
- tab_id=tab_id,
798
+ update_instance(
799
+ instance_id=instance_id,
800
800
  report_name=report_folder,
801
801
  profile_name=profile_name,
802
802
  remote_connection=connection,
@@ -814,14 +814,14 @@ def health_check():
814
814
 
815
815
  @api.route("/session", methods=["GET"])
816
816
  @with_session
817
- def get_tab_session(session: TabSession):
817
+ def get_instance(session: Instance):
818
818
  # Used to gate UI functions if no report is active
819
819
  return session.model_dump()
820
820
 
821
821
  @api.route("/npe", methods=["GET"])
822
822
  @with_session
823
823
  @timer
824
- def get_npe_data(session: TabSession):
824
+ def get_npe_data(session: Instance):
825
825
  if not session.npe_path:
826
826
  logger.error("NPE path is not set in the session.")
827
827
  return Response(status=HTTPStatus.NOT_FOUND)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ttnn_visualizer
3
- Version: 0.26.0
3
+ Version: 0.27.1
4
4
  Summary: TT Visualizer
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Classifier: License :: OSI Approved :: MIT License
@@ -1,34 +1,34 @@
1
1
  ttnn_visualizer/__init__.py,sha256=qn9AwfHTxYYK0Icz-q2Q41Xo9ET6oc6anZzgh02PhK4,94
2
- ttnn_visualizer/app.py,sha256=wpNtTizfgKg5hp-pQm0LaRQ1OW2aFy2kYBb5xxRms2M,5186
3
- ttnn_visualizer/csv_queries.py,sha256=MH4ViAhwCSEGPWIrQ5HH0lFjiPLwFRzxLSX9g1oP5ak,20891
4
- ttnn_visualizer/decorators.py,sha256=XKGByL3_CUwuoU93CcRaFFT8VOK3N6X5UOgK0umy6_A,4218
2
+ ttnn_visualizer/app.py,sha256=vTcZ6DfTVXpTQCwHTlrQuIK1_WHhDpKGBSv69ZeVosY,6279
3
+ ttnn_visualizer/csv_queries.py,sha256=AqyyxTU4ZvbNiZNBWepsBWa8709z2H-J1DFEGaM7ywE,21451
4
+ ttnn_visualizer/decorators.py,sha256=zfvDqeUkzeFJq0RApByl1utdv2EAh-ij4YBqheBknsU,4252
5
5
  ttnn_visualizer/enums.py,sha256=XTWZGvPFtKmIhPXGCbbzi6bxFgRpLrAZGrrR5YvGYjY,203
6
- ttnn_visualizer/exceptions.py,sha256=iATY-bfcSQL1Af4aLSN2d0fLD5NcS19NKwoB3JyLp4A,960
6
+ ttnn_visualizer/exceptions.py,sha256=tl3WvS_6mVCFixN_elFUeypV51trVuKVcM36D2svEbE,1055
7
7
  ttnn_visualizer/extensions.py,sha256=jovwo_j9toJVuXDVq4iPpXJMRXPpzSliNpE1TOJMDHI,380
8
8
  ttnn_visualizer/file_uploads.py,sha256=s7gKQVpc2j1qFKY_AOYr9yoISjjUer5FjvsZyQZ_1P0,2603
9
- ttnn_visualizer/models.py,sha256=6vvg5YRoAXzH6ikhm7Ixz7QGVM8Xb7sIULNI4hzqLso,7551
10
- ttnn_visualizer/queries.py,sha256=eQTRrdGlfKdKuZuNQXM6Awn3w4mkDhynzxf1JHyZiDg,13626
9
+ ttnn_visualizer/models.py,sha256=fsokoPLzjTLlaaG0gi5xzRWBhuCmvUOgeQFMpc1ocPc,7585
10
+ ttnn_visualizer/queries.py,sha256=oifyj_ROmQwUkQCFO1SteuphaoZbROcnizG1ix-1r3U,13616
11
11
  ttnn_visualizer/remote_sqlite_setup.py,sha256=Zd7U7q_N92rD0P2qb1GIXuZjhV4LXqfq7Bhg0MTLS5k,3269
12
12
  ttnn_visualizer/requirements.txt,sha256=LiycuPs-Oh8PZ1qM6v1KlUPQG86nQyQFz_x7dU8DSpA,370
13
13
  ttnn_visualizer/serializers.py,sha256=smY3CgbqaAXsovoYZ-A9fgPXih5lUS2HD_3aIZMcFS4,7821
14
- ttnn_visualizer/sessions.py,sha256=8cGQAbT4QSU7ISdZzLWevXVrtSuU7NBR0-7i9HszQlo,7510
14
+ ttnn_visualizer/sessions.py,sha256=PI_FXY-b0jRWutQVv4DOonPa30MemXU-hhRHfcIUe5E,8863
15
15
  ttnn_visualizer/settings.py,sha256=kC0mBNrZDq1S7RPeRGnPcGZxGuM515A1upsWRrKl5k8,3841
16
16
  ttnn_visualizer/sftp_operations.py,sha256=RrzCGo__2sQ2g4r90qlyFBEq4v6ooX2ntJ7VDKuynC0,17659
17
- ttnn_visualizer/sockets.py,sha256=gpLZiZFpmHz_bfNkrYOU_op4-tQrT0YNYDKk77jrgow,3509
17
+ ttnn_visualizer/sockets.py,sha256=o0oTG26LCjTJL8ajHR28ZBp9Z8RfWDehaS8Orns1HoQ,3624
18
18
  ttnn_visualizer/ssh_client.py,sha256=KRLuIk6wxrZZQUQKfC8QWMhXGJQvfKKeyxLThgRX6ak,2679
19
19
  ttnn_visualizer/utils.py,sha256=zD8_B7Dd8sgOQF52LNQ5HrLxuvfZg-YnxLrZOpuA5Lw,6372
20
- ttnn_visualizer/views.py,sha256=TMEXEW9lKllj9ChijDgemimpDKeX05lMpmE-Ur8rcXA,27937
20
+ ttnn_visualizer/views.py,sha256=nYpWsXnBG6yQEoBYcQk-nrdDFUIsYiYoV8ibSw1h960,27986
21
21
  ttnn_visualizer/bin/docker-entrypoint-web,sha256=uuv6aubpMCfOcuvDBxwBDITE8PN39teuwyJ2zA5KWuw,413
22
22
  ttnn_visualizer/bin/pip3-install,sha256=nbSRT4GfJQIQ9KTNO3j-6b5WM4lrx9XA4GBlAURRMws,502
23
- ttnn_visualizer/static/index.html,sha256=n0ShdWmvCjykVewExEJfjJGYUVrSYd8iNdl54J2IBeg,923
24
- ttnn_visualizer/static/assets/allPaths-egCeGMYd.js,sha256=aMH3_-EDUZs3p6ePGb_M8OFzseBibgVui_RI3rOW0VU,309
25
- ttnn_visualizer/static/assets/allPathsLoader-ChZ_kotC.js,sha256=Gqj32OtKMw46dZSJk0idTcCy5vo6cvpSj4ExxMfv6nw,550
23
+ ttnn_visualizer/static/index.html,sha256=-xKtWkEXDvLNuFbx-caVzW9cauQ7wbEIJ6TDoZ60d-M,923
24
+ ttnn_visualizer/static/assets/allPaths-C0lxNW4g.js,sha256=NqK57TUArz2zO0c-N-FvXOZD94vniXH5S6CLFtwYEzQ,309
25
+ ttnn_visualizer/static/assets/allPathsLoader-DNFRLKF6.js,sha256=uOYpPucTlxRpiUtyFPcz0A3RIqk1SCu2dYOUTVe0GM0,550
26
+ ttnn_visualizer/static/assets/index-BTfoVg9a.css,sha256=3Ft7KsW9G6k2DYkHJvRwadGpYzSjTPVBAetC0r5xnVQ,615889
26
27
  ttnn_visualizer/static/assets/index-BVMreIQm.js,sha256=QJTBb4VVCMoLPYsWdru3heJX1VtMJQYJGx-tq8gZNTw,280965
28
+ ttnn_visualizer/static/assets/index-BVO5CCjN.js,sha256=7igIcb9WW473cQCRs7RFOkBlPiiddGAnrVn_gna6qh8,6985407
27
29
  ttnn_visualizer/static/assets/index-Do7YB6C4.js,sha256=10jCIy7zph8mPB2htGfhXJBV7LO2FFrGhfz7xoQyh00,289378
28
- ttnn_visualizer/static/assets/index-S-_ELv4m.css,sha256=kxiQqeXqJGktQJBJoh-Tz9Nl8LBscsNrDzyUIlwDsYc,615142
29
- ttnn_visualizer/static/assets/index-rIoXC5rS.js,sha256=f5GLHBcuD9P2x4TNwE_kaIj6TWgSCIyvNesqZ11tMFA,6983612
30
30
  ttnn_visualizer/static/assets/site-BTBrvHC5.webmanifest,sha256=Uy_XmnGuYFVf-OZuma2NvgEPdrCrevb3HZvaxSIHoA0,456
31
- ttnn_visualizer/static/assets/splitPathsBySizeLoader-BfocwQsJ.js,sha256=B3X2znUloZgu_6P5okv4n5ymUANxM5B0s0XPbiiZK2I,472
31
+ ttnn_visualizer/static/assets/splitPathsBySizeLoader-BOgPj0vG.js,sha256=RFeUguwH4nw2TlsM-LmXYHrIyCT0dxGyhowKdo2hoc0,472
32
32
  ttnn_visualizer/static/favicon/android-chrome-192x192.png,sha256=BZWA09Zxaa3fXbaeS6nhWo2e-DUSjm9ElzNQ_xTB5XU,6220
33
33
  ttnn_visualizer/static/favicon/android-chrome-512x512.png,sha256=HBiJSZyguB3o8fMJuqIGcpeBy_9JOdImme3wD02UYCw,62626
34
34
  ttnn_visualizer/static/favicon/favicon-32x32.png,sha256=Zw201qUsczQv1UvoQvJf5smQ2ss10xaTeWxmQNYCGtY,480
@@ -37,10 +37,10 @@ ttnn_visualizer/static/sample-data/cluster-desc.yaml,sha256=LMxOmsRUXtVVU5ogzYkX
37
37
  ttnn_visualizer/tests/__init__.py,sha256=qn9AwfHTxYYK0Icz-q2Q41Xo9ET6oc6anZzgh02PhK4,94
38
38
  ttnn_visualizer/tests/test_queries.py,sha256=OoINMZezyJkpiQuM1Owp4DlMoJGTl6OgsUbPa2Rxqc0,16546
39
39
  ttnn_visualizer/tests/test_serializers.py,sha256=966AJkXLAwzsceSQ9QR-Sy7VrEbE71AtfMF3y9ZIIWc,18490
40
- ttnn_visualizer-0.26.0.dist-info/LICENSE,sha256=7_uV4foXIbLyroI1M6NdIySajtLuPwayZr1UN2ItErI,11353
41
- ttnn_visualizer-0.26.0.dist-info/LICENSE_understanding.txt,sha256=pymi-yb_RvYM9p2ZA4iSNsImcvhDBBxlGuJCY9dTq7M,233
42
- ttnn_visualizer-0.26.0.dist-info/METADATA,sha256=_RilFsWQY7ptm2JGC48RfBWJp_bZwWdz2eOpmLM81iM,7297
43
- ttnn_visualizer-0.26.0.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
44
- ttnn_visualizer-0.26.0.dist-info/entry_points.txt,sha256=QpuUpkmQ_mEHJTMqOBdU0MH2Z4WF_9iFsGACeyyAO1E,61
45
- ttnn_visualizer-0.26.0.dist-info/top_level.txt,sha256=M1EGkvDOuIfbhDbcUdz2-TSdmCtDoQ2Uyag9k5JLDSY,16
46
- ttnn_visualizer-0.26.0.dist-info/RECORD,,
40
+ ttnn_visualizer-0.27.1.dist-info/LICENSE,sha256=7_uV4foXIbLyroI1M6NdIySajtLuPwayZr1UN2ItErI,11353
41
+ ttnn_visualizer-0.27.1.dist-info/LICENSE_understanding.txt,sha256=pymi-yb_RvYM9p2ZA4iSNsImcvhDBBxlGuJCY9dTq7M,233
42
+ ttnn_visualizer-0.27.1.dist-info/METADATA,sha256=G0PcX8XLBijpmAiparzn0_EaJEgZ2bG56uX1rBir7oU,7297
43
+ ttnn_visualizer-0.27.1.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
44
+ ttnn_visualizer-0.27.1.dist-info/entry_points.txt,sha256=QpuUpkmQ_mEHJTMqOBdU0MH2Z4WF_9iFsGACeyyAO1E,61
45
+ ttnn_visualizer-0.27.1.dist-info/top_level.txt,sha256=M1EGkvDOuIfbhDbcUdz2-TSdmCtDoQ2Uyag9k5JLDSY,16
46
+ ttnn_visualizer-0.27.1.dist-info/RECORD,,