Skip to content

v0.10.0

Choose a tag to compare

@github-actions github-actions released this 22 Apr 11:23
· 58 commits to main since this release

What's Changed

[0.10.0] - 2026-04-22

Added

  • Write RDF annotations in CellDesigner writer (celldesigner.io)
  • Add package facade with re-exports (celldesigner)
  • Read/write SQUARE_CLOSEUP_* compartments (celldesigner.io)
  • Add closeup compartment layouts (celldesigner)
  • Check parent dir exists before writing / rendering (utils)

Changed

  • Migrate utils callers to get_child_layout_elements (sbgn, celldesigner)
  • Drop tuple values from layout_model_mapping (celldesigner.io.celldesigner)
  • Drop tuple values from layout_model_mapping (sbgn.io.sbgnml)
  • Add get_child_layout_elements and make _singleton_to_key a SurjectionDict (core.mapping)
  • Update type annotations and isinstance checks (rendering,styling,positioning)
  • Replace new_element with new_builder_object in readers (io)
  • Drop pre-made map/model/layout builders (sbgn,celldesigner,sbml)
  • Remove PointBuilder and BboxBuilder module-level names (geometry)
  • Remove pre-made builder classes and convenience methods (core)
  • Copy user-defined dunders to generated builders (builder)
  • Expose readers and writers via format subpackage init facades (io)
  • Move registry and helpers to core, expose via init facade (rendering)
  • Move registry and helpers to core, expose via init facade (io)
  • Move registry logic to core, keep init as facade (rendering)
  • Move registry logic to core, keep init as facade (io)
  • Promote styling module to subpackage with facade (styling)
  • Convert pd/af module bodies to from-imports (sbgn)
  • Add subpackage facade and update callers after restructur (sbgn)
  • Split af.py into af/ subpackage (model/layout/map + facade) (sbgn)
  • Split pd.py into pd/ subpackage (model/layout/map + facade) (sbgn)
  • Split core.py into elements/model/layout/map (sbgn)
  • Update callers after sbml/core.py removal (sbml)
  • Split core.py into elements/model, mirror momapy.core layout (sbml)
  • Update callers after core.py removal (celldesigner)
  • Split core.py into elements/map, mirror momapy.core layout (celldesigner)
  • Split core.py into core/model/layout (celldesigner)
  • Migrate core submodules and init facade to absolute from-imports (core)
  • Drop unused IOResult.exceptions field (io.core)
  • Add type hints to public methods (rendering.svg_native)
  • Add type hints to public functions (coloring)
  • Hoist WritingContext base to momapy.io.utils (io)
  • Normalize type hints to PEP 604 union syntax (sbgn.af)
  • Annotate file_path on SBGN-ML and CellDesigner writers (io)
  • Drop dead None checks after get_reader/get_writer (io.core)
  • Include unsupported type in TypeError messages (positioning)
  • Remove no-op pass branch in modulation reader (celldesigner.io)
  • Use isinstance_or_builder helper (sbgn.utils)
  • Align stroke/fill NoneValue checks with skia (rendering.cairo)
  • Consolidate format-specific pickle readers into one pickle handler (io pickle)

Documentation

  • Describe uniform layout_model_mapping scheme
  • Update CODEBASE_SPEC and demos for builder refactor
  • Fix misleading init docstring (meta)
  • Flag sbml subpackage as partial skeleton in package docstring (sbml)
  • Document subpackage layout and exposed stylesheets (sbgn.styling)
  • Codify absolute-from-imports policy
  • Codify absolute-imports rule with init.py re-export carve-out (claude)
  • Require ruff format after edits (claude)
  • Expand terse model subclass docstrings (sbgn.af)
  • Add docstrings to reader helper functions (celldesigner.io)
  • Add docstrings to anchor methods (celldesigner.core)
  • Note filter effects are unsupported (rendering.cairo)
  • Replace commented-out example with runnable one (plugins.core)
  • Mark CellDesigner as read/write (readme)

Fixed

  • Read source files as UTF-8 in super discipline test (tests)
  • Harden coordinate frames against degenerate geometry (celldesigner.io)
  • Remap pre-4.0 modifier types to KnownOrUnknownModulator subclasses (celldesigner.io)
  • Restore _writing module import in writer (celldesigner.io)
  • Read gene/RNA/AntisenseRNA templates without type attribute (celldesigner.io)
  • Narrow unsupported-map-type error reporting (sbgn.io.sbgnml)
  • Return map when set_nodes_to_fit_labels is a no-op (sbgn.utils)
  • Set font_weight initial value to FontWeight.NORMAL (rendering)
  • Correct RBG/RBGA typos in error messages (coloring)
  • Stop swallowing exceptions in super_or_builder (builder)
  • Drop duplicate LineTo in _TruncatedProteinShape (celldesigner)

Miscellaneous

  • Remove unused imports in pd/af layouts and models (sbgn)
  • Extend default style to new compartment layouts (celldesigner.utils)
  • Remove Claude sandbox artifact gitignore entries
  • Drop unused with_styles reader parameter (sbgn.io.sbgnml)
  • Drop unused lxml import (celldesigner.io)

Styling

  • Ruff-format unrelated test/conftest files
  • Ruffed demos
  • Apply ruff format across src/

Testing

  • Assert singleton participant mappings (sbgn.io.sbgnml)
  • Forbid raw super(...) in the frozen hierarchy

Installation

pip install momapy==0.10.0

Links