Changes from the original cogent3 app infrastructure.
- Standalone package extracted from
cogent3.app— no cogent3 dependency required. - Generic base classes
AppBase[T, R],ComposableApp[T, R], andWriterApp[T, R]that apps can inherit from directly as an alternative to the@define_appdecorator. Type checkers can resolve types through class inheritance without a plugin. - mypy plugin (
scinexus._mypy_plugin) for correct type inference of@define_appdecorated classes. Synthesises the__call__return type asR | NotCompleted. check_data_typeattribute on apps — a settable property to toggle runtime input type checking on or off. Disabling can speed up execution and simplify debugging.NotCompletedTypeenum (ERROR,FAIL,BUG) for categorising failure types, replacing bare strings.set_summary_display()/get_summary_display()— a module-level registry allowing downstream packages (e.g. cogent3) to register custom display functions for data store summary methods (describe,summary_logs,summary_not_completed,summary_citations,validate).citationsandbibproperties on apps for tracking software citations via theciteablelibrary. Citations propagate through composed pipelines.- Pluggable parallel backends -- choose between stdlib multiprocessing, loky, or MPI via
set_parallel_backend(). - Pluggable progress bars -- use
tqdmorrichvia theProgressprotocol andset_default_progress(). set_id_from_source()/get_id_from_source()-- register a custom function for extracting storage identifiers from data.apply_to()acceptslogger=Falseto disable log file creation.
- App composition (
+) now makes shallow copies of the right-hand operand. Composed pipelines no longer share mutable state. - Composition-time type compatibility checking via
check_type_compatibility()— catches type mismatches when apps are composed with+, before any data is processed. - Data store summary methods (
describe,summary_logs, etc.) returnlist[dict]ordictinstead of cogent3Tableobjects. Custom display can be restored viaset_summary_display(). - All modules pass mypy strict type checking.
StrOrBytestype alias replaced withstr | bytesthroughout.- Inline
assertstatements replaced with explicitValueError/TypeErrorraises. - Type-hint-related imports moved under
TYPE_CHECKINGfor lighter runtime import overhead.
ComposableApp.disconnect()— discontinued, will be removed in version 2026.9. No longer required since composition uses shallow copies.