GeoRacoon 1.0.0__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.
Files changed (52) hide show
  1. georacoon-1.0.0/.github/workflows/crossPRcoverage.yml +29 -0
  2. georacoon-1.0.0/.github/workflows/deploy.yml +144 -0
  3. georacoon-1.0.0/.github/workflows/develop.yml +80 -0
  4. georacoon-1.0.0/.github/workflows/docs_deploy.yml +38 -0
  5. georacoon-1.0.0/.github/workflows/release.yml +105 -0
  6. georacoon-1.0.0/.github/workflows/status.yml +82 -0
  7. georacoon-1.0.0/.github/workflows/test_release.yml +62 -0
  8. georacoon-1.0.0/.gitignore +159 -0
  9. georacoon-1.0.0/.readthedocs.yaml +22 -0
  10. georacoon-1.0.0/LICENSE +21 -0
  11. georacoon-1.0.0/MANIFEST.in +4 -0
  12. georacoon-1.0.0/PKG-INFO +362 -0
  13. georacoon-1.0.0/README.md +324 -0
  14. georacoon-1.0.0/docs/requirements.txt +8 -0
  15. georacoon-1.0.0/examples/README.rst +10 -0
  16. georacoon-1.0.0/examples/exmpl_01_lst_topogradient.py +378 -0
  17. georacoon-1.0.0/examples/plot_01_lst_topogradient.py +445 -0
  18. georacoon-1.0.0/images/georacoon_v02_202509.svg +213 -0
  19. georacoon-1.0.0/public/.gitkeep +0 -0
  20. georacoon-1.0.0/pyproject.toml +75 -0
  21. georacoon-1.0.0/requirements.txt +7 -0
  22. georacoon-1.0.0/setup.cfg +4 -0
  23. georacoon-1.0.0/src/GeoRacoon.egg-info/PKG-INFO +362 -0
  24. georacoon-1.0.0/src/GeoRacoon.egg-info/SOURCES.txt +50 -0
  25. georacoon-1.0.0/src/GeoRacoon.egg-info/dependency_links.txt +1 -0
  26. georacoon-1.0.0/src/GeoRacoon.egg-info/requires.txt +25 -0
  27. georacoon-1.0.0/src/GeoRacoon.egg-info/scm_file_list.json +112 -0
  28. georacoon-1.0.0/src/GeoRacoon.egg-info/scm_version.json +8 -0
  29. georacoon-1.0.0/src/GeoRacoon.egg-info/top_level.txt +3 -0
  30. georacoon-1.0.0/src/convster/__init__.py +25 -0
  31. georacoon-1.0.0/src/convster/filters/__init__.py +22 -0
  32. georacoon-1.0.0/src/convster/filters/gaussian.py +282 -0
  33. georacoon-1.0.0/src/convster/helper.py +94 -0
  34. georacoon-1.0.0/src/convster/parallel.py +1475 -0
  35. georacoon-1.0.0/src/convster/processing.py +1223 -0
  36. georacoon-1.0.0/src/coonfit/__init__.py +35 -0
  37. georacoon-1.0.0/src/coonfit/exceptions.py +19 -0
  38. georacoon-1.0.0/src/coonfit/helper.py +120 -0
  39. georacoon-1.0.0/src/coonfit/inference.py +815 -0
  40. georacoon-1.0.0/src/coonfit/parallel.py +1246 -0
  41. georacoon-1.0.0/src/coonfit/parallel_helpers.py +566 -0
  42. georacoon-1.0.0/src/riogrande/__init__.py +28 -0
  43. georacoon-1.0.0/src/riogrande/helper.py +891 -0
  44. georacoon-1.0.0/src/riogrande/io/__init__.py +48 -0
  45. georacoon-1.0.0/src/riogrande/io/core.py +622 -0
  46. georacoon-1.0.0/src/riogrande/io/exceptions.py +39 -0
  47. georacoon-1.0.0/src/riogrande/io/models.py +1689 -0
  48. georacoon-1.0.0/src/riogrande/parallel.py +571 -0
  49. georacoon-1.0.0/src/riogrande/prepare.py +281 -0
  50. georacoon-1.0.0/src/riogrande/timing.py +93 -0
  51. georacoon-1.0.0/test_france_layers_filtered.png +0 -0
  52. georacoon-1.0.0/tests/requirements.txt +7 -0
@@ -0,0 +1,29 @@
1
+ name: Post coverage comment (cross-repo PRs)
2
+
3
+ on:
4
+ workflow_run:
5
+ workflows: ["Run Tests"]
6
+ types:
7
+ - completed
8
+
9
+ jobs:
10
+ coverage-comment:
11
+ name: Post coverage comment
12
+ runs-on: ubuntu-24.04
13
+ if: github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success'
14
+ permissions:
15
+ # Necessary for publishing new comments in pull requests
16
+ pull-requests: write
17
+ # Necessary for editing existing comments
18
+ contents: write
19
+ # Necessary for looking up the workflow that launched this one
20
+ # and downloading the related artifact
21
+ actions: read
22
+ steps:
23
+ # DO NOT checkout here, for security reasons
24
+ # See: https://securitylab.github.com/research/github-actions-preventing-pwn-requests/
25
+ - name: Post comment
26
+ uses: py-cov-action/python-coverage-comment-action@v3
27
+ with:
28
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
29
+ GITHUB_PR_RUN_ID: ${{ github.event.workflow_run.id }}
@@ -0,0 +1,144 @@
1
+ name: Deployment Smoke Test
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ pull_request:
8
+ types: [opened, synchronize, reopened, ready_for_review]
9
+ branches:
10
+ - main
11
+
12
+ env:
13
+ PYTHON_VERSION: "3.13"
14
+
15
+ jobs:
16
+ smoke-test:
17
+ if: github.event.pull_request.draft == false
18
+ runs-on: ${{ matrix.runner }}
19
+ container: ${{ matrix.container || '' }}
20
+ strategy:
21
+ matrix:
22
+ include:
23
+ - runner: ubuntu-latest
24
+ os: ubuntu
25
+ badge-label: Ubuntu
26
+ container: ""
27
+ - runner: ubuntu-latest
28
+ os: fedora
29
+ badge-label: Fedora
30
+ container: fedora:latest
31
+ - runner: macos-latest
32
+ os: macos
33
+ badge-label: macOS
34
+ container: ""
35
+ - runner: windows-latest
36
+ os: windows
37
+ badge-label: Windows
38
+ container: ""
39
+ fail-fast: false
40
+ steps:
41
+ - name: Install system dependencies (Fedora)
42
+ if: matrix.os == 'fedora'
43
+ run: |
44
+ dnf install -y python3 python3-pip python3-devel gcc gcc-c++ gdal gdal-devel git git-lfs
45
+
46
+ - uses: actions/checkout@v5
47
+ with:
48
+ lfs: 'true'
49
+ submodules: recursive
50
+
51
+ - name: Set up Python ${{ env.PYTHON_VERSION }}
52
+ if: matrix.os != 'fedora'
53
+ uses: actions/setup-python@v5
54
+ with:
55
+ python-version: ${{ env.PYTHON_VERSION }}
56
+
57
+ - name: Install GeoRacoon
58
+ shell: bash
59
+ run: |
60
+ git config --global --add safe.directory '*'
61
+ python3 -m venv .venv
62
+ # Windows venv uses Scripts/, Unix uses bin/
63
+ if [[ -f .venv/bin/activate ]]; then
64
+ source .venv/bin/activate
65
+ else
66
+ source .venv/Scripts/activate
67
+ fi
68
+ pip install --upgrade pip
69
+ pip install .
70
+
71
+ - name: Debug Python path
72
+ shell: bash
73
+ run: |
74
+ # Windows venv uses Scripts/, Unix uses bin/
75
+ if [[ -f .venv/bin/activate ]]; then
76
+ source .venv/bin/activate
77
+ else
78
+ source .venv/Scripts/activate
79
+ fi
80
+ echo "which python: $(which python)"
81
+ echo "which python3: $(which python3 2>/dev/null || echo 'not found')"
82
+ python -c "import sys; print(f'sys.executable: {sys.executable}'); print(f'sys.prefix: {sys.prefix}')"
83
+
84
+ - name: Smoke test
85
+ shell: bash
86
+ run: |
87
+ # Windows venv uses Scripts/, Unix uses bin/
88
+ if [[ -f .venv/bin/activate ]]; then
89
+ source .venv/bin/activate
90
+ else
91
+ source .venv/Scripts/activate
92
+ fi
93
+ python -c "
94
+ import os, tempfile
95
+ import numpy as np
96
+ from riogrande.io import Source, Band, write_band
97
+ from convster.processing import select_category
98
+ from coonfit.inference import get_optimal_weights
99
+
100
+ # -- riogrande: write a GeoTIFF via Source, then read it back via Band
101
+ with tempfile.TemporaryDirectory() as tmp:
102
+ path = os.path.join(tmp, 'smoke.tif')
103
+ data = np.array([[42.0]], dtype='float32')
104
+ profile = dict(
105
+ driver='GTiff', dtype='float32',
106
+ width=1, height=1, count=1,
107
+ crs='EPSG:4326',
108
+ )
109
+ src = Source(path, profile=profile)
110
+ with src.open(mode='w') as dst:
111
+ write_band(dst, data, bidx=1, name='smoke')
112
+ band = Band(source=src, bidx=1, tags={'name': 'smoke'})
113
+ result = band.get_data()
114
+ assert result[0, 0] == 42.0, f'Expected 42.0, got {result[0, 0]}'
115
+ print('riogrande: Source write + Band read OK')
116
+
117
+ # -- convster: select_category on a tiny categorical array
118
+ cat = np.array([[2]], dtype='uint8')
119
+ sel = select_category(cat, category=2)
120
+ assert sel[0, 0] == np.iinfo(sel.dtype).max, f'select_category failed: {sel[0, 0]}'
121
+ print('convster: select_category OK')
122
+
123
+ # -- coonfit: get_optimal_weights on trivial regression
124
+ X = np.array([[1.0]])
125
+ y = np.array([2.0])
126
+ w = get_optimal_weights(X, y)
127
+ assert abs(w[0] - 2.0) < 1e-6, f'get_optimal_weights failed: {w}'
128
+ print('coonfit: get_optimal_weights OK')
129
+
130
+ print('All smoke tests passed')
131
+ "
132
+
133
+ # Update OS badge in gist (only on push to main)
134
+ - name: Update ${{ matrix.badge-label }} status badge
135
+ if: always() && github.ref == 'refs/heads/main'
136
+ # pinned to v1.8.0
137
+ uses: schneegans/dynamic-badges-action@0e50b8bad39e7e1afd3e4e9c2b7dd145fad07501
138
+ with:
139
+ auth: ${{ secrets.GIST_SECRET }}
140
+ gistID: ${{ vars.STATUS_GIST_ID }}
141
+ filename: deploy-${{ matrix.os }}.json
142
+ label: ${{ matrix.badge-label }}
143
+ message: ${{ job.status == 'success' && 'passing' || 'failing' }}
144
+ color: ${{ job.status == 'success' && 'brightgreen' || 'red' }}
@@ -0,0 +1,80 @@
1
+ name: Run Tests
2
+
3
+ on:
4
+ pull_request:
5
+ types: [opened, synchronize, reopened, edited, ready_for_review]
6
+ branches:
7
+ - main
8
+ permissions:
9
+ pull-requests: write
10
+ contents: write
11
+
12
+ jobs:
13
+ unit-tests:
14
+ if: github.event.pull_request.draft == false
15
+ runs-on: ubuntu-24.04
16
+ strategy:
17
+ matrix:
18
+ pythonV: ["3.10", "3.11", "3.12", "3.13", "3.14"]
19
+ fail-fast: false
20
+ steps:
21
+ - uses: actions/checkout@v5
22
+ with:
23
+ lfs: 'true'
24
+ submodules: recursive
25
+
26
+ - name: Set up Python ${{ matrix.pythonV }}
27
+ uses: actions/setup-python@v5
28
+ with:
29
+ python-version: ${{ matrix.pythonV }}
30
+
31
+ - name: Install dependencies
32
+ run: |
33
+ python -m venv .venv
34
+ source .venv/bin/activate
35
+ pip install --upgrade pip
36
+ pip install -e .[testing]
37
+
38
+ - name: Run tests with coverage
39
+ run: |
40
+ source .venv/bin/activate
41
+ python -c "import multiprocessing; print(multiprocessing.cpu_count())"
42
+ python -m pytest -s -vvv --timeout 300 --cov
43
+ env:
44
+ COVERAGE_FILE: ".coverage.unittests"
45
+
46
+ # NOTE: we report the coverage only for the oldest python version supported
47
+ - name: Store coverage file
48
+ if: matrix.pythonV == '3.10'
49
+ uses: actions/upload-artifact@v4
50
+ with:
51
+ name: coverage-unittests
52
+ path: .coverage.unittests
53
+ include-hidden-files: true
54
+
55
+ coverage:
56
+ name: coverage-comment
57
+ runs-on: ubuntu-24.04
58
+ needs: [unit-tests]
59
+ if: needs.unit-tests.result == 'success' || needs.unit-tests.result == 'failure'
60
+ steps:
61
+ - uses: actions/checkout@v5
62
+ - uses: actions/download-artifact@v4
63
+ id: download
64
+ with:
65
+ pattern: coverage-*
66
+ merge-multiple: true
67
+
68
+ - name: Coverage comment
69
+ id: coverage_comment
70
+ uses: py-cov-action/python-coverage-comment-action@v3
71
+ with:
72
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
73
+ MERGE_COVERAGE_FILES: true
74
+
75
+ - name: Store Pull Request comment to be posted
76
+ uses: actions/upload-artifact@v4
77
+ if: steps.coverage_comment.outputs.COMMENT_FILE_WRITTEN == 'true'
78
+ with:
79
+ name: python-coverage-comment-action
80
+ path: python-coverage-comment-action.txt
@@ -0,0 +1,38 @@
1
+ name: Deploy Documentation
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+
7
+ jobs:
8
+ build-and-deploy-docs:
9
+ runs-on: ubuntu-24.04
10
+ steps:
11
+ - uses: actions/checkout@v3
12
+ with:
13
+ submodules: recursive
14
+
15
+ - name: Set up Python 3.10
16
+ uses: actions/setup-python@v3
17
+ with:
18
+ python-version: '3.10'
19
+
20
+ - name: Install documentation dependencies
21
+ run: |
22
+ python -m venv .venv
23
+ source .venv/bin/activate
24
+ pip install --upgrade pip
25
+ pip install -r docs/requirements.txt
26
+ pip install -e .
27
+
28
+ - name: Generate API docs and build documentation
29
+ run: |
30
+ source .venv/bin/activate
31
+ sphinx-build -b html docs public
32
+
33
+ # TODO: change to proper deployment
34
+ # - name: Deploy to GitHub Pages
35
+ # uses: peaceiris/actions-gh-pages@v3
36
+ # with:
37
+ # github_token: ${{ secrets.GITHUB_TOKEN }}
38
+ # publish_dir: ./public
@@ -0,0 +1,105 @@
1
+ # Release workflow: builds sdist, creates a GitHub Release with
2
+ # auto-generated notes, and publishes to PyPI via OIDC trusted publishing.
3
+ # The PyPI publish step is gated on the ``pypi`` GitHub environment, which
4
+ # is configured (in repo settings) to require manual reviewer approval.
5
+ #
6
+ # Tag conventions (no ``v`` prefix; SemVer-style):
7
+ # 1.2.3 -- final release
8
+ # 1.2.3-rc1 -- pre-releases (alpha / beta / rc; PEP 440 normalises
9
+ # ``1.2.3-rc1`` to ``1.2.3rc1`` for the wheel version)
10
+ #
11
+ # Prerequisites (configured outside this workflow):
12
+ # * PyPI trusted publisher: workflow=release.yml, environment=pypi
13
+ # * GitHub environment ``pypi`` with required reviewers
14
+ # * Tag protection rule for the patterns below
15
+
16
+ name: Release
17
+
18
+ on:
19
+ push:
20
+ tags:
21
+ - '[0-9]+.[0-9]+.[0-9]+'
22
+ - '[0-9]+.[0-9]+.[0-9]+-[abr]*'
23
+
24
+ permissions:
25
+ contents: read
26
+
27
+ jobs:
28
+ guard_main:
29
+ # Refuse to release from a tag that does not point at a commit on main.
30
+ # Prevents accidental releases from feature branches or stale tags.
31
+ name: Verify tag is on main
32
+ runs-on: ubuntu-latest
33
+ steps:
34
+ - uses: actions/checkout@v4
35
+ with:
36
+ fetch-depth: 0
37
+ - name: Check tag commit is an ancestor of origin/main
38
+ run: |
39
+ git fetch origin main
40
+ if ! git merge-base --is-ancestor "$GITHUB_SHA" origin/main; then
41
+ echo "::error::Tag commit $GITHUB_SHA is not on origin/main; refusing to release."
42
+ exit 1
43
+ fi
44
+
45
+ build:
46
+ name: Build artifacts
47
+ needs: guard_main
48
+ runs-on: ubuntu-latest
49
+ steps:
50
+ - uses: actions/checkout@v4
51
+ with:
52
+ # hatch-vcs needs the full history (or at least tags) to resolve
53
+ # the version dynamically.
54
+ fetch-depth: 0
55
+
56
+ - name: Build wheel and sdist
57
+ run: pipx run build
58
+
59
+ - uses: actions/upload-artifact@v4
60
+ with:
61
+ name: dist-${{ github.ref_name }}
62
+ path: dist/*
63
+
64
+ create_github_release:
65
+ name: Create GitHub Release
66
+ needs: build
67
+ runs-on: ubuntu-latest
68
+ permissions:
69
+ contents: write
70
+ steps:
71
+ - uses: actions/download-artifact@v4
72
+ with:
73
+ pattern: dist-*
74
+ path: dist
75
+ merge-multiple: true
76
+
77
+ - name: Create release
78
+ uses: softprops/action-gh-release@v2
79
+ with:
80
+ generate_release_notes: true
81
+ files: dist/*
82
+ # Mark pre-releases (anything with a/b/rc in the tag) appropriately
83
+ # so PyPI/users see the right channel.
84
+ prerelease: ${{ contains(github.ref_name, 'a') || contains(github.ref_name, 'b') || contains(github.ref_name, 'rc') }}
85
+
86
+ publish_pypi:
87
+ name: Publish to PyPI
88
+ needs: create_github_release
89
+ runs-on: ubuntu-latest
90
+ environment:
91
+ name: pypi
92
+ url: https://pypi.org/p/tempnet
93
+ permissions:
94
+ id-token: write # OIDC for trusted publishing
95
+ attestations: write # sigstore provenance attestations
96
+ steps:
97
+ - uses: actions/download-artifact@v4
98
+ with:
99
+ pattern: dist-*
100
+ path: dist
101
+ merge-multiple: true
102
+
103
+ - uses: pypa/gh-action-pypi-publish@release/v1
104
+ with:
105
+ attestations: true
@@ -0,0 +1,82 @@
1
+ name: Status
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+
8
+ jobs:
9
+ unit-tests:
10
+ runs-on: ubuntu-24.04
11
+ strategy:
12
+ matrix:
13
+ pythonV: ["3.10", "3.11", "3.12", "3.13", "3.14"]
14
+ fail-fast: false
15
+ steps:
16
+ - uses: actions/checkout@v5
17
+ with:
18
+ lfs: 'true'
19
+ submodules: recursive
20
+
21
+ - name: Set up Python ${{ matrix.pythonV }}
22
+ uses: actions/setup-python@v5
23
+ with:
24
+ python-version: ${{ matrix.pythonV }}
25
+
26
+ - name: Install dependencies
27
+ run: |
28
+ python -m venv .venv
29
+ source .venv/bin/activate
30
+ pip install --upgrade pip
31
+ pip install -e .[testing]
32
+
33
+ - name: Run tests with coverage
34
+ run: |
35
+ source .venv/bin/activate
36
+ python -c "import multiprocessing; print(multiprocessing.cpu_count())"
37
+ python -m pytest -s -vvv --timeout 600 --cov
38
+ env:
39
+ COVERAGE_FILE: ".coverage.unittests"
40
+
41
+ # NOTE: we report the coverage only for the oldest python version supported
42
+ - name: Store coverage file
43
+ if: matrix.pythonV == '3.10'
44
+ uses: actions/upload-artifact@v4
45
+ with:
46
+ name: coverage-unittests
47
+ path: .coverage.unittests
48
+ include-hidden-files: true
49
+
50
+ # Update per-version pass/fail badge in gist
51
+ - name: Update Python ${{ matrix.pythonV }} status badge
52
+ if: always()
53
+ # pinned to v1.8.0
54
+ uses: schneegans/dynamic-badges-action@0e50b8bad39e7e1afd3e4e9c2b7dd145fad07501
55
+ with:
56
+ auth: ${{ secrets.GIST_SECRET }}
57
+ gistID: ${{ vars.STATUS_GIST_ID }}
58
+ filename: python-${{ matrix.pythonV }}.json
59
+ label: "Python ${{ matrix.pythonV }}"
60
+ message: ${{ job.status == 'success' && 'passing' || 'failing' }}
61
+ color: ${{ job.status == 'success' && 'brightgreen' || 'red' }}
62
+
63
+ coverage-badge:
64
+ name: coverage-badge
65
+ runs-on: ubuntu-24.04
66
+ needs: [unit-tests]
67
+ if: always()
68
+ permissions:
69
+ contents: write
70
+ steps:
71
+ - uses: actions/checkout@v5
72
+ - uses: actions/download-artifact@v4
73
+ id: download
74
+ with:
75
+ pattern: coverage-*
76
+ merge-multiple: true
77
+
78
+ - name: Update coverage badge
79
+ uses: py-cov-action/python-coverage-comment-action@v3
80
+ with:
81
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
82
+ MERGE_COVERAGE_FILES: true
@@ -0,0 +1,62 @@
1
+ # Manual TestPyPI dry-run. Trigger via the Actions tab; the branch picker
2
+ # in the workflow_dispatch UI selects which ref to build from. Useful for
3
+ # validating the build and publish pipeline before cutting a real release tag.
4
+ #
5
+ # Prerequisites (configured outside this workflow):
6
+ # * TestPyPI trusted publisher: workflow=test_release.yml, environment=testpypi
7
+ # * GitHub environment ``testpypi`` (no reviewers required)
8
+
9
+ name: Test release (TestPyPI)
10
+
11
+ on:
12
+ workflow_dispatch: {}
13
+
14
+ permissions:
15
+ contents: read
16
+
17
+ jobs:
18
+ build:
19
+ name: Build artifacts
20
+ runs-on: ubuntu-latest
21
+ steps:
22
+ - uses: actions/checkout@v4
23
+ with:
24
+ fetch-depth: 0
25
+
26
+ - name: Build wheel and sdist
27
+ # TestPyPI rejects PEP 440 local version segments (the ``+gSHA``
28
+ # suffix hatch-vcs appends on non-tag commits). Strip it here --
29
+ # and only here -- so PyPI releases and local dev installs are
30
+ # unaffected.
31
+ env:
32
+ SETUPTOOLS_SCM_LOCAL_SCHEME: no-local-version
33
+ run: pipx run build
34
+
35
+ - uses: actions/upload-artifact@v4
36
+ with:
37
+ name: dist-testrelease
38
+ path: dist/*
39
+
40
+ publish_testpypi:
41
+ name: Publish to TestPyPI
42
+ needs: build
43
+ runs-on: ubuntu-latest
44
+ environment:
45
+ name: testpypi
46
+ url: https://test.pypi.org/p/tempnet
47
+ permissions:
48
+ id-token: write
49
+ steps:
50
+ - uses: actions/download-artifact@v4
51
+ with:
52
+ pattern: dist-*
53
+ path: dist
54
+ merge-multiple: true
55
+
56
+ - uses: pypa/gh-action-pypi-publish@release/v1
57
+ with:
58
+ repository-url: https://test.pypi.org/legacy/
59
+ # TestPyPI rejects re-uploads of an existing version; allow the
60
+ # workflow to succeed when the version already exists so repeated
61
+ # dry-runs from the same commit don't fail noisily.
62
+ skip-existing: true
@@ -0,0 +1,159 @@
1
+ # ignore api folder for docs
2
+ docs/api/
3
+ public/
4
+
5
+ # Byte-compiled / optimized / DLL files
6
+ __pycache__/
7
+ *.py[cod]
8
+ *$py.class
9
+
10
+ # C extensions
11
+ *.so
12
+
13
+ # Distribution / packaging
14
+ .Python
15
+ build/
16
+ develop-eggs/
17
+ dist/
18
+ downloads/
19
+ eggs/
20
+ .eggs/
21
+ lib/
22
+ lib64/
23
+ parts/
24
+ sdist/
25
+ var/
26
+ wheels/
27
+ pip-wheel-metadata/
28
+ share/python-wheels/
29
+ *.egg-info/
30
+ .installed.cfg
31
+ *.egg
32
+ MANIFEST
33
+
34
+ # PyInstaller
35
+ # Usually these files are written by a python script from a template
36
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
37
+ *.manifest
38
+ *.spec
39
+
40
+ # Installer logs
41
+ pip-log.txt
42
+ pip-delete-this-directory.txt
43
+
44
+ # Unit test / coverage reports
45
+ htmlcov/
46
+ .tox/
47
+ .nox/
48
+ .coverage
49
+ .coverage.*
50
+ .cache
51
+ nosetests.xml
52
+ coverage.xml
53
+ *.cover
54
+ *.py,cover
55
+ .hypothesis/
56
+ .pytest_cache/
57
+
58
+ # Translations
59
+ *.mo
60
+ *.pot
61
+
62
+ # Django stuff:
63
+ *.log
64
+ local_settings.py
65
+ db.sqlite3
66
+ db.sqlite3-journal
67
+
68
+ # Flask stuff:
69
+ instance/
70
+ .webassets-cache
71
+
72
+ # Scrapy stuff:
73
+ .scrapy
74
+
75
+ # Sphinx documentation
76
+ docs/_build/
77
+ docs/auto_examples/
78
+ docs/sg_execution_times.rst
79
+
80
+ # PyBuilder
81
+ target/
82
+
83
+ # Jupyter Notebook
84
+ .ipynb_checkpoints
85
+
86
+ # IPython
87
+ profile_default/
88
+ ipython_config.py
89
+
90
+ # pyenv
91
+ .python-version
92
+
93
+ # pipenv
94
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
95
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
96
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
97
+ # install all needed dependencies.
98
+ #Pipfile.lock
99
+
100
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
101
+ __pypackages__/
102
+
103
+ # Celery stuff
104
+ celerybeat-schedule
105
+ celerybeat.pid
106
+
107
+ # SageMath parsed files
108
+ *.sage.py
109
+
110
+ # Environments
111
+ .env
112
+ .venv
113
+ env/
114
+ venv/
115
+ ENV/
116
+ env.bak/
117
+ venv.bak/
118
+
119
+ # Spyder project settings
120
+ .spyderproject
121
+ .spyproject
122
+
123
+ # Pycharm project settings
124
+ .idea
125
+
126
+ # Rope project settings
127
+ .ropeproject
128
+
129
+ # mkdocs documentation
130
+ /site
131
+
132
+ # mypy
133
+ .mypy_cache/
134
+ .dmypy.json
135
+ dmypy.json
136
+
137
+ # Pyre type checker
138
+ .pyre/
139
+
140
+ # vim
141
+ *.swp
142
+
143
+ # any slurm output file
144
+ *.out
145
+
146
+ # exclude local configurations
147
+ locals.py
148
+
149
+ # generally exclude results and input data
150
+ data/
151
+ results/
152
+ *.png
153
+ *.pdf
154
+ *.tif
155
+
156
+ # nixos
157
+ shell.nix
158
+
159
+ *.revision