From 449a96e1ad937c716ed2b616758d6c560e098247 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 25 Sep 2025 13:07:54 +0000 Subject: [PATCH 1/4] Initial plan From c51e6d54ec6269d326004ef251866d6462cced1f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 25 Sep 2025 13:16:01 +0000 Subject: [PATCH 2/4] Fix Black formatting and CI dependencies issues Co-authored-by: Ritesh313 <36135489+Ritesh313@users.noreply.github.com> --- .github/workflows/ci.yml | 4 ++-- scripts/get_dataloaders.py | 4 +--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5f8ee83..02a5a1c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ jobs: strategy: matrix: os: [ubuntu-latest] - python-version: ['3.9', '3.10', '3.11', '3.12'] + python-version: ['3.10', '3.11', '3.12'] steps: - uses: actions/checkout@v4 @@ -27,7 +27,7 @@ jobs: - name: Install dependencies run: | - uv sync --all-extras + uv sync --extra dev --extra logging - name: Test imports run: | diff --git a/scripts/get_dataloaders.py b/scripts/get_dataloaders.py index 1e0a0c5..9c87aa4 100644 --- a/scripts/get_dataloaders.py +++ b/scripts/get_dataloaders.py @@ -37,9 +37,7 @@ from neon_tree_classification.core.dataset import NeonCrownDataset -DATASET_URL = ( - "https://www.dropbox.com/scl/fi/v49xi6d7wtetctqphebx0/neon_tree_classification_dataset.zip?rlkey=fb7bz6kd0ckip4u0qd5xdor58&st=dvjyd5ry&dl=1" -) +DATASET_URL = "https://www.dropbox.com/scl/fi/v49xi6d7wtetctqphebx0/neon_tree_classification_dataset.zip?rlkey=fb7bz6kd0ckip4u0qd5xdor58&st=dvjyd5ry&dl=1" def _dataset_exists(dataset_dir: Path) -> bool: From 6fd54a74755c00b1fa1113b0537319202e7af7d5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 25 Sep 2025 13:17:45 +0000 Subject: [PATCH 3/4] Add comprehensive CI with processing dependencies and update Python requirements Co-authored-by: Ritesh313 <36135489+Ritesh313@users.noreply.github.com> --- .github/workflows/ci.yml | 35 +++++++++++++++++++++++++++++++++++ pyproject.toml | 7 +++---- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 02a5a1c..1b5bc4e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -41,6 +41,41 @@ jobs: - name: Run tests run: uv run pytest tests/ -v --tb=short + test-with-processing: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.11' + + - name: Install R + run: | + sudo apt-get update + sudo apt-get install -y r-base r-base-dev + + - name: Install uv + run: pip install uv + + - name: Install all dependencies including processing + run: | + uv sync --all-extras + + - name: Test processing imports + run: | + uv run python -c " + import neon_tree_classification + from neon_tree_classification import NeonCrownDataset + print('Core imports successful!') + try: + import rpy2 + print('Processing dependencies (rpy2) available!') + except ImportError as e: + print(f'Processing dependencies not available: {e}') + " + lint: runs-on: ubuntu-latest steps: diff --git a/pyproject.toml b/pyproject.toml index 630bdc6..a6c658f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,7 +11,7 @@ authors = [ ] license = {text = "MIT"} readme = "README.md" -requires-python = ">=3.9" +requires-python = ">=3.10" keywords = ["neon", "tree-species", "classification", "remote-sensing", "hyperspectral", "lidar", "pytorch-lightning"] classifiers = [ "Development Status :: 4 - Beta", @@ -19,7 +19,6 @@ classifiers = [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", @@ -88,7 +87,7 @@ include = ["neon_tree_classification*"] [tool.black] line-length = 88 -target-version = ['py39', 'py310', 'py311', 'py312'] +target-version = ['py310', 'py311', 'py312'] include = '\.pyi?$' extend-exclude = ''' /( @@ -118,7 +117,7 @@ filterwarnings = [ ] [tool.ruff] -target-version = "py39" +target-version = "py310" line-length = 88 select = [ "E", # pycodestyle errors From aab92c81086b50bf73c4f05ce54d96426265218b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 25 Sep 2025 13:26:27 +0000 Subject: [PATCH 4/4] Fix rpy2 build issue by adding libtirpc-dev dependency Co-authored-by: Ritesh313 <36135489+Ritesh313@users.noreply.github.com> --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1b5bc4e..287bece 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -51,10 +51,10 @@ jobs: with: python-version: '3.11' - - name: Install R + - name: Install R and development dependencies run: | sudo apt-get update - sudo apt-get install -y r-base r-base-dev + sudo apt-get install -y r-base r-base-dev libtirpc-dev - name: Install uv run: pip install uv