Skip to content

Commit 7987334

Browse files
committed
release: 0.9.8.9999 (track R ggrepel 458aa50)
Prepare for PyPI publication as ggrepel-python. - Set __version__ = 0.9.8.9999 and __r_commit__ = 458aa50. - Align LICENSE header to GPL-3.0-or-later (matches upstream R DESCRIPTION). - Rewrite pyproject with full metadata, classifiers, URLs, sdist excludes. Drop the License classifier because the SPDX license expression already covers it and scikit-build-core rejects having both. - Rename cross-package deps to PyPI dist names (rgrid-python, gtable-python, scales-python, ggplot2-python). - Add Tutorials section to README; add PyPI install instructions. - Add .gitattributes for GitHub language statistics (Python-only).
1 parent e60f2c0 commit 7987334

5 files changed

Lines changed: 82 additions & 16 deletions

File tree

.gitattributes

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# GitHub language statistics: only count Python
2+
*.py linguist-detectable
3+
*.ipynb linguist-documentation
4+
*.html linguist-documentation
5+
*.css linguist-documentation
6+
*.js linguist-documentation
7+
*.json linguist-documentation
8+
*.yml linguist-documentation
9+
*.yaml linguist-documentation
10+
*.md linguist-documentation
11+
*.R linguist-documentation
12+
*.csv linguist-documentation
13+
site/** linguist-documentation
14+
docs/** linguist-documentation
15+
tutorials/** linguist-documentation

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
# Artistic-2.0
1+
# GPL-3.0-or-later
22

33
See DESCRIPTION from R package.

README.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
# ggrepel_py
22

3-
Python port of the R **ggrepel** package (version 0.9.8.9999+458aa50).
3+
Python port of the R **ggrepel** package (tracks R ggrepel 0.9.8.9999).
44

55
## Installation
66

77
```bash
8-
pip install -e ".[dev]"
8+
pip install ggrepel-python
99
```
1010

11-
## Quick Start
11+
## Tutorials
12+
13+
- [Getting Started](tutorials/ggrepel.ipynb)`geom_text_repel()` / `geom_label_repel()` basics, mirrors R's `vignettes/ggrepel.Rmd`
14+
- [Examples (vol. 1)](tutorials/examples_v1.ipynb) — additional scenarios from the R reference
15+
- [Examples (vol. 2)](tutorials/examples_v2.ipynb) — hiding labels, always-show overlaps, disabling point/panel-edge repulsion, nudging, segment styling, curves, arrows
1216

13-
```python
14-
import ggrepel
15-
```
1617

1718
## Documentation
1819

ggrepel_py/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
from ggrepel_py._options import get_option, set_option
2121

2222
__version__ = "0.9.8.9999"
23+
__r_commit__ = "458aa50"
2324

2425
__all__ = [
2526
"__version__",

pyproject.toml

Lines changed: 58 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,30 +7,79 @@ requires = [
77
build-backend = "scikit_build_core.build"
88

99
[project]
10-
name = "ggrepel_py"
10+
name = "ggrepel-python"
1111
version = "0.9.8.9999"
12-
description = "Python port of the R ggrepel package: non-overlapping text/label layout for ggplot2_py."
12+
description = "Python port of the R ggrepel package: non-overlapping text/label layout for ggplot2_py (tracks R ggrepel 0.9.8.9999)"
13+
readme = "README.md"
1314
requires-python = ">=3.10"
1415
license = "GPL-3.0-or-later"
15-
authors = [{name = "ggrepel_py contributors"}]
16+
license-files = ["LICENSE"]
17+
authors = [
18+
{ name = "Jeffery Liu", email = "jeffliu.lucky@gmail.com" },
19+
]
20+
keywords = [
21+
"ggrepel",
22+
"ggplot2",
23+
"label-layout",
24+
"text-repel",
25+
"R-port",
26+
"visualization",
27+
]
28+
classifiers = [
29+
"Development Status :: 4 - Beta",
30+
"Intended Audience :: Science/Research",
31+
"Intended Audience :: Developers",
32+
"Operating System :: POSIX :: Linux",
33+
"Operating System :: MacOS",
34+
"Programming Language :: Python :: 3",
35+
"Programming Language :: Python :: 3.10",
36+
"Programming Language :: Python :: 3.11",
37+
"Programming Language :: Python :: 3.12",
38+
"Programming Language :: C++",
39+
"Topic :: Scientific/Engineering :: Visualization",
40+
"Typing :: Typed",
41+
]
1642
dependencies = [
1743
"numpy>=1.24",
1844
"pandas>=2.0",
19-
"ggplot2_py",
20-
"scales_py",
21-
"grid_py",
22-
"gtable_py",
45+
"ggplot2-python>=4.0.2",
46+
"scales-python>=1.4.0",
47+
"rgrid-python>=4.5.3",
48+
"gtable-python>=0.3.6",
2349
]
2450

2551
[project.optional-dependencies]
26-
dev = ["pytest", "pytest-cov", "ruff"]
27-
docs = ["mkdocs", "mkdocstrings[python]", "mkdocs-material", "mkdocs-jupyter"]
52+
dev = ["pytest", "pytest-cov", "ruff", "build", "twine"]
53+
docs = [
54+
"mkdocs",
55+
"mkdocstrings[python]",
56+
"mkdocs-material",
57+
"mkdocs-jupyter",
58+
]
59+
60+
[project.urls]
61+
Homepage = "https://github.com/Bio-Babel/ggrepel-python"
62+
Repository = "https://github.com/Bio-Babel/ggrepel-python"
63+
Issues = "https://github.com/Bio-Babel/ggrepel-python/issues"
64+
Documentation = "https://github.com/Bio-Babel/ggrepel-python#readme"
2865

2966
[tool.scikit-build]
3067
cmake.version = ">=3.18"
3168
cmake.build-type = "Release"
3269
wheel.packages = ["ggrepel_py"]
3370
wheel.install-dir = "."
71+
sdist.exclude = [
72+
"tutorials/",
73+
"docs/",
74+
"tests/",
75+
"site/",
76+
"validation/",
77+
"mkdocs.yml",
78+
".github/",
79+
"*.egg-info/",
80+
"build/",
81+
"dist/",
82+
]
3483

3584
[tool.pytest.ini_options]
3685
testpaths = ["tests"]

0 commit comments

Comments
 (0)