From 62869ecea16b9bdaa3d907fa63b0ce571458699a Mon Sep 17 00:00:00 2001 From: Cahit Acar Date: Sat, 30 Aug 2025 00:06:58 +0200 Subject: [PATCH 1/2] Python compatibility upgrade to python 3.13 --- .github/workflows/python-app.yml | 2 +- CHANGELOG.md | 6 +++++- README.md | 4 ++-- docs/installation.md | 4 ++-- pyproject.toml | 5 +++-- src/merrypopins/__init__.py | 2 +- 6 files changed, 14 insertions(+), 9 deletions(-) diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml index f8e1bfd..3341e25 100644 --- a/.github/workflows/python-app.yml +++ b/.github/workflows/python-app.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.10", "3.11", "3.12"] + python-version: ["3.10", "3.11", "3.12", "3.13"] steps: - name: 🛎️ Checkout code diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b17437..f7e0d15 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -43,4 +43,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) ### Fixed - **Streamlit Cloud App**: - Fixed issue with PNG export not working in the latest version of Kaleido, new major version of Kaleido now requires Chromium to be installed. So we have downgraded Kaleido to 0.2.1. We have tried to call `kaleido.get_chrome_sync()` to ensure it works in Streamlit Cloud and other environments, but it is not - possible to call it in the Streamlit Cloud environment, the Streamlit Cloud environment does not allow changing system environment variables like `KALEIDO_CACHE_DIR` or calling `kaleido.get_chrome_sync()`. So we have removed the call to `kaleido.get_chrome_sync()` and set the default format, width, height, and scale for PNG export using `pio.kaleido.scope`. For this we also had to update the `plotly` dependency to `<6.0.0` to ensure compatibility with the `0.2.1` version of `kaleido`. \ No newline at end of file + possible to call it in the Streamlit Cloud environment, the Streamlit Cloud environment does not allow changing system environment variables like `KALEIDO_CACHE_DIR` or calling `kaleido.get_chrome_sync()`. So we have removed the call to `kaleido.get_chrome_sync()` and set the default format, width, height, and scale for PNG export using `pio.kaleido.scope`. For this we also had to update the `plotly` dependency to `<6.0.0` to ensure compatibility with the `0.2.1` version of `kaleido`. + +### Changed +- **Python Compatibility**: + - As the latest TensorFlow is now compatible with Python 3.13, updated Python compatibility in `pyproject.toml` and classifiers to include Python 3.13. \ No newline at end of file diff --git a/README.md b/README.md index 100ccad..0ec00f6 100644 --- a/README.md +++ b/README.md @@ -109,7 +109,7 @@ merrypopins supports Python 3.10+ and depends on: These are installed automatically via `pip`. -All core and development dependencies are tested with Python 3.10 through 3.12. +All core and development dependencies are tested with Python 3.10 through 3.13. --- ## Quickstart @@ -428,7 +428,7 @@ Notes: pytest --cov=merrypopins --cov-report=term-missing ``` This command runs all tests in the `tests/` directory and generates a coverage report showing which lines of code were executed during the tests. - Tests and linting are automatically run on each pull request via GitHub Actions. The CI uses Python 3.10–3.12 and runs pre-commit, pytest, and coverage checks. + Tests and linting are automatically run on each pull request via GitHub Actions. The CI uses Python 3.10–3.13 and runs pre-commit, pytest, and coverage checks. 3. Generate HTML coverage report: ```bash diff --git a/docs/installation.md b/docs/installation.md index 172850e..4cd5a81 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -23,7 +23,7 @@ merrypopins supports Python 3.10+ and depends on: These are installed automatically via `pip`. -All core and development dependencies are tested with Python 3.10 through 3.12. +All core and development dependencies are tested with Python 3.10 through 3.13. # Development & Testing @@ -91,7 +91,7 @@ Notes: pytest --cov=merrypopins --cov-report=term-missing ``` This command runs all tests in the `tests/` directory and generates a coverage report showing which lines of code were executed during the tests. - Tests and linting are automatically run on each pull request via GitHub Actions. The CI uses Python 3.10–3.12 and runs pre-commit, pytest, and coverage checks. + Tests and linting are automatically run on each pull request via GitHub Actions. The CI uses Python 3.10–3.13 and runs pre-commit, pytest, and coverage checks. 3. Generate HTML coverage report: ```bash diff --git a/pyproject.toml b/pyproject.toml index bc9c55d..db7435c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,10 +4,10 @@ build-backend = "setuptools.build_meta" [project] name = "merrypopins" -version = "1.0.3" +version = "1.0.4" description = "Merrypopins: Automated pop-in detection for nano-indentation experiments tooling: load_datasets, preprocess, locate, statistics & make_dataset" readme = "README.md" -requires-python = ">=3.10,<3.13" +requires-python = ">=3.10,<3.14" license = { text = "MIT" } authors = [ { name = "Cahit Acar", email = "c.acar.business@gmail.com" }, @@ -21,6 +21,7 @@ classifiers = [ "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", "Operating System :: OS Independent", "Topic :: Scientific/Engineering :: Physics" ] diff --git a/src/merrypopins/__init__.py b/src/merrypopins/__init__.py index 26cf66c..d86796e 100644 --- a/src/merrypopins/__init__.py +++ b/src/merrypopins/__init__.py @@ -11,7 +11,7 @@ - `make_dataset`: Construct enriched datasets by running the full pipeline and exporting annotated results and visualizations. """ -__version__ = "1.0.3" +__version__ = "1.0.4" # Expose submodules at the package level from . import load_datasets, preprocess, locate, statistics, make_dataset From 08225ecf8c88732e1b6fa4ec6953b583cb5f76cd Mon Sep 17 00:00:00 2001 From: Cahit Acar Date: Sat, 30 Aug 2025 00:09:52 +0200 Subject: [PATCH 2/2] fix changelog --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f7e0d15..4dc7ace 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -39,12 +39,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) - **Streamlit App**: - Updated `kaleido` dependency to latest version. -## [1.0.3] – 2025-07-15  :bug: **“Patch Release”** +## [1.0.3] – 2025-07-11  :bug: **“Patch Release”** ### Fixed - **Streamlit Cloud App**: - Fixed issue with PNG export not working in the latest version of Kaleido, new major version of Kaleido now requires Chromium to be installed. So we have downgraded Kaleido to 0.2.1. We have tried to call `kaleido.get_chrome_sync()` to ensure it works in Streamlit Cloud and other environments, but it is not possible to call it in the Streamlit Cloud environment, the Streamlit Cloud environment does not allow changing system environment variables like `KALEIDO_CACHE_DIR` or calling `kaleido.get_chrome_sync()`. So we have removed the call to `kaleido.get_chrome_sync()` and set the default format, width, height, and scale for PNG export using `pio.kaleido.scope`. For this we also had to update the `plotly` dependency to `<6.0.0` to ensure compatibility with the `0.2.1` version of `kaleido`. +## [1.0.4] - 2025-08-30  :tada: **“Support for Python 3.13”** ### Changed - **Python Compatibility**: - As the latest TensorFlow is now compatible with Python 3.13, updated Python compatibility in `pyproject.toml` and classifiers to include Python 3.13. \ No newline at end of file