charite-plot 0.1.0__tar.gz → 0.1.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.
Files changed (33) hide show
  1. {charite_plot-0.1.0 → charite_plot-0.1.1}/.gitignore +1 -0
  2. charite_plot-0.1.1/CHANGELOG.md +27 -0
  3. {charite_plot-0.1.0 → charite_plot-0.1.1}/PKG-INFO +16 -12
  4. {charite_plot-0.1.0 → charite_plot-0.1.1}/README.md +4 -6
  5. {charite_plot-0.1.0 → charite_plot-0.1.1}/charite_plot/__init__.py +1 -1
  6. {charite_plot-0.1.0 → charite_plot-0.1.1}/charite_plot/altair_themes.py +1 -1
  7. {charite_plot-0.1.0 → charite_plot-0.1.1}/charite_plot/fonts.py +2 -2
  8. {charite_plot-0.1.0 → charite_plot-0.1.1}/charite_plot/mpl_themes.py +1 -1
  9. charite_plot-0.1.1/charite_plot/py.typed +0 -0
  10. {charite_plot-0.1.0 → charite_plot-0.1.1}/docs/altair.md +1 -1
  11. {charite_plot-0.1.0 → charite_plot-0.1.1}/docs/index.md +1 -1
  12. {charite_plot-0.1.0 → charite_plot-0.1.1}/docs/installation.md +3 -2
  13. {charite_plot-0.1.0 → charite_plot-0.1.1}/docs/matplotlib.md +1 -1
  14. {charite_plot-0.1.0 → charite_plot-0.1.1}/mkdocs.yml +1 -1
  15. {charite_plot-0.1.0 → charite_plot-0.1.1}/pyproject.toml +11 -5
  16. {charite_plot-0.1.0 → charite_plot-0.1.1}/.github/workflows/ci.yml +0 -0
  17. {charite_plot-0.1.0 → charite_plot-0.1.1}/LICENSE.md +0 -0
  18. {charite_plot-0.1.0 → charite_plot-0.1.1}/charite_plot/colors.py +0 -0
  19. {charite_plot-0.1.0 → charite_plot-0.1.1}/charite_plot/palettes.py +0 -0
  20. {charite_plot-0.1.0 → charite_plot-0.1.1}/docs/api/altair_themes.md +0 -0
  21. {charite_plot-0.1.0 → charite_plot-0.1.1}/docs/api/colors.md +0 -0
  22. {charite_plot-0.1.0 → charite_plot-0.1.1}/docs/api/fonts.md +0 -0
  23. {charite_plot-0.1.0 → charite_plot-0.1.1}/docs/api/mpl_themes.md +0 -0
  24. {charite_plot-0.1.0 → charite_plot-0.1.1}/docs/api/palettes.md +0 -0
  25. {charite_plot-0.1.0 → charite_plot-0.1.1}/docs/assets/palette_preview.png +0 -0
  26. {charite_plot-0.1.0 → charite_plot-0.1.1}/docs/assets/theme_example.png +0 -0
  27. {charite_plot-0.1.0 → charite_plot-0.1.1}/docs/colors.md +0 -0
  28. {charite_plot-0.1.0 → charite_plot-0.1.1}/docs/palettes.md +0 -0
  29. {charite_plot-0.1.0 → charite_plot-0.1.1}/docs/stylesheets/extra.css +0 -0
  30. {charite_plot-0.1.0 → charite_plot-0.1.1}/examples/altair_showcase.py +0 -0
  31. {charite_plot-0.1.0 → charite_plot-0.1.1}/examples/mpl_showcase.py +0 -0
  32. {charite_plot-0.1.0 → charite_plot-0.1.1}/examples/palette_preview.py +0 -0
  33. {charite_plot-0.1.0 → charite_plot-0.1.1}/examples/poly_showcase.py +0 -0
@@ -1,3 +1,4 @@
1
+ dist
1
2
  examples/**
2
3
  !examples/*.py
3
4
  site
@@ -0,0 +1,27 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project 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 [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [0.1.1] - 2026-06-13
9
+
10
+ ### Fixed
11
+
12
+ - README images now use absolute raw GitHub URLs so they render correctly on PyPI.
13
+ - Corrected PyPI project URLs (homepage, docs, repository, bug tracker).
14
+
15
+ ## [0.1.0] - 2026-06-12
16
+
17
+ ### Added
18
+
19
+ - Initial release.
20
+ - Matplotlib theme (`mpl_themes.theme_charite`) with `apply_theme()` and `using()` context manager.
21
+ - Altair/Vega-Lite theme (`altair_themes.theme_charite`) with `register()` and `enable()`.
22
+ - 10 built-in colour palettes: `primary`, `secondary`, `mono`, `light`, `versus`, `nineties`, `brickhouse`, `sunrise`, `berryseason`, `goldelse`.
23
+ - 27 Charité corporate identity colour constants in `colors.py`.
24
+ - `make_palette()` for subsampling and interpolating palettes.
25
+ - Font fallback chain: Charité Text Office → Charit? Text Office → Calibri → DejaVu Sans → sans-serif.
26
+ - MkDocs Material documentation with API reference.
27
+ - MIT License.
@@ -1,12 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: charite-plot
3
- Version: 0.1.0
3
+ Version: 0.1.1
4
4
  Summary: Matplotlib and Altair themes for Charité – Universitätsmedizin Berlin
5
- Project-URL: Homepage, https://github.com/pedramramezani/charite-plot
6
- Project-URL: Documentation, https://pedramramezani.github.io/charite-plot
7
- Project-URL: Repository, https://github.com/pedramramezani/charite-plot
8
- Project-URL: Bug Tracker, https://github.com/pedramramezani/charite-plot/issues
9
- Author-email: Pedram Ramezani <pedramramezani.pr@gmail.com>
5
+ Project-URL: Homepage, https://github.com/pedramezani/charite-plot
6
+ Project-URL: Documentation, https://pedramezani.github.io/charite-plot
7
+ Project-URL: Repository, https://github.com/pedramezani/charite-plot
8
+ Project-URL: Bug Tracker, https://github.com/pedramezani/charite-plot/issues
9
+ Project-URL: Changelog, https://github.com/pedramezani/charite-plot/blob/main/CHANGELOG.md
10
+ Author-email: Pedram Ramezani <me@pedramramezani.de>
10
11
  License: # MIT License
11
12
 
12
13
  Copyright 2026 Pedram Ramezani
@@ -19,14 +20,19 @@ License: # MIT License
19
20
  License-File: LICENSE.md
20
21
  Keywords: altair,charite,matplotlib,theme,visualization
21
22
  Classifier: Development Status :: 3 - Alpha
23
+ Classifier: Framework :: Matplotlib
22
24
  Classifier: Intended Audience :: Science/Research
23
25
  Classifier: License :: OSI Approved :: MIT License
26
+ Classifier: Operating System :: OS Independent
24
27
  Classifier: Programming Language :: Python :: 3
25
28
  Classifier: Programming Language :: Python :: 3.9
26
29
  Classifier: Programming Language :: Python :: 3.10
27
30
  Classifier: Programming Language :: Python :: 3.11
28
31
  Classifier: Programming Language :: Python :: 3.12
32
+ Classifier: Programming Language :: Python :: 3.13
33
+ Classifier: Programming Language :: Python :: 3.14
29
34
  Classifier: Topic :: Scientific/Engineering :: Visualization
35
+ Classifier: Typing :: Typed
30
36
  Requires-Python: >=3.9
31
37
  Requires-Dist: cycler
32
38
  Requires-Dist: matplotlib>=3.5
@@ -57,13 +63,13 @@ pip install "charite-plot[altair]" # with Altair support
57
63
  Visualize your data with `theme_charite()` to match the Charité corporate style.
58
64
 
59
65
  <p align="center">
60
- <img src="docs/assets/theme_example.png" width="80%"/>
66
+ <img src="https://raw.githubusercontent.com/pedramezani/charite-plot/main/docs/assets/theme_example.png" width="80%"/>
61
67
  </p>
62
68
 
63
69
  Preview the available colour palettes.
64
70
 
65
71
  <p align="center">
66
- <img src="docs/assets/palette_preview.png" width="80%"/>
72
+ <img src="https://raw.githubusercontent.com/pedramezani/charite-plot/main/docs/assets/palette_preview.png" width="80%"/>
67
73
  </p>
68
74
 
69
75
  ## Quick start
@@ -126,11 +132,9 @@ enable(palette="berryseason", font_size=13)
126
132
 
127
133
  The fallback chain follows the official Charité brand guidelines:
128
134
 
129
- **Charité Text Office → Charit? Text Office → Calibri → DejaVu Sans**
135
+ **Charité Text Office → Charit? Text Office → Calibri → DejaVu Sans → sans-serif**
130
136
 
131
- > **Ersatzschrift „Calibri"** Falls die Hausschrift aus technischen Gründen nicht verwendet werden kann, ersetzt die Systemschriftart „Calibri" die Hausschrift. Dies ist beispielsweise bei der E-Mail-Korrespondenz der Fall.
132
-
133
- `DejaVu Sans` ships with Matplotlib and is always available as the final fallback. To override the preferred font:
137
+ `DejaVu Sans` ships with Matplotlib and is always available as the penultimate fallback; `sans-serif` lets the browser or system choose if nothing else matches (important for Altair/Vega-Lite). To override the preferred font:
134
138
 
135
139
  ```python
136
140
  apply_theme(theme_charite(font="Arial"))
@@ -14,13 +14,13 @@ pip install "charite-plot[altair]" # with Altair support
14
14
  Visualize your data with `theme_charite()` to match the Charité corporate style.
15
15
 
16
16
  <p align="center">
17
- <img src="docs/assets/theme_example.png" width="80%"/>
17
+ <img src="https://raw.githubusercontent.com/pedramezani/charite-plot/main/docs/assets/theme_example.png" width="80%"/>
18
18
  </p>
19
19
 
20
20
  Preview the available colour palettes.
21
21
 
22
22
  <p align="center">
23
- <img src="docs/assets/palette_preview.png" width="80%"/>
23
+ <img src="https://raw.githubusercontent.com/pedramezani/charite-plot/main/docs/assets/palette_preview.png" width="80%"/>
24
24
  </p>
25
25
 
26
26
  ## Quick start
@@ -83,11 +83,9 @@ enable(palette="berryseason", font_size=13)
83
83
 
84
84
  The fallback chain follows the official Charité brand guidelines:
85
85
 
86
- **Charité Text Office → Charit? Text Office → Calibri → DejaVu Sans**
86
+ **Charité Text Office → Charit? Text Office → Calibri → DejaVu Sans → sans-serif**
87
87
 
88
- > **Ersatzschrift „Calibri"** Falls die Hausschrift aus technischen Gründen nicht verwendet werden kann, ersetzt die Systemschriftart „Calibri" die Hausschrift. Dies ist beispielsweise bei der E-Mail-Korrespondenz der Fall.
89
-
90
- `DejaVu Sans` ships with Matplotlib and is always available as the final fallback. To override the preferred font:
88
+ `DejaVu Sans` ships with Matplotlib and is always available as the penultimate fallback; `sans-serif` lets the browser or system choose if nothing else matches (important for Altair/Vega-Lite). To override the preferred font:
91
89
 
92
90
  ```python
93
91
  apply_theme(theme_charite(font="Arial"))
@@ -26,5 +26,5 @@ from .palettes import PALETTES, make_palette # noqa: F401
26
26
  from . import mpl_themes # noqa: F401
27
27
  from . import altair_themes # noqa: F401
28
28
 
29
- __version__ = "0.1.0"
29
+ __version__ = "0.1.1"
30
30
  __author__ = "Pedram Ramezani"
@@ -41,7 +41,7 @@ def theme_charite(
41
41
  Parameters
42
42
  ----------
43
43
  font:
44
- Preferred font. Falls back through Charité Text Office → Charit? Text Office → Calibri → DejaVu Sans.
44
+ Preferred font. Falls back through Charité Text Office → Charit? Text Office → Calibri → DejaVu Sans → sans-serif.
45
45
  font_size:
46
46
  Base font size in pixels.
47
47
  grid:
@@ -2,7 +2,7 @@
2
2
 
3
3
  import warnings
4
4
 
5
- FONT_STACK = ["Charité Text Office", "Charit? Text Office", "Calibri", "DejaVu Sans"]
5
+ FONT_STACK = ["Charité Text Office", "Charit? Text Office", "Calibri", "DejaVu Sans", "sans-serif"]
6
6
 
7
7
 
8
8
  def _available_fonts() -> set[str]:
@@ -19,7 +19,7 @@ def check_font(font: str) -> bool:
19
19
  return True
20
20
  warnings.warn(
21
21
  f"Font '{font}' is not installed on this system. "
22
- "Using the fallback chain: Charité Text Office → Charit? Text Office → Calibri → DejaVu Sans.",
22
+ "Using the fallback chain: Charité Text Office → Charit? Text Office → Calibri → DejaVu Sans → sans-serif.",
23
23
  UserWarning,
24
24
  stacklevel=3,
25
25
  )
@@ -22,7 +22,7 @@ def theme_charite(
22
22
  ----------
23
23
  font:
24
24
  Preferred font family. Falls back through Charité Text Office →
25
- Charit? Text Office → Calibri → DejaVu Sans if the requested font is not installed.
25
+ Charit? Text Office → Calibri → DejaVu Sans → sans-serif if the requested font is not installed.
26
26
  font_size:
27
27
  Base font size in points. Defaults to 10 for screen; use 8 for print.
28
28
  thickness:
File without changes
@@ -42,7 +42,7 @@ alt.theme.enable("charite") # enable later
42
42
 
43
43
  | Parameter | Type | Default | Description |
44
44
  |-----------|------|---------|-------------|
45
- | `font` | `str | None` | `None` | Preferred font. CSS fallback: Charité Text Office → Charit? Text Office → Calibri → DejaVu Sans. |
45
+ | `font` | `str | None` | `None` | Preferred font. CSS fallback: Charité Text Office → Charit? Text Office → Calibri → DejaVu Sans → sans-serif. |
46
46
  | `font_size` | `int` | `12` | Base font size in pixels. |
47
47
  | `grid` | `bool` | `False` | Show axis grid lines. |
48
48
  | `palette` | `str | list[str]` | `"primary"` | Named palette or list of hex strings for the categorical color range. |
@@ -59,4 +59,4 @@ chart = alt.Chart(df).mark_bar().encode(...)
59
59
 
60
60
  - **Single source of truth** — colors are defined once in `colors.py` and imported by every other module.
61
61
  - **No side effects on import** — theme functions return plain dicts; you opt in with `apply_theme()`, `using()`, or `enable()`.
62
- - **Font fallback** — if Charité Text Office is not installed, the theme cascades to Charit? Text Office, then Calibri and DejaVu Sans automatically, following the official brand guidelines.
62
+ - **Font fallback** — if Charité Text Office is not installed, the theme cascades to Charit? Text Office, then Calibri, DejaVu Sans, and finally sans-serif automatically, following the official brand guidelines.
@@ -27,9 +27,10 @@ pip install "charite-plot[docs]" # mkdocs-material + mkdocstrings
27
27
 
28
28
  charite-plot works out of the box with any system. The font fallback chain is:
29
29
 
30
- **Charité Text Office → Charit? Text Office → Calibri → DejaVu Sans**
30
+ **Charité Text Office → Charit? Text Office → Calibri → DejaVu Sans → sans-serif**
31
31
 
32
- - `DejaVu Sans` ships with Matplotlib and is always available as the final fallback.
32
+ - `sans-serif` is the final fallback, letting the browser or system choose a suitable font — this is particularly important for Altair/Vega-Lite charts.
33
+ - `DejaVu Sans` ships with Matplotlib and is always available as the penultimate fallback.
33
34
  - `Calibri` is pre-installed on Windows and macOS (via Microsoft Office) and serves as the official replacement font, as defined in the Charité brand guidelines.
34
35
  - `Charité Text Office` must be installed manually — it is available to Charité employees via the Markenportal. On some systems the `é` is not decoded correctly and the font is registered as `Charit? Text Office`; both names are tried automatically.
35
36
 
@@ -52,7 +52,7 @@ mpl.rcParams.update(params)
52
52
 
53
53
  | Parameter | Type | Default | Description |
54
54
  |-----------|------|---------|-------------|
55
- | `font` | `str | None` | `None` | Preferred font. Falls back through Charité Text Office → Charit? Text Office → Calibri → DejaVu Sans. |
55
+ | `font` | `str | None` | `None` | Preferred font. Falls back through Charité Text Office → Charit? Text Office → Calibri → DejaVu Sans → sans-serif. |
56
56
  | `font_size` | `float` | `10` | Base font size in points. Use `8` for print/journal figures. |
57
57
  | `thickness` | `float` | `0.5` | Axis line and tick width. |
58
58
  | `grid` | `bool` | `False` | Show major grid lines. |
@@ -1,7 +1,7 @@
1
1
  site_name: charite-plot
2
2
  site_description: Matplotlib and Altair themes for Charité – Universitätsmedizin Berlin
3
3
  site_author: Pedram Ramezani
4
- repo_url: https://github.com/pedramramezani/charite-plot
4
+ repo_url: https://github.com/pedramezani/charite-plot
5
5
  repo_name: charite-plot
6
6
 
7
7
  theme:
@@ -8,7 +8,7 @@ dynamic = ["version"]
8
8
  description = "Matplotlib and Altair themes for Charité – Universitätsmedizin Berlin"
9
9
  readme = "README.md"
10
10
  authors = [
11
- { name = "Pedram Ramezani", email = "pedramramezani.pr@gmail.com" },
11
+ { name = "Pedram Ramezani", email = "me@pedramramezani.de" },
12
12
  ]
13
13
  license = { file = "LICENSE.md" }
14
14
  requires-python = ">=3.9"
@@ -17,12 +17,17 @@ classifiers = [
17
17
  "Development Status :: 3 - Alpha",
18
18
  "Intended Audience :: Science/Research",
19
19
  "License :: OSI Approved :: MIT License",
20
+ "Operating System :: OS Independent",
20
21
  "Programming Language :: Python :: 3",
21
22
  "Programming Language :: Python :: 3.9",
22
23
  "Programming Language :: Python :: 3.10",
23
24
  "Programming Language :: Python :: 3.11",
24
25
  "Programming Language :: Python :: 3.12",
26
+ "Programming Language :: Python :: 3.13",
27
+ "Programming Language :: Python :: 3.14",
25
28
  "Topic :: Scientific/Engineering :: Visualization",
29
+ "Framework :: Matplotlib",
30
+ "Typing :: Typed",
26
31
  ]
27
32
  dependencies = [
28
33
  "matplotlib>=3.5",
@@ -30,10 +35,11 @@ dependencies = [
30
35
  ]
31
36
 
32
37
  [project.urls]
33
- Homepage = "https://github.com/pedramramezani/charite-plot"
34
- Documentation = "https://pedramramezani.github.io/charite-plot"
35
- Repository = "https://github.com/pedramramezani/charite-plot"
36
- "Bug Tracker" = "https://github.com/pedramramezani/charite-plot/issues"
38
+ Homepage = "https://github.com/pedramezani/charite-plot"
39
+ Documentation = "https://pedramezani.github.io/charite-plot"
40
+ Repository = "https://github.com/pedramezani/charite-plot"
41
+ "Bug Tracker" = "https://github.com/pedramezani/charite-plot/issues"
42
+ Changelog = "https://github.com/pedramezani/charite-plot/blob/main/CHANGELOG.md"
37
43
 
38
44
  [project.optional-dependencies]
39
45
  altair = ["altair>=5.5", "vega-datasets"]
File without changes