vresto 0.0.10__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 (71) hide show
  1. vresto-0.0.10/.env.example +8 -0
  2. vresto-0.0.10/.github/workflows/build-docs.yml +26 -0
  3. vresto-0.0.10/.github/workflows/gitleaks.yml +19 -0
  4. vresto-0.0.10/.github/workflows/publish.yml +29 -0
  5. vresto-0.0.10/.github/workflows/ruff.yml +23 -0
  6. vresto-0.0.10/.github/workflows/tests.yml +26 -0
  7. vresto-0.0.10/.gitignore +224 -0
  8. vresto-0.0.10/.pre-commit-config.yaml +12 -0
  9. vresto-0.0.10/CONTRIBUTING.md +63 -0
  10. vresto-0.0.10/LICENSE.txt +395 -0
  11. vresto-0.0.10/Makefile +79 -0
  12. vresto-0.0.10/PKG-INFO +129 -0
  13. vresto-0.0.10/README.md +92 -0
  14. vresto-0.0.10/SECURITY.md +21 -0
  15. vresto-0.0.10/docs/about.md +72 -0
  16. vresto-0.0.10/docs/advanced/aws-cli.md +214 -0
  17. vresto-0.0.10/docs/assets/vresto_logo.jpg +0 -0
  18. vresto-0.0.10/docs/getting-started/quickstart.md +138 -0
  19. vresto-0.0.10/docs/getting-started/setup.md +109 -0
  20. vresto-0.0.10/docs/index.md +31 -0
  21. vresto-0.0.10/docs/ui.md +52 -0
  22. vresto-0.0.10/docs/user-guide/api.md +194 -0
  23. vresto-0.0.10/docs/user-guide/web-interface.md +108 -0
  24. vresto-0.0.10/examples/__init__.py +1 -0
  25. vresto-0.0.10/examples/download_product.py +63 -0
  26. vresto-0.0.10/examples/products_example.py +123 -0
  27. vresto-0.0.10/examples/search_by_name_example.py +96 -0
  28. vresto-0.0.10/examples/search_example.py +53 -0
  29. vresto-0.0.10/mkdocs.yml +45 -0
  30. vresto-0.0.10/pyproject.toml +107 -0
  31. vresto-0.0.10/scripts/bump_version.py +101 -0
  32. vresto-0.0.10/scripts/check_credentials.py +76 -0
  33. vresto-0.0.10/scripts/release.sh +84 -0
  34. vresto-0.0.10/scripts/setup_credentials.py +124 -0
  35. vresto-0.0.10/src/__init__.py +3 -0
  36. vresto-0.0.10/src/vresto/__init__.py +0 -0
  37. vresto-0.0.10/src/vresto/_version.py +3 -0
  38. vresto-0.0.10/src/vresto/api/README.md +123 -0
  39. vresto-0.0.10/src/vresto/api/__init__.py +14 -0
  40. vresto-0.0.10/src/vresto/api/auth.py +137 -0
  41. vresto-0.0.10/src/vresto/api/catalog.py +335 -0
  42. vresto-0.0.10/src/vresto/api/config.py +87 -0
  43. vresto-0.0.10/src/vresto/api/env_loader.py +43 -0
  44. vresto-0.0.10/src/vresto/bands/__init__.py +12 -0
  45. vresto-0.0.10/src/vresto/bands/band_io.py +90 -0
  46. vresto-0.0.10/src/vresto/bands/band_utils.py +226 -0
  47. vresto-0.0.10/src/vresto/bands/composer.py +86 -0
  48. vresto-0.0.10/src/vresto/products/__init__.py +5 -0
  49. vresto-0.0.10/src/vresto/products/downloader.py +426 -0
  50. vresto-0.0.10/src/vresto/products/product_name.py +156 -0
  51. vresto-0.0.10/src/vresto/products/products_manager.py +413 -0
  52. vresto-0.0.10/src/vresto/ui/__init__.py +0 -0
  53. vresto-0.0.10/src/vresto/ui/map_interface.py +2187 -0
  54. vresto-0.0.10/src/vresto/ui/widgets/activity_log.py +40 -0
  55. vresto-0.0.10/src/vresto/ui/widgets/date_picker.py +99 -0
  56. vresto-0.0.10/src/vresto/ui/widgets/map_widget.py +156 -0
  57. vresto-0.0.10/src/vresto/ui/widgets/search_results_panel.py +117 -0
  58. vresto-0.0.10/tests/api/__init__.py +1 -0
  59. vresto-0.0.10/tests/api/test_auth.py +190 -0
  60. vresto-0.0.10/tests/api/test_catalog.py +485 -0
  61. vresto-0.0.10/tests/api/test_config.py +98 -0
  62. vresto-0.0.10/tests/bands/test_band_io_and_composer.py +49 -0
  63. vresto-0.0.10/tests/bands/test_band_utils.py +47 -0
  64. vresto-0.0.10/tests/conftest.py +15 -0
  65. vresto-0.0.10/tests/products/__init__.py +1 -0
  66. vresto-0.0.10/tests/products/test_downloader.py +90 -0
  67. vresto-0.0.10/tests/products/test_products.py +75 -0
  68. vresto-0.0.10/tests/test_setup_script.py +17 -0
  69. vresto-0.0.10/tests/ui/__init__.py +1 -0
  70. vresto-0.0.10/tests/ui/test_map_interface.py +219 -0
  71. vresto-0.0.10/uv.lock +3363 -0
@@ -0,0 +1,8 @@
1
+ # Copernicus Data Space Ecosystem Credentials
2
+ # Get your credentials at: https://dataspace.copernicus.eu/
3
+ #
4
+ # IMPORTANT: This file contains sensitive credentials.
5
+ # Do NOT commit this file to version control!
6
+
7
+ COPERNICUS_USERNAME=your_username_here
8
+ COPERNICUS_PASSWORD=your_password_here
@@ -0,0 +1,26 @@
1
+ name: build-docs
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ workflow_dispatch:
8
+
9
+ jobs:
10
+ build:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v6
14
+ - uses: astral-sh/setup-uv@v1
15
+ - uses: actions/setup-python@v5
16
+ with:
17
+ python-version: "3.11"
18
+ - name: Install dependencies
19
+ run: uv sync --extra docs
20
+ - name: Build docs
21
+ run: uv run mkdocs build
22
+ - name: Upload artifact
23
+ uses: actions/upload-artifact@v4
24
+ with:
25
+ name: docs
26
+ path: site
@@ -0,0 +1,19 @@
1
+ name: gitleaks
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ workflow_dispatch:
7
+
8
+ jobs:
9
+ scan:
10
+ name: gitleaks
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v6
14
+ with:
15
+ fetch-depth: 0
16
+ - uses: gitleaks/gitleaks-action@v2
17
+ env:
18
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
19
+ GITLEAKS_LICENSE: ${{ secrets.GITLEAKS_LICENSE }}
@@ -0,0 +1,29 @@
1
+ name: publish
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - v*
7
+ workflow_dispatch:
8
+
9
+ permissions:
10
+ contents: read
11
+ id-token: write
12
+
13
+ jobs:
14
+ publish:
15
+ name: Publish to PyPI
16
+ runs-on: ubuntu-latest
17
+ environment: publish
18
+ steps:
19
+ - uses: actions/checkout@v6
20
+ - uses: astral-sh/setup-uv@v7
21
+ with:
22
+ enable-cache: true
23
+ - uses: actions/setup-python@v5
24
+ with:
25
+ python-version: "3.11"
26
+ - name: Build package
27
+ run: uv build
28
+ - name: Publish to PyPI
29
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,23 @@
1
+ name: ruff
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+
7
+ jobs:
8
+ lint:
9
+ name: Lint with ruff
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - uses: actions/checkout@v6
13
+ - uses: astral-sh/ruff-action@v1
14
+ with:
15
+ args: "check"
16
+ format:
17
+ name: Format with ruff
18
+ runs-on: ubuntu-latest
19
+ steps:
20
+ - uses: actions/checkout@v6
21
+ - uses: astral-sh/ruff-action@v1
22
+ with:
23
+ args: "format --preview --check"
@@ -0,0 +1,26 @@
1
+ name: tests
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ branches:
7
+ - main
8
+ workflow_dispatch:
9
+
10
+ jobs:
11
+ test:
12
+ name: Test on Python ${{ matrix.python-version }}
13
+ runs-on: ubuntu-latest
14
+ strategy:
15
+ matrix:
16
+ python-version: ["3.11", "3.12"]
17
+ steps:
18
+ - uses: actions/checkout@v6
19
+ - uses: astral-sh/setup-uv@v1
20
+ - uses: actions/setup-python@v5
21
+ with:
22
+ python-version: ${{ matrix.python-version }}
23
+ - name: Install dependencies
24
+ run: uv sync --extra dev
25
+ - name: Run tests
26
+ run: uv run pytest tests/ -m "not requires_credentials"
@@ -0,0 +1,224 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[codz]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ share/python-wheels/
24
+ *.egg-info/
25
+ .installed.cfg
26
+ *.egg
27
+ MANIFEST
28
+
29
+ # PyInstaller
30
+ # Usually these files are written by a python script from a template
31
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
32
+ *.manifest
33
+ *.spec
34
+
35
+ # Installer logs
36
+ pip-log.txt
37
+ pip-delete-this-directory.txt
38
+
39
+ # Unit test / coverage reports
40
+ htmlcov/
41
+ .tox/
42
+ .nox/
43
+ .coverage
44
+ .coverage.*
45
+ .cache
46
+ nosetests.xml
47
+ coverage.xml
48
+ *.cover
49
+ *.py.cover
50
+ .hypothesis/
51
+
52
+ # MkDocs documentation
53
+ site/
54
+ .mkdocs_cache/
55
+ .pytest_cache/
56
+ cover/
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
+
78
+ # PyBuilder
79
+ .pybuilder/
80
+ target/
81
+
82
+ # Jupyter Notebook
83
+ .ipynb_checkpoints
84
+
85
+ # IPython
86
+ profile_default/
87
+ ipython_config.py
88
+
89
+ # pyenv
90
+ # For a library or package, you might want to ignore these files since the code is
91
+ # intended to run in multiple environments; otherwise, check them in:
92
+ # .python-version
93
+
94
+ # pipenv
95
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
96
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
97
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
98
+ # install all needed dependencies.
99
+ #Pipfile.lock
100
+
101
+ # UV
102
+ # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
103
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
104
+ # commonly ignored for libraries.
105
+ #uv.lock
106
+
107
+ # poetry
108
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
109
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
110
+ # commonly ignored for libraries.
111
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
112
+ #poetry.lock
113
+ #poetry.toml
114
+
115
+ # pdm
116
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
117
+ # pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python.
118
+ # https://pdm-project.org/en/latest/usage/project/#working-with-version-control
119
+ #pdm.lock
120
+ #pdm.toml
121
+ .pdm-python
122
+ .pdm-build/
123
+
124
+ # pixi
125
+ # Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control.
126
+ #pixi.lock
127
+ # Pixi creates a virtual environment in the .pixi directory, just like venv module creates one
128
+ # in the .venv directory. It is recommended not to include this directory in version control.
129
+ .pixi
130
+
131
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
132
+ __pypackages__/
133
+
134
+ # Celery stuff
135
+ celerybeat-schedule
136
+ celerybeat.pid
137
+
138
+ # SageMath parsed files
139
+ *.sage.py
140
+
141
+ # Environments
142
+ .env
143
+ .envrc
144
+ .venv
145
+ env/
146
+ venv/
147
+ ENV/
148
+ env.bak/
149
+ venv.bak/
150
+
151
+ # Spyder project settings
152
+ .spyderproject
153
+ .spyproject
154
+
155
+ # Rope project settings
156
+ .ropeproject
157
+
158
+ # mkdocs documentation
159
+ /site
160
+
161
+ # mypy
162
+ .mypy_cache/
163
+ .dmypy.json
164
+ dmypy.json
165
+
166
+ # Pyre type checker
167
+ .pyre/
168
+
169
+ # pytype static type analyzer
170
+ .pytype/
171
+
172
+ # Cython debug symbols
173
+ cython_debug/
174
+
175
+ # PyCharm
176
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
177
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
178
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
179
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
180
+ #.idea/
181
+
182
+ # Abstra
183
+ # Abstra is an AI-powered process automation framework.
184
+ # Ignore directories containing user credentials, local state, and settings.
185
+ # Learn more at https://abstra.io/docs
186
+ .abstra/
187
+
188
+ # Visual Studio Code
189
+ # Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
190
+ # that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
191
+ # and can be added to the global gitignore or merged into this file. However, if you prefer,
192
+ # you could uncomment the following to ignore the entire vscode folder
193
+ # .vscode/
194
+
195
+ # Ruff stuff:
196
+ .ruff_cache/
197
+
198
+ # PyPI configuration file
199
+ .pypirc
200
+
201
+ # Cursor
202
+ # Cursor is an AI-powered code editor. `.cursorignore` specifies files/directories to
203
+ # exclude from AI features like autocomplete and code analysis. Recommended for sensitive data
204
+ # refer to https://docs.cursor.com/context/ignore-files
205
+ .cursorignore
206
+ .cursorindexingignore
207
+
208
+ # Marimo
209
+ marimo/_static/
210
+ marimo/_lsp/
211
+ __marimo__/
212
+
213
+ # macOS system files
214
+ .DS_Store
215
+
216
+ # vscode settings
217
+ .vscode/settings.json
218
+
219
+ # copilot instructionss
220
+ .github/copilot-instructions.md
221
+
222
+ # JPEG 2000 images
223
+ *.jp2
224
+ tmp.txt
@@ -0,0 +1,12 @@
1
+ repos:
2
+ - repo: https://github.com/astral-sh/ruff-pre-commit
3
+ rev: v0.8.1
4
+ hooks:
5
+ - id: ruff
6
+ args: [--fix]
7
+ - id: ruff-format
8
+ args: [--preview]
9
+ - repo: https://github.com/gitleaks/gitleaks
10
+ rev: v8.30.0
11
+ hooks:
12
+ - id: gitleaks
@@ -0,0 +1,63 @@
1
+ # Contributing to vresto
2
+
3
+ Thank you for your interest in contributing! This project values kind communication, understanding, and respect. Whether you're fixing bugs, improving documentation, or suggesting new features, your contributions are welcome.
4
+
5
+ ## How to Contribute
6
+
7
+ - **Open Communication:** Please discuss any major changes or ideas in an issue before making a pull request. This helps ensure your work aligns with the project's goals.
8
+ - **Respect:** Be kind and constructive in all interactions.
9
+ - **Transparency:** Be clear about what your change does and why. Include context and reasoning in issues and pull requests.
10
+
11
+ ## Submitting Issues
12
+
13
+ - Provide as much detail as possible (steps to reproduce, environment, etc.).
14
+
15
+ ## Submitting Pull Requests
16
+
17
+ 1. Fork the repository and create your branch from `main`.
18
+ 2. Make your changes, following good code practices and adding tests if appropriate.
19
+ 3. Ensure your code passes linting and tests (`uv run --extra dev pytest tests/` and `uv run --extra dev ruff check .`).
20
+ 4. Open a pull request with a clear description of your changes.
21
+
22
+ ## Style & Docstrings
23
+
24
+ We use [ruff](https://docs.astral.sh/ruff/) for formatting and linting and enforce **Google-style docstrings** (`D` rules via pydocstyle). Please:
25
+
26
+ - Keep line length within the configured limit (`line-length` in `pyproject.toml`).
27
+ - Write a concise summary line (imperative mood) followed by a blank line for multi-line docstrings.
28
+ - Include `Args:`, `Returns:`, `Raises:` where applicable.
29
+ - Avoid redundancy—do not restate parameter types if already type-annotated unless clarification helps.
30
+ - Use triple double quotes for all docstrings.
31
+
32
+ Minimal examples:
33
+
34
+ ```python
35
+ def add(a: int, b: int) -> int:
36
+ """Return the sum of two integers."""
37
+
38
+ def fetch_item(key: str) -> dict:
39
+ """Fetch an item by key.
40
+
41
+ Args:
42
+ key: Cache or datastore lookup key.
43
+
44
+ Returns:
45
+ A dictionary representing the stored item.
46
+
47
+ Raises:
48
+ KeyError: If the key is not found.
49
+ """
50
+ ```
51
+
52
+ You can auto-fix many issues:
53
+
54
+ ```bash
55
+ uv run --extra dev ruff check . --fix
56
+ uv run --extra dev ruff format
57
+ ```
58
+
59
+ Pre-commit will run these checks automatically (see `.pre-commit-config.yaml`).
60
+
61
+ ## Code of Conduct
62
+
63
+ Please be respectful and inclusive. Disrespectful or inappropriate behavior will not be tolerated.