tico 0.1.0.dev250610__py3-none-any.whl → 0.1.0.dev250615__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 (39) hide show
  1. tico/__init__.py +1 -1
  2. tico/passes/cast_aten_where_arg_type.py +65 -62
  3. tico/passes/cast_mixed_type_args.py +2 -5
  4. tico/passes/convert_conv1d_to_conv2d.py +3 -4
  5. tico/passes/convert_repeat_to_expand_copy.py +5 -9
  6. tico/passes/decompose_addmm.py +41 -48
  7. tico/passes/decompose_batch_norm.py +97 -99
  8. tico/passes/decompose_fake_quantize.py +4 -6
  9. tico/passes/decompose_fake_quantize_tensor_qparams.py +4 -4
  10. tico/passes/decompose_group_norm.py +8 -7
  11. tico/passes/decompose_grouped_conv2d.py +2 -3
  12. tico/passes/decompose_slice_scatter.py +2 -4
  13. tico/passes/extract_dtype_kwargs.py +2 -1
  14. tico/passes/fuse_leading_unsqueeze_reshape.py +6 -9
  15. tico/passes/fuse_redundant_reshape_to_mean.py +3 -5
  16. tico/passes/legalize_causal_mask_value.py +2 -7
  17. tico/passes/legalize_predefined_layout_operators.py +2 -3
  18. tico/passes/lower_pow2_to_mul.py +5 -7
  19. tico/passes/lower_to_resize_nearest_neighbor.py +6 -10
  20. tico/passes/lower_to_slice.py +3 -9
  21. tico/passes/merge_consecutive_cat.py +2 -4
  22. tico/passes/remove_nop.py +2 -3
  23. tico/passes/remove_redundant_assert_nodes.py +2 -1
  24. tico/passes/remove_redundant_expand.py +5 -9
  25. tico/passes/remove_redundant_permute.py +6 -5
  26. tico/passes/remove_redundant_reshape.py +26 -43
  27. tico/passes/remove_redundant_slice.py +2 -4
  28. tico/passes/remove_redundant_to_copy.py +2 -4
  29. tico/passes/segment_index_select.py +2 -4
  30. tico/serialize/operators/op_reshape.py +1 -1
  31. tico/serialize/operators/op_where.py +2 -2
  32. tico/utils/utils.py +4 -6
  33. tico/utils/validate_args_kwargs.py +1 -1
  34. {tico-0.1.0.dev250610.dist-info → tico-0.1.0.dev250615.dist-info}/METADATA +1 -1
  35. {tico-0.1.0.dev250610.dist-info → tico-0.1.0.dev250615.dist-info}/RECORD +39 -39
  36. {tico-0.1.0.dev250610.dist-info → tico-0.1.0.dev250615.dist-info}/LICENSE +0 -0
  37. {tico-0.1.0.dev250610.dist-info → tico-0.1.0.dev250615.dist-info}/WHEEL +0 -0
  38. {tico-0.1.0.dev250610.dist-info → tico-0.1.0.dev250615.dist-info}/entry_points.txt +0 -0
  39. {tico-0.1.0.dev250610.dist-info → tico-0.1.0.dev250615.dist-info}/top_level.txt +0 -0
@@ -52,12 +52,12 @@ class WhereVisitor(NodeVisitor):
52
52
 
53
53
  result_true_dtype = (
54
54
  extract_torch_dtype(input)
55
- if isinstance(input, torch.fx.node.Node)
55
+ if isinstance(input, torch.fx.Node)
56
56
  else input.dtype # type: ignore[union-attr]
57
57
  )
58
58
  result_false_dtype = (
59
59
  extract_torch_dtype(other)
60
- if isinstance(other, torch.fx.node.Node)
60
+ if isinstance(other, torch.fx.Node)
61
61
  else other.dtype # type: ignore[union-attr]
62
62
  )
63
63
 
tico/utils/utils.py CHANGED
@@ -331,6 +331,7 @@ def get_quant_dtype(qmin: int, qmax: int):
331
331
  """
332
332
  known_ranges = {
333
333
  (-32768, 32767): "int16",
334
+ (-32767, 32767): "int16",
334
335
  (0, 65535): "uint16",
335
336
  (-128, 127): "int8",
336
337
  (0, 255): "uint8",
@@ -380,19 +381,18 @@ def broadcastable(
380
381
  return True
381
382
 
382
383
 
383
- def is_single_use_target_node(
384
+ def is_target_node(
384
385
  node: torch.fx.Node, target_ops: list[torch._ops.OpOverload] | torch._ops.OpOverload
385
386
  ):
386
387
  """
387
- Check whether a given node is a `call_function` node that matches one of the specified targets
388
- and is used by only one other node.
388
+ Check whether a given node is a `call_function` node that matches one of the specified targets.
389
389
 
390
390
  Args:
391
391
  node (torch.fx.Node): The node to check.
392
392
  target_ops (Iterable[Callable]): A list or set of target operations to match (e.g., ops.aten.reshape).
393
393
 
394
394
  Returns:
395
- bool: True if the node is a call_function, its target is in `target_ops`, and it has exactly one user.
395
+ bool: True if the node is a call_function, its target is in `target_ops`.
396
396
  """
397
397
  if not isinstance(target_ops, list):
398
398
  target_ops = [target_ops]
@@ -402,7 +402,5 @@ def is_single_use_target_node(
402
402
  return False
403
403
  if node.target not in target_ops:
404
404
  return False
405
- if len(node.users) != 1:
406
- return False
407
405
 
408
406
  return True
@@ -867,7 +867,7 @@ class ReshapeArgs:
867
867
  """
868
868
 
869
869
  input: torch.fx.Node
870
- size: List[int]
870
+ shape: List[int]
871
871
 
872
872
 
873
873
  @enforce_type
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tico
3
- Version: 0.1.0.dev250610
3
+ Version: 0.1.0.dev250615
4
4
  Summary: Convert exported Torch module to circle
5
5
  Home-page: UNKNOWN
6
6
  License: UNKNOWN
@@ -1,4 +1,4 @@
1
- tico/__init__.py,sha256=PHlL6DvW31YH0rgvY-y2LlEJDbNJSK7FO1KX1O5BGMM,1743
1
+ tico/__init__.py,sha256=fkjta1ZDIM7XwvZ38hPS7KW9I2q97nmuKM96UsxWwkM,1743
2
2
  tico/pt2_to_circle.py,sha256=PPmFNw20jw2Z2VyM3ln9pX__jTzBOAZiv0gT5a-p-Y8,2666
3
3
  tico/config/__init__.py,sha256=xZzCXjZ84qE-CsBi-dfaL05bqpQ3stKKfTXhnrJRyVs,142
4
4
  tico/config/base.py,sha256=anwOiJFkUxUi7Cef573JgQcjk6S-FSi6O_TLjYASW-g,1244
@@ -59,40 +59,40 @@ tico/interpreter/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,
59
59
  tico/interpreter/infer.py,sha256=vJ3b69ce9HrxNT0gFwbEhHpAyvVyuiunTgAeiqn5t64,4350
60
60
  tico/interpreter/interpreter.py,sha256=tGbluCbrehTCqBu8mtGDNzby_ieJ2ry8_RH_eC0CQxk,3828
61
61
  tico/passes/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
62
- tico/passes/cast_aten_where_arg_type.py,sha256=UI1lzoKUzrsXJLhRDx8kLYgTgEFU2FyZoNtK54qkPfc,7006
63
- tico/passes/cast_mixed_type_args.py,sha256=WP5Yoj4g4dlyTtCWJDyHh2MJkO06E6A8Jtt6bm2FZXo,7516
62
+ tico/passes/cast_aten_where_arg_type.py,sha256=VDgLcsh3EpxLuGMSgEcLUZe2_iVYVyUf75XK9AQB_qM,7146
63
+ tico/passes/cast_mixed_type_args.py,sha256=khj0m2EIJoqxADUeAAVZl6_T30-hhcIkwDSDZlknblk,7479
64
64
  tico/passes/const_prop_pass.py,sha256=QOeR2u3fo9ZhWXRhfAUW1dTtuWgqgoqdDJoQ516UDbQ,11532
65
- tico/passes/convert_conv1d_to_conv2d.py,sha256=x6NT_opkoySnnFifZz4A2jlbyo8iKHD_2WhAVe0w6xA,5113
65
+ tico/passes/convert_conv1d_to_conv2d.py,sha256=RJVLrY0_Quj90EpUzdlBCepKbqcfArQ3fdnsfYV89YA,5092
66
66
  tico/passes/convert_layout_op_to_reshape.py,sha256=FJUrTbquGTJhK2ig1kBci0DjBjk6hfoajLSrQDlJD8o,2904
67
- tico/passes/convert_repeat_to_expand_copy.py,sha256=fRUETNuFB2p-RLhe844pldm0l5oyViQ6cGfFuAKbYec,3135
67
+ tico/passes/convert_repeat_to_expand_copy.py,sha256=f9Vt2OGFcvUZP0i0qxvh5LfwCpgecr8RkfIrzZMDV0M,3156
68
68
  tico/passes/convert_to_relu6.py,sha256=3sfKfggvjbl9N73pLOwgUTNyoecODsy367nwoX2S-EE,6404
69
- tico/passes/decompose_addmm.py,sha256=_yNX7wx1Y9HJI5ksUJI-UQLHpoNawbUbF8kcm2zGHw0,4221
70
- tico/passes/decompose_batch_norm.py,sha256=d1V9UOkm_5BV0NGLyuQfz4I9NpO7I3ZrRugt7EXM-XM,7016
71
- tico/passes/decompose_fake_quantize.py,sha256=-OFOf0WSyRQ8ikS8KQm2mWXp-tHQDGWOFu3mn6pFfBs,5370
72
- tico/passes/decompose_fake_quantize_tensor_qparams.py,sha256=R0hLlKdRXnAsOrbXOErfZEkSC7nv8_TdklNlI76TRMo,13988
73
- tico/passes/decompose_group_norm.py,sha256=xn1xnT-2e6BvelRAzX8O7wg9kBWURmPldkRvpfYFXHQ,9407
74
- tico/passes/decompose_grouped_conv2d.py,sha256=KJhH6PX7l9k9T8KBV8JDAvaSfJuUnRo_jtvGF2aM-LA,8277
75
- tico/passes/decompose_slice_scatter.py,sha256=ko9p8v-zY5rOx4aSpWomwSdSWb1lIF32gnU7ik5xgII,5604
76
- tico/passes/extract_dtype_kwargs.py,sha256=hfGJ_GfZULbBmLif2AJkhPHVifhucxBiLoQI862Yejk,4303
69
+ tico/passes/decompose_addmm.py,sha256=4gkRIjWnlP5ODuIoo4cpyJpvIv2YVfJehmTQd_8X2JE,3924
70
+ tico/passes/decompose_batch_norm.py,sha256=y1Ez7BPr5EnbIoc_E3kX_KysT_rFkQnQK1QSzoeZcgY,6691
71
+ tico/passes/decompose_fake_quantize.py,sha256=mOMZAVYDAqclDCCVkbMWWjg2iGBdxURHD7fyyTjV4IU,5316
72
+ tico/passes/decompose_fake_quantize_tensor_qparams.py,sha256=Pul2E3RJ6a6p5lpPY8ac6urINWlFaGZtxJ3sOmagylM,13962
73
+ tico/passes/decompose_group_norm.py,sha256=s3lRFqoUIBbxofacwKHY7-vop8_X1WgjqEZBnv09Tgw,9448
74
+ tico/passes/decompose_grouped_conv2d.py,sha256=hPRK9D9RDjmJ3mv0Wx17zeNW4xXT2jTQDHfOKIGgV60,8260
75
+ tico/passes/decompose_slice_scatter.py,sha256=mnfEt58PAelJdheD0cJ5C66w_3yqSngCsfM-Auy9ADU,5563
76
+ tico/passes/extract_dtype_kwargs.py,sha256=ObpsaFlrTPYQw2hJ7UsC5CocyAtBkT_bMtzkMUqAyKc,4333
77
77
  tico/passes/fill_meta_val.py,sha256=Xbam6Aq90ZfWItZw1dgLIwH_q8RCiU5JodKNqkj-ink,1797
78
- tico/passes/fuse_leading_unsqueeze_reshape.py,sha256=1hqX9urmV4kQXGWCEJ22XNH_3M2Og5v09N2wwV87FoQ,4304
79
- tico/passes/fuse_redundant_reshape_to_mean.py,sha256=SzHLLL2Yfj4k1c2L5i4PVI9EFUilHRfIS6S-hahKFCM,3702
80
- tico/passes/legalize_causal_mask_value.py,sha256=KZc_UPk7CGPXO35JOu6dVrOzRJx-ZpJoVvuzz-GvQek,4080
81
- tico/passes/legalize_predefined_layout_operators.py,sha256=N2TtJInjSTk-E5afnkDXXbo9v4zTM7yzsjna3VoihMw,15895
82
- tico/passes/lower_pow2_to_mul.py,sha256=imx9CoKG4bLyNqv4F-Z203s_P0-0SdRH-y4_Q0PTZVo,2304
83
- tico/passes/lower_to_resize_nearest_neighbor.py,sha256=4bIxPSyNEzznTw8f8D9hMNXbZ0KmMPPPfRvITXonEz0,8881
84
- tico/passes/lower_to_slice.py,sha256=6xK7A2hdqdBdN2XRyt2rFGnqJGcaXxmgndis4kn2q2w,7112
85
- tico/passes/merge_consecutive_cat.py,sha256=u1E-7axmX4yw0TMlFO5jXB0rn3xe5ASmqXcR42c9eNA,2722
78
+ tico/passes/fuse_leading_unsqueeze_reshape.py,sha256=Y5732qd0MilMQsnPiw--lxTy2lywomKVNoFt2212lLQ,4150
79
+ tico/passes/fuse_redundant_reshape_to_mean.py,sha256=2SEZ0TfXsmUkuqUdNtS_mQzLd49su5TsQViCLMGL4f4,3691
80
+ tico/passes/legalize_causal_mask_value.py,sha256=xKdFwwMaSFCSQpSk8xISOAqFpZ1jIhgbBIqf7KTSGuk,4017
81
+ tico/passes/legalize_predefined_layout_operators.py,sha256=4AAqYvwMvtuAQ8mdpTJI6oIgcBL_iSMzB0pmcvJ6i3Y,15887
82
+ tico/passes/lower_pow2_to_mul.py,sha256=gFuVw3xa2WwXUrxMcqH_Y4Vb8vInuUIGjrpAC7ia9ig,2342
83
+ tico/passes/lower_to_resize_nearest_neighbor.py,sha256=Cy90yIrZt58L1Hh7k4-uUfclNBBpNoJaQQwL7a5A8wo,8840
84
+ tico/passes/lower_to_slice.py,sha256=iYDE_xmiIFfURE5ZLfZICEwWRqwPWXLLL4y5Dbc0rb8,7023
85
+ tico/passes/merge_consecutive_cat.py,sha256=BYmiU170DsrHQMj7gMe7U6ZpndrX-S4OpvJweDdspec,2701
86
86
  tico/passes/ops.py,sha256=XzaKC_FpsfJLpnU4JlL9X-HVarWKm8cX0iiRgx9bMOs,2909
87
- tico/passes/remove_nop.py,sha256=5QE3inFsXgzyPT_t7pKeXNqD1LRf6ed_Mp7YMadA6AI,2707
88
- tico/passes/remove_redundant_assert_nodes.py,sha256=3a2xEQ2iPY7Gqg8jZi8G5bfDDrK2kOO1OHCMv_gJGz0,1592
89
- tico/passes/remove_redundant_expand.py,sha256=7st92AbWOl7yzM0Y5seaZJQKMFHqkYpH3qYMOlAU5lk,2234
90
- tico/passes/remove_redundant_permute.py,sha256=PIS-ag1EiSLlXJeRjcZoapbvM_4LyGtLBzunomfkAYE,4236
91
- tico/passes/remove_redundant_reshape.py,sha256=fDTMIrQFoRHYWrgGqEHgIg-azy4Z1Pod-Gfv7Gwplho,17010
92
- tico/passes/remove_redundant_slice.py,sha256=BAfSkA5jDIEhYx4nMnu6cJadQle3YTw5y39ZLiYfJJ8,2109
93
- tico/passes/remove_redundant_to_copy.py,sha256=uTIjAn3Eli_RvXC-QOqxBAkV_whDBkkNhu-mvNKAEhs,3136
87
+ tico/passes/remove_nop.py,sha256=Hf91p_EJAOC6DyWNthash0_UWtEcNc_M7znamQfYQ5Y,2686
88
+ tico/passes/remove_redundant_assert_nodes.py,sha256=IONd3xBy6I8tH6_Y1eN3_eCHH7WTC8soBgjXzOju9cQ,1612
89
+ tico/passes/remove_redundant_expand.py,sha256=5SIqN7eIIcqF68tlrB31n1482jSBSBOgKb1wddLX6lw,2197
90
+ tico/passes/remove_redundant_permute.py,sha256=ovrEpB9x_Pjdfq6N35cDyURjP8ZBlAqgFiitPxTvUlI,4204
91
+ tico/passes/remove_redundant_reshape.py,sha256=MMd9NWf9iTNIWqizFjC7ykA-JipmMMLCfkrGinSsfno,16227
92
+ tico/passes/remove_redundant_slice.py,sha256=Iv7TbB39fktNb4eq0VdyZnwxL_VsKLJ90diMmaf3kZk,2087
93
+ tico/passes/remove_redundant_to_copy.py,sha256=JMDnca2f9OE58ejdMEoZ1O0l-rGAc5T91BT-dFk7FGk,3114
94
94
  tico/passes/restore_linear.py,sha256=UMMHdLmRGq9bfJx_0L9lL2UQBd51PGNP0WywO8KdrDM,4066
95
- tico/passes/segment_index_select.py,sha256=ifXOIFC12lNwsB-s3k1cJcMHP3UEijPpkMAbwI7lZbQ,5097
95
+ tico/passes/segment_index_select.py,sha256=TmkuXPhagCaj6eo_odxIThCsoB-9r4Kkqzt1ATDukpQ,5075
96
96
  tico/serialize/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
97
97
  tico/serialize/circle_graph.py,sha256=_u0vFDhPdOhEkucmaEhqILo13NKbjyVemPYFfC5YCZg,11619
98
98
  tico/serialize/circle_mapping.py,sha256=C9C3ORACQOdvBdnt5KRzlT8zao_TvzQklIxH794OhP0,5719
@@ -157,7 +157,7 @@ tico/serialize/operators/op_reciprocal.py,sha256=6b9_bxjg_0EvgAitSv1MgBi4PJSEgm-
157
157
  tico/serialize/operators/op_relu.py,sha256=WXCR_chwEUBqjFIQ_4E2avwk-Acy76pmX20rJQCBTQo,1832
158
158
  tico/serialize/operators/op_relu6.py,sha256=ZWqEolfAKjOdUC1ZCg0iuu4dBhkJRxVYR2tUzpbvKQM,1829
159
159
  tico/serialize/operators/op_repeat.py,sha256=0wTv1Mg7kg0eHz0CT6atyVAli4T4h5rYXq5opY6op20,4235
160
- tico/serialize/operators/op_reshape.py,sha256=PdYenXvfQxzYST3yNH6MTxUQ25TulNwiip6N2q76zfQ,2549
160
+ tico/serialize/operators/op_reshape.py,sha256=0_bJwimiGAHaKkfwfhxUw9Gebt5tnecGaEVoKhEvV0Q,2550
161
161
  tico/serialize/operators/op_resize_nearest_neighbor.py,sha256=dXaAnZ5M_ko_tH-HolxNpHFXkDUQ8x45myskojP5XZE,2771
162
162
  tico/serialize/operators/op_rsqrt.py,sha256=yl2vd8InjhLPbE0vHIrEera6DVXlY9dLgO7yZZCH3RI,1837
163
163
  tico/serialize/operators/op_scalar_tensor.py,sha256=vDWxi4hXwyDJJhvfMR_QrBInw_No3WeU_M4gtfZqmbo,1928
@@ -175,7 +175,7 @@ tico/serialize/operators/op_tanh.py,sha256=rs7FsbQeUQ7Ak8RoQV9ymNGXHXRObojfY_Siq
175
175
  tico/serialize/operators/op_to_copy.py,sha256=a8T0uPMavMO_md1a-4_0dlvDHyZS_xew0qB6xjf69rI,3934
176
176
  tico/serialize/operators/op_unsqueeze.py,sha256=ZHhfVXSWEiwb2VDYX5uhxbGQyzZjKT7CrbBpVGxVHBU,2310
177
177
  tico/serialize/operators/op_view.py,sha256=5EMww-ve17Vm9XPuV03Tn7vJsjpU2J8U4d_FOrlm9_o,2546
178
- tico/serialize/operators/op_where.py,sha256=qZDFKVQ2u8HB0Jjpto_1A4g-jfpEprAbBT3PmIGzdoY,2855
178
+ tico/serialize/operators/op_where.py,sha256=doE81GSwygrPBm3JIfN9w7kKXxeIYKxgk0eoY22QIcg,2845
179
179
  tico/serialize/operators/utils.py,sha256=lXGpEJW1h8U_-gfc6EWjvvSiq3yJ9P-v1v3EMRT_pSk,2954
180
180
  tico/utils/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
181
181
  tico/utils/convert.py,sha256=nbpBJue9_ezb8Dj9L9dWcNeVlZd0soGJu_fvrL6-c5c,11810
@@ -190,15 +190,15 @@ tico/utils/passes.py,sha256=kGmDe__5cPaO6i5EDAoXSVe6yXEoX9hAny4ROb3ZEmQ,2409
190
190
  tico/utils/register_custom_op.py,sha256=iRQvdqlBqrJxq_pNkvJyDIJD_SYtCUl88wwbbuvSwlk,22952
191
191
  tico/utils/serialize.py,sha256=AQXMBOLu-Kg2Rn-qbqsAtHndjZAZIavlKA0QFgJREHM,1420
192
192
  tico/utils/trace_decorators.py,sha256=ddLIiKQfSaQrxgF1kNpwjFTQnXENzeSfcr1kuAW4jGI,3221
193
- tico/utils/utils.py,sha256=A5YeUXIjSY5HnlmtnMfWm6wx3i6Feq5dSra1NJsZV2o,13253
194
- tico/utils/validate_args_kwargs.py,sha256=P4aMnr9EhNCtc_AgJPpuezfQbqFfDn0lhJSWqmumLZ8,25054
193
+ tico/utils/utils.py,sha256=fnbZ2RLH6-J-wqb32O4qsR1ce4BJU0wYNrk84QXa6_E,13158
194
+ tico/utils/validate_args_kwargs.py,sha256=ZX820o05hmzg3QmmduAy-rIOrDyPHYe6Uj6Yf6Hoe_c,25055
195
195
  tico/utils/mx/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
196
196
  tico/utils/mx/elemwise_ops.py,sha256=V6glyAHsVR1joqpsgnNytatCD_ew92xNWZ19UFDoMTA,10281
197
197
  tico/utils/mx/formats.py,sha256=uzNWyu-1onUlwQfX5cZ6fZSUfHMRqorper7_T1k3jfk,3404
198
198
  tico/utils/mx/mx_ops.py,sha256=RcfUTYVi-wilGB2sC35OeARdwDqnixv7dG5iyZ-fQT8,8555
199
- tico-0.1.0.dev250610.dist-info/LICENSE,sha256=kp4JLII7bzRhPb0CPD5XTDZMh22BQ7h3k3B7t8TiSbw,12644
200
- tico-0.1.0.dev250610.dist-info/METADATA,sha256=9nX12pxSQ-4h2gPPm0vYX0EW3wkn00HtmLF1E-xIabE,8633
201
- tico-0.1.0.dev250610.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
202
- tico-0.1.0.dev250610.dist-info/entry_points.txt,sha256=kBKYSS_IYrSXmUYevmmepqIVPScq5vF8ulQRu3I_Zf0,59
203
- tico-0.1.0.dev250610.dist-info/top_level.txt,sha256=oqs7UPoNSKZEwqsX8B-KAWdQwfAa7i60pbxW_Jk7P3w,5
204
- tico-0.1.0.dev250610.dist-info/RECORD,,
199
+ tico-0.1.0.dev250615.dist-info/LICENSE,sha256=kp4JLII7bzRhPb0CPD5XTDZMh22BQ7h3k3B7t8TiSbw,12644
200
+ tico-0.1.0.dev250615.dist-info/METADATA,sha256=oDSWeOeldKKckbq0C5G03O_iWL2fJP92uzcjpPBdMsM,8633
201
+ tico-0.1.0.dev250615.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
202
+ tico-0.1.0.dev250615.dist-info/entry_points.txt,sha256=kBKYSS_IYrSXmUYevmmepqIVPScq5vF8ulQRu3I_Zf0,59
203
+ tico-0.1.0.dev250615.dist-info/top_level.txt,sha256=oqs7UPoNSKZEwqsX8B-KAWdQwfAa7i60pbxW_Jk7P3w,5
204
+ tico-0.1.0.dev250615.dist-info/RECORD,,