New py5 Release: 0.9.1a1
We are moving back to py5's previous release frequency of a release every 2-3 months. This is minor release with one important feature to support Thonny users, as well as a handful of bug fixes and other improvements.
Imported Mode Code Importing feature
Python projects with moderate to large amounts of code will be typically split into multiple files that will be imported from from one file to another. However, due to the way py5's Imported Mode works, this couldn't be done with py5 Imported Mode code. This new feature changes that, supporting the ability to import Imported Mode code from one file to another. How to do this is described in more detail in the documentation page Importing Imported Mode Code. In addition, the documentation also describes General py5 Importing Guidelines for writing importable py5 code in that supports all of py5's programming modes.
Other Changes
- Using
gto access the primary Py5Graphics object is now deprecated. Users will receive a warning message instructing them to useget_graphics()intead. Allowing the single charactergto be a reserved variable name is problematic for users coding in Imported Mode. Consider that thegvariable is often used in a rgb variable triplet. Thegvariable will be removed in the next release. - Update dependency versions for numpy from 1.23 to 1.24 and for pillow from 9.2 to 9.5
- New
Py5Shape.color_mode()method, similar toPy5Graphics.color_mode()andpy5.color_mode() - New
Py5Shapemethodsvertices(),bezier_vertices(),quadratic_vertices(), andcurve_vertices(), analogous to the other methods of the same name.
Closed Issues
- Issue #301: Imported mode validation should not allow new function definitions for py5 reserved words
- Issue #302: Py5Shape class should have a Java Py5ShapeHelper class, analogous to Py5GraphicsHelper for Py5Graphics
- Issue #303: Py5Graphics.create_shape() method cannot create GROUP shapes
- Issue #304: Add color_mode() method to Py5Shape
- Issue #307: Py5Graphics methods points(), vertices(), etc have no type hints or docstrings
- Issue #295: py5_tools.register_processing_mode_key() should be optional for same-name keys in the namespace setup() and draw() are found
- Issue #314: Spaces in def setup() definition are tripping up the run_sketch utility
- Issue #317: Removing g from the list of py5 "reserved words" breaks things
- Issue #318: The %%py5draw magic is broken
- Issue #319: constrain() returns zero-dimensional array instead of float
- Issue #323: Improve NameError exception message when Imported mode users have a py5. somewhere in their code
What's Ahead
- New matplotlib related features
- Some improvements to py5's OSX support