1392 Commits
Author SHA1 Message Date
Laurens Valk 796c600d72 v4.1.0b1 v4.1.0b1 2026-08-25 13:56:58 +02:00
Laurens Valk 226e811c7b ubuiltins: Fix typing self imports. 2026-08-25 13:52:54 +02:00
Laurens Valk 9086eb696f workflows: Match in local build script.
Also copy to Pybricks Code for local testing.
2026-08-25 13:22:50 +02:00
Laurens Valk 4241fe3607 all: More ruff fixes. 2026-08-25 12:53:19 +02:00
Laurens Valk e0821fade4 all: Drop legacy Tuple. 2026-08-25 12:39:49 +02:00
Laurens Valk d3ba6154f0 all: More ruff fixes.
Apply  ruff check --fix --unsafe-fixes

and then update the pytests to match.
2026-08-25 12:30:08 +02:00
Laurens Valk d00bf35c66 all: ruff check --fix.
Mainly fixes and sorts imports.
2026-08-25 12:22:28 +02:00
Laurens Valk d661fa1838 jedi/tests: Modernize type signatures.
In one go with:

sed -i \
 -e 's/Optional\[Union\[Collection\[int\], Collection\[Collection\[int\]\]\]\]/Collection[int] | Collection[Collection[int]] | None/g' \
 -e 's/Optional\[Union\[Button, Iterable\[Button\]\]\]/Button | Iterable[Button] | None/g' \
 -e 's/Optional\[Union\[Number, Tuple\[Number, Number\]\]\]/Number | Tuple[Number, Number] | None/g' \
 -e 's/Optional\[int | str\]/int | str | None/g' \
 -e 's/Optional\[str\]/str | None/g' \
 -e 's/Optional\[Number\]/Number | None/g' \
 -e 's/Union\[Number, Tuple\[Number, Number, Number, Number\]\]/Number | Tuple[Number, Number, Number, Number]/g' \
 -e 's/Union\[Number, Tuple\[Number, Number, Number\]\]/Number | Tuple[Number, Number, Number]/g' \
 -e 's/Union\[Color, Collection\[Color\]\]/Color | Collection[Color]/g' \
 -e 's/Union\[int, Tuple\[int, int\]\]/int | Tuple[int, int]/g' \
 -e 's/\bTuple\[/tuple[/g' \
 -e 's/\bSet\[/set[/g' \
 jedi/tests/test_get_signature.py
2026-08-25 12:21:14 +02:00
Laurens Valk 97564e33c5 pybricks.parameters: Fix tests for imports. 2026-08-25 12:19:24 +02:00
Laurens Valk a59a567967 requirements: Add EV3. 2026-08-25 12:03:03 +02:00
Laurens Valk adf8ed6b56 pybricks.hubs: Enable EV3.
First pass including Image and ImageFile. Largely migrated from old ev3dev version. We can refine this for the embedded version in the next commits.
2026-08-25 11:42:05 +02:00
Laurens Valk 6a70707f67 pybricks: Clean up typing. 2026-08-25 10:50:19 +02:00
Laurens Valk 4ade3939ae pybricks.nxtdevices: Fix awaitability.
Some are, and some are not.
2026-08-25 10:19:53 +02:00
Laurens Valk 6cd0c3b136 pybricks._common.Motor: Enable on EV3 and NXT.
Use a shared include and only index the pupdevices Motor.
2026-08-25 10:13:58 +02:00
Laurens Valk bd4a26f6ac pybricks._common.Motor: Fix nested attributes.
Now we can use relative paths, which should help when sharing the motor class contents.
2026-08-25 09:54:02 +02:00
Laurens Valk 8dba975894 pybricks.ev3devices: Re-enable.
Also split out to separate class files like we did for pupdevices.

Also make various EV3 and NXT sensor methods awaitable.
2026-08-25 09:26:17 +02:00
Laurens Valk bc70549edd pyproject: Re-enable rtd-theme. 2026-08-24 17:28:00 +02:00
Laurens Valk 37664889c6 github/workflows: Always build. 2026-08-24 17:18:57 +02:00
Laurens Valk b04e318c3c github/workflows: Modernize toolchain. 2026-08-24 11:32:27 +02:00
Laurens Valk 7398f2df1a npm/images: Drop this.
This was consumed only by Pybricks Code, which now just vendors them in.
2026-08-24 11:31:50 +02:00
Laurens Valk 421e589408 jedi: Bump to modern Python. 2026-08-24 11:30:14 +02:00
Laurens Valk 9bd82f7246 doc: Replace fork with extensions.
Use clean upstream Sphinx and use extensions for the awaitable types and work around a Sphinx docstring parsing bug.
2026-08-24 11:01:50 +02:00
Laurens Valk 1fca5c8ad9 all: Build with plain modern sphinx.
Updated for various Sphinx API changes.

Also drop rendered math. Simpler and makes the plain Python docstrings look better in jedi.

```
:math:`0 \leq x \leq 255`.
```

just becomes 0 ≤ x ≤ 255.

Also drop Latex dependencies. We don't rely on the PDF and don't need it for math anymore.
2026-08-24 10:30:57 +02:00
Laurens Valk cab110d4c1 all: Format with ruff. 2026-08-24 09:28:29 +02:00
Laurens Valk 1df788d716 poetry: Drop customizations.
Prepare for an updated Sphinx with a modern theme.
2026-08-24 09:27:25 +02:00
Bert 7e79c20f7d pybricks.messaging: Fix a few minor typos in docstrings.
A few docstrings contained spelling and grammar mistakes. These changes improve readability and do not affect functionality.
2026-06-27 11:17:32 -05:00
Laurens Valk d17b40796c v4.0.0 v4.0.0 2026-06-08 15:16:08 +02:00
kai-morich 121e19b33d pybricks.parameters: make Colors hashable.
The MicroPython implementation support hashing, we this should too.
2026-06-04 15:00:58 +02:00
Laurens Valk a4e4f9cb52 v4.0.0b12 v4.0.0b12 2026-06-02 12:24:39 +02:00
Laurens Valk a442264953 npm/ide-docs: Export namespace index.
Make the linter happy.
2026-06-02 12:20:54 +02:00
Laurens Valk 1118aa2af8 jedi: Fallback to tomllib backport. 2026-06-02 12:03:41 +02:00
Laurens Valk 32ff42d583 CHANGELOG: Move version notes.
No need to post these in all release notes.
2026-06-02 12:02:21 +02:00
Laurens Valk 7895cac17f index: Simplify landing.
Docs are great if you know what to look for already. Otherwise it is better to start in the welcome guide.
2026-06-02 12:01:00 +02:00
Laurens Valk b891f6c35e blockimg: Update screenshots for BLERadio and hubs.
Matches API update to move to BLERadio.

Also update DriveBase method images matching API update.
2026-06-02 11:48:19 +02:00
Laurens Valk 307abbf085 v4.0.0b11 v4.0.0b11 2026-06-01 16:38:48 +02:00
Laurens Valk 9acbdb8367 conf: Build a json symbol index on build.
Ship it with the docs so we can parse it in Pybricks for namespace based lookup.
2026-06-01 16:38:34 +02:00
Laurens Valk 7409057b9c pybricks: Indexing fixes.
The noindex made them not show up. Also fix misc related indexing issues.
2026-06-01 16:26:24 +02:00
Laurens Valk 89e5bde8e7 pybricks.pupdevices.Motor: Namespace model and control.
Otherwise the duplicate the Motor class in the object index.
2026-06-01 15:32:57 +02:00
Laurens Valk 5ecad4a845 pybricks.parameters. Document with full namespace.
This types them in full for the object index.
2026-06-01 15:18:09 +02:00
Laurens Valk a402ae02e9 poetry: Update locks.
0.0.0 can't be pinned.
2026-05-30 11:47:05 +02:00
Laurens Valk cd58dde773 v4.0.0b10 v4.0.0b10 2026-05-30 11:40:00 +02:00
Laurens Valk 2926b4af71 npm/jedi: Build pybricks-api from source.
Now that we use a single release pipeline, the API itself might not yet be on
PyPI by the time we build jedi, so we build it locally.

We'll still keep the API docs on PyPI so users can have local autocomplete,
but that path is no longer a dependency for building jedi.

Also explain CHANGELOG synchronization with firmware repo.
2026-05-30 11:39:00 +02:00
Laurens Valk 614453aa32 .github/workflows: Fix permissions and npm version tags. 2026-05-30 11:32:04 +02:00
Laurens Valk 0f6b8dee67 npm: Simplify release pipeline.
Releasing API updates is quite a long and error prone process, so the point
that it was limiting our ability to push frequent updates in practice. There
were 5 tag, commit, wait, and proceed steps and you'd have to start over or
force push if a mistake was made.

This keeps all the npm packages as they were, but versions everything from a
single source of truth, which is this project's main version. Everything
builds on a tag on the main repo, much like we did for a regular IDE docs RTD
release.

It also skips the PyPI for jedi as an intermediate step, which isn't really
needed and required us to have this strict order of publication steps.
2026-05-30 11:31:38 +02:00
Laurens Valk a9be86238d pybricks.messaging.BLERadio: Fix example paths. 2026-05-29 20:28:36 +02:00
Laurens Valk 16d5ba64d2 pybricks.ev3devices: Update return types. 2026-05-29 20:09:06 +02:00
Laurens Valk d8802ace7d pybricks.common: Update system info. 2026-05-29 20:08:53 +02:00
Laurens Valk acb5206349 pybricks.robotics: Update DriveBase. 2026-05-29 20:06:56 +02:00
Laurens Valk 6686fce3c3 pybricks.pupdevices: Document MarioHub, TechnicMoveHub and DuploTrain. 2026-05-29 16:59:51 +02:00
Laurens Valk 7d27fbb5d8 pybricks.iodevices: Document DCMotor. 2026-05-29 15:39:24 +02:00