plotstyle 1.1.0__tar.gz → 1.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- plotstyle-1.2.1/CHANGELOG.md +155 -0
- plotstyle-1.2.1/PKG-INFO +684 -0
- plotstyle-1.2.1/README.md +603 -0
- {plotstyle-1.1.0 → plotstyle-1.2.1}/pyproject.toml +3 -2
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/__init__.py +44 -2
- plotstyle-1.2.1/src/plotstyle/_compat/__init__.py +13 -0
- plotstyle-1.2.1/src/plotstyle/_compat/mpl_style.py +137 -0
- plotstyle-1.2.1/src/plotstyle/_utils/__init__.py +17 -0
- plotstyle-1.2.1/src/plotstyle/_utils/warnings.py +38 -0
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/_version.py +2 -2
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/cli/main.py +160 -13
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/color/_rendering.py +3 -3
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/color/accessibility.py +1 -1
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/color/data/tol_bright.json +1 -1
- plotstyle-1.2.1/src/plotstyle/color/data/tol_high_contrast.json +5 -0
- plotstyle-1.2.1/src/plotstyle/color/data/tol_light.json +5 -0
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/color/data/tol_muted.json +1 -1
- plotstyle-1.2.1/src/plotstyle/color/data/tol_rainbow_10.json +5 -0
- plotstyle-1.2.1/src/plotstyle/color/data/tol_rainbow_12.json +5 -0
- plotstyle-1.2.1/src/plotstyle/color/data/tol_rainbow_4.json +5 -0
- plotstyle-1.2.1/src/plotstyle/color/data/tol_rainbow_6.json +5 -0
- plotstyle-1.2.1/src/plotstyle/color/data/tol_rainbow_8.json +5 -0
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/color/data/tol_vibrant.json +1 -1
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/color/grayscale.py +9 -2
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/color/palettes.py +76 -8
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/core/export.py +30 -8
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/core/figure.py +14 -11
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/core/migrate.py +30 -17
- plotstyle-1.2.1/src/plotstyle/core/style.py +836 -0
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/engine/fonts.py +46 -15
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/engine/latex.py +2 -2
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/engine/rcparams.py +103 -24
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/integrations/seaborn.py +5 -6
- plotstyle-1.2.1/src/plotstyle/overlays/__init__.py +252 -0
- plotstyle-1.2.1/src/plotstyle/overlays/bar.toml +10 -0
- plotstyle-1.2.1/src/plotstyle/overlays/cjk-japanese.toml +17 -0
- plotstyle-1.2.1/src/plotstyle/overlays/cjk-korean.toml +17 -0
- plotstyle-1.2.1/src/plotstyle/overlays/cjk-simplified.toml +17 -0
- plotstyle-1.2.1/src/plotstyle/overlays/cjk-traditional.toml +17 -0
- plotstyle-1.2.1/src/plotstyle/overlays/grid.toml +10 -0
- plotstyle-1.2.1/src/plotstyle/overlays/high-vis.toml +13 -0
- plotstyle-1.2.1/src/plotstyle/overlays/latex-sans.toml +10 -0
- plotstyle-1.2.1/src/plotstyle/overlays/minimal.toml +12 -0
- plotstyle-1.2.1/src/plotstyle/overlays/no-latex.toml +9 -0
- plotstyle-1.2.1/src/plotstyle/overlays/notebook.toml +16 -0
- plotstyle-1.2.1/src/plotstyle/overlays/okabe-ito.toml +7 -0
- plotstyle-1.2.1/src/plotstyle/overlays/pgf.toml +9 -0
- plotstyle-1.2.1/src/plotstyle/overlays/presentation.toml +14 -0
- plotstyle-1.2.1/src/plotstyle/overlays/russian.toml +15 -0
- plotstyle-1.2.1/src/plotstyle/overlays/safe-grayscale.toml +7 -0
- plotstyle-1.2.1/src/plotstyle/overlays/scatter.toml +11 -0
- plotstyle-1.2.1/src/plotstyle/overlays/schema.py +125 -0
- plotstyle-1.2.1/src/plotstyle/overlays/tol-bright.toml +7 -0
- plotstyle-1.2.1/src/plotstyle/overlays/tol-high-contrast.toml +7 -0
- plotstyle-1.2.1/src/plotstyle/overlays/tol-light.toml +7 -0
- plotstyle-1.2.1/src/plotstyle/overlays/tol-muted.toml +7 -0
- plotstyle-1.2.1/src/plotstyle/overlays/tol-rainbow-10.toml +7 -0
- plotstyle-1.2.1/src/plotstyle/overlays/tol-rainbow-12.toml +7 -0
- plotstyle-1.2.1/src/plotstyle/overlays/tol-rainbow-4.toml +7 -0
- plotstyle-1.2.1/src/plotstyle/overlays/tol-rainbow-6.toml +7 -0
- plotstyle-1.2.1/src/plotstyle/overlays/tol-rainbow-8.toml +7 -0
- plotstyle-1.2.1/src/plotstyle/overlays/tol-vibrant.toml +7 -0
- plotstyle-1.2.1/src/plotstyle/overlays/turkish.toml +15 -0
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/preview/print_size.py +1 -1
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/specs/__init__.py +56 -23
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/specs/_templates.toml +1 -1
- plotstyle-1.2.1/src/plotstyle/specs/acs.toml +32 -0
- plotstyle-1.2.1/src/plotstyle/specs/cell.toml +35 -0
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/specs/elsevier.toml +9 -13
- plotstyle-1.2.1/src/plotstyle/specs/ieee.toml +31 -0
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/specs/nature.toml +7 -10
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/specs/plos.toml +7 -10
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/specs/prl.toml +7 -12
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/specs/schema.py +145 -39
- plotstyle-1.2.1/src/plotstyle/specs/science.toml +31 -0
- plotstyle-1.2.1/src/plotstyle/specs/springer.toml +26 -0
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/specs/units.py +10 -4
- plotstyle-1.2.1/src/plotstyle/specs/wiley.toml +27 -0
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/validation/checks/__init__.py +1 -1
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/validation/checks/_base.py +1 -1
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/validation/checks/dimensions.py +50 -19
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/validation/checks/lines.py +29 -12
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/validation/checks/typography.py +33 -13
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/validation/report.py +1 -1
- {plotstyle-1.1.0 → plotstyle-1.2.1}/tests/test_cli/test_main.py +3 -3
- {plotstyle-1.1.0 → plotstyle-1.2.1}/tests/test_color/test_accessibility.py +1 -1
- {plotstyle-1.1.0 → plotstyle-1.2.1}/tests/test_color/test_grayscale.py +1 -1
- {plotstyle-1.1.0 → plotstyle-1.2.1}/tests/test_color/test_palettes.py +3 -2
- {plotstyle-1.1.0 → plotstyle-1.2.1}/tests/test_core/test_export.py +3 -3
- {plotstyle-1.1.0 → plotstyle-1.2.1}/tests/test_core/test_migrate.py +4 -32
- {plotstyle-1.1.0 → plotstyle-1.2.1}/tests/test_core/test_style.py +3 -3
- {plotstyle-1.1.0 → plotstyle-1.2.1}/tests/test_engine/test_fonts.py +6 -1
- {plotstyle-1.1.0 → plotstyle-1.2.1}/tests/test_engine/test_rcparams.py +13 -13
- {plotstyle-1.1.0 → plotstyle-1.2.1}/tests/test_integrations/test_seaborn.py +3 -3
- {plotstyle-1.1.0 → plotstyle-1.2.1}/tests/test_preview/test_gallery.py +1 -1
- {plotstyle-1.1.0 → plotstyle-1.2.1}/tests/test_preview/test_print_size.py +1 -1
- {plotstyle-1.1.0 → plotstyle-1.2.1}/tests/test_specs/test_registry.py +10 -7
- {plotstyle-1.1.0 → plotstyle-1.2.1}/tests/test_specs/test_schema.py +7 -54
- {plotstyle-1.1.0 → plotstyle-1.2.1}/tests/test_specs/test_units.py +8 -8
- {plotstyle-1.1.0 → plotstyle-1.2.1}/tests/test_utils/test_io.py +5 -5
- {plotstyle-1.1.0 → plotstyle-1.2.1}/tests/test_utils/test_warnings.py +1 -1
- plotstyle-1.1.0/CHANGELOG.md +0 -102
- plotstyle-1.1.0/PKG-INFO +0 -367
- plotstyle-1.1.0/README.md +0 -306
- plotstyle-1.1.0/src/plotstyle/_utils/warnings.py +0 -13
- plotstyle-1.1.0/src/plotstyle/core/style.py +0 -580
- plotstyle-1.1.0/src/plotstyle/integrations/__init__.py +0 -0
- plotstyle-1.1.0/src/plotstyle/specs/acs.toml +0 -36
- plotstyle-1.1.0/src/plotstyle/specs/cell.toml +0 -35
- plotstyle-1.1.0/src/plotstyle/specs/ieee.toml +0 -35
- plotstyle-1.1.0/src/plotstyle/specs/science.toml +0 -35
- plotstyle-1.1.0/src/plotstyle/specs/springer.toml +0 -35
- plotstyle-1.1.0/src/plotstyle/specs/wiley.toml +0 -35
- {plotstyle-1.1.0 → plotstyle-1.2.1}/.gitignore +0 -0
- {plotstyle-1.1.0 → plotstyle-1.2.1}/LICENSE +0 -0
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/_utils/io.py +0 -0
- {plotstyle-1.1.0/src/plotstyle/_utils → plotstyle-1.2.1/src/plotstyle/cli}/__init__.py +0 -0
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/color/__init__.py +0 -0
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/color/data/okabe_ito.json +0 -0
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/color/data/safe_grayscale.json +0 -0
- {plotstyle-1.1.0/src/plotstyle/cli → plotstyle-1.2.1/src/plotstyle/core}/__init__.py +0 -0
- {plotstyle-1.1.0/src/plotstyle/core → plotstyle-1.2.1/src/plotstyle/engine}/__init__.py +0 -0
- {plotstyle-1.1.0/src/plotstyle/engine → plotstyle-1.2.1/src/plotstyle/integrations}/__init__.py +0 -0
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/preview/__init__.py +0 -0
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/preview/gallery.py +0 -0
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/py.typed +0 -0
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/validation/__init__.py +0 -0
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/validation/checks/colors.py +0 -0
- {plotstyle-1.1.0 → plotstyle-1.2.1}/src/plotstyle/validation/checks/export.py +0 -0
- {plotstyle-1.1.0 → plotstyle-1.2.1}/tests/conftest.py +0 -0
- {plotstyle-1.1.0 → plotstyle-1.2.1}/tests/test_color/test_rendering.py +0 -0
- {plotstyle-1.1.0 → plotstyle-1.2.1}/tests/test_core/test_figure.py +0 -0
- {plotstyle-1.1.0 → plotstyle-1.2.1}/tests/test_engine/test_latex.py +0 -0
- {plotstyle-1.1.0 → plotstyle-1.2.1}/tests/test_validation/test_checks.py +0 -0
- {plotstyle-1.1.0 → plotstyle-1.2.1}/tests/test_validation/test_report.py +0 -0
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to **plotstyle** will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project adheres to [PEP 440](https://peps.python.org/pep-0440/) versioning.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## [Unreleased]
|
|
11
|
+
|
|
12
|
+
_Nothing yet._
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## [1.2.1] - 2026-04-26
|
|
17
|
+
|
|
18
|
+
Patch release: `simulate_cvd` example, warning quality improvements, and docs/example content fixes.
|
|
19
|
+
|
|
20
|
+
### Added
|
|
21
|
+
|
|
22
|
+
- **`simulate_cvd` example in `04_accessibility_checks.py`**: demonstrates low-level CVD simulation by rendering a figure to an RGB array and applying a single `CVDType` matrix directly via `simulate_cvd()`.
|
|
23
|
+
|
|
24
|
+
### Changed
|
|
25
|
+
|
|
26
|
+
- **`SpecAssumptionWarning` deduplication**: each spec now emits the assumption warning at most once per session. A `_warned_specs` set on `SpecRegistry` tracks which specs have already warned; `reset()` clears it alongside the spec cache.
|
|
27
|
+
- **Clearer `OverlaySizeWarning`**: the message now names the journal, the overlay, the actual width, the limit, and the fix action, replacing the previous vague description.
|
|
28
|
+
- **Improved font-fallback warning**: lists font names in a readable comma-separated form and adds a hint to rebuild the Matplotlib font cache after installing a new font.
|
|
29
|
+
- **FontTools log suppression during PDF export**: `savefig()` temporarily sets the `fontTools` logger to `ERROR` level during `fig.savefig()` to suppress low-level font subsetting noise.
|
|
30
|
+
- **`SpecRegistry.get()` uses `_silent=True` during background style registration**: prevents the assumption warning from firing during the import-time `register_all_styles()` call.
|
|
31
|
+
- **Docs and example content fixes**: factual errors corrected across API reference, guides, CLI docs, and Jupyter notebooks; overlay guide expanded with additional coverage.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## [1.2.0] - 2026-04-23
|
|
36
|
+
|
|
37
|
+
Feature release: **overlays**, **units & conversions**, **Seaborn integration**, improved **font/LaTeX controls**, plus major CLI/docs/example expansion.
|
|
38
|
+
|
|
39
|
+
### Added
|
|
40
|
+
|
|
41
|
+
- **Style overlays** (`plotstyle.overlays`, `plotstyle.list_overlays()`): additive layers that can be composed with a base journal preset.
|
|
42
|
+
- Categories: `color`, `context`, `rendering`, `plot-type`, `script`.
|
|
43
|
+
- Built-in overlays include `minimal`, `notebook`, `presentation`, `high-vis`, `grid`, `bar`, `scatter`, `no-latex`, `pgf`, `latex-sans`, `okabe-ito`, `safe-grayscale`, and `tol-*` palette overlays, plus CJK/Turkish/Russian script overlays.
|
|
44
|
+
- **New CLI commands for overlays**
|
|
45
|
+
- `plotstyle overlays [--category <category>]` to list overlays.
|
|
46
|
+
- `plotstyle overlay-info <overlay>` to inspect overlay metadata and `rcParams`.
|
|
47
|
+
- **Font checks for overlays**: `plotstyle fonts --overlay <overlay>` (in addition to `--journal`).
|
|
48
|
+
- **Seaborn integration**: helpers to keep PlotStyle `rcParams` consistent when using Seaborn themes (`patch_seaborn()`, `plotstyle_theme()`, `unpatch_seaborn()`).
|
|
49
|
+
- **Units & conversions**: new/expanded utilities and docs for consistent size specification across specs and helpers.
|
|
50
|
+
- **Matplotlib-native styles compatibility**: support for registering/using PlotStyle presets as Matplotlib styles where applicable.
|
|
51
|
+
- **New examples & previews**: additional example scripts including overlays, Seaborn integration, units/conversions, print-size preview, Matplotlib native styles, and LaTeX/fonts.
|
|
52
|
+
|
|
53
|
+
### Changed
|
|
54
|
+
|
|
55
|
+
- **CLI UX improvements**
|
|
56
|
+
- `plotstyle fonts` now supports `--journal` *or* `--overlay` (mutually exclusive, required).
|
|
57
|
+
- More robust argument parsing (e.g. ignores empty entries in `--formats`).
|
|
58
|
+
- Friendlier output for empty registries (journals/overlays) and clearer reporting for overlay font availability.
|
|
59
|
+
- **Docs & README expansion**: new/expanded guides and API reference for overlays, units, warnings, Seaborn, preview tooling, and updated patterns/examples.
|
|
60
|
+
|
|
61
|
+
### Fixed
|
|
62
|
+
|
|
63
|
+
- **CLI stability**: avoid noisy/unclear behavior in edge cases (empty registry listings, malformed format lists) and improve error messaging around missing overlay keys.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## [1.1.0] - 2026-04-16
|
|
68
|
+
|
|
69
|
+
Minor feature release : ergonomics improvements, hardened error handling, and spec updates.
|
|
70
|
+
|
|
71
|
+
### Added
|
|
72
|
+
|
|
73
|
+
- **`quiet` parameter on `JournalStyle.export()`** : suppresses compliance summaries and manifest output for scripting workflows.
|
|
74
|
+
- **Pre-computed Type 3 font checks** : compliance summary now accepts a pre-computed result for Type 3 font detection, improving performance when the check has already been run by the caller.
|
|
75
|
+
- **`JournalSpec` key access** : `JournalSpec` now supports key-style access, and the dimension check message has been updated for clarity.
|
|
76
|
+
|
|
77
|
+
### Fixed
|
|
78
|
+
|
|
79
|
+
- **`SpecNotFoundError` base classes** : now inherits from both `ValueError` and `KeyError` so existing `except ValueError` and `except KeyError` handlers catch it correctly; a custom `__str__` produces clearer diagnostic messages.
|
|
80
|
+
|
|
81
|
+
### Changed
|
|
82
|
+
|
|
83
|
+
- **IEEE Transactions spec updated** : column widths, max height, font family, panel-label properties, and preferred output formats revised to match current IEEE author guidelines.
|
|
84
|
+
- **CI documentation build** : Sphinx `docs` job (`sphinx-build -W -n`) added to the CI workflow; rendered HTML is uploaded as an artifact on every push.
|
|
85
|
+
- **Module docstrings** : expanded and standardised across `__init__.py`, `_utils/`, `color/`, `core/`, and `validation/` for consistent Sphinx rendering.
|
|
86
|
+
- **Context-manager examples** : all `plotstyle.use()` call sites in docs and examples updated to the `with plotstyle.use(...) as style:` form to ensure correct `rcParams` restoration.
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## [1.0.0] - 2026-04-12
|
|
91
|
+
|
|
92
|
+
First stable release: production-ready for scientific publication workflows.
|
|
93
|
+
|
|
94
|
+
### Changed
|
|
95
|
+
|
|
96
|
+
- **Stable release**: promoted from alpha (`0.1.0a2`) to stable (`1.0.0`); all public APIs are now considered stable and subject to semantic versioning guarantees.
|
|
97
|
+
- **PyPI classifiers** updated to `Development Status :: 5 - Production/Stable`.
|
|
98
|
+
- **Enhanced project metadata**: expanded keywords, classifiers, and project URLs in `pyproject.toml` for better PyPI discoverability.
|
|
99
|
+
- **README improvements**: added more badges (downloads, docs status, code style), expanded feature descriptions, and added star-history / citation section.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## [0.1.0a2] - 2026-04-12
|
|
104
|
+
|
|
105
|
+
Second alpha: full documentation suite, comprehensive test coverage, and hardened validation.
|
|
106
|
+
|
|
107
|
+
### Added
|
|
108
|
+
|
|
109
|
+
- **Full documentation suite**: Sphinx/MyST docs covering installation, quickstart, concepts, CLI reference, complete API reference for every public symbol, how-to guides (accessibility, export, migration, multi-panel, palettes, seaborn), FAQ, and a journal comparison index.
|
|
110
|
+
- **ReadTheDocs integration**: `.readthedocs.yaml` added; docs build automatically on every push; Furo theme configured with custom CSS.
|
|
111
|
+
- **Comprehensive test suite**: new test modules added: `test_style`, `test_palettes`, `test_accessibility`, `test_grayscale`, `test_rendering`, `test_gallery`, `test_print_size`, `test_cli`, `test_io`, `test_warnings`, `test_checks`, `test_report`; existing modules `test_figure`, `test_export`, `test_migrate`, `test_fonts`, and `test_registry` substantially expanded.
|
|
112
|
+
- **Export DPI validation**: `validation/checks/export.py` now emits a hard `FAIL` (instead of a `WARN`) when `savefig.dpi` is a numeric value that is provably below the journal's minimum DPI requirement.
|
|
113
|
+
- **Dependabot**: `.github/dependabot.yml` added for automated dependency-update pull requests.
|
|
114
|
+
- **`_format_panel_label()` range guard**: raises `ValueError` for panel indices ≥ 702 (beyond the two-character `"zz"` label); valid range is now explicitly documented as 0–701.
|
|
115
|
+
|
|
116
|
+
### Changed
|
|
117
|
+
|
|
118
|
+
- CI workflow extended: a `docs` build job added to `.github/workflows/ci.yml` - runs `sphinx-build -W -n` on every push and uploads the rendered HTML as an artifact.
|
|
119
|
+
- Module docstring quick-start example in `__init__.py` updated to use the context-manager form (`with plotstyle.use(...) as style:`) and `plotstyle.figure()` instead of `plotstyle.subplots()`.
|
|
120
|
+
- Docstrings across `migrate.py`, `report.py`, `style.py`, `figure.py`, `export.py`, and `accessibility.py` converted to NumPy-style attribute sections for consistent Sphinx rendering.
|
|
121
|
+
- `FORMAT_EXTENSIONS` constant in `export.py` annotated as a module-level Sphinx data comment (`#:`) so it appears correctly in the API docs.
|
|
122
|
+
- `pyproject.toml` documentation extras updated: `furo` pinned to `>=2025.12.19` and `myst-parser` bumped to `>=5.0,<6`.
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## [0.1.0a1] - 2026-04-07
|
|
127
|
+
|
|
128
|
+
First public alpha release.
|
|
129
|
+
|
|
130
|
+
### Added
|
|
131
|
+
|
|
132
|
+
- **Core style engine**: `plotstyle.use()` applies journal presets to Matplotlib's `rcParams`; works as a context manager with automatic restoration on exit.
|
|
133
|
+
- **Figure helpers**: `plotstyle.figure()` and `plotstyle.subplots()` create correctly-sized figures at the exact column width and max height specified by each journal.
|
|
134
|
+
- **Auto panel labels**: multi-panel figures receive **(a)**, **(b)**, **(c)**, … labels placed according to the journal's style rules.
|
|
135
|
+
- **Colorblind-safe palettes**: built-in Okabe–Ito, Tol Bright, Tol Vibrant, Tol Muted, and Safe Grayscale palettes (`plotstyle.palette()`).
|
|
136
|
+
- **Accessibility previews**: `plotstyle.preview_colorblind()` simulates deuteranopia, protanopia, and tritanopia; `plotstyle.preview_grayscale()` previews grayscale rendering.
|
|
137
|
+
- **Pre-submission validation**: `plotstyle.validate()` checks dimensions, typography, line weights, color accessibility, and export settings against a target journal spec.
|
|
138
|
+
- **Submission-ready export**: `plotstyle.savefig()` saves with font embedding and DPI enforcement; `plotstyle.export_submission()` batch-exports to all formats a journal accepts.
|
|
139
|
+
- **Spec diffing & migration**: `plotstyle.diff()` compares two journal specs; `plotstyle.migrate()` re-targets a figure from one journal to another.
|
|
140
|
+
- **Seaborn integration**: `patch_seaborn()` / `plotstyle_theme()` ensure PlotStyle `rcParams` survive `sns.set_theme()` calls.
|
|
141
|
+
- **Gallery & print-size preview**: `plotstyle.gallery()` generates sample figures; `plotstyle.preview_print_size()` opens an interactive scaled preview window.
|
|
142
|
+
- **Journal spec registry**: programmatic access via `plotstyle.registry`; specs are TOML files validated by immutable, typed dataclasses.
|
|
143
|
+
- **CLI**: `plotstyle list`, `plotstyle info`, `plotstyle diff`, `plotstyle fonts`, `plotstyle validate`, and `plotstyle export` sub-commands.
|
|
144
|
+
- **10 journal presets**: ACS, Cell, Elsevier, IEEE, Nature, PLOS, PRL, Science, Springer, Wiley.
|
|
145
|
+
- **10 working examples**: quick start, multi-panel, palettes, accessibility, validation, export, diff/migrate, gallery, registry, context manager patterns.
|
|
146
|
+
- **Dynamic versioning**: version derived from git tags via `hatch-vcs` and `importlib.metadata`.
|
|
147
|
+
- **CI/CD pipeline**: GitHub Actions workflows for lint, type-check, test matrix, and automated PyPI release via OIDC Trusted Publishing.
|
|
148
|
+
|
|
149
|
+
[Unreleased]: https://github.com/rahulkaushal04/plotstyle/compare/v1.2.1...HEAD
|
|
150
|
+
[1.2.1]: https://github.com/rahulkaushal04/plotstyle/compare/v1.2.0...v1.2.1
|
|
151
|
+
[1.2.0]: https://github.com/rahulkaushal04/plotstyle/compare/v1.1.0...v1.2.0
|
|
152
|
+
[1.1.0]: https://github.com/rahulkaushal04/plotstyle/compare/v1.0.0...v1.1.0
|
|
153
|
+
[1.0.0]: https://github.com/rahulkaushal04/plotstyle/compare/v0.1.0a2...v1.0.0
|
|
154
|
+
[0.1.0a2]: https://github.com/rahulkaushal04/plotstyle/compare/v0.1.0a1...v0.1.0a2
|
|
155
|
+
[0.1.0a1]: https://github.com/rahulkaushal04/plotstyle/releases/tag/v0.1.0a1
|