gsppy 3.0.0__tar.gz → 3.0.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.
@@ -1,5 +1,122 @@
1
1
  # Changelog
2
2
 
3
+ ## [v3.0.0] - 2025-09-14
4
+
5
+ ### **New Features**
6
+
7
+ * **Acceleration Backends Introduced**:
8
+
9
+ * **Rust Backend**: Fast, parallelized subsequence matching using PyO3 + Rayon.
10
+ * **GPU Backend (Experimental)**: Singleton (`k=1`) support counting accelerated via CuPy.
11
+ * **Unified Backend Selection**:
12
+
13
+ * Backend can be selected via:
14
+
15
+ * Python API (`backend="auto" | "rust" | "gpu" | "python"`)
16
+ * CLI (`--backend`)
17
+ * Environment variable (`GSPPY_BACKEND`)
18
+ * Default: `auto` (tries Rust, falls back to Python).
19
+ * **Optional GPU Install**:
20
+
21
+ * Install with `pip install "gsppy[gpu]"` for CuPy support.
22
+
23
+ ### **CLI and API Enhancements**
24
+
25
+ * Updated CLI to support `--backend` option.
26
+ * Python API `GSP.search()` accepts `backend=` parameter for runtime selection.
27
+ * Environment variable fallback documented and supported.
28
+
29
+ ### **Documentation Updates**
30
+
31
+ * **README.md** updated:
32
+
33
+ * New “GPU Acceleration” section with installation/usage guidance.
34
+ * Backend selector documentation for CLI, API, and env var.
35
+ * Python version compatibility badge updated to 3.10+.
36
+ * **CONTRIBUTING.md**:
37
+
38
+ * Rewritten with new setup instructions using `uv` and `Makefile`.
39
+ * Added pre-commit and `tox-uv` instructions.
40
+
41
+ ### **Tooling and Developer Experience**
42
+
43
+ * **Migrated Tooling**:
44
+
45
+ * Moved from Rye to `uv` for dependency and environment management.
46
+ * Introduced `uv.lock` for reproducible, cross-version installations.
47
+ * **Makefile**:
48
+
49
+ * Common targets added (`make setup`, `make install`, `make lint`, etc.).
50
+ * One-liner for full dev bootstrap: `make setup && make install && make pre-commit-install`
51
+ * **Pre-commit hooks**:
52
+
53
+ * Added `.pre-commit-config.yaml` with `ruff`, `pyright`, and `pytest`.
54
+ * **DevContainer Support**:
55
+
56
+ * Added `devcontainer.json` for VS Code one-click environment provisioning.
57
+
58
+ ### **Testing and Quality**
59
+
60
+ * Test suite fully adapted to new tooling (`uv`, `tox-uv`).
61
+ * Static typing validated with both `mypy` and `pyright`.
62
+ * All 38 tests pass locally and in CI (Python 3.10–3.13).
63
+
64
+ ### **CI/CD and Infrastructure**
65
+
66
+ * GitHub Actions updated:
67
+
68
+ * All jobs use `uv` for setup and execution.
69
+ * `tox` now powered by `tox-uv`, auto-provisions interpreters.
70
+ * Updated testing matrix in `codecov.yml` to Python 3.13.
71
+ * Simplified CI jobs by consolidating environment setup steps.
72
+
73
+ ### **Packaging & Compatibility**
74
+
75
+ * Dropped Python 3.8 and 3.9 support:
76
+
77
+ * Project now requires Python **3.10+**.
78
+ * `pyproject.toml` updated:
79
+
80
+ * `requires-python = ">=3.10"`
81
+ * Optional `[gpu]` extra defined for CuPy support.
82
+ * Development dependencies and classifiers modernized.
83
+
84
+ ### **Code Improvements**
85
+
86
+ * Improved type hints and formatting in:
87
+
88
+ * `gsp.py`, `cli.py`, and `utils.py`
89
+ * Lint fixes and logging improvements.
90
+ * Code follows unified `ruff` formatting.
91
+
92
+ ### **Breaking Changes**
93
+
94
+ * 🔥 Dropped support for Python 3.8 and 3.9.
95
+
96
+ * Users must upgrade to Python 3.10 or newer.
97
+
98
+ ### **Migration Guide**
99
+
100
+ For contributors or CI environments:
101
+
102
+ ```bash
103
+ # Install uv (first time only)
104
+ curl -Ls https://astral.sh/uv/install.sh | bash
105
+
106
+ # Setup new local dev environment
107
+ make setup
108
+ make install
109
+ make pre-commit-install
110
+ ```
111
+
112
+ ### **Performance Notes**
113
+
114
+ * **GPU acceleration** boosts singleton (k=1) counting using CuPy’s `bincount`.
115
+ * **Rust backend** delivers robust multithreaded subsequence matching.
116
+ * Backend auto-dispatch adapts based on availability and selection.
117
+
118
+ ---
119
+
3
120
  ## [v2.3.0] - 2025-01-05
4
121
 
5
122
  ### **New Features**
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gsppy
3
- Version: 3.0.0
3
+ Version: 3.0.1
4
4
  Summary: GSP (Generalized Sequence Pattern) algorithm in Python
5
5
  Project-URL: Homepage, https://github.com/jacksonpradolima/gsp-py
6
6
  Author-email: Jackson Antonio do Prado Lima <jacksonpradolima@gmail.com>
@@ -42,20 +42,20 @@ Requires-Python: >=3.10
42
42
  Requires-Dist: click>=8.0.0
43
43
  Provides-Extra: dev
44
44
  Requires-Dist: cython==3.1.3; extra == 'dev'
45
- Requires-Dist: hatch==1.14.0; extra == 'dev'
45
+ Requires-Dist: hatch==1.14.1; extra == 'dev'
46
46
  Requires-Dist: hatchling==1.27.0; extra == 'dev'
47
47
  Requires-Dist: mypy==1.18.1; extra == 'dev'
48
- Requires-Dist: pylint==3.2.7; extra == 'dev'
48
+ Requires-Dist: pylint==3.3.8; extra == 'dev'
49
49
  Requires-Dist: pyright==1.1.405; extra == 'dev'
50
50
  Requires-Dist: pytest-benchmark==5.1.0; extra == 'dev'
51
- Requires-Dist: pytest-cov==5.0.0; extra == 'dev'
52
- Requires-Dist: pytest==8.3.4; extra == 'dev'
51
+ Requires-Dist: pytest-cov==7.0.0; extra == 'dev'
52
+ Requires-Dist: pytest==8.4.2; extra == 'dev'
53
53
  Requires-Dist: ruff==0.13.0; extra == 'dev'
54
54
  Requires-Dist: tox==4.30.2; extra == 'dev'
55
55
  Provides-Extra: gpu
56
56
  Requires-Dist: cupy<14,>=11; extra == 'gpu'
57
57
  Provides-Extra: rust
58
- Requires-Dist: maturin==1.6.0; extra == 'rust'
58
+ Requires-Dist: maturin==1.9.4; extra == 'rust'
59
59
  Description-Content-Type: text/markdown
60
60
 
61
61
  [![PyPI License](https://img.shields.io/pypi/l/gsppy.svg?style=flat-square)]()
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "gsppy"
7
- version = "3.0.0"
7
+ version = "3.0.1"
8
8
  description = "GSP (Generalized Sequence Pattern) algorithm in Python"
9
9
  keywords = ["GSP", "sequential patterns", "data analysis", "sequence mining"]
10
10
  license = { file = "LICENSE" }
@@ -40,19 +40,19 @@ gsppy = "gsppy.cli:main"
40
40
  [project.optional-dependencies]
41
41
  dev = [
42
42
  "cython==3.1.3",
43
- "hatch==1.14.0",
43
+ "hatch==1.14.1",
44
44
  "hatchling==1.27.0",
45
45
  "mypy==1.18.1",
46
- "pylint==3.2.7",
46
+ "pylint==3.3.8",
47
47
  "pyright==1.1.405",
48
- "pytest==8.3.4",
48
+ "pytest==8.4.2",
49
49
  "pytest-benchmark==5.1.0",
50
- "pytest-cov==5.0.0",
50
+ "pytest-cov==7.0.0",
51
51
  "ruff==0.13.0",
52
52
  "tox==4.30.2",
53
53
  ]
54
54
  rust = [
55
- "maturin==1.6.0"
55
+ "maturin==1.9.4"
56
56
  ]
57
57
  gpu = [
58
58
  "cupy>=11,<14"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes