Releases: 1313e/CMasher
Releases · 1313e/CMasher
v1.9.0
Highlights
User-visible changes
- Python 3.9 is not supported any more
- Python 3.13 is now explicitly supported
pathlib
is now supported everywhere in the API
What's Changed
- TST: use uv pip compile to keep lint deps in sync by @neutrinoceros in #130
- ENH: do not swallow traceback to original exception when failing to define a colormap by @neutrinoceros in #131
- TST: use uv pip compile to keep minimal deps in sync by @neutrinoceros in #129
- TST: revert numpy bump by @neutrinoceros in #132
- MNT: migrate ruff config by @neutrinoceros in #133
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #134
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #135
- TST: speed up env resolution with uv by @neutrinoceros in #136
- TYP: fix type-check time incompatibility with matplotlib 3.9.1 by @neutrinoceros in #137
- DEP: drop support for Python 3.9 by @neutrinoceros in #140
- TST: migrate to official astral-sh/setup-uv action by @neutrinoceros in #141
- MNT: simplify setup-uv usage following 2.1.1 release by @neutrinoceros in #142
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #143
- TST: add CPython 3.13 to regular test matrix by @neutrinoceros in #144
- BLD: migrate build backend from setuptools to hatchling by @neutrinoceros in #146
- TST: drop pytest-cov and codecov (use coverage.py natively instead) by @neutrinoceros in #148
- BLD: migrate to src layout by @neutrinoceros in #147
- TST: reintroduce coverage measurement and improve coverage to 100% (excluding defensive programming lines) by @neutrinoceros in #149
- TST: use exact commit sha for github actions by @neutrinoceros in #150
- UX: clarify generic error message when failing to import/register a colormap by @neutrinoceros in #151
- DOC: lock the whole environment (not just direct dependencies) by @neutrinoceros in #152
- TST: don't use editable install in CI by @neutrinoceros in #153
- DOC: Update cmasher/colormaps references by @emmanuel-ferdman in #154
- DOC: move static png out of src dir by @neutrinoceros in #156
- TST: avoid venv activation in CI by @neutrinoceros in #157
- MNT: build docs with Python 3.13 by @neutrinoceros in #158
- TST: truly test oldest test dependencies by @neutrinoceros in #159
- TST: don't use editable install in CI (again) by @neutrinoceros in #160
- TST: fix coverage report combination by @neutrinoceros in #161
- ENH: support
pathlib.Path
everywhere by @neutrinoceros in #162 - CLN: tidy import statements by @neutrinoceros in #163
- REL: prepare release 1.9.0 by @neutrinoceros in #164
New Contributors
- @emmanuel-ferdman made their first contribution in #154
Full Changelog: v1.8.0...v1.9.0
v1.8.0
What's changed
This release brings a new utility function to cmasher to easily combine colormaps. See our documentation.
- ENH: Add cmasher.combine_cmaps, by @DanielYang59 in #122
- REL: prepare release 1.8.0, by @neutrinoceros in #123
Full Changelog: v1.7.2...v1.8.0
v1.7.2
What's Changed
- ENH: add stub file of cm.py and script that generates it, by @beskep in #112
- REL: release 1.7.2 by @neutrinoceros in #114
Full Changelog: v1.7.1...v1.7.2
v1.7.1
What's Changed
- TST: ignore
__pycache__
in test generation by @neutrinoceros in #101 - ENH: slightly improve startup time by raising an exception early if viscm is installed/needed by @neutrinoceros in #100
- ENH: load colormaps from binaries instead of text files by @neutrinoceros in #102
- ENH: reduce startup overhead from colormap registrations by skipping type heuristics and runtime sanity checks for builtin maps by @neutrinoceros in #103
- TST: add doc build to CI, move dev requirement files to dedicated folder by @neutrinoceros in #104
- TYP: run type checking as part of CI by @neutrinoceros in #105
- DOC: fix broken GHA badge by @neutrinoceros in #106
- REL: prepare release 1.7.1 by @neutrinoceros in #107
Full Changelog: v1.7.0...v1.7.1
v1.7.0
Highlights
- This is the first release by CMasher's new maintainer @neutrinoceros
- Python 3.9 to 3.12 is supported
- Deprecation warnings triggered with current Matplotlib versions (3.5 -> 3.8) were resolved
- The deprecated colormap alias
"heat"
was removed. The colormap is still available as"torch"
Dependencies
- Python 3.9 or newer is now required
- Matplotlib 3.5 or newer is now required
- Numpy 1.19.3 or newer is now required
e13tools
was dropped as a dependency
What's Changed
- GitHub Action to lint Python code by @cclauss in #39
- ENH: future proof against matplotlib's evolving API by @neutrinoceros in #44
- MNT: migrate setup.cfg -> pyproject.toml by @neutrinoceros in #55
- MNT: drop support for EOL Python versions 3.6 and 3.7 by @neutrinoceros in #56
- MNT: fixup codespell check by @neutrinoceros in #57
- MNT: enable dependabot by @neutrinoceros in #59
- MNT: migrate linting and formatting to pre-commit + ruff by @neutrinoceros in #60
- STY: autofixes (ruff) by @neutrinoceros in #61
- MNT: upgrade GHA by @neutrinoceros in #62
- MNT: temporarily deactivate cross-plateform CI by @neutrinoceros in #64
- MNT: exclude new dev-only files in MANIFEST.in by @neutrinoceros in #63
- TST: add color to pytest output in CI by @neutrinoceros in #65
- TST: fix utility tests by @neutrinoceros in #66
- STY: manually fix remaining ruff violations by @neutrinoceros in #67
- STY: fix EOF by @neutrinoceros in https://github.com/1313e/CMasher/pull/
- STY: apply ruff-format by @neutrinoceros in #69
- STY: fix trailing whitespaces by @neutrinoceros in #95
- MNT: fix bandit pre-commit hook by @neutrinoceros in #71
- MNT: prettify yaml files by @neutrinoceros in #72
- MNT: fixup codespell pre-commit hook by @neutrinoceros in #73
- MNT: temporarily disable safety check by @neutrinoceros in #75
- DEP: bump minimal requirements on matplotlib 3.5 and numpy 1.17.3 by @neutrinoceros in #76
- API: remove deprecated colormap alias (heat -> torch) by @neutrinoceros in #77
- DEP: drop dependency on e13tools (broken on Python 3.12) by @neutrinoceros in #78
- MNT: fix deprecation warnings from matplotlib by @neutrinoceros in #79
- TST: test against matplotlib/viscm instead of fork by @neutrinoceros in #80
- BUG: fix a future warning from numpy (avoid iterating over scalar array) by @neutrinoceros in #81
- TST: treat warnings as errors by @neutrinoceros in #74
- MNT: drop support for Python 3.8 by @neutrinoceros in #83
- TST: add explicit support for Python 3.10 to 3.12 by @neutrinoceros in #82
- TST: drop support for Windows x86 (32 bits arch) by @neutrinoceros in #85
- TST: re-enable tests on Windows and MacOS by @neutrinoceros in #84
- MNT: cleanup unused requirement by @neutrinoceros in #87
- MNT: bump minimal requirement for numpy by @neutrinoceros in #88
- BUG: fix compatibility with matplotlib 3.5 by @neutrinoceros in #89
- ENH: delay expensive imports by @neutrinoceros in #90
- TST: test against minimal env by @neutrinoceros in #86
- MNT: stop linting with flake8 (ruff is already doing the job) by @neutrinoceros in #91
- TST: simplify pytest runs by @neutrinoceros in #92
- TST: separate publication-related tasks from normal tests by @neutrinoceros in #93
- REL: prepare release 1.7.0 by @neutrinoceros in #94
- REL: release 1.7.0 by @neutrinoceros in #95
New Contributors
- @cclauss made their first contribution in #39
- @neutrinoceros made their first contribution in #44
Full Changelog: v1.6.0...v1.7.0
v1.6.0
This is the v1.6.0 release of the CMasher package.
New additions/changes since v1.5.0:
- Removed support for Python 3.5;
- Added support for Python 3.9;
- Added the amethyst; cosmic; lilac; neon; sepia; tree and tropical sequential colormaps;
- Added the guppy and seaweed diverging colormaps;
- Added the emergency and infinity cyclic colormaps;
- Remade the seasons diverging colormap into a cyclic colormap;
- Remade the gem sequential colormap into a
[15, 85]
version; - Modified flamingo slightly to include more pink;
- Added ability to turn off the greyscale versions of all colormaps in the colormap overviews;
- Added option to scale the dimensions of the colormap subplots in the colormap overviews;
- Added a
dark_mode
option tocreate_cmap_overview
; - Added ability to make qualitative colormaps from existing colormaps (#28);
- Added tutorial to docs on how to use CMasher colormaps in R (#26);
- Colormaps can now be imported/registered using their HEX-code values;
- Colormaps are now also available using their normalized RGB values in the individual colormap folders;
- Added an application overview of all colormaps to the 'Usage' section in the online docs, which can be used to easily see what a colormap looks like when used in a realistic way.
v1.5.0
This is the v1.5.0 release of the CMasher package.
New additions/changes:
- Dropped Python 2.7 support;
- Added the wildfire; and toxic colormaps;
- Renamed old wildfire to seasons;
- Added the
sort=None
argument tocreate_colormap_overview
to allow for the colormaps to retain their current order; - Added the
title
argument tocreate_colormap_overview
to set the title that is used in the overview; - Added a set of CLI tools that allow for some utility functions to be accessed from the command-line with
cmr
; - Changed the
take_cmap_colors
function to allow for all colors in a specific range to be returned withN=None
; - Added the
create_cmap_mod
function that can create stand-alone Python modules of CMasher colormaps.
v1.4.0
This is the v1.4.0 release of the CMasher package.
New additions/changes:
- Added the bubblegum; fall; pepper; swamp; watermelon; and wildfire colormaps;
- Reworked the dusk colormap into a [0, 85] sequential colormap;
- Reworked the horizon colormap into a [20, 100] sequential colormap;
- Reworked the nuclear colormap into a [0, 90] sequential colormap;
- Revamped the online documentation to create separate webpages for each colormap;
- Online documentation now includes examples of each utility function that CMasher has;
- Added the
get_sub_cmap
;set_cmap_legend_entry
; andtake_cmap_colors
functions; - Split off the registration part of the
import_cmaps
function into theregister_cmap
function; - Converted the
_get_cm_type
function into the publicget_cmap_type
function; - Added 8-bit RGB text-files of each colormap to the appropriate colormap directory;
- Added stand-alone Python modules of each colormap as well;
- The
create_cmap_overview
function now treats diverging colormaps differently when sorting on their lightness profiles (takes central value instead of starting value).
v1.3.0
This is the v1.3.0 release of the CMasher package.
New additions:
- Added the ocean; pride; savanna; and viola colormaps;
- Added the
get_bibtex
function to retrieve the BibTeX entry of the CMasher paper; - Added the 'plot_profile' argument to the
create_cmap_overview
function.
When set to True, the created overview will contain the lightness profile of the colormaps plotted on top of their grey-scale versions.
This allows for more in-depth information on the performance of a colormap.
Bugfixes:
- Fixed a bug where diverging colormaps with plateaus in the center of their lightness profiles, would be flagged as 'misc'.
Changes/Optimizations:
- Made several optimizations to the
create_cmap_overview
function to allow it to be efficiently saved as an SVG-file (saving as SVG will now result in a much smaller file size than its PNG equivalent, despite being of a higher quality); - Made several QoL changes to the online docs, including saving the colormap images as SVG-files to make them faster to load on mobile (using the aforementioned optimizations);
- As my modified version of viscm contains a fix allowing it to handle diverging colormaps better, replaced the dual source files of all diverging colormaps with single files.