ultralytics 8.3.13__py3-none-any.whl → 8.3.14__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.
ultralytics/__init__.py CHANGED
@@ -1,6 +1,6 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
- __version__ = "8.3.13"
3
+ __version__ = "8.3.14"
4
4
 
5
5
  import os
6
6
 
@@ -1,6 +1,5 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
- import contextlib
4
3
  import shutil
5
4
  import subprocess
6
5
  import sys
@@ -639,7 +638,7 @@ def smart_value(v):
639
638
  else:
640
639
  try:
641
640
  return eval(v)
642
- except: # noqa E722
641
+ except Exception:
643
642
  return v
644
643
 
645
644
 
ultralytics/data/utils.py CHANGED
@@ -65,7 +65,7 @@ def exif_size(img: Image.Image):
65
65
  rotation = exif.get(274, None) # the EXIF key for the orientation tag is 274
66
66
  if rotation in {6, 8}: # rotation 270 or 90
67
67
  s = s[1], s[0]
68
- except: # noqa E722
68
+ except Exception:
69
69
  pass
70
70
  return s
71
71
 
@@ -46,7 +46,7 @@ def default_class_names(data=None):
46
46
  if data:
47
47
  try:
48
48
  return yaml_load(check_yaml(data))["names"]
49
- except: # noqa E722
49
+ except Exception:
50
50
  pass
51
51
  return {i: f"class{i}" for i in range(999)} # return default if above errors
52
52
 
@@ -501,7 +501,7 @@ class AutoBackend(nn.Module):
501
501
 
502
502
  # TensorRT
503
503
  elif self.engine:
504
- if self.dynamic or im.shape != self.bindings["images"].shape:
504
+ if self.dynamic and im.shape != self.bindings["images"].shape:
505
505
  if self.is_trt10:
506
506
  self.context.set_input_shape("images", im.shape)
507
507
  self.bindings["images"] = self.bindings["images"]._replace(shape=im.shape)
ultralytics/nn/tasks.py CHANGED
@@ -963,7 +963,6 @@ def parse_model(d, ch, verbose=True): # model_dict, input_channels(3)
963
963
  args[j] = locals()[a] if a in locals() else ast.literal_eval(a)
964
964
  except ValueError:
965
965
  pass
966
-
967
966
  n = n_ = max(round(n * depth), 1) if n > 1 else n # depth gain
968
967
  if m in {
969
968
  Classify,
@@ -1102,7 +1101,7 @@ def guess_model_scale(model_path):
1102
1101
  (str): The size character of the model's scale, which can be n, s, m, l, or x.
1103
1102
  """
1104
1103
  try:
1105
- return re.search(r"yolo[v]?\d+([nslmx])", Path(model_path).stem).group(1) # n, s, m, l, or x
1104
+ return re.search(r"yolo[v]?\d+([nslmx])", Path(model_path).stem).group(1) # noqa, returns n, s, m, l, or x
1106
1105
  except AttributeError:
1107
1106
  return ""
1108
1107
 
@@ -1139,7 +1138,7 @@ def guess_model_task(model):
1139
1138
  if isinstance(model, dict):
1140
1139
  try:
1141
1140
  return cfg2task(model)
1142
- except: # noqa E722
1141
+ except Exception:
1143
1142
  pass
1144
1143
 
1145
1144
  # Guess from PyTorch model
@@ -1147,12 +1146,12 @@ def guess_model_task(model):
1147
1146
  for x in "model.args", "model.model.args", "model.model.model.args":
1148
1147
  try:
1149
1148
  return eval(x)["task"]
1150
- except: # noqa E722
1149
+ except Exception:
1151
1150
  pass
1152
1151
  for x in "model.yaml", "model.model.yaml", "model.model.model.yaml":
1153
1152
  try:
1154
1153
  return cfg2task(eval(x))
1155
- except: # noqa E722
1154
+ except Exception:
1156
1155
  pass
1157
1156
 
1158
1157
  for m in model.modules():
@@ -48,7 +48,7 @@ class Analytics(BaseSolution):
48
48
  self.canvas = FigureCanvas(self.fig) # Set common axis properties
49
49
  self.ax.set_facecolor(self.bg_color)
50
50
  self.color_mapping = {}
51
- self.ax.axis("equal") if type == "pie" else None # Ensure pie chart is circular
51
+ self.ax.axis("equal") if self.type == "pie" else None # Ensure pie chart is circular
52
52
 
53
53
  def process_data(self, im0, frame_number):
54
54
  """
@@ -61,11 +61,11 @@ class Analytics(BaseSolution):
61
61
  self.extract_tracks(im0) # Extract tracks
62
62
 
63
63
  if self.type == "line":
64
- for box in self.boxes:
64
+ for _ in self.boxes:
65
65
  self.total_counts += 1
66
66
  im0 = self.update_graph(frame_number=frame_number)
67
67
  self.total_counts = 0
68
- elif self.type == "pie" or self.type == "bar" or self.type == "area":
68
+ elif self.type in {"pie", "bar", "area"}:
69
69
  self.clswise_count = {}
70
70
  for box, cls in zip(self.boxes, self.clss):
71
71
  if self.names[int(cls)] in self.clswise_count:
@@ -52,7 +52,8 @@ class Heatmap(ObjectCounter):
52
52
  Returns:
53
53
  im0 (ndarray): Processed image for further usage
54
54
  """
55
- self.heatmap = np.zeros_like(im0, dtype=np.float32) * 0.99 if not self.initialized else self.heatmap
55
+ if not self.initialized:
56
+ self.heatmap = np.zeros_like(im0, dtype=np.float32) * 0.99
56
57
  self.initialized = True # Initialize heatmap only once
57
58
 
58
59
  self.annotator = Annotator(im0, line_width=self.line_width) # Initialize annotator
@@ -526,7 +526,7 @@ def read_device_model() -> str:
526
526
  try:
527
527
  with open("/proc/device-tree/model") as f:
528
528
  return f.read()
529
- except: # noqa E722
529
+ except Exception:
530
530
  return ""
531
531
 
532
532
 
@@ -584,7 +584,7 @@ def is_docker() -> bool:
584
584
  try:
585
585
  with open("/proc/self/cgroup") as f:
586
586
  return "docker" in f.read()
587
- except: # noqa E722
587
+ except Exception:
588
588
  return False
589
589
 
590
590
 
@@ -623,7 +623,7 @@ def is_online() -> bool:
623
623
  for dns in ("1.1.1.1", "8.8.8.8"): # check Cloudflare and Google DNS
624
624
  socket.create_connection(address=(dns, 80), timeout=2.0).close()
625
625
  return True
626
- except: # noqa E722
626
+ except Exception:
627
627
  return False
628
628
 
629
629
 
@@ -50,7 +50,7 @@ def _log_tensorboard_graph(trainer):
50
50
  LOGGER.info(f"{PREFIX}model graph visualization added ✅")
51
51
  return
52
52
 
53
- except: # noqa E722
53
+ except Exception:
54
54
  # Fallback to TorchScript export steps (RTDETR)
55
55
  try:
56
56
  model = deepcopy(de_parallel(trainer.model))
@@ -277,7 +277,7 @@ def check_latest_pypi_version(package_name="ultralytics"):
277
277
  response = requests.get(f"https://pypi.org/pypi/{package_name}/json", timeout=3)
278
278
  if response.status_code == 200:
279
279
  return response.json()["info"]["version"]
280
- except: # noqa E722
280
+ except Exception:
281
281
  return None
282
282
 
283
283
 
@@ -299,7 +299,7 @@ def check_pip_update_available():
299
299
  f"Update with 'pip install -U ultralytics'"
300
300
  )
301
301
  return True
302
- except: # noqa E722
302
+ except Exception:
303
303
  pass
304
304
  return False
305
305
 
@@ -715,7 +715,7 @@ def git_describe(path=ROOT): # path must be a directory
715
715
  """Return human-readable git description, i.e. v5.0-5-g3e25f1e https://git-scm.com/docs/git-describe."""
716
716
  try:
717
717
  return subprocess.check_output(f"git -C {path} describe --tags --long --always", shell=True).decode()[:-1]
718
- except: # noqa E722
718
+ except Exception:
719
719
  return ""
720
720
 
721
721
 
@@ -60,7 +60,7 @@ def is_url(url, check=False):
60
60
  with request.urlopen(url) as response:
61
61
  return response.getcode() == 200 # check if exists online
62
62
  return True
63
- except: # noqa E722
63
+ except Exception:
64
64
  return False
65
65
 
66
66
 
@@ -1117,7 +1117,7 @@ def plot_images(
1117
1117
  im[y : y + h, x : x + w, :][mask] = (
1118
1118
  im[y : y + h, x : x + w, :][mask] * 0.4 + np.array(color) * 0.6
1119
1119
  )
1120
- except: # noqa E722
1120
+ except Exception:
1121
1121
  pass
1122
1122
  annotator.fromarray(im)
1123
1123
  if not save:
@@ -119,7 +119,7 @@ def get_cpu_info():
119
119
  info = cpuinfo.get_cpu_info() # info dict
120
120
  string = info.get(k[0] if k[0] in info else k[1] if k[1] in info else k[2], "unknown")
121
121
  PERSISTENT_CACHE["cpu_info"] = string.replace("(R)", "").replace("CPU ", "").replace("@ ", "")
122
- except: # noqa E722
122
+ except Exception:
123
123
  pass
124
124
  return PERSISTENT_CACHE.get("cpu_info", "unknown")
125
125
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.3.13
3
+ Version: 8.3.14
4
4
  Summary: Ultralytics YOLO for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
5
5
  Author-email: Glenn Jocher <glenn.jocher@ultralytics.com>, Jing Qiu <jing.qiu@ultralytics.com>
6
6
  Maintainer-email: Ultralytics <hello@ultralytics.com>
@@ -7,10 +7,10 @@ tests/test_exports.py,sha256=fpTKEVBUGLF3WiZPNKRs-IEcIY4cfxgvgKjUNfodjww,8042
7
7
  tests/test_integrations.py,sha256=f5-QCUk1SU_-qn4mBCZwS3GN3tXEBIIXo4z2EhExbHw,6126
8
8
  tests/test_python.py,sha256=I1RRdCwLdrc3jX06huVxct8HX8ccQOmQgVpuEflRl0U,23560
9
9
  tests/test_solutions.py,sha256=dpxWGKO-aJ3Yff4KR7BQGajX9VyFdGTWEtcbmFC3WwE,3005
10
- ultralytics/__init__.py,sha256=2rg2RMDy6HqtBcSx4b7eBss9eXQ6leZvZ6drzM-8sFI,681
10
+ ultralytics/__init__.py,sha256=KzMsO7bLpFbwC0r69u5-Djd8ntMivPUme-w9Jk7K6Qo,681
11
11
  ultralytics/assets/bus.jpg,sha256=wCAZxJecGR63Od3ZRERe9Aja1Weayrb9Ug751DS_vGM,137419
12
12
  ultralytics/assets/zidane.jpg,sha256=Ftc4aeMmen1O0A3o6GCDO9FlfBslLpTAw0gnetx7bts,50427
13
- ultralytics/cfg/__init__.py,sha256=CUg1z4zY3KyR-V4_bghMY8s1xuu-M50gm-v_vpHdXEM,31753
13
+ ultralytics/cfg/__init__.py,sha256=Y-T6ya7MYBLsoJ4sv8MRgvT5TMKZs5A6ZOYo7Tw_jcs,31732
14
14
  ultralytics/cfg/default.yaml,sha256=ul49zgSzTegMmc8CFeu9tXkWNvQhETdZMa9EgDNSnY4,8319
15
15
  ultralytics/cfg/datasets/Argoverse.yaml,sha256=FyeuJT5CHq_9d4hlfAf0kpZlnbUMO0S--UJ1yIqcdKk,3134
16
16
  ultralytics/cfg/datasets/DOTAv1.5.yaml,sha256=QVfp_Qp-4rukuicaB4qx86NxSHM8Mrzym8l_fIDo8gw,1195
@@ -97,7 +97,7 @@ ultralytics/data/converter.py,sha256=QCtrcbNz9kid8nvHfGIWt02nH1wwMKv6HI-8s927CR8
97
97
  ultralytics/data/dataset.py,sha256=D556AW0ZEsW3V8c5zJiHM_prc_YfZqymIkDKPw3k9Io,22936
98
98
  ultralytics/data/loaders.py,sha256=Fr70Q9p9t7buLW_8R2_lI_nyCMG033gWSxvwy1M-a-U,28449
99
99
  ultralytics/data/split_dota.py,sha256=yOtypHoY5HvIVBKZgFXdfj2tuCLLEBnMwNfAeG94Eik,10680
100
- ultralytics/data/utils.py,sha256=u6OZ7InLpI1em5aEPz13ZzS9BcO37dcY9_s2btXGZYQ,31076
100
+ ultralytics/data/utils.py,sha256=bmWEIrdogj4kssZQSJdSbIF8QsJU00lo-EY-Mgcqv4M,31073
101
101
  ultralytics/engine/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
102
102
  ultralytics/engine/exporter.py,sha256=lKmVaypzVY3R-RkCs1KQNrSpF6W4jKMZqNBKZ0CfzmA,57670
103
103
  ultralytics/engine/model.py,sha256=pvL1uf-wwdWL8Iph7VEAYn1-z7wEHzVug21V_0_gO6M,51456
@@ -169,8 +169,8 @@ ultralytics/models/yolo/world/__init__.py,sha256=3VTH0q4NOt2EWRom15yCymvmvm0Etp2
169
169
  ultralytics/models/yolo/world/train.py,sha256=gaDrAmLJpg9qDtmL5evA5HsV2yb4RTRSfk2EDYrHdRg,3686
170
170
  ultralytics/models/yolo/world/train_world.py,sha256=IsnCEVt6DcM9lUskCKmIN-M8MM79xLpwTRqRoAHUnZ4,4857
171
171
  ultralytics/nn/__init__.py,sha256=4BPLHY89xEM_al5uK0aOmFgiML6CMGEZbezxOvTjOEs,587
172
- ultralytics/nn/autobackend.py,sha256=xcbndT-esNu3Icx3SWRJXZ7JqWjj8H5hteUetYBliDo,31599
173
- ultralytics/nn/tasks.py,sha256=ssBZR4LY4rvaxYawXq5-yWSBAZ9oCz6BgxWYXB2YD68,48399
172
+ ultralytics/nn/autobackend.py,sha256=osAOr5S3z8NqRt2sIY1aK_M8RR2r2l2uT28CV-bazvU,31597
173
+ ultralytics/nn/tasks.py,sha256=vHhPv6kFkSCjYB_OfAmEB6PYwxKVZlyzZvqKULE3utY,48403
174
174
  ultralytics/nn/modules/__init__.py,sha256=xhW2BennT9U_VaMXVpRu-bdLgp1BXt9L8mkIUBE3idU,2625
175
175
  ultralytics/nn/modules/activation.py,sha256=chhn469wnRHEs5BMGNBYXwPYZc_7-urspTT8fnBd-xA,895
176
176
  ultralytics/nn/modules/block.py,sha256=thcIPcnGRRxDDDswywJsfzbewr9XfTrzl_UvSl-bJ3c,41832
@@ -180,9 +180,9 @@ ultralytics/nn/modules/transformer.py,sha256=tGiK8NmPfswwW1rbF21r5ILUkkZQ6Nk4s8j
180
180
  ultralytics/nn/modules/utils.py,sha256=a88cKl2wz1nMVSEBiajtvaCbDBQIkESWOKTZ_WAJy90,3195
181
181
  ultralytics/solutions/__init__.py,sha256=6RDeXWO1QSaMgCq8YrWXaj2xvPw2sJwJL_a0dgjCvz0,648
182
182
  ultralytics/solutions/ai_gym.py,sha256=lBAkWV8vrEdKAXcBFVbugPeZZ08MOjGYTdnFlG22vKM,3772
183
- ultralytics/solutions/analytics.py,sha256=w5hnnBNSTQ35tJp6DDeWYw2ASjylp3ZmzrTXcdWwDw8,9319
183
+ ultralytics/solutions/analytics.py,sha256=x5-PA7DmR_ZbeZFCx6wKBI-Cs-opJ5wKyDNdB5E3fNQ,9294
184
184
  ultralytics/solutions/distance_calculation.py,sha256=3D5qj9g-XGt_QPEu5IQI2ubTC0n2pmISDrNPl__JK9M,3373
185
- ultralytics/solutions/heatmap.py,sha256=2C4s_rVFcOc5oSWxb0pNxNoCawe4lxajpTDNFd4tVL8,3850
185
+ ultralytics/solutions/heatmap.py,sha256=Y9RHAp7b7-01foLUW0iUjKis6Iu60fFEFxxZqiENhX0,3845
186
186
  ultralytics/solutions/object_counter.py,sha256=7s3Q--CAFHr_uXzeq6epXgl5YSinc6q-VThPBx1Gj3Y,5485
187
187
  ultralytics/solutions/parking_management.py,sha256=VgYyhoSEo7fnPegIhNUqnFL0jlMEevALx0QQbzJ3vGI,9049
188
188
  ultralytics/solutions/queue_management.py,sha256=5d1RURQiqffAoET8S66gHimK0l3gKNAfuPO5U6_08jc,2716
@@ -198,12 +198,12 @@ ultralytics/trackers/utils/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7J
198
198
  ultralytics/trackers/utils/gmc.py,sha256=VcURuY041qGCeWUGMxHZBr10T16LtcMqyv7AmTfE1MY,14557
199
199
  ultralytics/trackers/utils/kalman_filter.py,sha256=cH9zD3fwkuezP97H9mw8cSBN7a8hHKx_Sx1j7t3oYGs,21349
200
200
  ultralytics/trackers/utils/matching.py,sha256=3Ie1WNNRZ4_q3365F03XD7Nr9juZB_08mw4yUKC3w74,7162
201
- ultralytics/utils/__init__.py,sha256=du1Y1LMU0jQn_zWWnAIx9U8wn6Vh7ce-k7qMwi6y0po,48698
201
+ ultralytics/utils/__init__.py,sha256=e9TGKFTMU1dGkYVvD22qHxvR76gUiATKWM4eIqT77SI,48689
202
202
  ultralytics/utils/autobatch.py,sha256=BO9MCRtrLDtrDQaxqV0BdjaYsgXf-q07Y3_VdGp4URY,4330
203
203
  ultralytics/utils/benchmarks.py,sha256=R3_jtwLd48azPSXmtIhqlzduUvflk0FOY8GJOJ6mB6E,25097
204
- ultralytics/utils/checks.py,sha256=iH5R-DQKhP7qnW8pQm-rlYPsMJ5KWvcn9imo-hamIqE,29765
204
+ ultralytics/utils/checks.py,sha256=jjCIAT6yBQ2v-aRxh3ZmoBIEiVT-iCAvcqarLLNW1os,29756
205
205
  ultralytics/utils/dist.py,sha256=NDFga-uKxkBX2zLxFHSene_cCiGQJoyOeCXcN9JIOIk,2358
206
- ultralytics/utils/downloads.py,sha256=xxM9zTNCqo3PRFOxWCH1pJoKuFJKZFsb3sab6Hvabug,21977
206
+ ultralytics/utils/downloads.py,sha256=fh7I5toTSowAOXtmx5zIzCEDREfTFG45cLIHmsDmuYw,21974
207
207
  ultralytics/utils/errors.py,sha256=GqP_Jgj_n0paxn8OMhn3DTCgoNkB2WjUcUaqs-M6SQk,816
208
208
  ultralytics/utils/files.py,sha256=uiXQSVABJRoI5ImnM6ndEBIFbECfksmWNEldBg8GnSo,8224
209
209
  ultralytics/utils/instance.py,sha256=QSms7mPHZ5e8JGuJYLohLWltzI0aBE8dob2rOUK4RtM,16249
@@ -211,9 +211,9 @@ ultralytics/utils/loss.py,sha256=SW3FVFFp8Ki_LCT8wIdFbm6KmyPcQn3RmKNcvVAhMQI,341
211
211
  ultralytics/utils/metrics.py,sha256=msPaXc244ndc0NPBhnNlHsKkVhdc-TMgFn5NATlZZVI,53918
212
212
  ultralytics/utils/ops.py,sha256=dsXNdyrYx_p6io6zezig9p84dxS7U-10vceHNVu2IL0,32888
213
213
  ultralytics/utils/patches.py,sha256=J-iOwIRbfUs-inBZerhnXby5tUKjYcOIyvhLTS352JE,3270
214
- ultralytics/utils/plotting.py,sha256=RYTdMJtWOO5qPowca1a8izfasoIyGxzmfp9VGB_g0xE,61092
214
+ ultralytics/utils/plotting.py,sha256=TKtdbAOl6gZdFD2hlA5T4LNWfr2LUWbCC-cXkgL1JAU,61089
215
215
  ultralytics/utils/tal.py,sha256=ECsu95xEqOItmxMDN4YTD3FsUiIsQNWy0pZC3TfvFfk,16877
216
- ultralytics/utils/torch_utils.py,sha256=gVN-KSrAzJC1rW3woQd4FsTT693GD8rXiccToL2m4kM,30059
216
+ ultralytics/utils/torch_utils.py,sha256=bGr_YWoLdhWoP4eUyrrwFCQjr6zOA4_9t5XzGkttYHI,30056
217
217
  ultralytics/utils/triton.py,sha256=gg1finxno_tY2Ge9PMhmu7PI9wvoFZoiicdT4Bhqv3w,3936
218
218
  ultralytics/utils/tuner.py,sha256=mJdgvuE2StoFS13mEdsTbsxQgSZA4fSdSCgoyh8PvNw,6250
219
219
  ultralytics/utils/callbacks/__init__.py,sha256=YrWqC3BVVaTLob4iCPR6I36mUxIUOpPJW7B_LjT78Qw,214
@@ -225,11 +225,11 @@ ultralytics/utils/callbacks/hub.py,sha256=EPewsLigFQc9ucTX2exKSlKBiaBNhYYyGC_nR2
225
225
  ultralytics/utils/callbacks/mlflow.py,sha256=mkl_rK0Gy02cXnQUYmzmLE5W97fMgfEb7IlgOAdnjHg,5396
226
226
  ultralytics/utils/callbacks/neptune.py,sha256=IbGQfEltamUKXJt93uSLQFn8c2rYh3DMTgVE1xsnmUI,3813
227
227
  ultralytics/utils/callbacks/raytune.py,sha256=ODVYzy-CoM4Uge0zjkh3Hnh9nF2M0vhDrSenXnvcizw,705
228
- ultralytics/utils/callbacks/tensorboard.py,sha256=bv4fkkesdgmZv_E2MU6wuaMBwEV5iI2G53RHPyD9quw,4170
228
+ ultralytics/utils/callbacks/tensorboard.py,sha256=SHlE58Fb-sg-uZKtgy-ybIO3SAIfK55aj8kTYGA0Cyg,4167
229
229
  ultralytics/utils/callbacks/wb.py,sha256=upfbF8-LLXueUvulLaMDmKDhKCl_PWbNa_87PQ0L0Rc,6752
230
- ultralytics-8.3.13.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
231
- ultralytics-8.3.13.dist-info/METADATA,sha256=lwU4l_KFBx8TzMo_vwe4pyKOaepvZ3mPvWwm6Y951_A,34660
232
- ultralytics-8.3.13.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
233
- ultralytics-8.3.13.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
234
- ultralytics-8.3.13.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
235
- ultralytics-8.3.13.dist-info/RECORD,,
230
+ ultralytics-8.3.14.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
231
+ ultralytics-8.3.14.dist-info/METADATA,sha256=d9dz7HQL5osy3P_rLzWcclGC2JnO84dx-q3Tqie6ByY,34660
232
+ ultralytics-8.3.14.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
233
+ ultralytics-8.3.14.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
234
+ ultralytics-8.3.14.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
235
+ ultralytics-8.3.14.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.1.0)
2
+ Generator: setuptools (75.2.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5