...and bug fixes.
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](http://py5coding.org/content/importing_py5_code.html#importing-imported-mode-code).
Other Changes
* Using `g` to access the primary Py5Graphics object is now deprecated. Users will receive a warning message instructing them to use `get_graphics()` intead. Allowing the single character `g` to be a reserved variable name is problematic for users coding in Imported Mode. Consider that the `g` variable is often used in a rgb variable triplet. The `g` variable 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 to `Py5Graphics.color_mode()` and `py5.color_mode()`
* New `Py5Shape` methods `vertices()`, `bezier_vertices()`, `quadratic_vertices()`, and `curve_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](https://github.com/py5coding/py5generator/issues/301)
* [Issue 302: Py5Shape class should have a Java Py5ShapeHelper class, analogous to Py5GraphicsHelper for Py5Graphics](https://github.com/py5coding/py5generator/issues/302)
* [Issue 303: Py5Graphics.create\_shape() method cannot create GROUP shapes](https://github.com/py5coding/py5generator/issues/303)
* [Issue 304: Add color_mode() method to Py5Shape](https://github.com/py5coding/py5generator/issues/304)
* [Issue 307: Py5Graphics methods points(), vertices(), etc have no type hints or docstrings](https://github.com/py5coding/py5generator/issues/307)
* [Issue 295: py5_tools.register_processing_mode_key() should be optional for same-name keys in the namespace setup() and draw() are found](https://github.com/py5coding/py5generator/issues/295)
* [Issue 314: Spaces in def setup() definition are tripping up the run_sketch utility](https://github.com/py5coding/py5generator/issues/314)
* [Issue 317: Removing g from the list of py5 "reserved words" breaks things](https://github.com/py5coding/py5generator/issues/317)
* [Issue 318: The %%py5draw magic is broken](https://github.com/py5coding/py5generator/issues/318)
* [Issue 319: constrain() returns zero-dimensional array instead of float](https://github.com/py5coding/py5generator/issues/319)
* [Issue 323: Improve NameError exception message when Imported mode users have a py5. somewhere in their code](https://github.com/py5coding/py5generator/issues/323)