pybricks.ev3/pupdevices: fix Motor code completion

The Microsoft Python extension for VS code doesn't include imports in
type hints, so the Motor type wasn't working properly. We can fix this
by wrapping the import type in a new, empty class definition.

The DCMotor class was also missing from ev3devices and the typing for
the overloaded reset_angle method in pupdevices was missing. These are
fixed as well.
This commit is contained in:
David Lechner
2022-02-21 10:59:00 -06:00
parent 616051149b
commit 2ba7edab0c
5 changed files with 40 additions and 10 deletions
+5
View File
@@ -4,6 +4,11 @@
## Unreleased
### Fixed
- Fixed code completion for `DCMotor` and `Motor` classes in MS Python VS Code extension.
- Fixed missing `DCMotor` type in `ev3devices`.
- Fixed type hint for `Motor.reset_angle()` in `pupdevices`.
## 3.1.0 - 2021-12-16
### Added
+10 -2
View File
@@ -1,10 +1,18 @@
# SPDX-License-Identifier: MIT
# Copyright (c) 2018-2020 The Pybricks Authors
# Copyright (c) 2018-2022 The Pybricks Authors
"""LEGO® MINDSTORMS® EV3 motors and sensors."""
from .parameters import Direction as _Direction
from ._common import Motor # noqa E402
from ._common import DCMotor as _DCMotor, Motor as _Motor
class DCMotor(_DCMotor):
pass
class Motor(_Motor):
pass
class TouchSensor:
+5 -2
View File
@@ -1,10 +1,13 @@
# SPDX-License-Identifier: MIT
# Copyright (c) 2020 The Pybricks Authors
# Copyright (c) 2020-2022 The Pybricks Authors
from typing import List, Optional, Tuple
from .parameters import Color, Direction, Port, Button
from ._common import Motor # noqa E402
from ._common import DCMotor as _DCMotor, Motor as _Motor
class DCMotor(_DCMotor): ...
class Motor(_Motor): ...
class TouchSensor:
def __init__(self, port: Port): ...
+6 -2
View File
@@ -1,15 +1,19 @@
# SPDX-License-Identifier: MIT
# Copyright (c) 2018-2020 The Pybricks Authors
# Copyright (c) 2018-2022 The Pybricks Authors
"""LEGO® Powered Up motor, sensors, and lights."""
from ._common import (Keypad as _Keypad, DCMotor,
from ._common import (Keypad as _Keypad, DCMotor as _DCMotor,
ColorLight as _ColorLight, Motor as _Motor,
LightArray as _LightArray, Light as _Light)
from .parameters import Direction as _Direction, Button as _Button
class DCMotor(_DCMotor):
pass
class Motor(_Motor):
"""Generic class to control motors with built-in rotation sensors."""
+14 -4
View File
@@ -1,13 +1,23 @@
# SPDX-License-Identifier: MIT
# Copyright (c) 2020 The Pybricks Authors
# Copyright (c) 2020-2022 The Pybricks Authors
from typing import Collection, List, Optional, Tuple, Union
from ._common import Keypad, DCMotor, ColorLight, LightArray, Motor as BaseMotor, Light as BaseLight
from ._common import (
Keypad,
DCMotor as _DCMotor,
ColorLight,
LightArray,
Motor as _Motor,
Light as BaseLight,
)
from .parameters import Color, Direction, Port
class Motor(BaseMotor): ...
class DCMotor(_DCMotor): ...
class Motor(_Motor):
def reset_angle(self, angle: Optional[int]) -> None: ...
class Remote:
light: ColorLight
@@ -63,7 +73,7 @@ class ForceSensor:
class ColorLightMatrix:
def __init__(self, port: Port) -> None: ...
def on(self, color: Union[Color, List[Color]]) -> None: ...
def off(self)-> None: ...
def off(self) -> None: ...
class InfraredSensor:
def __init__(self, port: Port): ...