Commit Graph
33 Commits
Author SHA1 Message Date
Laurens Valk a80d5cf91e pybricks.common.Accelerometer: Add typing.
Also remove tapped and shaken, which are not implemented.
2022-05-30 09:46:00 +02:00
Laurens Valk 515d261bad pybricks.common.Charger: Add typing. 2022-05-30 09:29:14 +02:00
Laurens Valk dd54d67720 pybricks.common: Use Number as input type where allowed. 2022-05-28 11:33:08 +02:00
Laurens Valk 453332201e pybricks.common.Battery: Add typing. 2022-05-28 11:23:21 +02:00
Laurens Valk 3548ff47ce pybricks.common.Keypad: Add typing. 2022-05-28 11:20:07 +02:00
Laurens Valk a02b283f3f pybricks.common.LightMatrix: Add typing. 2022-05-28 11:15:17 +02:00
Laurens Valk f197531979 pybricks.common.LightArray: Add typing.
Remove blink and animate, which aren't implemented. These weren't displayed in the docs, so this is not a real change; it just makes typing more correct.
2022-05-28 10:55:40 +02:00
Laurens Valk 2167b9d52d pybricks.common.ColorLight: Add typing.
Also remove pybricks.common.Light which isn't used anywhere.

pupdevices.Light is a standalone light that does not support animations or blinks, so don't inherit from this nonexistent class.

Also remove the ColorLight.reset() method which was never implemented.
2022-05-27 20:00:28 +02:00
Laurens Valk 2be15fdf4d pybricks.common.Speaker: Add typing. 2022-05-27 19:14:22 +02:00
Laurens Valk aaf3ad1b9c pybricks.common.Control: Add typing. 2022-05-27 17:15:24 +02:00
Laurens Valk bd7806d2d4 all: Format with black.
Also activate auto formatting. Bump flake8 and mark black
disagreements in setup.cfg.
2022-05-27 16:22:05 +02:00
Laurens Valk 24f7d7c288 pybricks.common.Motor: Add typing. 2022-05-27 16:01:18 +02:00
Laurens Valk 5e0ba1de07 doc/common/conf: Format units in return type.
This formats return types so they don't look like tuples:

int: deg

If we can figure out how these nodes work, we can create proper links
and maybe use italics for the units or a slightly different font color.
2022-05-27 14:59:32 +02:00
Laurens Valk c4a09ab62a pybricks.common.DCMotor: Add typing. 2022-05-09 15:05:09 +02:00
Laurens Valk c0c53db5ee pybricks.common.System: Add typing. 2022-05-09 10:41:39 +02:00
Laurens Valk 5e9a8c5737 doc/main/signaltypes: Change how units are documented.
Previously, arguments had "types" like ":ref:`speed`", which would be rendered by Sphinx as a hyperlink and displayed as "rotational speed: deg/s".

This worked well enough but it had a few shortcomings:
- It looks bad on autocomplete, which doesn't know how to render RST with cross references.
- No real type information: int, float, ... ?
- Some units are very long, making the docs less concise.
- The unified approach doesn't always work. Some method arguments can be either deg/s or mm/s, depending on the application. This gets even lengthier.
- It's hard to maintain if you don't know what to link to.

In the new approach, the unit is just added to the type as plain text. Instead of giving the physical signal name, we give the real data type, which is more standard. The physical signal name is usually apparent from the docstring anyway, and can be inferred from the unit as well. This also solves all of the above problems.

Since most Pybricks methods allow both int and float for numeric inputs, we document these as a Number type, which is the union of int and float. Since the type is no longer directly tied to the type, we can still document the return type correctly, since this is never a union.

Instead of having complicated hacks in Sphinx to make this work (I have tried many), it turns out we can conveniently suppress broken references and still display the units. The only downside is that units will no longer have hyperlinks to the signal pages, at least for the moment. We should be able to make on_missing_reference a bit smarter to format the units as we see fit if needed.

The approach here is exemplified in the Motor.run_until_stalled method. Subsequent commits will apply it everywhere. Also clarify the behavior for duty_limit=None while we are updating this code anyway.
2022-05-09 10:28:31 +02:00
Laurens Valk 556728937f pybricks.common.Accelerometer: Use mm/s/s units.
Fixes https://github.com/pybricks/pybricks-api/issues/94

For Move Hub, this is a breaking change since Move Hub IMU support
was already released. For the other hubs, the IMU API has not been
released yet, so we can do this silently.
2022-04-01 15:41:15 +02:00
Laurens Valk 0a31bc711f pybricks.common.Control: Add deceleration setter.
Fixes https://github.com/pybricks/pybricks-api/issues/97
2022-03-21 11:17:34 +01:00
Pavel Lobodinský 616051149b pybricks.common.Speaker: Add volume setter. 2022-01-20 08:56:29 +01:00
Laurens Valk 0ceabe8497 pybricks.common.Charger: Document it. 2022-01-14 15:14:28 +01:00
Pavel Lobodinský 97002948d1 pybricks.common: Refactored Speaker API to be hub specific.
The Prime/Inventor Hub Speaker allows only a subset of EV3 Speaker API. Hence, splitting the API up.
2022-01-05 12:10:11 -06:00
Pavel Lobodinský 70aa5ee0e2 pybricks._common: Renamed incorrect argument name, fixed tuple type. 2022-01-03 11:01:33 +01:00
Laurens Valk d806fe9fbe pybricks.common.Control: Fix docstring and type hints for limits().
Fixes https://github.com/pybricks/support/issues/565
2021-12-30 09:12:27 +01:00
Laurens Valk 57f6f0fbef pybricks.pupdevices.DCMotor: Document settings method.
Also update changelog for recent changes.
2021-12-01 14:55:34 +01:00
Laurens Valk e061617c34 pybricks.common.Control: Drop integral_range.
This setting is no longer used. We leave a placeholder setting so we don't break existing programs.

See https://github.com/pybricks/pybricks-micropython/commit/e82dd6a2be4e378ab0b1ee7e3b2643fe654de4a9#diff-e529f43c94cf766ade4b68930f9713a45b62618f4305e4c0c88ba872e9f9cd0e
2021-12-01 14:54:21 +01:00
Laurens Valk eb09ecd7c7 pybricks.common.Control: Drop duty limit.
This is now a per-motor voltage limit.

See https://github.com/pybricks/support/issues/536
2021-12-01 14:41:09 +01:00
Laurens Valk 06a1542613 pybricks.pupdevices.DCMotor: Document settings method.
See https://github.com/pybricks/support/issues/536
2021-12-01 14:40:06 +01:00
Laurens Valk a8ab8b2314 pybricks.pupdevices.Motor: Add reset_angle kwarg.
Documents https://github.com/pybricks/support/issues/389
2021-07-28 16:07:53 +02:00
Laurens Valk 78bd21b197 pybricks.common.Control: Drop feed_forward.
The implementation no longer includes this, so it is removed from the docs as well.

Fixes https://github.com/pybricks/pybricks-api/issues/74
2021-07-23 15:35:13 +02:00
Laurens Valk 24bba6d24c pybricks.pupdevices.Motor: Document control here.
Based on user feedback, we learned that the control attribute is used more frequently than anticipated. Therefore it makes sense to document it here, just like we do with instances of pybricks.common classes in hubs.

This makes it a bit easier to find and see how it is used, along with some of the existing examples.
2021-07-23 15:33:18 +02:00
Laurens Valk 0edddbb0c2 pybricks.common.Control: Fix scale doc.
Document it as an attribute instead of in the main docstring. This way we can choose where it shows up in the docs.
2021-07-23 14:51:21 +02:00
Laurens Valk 9944cf3adf pybricks.common.System: Add name() getter. 2021-07-14 09:43:20 +02:00
David Lechner 7126431f9f pybricks: move into src/ directory
Moving the pybricks package into a src/ directory so that we can add
additional packages without polluting the top-level directory.
2021-07-14 09:41:30 +02:00