Skip to content

Commit 410171c

Browse files
authored
Merge pull request #85 from opera-adt/pixi
Utilize Pixi for dependecy and virtual env management
2 parents fcece6c + 835c6c1 commit 410171c

8 files changed

Lines changed: 11784 additions & 33 deletions

File tree

.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# SCM syntax highlighting & preventing 3-way merges
2+
pixi.lock merge=binary linguist-language=YAML linguist-generated=true -diff

.github/workflows/nb_tests.yml

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,6 @@ on:
1414
jobs:
1515
pytest:
1616
runs-on: ubuntu-latest
17-
strategy:
18-
fail-fast: false
19-
matrix:
20-
python-version: ['3.12']
2117

2218
steps:
2319
- uses: actions/checkout@v6
@@ -28,19 +24,13 @@ jobs:
2824
username: ${{ secrets.EARTHDATA_USERNAME }}
2925
password: ${{ secrets.EARTHDATA_PASSWORD }}
3026

31-
- uses: mamba-org/setup-micromamba@v3
27+
- uses: prefix-dev/setup-pixi@v0.8.1
3228
with:
33-
environment-name: dist-s1-enumerator
34-
environment-file: environment.yml
35-
extra-specs: |
36-
python=${{ matrix.python-version }}
37-
create-args: |
38-
papermill
29+
pixi-version: latest
3930

40-
- name: Pytest Notebook tests in conda environment
41-
shell: bash -l {0}
31+
- name: Pytest Notebook tests
4232
run: |
43-
mamba install papermill --yes
44-
python -m pip install --no-deps .
45-
python -m ipykernel install --user --name dist-s1-enumerator
46-
pytest . -m 'notebooks'
33+
pixi run pip install --no-deps .
34+
pixi run pip install papermill
35+
pixi run python -m ipykernel install --user --name dist-s1-enumerator
36+
pixi run pytest . -m 'notebooks'

.github/workflows/tests.yml

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Unit and Small Integration Tests
1+
name: Unit and Small Integration Tests
22

33
on:
44
workflow_dispatch:
@@ -14,10 +14,6 @@ on:
1414
jobs:
1515
pytest:
1616
runs-on: ubuntu-latest
17-
strategy:
18-
matrix:
19-
python-version: ["3.12", "3.13"]
20-
fail-fast: false
2117

2218
steps:
2319
- uses: actions/checkout@v6
@@ -28,16 +24,11 @@ jobs:
2824
username: ${{ secrets.EARTHDATA_USERNAME }}
2925
password: ${{ secrets.EARTHDATA_PASSWORD }}
3026

31-
- uses: mamba-org/setup-micromamba@v3
27+
- uses: prefix-dev/setup-pixi@v0.8.1
3228
with:
33-
environment-name: dist-s1-enumerator
34-
environment-file: environment.yml
35-
create-args: >-
36-
python=${{ matrix.python-version }}
29+
pixi-version: latest
3730

38-
39-
- name: Pytest in conda environment
40-
shell: bash -l {0}
31+
- name: Pytest
4132
run: |
42-
python -m pip install --no-deps .
43-
pytest . -m 'not notebooks'
33+
pixi run python -m pip install --no-deps .
34+
pixi run pytest . -m 'not notebooks'

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,3 +99,6 @@ notebooks/*.parquet
9999
# out tests
100100
tests/tmp/
101101
tests/out/
102+
# pixi environments
103+
.pixi/*
104+
!.pixi/config.toml

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [PEP 440](https://www.python.org/dev/peps/pep-0440/)
77
and uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
88

9+
## [1.0.14] - 2026-01-27
10+
11+
### Changed
12+
* Use pixi for dependency and virtual environment management.
13+
914
## [1.0.13] - 2026-01-27
1015

1116
### Fixed

README.md

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ We use "enumeration" to describe the "curation of required DIST-S1 inputs."
1515

1616
## Installation/Setup
1717

18-
We recommend managing dependencies and virutal environments using [mamba/conda](https://mamba.readthedocs.io/en/latest/user_guide/installation.html).
18+
### Mamba
19+
20+
We used mamba to manage virutal environments and dependencies: [mamba/conda](https://mamba.readthedocs.io/en/latest/user_guide/installation.html). However, `pixi` is the more modern approach and will be integrated (see below).
1921

2022
```bash
2123
mamba update -f environment.yml # creates a new environment dist-s1-enumerator
@@ -24,6 +26,23 @@ pip install dist-s1-enumerator
2426
python -m ipykernel install --user --name dist-s1-enumerator
2527
```
2628

29+
### Pixi
30+
31+
Install [pixi](https://pixi.sh/latest/#installation), then:
32+
33+
```bash
34+
git clone https://github.com/opera-adt/dist-s1-enumerator.git
35+
cd dist-s1-enumerator
36+
pixi install
37+
pixi run python -c "import dist_s1_enumerator"
38+
```
39+
40+
For JupyterLab:
41+
42+
```bash
43+
pixi run jupyter lab
44+
```
45+
2746
### Downloading data
2847

2948
For searching through the metadata of OPERA RTC-S1, you will not need any earthdata credentials.

pixi.lock

Lines changed: 11704 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pixi.toml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
[workspace]
2+
authors = ["Charlie Marshak <charlie.z.marshak@jpl.nasa.gov>"]
3+
channels = ["conda-forge"]
4+
name = "dist-s1-enumerator"
5+
platforms = ["osx-arm64", "linux-64", "osx-64"]
6+
version = "0.1.0"
7+
8+
[tasks]
9+
10+
[dependencies]
11+
python = ">=3.14.6,<4"
12+
pip = ">=26.1.2,<27"
13+
asf_search = ">=12.2.2,<13"
14+
tenacity = ">=8.2.2,<9"
15+
contextily = ">=1.7.0,<2"
16+
flake8 = ">=7.3.0,<8"
17+
flake8-blind-except = ">=0.2.1,<0.3"
18+
flake8-builtins = ">=3.1.0,<4"
19+
flake8-import-order = ">=0.19.2,<0.20"
20+
geopandas = ">=1.1.3,<2"
21+
ipykernel = ">=7.3.0,<8"
22+
isort = ">=8.0.1,<9"
23+
jupyterlab = ">=4.5.8,<5"
24+
matplotlib = ">=3.10.9,<4"
25+
numpy = ">=2.4.6,<3"
26+
pandas = ">=3.0.3,<4"
27+
pandera = ">=0.31.1,<0.32"
28+
pyarrow = ">=24.0.0,<25"
29+
pytest = ">=9.0.3,<10"
30+
pytest-cov = ">=7.1.0,<8"
31+
pytest-mock = ">=3.15.1,<4"
32+
rasterio = ">=1.5.0,<2"
33+
requests = ">=2.34.2,<3"
34+
ruff = ">=0.15.17,<0.16"
35+
shapely = ">=2.1.2,<3"
36+
tqdm = ">=4.68.2,<5"
37+
jupyter = ">=1.1.1,<2"

0 commit comments

Comments
 (0)