From a78b392dfc26320e8a03f0d615cf113a32b6cee8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sat, 3 Sep 2022 01:21:06 -0700 Subject: [PATCH 01/90] add src.pybricks.abm submodule for ABM-decorating Pybricks actuating & sensing functionalities --- pyproject.toml | 2 ++ src/pybricks/abm.py | 1 + 2 files changed, 3 insertions(+) create mode 100644 src/pybricks/abm.py diff --git a/pyproject.toml b/pyproject.toml index eef97893..a30094b8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,6 +27,8 @@ packages = [ [tool.poetry.dependencies] python = "^3.8" +Agent-Behavior-Model = '>= 22.9.3' + [tool.poetry.dev-dependencies] black = "^22.3.0" doc8 = "^0.8.1" diff --git a/src/pybricks/abm.py b/src/pybricks/abm.py new file mode 100644 index 00000000..a5f752da --- /dev/null +++ b/src/pybricks/abm.py @@ -0,0 +1 @@ +"""ABM-decorated Pybricks actuating & sensing functionalities.""" From 29d9d668c3abf331f802add01801870050777ace Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sat, 3 Sep 2022 02:00:16 -0700 Subject: [PATCH 02/90] ABM-decorate pybricks.robotics.DriveBase --- src/pybricks/abm.py | 51 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/src/pybricks/abm.py b/src/pybricks/abm.py index a5f752da..0ab7cc9b 100644 --- a/src/pybricks/abm.py +++ b/src/pybricks/abm.py @@ -1 +1,52 @@ """ABM-decorated Pybricks actuating & sensing functionalities.""" + + +from abm.decor import act, sense + +from .robotics import DriveBase + + +def decor(cls: type, method_name: str, decorator: callable, /): + """Decorate class method with.""" + setattr(cls, method_name, decorator(getattr(cls, method_name))) + + +# robotics.DriveBase +# ================== +# (docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase) +# ----------------------------------------------------------------------- +for a in ( + # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.straight + 'straight', + + # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.turn + 'turn', + + # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.curve + 'curve', + + # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.settings + 'settings', + + # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.drive + 'drive', + + # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.stop + 'stop', + + # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.reset + 'reset', +): + decor(DriveBase, a, act) + +for s in ( + # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.distance + 'distance', + + # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.angle + 'angle', + + # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.state + 'state', +): + decor(DriveBase, s, sense) From 342655dac4b3df59c9703b68518774bb8d721d8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sat, 3 Sep 2022 09:50:50 -0700 Subject: [PATCH 03/90] add pybricks.interactive --- src/pybricks/__init__.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/pybricks/__init__.py b/src/pybricks/__init__.py index 712e14b3..eb76b6db 100644 --- a/src/pybricks/__init__.py +++ b/src/pybricks/__init__.py @@ -1,5 +1,7 @@ from typing import Tuple +from abm import interactive # noqa: F401 + version: Tuple[str, str, str] = ( "hub", From 6847157a90649e726afe269f29e1fa140e27300d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sat, 3 Sep 2022 10:06:02 -0700 Subject: [PATCH 04/90] ABM-decorate pybricks.tools submodule --- src/pybricks/abm.py | 40 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/src/pybricks/abm.py b/src/pybricks/abm.py index 0ab7cc9b..5c6273c9 100644 --- a/src/pybricks/abm.py +++ b/src/pybricks/abm.py @@ -4,6 +4,8 @@ from abm.decor import act, sense from .robotics import DriveBase +from .tools import StopWatch +from . import tools def decor(cls: type, method_name: str, decorator: callable, /): @@ -11,8 +13,11 @@ def decor(cls: type, method_name: str, decorator: callable, /): setattr(cls, method_name, decorator(getattr(cls, method_name))) -# robotics.DriveBase -# ================== +# robotics +# (docs.pybricks.com/en/latest/robotics.html) +# =========================================== + +# DriveBase # (docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase) # ----------------------------------------------------------------------- for a in ( @@ -50,3 +55,34 @@ def decor(cls: type, method_name: str, decorator: callable, /): 'state', ): decor(DriveBase, s, sense) + + +# tools +# (docs.pybricks.com/en/latest/tools) +# =================================== + +# StopWatch +# (docs.pybricks.com/en/latest/tools/#pybricks.tools.StopWatch) +# ------------------------------------------------------------- +for a in ( + # docs.pybricks.com/en/latest/tools/index.html#pybricks.tools.StopWatch.pause + 'pause', + + # docs.pybricks.com/en/latest/tools/index.html#pybricks.tools.StopWatch.resume + 'resume', + + # docs.pybricks.com/en/latest/tools/index.html#pybricks.tools.StopWatch.reset + 'reset', +): + decor(StopWatch, a, act) + +for s in ( + # docs.pybricks.com/en/latest/tools/index.html#pybricks.tools.StopWatch.time + 'time', +): + decor(StopWatch, s, sense) + +# wait +# (docs.pybricks.com/en/latest/tools/index.html#pybricks.tools.wait) +# ------------------------------------------------------------------ +tools.wait: callable = act(tools.wait) From 677fc9880f984ea92d1da6dadbc21d60afa1c22a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sat, 3 Sep 2022 11:21:31 -0700 Subject: [PATCH 05/90] add TODOs to src.pybricks.abm submodule --- src/pybricks/abm.py | 84 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) diff --git a/src/pybricks/abm.py b/src/pybricks/abm.py index 5c6273c9..ac86f420 100644 --- a/src/pybricks/abm.py +++ b/src/pybricks/abm.py @@ -3,6 +3,16 @@ from abm.decor import act, sense +from .hubs import (EV3Brick, # noqa: F401 + InventorHub, PrimeHub, CityHub, MoveHub, TechnicHub) +from .iodevices import (AnalogSensor, # noqa: F401 + DCMotor, + Ev3devSensor, + I2CDevice, + LUMPDevice, + LWP3Device, + PUPDevice, + UARTDevice) from .robotics import DriveBase from .tools import StopWatch from . import tools @@ -13,6 +23,80 @@ def decor(cls: type, method_name: str, decorator: callable, /): setattr(cls, method_name, decorator(getattr(cls, method_name))) +# hubs +# (docs.pybricks.com/en/latest/hubs | pybricks.com/ev3-micropython/hubs) +# ====================================================================== + +# EV3Brick +# (pybricks.com/ev3-micropython/hubs#pybricks.hubs.EV3Brick) +# ---------------------------------------------------------- +# TODO + +# InventorHub +# (docs.pybricks.com/en/latest/hubs/primehub.html#InventorHub) +# ------------------------------------------------------------ +# TODO + +# PrimeHub +# (docs.pybricks.com/en/latest/hubs/primehub.html#pybricks.hubs.PrimeHub) +# ----------------------------------------------------------------------- +# TODO + +# CityHub +# (docs.pybricks.com/en/latest/hubs/cityhub.html#pybricks.hubs.CityHub) +# --------------------------------------------------------------------- +# TODO + +# MoveHub +# (docs.pybricks.com/en/latest/hubs/movehub.html#pybricks.hubs.MoveHub) +# --------------------------------------------------------------------- +# TODO + +# TechnicHub +# (docs.pybricks.com/en/latest/hubs/technichub.html#pybricks.hubs.TechnicHub) +# --------------------------------------------------------------------------- +# TODO + + +# iodevices +# (docs.pybricks.com/en/latest/iodevices) +# ======================================= + +# AnalogSensor +# ------------ +# TODO + +# DCMotor +# ------- +# TODO + +# Ev3devSensor +# ------------ +# TODO + +# I2CDevice +# --------- +# TODO + +# LUMPDevice +# ---------- +# TODO + +# LWP3Device +# (docs.pybricks.com/en/latest/iodevices/lwp3device.html#pybricks.iodevices.LWP3Device) +# ------------------------------------------------------------------------------------- +# TODO + +# PUPDevice +# (docs.pybricks.com/en/latest/iodevices/pupdevice.html#pybricks.iodevices.PUPDevice) +# ----------------------------------------------------------------------------------- +# TODO + +# UARTDevice +# ---------- +# TODO + + # robotics # (docs.pybricks.com/en/latest/robotics.html) # =========================================== From f5ed550f070d3fe2945c874c02a363d9672d4afb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sat, 3 Sep 2022 13:25:21 -0700 Subject: [PATCH 06/90] ABM-decorate EV3Speaker in src.pybricks.abm submodule --- src/pybricks/abm.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/pybricks/abm.py b/src/pybricks/abm.py index ac86f420..9112cf3a 100644 --- a/src/pybricks/abm.py +++ b/src/pybricks/abm.py @@ -13,6 +13,7 @@ LWP3Device, PUPDevice, UARTDevice) +from .ev3dev._speaker import Speaker as EV3Speaker from .robotics import DriveBase from .tools import StopWatch from . import tools @@ -32,6 +33,30 @@ def decor(cls: type, method_name: str, decorator: callable, /): # ---------------------------------------------------------- # TODO +# EV3Speaker +# ---------- +for a in ( + # pybricks.com/ev3-micropython/hubs#pybricks.hubs.EV3Brick.speaker.beep + 'beep', + + # pybricks.com/ev3-micropython/hubs#pybricks.hubs.EV3Brick.speaker.play_notes + 'play_notes', + + # pybricks.com/ev3-micropython/hubs#pybricks.hubs.EV3Brick.speaker.play_file + 'play_file', + + # pybricks.com/ev3-micropython/hubs#pybricks.hubs.EV3Brick.speaker.say + 'say', + + # pybricks.com/ev3-micropython/hubs#pybricks.hubs.EV3Brick.speaker.set_speech_options + 'set_speech_options', + + # pybricks.com/ev3-micropython/hubs#pybricks.hubs.EV3Brick.speaker.set_volume + 'set_volume', +): + decor(EV3Speaker, a, act) + + # InventorHub # (docs.pybricks.com/en/latest/hubs/primehub.html#InventorHub) # ------------------------------------------------------------ From 68f6754da0df0bccb43174ed6253b94cf3966108 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sat, 3 Sep 2022 13:42:57 -0700 Subject: [PATCH 07/90] ABM-decorate pybricks.tools.DataLog & .StopWatch in pybricks.abm submodule --- src/pybricks/abm.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/pybricks/abm.py b/src/pybricks/abm.py index 9112cf3a..25d7e54c 100644 --- a/src/pybricks/abm.py +++ b/src/pybricks/abm.py @@ -15,7 +15,7 @@ UARTDevice) from .ev3dev._speaker import Speaker as EV3Speaker from .robotics import DriveBase -from .tools import StopWatch +from .tools import DataLog, StopWatch from . import tools @@ -170,10 +170,19 @@ def decor(cls: type, method_name: str, decorator: callable, /): # (docs.pybricks.com/en/latest/tools) # =================================== +# DataLog +# (pybricks.com/ev3-micropython/tools#pybricks.tools.DataLog) +# ----------------------------------------------------------- +for data_log_act in ( + # pybricks.com/ev3-micropython/tools#pybricks.tools.DataLog.log + 'log', +): + decor(DataLog, data_log_act, act) + # StopWatch # (docs.pybricks.com/en/latest/tools/#pybricks.tools.StopWatch) # ------------------------------------------------------------- -for a in ( +for stop_watch_act in ( # docs.pybricks.com/en/latest/tools/index.html#pybricks.tools.StopWatch.pause 'pause', @@ -183,13 +192,13 @@ def decor(cls: type, method_name: str, decorator: callable, /): # docs.pybricks.com/en/latest/tools/index.html#pybricks.tools.StopWatch.reset 'reset', ): - decor(StopWatch, a, act) + decor(StopWatch, stop_watch_act, act) -for s in ( +for stop_watch_sense in ( # docs.pybricks.com/en/latest/tools/index.html#pybricks.tools.StopWatch.time 'time', ): - decor(StopWatch, s, sense) + decor(StopWatch, stop_watch_sense, sense) # wait # (docs.pybricks.com/en/latest/tools/index.html#pybricks.tools.wait) From b662fce79a2f3d6aa9fe0a34062e0356d1882d38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sat, 3 Sep 2022 13:46:19 -0700 Subject: [PATCH 08/90] ABM-decorate pybricks.tools.StopWatch & .wait(...) in pybricks.abm submodule --- src/pybricks/abm.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/pybricks/abm.py b/src/pybricks/abm.py index 25d7e54c..4c099b70 100644 --- a/src/pybricks/abm.py +++ b/src/pybricks/abm.py @@ -180,27 +180,27 @@ def decor(cls: type, method_name: str, decorator: callable, /): decor(DataLog, data_log_act, act) # StopWatch -# (docs.pybricks.com/en/latest/tools/#pybricks.tools.StopWatch) -# ------------------------------------------------------------- +# (docs.pybricks.com/en/latest/tools#pybricks.tools.StopWatch) +# ------------------------------------------------------------ for stop_watch_act in ( - # docs.pybricks.com/en/latest/tools/index.html#pybricks.tools.StopWatch.pause + # docs.pybricks.com/en/latest/tools#pybricks.tools.StopWatch.pause 'pause', - # docs.pybricks.com/en/latest/tools/index.html#pybricks.tools.StopWatch.resume + # docs.pybricks.com/en/latest/tools#pybricks.tools.StopWatch.resume 'resume', - # docs.pybricks.com/en/latest/tools/index.html#pybricks.tools.StopWatch.reset + # docs.pybricks.com/en/latest/tools#pybricks.tools.StopWatch.reset 'reset', ): decor(StopWatch, stop_watch_act, act) for stop_watch_sense in ( - # docs.pybricks.com/en/latest/tools/index.html#pybricks.tools.StopWatch.time + # docs.pybricks.com/en/latest/tools#pybricks.tools.StopWatch.time 'time', ): decor(StopWatch, stop_watch_sense, sense) # wait -# (docs.pybricks.com/en/latest/tools/index.html#pybricks.tools.wait) -# ------------------------------------------------------------------ +# (docs.pybricks.com/en/latest/tools#pybricks.tools.wait) +# ------------------------------------------------------- tools.wait: callable = act(tools.wait) From 5680103c21a25ad5ee70bb0c0444fd9a37410d56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sat, 3 Sep 2022 13:58:00 -0700 Subject: [PATCH 09/90] ABM-decorate pybricks.robotics.DriveBase in pybricks.abm submodule --- src/pybricks/abm.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/pybricks/abm.py b/src/pybricks/abm.py index 4c099b70..90af4835 100644 --- a/src/pybricks/abm.py +++ b/src/pybricks/abm.py @@ -129,7 +129,7 @@ def decor(cls: type, method_name: str, decorator: callable, /): # DriveBase # (docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase) # ----------------------------------------------------------------------- -for a in ( +for drive_base_act in ( # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.straight 'straight', @@ -151,9 +151,9 @@ def decor(cls: type, method_name: str, decorator: callable, /): # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.reset 'reset', ): - decor(DriveBase, a, act) + decor(DriveBase, drive_base_act, act) -for s in ( +for drive_base_sense in ( # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.distance 'distance', @@ -163,7 +163,7 @@ def decor(cls: type, method_name: str, decorator: callable, /): # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.state 'state', ): - decor(DriveBase, s, sense) + decor(DriveBase, drive_base_sense, sense) # tools From 7a92655f8bd3b17986837031e0f8d76f86a01152 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sat, 3 Sep 2022 14:05:48 -0700 Subject: [PATCH 10/90] add pybricks.messaging to pybricks.abm submodule --- src/pybricks/abm.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/pybricks/abm.py b/src/pybricks/abm.py index 90af4835..09613012 100644 --- a/src/pybricks/abm.py +++ b/src/pybricks/abm.py @@ -14,6 +14,9 @@ PUPDevice, UARTDevice) from .ev3dev._speaker import Speaker as EV3Speaker +from .messaging import (Connection, # noqa: F401 + Mailbox, LogicMailbox, NumericMailbox, TextMailbox, + BluetoothMailboxServer, BluetoothMailboxClient) from .robotics import DriveBase from .tools import DataLog, StopWatch from . import tools From e4589b0cb0b247de68800577ca7932ff06b918a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sat, 3 Sep 2022 14:08:33 -0700 Subject: [PATCH 11/90] ABM-decorate EV3Speaker in pybricks.abm submodule --- src/pybricks/abm.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pybricks/abm.py b/src/pybricks/abm.py index 09613012..8982227b 100644 --- a/src/pybricks/abm.py +++ b/src/pybricks/abm.py @@ -38,7 +38,7 @@ def decor(cls: type, method_name: str, decorator: callable, /): # EV3Speaker # ---------- -for a in ( +for ev3_speaker_act in ( # pybricks.com/ev3-micropython/hubs#pybricks.hubs.EV3Brick.speaker.beep 'beep', @@ -57,7 +57,7 @@ def decor(cls: type, method_name: str, decorator: callable, /): # pybricks.com/ev3-micropython/hubs#pybricks.hubs.EV3Brick.speaker.set_volume 'set_volume', ): - decor(EV3Speaker, a, act) + decor(EV3Speaker, ev3_speaker_act, act) # InventorHub From acb0c62ed78950ea8eeb2c40cb69e97c29e77451 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sat, 3 Sep 2022 14:23:26 -0700 Subject: [PATCH 12/90] ABM-decorate pybricks.iodevices.PUPDevice in pybricks.abm submodule --- src/pybricks/abm.py | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/src/pybricks/abm.py b/src/pybricks/abm.py index 8982227b..715e770b 100644 --- a/src/pybricks/abm.py +++ b/src/pybricks/abm.py @@ -5,15 +5,15 @@ from .hubs import (EV3Brick, # noqa: F401 InventorHub, PrimeHub, CityHub, MoveHub, TechnicHub) -from .iodevices import (AnalogSensor, # noqa: F401 - DCMotor, - Ev3devSensor, - I2CDevice, - LUMPDevice, - LWP3Device, - PUPDevice, - UARTDevice) from .ev3dev._speaker import Speaker as EV3Speaker +from .iodevices import (AnalogSensor as IOAnalogSensor, + DCMotor as IODCMotor, + Ev3devSensor as IOEV3DevSensor, + I2CDevice as IOI2CDevice, + LUMPDevice as IOLUMPDevice, + LWP3Device as IOLWP3Device, + PUPDevice as IOPUpDevice, + UARTDevice as IOUARTDevice) from .messaging import (Connection, # noqa: F401 Mailbox, LogicMailbox, NumericMailbox, TextMailbox, BluetoothMailboxServer, BluetoothMailboxClient) @@ -115,10 +115,23 @@ def decor(cls: type, method_name: str, decorator: callable, /): # ------------------------------------------------------------------------------------- # TODO -# PUPDevice +# IOPUpDevice # (docs.pybricks.com/en/latest/iodevices/pupdevice.html#pybricks.iodevices.PUPDevice) # ----------------------------------------------------------------------------------- -# TODO +for io_pup_device_act in ( + # docs.pybricks.com/en/latest/iodevices/pupdevice.html#pybricks.iodevices.PUPDevice.write + 'write', +): + decor(IOPUpDevice, io_pup_device_act, act) + +for io_pup_device_sense in ( + # docs.pybricks.com/en/latest/iodevices/pupdevice.html#pybricks.iodevices.PUPDevice.info + 'info', + + # docs.pybricks.com/en/latest/iodevices/pupdevice.html#pybricks.iodevices.PUPDevice.read + 'read', +): + decor(IOPUpDevice, io_pup_device_sense, sense) # UARTDevice # ---------- From f8f737631716c13ad4531ec75895bd08b5ffdc03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sat, 3 Sep 2022 14:32:36 -0700 Subject: [PATCH 13/90] ABM-decorate pybricks.iodevices.AnalogSensor in pybricks.abm submodule --- src/pybricks/abm.py | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/pybricks/abm.py b/src/pybricks/abm.py index 715e770b..62376144 100644 --- a/src/pybricks/abm.py +++ b/src/pybricks/abm.py @@ -90,11 +90,27 @@ def decor(cls: type, method_name: str, decorator: callable, /): # (docs.pybricks.com/en/latest/iodevices) # ======================================= -# AnalogSensor -# ------------ -# TODO +# IOAnalogSensor +# (pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.AnalogSensor) +# ------------------------------------------------------------------------ +for io_analog_sensor_act in ( + # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.AnalogSensor.active + 'active', + + # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.AnalogSensor.passive + 'passive', +): + decor(IOAnalogSensor, io_analog_sensor_act, act) + +for io_analog_sensor_sense in ( + # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.AnalogSensor.voltage + 'voltage', + + # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.AnalogSensor.resistance + 'resistance', +): + decor(IOAnalogSensor, io_analog_sensor_sense, sense) -# DCMotor # ------- # TODO From 8c7009d1d82cdc79370a5235a6b3fd73e6bcf5cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sat, 3 Sep 2022 14:39:12 -0700 Subject: [PATCH 14/90] ABM-decorate pybricks.iodevices.DCMotor in pybricks.abm submodule --- src/pybricks/abm.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/pybricks/abm.py b/src/pybricks/abm.py index 62376144..6ecd534a 100644 --- a/src/pybricks/abm.py +++ b/src/pybricks/abm.py @@ -111,8 +111,14 @@ def decor(cls: type, method_name: str, decorator: callable, /): ): decor(IOAnalogSensor, io_analog_sensor_sense, sense) -# ------- -# TODO +# IODCMotor +# (pybricks.com/ev3-micropython/iodevices#dc-motor) +# ------------------------------------------------- +for io_dc_motor_act in ( + 'dc', + 'stop', +): + decor(IODCMotor, io_dc_motor_act, act) # Ev3devSensor # ------------ From 8946d09ebfaf31ee0f2a1d2c6644d2f40a6d8a60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sat, 3 Sep 2022 14:44:39 -0700 Subject: [PATCH 15/90] ABM-decorate pybricks.iodevices.Ev3devSensor in pybricks.abm submodule --- src/pybricks/abm.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/pybricks/abm.py b/src/pybricks/abm.py index 6ecd534a..868d5249 100644 --- a/src/pybricks/abm.py +++ b/src/pybricks/abm.py @@ -120,9 +120,14 @@ def decor(cls: type, method_name: str, decorator: callable, /): ): decor(IODCMotor, io_dc_motor_act, act) -# Ev3devSensor -# ------------ -# TODO +# IOEV3DevSensor +# (pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.Ev3devSensor) +# ------------------------------------------------------------------------ +for io_ev3dev_sensor_sense in ( + # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.Ev3devSensor.read + 'read', +): + decor(IOEV3DevSensor, io_ev3dev_sensor_sense, sense) # I2CDevice # --------- From ce8a1ded612c7e096a1509b9ba454458e57e5c2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sat, 3 Sep 2022 14:48:23 -0700 Subject: [PATCH 16/90] ABM-decorate pybricks.iodevices.I2CDevice in pybricks.abm submodule --- src/pybricks/abm.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/pybricks/abm.py b/src/pybricks/abm.py index 868d5249..6cc0025c 100644 --- a/src/pybricks/abm.py +++ b/src/pybricks/abm.py @@ -129,9 +129,20 @@ def decor(cls: type, method_name: str, decorator: callable, /): ): decor(IOEV3DevSensor, io_ev3dev_sensor_sense, sense) -# I2CDevice -# --------- -# TODO +# IOI2CDevice +# (pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.I2CDevice) +# --------------------------------------------------------------------- +for io_i2c_device_act in ( + # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.I2CDevice.write + 'write', +): + decor(IOI2CDevice, io_i2c_device_act, act) + +for io_i2c_device_sense in ( + # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.I2CDevice.read + 'read', +): + decor(IOI2CDevice, io_i2c_device_sense, sense) # LUMPDevice # ---------- From ef4ad1978f113dedf52f09a87c83e5f9afd6c063 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sat, 3 Sep 2022 14:51:55 -0700 Subject: [PATCH 17/90] ABM-decorate pybricks.iodevices.LUMPDevice in pybricks.abm submodule --- src/pybricks/abm.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/pybricks/abm.py b/src/pybricks/abm.py index 6cc0025c..8dfe7c6b 100644 --- a/src/pybricks/abm.py +++ b/src/pybricks/abm.py @@ -144,9 +144,20 @@ def decor(cls: type, method_name: str, decorator: callable, /): ): decor(IOI2CDevice, io_i2c_device_sense, sense) -# LUMPDevice -# ---------- -# TODO +# IOLUMPDevice +# (pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.LUMPDevice) +# ---------------------------------------------------------------------- +for io_lump_device_act in ( + # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.LUMPDevice.write + 'write', +): + decor(IOLUMPDevice, io_lump_device_act, act) + +for io_lump_device_sense in ( + # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.LUMPDevice.read + 'read', +): + decor(IOLUMPDevice, io_lump_device_sense, sense) # LWP3Device # (docs.pybricks.com/en/latest/iodevices/lwp3device.html#pybricks.iodevices.LWP3Device) From 71463f6926b24954c62f62ffc346a094831132b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sat, 3 Sep 2022 14:56:25 -0700 Subject: [PATCH 18/90] ABM-decorate pybricks.iodevices.LWP3Device in pybricks.abm submodule --- src/pybricks/abm.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/pybricks/abm.py b/src/pybricks/abm.py index 8dfe7c6b..5b779812 100644 --- a/src/pybricks/abm.py +++ b/src/pybricks/abm.py @@ -159,10 +159,23 @@ def decor(cls: type, method_name: str, decorator: callable, /): ): decor(IOLUMPDevice, io_lump_device_sense, sense) -# LWP3Device +# IOLWP3Device # (docs.pybricks.com/en/latest/iodevices/lwp3device.html#pybricks.iodevices.LWP3Device) # ------------------------------------------------------------------------------------- -# TODO +for io_lwp3_device_act in ( + # docs.pybricks.com/en/latest/iodevices/lwp3device.html#pybricks.iodevices.LWP3Device.name + 'name', + + # docs.pybricks.com/en/latest/iodevices/lwp3device.html#pybricks.iodevices.LWP3Device.write + 'write', +): + decor(IOLWP3Device, io_lwp3_device_act, act) + +for io_lwp3_device_sense in ( + # docs.pybricks.com/en/latest/iodevices/lwp3device.html#pybricks.iodevices.LWP3Device.read + 'read', +): + decor(IOLWP3Device, io_lwp3_device_sense, sense) # IOPUpDevice # (docs.pybricks.com/en/latest/iodevices/pupdevice.html#pybricks.iodevices.PUPDevice) From 98bb1aba925623623ce29a02e1392c06d5a07f21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sat, 3 Sep 2022 15:04:06 -0700 Subject: [PATCH 19/90] ABM-decorate pybricks.iodevices.UARTDevice in pybricks.abm submodule --- src/pybricks/abm.py | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/src/pybricks/abm.py b/src/pybricks/abm.py index 5b779812..31802dbe 100644 --- a/src/pybricks/abm.py +++ b/src/pybricks/abm.py @@ -195,9 +195,29 @@ def decor(cls: type, method_name: str, decorator: callable, /): ): decor(IOPUpDevice, io_pup_device_sense, sense) -# UARTDevice -# ---------- -# TODO +# IOUARTDevice +# (pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.UARTDevice) +# ---------------------------------------------------------------------- +for io_uart_device_act in ( + # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.UARTDevice.write + 'write', + + # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.UARTDevice.clear + 'clear', +): + decor(IOUARTDevice, io_uart_device_act, act) + +for io_uart_device_sense in ( + # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.UARTDevice.read + 'read', + + # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.UARTDevice.read_all + 'read_all', + + # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.UARTDevice.waiting + 'waiting', +): + decor(IOUARTDevice, io_uart_device_sense, sense) # robotics From 0cfcd11b8417f7f8ec0439402a80178a0829ddc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sat, 3 Sep 2022 15:08:15 -0700 Subject: [PATCH 20/90] minor fix: pybricks.parameters --- src/pybricks/parameters.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pybricks/parameters.py b/src/pybricks/parameters.py index 2d1747e4..3733124d 100644 --- a/src/pybricks/parameters.py +++ b/src/pybricks/parameters.py @@ -11,7 +11,7 @@ from .geometry import Matrix as _Matrix -if TYPE_CHECKING or os.environ["SPHINX_BUILD"] == "True": +if TYPE_CHECKING or os.environ.get("SPHINX_BUILD") == "True": Number = Union[int, float] """ Numbers can be represented as integers or floating point values: From 651e3fae516257ddda5ab6158b87dc26a7056c57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sat, 3 Sep 2022 15:09:06 -0700 Subject: [PATCH 21/90] minor fix re: pybricks.abm.IOLUMPDevice.write --- src/pybricks/abm.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pybricks/abm.py b/src/pybricks/abm.py index 31802dbe..ebe26c09 100644 --- a/src/pybricks/abm.py +++ b/src/pybricks/abm.py @@ -149,7 +149,7 @@ def decor(cls: type, method_name: str, decorator: callable, /): # ---------------------------------------------------------------------- for io_lump_device_act in ( # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.LUMPDevice.write - 'write', + # 'write', # AttributeError: type object 'LUMPDevice' has no attribute 'write' ): decor(IOLUMPDevice, io_lump_device_act, act) From 5d527a8b17fab45393a32d16c8ae37d6b1c891be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sat, 3 Sep 2022 17:51:31 -0700 Subject: [PATCH 22/90] factor out src.pybricks.abm.util._decor(...), .act_decor(...) & .sense_decor(...) --- src/pybricks/abm/util.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/pybricks/abm/util.py diff --git a/src/pybricks/abm/util.py b/src/pybricks/abm/util.py new file mode 100644 index 00000000..cdd0a54f --- /dev/null +++ b/src/pybricks/abm/util.py @@ -0,0 +1,24 @@ +"""ABM-decorating utilities.""" + + +from collections.abc import Sequence + +from abm.decor import act, sense + + +__all__: Sequence[str] = 'act_decor', 'sense_decor' + + +def _decor(cls: type, method_name: str, decorator: callable, /): + """Decorate class method.""" + setattr(cls, method_name, decorator(getattr(cls, method_name))) + + +def act_decor(cls: type, method_name: str, /): + """Decorate class method with `act`.""" + _decor(cls, method_name, act) + + +def sense_decor(cls: type, method_name: str, /): + """Decorate class method with `sense`.""" + _decor(cls, method_name, sense) From 64e7b9c25e886b76a6a0bc5f8f1f357b078957f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sat, 3 Sep 2022 18:06:15 -0700 Subject: [PATCH 23/90] ABM-decorate pybricks.tools in pybricks.abm.tools submodule --- src/pybricks/abm.py | 304 --------------------------- src/pybricks/abm/__init__.py | 6 + src/pybricks/abm/tools/__init__.py | 7 + src/pybricks/abm/tools/data_log.py | 15 ++ src/pybricks/abm/tools/stop_watch.py | 27 +++ src/pybricks/abm/tools/wait.py | 12 ++ 6 files changed, 67 insertions(+), 304 deletions(-) delete mode 100644 src/pybricks/abm.py create mode 100755 src/pybricks/abm/__init__.py create mode 100755 src/pybricks/abm/tools/__init__.py create mode 100755 src/pybricks/abm/tools/data_log.py create mode 100755 src/pybricks/abm/tools/stop_watch.py create mode 100644 src/pybricks/abm/tools/wait.py diff --git a/src/pybricks/abm.py b/src/pybricks/abm.py deleted file mode 100644 index ebe26c09..00000000 --- a/src/pybricks/abm.py +++ /dev/null @@ -1,304 +0,0 @@ -"""ABM-decorated Pybricks actuating & sensing functionalities.""" - - -from abm.decor import act, sense - -from .hubs import (EV3Brick, # noqa: F401 - InventorHub, PrimeHub, CityHub, MoveHub, TechnicHub) -from .ev3dev._speaker import Speaker as EV3Speaker -from .iodevices import (AnalogSensor as IOAnalogSensor, - DCMotor as IODCMotor, - Ev3devSensor as IOEV3DevSensor, - I2CDevice as IOI2CDevice, - LUMPDevice as IOLUMPDevice, - LWP3Device as IOLWP3Device, - PUPDevice as IOPUpDevice, - UARTDevice as IOUARTDevice) -from .messaging import (Connection, # noqa: F401 - Mailbox, LogicMailbox, NumericMailbox, TextMailbox, - BluetoothMailboxServer, BluetoothMailboxClient) -from .robotics import DriveBase -from .tools import DataLog, StopWatch -from . import tools - - -def decor(cls: type, method_name: str, decorator: callable, /): - """Decorate class method with.""" - setattr(cls, method_name, decorator(getattr(cls, method_name))) - - -# hubs -# (docs.pybricks.com/en/latest/hubs | pybricks.com/ev3-micropython/hubs) -# ====================================================================== - -# EV3Brick -# (pybricks.com/ev3-micropython/hubs#pybricks.hubs.EV3Brick) -# ---------------------------------------------------------- -# TODO - -# EV3Speaker -# ---------- -for ev3_speaker_act in ( - # pybricks.com/ev3-micropython/hubs#pybricks.hubs.EV3Brick.speaker.beep - 'beep', - - # pybricks.com/ev3-micropython/hubs#pybricks.hubs.EV3Brick.speaker.play_notes - 'play_notes', - - # pybricks.com/ev3-micropython/hubs#pybricks.hubs.EV3Brick.speaker.play_file - 'play_file', - - # pybricks.com/ev3-micropython/hubs#pybricks.hubs.EV3Brick.speaker.say - 'say', - - # pybricks.com/ev3-micropython/hubs#pybricks.hubs.EV3Brick.speaker.set_speech_options - 'set_speech_options', - - # pybricks.com/ev3-micropython/hubs#pybricks.hubs.EV3Brick.speaker.set_volume - 'set_volume', -): - decor(EV3Speaker, ev3_speaker_act, act) - - -# InventorHub -# (docs.pybricks.com/en/latest/hubs/primehub.html#InventorHub) -# ------------------------------------------------------------ -# TODO - -# PrimeHub -# (docs.pybricks.com/en/latest/hubs/primehub.html#pybricks.hubs.PrimeHub) -# ----------------------------------------------------------------------- -# TODO - -# CityHub -# (docs.pybricks.com/en/latest/hubs/cityhub.html#pybricks.hubs.CityHub) -# --------------------------------------------------------------------- -# TODO - -# MoveHub -# (docs.pybricks.com/en/latest/hubs/movehub.html#pybricks.hubs.MoveHub) -# --------------------------------------------------------------------- -# TODO - -# TechnicHub -# (docs.pybricks.com/en/latest/hubs/technichub.html#pybricks.hubs.TechnicHub) -# --------------------------------------------------------------------------- -# TODO - - -# iodevices -# (docs.pybricks.com/en/latest/iodevices) -# ======================================= - -# IOAnalogSensor -# (pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.AnalogSensor) -# ------------------------------------------------------------------------ -for io_analog_sensor_act in ( - # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.AnalogSensor.active - 'active', - - # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.AnalogSensor.passive - 'passive', -): - decor(IOAnalogSensor, io_analog_sensor_act, act) - -for io_analog_sensor_sense in ( - # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.AnalogSensor.voltage - 'voltage', - - # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.AnalogSensor.resistance - 'resistance', -): - decor(IOAnalogSensor, io_analog_sensor_sense, sense) - -# IODCMotor -# (pybricks.com/ev3-micropython/iodevices#dc-motor) -# ------------------------------------------------- -for io_dc_motor_act in ( - 'dc', - 'stop', -): - decor(IODCMotor, io_dc_motor_act, act) - -# IOEV3DevSensor -# (pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.Ev3devSensor) -# ------------------------------------------------------------------------ -for io_ev3dev_sensor_sense in ( - # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.Ev3devSensor.read - 'read', -): - decor(IOEV3DevSensor, io_ev3dev_sensor_sense, sense) - -# IOI2CDevice -# (pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.I2CDevice) -# --------------------------------------------------------------------- -for io_i2c_device_act in ( - # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.I2CDevice.write - 'write', -): - decor(IOI2CDevice, io_i2c_device_act, act) - -for io_i2c_device_sense in ( - # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.I2CDevice.read - 'read', -): - decor(IOI2CDevice, io_i2c_device_sense, sense) - -# IOLUMPDevice -# (pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.LUMPDevice) -# ---------------------------------------------------------------------- -for io_lump_device_act in ( - # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.LUMPDevice.write - # 'write', # AttributeError: type object 'LUMPDevice' has no attribute 'write' -): - decor(IOLUMPDevice, io_lump_device_act, act) - -for io_lump_device_sense in ( - # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.LUMPDevice.read - 'read', -): - decor(IOLUMPDevice, io_lump_device_sense, sense) - -# IOLWP3Device -# (docs.pybricks.com/en/latest/iodevices/lwp3device.html#pybricks.iodevices.LWP3Device) -# ------------------------------------------------------------------------------------- -for io_lwp3_device_act in ( - # docs.pybricks.com/en/latest/iodevices/lwp3device.html#pybricks.iodevices.LWP3Device.name - 'name', - - # docs.pybricks.com/en/latest/iodevices/lwp3device.html#pybricks.iodevices.LWP3Device.write - 'write', -): - decor(IOLWP3Device, io_lwp3_device_act, act) - -for io_lwp3_device_sense in ( - # docs.pybricks.com/en/latest/iodevices/lwp3device.html#pybricks.iodevices.LWP3Device.read - 'read', -): - decor(IOLWP3Device, io_lwp3_device_sense, sense) - -# IOPUpDevice -# (docs.pybricks.com/en/latest/iodevices/pupdevice.html#pybricks.iodevices.PUPDevice) -# ----------------------------------------------------------------------------------- -for io_pup_device_act in ( - # docs.pybricks.com/en/latest/iodevices/pupdevice.html#pybricks.iodevices.PUPDevice.write - 'write', -): - decor(IOPUpDevice, io_pup_device_act, act) - -for io_pup_device_sense in ( - # docs.pybricks.com/en/latest/iodevices/pupdevice.html#pybricks.iodevices.PUPDevice.info - 'info', - - # docs.pybricks.com/en/latest/iodevices/pupdevice.html#pybricks.iodevices.PUPDevice.read - 'read', -): - decor(IOPUpDevice, io_pup_device_sense, sense) - -# IOUARTDevice -# (pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.UARTDevice) -# ---------------------------------------------------------------------- -for io_uart_device_act in ( - # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.UARTDevice.write - 'write', - - # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.UARTDevice.clear - 'clear', -): - decor(IOUARTDevice, io_uart_device_act, act) - -for io_uart_device_sense in ( - # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.UARTDevice.read - 'read', - - # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.UARTDevice.read_all - 'read_all', - - # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.UARTDevice.waiting - 'waiting', -): - decor(IOUARTDevice, io_uart_device_sense, sense) - - -# robotics -# (docs.pybricks.com/en/latest/robotics.html) -# =========================================== - -# DriveBase -# (docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase) -# ----------------------------------------------------------------------- -for drive_base_act in ( - # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.straight - 'straight', - - # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.turn - 'turn', - - # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.curve - 'curve', - - # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.settings - 'settings', - - # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.drive - 'drive', - - # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.stop - 'stop', - - # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.reset - 'reset', -): - decor(DriveBase, drive_base_act, act) - -for drive_base_sense in ( - # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.distance - 'distance', - - # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.angle - 'angle', - - # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.state - 'state', -): - decor(DriveBase, drive_base_sense, sense) - - -# tools -# (docs.pybricks.com/en/latest/tools) -# =================================== - -# DataLog -# (pybricks.com/ev3-micropython/tools#pybricks.tools.DataLog) -# ----------------------------------------------------------- -for data_log_act in ( - # pybricks.com/ev3-micropython/tools#pybricks.tools.DataLog.log - 'log', -): - decor(DataLog, data_log_act, act) - -# StopWatch -# (docs.pybricks.com/en/latest/tools#pybricks.tools.StopWatch) -# ------------------------------------------------------------ -for stop_watch_act in ( - # docs.pybricks.com/en/latest/tools#pybricks.tools.StopWatch.pause - 'pause', - - # docs.pybricks.com/en/latest/tools#pybricks.tools.StopWatch.resume - 'resume', - - # docs.pybricks.com/en/latest/tools#pybricks.tools.StopWatch.reset - 'reset', -): - decor(StopWatch, stop_watch_act, act) - -for stop_watch_sense in ( - # docs.pybricks.com/en/latest/tools#pybricks.tools.StopWatch.time - 'time', -): - decor(StopWatch, stop_watch_sense, sense) - -# wait -# (docs.pybricks.com/en/latest/tools#pybricks.tools.wait) -# ------------------------------------------------------- -tools.wait: callable = act(tools.wait) diff --git a/src/pybricks/abm/__init__.py b/src/pybricks/abm/__init__.py new file mode 100755 index 00000000..132aac7e --- /dev/null +++ b/src/pybricks/abm/__init__.py @@ -0,0 +1,6 @@ +"""ABM-decorating Pybricks actuating & sensing functions & class methods.""" + + +from . import ( # noqa: F401 + tools, +) diff --git a/src/pybricks/abm/tools/__init__.py b/src/pybricks/abm/tools/__init__.py new file mode 100755 index 00000000..74dfdd2c --- /dev/null +++ b/src/pybricks/abm/tools/__init__.py @@ -0,0 +1,7 @@ +"""ABM-decorating pybricks.tools.""" + + +# tools +# (docs.pybricks.com/en/latest/tools) +# =================================== +from . import data_log, stop_watch, wait # noqa: F401 diff --git a/src/pybricks/abm/tools/data_log.py b/src/pybricks/abm/tools/data_log.py new file mode 100755 index 00000000..91b8d0c4 --- /dev/null +++ b/src/pybricks/abm/tools/data_log.py @@ -0,0 +1,15 @@ +"""ABM-decorating pybricks.tools.DataLog.""" + + +from ...tools import DataLog +from ..util import act_decor + + +# DataLog +# (pybricks.com/ev3-micropython/tools#pybricks.tools.DataLog) +# ----------------------------------------------------------- +for a in ( + # pybricks.com/ev3-micropython/tools#pybricks.tools.DataLog.log + 'log', +): + act_decor(DataLog, a) diff --git a/src/pybricks/abm/tools/stop_watch.py b/src/pybricks/abm/tools/stop_watch.py new file mode 100755 index 00000000..e6551cb9 --- /dev/null +++ b/src/pybricks/abm/tools/stop_watch.py @@ -0,0 +1,27 @@ +"""ABM-decorating pybricks.tools.StopWatch.""" + + +from ...tools import StopWatch +from ..util import act_decor, sense_decor + + +# StopWatch +# (docs.pybricks.com/en/latest/tools#pybricks.tools.StopWatch) +# ------------------------------------------------------------ +for a in ( + # docs.pybricks.com/en/latest/tools#pybricks.tools.StopWatch.pause + 'pause', + + # docs.pybricks.com/en/latest/tools#pybricks.tools.StopWatch.resume + 'resume', + + # docs.pybricks.com/en/latest/tools#pybricks.tools.StopWatch.reset + 'reset', +): + act_decor(StopWatch, a) + +for s in ( + # docs.pybricks.com/en/latest/tools#pybricks.tools.StopWatch.time + 'time', +): + sense_decor(StopWatch, s) diff --git a/src/pybricks/abm/tools/wait.py b/src/pybricks/abm/tools/wait.py new file mode 100644 index 00000000..93f267bc --- /dev/null +++ b/src/pybricks/abm/tools/wait.py @@ -0,0 +1,12 @@ +"""ABM-decorating pybricks.tools.wait(...).""" + + +from abm.decor import act + +from ... import tools + + +# wait +# (docs.pybricks.com/en/latest/tools#pybricks.tools.wait) +# ------------------------------------------------------- +tools.wait: callable = act(tools.wait) From 20896dc910dbfec2a20c04f1f27a466c513aeccd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sat, 3 Sep 2022 18:09:51 -0700 Subject: [PATCH 24/90] ABM-decorate pybricks.robotics in pybricks.abm.robotics submodule --- src/pybricks/abm/__init__.py | 1 + src/pybricks/abm/robotics/__init__.py | 7 ++++ src/pybricks/abm/robotics/drive_base.py | 45 +++++++++++++++++++++++++ 3 files changed, 53 insertions(+) create mode 100755 src/pybricks/abm/robotics/__init__.py create mode 100755 src/pybricks/abm/robotics/drive_base.py diff --git a/src/pybricks/abm/__init__.py b/src/pybricks/abm/__init__.py index 132aac7e..23f5165b 100755 --- a/src/pybricks/abm/__init__.py +++ b/src/pybricks/abm/__init__.py @@ -2,5 +2,6 @@ from . import ( # noqa: F401 + robotics, tools, ) diff --git a/src/pybricks/abm/robotics/__init__.py b/src/pybricks/abm/robotics/__init__.py new file mode 100755 index 00000000..9bd14eb5 --- /dev/null +++ b/src/pybricks/abm/robotics/__init__.py @@ -0,0 +1,7 @@ +"""ABM-decorating pybricks.robotics.""" + + +# robotics +# (docs.pybricks.com/en/latest/robotics.html) +# =========================================== +from . import drive_base # noqa: F401 diff --git a/src/pybricks/abm/robotics/drive_base.py b/src/pybricks/abm/robotics/drive_base.py new file mode 100755 index 00000000..a95decda --- /dev/null +++ b/src/pybricks/abm/robotics/drive_base.py @@ -0,0 +1,45 @@ +"""ABM-decorating pybricks.robotics.DriveBase.""" + + +from ...robotics import DriveBase +from ..util import act_decor, sense_decor + + +# DriveBase +# (docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase) +# ----------------------------------------------------------------------- +for a in ( + # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.straight + 'straight', + + # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.turn + 'turn', + + # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.curve + 'curve', + + # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.settings + 'settings', + + # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.drive + 'drive', + + # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.stop + 'stop', + + # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.reset + 'reset', +): + act_decor(DriveBase, a) + +for s in ( + # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.distance + 'distance', + + # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.angle + 'angle', + + # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.state + 'state', +): + sense_decor(DriveBase, s) From 244bd78e949104df75450fe60bfd22f6d46f0657 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sat, 3 Sep 2022 18:58:32 -0700 Subject: [PATCH 25/90] ABM-decorate pybricks.iodevices in pybricks.abm.io submodule --- src/pybricks/abm/__init__.py | 1 + src/pybricks/abm/io/__init__.py | 6 ++++++ src/pybricks/abm/io/analog_sensor.py | 27 +++++++++++++++++++++++++ src/pybricks/abm/io/dc_motor.py | 15 ++++++++++++++ src/pybricks/abm/io/ev3dev_sensor.py | 15 ++++++++++++++ src/pybricks/abm/io/i2c.py | 21 +++++++++++++++++++ src/pybricks/abm/io/lump.py | 21 +++++++++++++++++++ src/pybricks/abm/io/lwp3.py | 24 ++++++++++++++++++++++ src/pybricks/abm/io/pup.py | 24 ++++++++++++++++++++++ src/pybricks/abm/io/uart.py | 30 ++++++++++++++++++++++++++++ 10 files changed, 184 insertions(+) create mode 100755 src/pybricks/abm/io/__init__.py create mode 100755 src/pybricks/abm/io/analog_sensor.py create mode 100755 src/pybricks/abm/io/dc_motor.py create mode 100755 src/pybricks/abm/io/ev3dev_sensor.py create mode 100644 src/pybricks/abm/io/i2c.py create mode 100755 src/pybricks/abm/io/lump.py create mode 100755 src/pybricks/abm/io/lwp3.py create mode 100755 src/pybricks/abm/io/pup.py create mode 100755 src/pybricks/abm/io/uart.py diff --git a/src/pybricks/abm/__init__.py b/src/pybricks/abm/__init__.py index 23f5165b..7876992d 100755 --- a/src/pybricks/abm/__init__.py +++ b/src/pybricks/abm/__init__.py @@ -2,6 +2,7 @@ from . import ( # noqa: F401 + io, robotics, tools, ) diff --git a/src/pybricks/abm/io/__init__.py b/src/pybricks/abm/io/__init__.py new file mode 100755 index 00000000..0f499baf --- /dev/null +++ b/src/pybricks/abm/io/__init__.py @@ -0,0 +1,6 @@ + +# iodevices +# (docs.pybricks.com/en/latest/iodevices) +# ======================================= +from . import (analog_sensor, dc_motor, # noqa: F401 + ev3dev_sensor, i2c, lump, lwp3, pup, uart) diff --git a/src/pybricks/abm/io/analog_sensor.py b/src/pybricks/abm/io/analog_sensor.py new file mode 100755 index 00000000..d5051580 --- /dev/null +++ b/src/pybricks/abm/io/analog_sensor.py @@ -0,0 +1,27 @@ +"""ABM-decorating pybricks.iodevices.AnalogSensor.""" + + +from ...iodevices import AnalogSensor +from ..util import act_decor, sense_decor + + +# AnalogSensor +# (pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.AnalogSensor) +# ------------------------------------------------------------------------ +for a in ( + # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.AnalogSensor.active + 'active', + + # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.AnalogSensor.passive + 'passive', +): + act_decor(AnalogSensor, a) + +for s in ( + # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.AnalogSensor.voltage + 'voltage', + + # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.AnalogSensor.resistance + 'resistance', +): + sense_decor(AnalogSensor, s) diff --git a/src/pybricks/abm/io/dc_motor.py b/src/pybricks/abm/io/dc_motor.py new file mode 100755 index 00000000..25153388 --- /dev/null +++ b/src/pybricks/abm/io/dc_motor.py @@ -0,0 +1,15 @@ +"""ABM-decorating pybricks.iodevices.DCMotor.""" + + +from ...iodevices import DCMotor +from ..util import act_decor + + +# DCMotor +# (pybricks.com/ev3-micropython/iodevices#dc-motor) +# ------------------------------------------------- +for a in ( + 'dc', + 'stop', +): + act_decor(DCMotor, a) diff --git a/src/pybricks/abm/io/ev3dev_sensor.py b/src/pybricks/abm/io/ev3dev_sensor.py new file mode 100755 index 00000000..a07cf5a7 --- /dev/null +++ b/src/pybricks/abm/io/ev3dev_sensor.py @@ -0,0 +1,15 @@ +"""ABM-decorating pybricks.iodevices.Ev3devSensor.""" + + +from ...iodevices import Ev3devSensor +from ..util import sense_decor + + +# Ev3devSensor +# (pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.Ev3devSensor) +# ------------------------------------------------------------------------ +for s in ( + # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.Ev3devSensor.read + 'read', +): + sense_decor(Ev3devSensor, s) diff --git a/src/pybricks/abm/io/i2c.py b/src/pybricks/abm/io/i2c.py new file mode 100644 index 00000000..67339dbc --- /dev/null +++ b/src/pybricks/abm/io/i2c.py @@ -0,0 +1,21 @@ +"""ABM-decorating pybricks.iodevices.I2CDevice.""" + + +from ...iodevices import I2CDevice +from ..util import act_decor, sense_decor + + +# I2CDevice +# (pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.I2CDevice) +# --------------------------------------------------------------------- +for a in ( + # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.I2CDevice.write + 'write', +): + act_decor(I2CDevice, a) + +for s in ( + # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.I2CDevice.read + 'read', +): + sense_decor(I2CDevice, s) diff --git a/src/pybricks/abm/io/lump.py b/src/pybricks/abm/io/lump.py new file mode 100755 index 00000000..6829fef6 --- /dev/null +++ b/src/pybricks/abm/io/lump.py @@ -0,0 +1,21 @@ +"""ABM-decorating pybricks.iodevices.LUMPDevice.""" + + +from ...iodevices import LUMPDevice +from ..util import act_decor, sense_decor + + +# LUMPDevice +# (pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.LUMPDevice) +# ---------------------------------------------------------------------- +for a in ( + # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.LUMPDevice.write + # 'write', # AttributeError: type object 'LUMPDevice' has no attribute 'write' +): + act_decor(LUMPDevice, a) + +for s in ( + # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.LUMPDevice.read + 'read', +): + sense_decor(LUMPDevice, s) diff --git a/src/pybricks/abm/io/lwp3.py b/src/pybricks/abm/io/lwp3.py new file mode 100755 index 00000000..a8326baf --- /dev/null +++ b/src/pybricks/abm/io/lwp3.py @@ -0,0 +1,24 @@ +"""ABM-decorating pybricks.iodevices.LWP3Device.""" + + +from ...iodevices import LWP3Device +from ..util import act_decor, sense_decor + + +# LWP3Device +# (docs.pybricks.com/en/latest/iodevices/lwp3device.html#pybricks.iodevices.LWP3Device) +# ------------------------------------------------------------------------------------- +for a in ( + # docs.pybricks.com/en/latest/iodevices/lwp3device.html#pybricks.iodevices.LWP3Device.name + 'name', + + # docs.pybricks.com/en/latest/iodevices/lwp3device.html#pybricks.iodevices.LWP3Device.write + 'write', +): + act_decor(LWP3Device, a) + +for s in ( + # docs.pybricks.com/en/latest/iodevices/lwp3device.html#pybricks.iodevices.LWP3Device.read + 'read', +): + sense_decor(LWP3Device, s) diff --git a/src/pybricks/abm/io/pup.py b/src/pybricks/abm/io/pup.py new file mode 100755 index 00000000..6369a4df --- /dev/null +++ b/src/pybricks/abm/io/pup.py @@ -0,0 +1,24 @@ +"""ABM-decorating pybricks.iodevices.PUPDevice.""" + + +from ...iodevices import PUPDevice +from ..util import act_decor, sense_decor + + +# PUPDevice +# (docs.pybricks.com/en/latest/iodevices/pupdevice.html#pybricks.iodevices.PUPDevice) +# ----------------------------------------------------------------------------------- +for a in ( + # docs.pybricks.com/en/latest/iodevices/pupdevice.html#pybricks.iodevices.PUPDevice.write + 'write', +): + act_decor(PUPDevice, a) + +for s in ( + # docs.pybricks.com/en/latest/iodevices/pupdevice.html#pybricks.iodevices.PUPDevice.info + 'info', + + # docs.pybricks.com/en/latest/iodevices/pupdevice.html#pybricks.iodevices.PUPDevice.read + 'read', +): + sense_decor(PUPDevice, s) diff --git a/src/pybricks/abm/io/uart.py b/src/pybricks/abm/io/uart.py new file mode 100755 index 00000000..570bb520 --- /dev/null +++ b/src/pybricks/abm/io/uart.py @@ -0,0 +1,30 @@ +"""ABM-decorating pybricks.iodevices.UARTDevice.""" + + +from ...iodevices import UARTDevice +from ..util import act_decor, sense_decor + + +# UARTDevice +# (pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.UARTDevice) +# ---------------------------------------------------------------------- +for a in ( + # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.UARTDevice.write + 'write', + + # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.UARTDevice.clear + 'clear', +): + act_decor(UARTDevice, a) + +for s in ( + # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.UARTDevice.read + 'read', + + # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.UARTDevice.read_all + 'read_all', + + # pybricks.com/ev3-micropython/iodevices#pybricks.iodevices.UARTDevice.waiting + 'waiting', +): + sense_decor(UARTDevice, s) From 63d4e78fa330de85cac3f3697ff1c91cb1612498 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sat, 3 Sep 2022 19:03:03 -0700 Subject: [PATCH 26/90] ABM-decorate pybricks.messaging in pybricks.abm.msg submodule --- src/pybricks/abm/__init__.py | 1 + src/pybricks/abm/io/__init__.py | 2 ++ src/pybricks/abm/msg/__init__.py | 6 ++++++ 3 files changed, 9 insertions(+) create mode 100755 src/pybricks/abm/msg/__init__.py diff --git a/src/pybricks/abm/__init__.py b/src/pybricks/abm/__init__.py index 7876992d..ad968404 100755 --- a/src/pybricks/abm/__init__.py +++ b/src/pybricks/abm/__init__.py @@ -3,6 +3,7 @@ from . import ( # noqa: F401 io, + msg, robotics, tools, ) diff --git a/src/pybricks/abm/io/__init__.py b/src/pybricks/abm/io/__init__.py index 0f499baf..93e2cfc6 100755 --- a/src/pybricks/abm/io/__init__.py +++ b/src/pybricks/abm/io/__init__.py @@ -1,3 +1,5 @@ +"""ABM-decorating pybricks.iodevices.""" + # iodevices # (docs.pybricks.com/en/latest/iodevices) diff --git a/src/pybricks/abm/msg/__init__.py b/src/pybricks/abm/msg/__init__.py new file mode 100755 index 00000000..ac277765 --- /dev/null +++ b/src/pybricks/abm/msg/__init__.py @@ -0,0 +1,6 @@ +"""ABM-decorating pybricks.messaging.""" + + +from ...messaging import (Connection, # noqa: F401 + Mailbox, LogicMailbox, NumericMailbox, TextMailbox, + BluetoothMailboxServer, BluetoothMailboxClient) From cbcc927ad87c40b529ab8eb8d4ac9ffefa6ae8cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sat, 3 Sep 2022 20:53:40 -0700 Subject: [PATCH 27/90] ABM-decorate pybricks.hubs.EV3Brick & pybricks.ev3devices --- src/pybricks/abm/__init__.py | 1 + src/pybricks/abm/ev3/__init__.py | 14 ++++++++++++++ src/pybricks/abm/ev3/speaker.py | 29 +++++++++++++++++++++++++++++ 3 files changed, 44 insertions(+) create mode 100755 src/pybricks/abm/ev3/__init__.py create mode 100755 src/pybricks/abm/ev3/speaker.py diff --git a/src/pybricks/abm/__init__.py b/src/pybricks/abm/__init__.py index ad968404..adc7733e 100755 --- a/src/pybricks/abm/__init__.py +++ b/src/pybricks/abm/__init__.py @@ -2,6 +2,7 @@ from . import ( # noqa: F401 + ev3, io, msg, robotics, diff --git a/src/pybricks/abm/ev3/__init__.py b/src/pybricks/abm/ev3/__init__.py new file mode 100755 index 00000000..c459ffec --- /dev/null +++ b/src/pybricks/abm/ev3/__init__.py @@ -0,0 +1,14 @@ +"""ABM-decorating pybricks.hubs.EV3Brick & pybricks.ev3devices.""" + + +from . import ( # noqa: F401 + # EV3Brick + # pybricks.com/ev3-micropython/hubs + # --------------------------------- + hub, + + # ev3devices + # (pybricks.com/ev3-micropython/ev3devices) + # ========================================= + speaker, +) diff --git a/src/pybricks/abm/ev3/speaker.py b/src/pybricks/abm/ev3/speaker.py new file mode 100755 index 00000000..5c2d2095 --- /dev/null +++ b/src/pybricks/abm/ev3/speaker.py @@ -0,0 +1,29 @@ +"""ABM-decorating EV3 Speaker.""" + + +from ...ev3dev._speaker import Speaker +from ..util import act_decor + + +# Speaker +# ------- +for a in ( + # pybricks.com/ev3-micropython/hubs#pybricks.hubs.EV3Brick.speaker.beep + 'beep', + + # pybricks.com/ev3-micropython/hubs#pybricks.hubs.EV3Brick.speaker.play_notes + 'play_notes', + + # pybricks.com/ev3-micropython/hubs#pybricks.hubs.EV3Brick.speaker.play_file + 'play_file', + + # pybricks.com/ev3-micropython/hubs#pybricks.hubs.EV3Brick.speaker.say + 'say', + + # pybricks.com/ev3-micropython/hubs#pybricks.hubs.EV3Brick.speaker.set_speech_options + 'set_speech_options', + + # pybricks.com/ev3-micropython/hubs#pybricks.hubs.EV3Brick.speaker.set_volume + 'set_volume', +): + act_decor(Speaker, a) From 48340a2fe44f441ff250261bf18575e06a08d089 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sat, 3 Sep 2022 20:54:43 -0700 Subject: [PATCH 28/90] ABM-decorate pybricks.hubs.EV3Brick in pybricks.abm.ev3.hub submodule --- src/pybricks/abm/ev3/hub.py | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100755 src/pybricks/abm/ev3/hub.py diff --git a/src/pybricks/abm/ev3/hub.py b/src/pybricks/abm/ev3/hub.py new file mode 100755 index 00000000..3f1320ec --- /dev/null +++ b/src/pybricks/abm/ev3/hub.py @@ -0,0 +1,7 @@ +"""ABM-decorating pybricks.hubs.EV3Brick.""" + + +# EV3Brick +# (pybricks.com/ev3-micropython/hubs#pybricks.hubs.EV3Brick) +# ---------------------------------------------------------- +# TODO From 79781c192293c9c458b755144d05cdecaecd7f60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sat, 3 Sep 2022 21:39:58 -0700 Subject: [PATCH 29/90] ABM-decorate Pybricks in pybricks.abm submodule --- src/pybricks/abm/__init__.py | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/pybricks/abm/__init__.py b/src/pybricks/abm/__init__.py index adc7733e..39205758 100755 --- a/src/pybricks/abm/__init__.py +++ b/src/pybricks/abm/__init__.py @@ -1,10 +1,4 @@ """ABM-decorating Pybricks actuating & sensing functions & class methods.""" -from . import ( # noqa: F401 - ev3, - io, - msg, - robotics, - tools, -) +from . import _common, ev3, nxt, pup, io, msg, robotics, tools # noqa: F401 From f1b1e6a6f40e9ba7f343656fb0b43d03a61806c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sat, 3 Sep 2022 22:29:34 -0700 Subject: [PATCH 30/90] ABM-decorate pybricks.nxtdevices.TouchSensor in pybricks.abm.nxt.touch_sensor submodule --- src/pybricks/abm/nxt/__init__.py | 11 +++++++++++ src/pybricks/abm/nxt/touch_sensor.py | 15 +++++++++++++++ 2 files changed, 26 insertions(+) create mode 100755 src/pybricks/abm/nxt/__init__.py create mode 100755 src/pybricks/abm/nxt/touch_sensor.py diff --git a/src/pybricks/abm/nxt/__init__.py b/src/pybricks/abm/nxt/__init__.py new file mode 100755 index 00000000..bd54855c --- /dev/null +++ b/src/pybricks/abm/nxt/__init__.py @@ -0,0 +1,11 @@ +"""ABM-decorate pybricks.nxtdevices.""" + + +from . import (color_sensor, # noqa: F401 + energy_meter, + light_sensor, + sound_sensor, + temp_sensor, + touch_sensor, + ultrasonic_sensor, + vernier_adapter) diff --git a/src/pybricks/abm/nxt/touch_sensor.py b/src/pybricks/abm/nxt/touch_sensor.py new file mode 100755 index 00000000..7a122389 --- /dev/null +++ b/src/pybricks/abm/nxt/touch_sensor.py @@ -0,0 +1,15 @@ +"""ABM-decorating pybricks.nxtdevices.TouchSensor.""" + + +from ...nxtdevices import TouchSensor +from ..util import sense_decor + + +# TouchSensor +# (pybricks.com/ev3-micropython/nxtdevices#pybricks.nxtdevices.TouchSensor) +# ------------------------------------------------------------------------- +for s in ( + # pybricks.com/ev3-micropython/nxtdevices#pybricks.nxtdevices.TouchSensor.pressed + 'pressed', +): + sense_decor(TouchSensor, s) From 255cd3537d4e1195902f0b6ddd75e6462ddb7820 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sat, 3 Sep 2022 22:33:26 -0700 Subject: [PATCH 31/90] ABM-decorate pybricks.nxtdevices.LightSensor in pybricks.abm.nxt.light_sensor submodule --- src/pybricks/abm/nxt/__init__.py | 5 ++++- src/pybricks/abm/nxt/light_sensor.py | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100755 src/pybricks/abm/nxt/light_sensor.py diff --git a/src/pybricks/abm/nxt/__init__.py b/src/pybricks/abm/nxt/__init__.py index bd54855c..36d6b3c4 100755 --- a/src/pybricks/abm/nxt/__init__.py +++ b/src/pybricks/abm/nxt/__init__.py @@ -1,6 +1,9 @@ -"""ABM-decorate pybricks.nxtdevices.""" +"""ABM-decorating pybricks.nxtdevices.""" +# nxtdevices +# (pybricks.com/ev3-micropython/nxtdevices) +# ========================================= from . import (color_sensor, # noqa: F401 energy_meter, light_sensor, diff --git a/src/pybricks/abm/nxt/light_sensor.py b/src/pybricks/abm/nxt/light_sensor.py new file mode 100755 index 00000000..b2b7a711 --- /dev/null +++ b/src/pybricks/abm/nxt/light_sensor.py @@ -0,0 +1,18 @@ +"""ABM-decorating pybricks.nxtdevices.LightSensor.""" + + +from ...nxtdevices import LightSensor +from ..util import sense_decor + + +# LightSensor +# (pybricks.com/ev3-micropython/nxtdevices#pybricks.nxtdevices.LightSensor) +# ------------------------------------------------------------------------- +for s in ( + # pybricks.com/ev3-micropython/nxtdevices#pybricks.nxtdevices.LightSensor.ambient + 'ambient', + + # pybricks.com/ev3-micropython/nxtdevices#pybricks.nxtdevices.LightSensor.reflection + 'reflection', +): + sense_decor(LightSensor, s) From d71a123013806117c8f0bac631ff8ab2ed43416e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sat, 3 Sep 2022 22:36:27 -0700 Subject: [PATCH 32/90] ABM-decorate pybricks.nxtdevices.SoundSensor in pybricks.abm.nxt.sound_sensor submodule --- src/pybricks/abm/nxt/sound_sensor.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100755 src/pybricks/abm/nxt/sound_sensor.py diff --git a/src/pybricks/abm/nxt/sound_sensor.py b/src/pybricks/abm/nxt/sound_sensor.py new file mode 100755 index 00000000..bc022783 --- /dev/null +++ b/src/pybricks/abm/nxt/sound_sensor.py @@ -0,0 +1,15 @@ +"""ABM-decorating pybricks.nxtdevices.SoundSensor.""" + + +from ...nxtdevices import SoundSensor +from ..util import sense_decor + + +# SoundSensor +# (pybricks.com/ev3-micropython/nxtdevices#pybricks.nxtdevices.SoundSensor) +# ------------------------------------------------------------------------- +for s in ( + # pybricks.com/ev3-micropython/nxtdevices#pybricks.nxtdevices.SoundSensor.intensity + 'intensity', +): + sense_decor(SoundSensor, s) From d599a6929eafea07e2fc888c1c3eb0631b2b6506 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 10:35:05 -0700 Subject: [PATCH 33/90] update VSCode settings to display ruler & exclude __pycache__ --- .vscode/settings.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.vscode/settings.json b/.vscode/settings.json index 670c0c3e..abf24c01 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,4 +1,10 @@ { + "editor.rulers": [88], + + "files.exclude": { + "**/__pycache__": true, + }, + "python.autoComplete.extraPaths": ["jedi/src"], "python.formatting.provider": "black", "python.linting.pylintEnabled": false, From 609e0cc4e1a3f956e90bc277f82e281ebc0d7249 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 10:40:38 -0700 Subject: [PATCH 34/90] suppress some Flake8 linting warnings --- src/pybricks/_common.py | 2 +- src/pybricks/geometry.py | 2 +- src/pybricks/media/ev3dev.py | 2 +- src/pybricks/parameters.py | 2 +- src/pybricks/pupdevices.py | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/pybricks/_common.py b/src/pybricks/_common.py index 7861dbd2..483f776a 100644 --- a/src/pybricks/_common.py +++ b/src/pybricks/_common.py @@ -335,7 +335,7 @@ def __init__( Choose ``False`` to keep the current value, so your program knows where it left off last time. - """ + """ # noqa: E501 def angle(self) -> int: """angle() -> int: deg diff --git a/src/pybricks/geometry.py b/src/pybricks/geometry.py index 9a072182..136dd210 100644 --- a/src/pybricks/geometry.py +++ b/src/pybricks/geometry.py @@ -60,7 +60,7 @@ def __init__(self, rows: Sequence[Sequence[float]]): """ @property - def T(self) -> Matrix: + def T(self) -> Matrix: # noqa: N802 """Returns a new :class:`.Matrix` that is the transpose of the original.""" diff --git a/src/pybricks/media/ev3dev.py b/src/pybricks/media/ev3dev.py index 70f33fc3..3ffe7e35 100644 --- a/src/pybricks/media/ev3dev.py +++ b/src/pybricks/media/ev3dev.py @@ -331,7 +331,7 @@ def __init__( use the default language. [#font_lang]_ script (str): A unicode script identifier such as ``'Runr'`` or ``None``. - """ + """ # noqa: E501 @property def family(self) -> str: diff --git a/src/pybricks/parameters.py b/src/pybricks/parameters.py index 2d1747e4..f1d07375 100644 --- a/src/pybricks/parameters.py +++ b/src/pybricks/parameters.py @@ -36,7 +36,7 @@ class _PybricksEnumMeta(type(Enum)): - def __dir__(cls): + def __dir__(cls): # noqa: N805 yield "__class__" yield "__name__" for member in cls: diff --git a/src/pybricks/pupdevices.py b/src/pybricks/pupdevices.py index 8242653d..0f26ded5 100644 --- a/src/pybricks/pupdevices.py +++ b/src/pybricks/pupdevices.py @@ -62,7 +62,7 @@ def __init__( Choose ``False`` to keep the current value, so your program knows where it left off last time. - """ + """ # noqa: E501 def reset_angle(self, angle: Optional[Number] = None) -> None: """reset_angle(angle=None) From 5fc025aa2f560efd570b457bd8d63871e961df17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 11:11:01 -0700 Subject: [PATCH 35/90] add comment in src.pybricks.abm.robotics.drive_base --- src/pybricks/abm/robotics/drive_base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pybricks/abm/robotics/drive_base.py b/src/pybricks/abm/robotics/drive_base.py index a95decda..92aa7c46 100755 --- a/src/pybricks/abm/robotics/drive_base.py +++ b/src/pybricks/abm/robotics/drive_base.py @@ -19,7 +19,7 @@ 'curve', # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.settings - 'settings', + 'settings', # *** NOTE: OVERLOADED METHOD *** # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.drive 'drive', From 29e7effb623704135e686446c0e235412a3f8102 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 11:15:22 -0700 Subject: [PATCH 36/90] minor fix: SPHINX_BUILD env var may not be set --- src/pybricks/parameters.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pybricks/parameters.py b/src/pybricks/parameters.py index f1d07375..28aa7bfd 100644 --- a/src/pybricks/parameters.py +++ b/src/pybricks/parameters.py @@ -11,7 +11,7 @@ from .geometry import Matrix as _Matrix -if TYPE_CHECKING or os.environ["SPHINX_BUILD"] == "True": +if TYPE_CHECKING or os.environ.get("SPHINX_BUILD") == "True": Number = Union[int, float] """ Numbers can be represented as integers or floating point values: From 29d53178475e9613ab3db77e9e2e95a7e3172b1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 11:44:28 -0700 Subject: [PATCH 37/90] ABM-decorate pybricks._common.DCMotor in pybricks.abm._common.motor.dc submodule --- src/pybricks/abm/_common/motor/dc.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100755 src/pybricks/abm/_common/motor/dc.py diff --git a/src/pybricks/abm/_common/motor/dc.py b/src/pybricks/abm/_common/motor/dc.py new file mode 100755 index 00000000..5e0fc31e --- /dev/null +++ b/src/pybricks/abm/_common/motor/dc.py @@ -0,0 +1,16 @@ +"""ABM-decorating pybricks._common.DCMotor""" + + +from ...._common import DCMotor +from ...util import act_decor + + +# DCMotor +# ------- +for dc_motor_act in ( + 'dc', + 'stop', + 'brake', + 'settings', # *** NOTE: OVERLOADED METHOD *** +): + act_decor(DCMotor, dc_motor_act) From d1f90fdf214a603c1288e90116c6381a67f13eea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 12:30:31 -0700 Subject: [PATCH 38/90] add comment in src.pybricks.abm.io.lwp3 --- src/pybricks/abm/_common/motor/dc.py | 4 ++-- src/pybricks/abm/io/lwp3.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pybricks/abm/_common/motor/dc.py b/src/pybricks/abm/_common/motor/dc.py index 5e0fc31e..8fca489e 100755 --- a/src/pybricks/abm/_common/motor/dc.py +++ b/src/pybricks/abm/_common/motor/dc.py @@ -7,10 +7,10 @@ # DCMotor # ------- -for dc_motor_act in ( +for a in ( 'dc', 'stop', 'brake', 'settings', # *** NOTE: OVERLOADED METHOD *** ): - act_decor(DCMotor, dc_motor_act) + act_decor(DCMotor, a) diff --git a/src/pybricks/abm/io/lwp3.py b/src/pybricks/abm/io/lwp3.py index a8326baf..0ac76cfb 100755 --- a/src/pybricks/abm/io/lwp3.py +++ b/src/pybricks/abm/io/lwp3.py @@ -10,7 +10,7 @@ # ------------------------------------------------------------------------------------- for a in ( # docs.pybricks.com/en/latest/iodevices/lwp3device.html#pybricks.iodevices.LWP3Device.name - 'name', + 'name', # *** NOTE: OVERLOADED METHOD *** # docs.pybricks.com/en/latest/iodevices/lwp3device.html#pybricks.iodevices.LWP3Device.write 'write', From 9e39ce47519b11b4e4eff691330f755d6d529732 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 12:41:53 -0700 Subject: [PATCH 39/90] ABM-decorate pybricks._common.Motor in pybricks.abm._common.motor submodule --- src/pybricks/abm/_common/motor/__init__.py | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100755 src/pybricks/abm/_common/motor/__init__.py diff --git a/src/pybricks/abm/_common/motor/__init__.py b/src/pybricks/abm/_common/motor/__init__.py new file mode 100755 index 00000000..0f20ceb1 --- /dev/null +++ b/src/pybricks/abm/_common/motor/__init__.py @@ -0,0 +1,27 @@ +"""ABM-decorating pybricks._common.Motor.""" + + +from ...._common import Motor +from ...util import act_decor, sense_decor +from . import control, dc # noqa: F401 + + +# Motor +# ----- +for a in ( + 'reset_angle', + 'hold', + 'run', + 'run_time', + 'run_angle', + 'run_target', + 'run_until_stalled', + 'track_target', +): + act_decor(Motor, a) + +for s in ( + 'angle', + 'speed', +): + sense_decor(Motor, s) From a8f28a568e71036de8ea7dae95f1c0c2a914f625 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 13:34:11 -0700 Subject: [PATCH 40/90] ABM-decorating pybricks._common.Control in pybricks.abm._common.motor_control submodule --- src/pybricks/abm/_common/motor/control.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100755 src/pybricks/abm/_common/motor/control.py diff --git a/src/pybricks/abm/_common/motor/control.py b/src/pybricks/abm/_common/motor/control.py new file mode 100755 index 00000000..e68a9c53 --- /dev/null +++ b/src/pybricks/abm/_common/motor/control.py @@ -0,0 +1,23 @@ +"""ABM-decorating pybricks._common.Control.""" + + +from ...._common import Control +from ...util import act_decor, sense_decor + + +# Control +# ------- +for a in ( + 'limits', # *** NOTE: OVERLOADED METHOD *** + 'pid', # *** NOTE: OVERLOADED METHOD *** + 'target_tolerances', # *** NOTE: OVERLOADED METHOD *** + 'stall_tolerances', # *** NOTE: OVERLOADED METHOD *** +): + act_decor(Control, a) + +for s in ( + 'stalled', + 'done', + 'load', +): + sense_decor(Control, s) From a46c3b0206165bf42d9043a3a136ea88a37dea6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 14:08:00 -0700 Subject: [PATCH 41/90] ABM-decorate pybricks._common.Speaker in pybricks.abm._common.speaker submodule --- src/pybricks/abm/_common/speaker.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100755 src/pybricks/abm/_common/speaker.py diff --git a/src/pybricks/abm/_common/speaker.py b/src/pybricks/abm/_common/speaker.py new file mode 100755 index 00000000..8056d706 --- /dev/null +++ b/src/pybricks/abm/_common/speaker.py @@ -0,0 +1,16 @@ +"""ABM-decorating pybricks._common.Speaker.""" + + +from ..._common import Speaker +from ..util import act_decor + + +# Speaker +# ------- +for a in ( + 'volume', + 'beep', + 'play_notes', + +): + act_decor(Speaker, a) From 0947db88a82cfceec5028e6177b53794317fb81c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 14:12:13 -0700 Subject: [PATCH 42/90] ABM-decorating pybricks._common.ColorLight in pybricks.abm._common.color_light submodule --- .../abm/_common/color_light/__init__.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100755 src/pybricks/abm/_common/color_light/__init__.py diff --git a/src/pybricks/abm/_common/color_light/__init__.py b/src/pybricks/abm/_common/color_light/__init__.py new file mode 100755 index 00000000..19b9f339 --- /dev/null +++ b/src/pybricks/abm/_common/color_light/__init__.py @@ -0,0 +1,17 @@ +"""ABM-decorating pybricks._common.ColorLight.""" + + +from ...._common import ColorLight +from ...util import act_decor +from . import light_array, light_matrix # noqa: F401 + + +# ColorLight +# ---------- +for a in ( + 'on', + 'off', + 'blink', + 'animate', +): + act_decor(ColorLight, a) From 8cfdf4a63a230359618186f1474d783360fc30fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 14:14:57 -0700 Subject: [PATCH 43/90] ABM-decorate pybricks._common.LightArray in pybricks.abm._common.color_light.light_array submodule --- .../abm/_common/color_light/light_array.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100755 src/pybricks/abm/_common/color_light/light_array.py diff --git a/src/pybricks/abm/_common/color_light/light_array.py b/src/pybricks/abm/_common/color_light/light_array.py new file mode 100755 index 00000000..4d93f3d8 --- /dev/null +++ b/src/pybricks/abm/_common/color_light/light_array.py @@ -0,0 +1,14 @@ +"""ABM-decorating pybricks._common.LightArray.""" + + +from ...._common import LightArray +from ...util import act_decor + + +# LightArray +# ---------- +for a in ( + 'on', + 'off', +): + act_decor(LightArray, a) From f29c39122223988829a3ac8aa4dbea2757ae2187 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 14:18:42 -0700 Subject: [PATCH 44/90] ABM-decorating pybricks._common.LightMatrix in pybricks.abm._common.color_light.light_matrix submodule --- .../abm/_common/color_light/light_matrix.py | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100755 src/pybricks/abm/_common/color_light/light_matrix.py diff --git a/src/pybricks/abm/_common/color_light/light_matrix.py b/src/pybricks/abm/_common/color_light/light_matrix.py new file mode 100755 index 00000000..032f20ba --- /dev/null +++ b/src/pybricks/abm/_common/color_light/light_matrix.py @@ -0,0 +1,20 @@ +"""ABM-decorating pybricks._common.LightMatrix.""" + + +from ...._common import LightMatrix +from ...util import act_decor + + +# LightMatrix +# ----------- +for a in ( + 'orientation', + 'image', + 'animate', + 'pixel', + 'off', + 'number', + 'char', + 'text', +): + act_decor(LightMatrix, a) From 30fdc1d7a4bf834e77069ad78fe3919d03f63885 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 14:21:20 -0700 Subject: [PATCH 45/90] ABM-decorate pybricks._common.Keypad in pybricks.abm._common.key_pad submodule --- src/pybricks/abm/_common/key_pad.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100755 src/pybricks/abm/_common/key_pad.py diff --git a/src/pybricks/abm/_common/key_pad.py b/src/pybricks/abm/_common/key_pad.py new file mode 100755 index 00000000..a912d726 --- /dev/null +++ b/src/pybricks/abm/_common/key_pad.py @@ -0,0 +1,13 @@ +"""ABM-decorating pybricks._common.Keypad.""" + + +from ..._common import Keypad +from ..util import sense_decor + + +# Keypad +# ------ +for s in ( + 'pressed', +): + sense_decor(Keypad, s) From 95c23c4448728979b2a54db8a127ba86d445f896 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 14:23:37 -0700 Subject: [PATCH 46/90] ABM-decorate pybricks._common.Battery in pybricks.abm._common.battery submodule --- src/pybricks/abm/_common/battery/__init__.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100755 src/pybricks/abm/_common/battery/__init__.py diff --git a/src/pybricks/abm/_common/battery/__init__.py b/src/pybricks/abm/_common/battery/__init__.py new file mode 100755 index 00000000..6938bca7 --- /dev/null +++ b/src/pybricks/abm/_common/battery/__init__.py @@ -0,0 +1,15 @@ +"""ABM-decorating pybricks._common.Battery.""" + + +from ...._common import Battery +from ...util import sense_decor +from . import charger # noqa: F401 + + +# Battery +# ------- +for s in ( + 'voltage', + 'current', +): + sense_decor(Battery, s) From cf3808a6480ca4ad411c58b813462ec3372591e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 14:29:20 -0700 Subject: [PATCH 47/90] ABM-decorating pybricks._common.Charger in pybricks.abm._common.battery.charger submodule --- src/pybricks/abm/_common/battery/charger.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100755 src/pybricks/abm/_common/battery/charger.py diff --git a/src/pybricks/abm/_common/battery/charger.py b/src/pybricks/abm/_common/battery/charger.py new file mode 100755 index 00000000..d83a520b --- /dev/null +++ b/src/pybricks/abm/_common/battery/charger.py @@ -0,0 +1,15 @@ +"""ABM-decorating pybricks._common.Charger.""" + + +from ...._common import Charger +from ...util import sense_decor + + +# Charger +# ------- +for s in ( + 'connected', + 'status', + 'current', +): + sense_decor(Charger, s) From 47407102db1c03ee5349a2223334d17369b94faf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 14:29:56 -0700 Subject: [PATCH 48/90] ABM-decorating pybricks._common in pybricks.abm._common submodule --- src/pybricks/abm/_common/__init__.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100755 src/pybricks/abm/_common/__init__.py diff --git a/src/pybricks/abm/_common/__init__.py b/src/pybricks/abm/_common/__init__.py new file mode 100755 index 00000000..7f8d4eab --- /dev/null +++ b/src/pybricks/abm/_common/__init__.py @@ -0,0 +1,13 @@ +"""ABM-decorating pybricks._common.""" + + +# _common +# ======= +from . import (accelerometer, # noqa: F401 + battery, + color_light, + color_sensor, + motor, + key_pad, + speaker, + system) From 8643fd4b642067b6cdac9651e165402a4e018b40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 14:32:12 -0700 Subject: [PATCH 49/90] ABM-decorate pybricks._common.System in pybricks.abm._common.system submodule --- src/pybricks/abm/_common/system.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100755 src/pybricks/abm/_common/system.py diff --git a/src/pybricks/abm/_common/system.py b/src/pybricks/abm/_common/system.py new file mode 100755 index 00000000..73c63e0e --- /dev/null +++ b/src/pybricks/abm/_common/system.py @@ -0,0 +1,20 @@ +"""ABM-decorating pybricks._common.System.""" + + +from ..._common import System +from ..util import act_decor, sense_decor + + +# System +# ------ +for a in ( + 'set_stop_button', + 'shutdown', +): + act_decor(System, a) + +for s in ( + 'reset_reason', + 'name', +): + sense_decor(System, s) From 4e5cadf8ce988c047406a8a7738cdb89c9e98ef7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 14:47:33 -0700 Subject: [PATCH 50/90] ABM-decorate pybricks._common.CommonColorSensor & .AmbientColorSensor in pybricks.abm._common.color_sensor submodule --- .../abm/_common/color_sensor/__init__.py | 4 ++++ .../abm/_common/color_sensor/ambient.py | 14 +++++++++++++ .../abm/_common/color_sensor/common.py | 21 +++++++++++++++++++ 3 files changed, 39 insertions(+) create mode 100755 src/pybricks/abm/_common/color_sensor/__init__.py create mode 100755 src/pybricks/abm/_common/color_sensor/ambient.py create mode 100755 src/pybricks/abm/_common/color_sensor/common.py diff --git a/src/pybricks/abm/_common/color_sensor/__init__.py b/src/pybricks/abm/_common/color_sensor/__init__.py new file mode 100755 index 00000000..cb22a942 --- /dev/null +++ b/src/pybricks/abm/_common/color_sensor/__init__.py @@ -0,0 +1,4 @@ +"""ABM-decorating pybricks._common.ColorSensor.""" + + +from . import ambient, common # noqa: F401 diff --git a/src/pybricks/abm/_common/color_sensor/ambient.py b/src/pybricks/abm/_common/color_sensor/ambient.py new file mode 100755 index 00000000..fda6f591 --- /dev/null +++ b/src/pybricks/abm/_common/color_sensor/ambient.py @@ -0,0 +1,14 @@ +"""ABM-decorating pybricks._common.AmbientColorSensor.""" + + +from ...._common import AmbientColorSensor +from ...util import sense_decor + + +# AmbientColorSensor +# ------------------ +for s in ( + 'color', + 'hsv', +): + sense_decor(AmbientColorSensor, s) diff --git a/src/pybricks/abm/_common/color_sensor/common.py b/src/pybricks/abm/_common/color_sensor/common.py new file mode 100755 index 00000000..f15caa8a --- /dev/null +++ b/src/pybricks/abm/_common/color_sensor/common.py @@ -0,0 +1,21 @@ +"""ABM-decorating pybricks._common.CommonColorSensor.""" + + +from ...._common import CommonColorSensor +from ...util import act_decor, sense_decor + + +# CommonColorSensor +# ----------------- +for a in ( + 'detectable_colors', # *** NOTE: OVERLOADED METHOD *** +): + act_decor(CommonColorSensor, a) + +for s in ( + 'color', + 'hsv', + 'ambient', + 'reflection', +): + sense_decor(CommonColorSensor, s) From 706ee6b0939a56b8d73d11364f5486ae8ce7afe2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 14:51:55 -0700 Subject: [PATCH 51/90] ABM-decorating pybricks._common.SimpleAccelerometer in pybricks.abm._common.accelerometer.simple submodule --- src/pybricks/abm/_common/accelerometer/simple.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100755 src/pybricks/abm/_common/accelerometer/simple.py diff --git a/src/pybricks/abm/_common/accelerometer/simple.py b/src/pybricks/abm/_common/accelerometer/simple.py new file mode 100755 index 00000000..be521a96 --- /dev/null +++ b/src/pybricks/abm/_common/accelerometer/simple.py @@ -0,0 +1,14 @@ +"""ABM-decorating pybricks._common.SimpleAccelerometer.""" + + +from ...._common import SimpleAccelerometer +from ...util import sense_decor + + +# SimpleAccelerometer +# ------------------- +for s in ( + 'acceleration', + 'up', +): + sense_decor(SimpleAccelerometer, s) From dfe9071ba6e41908d977bebd5a728097a17fa535 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 14:53:45 -0700 Subject: [PATCH 52/90] ABM-decorating pybricks._common.Accelerometer in pybricks.abm._common.accelerometer submodule --- .../abm/_common/accelerometer/__init__.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100755 src/pybricks/abm/_common/accelerometer/__init__.py diff --git a/src/pybricks/abm/_common/accelerometer/__init__.py b/src/pybricks/abm/_common/accelerometer/__init__.py new file mode 100755 index 00000000..bc0b0fca --- /dev/null +++ b/src/pybricks/abm/_common/accelerometer/__init__.py @@ -0,0 +1,15 @@ +"""ABM-decorating pybricks._common.Accelerometer.""" + + +from ...._common import Accelerometer +from ...util import sense_decor +from . import simple, imu # noqa: F401 + + +# Accelerometer +# ------------- +for s in ( + 'acceleration', + 'tilt', +): + sense_decor(Accelerometer, s) From 0ebcd3d1a8cb362ae9ad7a0a68c8f138fd8cb440 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 14:55:24 -0700 Subject: [PATCH 53/90] ABM-decorate pybricks._common.IMU in pybricks.abm._common.accelerometer.imu submodule --- src/pybricks/abm/_common/accelerometer/imu.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100755 src/pybricks/abm/_common/accelerometer/imu.py diff --git a/src/pybricks/abm/_common/accelerometer/imu.py b/src/pybricks/abm/_common/accelerometer/imu.py new file mode 100755 index 00000000..98774700 --- /dev/null +++ b/src/pybricks/abm/_common/accelerometer/imu.py @@ -0,0 +1,19 @@ +"""ABM-decorating pybricks._common.IMU.""" + + +from ...._common import IMU +from ...util import act_decor, sense_decor + + +# IMU +# --- +for a in ( + 'reset_heading', +): + act_decor(IMU, a) + +for s in ( + 'heading', + 'angular_velocity', +): + sense_decor(IMU, s) From c03e51ca5ae5a59abe7ca5477d6d7dad6d689671 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 15:12:02 -0700 Subject: [PATCH 54/90] ABM-decorate pybricks.ev3devices.UltrasonicSensor in pybricks.abm.ev3.ultrasonic_sensor submodule --- src/pybricks/abm/ev3/__init__.py | 2 +- src/pybricks/abm/ev3/ultrasonic_sensor.py | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100755 src/pybricks/abm/ev3/ultrasonic_sensor.py diff --git a/src/pybricks/abm/ev3/__init__.py b/src/pybricks/abm/ev3/__init__.py index c459ffec..57b4fb56 100755 --- a/src/pybricks/abm/ev3/__init__.py +++ b/src/pybricks/abm/ev3/__init__.py @@ -11,4 +11,4 @@ # (pybricks.com/ev3-micropython/ev3devices) # ========================================= speaker, -) + ultrasonic_sensor) diff --git a/src/pybricks/abm/ev3/ultrasonic_sensor.py b/src/pybricks/abm/ev3/ultrasonic_sensor.py new file mode 100755 index 00000000..22d2c1f3 --- /dev/null +++ b/src/pybricks/abm/ev3/ultrasonic_sensor.py @@ -0,0 +1,18 @@ +"""ABM-decorating pybricks.ev3devices.UltrasonicSensor.""" + + +from ...ev3devices import UltrasonicSensor +from ..util import sense_decor + + +# UltrasonicSensor +# (pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.UltrasonicSensor) +# ----------------------------------------------------------------------------------- +for s in ( + # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.UltrasonicSensor.distance + 'distance', + + # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.UltrasonicSensor.presence + 'presence', +): + sense_decor(UltrasonicSensor, s) From 6644cbaf09c82d459a20611a4e09ce19a055df8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 15:15:25 -0700 Subject: [PATCH 55/90] ABM-decorating pybricks.ev3devices.TouchSensor in pybricks.abm.ev3.touch_sensor submodule --- src/pybricks/abm/ev3/__init__.py | 1 + src/pybricks/abm/ev3/touch_sensor.py | 15 +++++++++++++++ src/pybricks/abm/ev3/ultrasonic_sensor.py | 2 +- 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100755 src/pybricks/abm/ev3/touch_sensor.py diff --git a/src/pybricks/abm/ev3/__init__.py b/src/pybricks/abm/ev3/__init__.py index 57b4fb56..75c088c5 100755 --- a/src/pybricks/abm/ev3/__init__.py +++ b/src/pybricks/abm/ev3/__init__.py @@ -11,4 +11,5 @@ # (pybricks.com/ev3-micropython/ev3devices) # ========================================= speaker, + touch_sensor, ultrasonic_sensor) diff --git a/src/pybricks/abm/ev3/touch_sensor.py b/src/pybricks/abm/ev3/touch_sensor.py new file mode 100755 index 00000000..4e738a16 --- /dev/null +++ b/src/pybricks/abm/ev3/touch_sensor.py @@ -0,0 +1,15 @@ +"""ABM-decorating pybricks.ev3devices.TouchSensor.""" + + +from ...ev3devices import TouchSensor +from ..util import sense_decor + + +# TouchSensor +# (pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.TouchSensor) +# ------------------------------------------------------------------------- +for s in ( + # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.TouchSensor.pressed + 'pressed', +): + sense_decor(TouchSensor, s) diff --git a/src/pybricks/abm/ev3/ultrasonic_sensor.py b/src/pybricks/abm/ev3/ultrasonic_sensor.py index 22d2c1f3..910466fc 100755 --- a/src/pybricks/abm/ev3/ultrasonic_sensor.py +++ b/src/pybricks/abm/ev3/ultrasonic_sensor.py @@ -7,7 +7,7 @@ # UltrasonicSensor # (pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.UltrasonicSensor) -# ----------------------------------------------------------------------------------- +# ------------------------------------------------------------------------------ for s in ( # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.UltrasonicSensor.distance 'distance', From 8feb3c0296accc77c21f64005d1a0c7228b5069e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 15:22:53 -0700 Subject: [PATCH 56/90] ABM-decorate pybricks.ev3devices.Motor in pybricks.abm.ev3.motor submodule --- src/pybricks/abm/ev3/__init__.py | 3 +- src/pybricks/abm/ev3/motor.py | 51 ++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100755 src/pybricks/abm/ev3/motor.py diff --git a/src/pybricks/abm/ev3/__init__.py b/src/pybricks/abm/ev3/__init__.py index 75c088c5..4e0dcfd0 100755 --- a/src/pybricks/abm/ev3/__init__.py +++ b/src/pybricks/abm/ev3/__init__.py @@ -6,10 +6,11 @@ # pybricks.com/ev3-micropython/hubs # --------------------------------- hub, + speaker, # ev3devices # (pybricks.com/ev3-micropython/ev3devices) # ========================================= - speaker, + motor, touch_sensor, ultrasonic_sensor) diff --git a/src/pybricks/abm/ev3/motor.py b/src/pybricks/abm/ev3/motor.py new file mode 100755 index 00000000..eaf44a5d --- /dev/null +++ b/src/pybricks/abm/ev3/motor.py @@ -0,0 +1,51 @@ +"""ABM-decorating pybricks.ev3devices.Motor.""" + + +from ...ev3devices import Motor +from ..util import act_decor, sense_decor + + +# Motor +# (pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.Motor) +# ------------------------------------------------------------------- +for a in ( + # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.Motor.reset_angle + 'reset_angle', + + # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.Motor.stop + 'stop', + + # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.Motor.brake + 'brake', + + # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.Motor.hold + 'hold', + + # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.Motor.run + 'run', + + # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.Motor.run_time + 'run_time', + + # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.Motor.run_angle + 'run_angle', + + # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.Motor.run_target + 'run_target', + + # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.Motor.run_until_stalled + 'run_until_stalled', + + # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.Motor.dc + 'dc', +): + act_decor(Motor, a) + +for s in ( + # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.Motor.speed + 'speed', + + # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.Motor.angle + 'angle', +): + sense_decor(Motor, s) From af327c3f1edf764e922fd72d58c8834953ed0814 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 15:26:13 -0700 Subject: [PATCH 57/90] ABM-decorate pybricks.ev3devices.ColorSensor in pybricks.abm.ev3.color_sensor submodule --- src/pybricks/abm/ev3/__init__.py | 1 + src/pybricks/abm/ev3/color_sensor.py | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100755 src/pybricks/abm/ev3/color_sensor.py diff --git a/src/pybricks/abm/ev3/__init__.py b/src/pybricks/abm/ev3/__init__.py index 4e0dcfd0..f5d9bc0f 100755 --- a/src/pybricks/abm/ev3/__init__.py +++ b/src/pybricks/abm/ev3/__init__.py @@ -12,5 +12,6 @@ # (pybricks.com/ev3-micropython/ev3devices) # ========================================= motor, + color_sensor, touch_sensor, ultrasonic_sensor) diff --git a/src/pybricks/abm/ev3/color_sensor.py b/src/pybricks/abm/ev3/color_sensor.py new file mode 100755 index 00000000..f82fb9e4 --- /dev/null +++ b/src/pybricks/abm/ev3/color_sensor.py @@ -0,0 +1,24 @@ +"""ABM-decorating pybricks.ev3devices.ColorSensor.""" + + +from ...ev3devices import ColorSensor +from ..util import sense_decor + + +# ColorSensor +# (pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.ColorSensor) +# ------------------------------------------------------------------------- +for s in ( + # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.ColorSensor.color + 'color', + + # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.ColorSensor.ambient + 'ambient', + + # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.ColorSensor.reflection + 'reflection', + + # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.ColorSensor.rgb + 'rgb', +): + sense_decor(ColorSensor, s) From 80da1fa19568789679f1dd5c3ef30f9c3f0dd5ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 15:31:02 -0700 Subject: [PATCH 58/90] ABM-decorate pybricks.ev3devices.GyroSensor in pybricks.abm.ev3.gyro_sensor --- src/pybricks/abm/ev3/__init__.py | 1 + src/pybricks/abm/ev3/gyro_sensor.py | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100755 src/pybricks/abm/ev3/gyro_sensor.py diff --git a/src/pybricks/abm/ev3/__init__.py b/src/pybricks/abm/ev3/__init__.py index f5d9bc0f..c54efbe3 100755 --- a/src/pybricks/abm/ev3/__init__.py +++ b/src/pybricks/abm/ev3/__init__.py @@ -13,5 +13,6 @@ # ========================================= motor, color_sensor, + gyro_sensor, touch_sensor, ultrasonic_sensor) diff --git a/src/pybricks/abm/ev3/gyro_sensor.py b/src/pybricks/abm/ev3/gyro_sensor.py new file mode 100755 index 00000000..6a86eaca --- /dev/null +++ b/src/pybricks/abm/ev3/gyro_sensor.py @@ -0,0 +1,24 @@ +"""ABM-decorating pybricks.ev3devices.GyroSensor.""" + + +from ...ev3devices import GyroSensor +from ..util import act_decor, sense_decor + + +# GyroSensor +# (pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.GyroSensor) +# ------------------------------------------------------------------------ +for a in ( + # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.GyroSensor.reset_angle + 'reset_angle', +): + act_decor(GyroSensor, a) + +for s in ( + # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.GyroSensor.speed + 'speed', + + # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.GyroSensor.angle + 'angle', +): + sense_decor(GyroSensor, s) From 5abac58b5409a3547962df15516166c09ba2ddc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 15:34:21 -0700 Subject: [PATCH 59/90] ABM-decorate pybricks.ev3devices.InfraredSensor in pybricks.abm.ev3.infrared_sensor submodule --- src/pybricks/abm/ev3/__init__.py | 1 + src/pybricks/abm/ev3/infrared_sensor.py | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100755 src/pybricks/abm/ev3/infrared_sensor.py diff --git a/src/pybricks/abm/ev3/__init__.py b/src/pybricks/abm/ev3/__init__.py index c54efbe3..fe952bc2 100755 --- a/src/pybricks/abm/ev3/__init__.py +++ b/src/pybricks/abm/ev3/__init__.py @@ -14,5 +14,6 @@ motor, color_sensor, gyro_sensor, + infrared_sensor, touch_sensor, ultrasonic_sensor) diff --git a/src/pybricks/abm/ev3/infrared_sensor.py b/src/pybricks/abm/ev3/infrared_sensor.py new file mode 100755 index 00000000..89af9aa9 --- /dev/null +++ b/src/pybricks/abm/ev3/infrared_sensor.py @@ -0,0 +1,24 @@ +"""ABM-decorating pybricks.ev3devices.InfraredSensor.""" + + +from ...ev3devices import InfraredSensor +from ..util import sense_decor + + +# InfraredSensor +# (pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.InfraredSensor) +# ---------------------------------------------------------------------------- +for s in ( + # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.InfraredSensor.distance + 'distance', + + # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.InfraredSensor.beacon + 'beacon', + + # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.InfraredSensor.buttons + 'buttons', + + # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.InfraredSensor.keypad + 'keypad', +): + sense_decor(InfraredSensor, s) From 644bd645c4f9eafdf82537f9680fa671f62b048f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 15:38:38 -0700 Subject: [PATCH 60/90] ABM-decorate pybricks.nxtdevices.ColorSensor in pybricks.abm.nxt.color_sensor submodule --- src/pybricks/abm/nxt/color_sensor.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100755 src/pybricks/abm/nxt/color_sensor.py diff --git a/src/pybricks/abm/nxt/color_sensor.py b/src/pybricks/abm/nxt/color_sensor.py new file mode 100755 index 00000000..30c0dafb --- /dev/null +++ b/src/pybricks/abm/nxt/color_sensor.py @@ -0,0 +1,24 @@ +"""ABM-decorating pybricks.nxtdevices.ColorSensor.""" + + +from ...nxtdevices import ColorSensor +from ..util import sense_decor + + +# ColorSensor +# (pybricks.com/ev3-micropython/nxtdevices#pybricks.nxtdevices.ColorSensor) +# ------------------------------------------------------------------------- +for s in ( + # pybricks.com/ev3-micropython/nxtdevices#pybricks.nxtdevices.ColorSensor.color + 'color', + + # pybricks.com/ev3-micropython/nxtdevices#pybricks.nxtdevices.ColorSensor.ambient + 'ambient', + + # pybricks.com/ev3-micropython/nxtdevices#pybricks.nxtdevices.ColorSensor.reflection + 'reflection', + + # pybricks.com/ev3-micropython/nxtdevices#pybricks.nxtdevices.ColorSensor.rgb + 'rgb', +): + sense_decor(ColorSensor, s) From 373d2124eeaa836a56e27edf55053750759ea6a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 15:41:27 -0700 Subject: [PATCH 61/90] ABM-decorating pybricks.nxtdevices.TemperatureSensor in pybricks.abm.nxt.temp_sensor submodule --- src/pybricks/abm/nxt/temp_sensor.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100755 src/pybricks/abm/nxt/temp_sensor.py diff --git a/src/pybricks/abm/nxt/temp_sensor.py b/src/pybricks/abm/nxt/temp_sensor.py new file mode 100755 index 00000000..65882699 --- /dev/null +++ b/src/pybricks/abm/nxt/temp_sensor.py @@ -0,0 +1,15 @@ +"""ABM-decorating pybricks.nxtdevices.TemperatureSensor.""" + + +from ...nxtdevices import TemperatureSensor +from ..util import sense_decor + + +# LightSensor +# (pybricks.com/ev3-micropython/nxtdevices#pybricks.nxtdevices.TemperatureSensor) +# ------------------------------------------------------------------------- +for s in ( + # pybricks.com/ev3-micropython/nxtdevices#pybricks.nxtdevices.TemperatureSensor.temperature + 'temperature', +): + sense_decor(TemperatureSensor, s) From a6087169a94dfbd944bd7aaf150de166b09f436f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 15:44:40 -0700 Subject: [PATCH 62/90] ABM-decorate pybricks.nxtdevices.EnergyMeter in pybricks.abm.nxt.energy_meter submodule --- src/pybricks/abm/nxt/energy_meter.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100755 src/pybricks/abm/nxt/energy_meter.py diff --git a/src/pybricks/abm/nxt/energy_meter.py b/src/pybricks/abm/nxt/energy_meter.py new file mode 100755 index 00000000..86c403a4 --- /dev/null +++ b/src/pybricks/abm/nxt/energy_meter.py @@ -0,0 +1,21 @@ +"""ABM-decorating pybricks.nxtdevices.EnergyMeter.""" + + +from ...nxtdevices import EnergyMeter +from ..util import sense_decor + + +# EnergyMeter +# (pybricks.com/ev3-micropython/nxtdevices#pybricks.nxtdevices.EnergyMeter) +# ------------------------------------------------------------------------- +for s in ( + # pybricks.com/ev3-micropython/nxtdevices#pybricks.nxtdevices.EnergyMeter.storage + 'storage', + + # pybricks.com/ev3-micropython/nxtdevices#pybricks.nxtdevices.EnergyMeter.input + 'input', + + # pybricks.com/ev3-micropython/nxtdevices#pybricks.nxtdevices.EnergyMeter.output + 'output', +): + sense_decor(EnergyMeter, s) From 85476928d96728099e49cbb1f0e20202b440d9a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 15:46:30 -0700 Subject: [PATCH 63/90] ABM-decorate pybricks.nxtdevices.VernierAdapter in pybricks.abm.nxt.ultrasonic_sensor submodule --- src/pybricks/abm/nxt/ultrasonic_sensor.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100755 src/pybricks/abm/nxt/ultrasonic_sensor.py diff --git a/src/pybricks/abm/nxt/ultrasonic_sensor.py b/src/pybricks/abm/nxt/ultrasonic_sensor.py new file mode 100755 index 00000000..be5d2261 --- /dev/null +++ b/src/pybricks/abm/nxt/ultrasonic_sensor.py @@ -0,0 +1,15 @@ +"""ABM-decorating pybricks.nxtdevices.UltrasonicSensor.""" + + +from ...nxtdevices import UltrasonicSensor +from ..util import sense_decor + + +# UltrasonicSensor +# (pybricks.com/ev3-micropython/nxtdevices#pybricks.nxtdevices.UltrasonicSensor) +# ------------------------------------------------------------------------------ +for s in ( + # pybricks.com/ev3-micropython/nxtdevices#pybricks.nxtdevices.UltrasonicSensor.distance + 'distance', +): + sense_decor(UltrasonicSensor, s) From 81699ba3d2365f414d81618cc393ca8c3043971a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 15:49:33 -0700 Subject: [PATCH 64/90] ABM-decorate pybricks.nxtdevices.VernierAdapter in pybricks.abm.nxt.vernier_adapter submodule --- src/pybricks/abm/nxt/vernier_adapter.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100755 src/pybricks/abm/nxt/vernier_adapter.py diff --git a/src/pybricks/abm/nxt/vernier_adapter.py b/src/pybricks/abm/nxt/vernier_adapter.py new file mode 100755 index 00000000..7a248d55 --- /dev/null +++ b/src/pybricks/abm/nxt/vernier_adapter.py @@ -0,0 +1,21 @@ +"""ABM-decorating pybricks.nxtdevices.VernierAdapter.""" + + +from ...nxtdevices import VernierAdapter +from ..util import sense_decor + + +# VernierAdapter +# (pybricks.com/ev3-micropython/nxtdevices#pybricks.nxtdevices.VernierAdapter) +# ---------------------------------------------------------------------------- +for s in ( + # pybricks.com/ev3-micropython/nxtdevices#pybricks.nxtdevices.VernierAdapter.voltage + 'voltage', + + # pybricks.com/ev3-micropython/nxtdevices#pybricks.nxtdevices.VernierAdapter.conversion + 'conversion', + + # pybricks.com/ev3-micropython/nxtdevices#pybricks.nxtdevices.VernierAdapter.value + 'value', +): + sense_decor(VernierAdapter, s) From 277ecbfadaaa6f9c39b73c9d15175c3c931c06af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 15:59:48 -0700 Subject: [PATCH 65/90] ABM-decorate pybricks.iodevices in pybricks.abm.pup submodule --- src/pybricks/abm/pup/__init__.py | 17 ++++++++++++++++ src/pybricks/abm/pup/hubs.py | 34 ++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100755 src/pybricks/abm/pup/__init__.py create mode 100755 src/pybricks/abm/pup/hubs.py diff --git a/src/pybricks/abm/pup/__init__.py b/src/pybricks/abm/pup/__init__.py new file mode 100755 index 00000000..ba665e88 --- /dev/null +++ b/src/pybricks/abm/pup/__init__.py @@ -0,0 +1,17 @@ +"""ABM-decorating pybricks.iodevices.""" + + +# iodevices +# (docs.pybricks.com/en/latest/pupdevices) +# ======================================== +from . import (hubs, # noqa: F401 + motor, + color_light_matrix, + color_sensor, + color_distance_sensor, + force_sensor, + infrared_sensor, + light, + remote, + tilt_sensor, + ultrasonic_sensor) diff --git a/src/pybricks/abm/pup/hubs.py b/src/pybricks/abm/pup/hubs.py new file mode 100755 index 00000000..b070903e --- /dev/null +++ b/src/pybricks/abm/pup/hubs.py @@ -0,0 +1,34 @@ +"""ABM-decorating Powered-Up Hubs.""" + + +from ...hubs import InventorHub, PrimeHub, CityHub, MoveHub, TechnicHub # noqa: F401 + + +# hubs +# (docs.pybricks.com/en/latest/hubs) +# ================================== + +# InventorHub +# (docs.pybricks.com/en/latest/hubs/primehub.html#InventorHub) +# ------------------------------------------------------------ +# TODO + +# PrimeHub +# (docs.pybricks.com/en/latest/hubs/primehub.html#pybricks.hubs.PrimeHub) +# ----------------------------------------------------------------------- +# TODO + +# CityHub +# (docs.pybricks.com/en/latest/hubs/cityhub.html#pybricks.hubs.CityHub) +# --------------------------------------------------------------------- +# TODO + +# MoveHub +# (docs.pybricks.com/en/latest/hubs/movehub.html#pybricks.hubs.MoveHub) +# --------------------------------------------------------------------- +# TODO + +# TechnicHub +# (docs.pybricks.com/en/latest/hubs/technichub.html#pybricks.hubs.TechnicHub) +# --------------------------------------------------------------------------- +# TODO From 5afd0f72c7233ce59731afd855596424dedc61e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 16:09:09 -0700 Subject: [PATCH 66/90] ABM-decorate pybricks.pupdevices.DCMotor in pybricks.abm.pup.motor.dc submodule --- src/pybricks/abm/pup/motor/dc.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100755 src/pybricks/abm/pup/motor/dc.py diff --git a/src/pybricks/abm/pup/motor/dc.py b/src/pybricks/abm/pup/motor/dc.py new file mode 100755 index 00000000..c213721e --- /dev/null +++ b/src/pybricks/abm/pup/motor/dc.py @@ -0,0 +1,17 @@ +"""ABM-decorating pybricks.pupdevices.DCMotor.""" + + +from ....pupdevices import DCMotor +from ...util import act_decor + + +# DCMotor +# (docs.pybricks.com/en/latest/pupdevices/dcmotor.html#pybricks.pupdevices.DCMotor) +# --------------------------------------------------------------------------------- +for a in ( + 'dc', + 'stop', + 'brake', + 'settings', # *** NOTE: OVERLOADED METHOD *** +): + act_decor(DCMotor, a) From e65faf57d512a2bbbcd4109df9948d6363c6441e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 16:23:03 -0700 Subject: [PATCH 67/90] ABM-decorate pybricks.pupdevices.PFMotor in pybricks.abm.pup.motor.pf submodule --- src/pybricks/abm/pup/motor/pf.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100755 src/pybricks/abm/pup/motor/pf.py diff --git a/src/pybricks/abm/pup/motor/pf.py b/src/pybricks/abm/pup/motor/pf.py new file mode 100755 index 00000000..1758bcf6 --- /dev/null +++ b/src/pybricks/abm/pup/motor/pf.py @@ -0,0 +1,16 @@ +"""ABM-decorating pybricks.pupdevices.PFMotor.""" + + +from ....pupdevices import PFMotor +from ...util import act_decor + + +# PFMotor +# (docs.pybricks.com/en/latest/pupdevices/pfmotor.html) +# ----------------------------------------------------- +for a in ( + 'dc', + 'stop', + 'brake', +): + act_decor(PFMotor, a) From 56317e984ad558d4e10c16318964326fdad8f112 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 16:38:16 -0700 Subject: [PATCH 68/90] ABM-decorate pybricks.pupdevices.Motor in pybricks.abm.pup.motor submodule --- src/pybricks/abm/_common/motor/control.py | 12 +++++ src/pybricks/abm/pup/motor/__init__.py | 58 +++++++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100755 src/pybricks/abm/pup/motor/__init__.py diff --git a/src/pybricks/abm/_common/motor/control.py b/src/pybricks/abm/_common/motor/control.py index e68a9c53..e88ffa05 100755 --- a/src/pybricks/abm/_common/motor/control.py +++ b/src/pybricks/abm/_common/motor/control.py @@ -8,16 +8,28 @@ # Control # ------- for a in ( + # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.Motor.control.limits 'limits', # *** NOTE: OVERLOADED METHOD *** + + # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.Motor.control.pid 'pid', # *** NOTE: OVERLOADED METHOD *** + + # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.Motor.control.target_tolerances 'target_tolerances', # *** NOTE: OVERLOADED METHOD *** + + # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.Motor.control.stall_tolerances 'stall_tolerances', # *** NOTE: OVERLOADED METHOD *** ): act_decor(Control, a) for s in ( + # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.Motor.control.stalled 'stalled', + + # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.Motor.control.done 'done', + + # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.Motor.control.load 'load', ): sense_decor(Control, s) diff --git a/src/pybricks/abm/pup/motor/__init__.py b/src/pybricks/abm/pup/motor/__init__.py new file mode 100755 index 00000000..932368a9 --- /dev/null +++ b/src/pybricks/abm/pup/motor/__init__.py @@ -0,0 +1,58 @@ +"""ABM-decorating pybricks.pupdevices.Motor.""" + + +from ....pupdevices import Motor +from ...util import act_decor, sense_decor +from . import dc, pf # noqa: F401 + + +# Motor +# (docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor) +# ----------------------------------------------------------------------------- +for a in ( + # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.reset_angle + 'reset_angle', + + # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.stop + 'stop', + + # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.brake + 'brake', + + # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.hold + 'hold', + + # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.run + 'run', + + # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.run_time + 'run_time', + + # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.run_angle + 'run_angle', + + # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.run_target + 'run_target', + + # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.track_target + 'track_target', + + # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.run_until_stalled + 'run_until_stalled', + + # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.dc + 'dc', + + # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.settings + 'settings', # *** NOTE: OVERLOADED METHOD *** +): + act_decor(Motor, a) + +for s in ( + # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.speed + 'speed', + + # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.angle + 'angle', +): + sense_decor(Motor, s) From 3eaabff543fefb85c1627074c468b8909ea94291 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 16:46:21 -0700 Subject: [PATCH 69/90] ABM-decorating pybricks.pupdevices.Remote in pybricks.abm.pup.remote submodule --- src/pybricks/abm/pup/remote.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100755 src/pybricks/abm/pup/remote.py diff --git a/src/pybricks/abm/pup/remote.py b/src/pybricks/abm/pup/remote.py new file mode 100755 index 00000000..b154e0ef --- /dev/null +++ b/src/pybricks/abm/pup/remote.py @@ -0,0 +1,15 @@ +"""ABM-decorating pybricks.pupdevices.Remote.""" + + +from ...pupdevices import Remote +from ..util import act_decor + + +# Remote +# (docs.pybricks.com/en/latest/pupdevices/remote.html#pybricks.pupdevices.Remote) +# ------------------------------------------------------------------------------- +for a in ( + # docs.pybricks.com/en/latest/pupdevices/remote.html#pybricks.pupdevices.Remote.name + 'name', # *** NOTE: OVERLOADED METHOD *** +): + act_decor(Remote, a) From 0a11bc7527a3981475b6397f482acb57373274fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 16:48:38 -0700 Subject: [PATCH 70/90] ABM-decorate pybricks.pupdevices.TiltSensor in pybricks.abm.pup.tilt_sensor submodule --- src/pybricks/abm/pup/tilt_sensor.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100755 src/pybricks/abm/pup/tilt_sensor.py diff --git a/src/pybricks/abm/pup/tilt_sensor.py b/src/pybricks/abm/pup/tilt_sensor.py new file mode 100755 index 00000000..b3f4bcec --- /dev/null +++ b/src/pybricks/abm/pup/tilt_sensor.py @@ -0,0 +1,15 @@ +"""ABM-decorating pybricks.pupdevices.TiltSensor.""" + + +from ...pupdevices import TiltSensor +from ..util import sense_decor + + +# TiltSensor +# (docs.pybricks.com/en/latest/pupdevices/tiltsensor.html#pybricks.pupdevices.TiltSensor) +# --------------------------------------------------------------------------------------- +for s in ( + # docs.pybricks.com/en/latest/pupdevices/tiltsensor.html#pybricks.pupdevices.TiltSensor.tilt + 'tilt', +): + sense_decor(TiltSensor, s) From cc7d8f30c51e3fca886b8375096f96d179624534 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 16:54:57 -0700 Subject: [PATCH 71/90] ABM-decorate pybricks.pupdevices.ColorDistanceSensor in pybricks.abm.pup.color_distance_sensor submodule --- src/pybricks/abm/pup/color_distance_sensor.py | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100755 src/pybricks/abm/pup/color_distance_sensor.py diff --git a/src/pybricks/abm/pup/color_distance_sensor.py b/src/pybricks/abm/pup/color_distance_sensor.py new file mode 100755 index 00000000..fe1bd9ca --- /dev/null +++ b/src/pybricks/abm/pup/color_distance_sensor.py @@ -0,0 +1,33 @@ +"""ABM-decorating pybricks.pupdevices.ColorDistanceSensor.""" + + +from ...pupdevices import ColorDistanceSensor +from ..util import act_decor, sense_decor + + +# ColorDistanceSensor +# (docs.pybricks.com/en/latest/pupdevices/colordistancesensor.html#pybricks.pupdevices.ColorDistanceSensor) +# --------------------------------------------------------------------------------------------------------- +for a in ( + # docs.pybricks.com/en/latest/pupdevices/colordistancesensor.html#pybricks.pupdevices.ColorDistanceSensor.detectable_colors + 'detectable_colors', # *** NOTE: OVERLOADED METHOD *** +): + act_decor(ColorDistanceSensor, a) + +for s in ( + # docs.pybricks.com/en/latest/pupdevices/colordistancesensor.html#pybricks.pupdevices.ColorDistanceSensor.color + 'color', + + # docs.pybricks.com/en/latest/pupdevices/colordistancesensor.html#pybricks.pupdevices.ColorDistanceSensor.reflection + 'reflection', + + # docs.pybricks.com/en/latest/pupdevices/colordistancesensor.html#pybricks.pupdevices.ColorDistanceSensor.ambient + 'ambient', + + # docs.pybricks.com/en/latest/pupdevices/colordistancesensor.html#pybricks.pupdevices.ColorDistanceSensor.distance + 'distance', + + # docs.pybricks.com/en/latest/pupdevices/colordistancesensor.html#pybricks.pupdevices.ColorDistanceSensor.hsv + 'hsv', +): + sense_decor(ColorDistanceSensor, s) From dee4818e144c2ba8b930555548482e773c7ad31f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 17:43:54 -0700 Subject: [PATCH 72/90] ABM-decorate pybricks.pupdevices.ColorSensor in pybricks.abm.pup.color_sensor submodule --- src/pybricks/abm/pup/__init__.py | 1 - src/pybricks/abm/pup/color_sensor/__init__.py | 31 +++++++++++++++++++ .../distance.py} | 4 +-- 3 files changed, 33 insertions(+), 3 deletions(-) create mode 100755 src/pybricks/abm/pup/color_sensor/__init__.py rename src/pybricks/abm/pup/{color_distance_sensor.py => color_sensor/distance.py} (93%) diff --git a/src/pybricks/abm/pup/__init__.py b/src/pybricks/abm/pup/__init__.py index ba665e88..c70dd054 100755 --- a/src/pybricks/abm/pup/__init__.py +++ b/src/pybricks/abm/pup/__init__.py @@ -8,7 +8,6 @@ motor, color_light_matrix, color_sensor, - color_distance_sensor, force_sensor, infrared_sensor, light, diff --git a/src/pybricks/abm/pup/color_sensor/__init__.py b/src/pybricks/abm/pup/color_sensor/__init__.py new file mode 100755 index 00000000..49cb34ec --- /dev/null +++ b/src/pybricks/abm/pup/color_sensor/__init__.py @@ -0,0 +1,31 @@ +"""ABM-decorating pybricks.pupdevices.ColorSensor.""" + + +from ....pupdevices import ColorSensor +from ...util import act_decor, sense_decor +from . import distance # noqa: F401 + + +# ColorSensor +# (docs.pybricks.com/en/latest/pupdevices/colorsensor.html#pybricks.pupdevices.ColorSensor) +# ----------------------------------------------------------------------------------------- +for a in ( + # docs.pybricks.com/en/latest/pupdevices/colorsensor.html#pybricks.pupdevices.ColorSensor.detectable_colors + 'detectable_colors', # *** NOTE: OVERLOADED METHOD *** +): + act_decor(ColorSensor, a) + +for s in ( + # docs.pybricks.com/en/latest/pupdevices/colorsensor.html#pybricks.pupdevices.ColorSensor.color + 'color', + + # docs.pybricks.com/en/latest/pupdevices/colorsensor.html#pybricks.pupdevices.ColorSensor.reflection + 'reflection', + + # docs.pybricks.com/en/latest/pupdevices/colorsensor.html#pybricks.pupdevices.ColorSensor.ambient + 'ambient', + + # docs.pybricks.com/en/latest/pupdevices/colorsensor.html#pybricks.pupdevices.ColorSensor.hsv + 'hsv', +): + sense_decor(ColorSensor, s) diff --git a/src/pybricks/abm/pup/color_distance_sensor.py b/src/pybricks/abm/pup/color_sensor/distance.py similarity index 93% rename from src/pybricks/abm/pup/color_distance_sensor.py rename to src/pybricks/abm/pup/color_sensor/distance.py index fe1bd9ca..77e24c1d 100755 --- a/src/pybricks/abm/pup/color_distance_sensor.py +++ b/src/pybricks/abm/pup/color_sensor/distance.py @@ -1,8 +1,8 @@ """ABM-decorating pybricks.pupdevices.ColorDistanceSensor.""" -from ...pupdevices import ColorDistanceSensor -from ..util import act_decor, sense_decor +from ....pupdevices import ColorDistanceSensor +from ...util import act_decor, sense_decor # ColorDistanceSensor From c95a06c9e324d2acf90b91993ccf172e69ff12ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 17:48:25 -0700 Subject: [PATCH 73/90] ABM-decorate pybricks.pupdevices.UltrasonicSensor in pybricks.abm.pup.ultrasonic_sensor submodule --- src/pybricks/abm/pup/ultrasonic_sensor.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100755 src/pybricks/abm/pup/ultrasonic_sensor.py diff --git a/src/pybricks/abm/pup/ultrasonic_sensor.py b/src/pybricks/abm/pup/ultrasonic_sensor.py new file mode 100755 index 00000000..e84095a9 --- /dev/null +++ b/src/pybricks/abm/pup/ultrasonic_sensor.py @@ -0,0 +1,18 @@ +"""ABM-decorating pybricks.pupdevices.UltrasonicSensor.""" + + +from ...pupdevices import UltrasonicSensor +from ..util import sense_decor + + +# UltrasonicSensor +# (docs.pybricks.com/en/latest/pupdevices/ultrasonicsensor.html#pybricks.pupdevices.UltrasonicSensor) +# --------------------------------------------------------------------------------------------------- +for s in ( + # docs.pybricks.com/en/latest/pupdevices/ultrasonicsensor.html#pybricks.pupdevices.UltrasonicSensor.distance + 'distance', + + # docs.pybricks.com/en/latest/pupdevices/ultrasonicsensor.html#pybricks.pupdevices.UltrasonicSensor.presence + 'presence', +): + sense_decor(UltrasonicSensor, s) From f6c465d079735920cc2bb8e3cc9c3e39a6a5186b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 17:51:38 -0700 Subject: [PATCH 74/90] ABM-decorate pybricks.pupdevices.ForceSensor in pybricks.abm.pup.force_sensor submodule --- src/pybricks/abm/pup/force_sensor.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100755 src/pybricks/abm/pup/force_sensor.py diff --git a/src/pybricks/abm/pup/force_sensor.py b/src/pybricks/abm/pup/force_sensor.py new file mode 100755 index 00000000..91c7867a --- /dev/null +++ b/src/pybricks/abm/pup/force_sensor.py @@ -0,0 +1,24 @@ +"""ABM-decorating pybricks.pupdevices.ForceSensor.""" + + +from ...pupdevices import ForceSensor +from ..util import sense_decor + + +# ForceSensor +# (docs.pybricks.com/en/latest/pupdevices/forcesensor.html#pybricks.pupdevices.ForceSensor) +# ----------------------------------------------------------------------------------------- +for s in ( + # docs.pybricks.com/en/latest/pupdevices/forcesensor.html#pybricks.pupdevices.ForceSensor.force + 'force', + + # docs.pybricks.com/en/latest/pupdevices/forcesensor.html#pybricks.pupdevices.ForceSensor.distance + 'distance', + + # docs.pybricks.com/en/latest/pupdevices/forcesensor.html#pybricks.pupdevices.ForceSensor.pressed + 'pressed', + + # docs.pybricks.com/en/latest/pupdevices/forcesensor.html#pybricks.pupdevices.ForceSensor.touched + 'touched', +): + sense_decor(ForceSensor, s) From 9a12793143e13b72d9076c515c725aac140c36dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 17:55:29 -0700 Subject: [PATCH 75/90] ABM-decorate pybricks.pupdevices.ColorLightMatrix in pybricks.abm.pup.color_light_matrix submodule --- src/pybricks/abm/pup/color_light_matrix.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100755 src/pybricks/abm/pup/color_light_matrix.py diff --git a/src/pybricks/abm/pup/color_light_matrix.py b/src/pybricks/abm/pup/color_light_matrix.py new file mode 100755 index 00000000..f13731cd --- /dev/null +++ b/src/pybricks/abm/pup/color_light_matrix.py @@ -0,0 +1,18 @@ +"""ABM-decorating pybricks.pupdevices.ColorLightMatrix.""" + + +from ...pupdevices import ColorLightMatrix +from ..util import act_decor + + +# ColorLightMatrix +# (docs.pybricks.com/en/latest/pupdevices/colorlightmatrix.html#pybricks.pupdevices.ColorLightMatrix) +# --------------------------------------------------------------------------------------------------- +for a in ( + # docs.pybricks.com/en/latest/pupdevices/colorlightmatrix.html#pybricks.pupdevices.ColorLightMatrix.on + 'on', + + # docs.pybricks.com/en/latest/pupdevices/colorlightmatrix.html#pybricks.pupdevices.ColorLightMatrix.off + 'off', +): + act_decor(ColorLightMatrix, a) From a1474d05adbfde358c3c1c9fa076e96ad48da537 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 17:57:51 -0700 Subject: [PATCH 76/90] ABM-decorate pybricks.pupdevices.InfraredSensor in pybricks.abm.pup.infrared_sensor submodule --- src/pybricks/abm/pup/infrared_sensor.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100755 src/pybricks/abm/pup/infrared_sensor.py diff --git a/src/pybricks/abm/pup/infrared_sensor.py b/src/pybricks/abm/pup/infrared_sensor.py new file mode 100755 index 00000000..1284b8a6 --- /dev/null +++ b/src/pybricks/abm/pup/infrared_sensor.py @@ -0,0 +1,21 @@ +"""ABM-decorating pybricks.pupdevices.InfraredSensor.""" + + +from ...pupdevices import InfraredSensor +from ..util import sense_decor + + +# InfraredSensor +# (docs.pybricks.com/en/latest/pupdevices/infraredsensor.html#pybricks.pupdevices.InfraredSensor) +# ----------------------------------------------------------------------------------------------- +for s in ( + # docs.pybricks.com/en/latest/pupdevices/infraredsensor.html#pybricks.pupdevices.InfraredSensor.distance + 'distance', + + # docs.pybricks.com/en/latest/pupdevices/infraredsensor.html#pybricks.pupdevices.InfraredSensor.reflection + 'reflection', + + # docs.pybricks.com/en/latest/pupdevices/infraredsensor.html#pybricks.pupdevices.InfraredSensor.count + 'count', +): + sense_decor(InfraredSensor, s) From 2967812bb02d3752c94db163925bad1666aef6e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 18:09:10 -0700 Subject: [PATCH 77/90] ABM-decorate pybricks.pupdevices.Light in pybricks.abm.pup.light submodule --- src/pybricks/abm/pup/light.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100755 src/pybricks/abm/pup/light.py diff --git a/src/pybricks/abm/pup/light.py b/src/pybricks/abm/pup/light.py new file mode 100755 index 00000000..6469e35b --- /dev/null +++ b/src/pybricks/abm/pup/light.py @@ -0,0 +1,18 @@ +"""ABM-decorating pybricks.pupdevices.Light.""" + + +from ...pupdevices import Light +from ..util import act_decor + + +# Light +# (docs.pybricks.com/en/latest/pupdevices/light.html#pybricks.pupdevices.Light) +# ----------------------------------------------------------------------------- +for a in ( + # docs.pybricks.com/en/latest/pupdevices/light.html#pybricks.pupdevices.Light.on + 'on', + + # docs.pybricks.com/en/latest/pupdevices/light.html#pybricks.pupdevices.Light.off + 'off', +): + act_decor(Light, a) From 5aa5594c9ca10e193b4b2ca88ab08a4ecda9b7cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 20:13:56 -0700 Subject: [PATCH 78/90] skip decorating already-decorated methods in src.pybricks.abm.ev3.motor submodule --- src/pybricks/abm/ev3/motor.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/pybricks/abm/ev3/motor.py b/src/pybricks/abm/ev3/motor.py index eaf44a5d..fe90cfa7 100755 --- a/src/pybricks/abm/ev3/motor.py +++ b/src/pybricks/abm/ev3/motor.py @@ -10,42 +10,42 @@ # ------------------------------------------------------------------- for a in ( # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.Motor.reset_angle - 'reset_angle', + # 'reset_angle', # already decorated in _common.Motor # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.Motor.stop - 'stop', + # 'stop', # already decorated in _common.DCMotor # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.Motor.brake - 'brake', + # 'brake', # already decorated in _common.DCMotor # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.Motor.hold - 'hold', + # 'hold', # already decorated in _common.Motor # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.Motor.run - 'run', + # 'run', # already decorated in _common.Motor # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.Motor.run_time - 'run_time', + # 'run_time', # already decorated in _common.Motor # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.Motor.run_angle - 'run_angle', + # 'run_angle', # already decorated in _common.Motor # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.Motor.run_target - 'run_target', + # 'run_target', # already decorated in _common.Motor # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.Motor.run_until_stalled - 'run_until_stalled', + # 'run_until_stalled', # already decorated in _common.Motor # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.Motor.dc - 'dc', + # 'dc', # already decorated in _common.DCMotor ): act_decor(Motor, a) for s in ( # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.Motor.speed - 'speed', + # 'speed', # already decorated in _common.Motor # pybricks.com/ev3-micropython/ev3devices#pybricks.ev3devices.Motor.angle - 'angle', + # 'angle', # already decorated in _common.Motor ): sense_decor(Motor, s) From 7d2b5463910d445e413ea1c6c20ada9a059d3210 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 20:16:39 -0700 Subject: [PATCH 79/90] skip decorating already-decorated methods in src.pybricks.abm.nxt.color_sensor --- src/pybricks/abm/nxt/color_sensor.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pybricks/abm/nxt/color_sensor.py b/src/pybricks/abm/nxt/color_sensor.py index 30c0dafb..f1a24b94 100755 --- a/src/pybricks/abm/nxt/color_sensor.py +++ b/src/pybricks/abm/nxt/color_sensor.py @@ -10,13 +10,13 @@ # ------------------------------------------------------------------------- for s in ( # pybricks.com/ev3-micropython/nxtdevices#pybricks.nxtdevices.ColorSensor.color - 'color', + # 'color', # already decorated in _common.CommonColorSensor # pybricks.com/ev3-micropython/nxtdevices#pybricks.nxtdevices.ColorSensor.ambient - 'ambient', + # 'ambient', # already decorated in _common.CommonColorSensor # pybricks.com/ev3-micropython/nxtdevices#pybricks.nxtdevices.ColorSensor.reflection - 'reflection', + # 'reflection', # already decorated in _common.CommonColorSensor # pybricks.com/ev3-micropython/nxtdevices#pybricks.nxtdevices.ColorSensor.rgb 'rgb', From 7607c18b16ccaad6be684647b7fa870f8ff7308b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 20:20:12 -0700 Subject: [PATCH 80/90] skip decorating already-decorated methods in src.pybricks.abm.pup.motor.dc submodule --- src/pybricks/abm/pup/motor/dc.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/pybricks/abm/pup/motor/dc.py b/src/pybricks/abm/pup/motor/dc.py index c213721e..a457b858 100755 --- a/src/pybricks/abm/pup/motor/dc.py +++ b/src/pybricks/abm/pup/motor/dc.py @@ -9,9 +9,9 @@ # (docs.pybricks.com/en/latest/pupdevices/dcmotor.html#pybricks.pupdevices.DCMotor) # --------------------------------------------------------------------------------- for a in ( - 'dc', - 'stop', - 'brake', - 'settings', # *** NOTE: OVERLOADED METHOD *** + # 'dc', # already decorated in _common.DCMotor + # 'stop', # already decorated in _common.DCMotor + # 'brake', # already decorated in _common.DCMotor + # 'settings', # already decorated in _common.DCMotor ): act_decor(DCMotor, a) From 1bf3e27c9f30ecfd44320ce37ca9eca29e5712e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 20:21:35 -0700 Subject: [PATCH 81/90] skip decorating already-decorated methods in src.pybricks.abm.pup.motor.pf submodule --- src/pybricks/abm/pup/motor/pf.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pybricks/abm/pup/motor/pf.py b/src/pybricks/abm/pup/motor/pf.py index 1758bcf6..d7a3ffc8 100755 --- a/src/pybricks/abm/pup/motor/pf.py +++ b/src/pybricks/abm/pup/motor/pf.py @@ -9,8 +9,8 @@ # (docs.pybricks.com/en/latest/pupdevices/pfmotor.html) # ----------------------------------------------------- for a in ( - 'dc', - 'stop', - 'brake', + # 'dc', # already decorated in _common.DCMotor + # 'stop', # already decorated in _common.DCMotor + # 'brake', # already decorated in _common.DCMotor ): act_decor(PFMotor, a) From d02f260d8d441083550640d16a76f08ec02bc79a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 20:25:17 -0700 Subject: [PATCH 82/90] skip decorating already-decorated methods in src.pybricks.abm.pup.motor --- src/pybricks/abm/pup/motor/__init__.py | 28 +++++++++++++------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/pybricks/abm/pup/motor/__init__.py b/src/pybricks/abm/pup/motor/__init__.py index 932368a9..527b35c5 100755 --- a/src/pybricks/abm/pup/motor/__init__.py +++ b/src/pybricks/abm/pup/motor/__init__.py @@ -11,48 +11,48 @@ # ----------------------------------------------------------------------------- for a in ( # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.reset_angle - 'reset_angle', + # 'reset_angle', # already decorated in _common.Motor # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.stop - 'stop', + # 'stop', # already decorated in _common.DCMotor # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.brake - 'brake', + # 'brake', # already decorated in _common.DCMotor # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.hold - 'hold', + # 'hold', # already decorated in _common.Motor # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.run - 'run', + # 'run', # already decorated in _common.Motor # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.run_time - 'run_time', + # 'run_time', # already decorated in _common.Motor # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.run_angle - 'run_angle', + # 'run_angle', # already decorated in _common.Motor # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.run_target - 'run_target', + # 'run_target', # already decorated in _common.Motor # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.track_target - 'track_target', + # 'track_target', # already decorated in _common.Motor # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.run_until_stalled - 'run_until_stalled', + # 'run_until_stalled', # already decorated in _common.Motor # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.dc - 'dc', + # 'dc', # already decorated in _common.DCMotor # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.settings - 'settings', # *** NOTE: OVERLOADED METHOD *** + # 'settings', # already decorated in _common.DCMotor ): act_decor(Motor, a) for s in ( # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.speed - 'speed', + # 'speed', # already decorated in _common.Motor # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.angle - 'angle', + # 'angle', # already decorated in _common.Motor ): sense_decor(Motor, s) From 4ccbb24e9ace9de258e7cba2642e0e1cf40064a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 20:44:19 -0700 Subject: [PATCH 83/90] skip decorating already-decorated methods in src.pybricks.abm.pup.color_sensor.distance submodule --- src/pybricks/abm/pup/color_sensor/distance.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/pybricks/abm/pup/color_sensor/distance.py b/src/pybricks/abm/pup/color_sensor/distance.py index 77e24c1d..173362d9 100755 --- a/src/pybricks/abm/pup/color_sensor/distance.py +++ b/src/pybricks/abm/pup/color_sensor/distance.py @@ -10,24 +10,24 @@ # --------------------------------------------------------------------------------------------------------- for a in ( # docs.pybricks.com/en/latest/pupdevices/colordistancesensor.html#pybricks.pupdevices.ColorDistanceSensor.detectable_colors - 'detectable_colors', # *** NOTE: OVERLOADED METHOD *** + # 'detectable_colors', # already decorated in _common.CommonColorSensor ): act_decor(ColorDistanceSensor, a) for s in ( # docs.pybricks.com/en/latest/pupdevices/colordistancesensor.html#pybricks.pupdevices.ColorDistanceSensor.color - 'color', + # 'color', # already decorated in _common.CommonColorSensor # docs.pybricks.com/en/latest/pupdevices/colordistancesensor.html#pybricks.pupdevices.ColorDistanceSensor.reflection - 'reflection', + # 'reflection', # already decorated in _common.CommonColorSensor # docs.pybricks.com/en/latest/pupdevices/colordistancesensor.html#pybricks.pupdevices.ColorDistanceSensor.ambient - 'ambient', + # 'ambient', # already decorated in _common.CommonColorSensor # docs.pybricks.com/en/latest/pupdevices/colordistancesensor.html#pybricks.pupdevices.ColorDistanceSensor.distance 'distance', # docs.pybricks.com/en/latest/pupdevices/colordistancesensor.html#pybricks.pupdevices.ColorDistanceSensor.hsv - 'hsv', + # 'hsv', # already decorated in _common.CommonColorSensor ): sense_decor(ColorDistanceSensor, s) From a90b7bd20f31de6eee5ed919095e45ac3c7153ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 20:58:48 -0700 Subject: [PATCH 84/90] skip decorating already-decorated methods in src.pybricks.abm.pup.color_sensor submodule --- src/pybricks/abm/pup/color_sensor/__init__.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/pybricks/abm/pup/color_sensor/__init__.py b/src/pybricks/abm/pup/color_sensor/__init__.py index 49cb34ec..44e24355 100755 --- a/src/pybricks/abm/pup/color_sensor/__init__.py +++ b/src/pybricks/abm/pup/color_sensor/__init__.py @@ -11,21 +11,21 @@ # ----------------------------------------------------------------------------------------- for a in ( # docs.pybricks.com/en/latest/pupdevices/colorsensor.html#pybricks.pupdevices.ColorSensor.detectable_colors - 'detectable_colors', # *** NOTE: OVERLOADED METHOD *** + # 'detectable_colors', # already decorated in _common.CommonColorSensor ): act_decor(ColorSensor, a) for s in ( # docs.pybricks.com/en/latest/pupdevices/colorsensor.html#pybricks.pupdevices.ColorSensor.color - 'color', + # 'color', # already decorated in _common.AmbientColorSensor # docs.pybricks.com/en/latest/pupdevices/colorsensor.html#pybricks.pupdevices.ColorSensor.reflection - 'reflection', + # 'reflection', # already decorated in _common.CommonColorSensor # docs.pybricks.com/en/latest/pupdevices/colorsensor.html#pybricks.pupdevices.ColorSensor.ambient - 'ambient', + # 'ambient', # already decorated in _common.CommonColorSensor # docs.pybricks.com/en/latest/pupdevices/colorsensor.html#pybricks.pupdevices.ColorSensor.hsv - 'hsv', + # 'hsv', # already decorated in _common.AmbientColorSensor ): sense_decor(ColorSensor, s) From 7c0d2b549fd9ecf6733fd0078ddb59dd6cb8cec8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Sun, 4 Sep 2022 21:26:59 -0700 Subject: [PATCH 85/90] skip decorating already-decorated methods in src.pybricks.abm.io.dc_motor submodule --- src/pybricks/abm/io/dc_motor.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pybricks/abm/io/dc_motor.py b/src/pybricks/abm/io/dc_motor.py index 25153388..f964e34a 100755 --- a/src/pybricks/abm/io/dc_motor.py +++ b/src/pybricks/abm/io/dc_motor.py @@ -9,7 +9,7 @@ # (pybricks.com/ev3-micropython/iodevices#dc-motor) # ------------------------------------------------- for a in ( - 'dc', - 'stop', + # 'dc', # already decorated in _common.DCMotor + # 'stop', # already decorated in _common.DCMotor ): act_decor(DCMotor, a) From 072ba1e2a4f4cae3a6e2f33249fbc0af1d5e7d71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Tue, 6 Sep 2022 14:17:34 -0700 Subject: [PATCH 86/90] skip ABM-decorating overloaded methods --- src/pybricks/abm/_common/color_sensor/common.py | 2 +- src/pybricks/abm/_common/motor/control.py | 8 ++++---- src/pybricks/abm/_common/motor/dc.py | 2 +- src/pybricks/abm/io/lwp3.py | 2 +- src/pybricks/abm/pup/remote.py | 2 +- src/pybricks/abm/robotics/drive_base.py | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/pybricks/abm/_common/color_sensor/common.py b/src/pybricks/abm/_common/color_sensor/common.py index f15caa8a..6c962b26 100755 --- a/src/pybricks/abm/_common/color_sensor/common.py +++ b/src/pybricks/abm/_common/color_sensor/common.py @@ -8,7 +8,7 @@ # CommonColorSensor # ----------------- for a in ( - 'detectable_colors', # *** NOTE: OVERLOADED METHOD *** + # 'detectable_colors', # *** NOTE: OVERLOADED METHOD *** ): act_decor(CommonColorSensor, a) diff --git a/src/pybricks/abm/_common/motor/control.py b/src/pybricks/abm/_common/motor/control.py index e88ffa05..5d8c83c7 100755 --- a/src/pybricks/abm/_common/motor/control.py +++ b/src/pybricks/abm/_common/motor/control.py @@ -9,16 +9,16 @@ # ------- for a in ( # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.Motor.control.limits - 'limits', # *** NOTE: OVERLOADED METHOD *** + # 'limits', # *** NOTE: OVERLOADED METHOD *** # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.Motor.control.pid - 'pid', # *** NOTE: OVERLOADED METHOD *** + # 'pid', # *** NOTE: OVERLOADED METHOD *** # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.Motor.control.target_tolerances - 'target_tolerances', # *** NOTE: OVERLOADED METHOD *** + # 'target_tolerances', # *** NOTE: OVERLOADED METHOD *** # docs.pybricks.com/en/latest/pupdevices/motor.html#pybricks.pupdevices.Motor.Motor.control.stall_tolerances - 'stall_tolerances', # *** NOTE: OVERLOADED METHOD *** + # 'stall_tolerances', # *** NOTE: OVERLOADED METHOD *** ): act_decor(Control, a) diff --git a/src/pybricks/abm/_common/motor/dc.py b/src/pybricks/abm/_common/motor/dc.py index 8fca489e..354aa1f1 100755 --- a/src/pybricks/abm/_common/motor/dc.py +++ b/src/pybricks/abm/_common/motor/dc.py @@ -11,6 +11,6 @@ 'dc', 'stop', 'brake', - 'settings', # *** NOTE: OVERLOADED METHOD *** + # 'settings', # *** NOTE: OVERLOADED METHOD *** ): act_decor(DCMotor, a) diff --git a/src/pybricks/abm/io/lwp3.py b/src/pybricks/abm/io/lwp3.py index 0ac76cfb..ea653143 100755 --- a/src/pybricks/abm/io/lwp3.py +++ b/src/pybricks/abm/io/lwp3.py @@ -10,7 +10,7 @@ # ------------------------------------------------------------------------------------- for a in ( # docs.pybricks.com/en/latest/iodevices/lwp3device.html#pybricks.iodevices.LWP3Device.name - 'name', # *** NOTE: OVERLOADED METHOD *** + # 'name', # *** NOTE: OVERLOADED METHOD *** # docs.pybricks.com/en/latest/iodevices/lwp3device.html#pybricks.iodevices.LWP3Device.write 'write', diff --git a/src/pybricks/abm/pup/remote.py b/src/pybricks/abm/pup/remote.py index b154e0ef..96d24352 100755 --- a/src/pybricks/abm/pup/remote.py +++ b/src/pybricks/abm/pup/remote.py @@ -10,6 +10,6 @@ # ------------------------------------------------------------------------------- for a in ( # docs.pybricks.com/en/latest/pupdevices/remote.html#pybricks.pupdevices.Remote.name - 'name', # *** NOTE: OVERLOADED METHOD *** + # 'name', # *** NOTE: OVERLOADED METHOD *** ): act_decor(Remote, a) diff --git a/src/pybricks/abm/robotics/drive_base.py b/src/pybricks/abm/robotics/drive_base.py index 92aa7c46..fe4c1419 100755 --- a/src/pybricks/abm/robotics/drive_base.py +++ b/src/pybricks/abm/robotics/drive_base.py @@ -19,7 +19,7 @@ 'curve', # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.settings - 'settings', # *** NOTE: OVERLOADED METHOD *** + # 'settings', # *** NOTE: OVERLOADED METHOD *** # docs.pybricks.com/en/latest/robotics.html#pybricks.robotics.DriveBase.drive 'drive', From 152827492a887dae3838731e71f86ecd79c3046d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Mon, 22 May 2023 14:12:14 -0700 Subject: [PATCH 87/90] update Python dep requirement --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index ee71a462..110c84c7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,7 +26,7 @@ packages = [ ] [tool.poetry.dependencies] -python = "^3.8" +python = ">= 3.11" Agent-Behavior-Model = {url = "https://github.com/IoT-Robotics/Agent-Behavior-Model/archive/main.zip"} From 04df5948ac79193f8743ec84b7b8ca1e4fdbd45a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Mon, 22 May 2023 14:16:16 -0700 Subject: [PATCH 88/90] update Python version to 3.11 for test workflows --- .github/workflows/publish-ide-docs.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/publish-ide-docs.yml b/.github/workflows/publish-ide-docs.yml index 15a4db00..3c6a08b8 100644 --- a/.github/workflows/publish-ide-docs.yml +++ b/.github/workflows/publish-ide-docs.yml @@ -2,7 +2,7 @@ name: Release @pybricks/ide-docs on: push: - tags: + tags: - '@pybricks/ide-docs/**' jobs: @@ -16,10 +16,10 @@ jobs: - uses: actions/checkout@v3 with: submodules: recursive - - name: Set up Python 3.8 + - name: Set up Python 3.11 uses: actions/setup-python@v4 with: - python-version: 3.8 + python-version: 3.11 - name: Install dependencies run: | pip install poetry From 8b63735f4d7394b6d6e1078f8ebd6bd1bfea0fe7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Tue, 7 Nov 2023 20:58:01 -0800 Subject: [PATCH 89/90] add installation scripts & Makefile --- Makefile | 2 ++ install-editable-dev | 6 ++++++ install-editable-dev.bat | 3 +++ 3 files changed, 11 insertions(+) create mode 100644 Makefile create mode 100755 install-editable-dev create mode 100644 install-editable-dev.bat diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..1110261d --- /dev/null +++ b/Makefile @@ -0,0 +1,2 @@ +install-editable: + @ ./install-editable-dev diff --git a/install-editable-dev b/install-editable-dev new file mode 100755 index 00000000..c2d91030 --- /dev/null +++ b/install-editable-dev @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + + +python3 -m pip install PEP517 PIP SetUpTools Wheel --upgrade + +python3 -m pip install -e . --upgrade --user diff --git a/install-editable-dev.bat b/install-editable-dev.bat new file mode 100644 index 00000000..6f4bd96d --- /dev/null +++ b/install-editable-dev.bat @@ -0,0 +1,3 @@ +python -m pip install PEP517 PIP SetUpTools Wheel --upgrade + +python -m pip install -e . --upgrade --user From bf8aa0ff25dfc11e8011e86601807a691981ea54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20Luong=20=28Lu=CC=9Bo=CC=9Bng=20The=CC=82?= =?UTF-8?q?=CC=81=20Vinh=29?= Date: Thu, 9 Nov 2023 11:23:36 -0800 Subject: [PATCH 90/90] move install-editable scripts to install/ sub-directory --- Makefile | 2 +- install-editable-dev => install/install-editable | 0 install-editable-dev.bat => install/install-editable.bat | 0 3 files changed, 1 insertion(+), 1 deletion(-) rename install-editable-dev => install/install-editable (100%) rename install-editable-dev.bat => install/install-editable.bat (100%) diff --git a/Makefile b/Makefile index 1110261d..5b4fb3a5 100644 --- a/Makefile +++ b/Makefile @@ -1,2 +1,2 @@ install-editable: - @ ./install-editable-dev + @ install/install-editable diff --git a/install-editable-dev b/install/install-editable similarity index 100% rename from install-editable-dev rename to install/install-editable diff --git a/install-editable-dev.bat b/install/install-editable.bat similarity index 100% rename from install-editable-dev.bat rename to install/install-editable.bat