New py5 Release: 0.10.2a0

I'm pleased to announce the release of py5 0.10.2a0 and py5jupyter 0.2.1a0. Both are small releases with a few bug fixes and enhancements.

PyCon 2024

But before talking about the release, I want to share the py5 recordings from PyCon 2024. I delivered a presentation titled Creative Coding with py5, the Python version of Processing. Alexandre Villares led py5 tutorial Learning Python while making drawings and animations. Both were well attended and a lot of fun for both of us to organize and deliver. I'm grateful for the opportunity to meet so many people from the py5 community and the Python community! I hope to see you all again soon.

Please watch the videos and give both of them a thumbs up!

New Contributors

For this release, py5jupyter had a first-time contributor. Many thanks to Ivan Lengyel for not only making a PR, but for doing much debugging and research to clarify the problem. The original py5 issue, #456, was traced to issue #1124 in the ipykernel library. A ipykernel PR resolved the problem, and py5jupyter now requires versions of ipykernel that include the fix. Ivan's py5jupyter PR updates py5jupyter's ipykernel version dependency.

Very grateful to Ivan Lengyel for the assistance in resolving this issue!

Cached Object Conversion

Enhancement #420 creates new convert_cached_image() and convert_cached_shape() methods. Thank you to Alexandre Villares for the thoughtful discussion that led to these two enhancements that can simplify code that would otherwise use the convert_image() and convert_shape() methods. Have a look at the Cached Conversion documentation to learn more.

Python 3.9

This release of py5 requires Python 3.9 or later. Python 3.8 is nearing its end-of-life and I want to make sure py5 users are using a supported version of Python. If you need to keep using Python 3.8, you can continue to use py5 0.10.1a1.

Library Dependencies

I updated py5 and py5jupyter's library dependencies. This includes allowing py5 to be installed alongside numpy 2.0. I have tested py5 with numpy 2.0 and it works well.

Removing NPM & JavaScript from py5jupyter

Previous versions of py5jupyter contained JavaScript code for the sketch portal widget. Unfortunately the sketch portal is broken and had to be temporarily removed from the library. My future goal is to re-implement it with anywidget, which eliminates the JavaScript packaging headaches and (I hope!) simplifies the implementation. As a first step, I removed all of JavaScript stuff to clear a path for the future implementation.

Closed Issues

Here are the closed issues for py5:

  • #420, new convert_cached_image() and convert_cached_shape() methods

  • #441, improve error message when sketch file is executed without ever being saved

  • #443, repairing the Py5Image.copy() method

  • #446, unpin numpy, allowing py5 to be installed alongside numpy 2.0

  • #447, repairing and enhancing set_println_stream(). This change was needed to support the future project py5ascii.

In addition, there was the one closed issue that resulted in a change to py5jupyter:

  • #456, limit ipykernel version dependency to avoid problems with Jupyter on MacOS.

Processing Library

Processing hasn't yet had a new release so py5 is still dependent on the same Processing fork I used for the previous few releases. I'd still like for my code changes to get merged but am not at all worried about it now.

What's Ahead

Good question. Lately I've been swamped with some personal issues and am not sure what I will have time for. What I work on over the next few months will likely be determined by what I have the mental bandwidth to focus on. One thing that is at the top of my mind is expanding py5's integrations with other Python libraries. I'd like to revisit getting PyInstaller to work with py5. I also have a half-working prototype of a live coding tool for py5...I know a lot of people who would get good use out of it. We'll see how that goes.

Comments