foodforthought-cli 0.3.0__py3-none-any.whl → 0.3.2__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.
ate/cli.py CHANGED
@@ -35,18 +35,18 @@ For more information, visit: https://kindly.fyi/docs/cli
35
35
  # Register all standard command parsers from ate/commands/
36
36
  register_all_parsers(subparsers)
37
37
 
38
- # Try to register robot commands (needs cv2, bleak, etc.)
38
+ # Try to register robot commands (needs cv2, bleak, numpy, PIL, etc.)
39
39
  try:
40
40
  from ate.robot.commands import register_robot_parser
41
41
  register_robot_parser(subparsers)
42
- except ImportError:
42
+ except (ImportError, NameError, AttributeError):
43
43
  pass # Robot deps not installed — skip registration
44
44
 
45
45
  # Try to register URDF generation commands (needs cv2, etc.)
46
46
  try:
47
47
  from ate.urdf.commands import register_parser as register_urdf_parser
48
48
  register_urdf_parser(subparsers)
49
- except ImportError:
49
+ except (ImportError, NameError, AttributeError):
50
50
  pass # URDF deps not installed — skip registration
51
51
 
52
52
  # Register additional specialized commands
@@ -304,7 +304,7 @@ def _dispatch_command(args):
304
304
  try:
305
305
  from ate.robot.commands import handle_robot_command
306
306
  handle_robot_command(args)
307
- except ImportError:
307
+ except (ImportError, NameError, AttributeError):
308
308
  print("Error: Robot commands require additional dependencies. "
309
309
  "Install with: pip install opencv-python bleak pyserial",
310
310
  file=sys.stderr)
@@ -317,7 +317,7 @@ def _dispatch_command(args):
317
317
  from ate.urdf.commands import handle as handle_urdf_command
318
318
  client = ATEClient()
319
319
  handle_urdf_command(client, args)
320
- except ImportError:
320
+ except (ImportError, NameError, AttributeError):
321
321
  print("Error: URDF commands require additional dependencies. "
322
322
  "Install with: pip install opencv-python",
323
323
  file=sys.stderr)
@@ -328,7 +328,7 @@ def _dispatch_command(args):
328
328
  if args.command == "robot-setup":
329
329
  try:
330
330
  _handle_robot_setup(args)
331
- except ImportError:
331
+ except (ImportError, NameError, AttributeError):
332
332
  print("Error: Robot-setup commands require additional dependencies. "
333
333
  "Install with: pip install opencv-python bleak pyserial",
334
334
  file=sys.stderr)
@@ -344,7 +344,7 @@ def _dispatch_command(args):
344
344
  if args.command == "transport":
345
345
  try:
346
346
  _handle_transport(args)
347
- except ImportError:
347
+ except (ImportError, NameError, AttributeError):
348
348
  print("Error: Transport commands require additional dependencies. "
349
349
  "Install with: pip install bleak pyserial",
350
350
  file=sys.stderr)
@@ -355,7 +355,7 @@ def _dispatch_command(args):
355
355
  if args.command == "ble":
356
356
  try:
357
357
  _handle_ble(args)
358
- except ImportError:
358
+ except (ImportError, NameError, AttributeError):
359
359
  print("Error: BLE commands require additional dependencies. "
360
360
  "Install with: pip install bleak",
361
361
  file=sys.stderr)
@@ -396,7 +396,7 @@ def _handle_robot_setup(args):
396
396
  if port.serial_number:
397
397
  print(f" Serial: {port.serial_number}")
398
398
  print()
399
- except ImportError:
399
+ except (ImportError, NameError, AttributeError):
400
400
  print("Error: pyserial not installed. Run: pip install pyserial")
401
401
  sys.exit(1)
402
402
  else:
@@ -10,6 +10,8 @@ Great for:
10
10
  - Real-time detection on limited hardware
11
11
  """
12
12
 
13
+ from __future__ import annotations
14
+
13
15
  from dataclasses import dataclass
14
16
  from typing import List, Tuple, Optional, Any, Dict
15
17
  import io
@@ -20,6 +22,7 @@ try:
20
22
  from PIL import Image as PILImage
21
23
  HAS_PIL = True
22
24
  except ImportError:
25
+ PILImage = None # type: ignore[assignment]
23
26
  HAS_PIL = False
24
27
 
25
28
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: foodforthought-cli
3
- Version: 0.3.0
3
+ Version: 0.3.2
4
4
  Summary: CLI tool for FoodforThought robotics repository platform - manage robot skills and data
5
5
  Home-page: https://kindly.fyi/foodforthought
6
6
  Author: Kindly Robotics
@@ -1,7 +1,7 @@
1
1
  ate/__init__.py,sha256=Cz_VuDnr1YKp2Tx2JfCySdEVmCZa3g-hru0zojOGBQo,272
2
2
  ate/__main__.py,sha256=vlNTxvw6t20WrGPOa4n-RQk9BpBODTib9aFh8H310Jk,329
3
3
  ate/bridge_server.py,sha256=FI9PSLzq_eW9JYUS_qzTHZ4NnOkIr7G7sdwTWSYaMnQ,21365
4
- ate/cli.py,sha256=gg0nzdvyrH9SONQHzE3hQGT_ic8SrGDKa0Z8ifKqq7g,36866
4
+ ate/cli.py,sha256=KvlnsbCNKN6N0HLR0idsq1ueeAn9dGoumRTmKk7rQQ8,37110
5
5
  ate/client.py,sha256=aHW2DCnqlnO29IjYirv1Qhxen46yu157tXxpV676nQQ,3252
6
6
  ate/compatibility.py,sha256=K5pSpPVHLgPSIF-a6kIJrehI9wl5AH3Cx76rOFCUZ2k,23094
7
7
  ate/generator.py,sha256=DUPat3cmoe9ufPajHFoI5kK6tfvPtVtB9gLvTlJzPdU,18308
@@ -37,7 +37,7 @@ ate/commands/team.py,sha256=1ofsOeAL51pvnIleGJZysRhmZRClhQTjRYEAe3ROLKc,4841
37
37
  ate/commands/workflow.py,sha256=vi1kG8ObUOlUudIOuZhbDDK95kwyve6nc1M1oPzMeZQ,9307
38
38
  ate/detection/__init__.py,sha256=j3bSY0rtlxfXdqyYKiHvdELyrK0txFawtM8ISuPQ09E,950
39
39
  ate/detection/base.py,sha256=kaJQ8ZzJhDxBVTrL5lQKCmMl1yV3qz51Xf87FjjDxPA,4037
40
- ate/detection/color_detector.py,sha256=5TuUxUEBQGX4UJZcVGncP7K6XDM2rGU7qcQXaGqWcr4,12718
40
+ ate/detection/color_detector.py,sha256=rSBr6nQIJkHbv6dnaG7zp30rxUyD1LbwgxFCk7LfpKs,12802
41
41
  ate/detection/trash_detector.py,sha256=rTQH3U_NHvSzquqxpvSBfKvyjSNqk7OLb4QaNV64Iw8,10407
42
42
  ate/drivers/__init__.py,sha256=y4eoc55zPYkOy3Q0y07kHhB4Z7-XQyaR2SDp6Rz5-ys,888
43
43
  ate/drivers/ble_transport.py,sha256=qfDtvbnPG9cOBJ2XciqYyVeIvtXSC772E8Usn6EGr9E,12304
@@ -159,8 +159,8 @@ test_full_auto/servo_map.py,sha256=p86iBqkBDa09JKVm_TWC1j42erOQMTb96eMHWZtdGf4,4
159
159
  test_smart_detect/__init__.py,sha256=qIrQzLk38jm9kfGtyqVHEuBNE-ljz3v3P8jg7aIARF0,160
160
160
  test_smart_detect/primitives.py,sha256=W9AtSjeTBy5gteEKS0NkZgogL1Hf2Etxsdd0hq6LRhs,3846
161
161
  test_smart_detect/servo_map.py,sha256=p86iBqkBDa09JKVm_TWC1j42erOQMTb96eMHWZtdGf4,4543
162
- foodforthought_cli-0.3.0.dist-info/METADATA,sha256=BdnQkd1TgYMKcDyXwy1RUgBCDuJvxh0suUh_R0_T9Oc,9968
163
- foodforthought_cli-0.3.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
164
- foodforthought_cli-0.3.0.dist-info/entry_points.txt,sha256=JSxWuXCbGllyHqVJpomP_BDlXYpiNglM9Mo6bEmQK1A,37
165
- foodforthought_cli-0.3.0.dist-info/top_level.txt,sha256=Q8RL26hnZ7yLJbGqHMbthsZJJRho-UvpOJAEtAG4NbI,84
166
- foodforthought_cli-0.3.0.dist-info/RECORD,,
162
+ foodforthought_cli-0.3.2.dist-info/METADATA,sha256=mvOEfz8jSvJ272zy-_kj55Jqws7IvwR6uNQVG7yHFLw,9968
163
+ foodforthought_cli-0.3.2.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
164
+ foodforthought_cli-0.3.2.dist-info/entry_points.txt,sha256=JSxWuXCbGllyHqVJpomP_BDlXYpiNglM9Mo6bEmQK1A,37
165
+ foodforthought_cli-0.3.2.dist-info/top_level.txt,sha256=Q8RL26hnZ7yLJbGqHMbthsZJJRho-UvpOJAEtAG4NbI,84
166
+ foodforthought_cli-0.3.2.dist-info/RECORD,,