Skip to content

Changelog

All notable changes to momapy will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Conventional Commits.

[0.6.1] - 2026-03-18

Added

  • Added a demo on map comparison
  • Added colinear case when reading reactions (celldesigner)

CI/CD

  • Bumped action versions

Changed

  • Hid wip celldesigner writer
  • Moved demos from demo to demos
  • Moved utils to root (demo)
  • Rearranged demo files
  • Removed unnecessary re-export of reader (celldesigner io)

Documentation

  • Moved demo to new paths and name

Fixed

  • Replaced with correct apt deps (binder)
  • Removed escaping brackets (binder)
  • Model elements such as modulations are now mapped to the full set of layout elements (sbgn io)
  • Removed >>> from examples
  • User manual files after refactor
  • Added skia extra dep to binder
  • Updated the demo with latest refactors (demo)
  • Fixed bug in coordinates of logic gate arcs (celldesigner)

Miscellaneous

  • Updated reactome analysis with maps display (demos)
  • Updated reactome analysis (demos)
  • Added apt packages required for skia-python
  • Simplified entries
  • Updated deps
  • Added jupyterlab dev dep
  • Wip implement celldesigner writer
  • Ruff formatting

Testing

  • Fixed new paths (demo)

[0.6.0] - 2026-03-10

Added

  • Added cache for font queries (fonts)
  • Added a helper function for creating a bbox around points and refactored to use it
  • Added group araound textlayout; made better svg element ids and classes
  • Replaced shapely and bezier geometry by custom analytical geometry

Changed

  • Replaced named tuple by dataclass (fonts)
  • Replaced matplotlib fonts finding by custom one
  • Renamed self_ methods to own_ methods
  • Replaced Bezier approximations with direct elliptical arc calculations (geometry)
  • Removed unnecessary helper functions (geometry)

Fixed

  • Set modifications to own_angle rather than angle (celldesigner)

Miscellaneous

  • Added support for python 3.13 and 3.14
  • Added TODO.txt to .gitignore

Testing

  • Updated test after refactor (geometry)
  • Added tests for union of bbox and making bbox around points

[0.5.0] - 2026-03-04

Added

  • Added optional dict cache to replace
  • Added singleton mapping for anchor layout element (layout model mapping)
  • Removed collection builders by mutable collections (builder)

CI/CD

  • Removed commit and made CHANGELOG.md directly from docs.yml (changelog)

Changed

  • Moved building builders outside of registering function
  • Complete split of model functions, with reader as an orchestrator
  • Complete split of layout and model functions, with reader as an orchestrator
  • Moved annotations and notes parsing to sbml
  • Replace model name from Model to SBMLModel
  • Removed duplicate modification and changed order
  • Complete refactor of celldesigner io
  • Arc flattening and associated refactor + writer cleaning
  • Complete refactor with code cleaning (sbgnml)
  • Complete refactor, separated parsing/model/layout (sbgnml)
  • Made subpackage and divided into modules (core)

Fixed

  • Active borders are now layout elements (fix #3)
  • Absence of modification is now treated as a modification with state='empty' (celldesigner)
  • Now hashable (builder)

Miscellaneous

  • Added instructions for debates/ and plans/ directories
  • Added debates/
  • Added CLAUDE.md and disallowed use of dangerouslyDisableSandbox
  • Added claude sandbox artifacts

Testing

  • Added tests for new active layout elements
  • Added tests for notes and annotations
  • Added tests for sbml
  • Added tests for sbgn.utils

[0.4.4] - 2026-02-24

Added

  • Added tidy option (cli)
  • Changed default font to Arial for macos and win and deja vu sans for linux
  • Added support for af compartment uoi
  • Added support for uoi for compartments and submap terminals in af
  • Added support for cardinality (a la newt)

CI/CD

  • Changed regex for version; made release conditional to testing; made docs independant of release

Fixed

  • Fixed label position for compartments; fixed rerouting equivalence arcs (tidy)
  • Activity is now a dataclass
  • Added uoi to ad compartment model element
  • Default font sizes are now closer to newt
  • Or nodes in af were stored and rendererd as and
  • Bug in shapely for bezier and elliptical curves
  • Bug in fraction for Arc
  • Accepts tag with no orientation

Miscellaneous

  • Added AGENTS.md for code agents
  • Cleaned useless function (sbgn.io.sbgnml)

Testing

  • Added tests for Arc fraction and

[0.4.3] - 2026-02-13

Documentation

  • Removed linenums for code snippets
  • Update example with new io and render_map api

Fixed

  • Changed stoichiometry type from int to float

Miscellaneous

  • Uv sync
  • Removed tracking of site/

[0.4.2] - 2026-02-12

Documentation

  • Changed order of sections
  • Added symlink to CHANGELOG.md from root to docs/

Fixed

  • Bug in point to fortranarray and in handling shapely polygons
  • Bug in invert of scaling

Miscellaneous

  • Added coverage files

Testing

  • Added new tests
  • Added coverage

[0.4.1] - 2026-02-10

Documentation

  • Added docs for cli and styling

[0.4.0] - 2026-02-10

Added

  • Added precommit linting (@conventional)
  • Added renderer and format autodetection (rendering)

CI/CD

  • Added automated changelog with git-cliff

Fixed

  • Distinguish scenario min and all for rendering images

Miscellaneous

  • Removed old testing file
  • Docs/plans->plans

Other

  • Added test for demo
  • Plugins.registry->plugins.core
  • Updated docs
  • Updated docs
  • Removed version; updated docs
  • _renderer_registry->renderer_registry
  • Added docs/plans and .tox
  • Rendering., io.: changed registering renderers/readers/writers to plugin system; plugins: new
  • Updated; rendering._cairo: rm
  • Update with renderer changes

Styling

  • Changed default fonts to DejaVu Sans

Testing

  • Update with new plugin api

[0.3.0] - 2026-02-03

Other

  • Fixed bug in argument names
  • Update
  • Init
  • Added entry point momapy
  • Changed 'formats' attributes to 'supported_formats'; added ValueError for unsupported formats

[0.2.8] - 2026-01-27

Fixed

  • Fixed python version to 3.13 for packaging

Other

  • Io.core; celldesigner.io.celldesigner: replaced ReaderResult's ids by FrozenSurjectionDict
  • Modified so it gets the latest tag on the main branch when triggering manually (Claude)
  • Add workflow_dispatch option to trigger manually

[0.2.7] - 2026-01-26

Other

  • Fixed id of layout element taking id of the cd element it comes from

[0.2.6] - 2026-01-21

Other

  • Fixed layout model mapping for subunits

[0.2.5] - 2026-01-14

Other

  • Merge branch 'develop' for release
  • Added layout model mapping for compartments

[0.2.4] - 2026-01-13

Other

  • Merge branch 'develop' for release
  • Fixed order of compartment aliases so they respect z-order

[0.2.3] - 2026-01-08

Other

  • Merge branch 'develop' for release
  • Added specific supported python 3 versions
  • Fixed bug in COPYING badge url
  • Fixed bug in COPYING badge url
  • Added badges
  • Merge branch 'develop'
  • Added binder link and how to run the demo locally
  • Removed useless demo extra; binder/requirements.txt: replaced demo extra by jupyter dep
  • Added demo extra and moved jupyter dep from dev to demo; binder/requirements.txt: added file for binder

[0.2.2] - 2026-01-07

Documentation

  • Update with new default rendering and reading modules
  • Removed copyright

Other

  • Merge branch 'develop'
  • Merge branch 'develop'

[0.2.1] - 2026-01-07

Other

  • Merge branch 'develop'
  • Fixed bug where rendering.skia was imported
  • Celldesigner.core, celldesigner.io.celldesigner: changed default font to Arial
  • Replaced celldesigner_pickle by celldesigner-pickle
  • Fixed bug momapy.io.WriterResult->momapy.io.core.WriterResult
  • Fixed type hint for .selectors attribute
  • Added tests (Claude)
  • Replaced pp by pyparsing
  • Added Not and Compound selectors
  • Update with new core for io and svg for rendering
  • Update explaining optional deps
  • Made true release conditional to TestPyPi release's success

[0.2.0] - 2026-01-06

Fixed

  • Fixed bug in checking files: added try in case the file is binary
  • Fixed bug where super was called in FrozenSurjectionDict init
  • Fixed test
  • Fixed import and extents bug
  • Fixed bug in class names for logical operators
  • Fixed bug: replaced ink_bbox by bbox
  • Fixed bug in value=='' for state variables
  • Fixed bugs in writing sbgnml
  • Fixed bug
  • Fixed bug where only macos would be tested
  • Fixed bug with group_transform in rendering; added transform if no group_transform
  • Fixed bug
  • Fixed bug: LogicArc->LogicArcLayout
  • Fixed bug in making LayoutModelMappingBuilder with new keys as frozendict
  • Fixed bug in filter vs filter_ and filter_.id vs filter_.id_
  • Fixed absent NoneValueType type hint for dahsarrays and others
  • Fixed bug in make_boolean_logic_gate

Other

  • Merge branch 'develop'
  • Made automatic github release
  • Updated tests to have frozendict notes and annotations
  • Changed type of notes and annotations to frozendict
  • One tox job per os
  • Adapted workflow to test all python versions on all os with tox
  • Added explicit utf-8 encoding when writing files to handle windows
  • Added tox.ini and python version
  • Typing.Self->typing_extensions.Self for 3.10 compat
  • Switched from pdm to uv; pdm-bachend to hatchling; made test dep group
  • Changed typing.Self to typing_extensions.Self for compat with 3.10
  • Added ModuleNotFoundError as potential source for not available renderer
  • Update
  • Added pytest tests to push on testing branch
  • Updated with new rendering tests
  • Merge branch 'develop'
  • Cleaned github actions
  • Removed comments and unnecessary asserts
  • Udpated tests
  • Removed all extras
  • Added insallation github action
  • Added pytest and tests generated by Claude
  • Update
  • Solved circular imports when registering; fixed bug in sbgn/io/sbgmml.py
  • Moved readers and writers registration to init of subpackage for sbml and celldesigner
  • Removed buged sbgnml-0.2 writer
  • Moved io to own subpackage; moved registering readers and writers to subpackage init
  • Moved registering svg-native renderer to base of subpackage
  • Changed default renderer to svg-native
  • Moved cairo and skia to extras
  • Added warning about installing extras
  • Added uharfbuzz and matplotlib
  • Replaced ink_bbox by bbox
  • Change default font to DejaVu Sans; replaced ink_bbox by bbox
  • Changed pango layout to harfbuzz and matplotlib (for fonts)
  • Merge branch 'develop' into freetype
  • Added freetype-py dep
  • Added test layout with freetype
  • Updated installation instructions
  • Updated dependencies
  • Added dependencies
  • Added frozen annotations
  • Added reading id
  • Added more layout model mappings
  • Added sbgn/io/pickle.py and rendering/cairo.py that were ai generated based on template files
  • Updated demo
  • Update
  • Update
  • Added print_source function
  • Update
  • Added participants of model elements to layout model mapping for: modulations, processes, logical operators
  • Added support for HAlignment in TextLayout; added HAligment.CENTER to all sbgn labels
  • Updated demo
  • Updated demo
  • Added NoneValue to edge_mode translation
  • Updated demo
  • Id->id_
  • Mod demo: added example; fixed bug in display where markers were transformed
  • _ReactionLayout->ReactionLayout
  • In Filter: id->id_
  • Made left/right_connector_fraction public attributes
  • Added function to set label font size
  • Updated packages

[0.1.3] - 2025-08-28

Fixed

  • Fixed link to doc

[0.1.2] - 2025-08-28

Other

  • Updated docs/index.md and README.md
  • Cleaned
  • Made version regex start with number after v
  • Publish to testpipy first

[0.1.1] - 2025-08-28

Other

  • Added module level doc
  • Build only if version
  • Only on version tags
  • Back to version as v.*
  • Added dynamic versioning
  • Added cd/ci for automatic release on tags
  • Moved to pdm build backend
  • Updated doc page

[0.1.0] - 2025-08-12

Changed

  • Refactored; fixed bugs; added truncation layout; id->id_
  • Refactored
  • Refactored reactions and taken into account transport
  • Refactored cairo renderer
  • Refactoring and bugs
  • Refactored code and fixed in set_arcs_to_borders; added tidy function
  • Refactored rendering; render multiple maps

Fixed

  • Fixed typo
  • Fixed merge
  • Fixed bugs and cleaned up
  • Fixed bug in to_top_left
  • Fixed return type of fit function
  • Fixed bug in biology-qualifiers: isValue->is
  • Fix #8
  • Fixed bug outputing wrong map element types depending on mode
  • Fixed typo
  • Fixed bug in intersection of line and shapely object; added rounding
  • Fixed bug type selector
  • Fixed bug no species in map
  • Fixed bug no reaction in map
  • Fixed bug in handling undefined state variables
  • Fixed bug in product from product link: was using Reactant
  • Fixed bug in processing annotations
  • Fixed bug in make_notes...: return [] rather than None
  • Fixed typo in _make_model_no_subelements...: layout->model
  • Fixed bug in finding correct module
  • Fixed bug: compartments and species templates were not added to the model
  • Fixed bug not taking into account subunits
  • Fixed bugs
  • Fixed bug: species_aliases includes subunits; removed subunits from those
  • Fixed bug: species_aliases includes subunits; removed subunits from those
  • Fixed bug in reading structural states
  • Fixed bug in start_arrowhead_base
  • Fixed bug biology-model->model-qualifiers
  • Fixed bug when no tagetLink in reaction modification
  • Fixed imports
  • Fixed module name after moving annotations to sbml
  • Fixed imports
  • Fixed bug: need to escape text values
  • Fixed import bug
  • Fixed childless functions: layout_elements=None->layout_elements=tuple([])
  • Fixed bug in arrowhead_border: is None->isnan
  • Fixed TransportLayout._end_arrowhead_border_drawing_elements: RIGTH->LEFT
  • Fixe bug intersection of line and segment
  • Fixed dimensions of layout
  • Fixed calls to new signature of momapy.positioning.fraction_of function
  • Fixed calls to new signature of momapy.positioning.fit function
  • Fixed bug self_children not implemented for arcs
  • Fixed bug in writer
  • Fixed bugs; took into account AF
  • Fixed variable names
  • Fixed border_->
  • Fixed bug with layout.fill being NoneValue
  • Fixed id->id_
  • Fixed bug in arrowhead_drawing_elements
  • Fixed id->id_
  • Fixed bug with file names
  • Fixed type hints
  • Fixed ) bug
  • Fixed type hint: self->Self
  • Fixed bugs with names
  • Fixed bug in Point: div to truediv
  • Fixed label_center
  • Fixed bug in product and reactant links
  • Fixed bugs in arrowhead_*
  • Fixed bug in call with wrong signature
  • Fixed bug in end and start arrowhead length
  • Fixed bug in grouplayout bbox
  • Fixed typo group drawing elements
  • Fixed bug in start_arrowhead for double_headed_arcs
  • Fixed bug shorten_bezier_curve, shorten_elliptical_arc: segment->bezier_curve, elliptical_arc
  • Fixed bug transform_elliptical_arc: self->elliptical_arc
  • Fixed bug: north_north_easr->north_north_east
  • Fixed bug setting dasharray to dashoffset
  • Fixed bug with doubleheadedarc
  • Fixed bugs
  • Fixed bugd in DoubleTriangle: momapy.nodes->momapy.meta.shapes, border_drawing_elements->drawing_elements
  • Fixed xsdata version to 23.8
  • Fixed bug position of layouts
  • Fixed bug RectangleCompartment
  • Fixed not right model element when already exists in set
  • Fixed bugs in shapes and receptor_layout
  • Fixed bug in multi_mixin
  • Fixed bug outside_model_element in make_and_add_compartment
  • Fixed bug in build function for frozendict: self->obj
  • Fixed bug with names of celldesignerspeciesreference and gene, rna, antisenserna
  • Fixed bug with name of protein that was a property: species already have a name (from SBML)
  • Fixed bug: did not take into account compartments
  • Fixed few bugs
  • Fixed bug: not taking into account compartment
  • Fixed names
  • Fixed bug
  • Fixed bug
  • Fixed type hint bug in association layout
  • Fixed bug type hint BQ
  • Fixed union bug
  • Fixed bug: color alpha int->float
  • Fixed bug: colors float->int
  • Fixed bug: product was made with Reactant cls
  • Fixed bug: uois added to svs
  • Fixed buggy inheritance of stimulation layout and equivalence arc layout
  • Fixed buggy inheritance of logic arc layout
  • Fixed builder for forward refs; added type | new_type in builder to allow non builders in builders
  • Fixed bug with colors: if colors not in list of color definitions, assumes its hex def
  • Fixed bug when no list_of_color_definitions or no list_of_styles
  • Fixed bug in split_line_coords
  • Fixed with new presentation attributes
  • Fixed type of transform from transformation to tuple[transformation]
  • Fixed bug: subunit attr can be None
  • Fixed typo
  • Fixed bug: no unset in simple value grammar
  • Fixed typo
  • Fixed font_color to new stroke/fill
  • Fixed typo
  • Fixed typing bug
  • Fixed imports
  • Fixed cairo import
  • Fixed bug render_curve_to
  • Fixed bug when saving state
  • Fixed bugs
  • Fixed import errors
  • Fixed kw_only in making skia renderer
  • Fixed fill and stroke for textlayouts
  • Fixed Close->ClosePath
  • Fixed bugs
  • Fixed bug font weight
  • Fixed transformed for text
  • Fixed new meta imports
  • Fixed bug on subunit presentation attributes
  • Fixed typo
  • Fixed typo
  • Fixed typos
  • Fixed typo
  • Fixed bug in bbox for shapely obj
  • Fixed bugs
  • Fixed typos
  • Fixed bug: two times slope1
  • Fixed Ellipse.to_path: now 4 elliptical arcs
  • Fixed bug: use arrohead_base for computing arrohead angle
  • Fixed bug: render_curve_to->add_curve_to
  • Fixed bug: to_cubic->to_curve_to
  • Fixed bug: fx->fX,fy->fY
  • Fixed bug
  • Fixed bugs
  • Fixed bugs
  • Fixed bug: n_segs not passed through for bezier curve to shapely
  • Fixed bug: no compartment
  • Fixed bug comparing points
  • Fixed multipages
  • Fixed bug: inverted is_sublayout relation
  • Fixed bug in compartment_ref
  • Fixed typo
  • Fixed bbox for whole map
  • Fixed bug when no state in sv
  • Fixed bug in hex output
  • Fixed bug: hex repr to 'x'
  • Fixed bug: hex on int not float
  • Fixed bug
  • Fixed bug in get_mapping
  • Fixed bug when no extension
  • Fixed reverse order for points of consumption
  • Fixed bugs
  • Fixed bug when color_str started with '#'
  • Fixed bugs with new layout_model_mapping
  • Fixed bug for ior: now like or and not dict.ior
  • Fixed bug
  • Fixed bug with or selector
  • Fixed bug in is_ovav: fields->dataclasses.fields
  • Fixed bug in shortened when self.length() == 0
  • Fixed bug in typing
  • Fixed typo in model: switched SpeciesReference and SimpleSpeciesReference
  • Fixed bug in coinsident lines
  • Fixed bug points to segments
  • Fixed bug: arc.x and arc.y
  • Fixed typo in angle
  • Fixed bug in crosspoint border drawing element
  • Fixed bug: TextLayoutElement -> TextLayout
  • Fixed label textlayout width and height
  • Fixed bug
  • Fixed bug in stylesheet list
  • Fixed bug in reading list of stylesheets
  • Fixed bug with returning results
  • Fixed bug when builders were used instead of built objects
  • Fixed unused imports
  • Fixed namespace error
  • Fixed tidy; set_arcs_to_borders does not do anything if no intersection is found
  • Fixed imports
  • Fixed imports
  • Fixed import
  • Fixed bug
  • Fix + vanted.css
  • Fixed bug in frozendict ini
  • Fixed frozendict bug: initialization from dict rather than list
  • Fix bug
  • Fixed bugs
  • Fixed bug in set_arcs_to_borders
  • Fixed bug when last_segment.length() == 0 in arc anchors
  • Fixed bug: set_matrix -> transform in cairo renderer
  • Fixed bug in intersection of line and circle
  • Fixed bug in render_maps
  • Fixed bug in textlayoutelement
  • Fixed bugs
  • Fixed import bug
  • Fixed bugs and replaced nodelabel by textlayout
  • Fixed bugs in render_maps: calculation of min_x and min_y
  • Fixed bug with labels of compartments in set_compartments...
  • Fixed bug with PhantomLayoutElement
  • Fixed bugs with arrowhead bboxes
  • Fixed bug in copying in render_map with to_top_left==True
  • Fixed bugs
  • Fixed typo
  • Fixed make_builder: Builder is now always a base class, and connectable_attributes are well set
  • Fixed imports
  • Fixed rendering of text with new coord system
  • Fixed import
  • Fixed imports

Other

  • Updated docs
  • Added workflow for building docs
  • Updated doc
  • Updated demo
  • Rm unused import
  • Updated with proper display for layout elements with transformations
  • Bbox now takes into account ink_bbox of text
  • Ruff
  • Merge branch 'develop' into shapely_transform
  • Merge branch 'demo' into develop
  • Updated demo; fixed bug in utils
  • Added transform
  • Made transform a tuple of transformation
  • Udpated docs
  • Added ruff, pygments
  • Rm red layout stroke
  • Removed config from param for creating a skia renderer
  • Updated doc
  • Updated packages and removed sphinx related and black deps
  • Updated doc
  • Updated layout_model_mapping
  • Update
  • Merged
  • Updated doc
  • Updated documentation
  • Updated documentation
  • Merge branch 'develop' into docs_mkdocs
  • Updated documentation
  • Update
  • Added reading sbml skeleton
  • Updated demo
  • Added EMPTY_SET key; fixed bug in writing compartmentRef attribute
  • Updated functions to new layout_model_mapping
  • Added replace=True to add_mappings
  • Added replace option in add_mapping
  • Support for annotations, compartment_refs
  • Merge branch 'develop' into write_sbgnml
  • Replaced call to Pango.extents_to_pixels by pos / Pango.SCALE to avoid new bug with function
  • Merge branch 'develop' into write_sbgnml
  • Added pdm-readiness
  • Added cross_hv_of; cross_vh_of; set_mid_of; set_cross_hv_of; set_cross_vh_of functions
  • Added support in CellDesignerModel for Regions
  • Added mid_of function
  • Closes #19
  • Closes #18
  • Closes #14: replace is not NoneValue by != NoneValue
  • Closes #13: fixed bug in Color.to_rgba; fixed range to float in skia fill and stroke
  • Closes #10
  • Closes #9
  • Updated dependencies
  • Cleaned dependencies
  • Added id and class in rendering
  • Added structural state layout
  • Added post_init to pointbuilder
  • Replaced is momapy.drawing.NoneValue by ==
  • For notes, annotations, ids: frozendict to dict
  • Added hash and eq methods for NoneValue singleton
  • Added handling non text file exception in read
  • Added celldesigner pickle read and write
  • Removed reduduntant exceptions from WriterResult
  • Added _active to ids of active species
  • Added support for dasharray in SingleNode
  • Added support for stroke_dasharray
  • Mappings are now frozendicts
  • Merge branch 'develop' into cd_layout_model_mapping
  • Rounded for shapely
  • Rm unused import
  • Replaced typing for source and target of arc to LayoutElement
  • Added layout model mapping for reactions and modulations
  • Added layout_model_mapping for species
  • Changed require-python to >=3.10
  • Added SurjectionDict
  • Merge branch 'develop' into write_sbgnml
  • Modification residues are now sorted following their angle (ascending)
  • Taken into account undefined names for modification residues with an order attribute
  • Added order to modification residue
  • Update with new sbgnml export
  • Updated writing sbgnml
  • Changed function to make notes; added support for map/model notes and annotations
  • Added support for notes and annotations on the map itself
  • Rm annotations to frozendict
  • Added notes support for elements
  • Added notes for compartments
  • Added export of notes
  • Updated to python 3.12
  • Rm transformation of annotations and notes into frozen sets
  • Changed python
  • Start of new writer
  • Added support for af unit of informations
  • Added specific function for making activities
  • Removed unnecessary _sbgnml_parser*
  • Added support for labels in submaps
  • Added new support for reading af without xsdata
  • Added ids to map_element_to_ids
  • Added ids to ReaderResult
  • Removed print
  • Merge branch 'develop' into cd_ids
  • Merged sbgn_revamp
  • Added model layout mapping
  • Continued revamping
  • Removed annotations and notes
  • Added biomodel qualifiers
  • Rvamped
  • Removed old unused parse file
  • Added map_element_to_ids mapping
  • Removed useless dict transform of model_element_to_layout_element
  • Removed unused parser file
  • Annotations is now frozen
  • Sbml.Annotation->sbml.RDFAnnotation
  • List->set
  • Added ids for reactants and products
  • Stoichiometry can be None
  • Finished model maker
  • Added Palmytoylated
  • Added PALMITOYLATED
  • DON'T CARE->DON_T_CARE
  • Removed unused re import
  • AntisenseRNA->AntisenseRNA
  • Optional listOfModification in reaction
  • Added annotations
  • Removed map_element_to_annotations from CellDesignerMap
  • Added boolean logic gates for modulations
  • Added logic gates
  • Added class for logic arc layouts
  • Changed size and font of logic gates
  • Added gate layouts
  • Continued revamping
  • Removed useless newline
  • Removed useless print
  • Continued revamping
  • Udpated
  • Updated with_model/with_layout options
  • Read/write_file->read/write; added os.PathLike type annotation
  • More new methods
  • In Writer: write()->write_file()
  • Beginning of refactoring celldesigner reading
  • Update
  • Added annotations for included species
  • First fix read_file
  • New way of parsing: model, layout, map; annotations are outside of objects
  • Udpate with doc
  • Added undoc-members
  • Changed conf.py location for new org
  • Update docs/ organization
  • Mv .readthedocs.yaml to root
  • Added files for readthedocs
  • Mv sphinx_docs->docs
  • Removed ipykernel dependency
  • Udpated demo
  • Added dist/
  • Udpate with classifiers and urls
  • Updated package description
  • Update
  • Update
  • Remove intersection of line with drawing and layout elements
  • Added docs
  • Updated demo
  • Updated demo
  • Moved demo to /; cleaned up
  • Added documentation
  • Udpated docs
  • Udpated doc
  • Updated doc
  • Update doc
  • New_builder->new_builder_object; added type hints
  • New_builder->new_builder_object
  • Added full input of SBGN AF maps
  • Update
  • Updated demo
  • Updated type hints and methods
  • Added from_top_left option
  • Removed unused import
  • Update demo
  • Update with new attr names
  • Added center to border and angle functions
  • Update with new attr names
  • Fill of layout set to NoneValue
  • Changed qualified attrs to unqualified attrs (default)
  • Added notebook
  • Added docs"
  • Added init.py
  • Added init.py
  • To python 3.12
  • Added documentation
  • Updated
  • Added particular anchors for celldesigner shapes
  • Moved labels of modifications
  • Taken into account active; fixed bug in position of compartments
  • Added some anchor points
  • Added support for modulations
  • Taken into account catalysis
  • Put labels in right place
  • Added replacement of text by character
  • Added functions to find angle and border of shapely_object and collection of drawing elements
  • Update with dissociation
  • Replaced fit layout by the size of the layout
  • Added super_or_builder method
  • Added todos
  • Remade taking into account edit points with center or link anchor
  • Added anchor_point method to layout element
  • Added comment
  • Add get_transformation_for_frame_function
  • Partially fixed bug when no link anchor
  • Taken into account omitted transition, unknown transition, transcription, translation
  • Taken into account start node in base reactant layout
  • Refacrtored state_transition_layout and add heterodimer_association_layout
  • Took into account base reactants and edit points for association
  • Added layout for state transition, with reactants and products
  • Begined adding layout for reactions
  • Added with_layout option to prevent from making the layout
  • Added intermediate cardinal points
  • Added state transition layout prototype
  • Added compartment layouts; refactored code
  • Add_or_replace_element_in_set now returns the element that is in the set at the end
  • Code layout
  • In _Modifier: species->referred_species
  • Replaced .species by .referred_species in SpeciesReferences; replaced CellDesignerSpeciesReference by SpeciesTemplate
  • Added reading of empty state variable
  • Readded Annotation
  • Removed notes and annotations from sbase
  • Support for parsing sbml annotations inside notes
  • Added support for reduced boolean logic gates
  • Added listOfGateMember to reaction
  • Rm make layout and model_layout_mapping for celldesigner
  • Added None to model, layout and layout_model_mapping
  • Added annotations
  • Map_element_to_annotation->map_element_to_annotations
  • Added rdf annotations for species
  • Added function to make annotations
  • Qdded attributeFormDefault='qualified' for rdf
  • Added map_element_to_annotation to Map
  • Added attributes of annotations
  • Added empty state which arises sometimes
  • Changed to using aliases instead of species
  • Added acetylated modification
  • Updated schemas and changed location
  • Now transforming aliases rather than species
  • Added hypothetical for species
  • Taken into account: outside for complexed; modifiers with gates
  • Modification->modificationType
  • Homodimer->homomultimer
  • Adapted to minerva bug on type for rna, gene and anitsenserna references
  • Added # abstract
  • Removed momapy-model from ids for model elements
  • Removed metaid, notes and annotations of comparison for species
  • Udpated the celldesigner schema with reduced notation
  • Update
  • Cleaned model
  • Cleaned the model
  • Update
  • Cleaned modulations in CellDesignerModel
  • Cleaned modulations and modifiers
  • Cleaned modifier and added comment
  • Modulators->modifiers
  • No printing of base types or objects evaluating to False (e.g., empty collections)
  • Removed structuralstatevalue: now always str
  • Checks for subclass rather than exact type matching in exclude_cls
  • Cleaned make parser for celldesigner
  • Merge branch 'develop' into celldesigner
  • Updated python version to >3.10 and <3.11
  • Added AuxiliaryUnit concept
  • Redid tpying.union for forwardref
  • Replaced referes_to attribute by reference attribute
  • Got rid of typing.Union
  • Made the ids of model elements deterministic
  • Cleaned
  • Added add_or_replace_elemement_in_set function
  • Merge branch 'fix_builder' into celldesigner
  • Removed UndefinedVariable class; use order instead
  • Added annotations reading for macromolecules
  • Added superclass BiomodelQualifier for BQModel and BQBiol
  • Added module for forwardref of logicaloperator
  • Moved make_pango to new _pango module; forced ids to str
  • Cleaned up
  • Applying stylesheet to objects; to builder becomes _ function
  • Update
  • Shortening a segment of length 0 now returns a copy of the segment
  • Update
  • Updated code
  • Update with new way: build objects
  • Exluded Point from collections in pretty_print function
  • Added class exclusion feature in pretty print; changed color:black->green
  • Simplified names of mappings
  • Added make_union option to the transform_type
  • Removed add_element method
  • Builder transform type: now returns type_ | new_type
  • Bug fix: stopped transforming default factory functions
  • Changed variable names: field_->field, mappings to more conventional names
  • Antisens->Antisense
  • Merge branch 'develop' into celldesigner
  • Can perform functions on map
  • Changed check_file methods: no use of parser anymore
  • Render extension: made attributes qualified
  • Cleaned up; moved schemas and make_parser outside of src
  • Added parser for sbgnml_0_2 and _0_3
  • Updated the README with link to demo
  • Udpated the demo
  • Update
  • Added License
  • Added text to README
  • Merge branch 'develop' into celldesigner
  • Removed tests from git
  • Readded celldesigner/
  • Readded sbml/core.py
  • Deleted sbml/ and celldesigner/ to move them to branches
  • Pipenv->pdm; cleaned up
  • Changed rectangle compartment
  • Merge branch 'develop' into celldesigner
  • Added script for making a css template file from a module
  • Updated and added styles with @import
  • Updated demo
  • Changed defaults for subunits attributes
  • Updated with new presentation attributes
  • Changed defaults for presentation attributes
  • LogicArc->LogicArcLayout;EquivalenceArc->EquivalenceArcLayout
  • Added | None to types for stroke_width
  • Path_shorten->shorten; added start_shorten to Arc
  • Now built with @import cs_black_and_white and newt_no_cs
  • Added chdir for relative css @import
  • Added import statement feature inside css
  • StyleSheet read_file->StyleSheet.from_file; join_style_sheets->combine_style_sheets;read_string->from_string; added from_files classmethod
  • Update
  • Pseudo-fixed bug with unset
  • Update
  • Added script to make a css template
  • Harmonize initial values
  • Layout is now a Node
  • Added unset css value, that is transformed to Python's None
  • Added default values for presentation attrs of SBGNNode
  • Changed list_colors to print_colors; list_colors now list all pairs (color_name, color) of the module
  • Cleaned up code: new SBGNSingle/DoubleHeadedArc; arrowhead_drawing elements coded for arcs instead of subclassing; cleaned attributes order
  • Updated layouts with new shapes
  • Cleaned typing
  • File creation
  • Added make_node and make_arc functions
  • Changed default values for presentation attritubutes in TextLayout; use of make_pango_layout from utils in textLayout
  • Added get-initial_value method; fixed bug font weight mapping
  • Added get_initial_value method
  • Added FONT_WEIGHT_VALUE_MAPPING
  • Moved testing functions to testing; added make_pango_layout to utils; removed print_classes from utils
  • Added transformation of elliptical arc to bezier curves; cleaning
  • Cleaning
  • Cleaned up
  • Added sbmlutils
  • Continued coding drawing_elements methods
  • Update
  • Font family and size become mandatory on text layouts
  • Filter on all drawing elements
  • Added new StatefulRenderer
  • Added fill to textlayout
  • To python 3.11
  • Normalized presentation attributes; support in svg-native renderer
  • Update with new drawing elements
  • Added new classes following the spec
  • Added import for svg_native renderer
  • Added styling: fill, stroke, font
  • Added support for font style and weight; added support for text-anchor (not skia)
  • Added fill rule
  • Merge branch 'develop' into sbml_layout
  • Removed childless method from GroupLayout
  • NodeLayout->Node; ArcLayout->Arc
  • Update
  • Shorten->path_shorten
  • Added defaults for nodes and arcs; cleaned up
  • Removed nodes width and height in render function
  • Changed defaults of metas
  • Taken into account new shape buisness
  • Simple and Multi mixins return shapes instead of nodes
  • Cleaned up
  • Moved Shape to core
  • Shapes, nodes and arcs to meta dir
  • Revamped to shapely for elliptical arc function
  • Revamped _split_line_string function
  • Removed translated method from layout_element since not used anywhere
  • Updated nodes
  • Finished nodes and added all arcs
  • Removed arrowhead_fill from defaults
  • Reverted width for Bar: should only be arrowhead_stroke_width
  • Added width for Bar
  • Added rendering_testing for arcs; changed rendering nodes on grid to rendering_layout_elements
  • Finished rendering function
  • Cleaned up
  • Renamed geometry functions; added some new functions
  • Added rendering utility functions
  • Revamped intersection function
  • Changed defaults and attributes' order
  • Revamped nodes
  • New styling attributes for connectors
  • Revamped sbgn nodes
  • Cleaned defaults
  • Increased error tolerance for elliptical_arc to shapely
  • Added new arcs
  • Cleaned code and fixed bug with arrowhead_length==0
  • Shapes->nodes
  • Now SingleHeaded and DoubleHeaded arcs
  • Shapes->nodes
  • Started to change to new border style
  • New start and end arrowheads in arc; new border in node
  • New and updated functions for segments, elliptical arcs and bezier curves
  • Cleaned up
  • Added beginning of layout and render
  • First commit
  • Added x and y attribute to Layout
  • MapLayout->Layout
  • Added anchors for MapLayout
  • Width cannot be < to height
  • Removed arrowhead_bbox from arcs
  • Removed addition in path; Close->ClosePath action
  • Update
  • Vanted->sbgned
  • Cleaned up
  • Updated demo
  • Updated demo
  • Added pretty print function
  • Added apply_style_sheet to map
  • Removed return map from write
  • Added compartments to entities
  • Model and layout are now non optional
  • Added support for notes
  • Update
  • Changed notes parsing to strict
  • Added listOfBackgroundImages
  • Added annotations to map, notes to map, model, model_element
  • Cleaned up
  • Added option for reading and writing annotations
  • Support for writing annotations
  • Added annotations to sbgnmodel
  • Specified annotation class
  • Added support for sbml miriam annotation
  • Package name from momapy.about
  • Added package name
  • Added option for render_information
  • Added support for more glyphs
  • Added init.py
  • Remade parser
  • Added render information attributes
  • Added writing render information
  • Added about with version and author
  • Added leading # to to_hex and to_hexa return string
  • Added to_hex and to_hexa methods
  • Update sbgnml writer
  • Update
  • Udpate
  • Updated tidy function and nodes fit labels function
  • Udpated set_arcs_to_borders
  • Update
  • Updated newt.css
  • Added reversibility of processes; left-to-right of processes and operators
  • Added get_mapping to mapbuilder
  • Added upack option to get_mapping: unpacks the frozenset(frozenset) result; added get_mapping to map
  • Added left_to_right attribute to layout with connectors
  • Removed source and target from children in ArcLayout
  • Added reversibility for processes
  • New set_arcs_to_borders function
  • Added monitoring
  • Changed default renderer to skia
  • Update
  • Cleaned up
  • New subpackage
  • Cleaned up
  • Changed to reader class
  • Staticmethod->classmethod
  • Staticmethod->classmethod
  • Added new reader class
  • Changed parser file name
  • Updated read function; added perturbation unit of informaion to schema
  • Take into account map bbox
  • New read write functions
  • Added additional error: class where add_element is called
  • Base_left/right_connector->left/right_connector_base/g
  • Added two new anchors: left_connector_tip and right_connector_tip
  • Update
  • Update
  • Added utils module with a new str func
  • Added new layout_model_mapping
  • To python 3.11
  • Added pyparsing to setup
  • Cleaned
  • ObjectBoundingBox->ObjectBoundingBox
  • Writes to file only if output_file is defined in config
  • Added reactant and product edit points
  • Changed default width and height of reaction node
  • New nodes taken into account
  • Update
  • Fixed bug in copying dict for joining two stylesheets
  • Removed geometry import
  • Update
  • State variable set to '' is now considered to be None
  • Child can now be None and
  • Added default width and height to Arrow
  • More shapes taken into account
  • Added CellDesigner shapes and layout elements
  • Update
  • Added SBGNPD/AFLayout
  • Update
  • Cleaned up
  • Update
  • Build methods and from_object methods now take a mapping as parameter which avoids rebuilding identical object
  • Remove colors object: momapy.coloring.colors. -> momapy.coloring.; rgb, rgba, hex, hexa functions->from_rgb, from_rgba,... methods of Color
  • Update
  • Model_layout_mapping -> layout_model_mapping
  • Updated dependencies
  • Kw_only and new defaults
  • Updated to python 3.10; added Pipfile*
    • in css is now possible; replace _ by - in css of sbgn
  • Updated notebook
  • Revert "updated notebook and cleaned up"

This reverts commit c115e10923928ebf55f116931bfbf39504451429. - Updated notebook and cleaned up - Changed defaults for af units of information - Made style for logic arc - Redeveloped svg native renderer - Changed arguments order in SkiaRenderer - Bug in renderer ini and added antialiasing to imagefilter painting - Added new reaction types - Added reactions and reactionmofication - Added PHYSICAL_STIMULATION to reaction types - Preserves init from being overwritten by xsdata - Trigger-> triggering + typo - Updated CellDesigner schema - Added Compartment - Other gates; complexes; compartments - Typo - Added Modulator and changed modifiers ontology - Added rest of modifier types - Updated read_file - Modulators -> modifiers - Modulator to Modifier - Added boolean logic gates - Added return value for read_file - Update - Cleaned - Added white colorscheme - Added classselector; simplified typeselector code - Update - Added rendering methods for all filter effects - Fixed bug;added enums for filter effects - Added with_alpha method - Added notebook - Added is_submapping for ModelLayoutMapping; cleaned is_sublayout - Position of text in TextMixin is now label_center() rather than position - Updated - Cleaned up - Added dasharray property - Svg implementation of get_region_filter - Updated newt style - Updated demo - Added get_filter_region method to drawing element - Bug in shapely method of elleptical arc - Implemented drop shadow filter - Replaced path in stadium by rectangle - Updated demo - Cleaned up - Cleaned up - Updated to_shapely method for elliptical arc - Changed sweep flag of stadium shape - Udpated demo - Added to_polygons option to to_shapely method - Fit nodes to labels: to logical bbox - Reverted Direction back to momapy.core - Anchors no longer abstractmethods, but implemented in parent nodelayout class - Moved Direction to sbgn.core - Added file - Updated gitignore - Updated dependencies - Fraction moved to core - New intersection method with shapely - Intersection function: new name - Updated demo - Added demo as subpackage - Cleaned; added general intersection function - Added shapely geometry - Added shapely dependency - Cleaned up and added div for point(builder) - Take into account bezier curves - Rearranged fraction function for bezier curve - Added bezier curve; core/arc: changed points to segments - Changed to python 3.9; added bezier module - Reworked transformed method for elliptical arc - Arrowhead now used transformed method instead of svg-style transform attribute - Typo - Removed arc drawing element - Removed arc drawing element - Added transformed methods - Updated rendereres - Bug skia renderer no dataclass decorator - Updated demo - Added fraction method to arclayout - Cleaned up - Updated demo - Added default width and height to SBGN glyphs - Cleaned up - Updated demo - Update - Added anchors to textlayout; fixed bugs in angles - Added anchors for crosspoint - Merged - Updated demo - Ignore demo/*.svg - Added demo - Moved is_sublayout method from LayoutElement to MapLayout - Updated vanted and newt styles with filter: none - Ink_bbox() -> bbox() - Updated vanted and newt styles with filter: none - Updated newt style sheet - Updated stylesheet - Descendants->ancestors in apply_style_sheet function - Added newt stylesheet - Cleaned up - Added submap, submodel and sublayout methods; added translated method - Added crosspoint - Updated demo - Anchors are computed automatically; shapes are computed using joints - Added demo and cleaned up - Updated celldesigner model and io - Merge branch 'cd' into developpment - Cd model elements now inherit from sbml core elements - Merge skia - Updated with skia - Added skia renderer - X/ysep for nodes set to 5 - Updated with required package skia-python - New filter effects and new svg-native-compat renderer - Implemented af model, layout and rendering - Merge remote-tracking branch 'origin/cd_dev' into cd - New model elements - Merge branch 'main_dev' into cd_dev - New celldesigner model - Added connectors stroke width - Added CardinalityLayout - Added support for cardinality and stoichiometry - Added package data - Import sbgn stylesheets - Upadted setup.py - New terminal layout - Shadows for subunits - Added filter for subunits in sbgn shape - Added none possibility for filters - Clean up - Color for subunits of macromolecule multimer layout - Added list value type - New fit submaps to content function - New styles for sumap and tag layout - Added new directions - Added submap and tag layouts - Set position of layout to position of label with anchor label_center - Added inverted hexagon shape and perturbing agent layout - Updated to new SBGNShape style - Updated with beginning of metaclass - Cleaned up - Is_ovav method - Clean up - Clean up code - Updated style sheets - Changed default filter units to object bounding box - Translation->translate in svg-native renderer - +import momapy.drawing - Impl copy and deepcopy for NoneValue singleton - Update - Added set_complexes_to_fit_content utils function - Fill of consumption to none - Removed shadows for arcs - Emptyset must have a stroke color - Set stroke to none - Bug _render_filters - Typo - Typo - Typo - Typo - Added shadows.css stylsheet - Added drop-shadow in styling css - Added filter with drop shadow effect - Typo - Layout fill to white - Changed font sizes in shapes with text - Aux units font - Font to Cantarell - Font to cantarell - Text drawing element: font_color replaced by fill and stroke - Rgba to rgb and opacity - Layout fill: none; textlayout: font_color - Default sbgn style: fill of layout set to none - Styling none returns NoneValue - Default fill value to black - Set_size->set_absolute_size in pango font description - String to output file - Set_size->set_absolute_size for pango font description - Merge branch 'arc_to_elliptical' into native_svg - Changed arc to elliptical arc in shapes - More methods for native svg renderer - First class and methods for nativesvgrenderer - Int to float - Multiple style sheets; join style sheets - Update - Added default_colorscheme.css - +width and height - Added default stylesheet for sbgn - Added strict option to applying collection of styles - Removed _ from color names to be consistent with css - Added none value that does not work - Added has_color method to colors - Added none value in style_sheets - Added set_auilliary_units_to_borders function - Added self_border and self_angle functions - Splited fontdescription into fontsize and fontfamily - +pyparsing - Added parser for stylesheets - Clean up - In node layout: removed foreground_path; renamed background_path to border_drawing_element - Render_maps(): changed bbox to self_bbox to compute surface width and height - Changed drawing path of Layout: bbox() -> self_bbox() - Cleanup - Added ancestor and parent selectors;type selector->class selector; now ancestors in select method - Added children mehtod to layouts - Added tidy and stylesheet options to read_file - Can now supply a mapbuilder to apply_style_sheet - Added set_arcs_to_borders function - Cleaning - Addition of point to point builder - Added automatic border functions and related changes - New function for intersection of line and ellipse - Removed y_from_x methods (not much sense) - New geometry shapes: Arc, Circle; new intersection functions - Recodes parallel lines; added slope and intercept to line; recoded intersection of lines - Added set_layout_to_fit_content function - Added set_nodes_to_fit_labels - Label_center taken into account and bold text in shapes - Added label_center anchor - Added vertical alignment for textlayoutelement - Bugs and replaces text by new text and textlayout - Changed nodelabel to textlayoutelement - New text drawing element and textlayoutelement - Added style_sheets from styling to render_map(s) - Added position to sbgn maps when reading sbgn-ml file - Added position to layout - Removed optional from transform attribute of drawing element (default is tuple) - Dfault for transform attribute is set to tuple - Merge branch 'main_dev' into sbgn_dev - Fit now return position, width, height and not bbox: fixed related bugs in self.bbox() functions - Bug in set_compartments_to_fit_content - Merge branch 'main_dev' into sbgn_dev - Bug in set_fit function - New set_compartments_to_fit_content function - Merge branch 'main_dev' into sbgn_dev - Fit returns position, width and height rather than a bbox; implemented set_fit function - Added new sbgn shapes - Added EmptySetLayout to emptyset and source and sink - New styling feature - Completed fraction function - Recoded arcs with anchors - Cleaned code - Maj - Bug restore after stroke and fill; factored _stroke_and_fill - Added height and width in _make_renderer_for_render_function - Typo in parameter name - Added a function to render a collection of drawing elements and factored make_renderer_for_render_function - Added ellipse to drawing and rendering - Added arcs to drawing and rendering - Typo - Added origin point for rotation - Experimental update with updated_object - Revamped relative_point to updated_object - Removed prints - New animating module - Bug fix - Bug fix in Color.or - Bug fix in Color.or - Added png rendering - Updated Pipfile - Cleanup - Cleanup - Cleanup - Cleaned imports - Added alpha modification to Color - Mod essai.py - Cleanup - Reference->phantomlayoutelement, fixed bugs, fixed positioning with new coord sys - Added self_bbox to grouplayout and to nodelayout - Mod bbox to follow new coord system - Mod essai.py - Inverted y axis to mimick svg and sbgnml - Cleaned rendering and drawing code - Updated gitignore - Updated grouplayoutelement - Cleanup - Renderer to rendering - Renderer.py to rendering.py - Cleanup - Removed position.py.save - Added folder momapy/ - Removed submodule momapy - Updated gitignore - Updated pipfile - Initial commit

Styling

  • Styles to/from render_information: border>group attrs for nodes, arrowhead>path>group attrs for arcs
  • Stylesheet is now unfrozen so it can be easily modified
  • Styles in grouplayoutelement applied to the top group element; arcs have styles for arrowhead
  • Style_sheets from files and multiple style_sheets
  • Stylesheet applied to layout instead of map