bluer-ugv 7.524.1__py3-none-any.whl → 7.539.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.
@@ -5,8 +5,12 @@ function bluer_ugv_swallow_env_set() {
5
5
 
6
6
  if [[ "$var_name" == "bps" ]]; then
7
7
  var_name=BLUER_SBC_SWALLOW_HAS_BPS
8
+ elif [[ "$var_name" == "camera" ]]; then
9
+ var_name=BLUER_SBC_SWALLOW_HAS_CAMERA
8
10
  elif [[ "$var_name" == "full_keyboard" ]]; then
9
11
  var_name=BLUER_SBC_SWALLOW_HAS_FULL_KEYBOARD
12
+ elif [[ "$var_name" == "screen" ]]; then
13
+ var_name=BLUER_SBC_ENABLE_SCREEN
10
14
  elif [[ "$var_name" == "steering" ]]; then
11
15
  var_name=BLUER_SBC_SWALLOW_HAS_STEERING
12
16
  else
@@ -1,14 +1,12 @@
1
1
  from bluer_objects.README.items import ImageItems
2
- from bluer_sbc.parts.db import db_of_parts
3
- from bluer_sbc.parts.consts import parts_url_prefix
4
2
 
5
3
  from bluer_ugv.README.swallow.consts import (
6
4
  swallow_assets2,
7
5
  swallow_electrical_designs,
8
6
  )
9
- from bluer_ugv.designs.swallow.parts import dict_of_parts
10
7
  from bluer_ugv.README.swallow.digital.design import (
11
8
  mechanical,
9
+ parts,
12
10
  ultrasonic_sensor,
13
11
  )
14
12
  from bluer_ugv.swallow.session.classical.keyboard.keys import ControlKeys
@@ -32,20 +30,6 @@ docs = (
32
30
  "keys:::": ControlKeys.as_table(),
33
31
  },
34
32
  },
35
- {
36
- "path": "../docs/swallow/digital/design/parts.md",
37
- "items": db_of_parts.as_images(
38
- dict_of_parts,
39
- reference=parts_url_prefix,
40
- ),
41
- "macros": {
42
- "parts:::": db_of_parts.as_list(
43
- dict_of_parts,
44
- reference=parts_url_prefix,
45
- log=False,
46
- ),
47
- },
48
- },
49
33
  {
50
34
  "path": "../docs/swallow/digital/design/terraform.md",
51
35
  "items": ImageItems(
@@ -78,5 +62,6 @@ docs = (
78
62
  },
79
63
  ]
80
64
  + mechanical.docs
65
+ + parts.docs
81
66
  + ultrasonic_sensor.docs
82
67
  )
@@ -0,0 +1,21 @@
1
+ from bluer_sbc.parts.db import db_of_parts
2
+ from bluer_sbc.parts.consts import parts_url_prefix
3
+
4
+ from bluer_ugv.designs.swallow.parts import dict_of_parts
5
+
6
+ docs = [
7
+ {
8
+ "path": "../docs/swallow/digital/design/parts.md",
9
+ "items": db_of_parts.as_images(
10
+ dict_of_parts,
11
+ reference=parts_url_prefix,
12
+ ),
13
+ "macros": {
14
+ "parts:::": db_of_parts.as_list(
15
+ dict_of_parts,
16
+ reference=parts_url_prefix,
17
+ log=False,
18
+ ),
19
+ },
20
+ },
21
+ ]
bluer_ugv/__init__.py CHANGED
@@ -4,7 +4,7 @@ ICON = "🐬"
4
4
 
5
5
  DESCRIPTION = f"{ICON} AI x UGV."
6
6
 
7
- VERSION = "7.524.1"
7
+ VERSION = "7.539.1"
8
8
 
9
9
  REPO_NAME = "bluer-ugv"
10
10
 
@@ -15,7 +15,7 @@ def help_cp(
15
15
  "cp",
16
16
  "[<env-name>]",
17
17
  ],
18
- "cp swallow swallow-raspbian-<env-name>.env.",
18
+ "cp swallow-raspbian-<env-name>.env.",
19
19
  mono=mono,
20
20
  )
21
21
 
@@ -44,13 +44,15 @@ def help_set(
44
44
  "@swallow",
45
45
  "env",
46
46
  "set",
47
- "bps | full_keyboard | steering",
47
+ "bps | camera | full_keyboard | screen | steering",
48
48
  "0 | 1",
49
49
  ],
50
50
  "set env.",
51
51
  {
52
52
  f"bps: BLUER_SBC_SWALLOW_HAS_BPS (currently: {env.BLUER_SBC_SWALLOW_HAS_BPS})": "",
53
+ f"camera: BLUER_SBC_SWALLOW_HAS_CAMERA (currently: {env.BLUER_SBC_SWALLOW_HAS_CAMERA})": "",
53
54
  f"full_keyboard: BLUER_SBC_SWALLOW_HAS_FULL_KEYBOARD (currently: {env.BLUER_SBC_SWALLOW_HAS_FULL_KEYBOARD})": "",
55
+ f" screen: BLUER_SBC_ENABLE_SCREEN (currently: {env.BLUER_SBC_ENABLE_SCREEN})"
54
56
  f"steering: BLUER_SBC_SWALLOW_HAS_STEERING (currently: {env.BLUER_SBC_SWALLOW_HAS_STEERING})": "",
55
57
  },
56
58
  mono=mono,
@@ -7,6 +7,9 @@ from bluer_ugv.swallow.session.classical.camera.navigation import (
7
7
  from bluer_ugv.swallow.session.classical.camera.tracking import (
8
8
  ClassicalTrackingCamera,
9
9
  )
10
+ from bluer_ugv.swallow.session.classical.camera.void import (
11
+ ClassicalVoidCamera,
12
+ )
10
13
  from bluer_ugv.swallow.session.classical.camera.yolo import (
11
14
  ClassicalYoloCamera,
12
15
  )
@@ -2,12 +2,10 @@ from typing import Any
2
2
 
3
3
  from bluer_algo.socket.connection import SocketConnection, DEV_HOST
4
4
  from bluer_sbc.imager.camera import instance as camera
5
- from bluer_sbc.env import BLUER_SBC_ENV
6
5
 
7
6
  from bluer_ugv.swallow.session.classical.keyboard.classes import ClassicalKeyboard
8
7
  from bluer_ugv.swallow.session.classical.leds import ClassicalLeds
9
8
  from bluer_ugv.swallow.session.classical.setpoint.classes import ClassicalSetPoint
10
- from bluer_ugv.logger import logger
11
9
 
12
10
 
13
11
  class ClassicalCamera:
@@ -18,7 +16,6 @@ class ClassicalCamera:
18
16
  setpoint: ClassicalSetPoint,
19
17
  object_name: str,
20
18
  ):
21
- logger.info(f"sbc.env: {BLUER_SBC_ENV}")
22
19
 
23
20
  self.keyboard = keyboard
24
21
  self.leds = leds
@@ -0,0 +1,9 @@
1
+ from bluer_ugv.swallow.session.classical.camera.generic import ClassicalCamera
2
+
3
+
4
+ class ClassicalVoidCamera(ClassicalCamera):
5
+ def initialize(self) -> bool:
6
+ return True
7
+
8
+ def cleanup(self):
9
+ pass
@@ -1,5 +1,7 @@
1
1
  from bluer_options.host.functions import is_headless
2
2
 
3
+ from bluer_sbc.env import BLUER_SBC_ENABLE_SCREEN
4
+
3
5
  from bluer_ugv import env
4
6
  from bluer_ugv.swallow.session.classical.screen.video.player import VideoPlayer
5
7
  from bluer_ugv.swallow.session.classical.screen.video.playlist import PlayList
@@ -8,7 +10,9 @@ from bluer_ugv.logger import logger
8
10
 
9
11
  class ClassicalScreen:
10
12
  def __init__(self):
11
- self.video_player = None if is_headless() else VideoPlayer()
13
+ self.video_player = (
14
+ None if (is_headless() or BLUER_SBC_ENABLE_SCREEN == 0) else VideoPlayer()
15
+ )
12
16
 
13
17
  self.playlist = PlayList(env.RANGIN_VIDEO_LIST_OBJECT)
14
18
 
@@ -4,12 +4,13 @@ from bluer_options import string
4
4
  from bluer_options.timing.classes import Timing
5
5
  from bluer_objects.env import abcli_object_name
6
6
  from bluer_objects.metadata import post_to_object
7
- from bluer_sbc.env import BLUER_SBC_ENV, BLUER_SBC_SWALLOW_HAS_STEERING
7
+ from bluer_sbc.env import BLUER_SBC_CAMERA_KIND, BLUER_SBC_SWALLOW_HAS_STEERING
8
8
 
9
9
  from bluer_ugv.swallow.session.classical.camera import (
10
10
  ClassicalCamera,
11
11
  ClassicalNavigationCamera,
12
12
  ClassicalTrackingCamera,
13
+ ClassicalVoidCamera,
13
14
  ClassicalYoloCamera,
14
15
  )
15
16
  from bluer_ugv.swallow.session.classical.push_button import ClassicalPushButton
@@ -94,19 +95,28 @@ class ClassicalSession:
94
95
  )
95
96
 
96
97
  camera_class = (
97
- ClassicalYoloCamera
98
- if BLUER_SBC_ENV == "yolo"
98
+ ClassicalVoidCamera
99
+ if BLUER_SBC_CAMERA_KIND == "void"
99
100
  else (
100
- ClassicalTrackingCamera
101
- if BLUER_SBC_ENV == "tracking"
101
+ ClassicalYoloCamera
102
+ if BLUER_SBC_CAMERA_KIND == "yolo"
102
103
  else (
103
- ClassicalNavigationCamera
104
- if BLUER_SBC_ENV == "navigation"
105
- else ClassicalCamera
104
+ ClassicalTrackingCamera
105
+ if BLUER_SBC_CAMERA_KIND == "tracking"
106
+ else (
107
+ ClassicalNavigationCamera
108
+ if BLUER_SBC_CAMERA_KIND == "navigation"
109
+ else ClassicalCamera
110
+ )
106
111
  )
107
112
  )
108
113
  )
109
- logger.info(f"camera: {camera_class.__name__}")
114
+ logger.info(
115
+ "camera: {} [{}]".format(
116
+ camera_class.__name__,
117
+ BLUER_SBC_CAMERA_KIND,
118
+ )
119
+ )
110
120
  self.camera = camera_class(
111
121
  keyboard=self.keyboard,
112
122
  leds=self.leds,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bluer_ugv
3
- Version: 7.524.1
3
+ Version: 7.539.1
4
4
  Summary: 🐬 AI x UGV.
5
5
  Home-page: https://github.com/kamangir/bluer-ugv
6
6
  Author: Arash Abadpour (Kamangir)
@@ -64,7 +64,7 @@ pip install bluer_ugv
64
64
 
65
65
  [![pylint](https://github.com/kamangir/bluer-ugv/actions/workflows/pylint.yml/badge.svg)](https://github.com/kamangir/bluer-ugv/actions/workflows/pylint.yml) [![pytest](https://github.com/kamangir/bluer-ugv/actions/workflows/pytest.yml/badge.svg)](https://github.com/kamangir/bluer-ugv/actions/workflows/pytest.yml) [![bashtest](https://github.com/kamangir/bluer-ugv/actions/workflows/bashtest.yml/badge.svg)](https://github.com/kamangir/bluer-ugv/actions/workflows/bashtest.yml) [![PyPI version](https://img.shields.io/pypi/v/bluer-ugv.svg)](https://pypi.org/project/bluer-ugv/) [![PyPI - Downloads](https://img.shields.io/pypi/dd/bluer-ugv)](https://pypistats.org/packages/bluer-ugv)
66
66
 
67
- built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🐬 [`bluer_ugv-7.524.1`](https://github.com/kamangir/bluer-ugv).
67
+ built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🐬 [`bluer_ugv-7.539.1`](https://github.com/kamangir/bluer-ugv).
68
68
 
69
69
 
70
70
  built by 🌀 [`blueness-3.118.1`](https://github.com/kamangir/blueness).
@@ -1,4 +1,4 @@
1
- bluer_ugv/__init__.py,sha256=558bcRjfjRM_CjBeUUDeWdglclU5H4JkVgCOdpecfG8,288
1
+ bluer_ugv/__init__.py,sha256=xnV6LvrAGRs2c_PWQQD4yQ_78gEdE_dqJm-Zw8Qob-I,288
2
2
  bluer_ugv/__main__.py,sha256=77TquqyMca7qHk0XtCixGVyzfW3_9ywnl5oXEPERlls,374
3
3
  bluer_ugv/config.env,sha256=I718Cfy1GaGqVI80vb7iYsoJ0P7SKLW8USaBYb2sub4,1055
4
4
  bluer_ugv/env.py,sha256=oEJiyKf1cCJ9kgZqgwnWemT0U_cO2RmCN3MRSS2vitY,1875
@@ -27,7 +27,7 @@ bluer_ugv/.abcli/swallow/dataset/list.sh,sha256=-hqgmThG2JfheFSYIe6Z3UH05X5hrSuI
27
27
  bluer_ugv/.abcli/swallow/dataset/upload.sh,sha256=KM33QM4rIQpltbd_V49wPWear9Wi8cJNo0bBBeCEENU,577
28
28
  bluer_ugv/.abcli/swallow/env/cp.sh,sha256=vWBlG9n4Q6m_lBWcot9nyN6kc7-uil5skCjfJWHCfrY,168
29
29
  bluer_ugv/.abcli/swallow/env/list.sh,sha256=pT-hRS0ZfmogAfAMfm-hh0raGoUAnl66U5VuqgyeIwE,173
30
- bluer_ugv/.abcli/swallow/env/set.sh,sha256=hMl5qO_nsV_C3Yvn4KDpw2lY7QD8aESzPsIH0zg0BAo,640
30
+ bluer_ugv/.abcli/swallow/env/set.sh,sha256=ed6NCkhYK9LNhSYU_iJUNYXuyQFzmH9mydQ5agihhvA,817
31
31
  bluer_ugv/.abcli/swallow/keyboard/test.sh,sha256=B04AO-Er3_utzULPziyKD0aybuN2bry7h9wrQBEJ0tA,218
32
32
  bluer_ugv/.abcli/swallow/ultrasonic/review.sh,sha256=XoKwUliTcH-yTHrIo1cc9RSxL3tYQsBfWf1XOJ6YtOI,717
33
33
  bluer_ugv/.abcli/swallow/ultrasonic/test.sh,sha256=WRq4jnm2lv6q7fAw-_6Xg7DD8kgki48t8ilwXA-SsBM,582
@@ -96,8 +96,9 @@ bluer_ugv/README/swallow/digital/__init__.py,sha256=kyb46k4FsGZKgWW2QRM33pLUQl5t
96
96
  bluer_ugv/README/swallow/digital/algo/__init__.py,sha256=iHwEi_kwQUk0E3YtGKDrjTKV-PDRuDpAo69IMCE8uZ4,711
97
97
  bluer_ugv/README/swallow/digital/algo/navigation.py,sha256=Hg_tkGYnE8qbM37Go4KlAaO-sNAtOBmaNZlPda45BCc,1780
98
98
  bluer_ugv/README/swallow/digital/algo/yolo.py,sha256=NlDISZ9LOUmMAzdEYzVYOrIwbDGdM8euMURlBOGACUk,930
99
- bluer_ugv/README/swallow/digital/design/__init__.py,sha256=BFmNyvt_JgYnCoT-WtA-4okzyC3tTyWMvzpf0O9FVM8,2555
99
+ bluer_ugv/README/swallow/digital/design/__init__.py,sha256=VP_oK0MQ5yPl_FfbY9mLWNTvdi1amsau5Jkjse6a_Es,1991
100
100
  bluer_ugv/README/swallow/digital/design/mechanical.py,sha256=OwgMrFIpRA-RR9CwurXaif09GCd6_i3zGuAfkH0jtsM,983
101
+ bluer_ugv/README/swallow/digital/design/parts.py,sha256=R_CePkG5zF3qn1X4hvQyd8Iunc0u6yfWXyJJZi3fWBw,549
101
102
  bluer_ugv/README/swallow/digital/design/ultrasonic_sensor.py,sha256=VefIdTUXnsxVj3rmjsguV7N2BD9tPRiiaHjjRl84QUM,1517
102
103
  bluer_ugv/README/ugvs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
103
104
  bluer_ugv/README/ugvs/db.py,sha256=1hmr8LSp9uBIq2pRbrw3eUjtTw29iCovVhNxxRcb5po,1426
@@ -145,7 +146,7 @@ bluer_ugv/help/git.py,sha256=4CcaA8lHoplrrFgF5lolwVT79SLr3gE2iqXpAIfzH64,319
145
146
  bluer_ugv/help/swallow/__init__.py,sha256=t65DuR-96-29wNylRysfId86OLNxsW4AM2YnN4V4DbM,755
146
147
  bluer_ugv/help/swallow/dataset.py,sha256=59D5XLQG1PRWfPwfM73Jz1-f0qh_cO0q18qLtsxXtj0,2495
147
148
  bluer_ugv/help/swallow/debug.py,sha256=70krqg-YtjxPjPwWnx4J1Fxlvw46hHyAYq7pA7yPt50,481
148
- bluer_ugv/help/swallow/env.py,sha256=AwNGF7ZcwQz7-Q8uKaLuajyIMXpi9yGMS27Xq0-QvUs,1325
149
+ bluer_ugv/help/swallow/env.py,sha256=0CZyXIMWV2cpV_VbgdSEXigc63UNvQ-L2tjb-5Edwe8,1531
149
150
  bluer_ugv/help/swallow/keyboard.py,sha256=YNkGWvE7tN3agCaL2R30FSIF2zw6oXa5ZJdnTJQA3Hk,518
150
151
  bluer_ugv/help/swallow/select_target.py,sha256=s1-v2IyT6thAncIzo4wKnU8hFJ-rDyi-IDzx2kMaJrs,390
151
152
  bluer_ugv/help/swallow/ultrasonic_sensor.py,sha256=rhxHQWDU7orCvqC_TeJWMCJFrm4qyJyHdiUIUIpZmhU,1223
@@ -168,11 +169,12 @@ bluer_ugv/swallow/session/classical/mode.py,sha256=6rFe1IIpfijuI7Xd-wcGKhYQ7EdQx
168
169
  bluer_ugv/swallow/session/classical/mousepad.py,sha256=LI7yvmtrZZaGUgPGpxNU7zcPkW8D5ykHlY_O-4H2STs,1871
169
170
  bluer_ugv/swallow/session/classical/position.py,sha256=gNeNzNpUG8zkDrcwibxaYStPNKUN1_DV5RjHu_pHMIg,913
170
171
  bluer_ugv/swallow/session/classical/push_button.py,sha256=s8sPart_dECjLK-gfsJi0UorRYcFYf3ofLqjmG8PoA8,2397
171
- bluer_ugv/swallow/session/classical/session.py,sha256=qtVnnXT7mpO7y0uXssL3ZHuP9xfXJyBtD1e7ZcwFEiI,5540
172
- bluer_ugv/swallow/session/classical/camera/__init__.py,sha256=KOehn6qHKj3EMbV5uGXKIfN_v4D5-E2xH9aCWqbNlAI,375
173
- bluer_ugv/swallow/session/classical/camera/generic.py,sha256=xmztClNYkosYo2TcIS2Ax4Bessc8lx4hlt9LnMcobfU,1216
172
+ bluer_ugv/swallow/session/classical/session.py,sha256=zdP5pUy6u35BBptkQM8kn1w1P-bduFWQNiSju3ftlaM,5858
173
+ bluer_ugv/swallow/session/classical/camera/__init__.py,sha256=2GchuT19_Ns0uYRS5aUMz4pBwbK3y5XoFxoAlAnJKh8,464
174
+ bluer_ugv/swallow/session/classical/camera/generic.py,sha256=V_PdQkVfs7kJvjzjD7xVV8Zommx8eVBVGIfvL1vl86M,1091
174
175
  bluer_ugv/swallow/session/classical/camera/navigation.py,sha256=HoeTlifGEfnedb6o8P-O0TcP1bNDRJ0M7vWupQh1pL4,6790
175
176
  bluer_ugv/swallow/session/classical/camera/tracking.py,sha256=fXDCA7UCQT0I6_djk16AgRdulySVEjJSKOgD8bDpQng,3651
177
+ bluer_ugv/swallow/session/classical/camera/void.py,sha256=IJkJQgTgVucTYagFIwKEchNf3Vcjl99EdCdSdvKaeJo,216
176
178
  bluer_ugv/swallow/session/classical/camera/yolo.py,sha256=i-lEsLpqlmm1v3sa5azQYk7LCgU9Me5y28-LSPurc7g,6412
177
179
  bluer_ugv/swallow/session/classical/keyboard/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
178
180
  bluer_ugv/swallow/session/classical/keyboard/__main__.py,sha256=tdX-a8MC9ix6aQ9isZXfnIqa9SuiYGr73Yy05RwvdCs,603
@@ -186,7 +188,7 @@ bluer_ugv/swallow/session/classical/motor/rear.py,sha256=mIBpUxBeiw1me5WY3jbtMya
186
188
  bluer_ugv/swallow/session/classical/motor/right.py,sha256=3BwCXA6VxxyRBG3rsnRXGviS5gIda14UCqaELGMOJNk,539
187
189
  bluer_ugv/swallow/session/classical/motor/steering.py,sha256=-_-6C9cGYFgt_WH3hwTSV8jL5I_qkxc2O45Ck8SlFCo,545
188
190
  bluer_ugv/swallow/session/classical/screen/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
189
- bluer_ugv/swallow/session/classical/screen/classes.py,sha256=LeQOY_UeNfy5JJSMmlLvAdN-Ob0pChrdQRzm8Z0XexU,1202
191
+ bluer_ugv/swallow/session/classical/screen/classes.py,sha256=EzMJOcI5b153pHYAzTeNKU82CHc9AKyNS5ZfudoBvTo,1311
190
192
  bluer_ugv/swallow/session/classical/screen/video/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
191
193
  bluer_ugv/swallow/session/classical/screen/video/__main__.py,sha256=2uyKoxnZ9LwYWlEP_KDEyvIrwRL31SjK7I-xvM-eZpI,2190
192
194
  bluer_ugv/swallow/session/classical/screen/video/engine.py,sha256=-P_VSdqBjP2KBooMzcc-izWP-GMfl4q07t4Fyc6CQH4,3752
@@ -206,8 +208,8 @@ bluer_ugv/swallow/session/classical/ultrasonic_sensor/pack.py,sha256=bVcG8V0P6Sl
206
208
  bluer_ugv/swallow/session/classical/ultrasonic_sensor/review.py,sha256=_iQmec2VSq-ORkTVpXSNJg08hrSz2M1O8LzNZEtoT9U,959
207
209
  bluer_ugv/swallow/session/classical/ultrasonic_sensor/sensor.py,sha256=En-J8BRTiR8k9p2CBbW0cOUuw8nctD5DOXDm5uhCNO4,3987
208
210
  bluer_ugv/swallow/session/classical/ultrasonic_sensor/testing.py,sha256=yj2MY_Jo1FzeXnR_JoFAXsb9eHEVhicDiHEsUa8z03U,1525
209
- bluer_ugv-7.524.1.dist-info/licenses/LICENSE,sha256=ogEPNDSH0_dhiv_lT3ifVIdgIzHAqNA_SemnxUfPBJk,7048
210
- bluer_ugv-7.524.1.dist-info/METADATA,sha256=LXyLgoEDp8JBDUyslHlU6R2r8Gz_uDZOJfQTg3WQHr0,5579
211
- bluer_ugv-7.524.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
212
- bluer_ugv-7.524.1.dist-info/top_level.txt,sha256=_MlDhFvIPpher9Zs7xyJTHgO2xJJTbfR1dzncz3LQnk,10
213
- bluer_ugv-7.524.1.dist-info/RECORD,,
211
+ bluer_ugv-7.539.1.dist-info/licenses/LICENSE,sha256=ogEPNDSH0_dhiv_lT3ifVIdgIzHAqNA_SemnxUfPBJk,7048
212
+ bluer_ugv-7.539.1.dist-info/METADATA,sha256=U-tMHo5dOe2AP56UK4a2kMDswd70cR5V-71pbebou_4,5579
213
+ bluer_ugv-7.539.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
214
+ bluer_ugv-7.539.1.dist-info/top_level.txt,sha256=_MlDhFvIPpher9Zs7xyJTHgO2xJJTbfR1dzncz3LQnk,10
215
+ bluer_ugv-7.539.1.dist-info/RECORD,,