Changelog#
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]#
Added#
Basic tool, preprocessing and plotting functions
Test suite (
tests/) covering the publicpp,tl, andplAPIs against a syntheticSpatialDatafixture (tests/conftest.py), includingpytest.mark.xfail/skipmarkers documenting known spatialdata-0.4.0 incompatibilities andpl/plotting.pylegacy-pipeline drift.
Fixed#
tl.adaptative_source_score_optimized:AttributeError: 'numpy.ndarray' object has no attribute 'tocsr'whensdata["table"].Xis a dense array — now converts viacsr_matrix(...)instead of calling.tocsr().pl.global_distribution_from_source: fixed the defaultcluster_key("kmeans_from_distribution"→"kmeans_distribution") to match the column actually written bytl.cluster_distribution_from_sourceand used bypl.distributions_by_cluster.pp.filter_urna/pp.aggregate_urna: fixeddask/spatialdatacompatibility issues — boolean-indexing thetranscriptspoints dataframe no longer drops required.attrs, and an unnecessary.compute()that broke on newerdaskis removed.tl.calculate_target_cells: fixed gene alignment (reindexinstead of ajointhat broke underpandas2.3.x with aCategoricalIndex).Added
troutpy[spatial-stats]to thetestextra so the test suite’s optional dependencies (sainsc,squidpy) are installed in CI.docs/notebooks/Basic_tutorial.ipynb: fixed cells with stray leading whitespace (causedruff/pre-commit parse failures), an unusednumpyimport, and two calls usingtroutpy.pl....instead of the notebook’stpalias.Excluded
anndata==0.13.0rc1(anndata!=0.13.0rc1): this release candidate makesAnnData(X=...)populateadata.layerswith aNonekey, which crashesspatialdata’sTableModel.parsevalidation (AttributeError: 'NoneType' object has no attribute 'lower') and broke thePRE-RELEASE DEPENDENCIESCI job.Pinned
setuptools<81in thedocextra:setuptools>=81removedpkg_resources, whichxarray_schema(aspatialdatadependency) still imports at module load, crashingimport troutpyand, with it, the ReadTheDocs build (sphinx.errors.ExtensionError: ... no module named troutpy.pl).Fixed ~170
nitpickySphinx warnings that made the ReadTheDocs build fail underfail_on_warning: true:Added
seabornandsquidpytointersphinx_mappingso their type cross-references resolve.Extended
nitpick_ignorefor napoleon’s “type, optional”/”… or iterable” parameter descriptions,typing.Union, and runtime-derived qualnames that don’t match their public, intersphinx-mapped names (pandas.core.frame.DataFrame,SpatialData,seaborn.axisgrid.JointGrid,seaborn.matrix.ClusterGrid) or have no hosted inventory (mpl_chord_diagram.chord_diagram,sainsc.LazyKDE*).pl.basic/pl.metric_analysis/pl.scatter/pl.factor_analysis: fixed:func:refs pointing attroutpy.pl.colors.get_palette/get_colormaptotroutpy.pl.get_palette/get_colormap, matching how they’re documented indocs/api/plotting.md.tl.source_cell: removed a:func:cross-reference to the private, undocumented_core_scoring_engine_chunkhelper.
[0.1.1]#
Removed#
Deprecated functions
tl.compute_source_cells,tl.distance_to_source_cell,tl.compute_distant_cells_proportion,tl.compute_source_score, andtl.characterize_cell_like_structures(superseded bytl.adaptative_source_score/tl.adaptative_source_score_optimized).
Changed#
Trimmed
dependenciesto the minimal set required toimport troutpy(added a missingnumba, dropped unusedjoblib), and movedsainsc,points2regions,squidpy,mpl-chord-diagram,scikit-image, anddrvito lazily-imported optional extras (spatial-stats,segmentation-free,chord,morphology,factor-analysis;pip install troutpy[all]for everything).docs/api/*.mdnow reflects the full public API exported bytroutpy.pp,troutpy.tl, andtroutpy.pl.