Changelogs » Arlunio

PyUp Safety actively tracks 274,040 Python packages for vulnerabilities and notifies you when to upgrade.



  Standard Library
  - Add new definition :code:`arlunio.shape.Triangle`, also add
  new :code:`arlunio.math.Barycentric` definition which serves as the Triangle's base. (`187 <>`_)
  - Add :code:`arlunio.image.load` and :code:`arlunio.image.decode` functions to
  mirror the existing save and encode functions.
  Update :code:`arlunio.image.Image` to now be a class in its own right, wrapping
  a Pillow image object to add additional functionality
  Make the :code:`arlunio.image.fill` and :code:`arlunio.image.colorramp` functions
  return RGBA images to make image composition easier. (`247 <>`_)
  - Moved :code:`arlunio.pattern.Grid`, :code:`arlunio.pattern.Map` and
  :code:`arlunio.pattern.Pixelize` into :code:`arlunio.mask`. Also :code:`Grid` has been
  renamed to :code:`Repeat`. (`249 <>`_)


  - Add missing return type annotation to :code:`MaskXXX` operators, this should
  allow combining multiple definition instances together. (`223 <>`_)
  - Updated the :code:`arlunio-image` directive to output a warning during a Sphinx build
  if a given image fails to render. (`227 <>`_)
  - Refactor :code:`arlunio-image` directive to be based on the standard :code:`figure`
  directive. This means that the standard :code:`figure` options now also work with
  :code:`arlunio-image`. (`237 <>`_)
  Standard Library
  - Moved the "expression" based code out of core into the :code:`arlunio.math` module.
  New :code:`arlunio.image` module. This contains the image code that was originally
  part of "core" arlunio. (`228 <>`_)
  - New :code:`arlunio.raytrace` module based on the `Ray Tracing in One Weekend <>`_
  book. Currently only supports diffuse materials and spheres, will probably need a few
  revisions before it becomes useful. (`230 <>`_)
  - Refine the concept of a :code:`Mask`
  A Mask is now a sub-class of a :code:`numpy.ndarray` that is geared towards manipulating
  boolean numpy arrays. They can be added (:code:`a OR b`), subtracted
  (:code:`a AND (NOT b)`), multiplied (:code:`a AND b`) and negated (:code:`NOT a`). (`231 <>`_)
  - Rename all standard library modules from :code:`arlunio.lib.X` to :code:`arlunio.X` (`233 <>`_)
  - Fix reference to :code:`flake8` in :code:`.pre-commit-config.yaml`. Changed virtualenv
  name from :code:`.dev` to :code:`.env` (`227 <>`_)


  - Introduce the concept of operators. Operators are definitions that can provide
  implementations of the arithmetic operators in Python like :code:`+` and
  :code:`-`. Depending on the type a definition produces different operators can
  be defined that allow them to be combined in some way. The standard library has
  been updated to incorporate a few operators for working with masks. (`207 <>`_)
  - Generalise definitions to accept any "regular" value as an input, not just
  :code:`width` and :code:`height`. In a similar way to attributes, when deriving
  from other definitions any inputs will be automatically inherited. (`216 <>`_)
  - Added some documentation around the CI build for the blog. Also updated the blog
  build to run every day. (`177 <>`_)
  - Tidied up and updated existing changelog, started using towncrier for changelog
  entries going forward. (`204 <>`_)
  - Flatten structure of the User Guide section and add placeholder first tutorial (`205 <>`_)
  - Fix handling of multiple notebooks in  :code:`` and add VSCode
  tasks to aid with tutorial development (`205 <>`_)
  - Switch the linting workflow to explicitly list the paths that should trigger a
  build. (`210 <>`_)
  - Fix packaging so that our tests are no longer installed (`216 <>`_)


  - :code:`Empty` and :code:`Full` definitions
  - :code:`normalise`, :code:`clamp` and :code:`lerp` functions
  - Definitions now have a :code:`produces` classmethod that will report the type
  of object they produce - assuming that the type annotation has been given of
  - The :code:`ar.definition` decorator now accurately reports the module a
  definition was defined in.


  - The concept of a :code:`Definition`.
  + This incorporates the existing concept of a :code:`Shape` and expands on it
  to cover input parameters and more
  + Definitions can be derived from other definitions by passing in existing
  definitions as positional arguments. Derived definitions will inherit all
  attributes from their "parent" definitions.
  - The "magic" shape entry point, shapes should now be imported like regular
  Python classes.


  - :code:`Pixelize` shape that can take another shape and and render a lower res
  version of that shape giving it a pixel art vibe
  - :code:`Map` shape that can take a grid of values representing some layout and
  a dictionary that maps those values to shapes that should be drawn there.
  - Proof of concept notebook importer
  - Add :code:`mkdirs` flag to the :code`` function to have the option
  of automatically creating any required parent directories
  - Tweak the :code:`find_notebook` function to handle the way we are using it
  in the gallery


  - Release to test new CI/CD setup


  - Stylo has been renamed to Arlunio, resetting the version number
  - Initial release to secure the name, more to follow