# EOCube.RO Tools

[](https://gitlab.dev.info.uvt.ro/rocs/tools/eocube-tools/-/pipelines)
This repository holds the `eocube` python library currently providing a set of minimal
tools aimed to be used on the STAC Catalogs and data hosted by the ROCS Project
## Installing
### Option 1: From PyPi
```bash
pip install "eocube[cli]"
```
Visit https://pypi.org/project/eocube/ for more oficial packages.
### Option 2: From GitLab Package Registry
```bash
pip install eocube[cli] --index-url https://gitlab.dev.info.uvt.ro/api/v4/projects/3491/packages/pypi/simple
```
Visit the [GitLab Package Registry](https://gitlab.dev.info.uvt.ro/rocs/tools/eocube-tools/-/packages) for available development packages
### Option 3: From Git (development branch)
```bash
pip install "eocube[cli] @ git+https://gitlab.dev.info.uvt.ro/rocs/tools/eocube-tools.git@main"
```
## Command Line Tools
You can use the command line tool by calling the `eocube` library.
```bash
Usage: eocube [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
services
```
### π Authentication
#### Login
In order to authenticate against our service provider you need to call:
```bash
eocube auth login
```
This will open a browser window and perform the standard authentication.
#### Logout
In order to invalidate the session and delete local token issue you need to call:
```bash
eocube auth login
```
#### User Info
For obtaining user information you can call:
```bash
eocube auth login
```
### π§° Internal Services
### π External Services
#### Geo-Spatial.Org Services
Some basic services from the Geo-Spatial.Org are provided. All the tools provide the
option to save the result in a `GeoJSON` file.
```
Usage: eocube services geospatialorg [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
get-administrative-unit-by-code
Uses the SIRUTA Code to retrieve the...
get-administrative-unit-by-name
Retrieves the administrative unit by name
get-county-by-mnemonic Retrieves the county by mnemonic
get-county-by-name Retrieves the county by name
```
## Library Tools
### Raster
- `eocube.raster.utils.get_raster_patches()`: Function generating patches over an rasterio `DatasetReaser`
We welcome contributions! If you'd like to improve `eocube`, fix bugs, or propose new features, follow the steps below to set up your development environment.
## π οΈ Development Setup (with Poetry)
This project uses [Poetry](https://python-poetry.org/) for dependency management and packaging.
### 1. Install Poetry
Follow the official instructions:
π https://python-poetry.org/docs/#installation
Or, if you're on a Unix-like system:
```bash
pip install poetry
```
Or
```bash
curl -sSL https://install.python-poetry.org | python3 -
```
Make sure itβs available:
```bash
poetry --version
```
### 2. Clone the repository
```bash
git clone https://gitlab.dev.info.uvt.ro/rocs/tools/eocube-tools.git
cd eocube-tools
```
### 3. Create a feature branch
**Never commit directly to main!**
Create a new branch for your work:
```bash
git checkout -b my-feature-branch # Replace with something meaningful
```
### 4. Install development dependencies
```bash
poetry install --with dev
```
This will install both the main library and the development tools (`black`, `pip-audit`, `twine`, etc).
### 5. Activate the shell (optional)
```bash
poetry shell
```
You can now run commands like `eocube`, `pytest`, or `black` directly.
## β
Submitting Changes
1. Push your branch to GitLab:
```bash
git push --set-upstream origin my-feature-branch
```
2. Open a Merge Request (MR) via the GitLab UI.
3. Your MR will be reviewed and must be approved by a project maintainer before it can be merged.
## π§Ή Code Style
Make sure your code is properly formated. Non-compliant code will be rejected.
We use [Black](https://black.readthedocs.io/en/stable/) for consistent formatting. Before committing:
```bash
poetry run black .
```
## π Acknowledgements
This work was supported by a grant of the Ministry of Research, Innovation and Digitization,
CCCDI - UEFISCDI, project number **PN-IV-P6-6.3-SOL-2024-2-0248**, within PNCDI IV.
## π Licensing
After updating do not forget to update the NOTICE file with:
```bash
pip-licenses --from=mixed --format=plain --with-urls -i eocube > NOTICE
```
## Publish to PyPi
Publication to PyPi is intentionally manual.
In order to publish to PyPi please make sure to be on the correct branch/tag and issue:
```bash
rm -fr build/ dist/*
poetry build
poetry run twine upload --verbose -s -i 5C5D049F dist/*
```
In the above example adapt the GPG key id with your key id.
Raw data
{
"_id": null,
"home_page": null,
"name": "eocube",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.10",
"maintainer_email": null,
"keywords": "earth observation, cube, geospatial, cli, s3, cloudnative, stac",
"author": "Marian Neagul",
"author_email": "marian.neagul@e-uvt.ro",
"download_url": "https://files.pythonhosted.org/packages/53/6c/736e5bb7a49867c04d7d044451ed237786bade1d0798f3e4e697e4f3ef01/eocube-0.0.13.tar.gz",
"platform": null,
"description": "# EOCube.RO Tools\n\n[](https://gitlab.dev.info.uvt.ro/rocs/tools/eocube-tools/-/pipelines)\n\nThis repository holds the `eocube` python library currently providing a set of minimal \ntools aimed to be used on the STAC Catalogs and data hosted by the ROCS Project\n\n## Installing\n\n### Option 1: From PyPi\n```bash\npip install \"eocube[cli]\"\n```\n\nVisit https://pypi.org/project/eocube/ for more oficial packages.\n\n### Option 2: From GitLab Package Registry\n```bash\npip install eocube[cli] --index-url https://gitlab.dev.info.uvt.ro/api/v4/projects/3491/packages/pypi/simple\n```\nVisit the [GitLab Package Registry](https://gitlab.dev.info.uvt.ro/rocs/tools/eocube-tools/-/packages) for available development packages\n\n### Option 3: From Git (development branch)\n```bash\npip install \"eocube[cli] @ git+https://gitlab.dev.info.uvt.ro/rocs/tools/eocube-tools.git@main\"\n```\n\n## Command Line Tools\nYou can use the command line tool by calling the `eocube` library.\n\n```bash\nUsage: eocube [OPTIONS] COMMAND [ARGS]...\n\nOptions:\n --help Show this message and exit.\n\nCommands:\n services\n```\n\n### \ud83d\udd10 Authentication\n#### Login\nIn order to authenticate against our service provider you need to call:\n\n```bash\neocube auth login\n```\n\nThis will open a browser window and perform the standard authentication.\n\n#### Logout\n\nIn order to invalidate the session and delete local token issue you need to call:\n```bash\neocube auth login\n```\n\n#### User Info\nFor obtaining user information you can call:\n\n```bash\neocube auth login\n```\n\n### \ud83e\uddf0 Internal Services\n### \ud83c\udf0d External Services\n#### Geo-Spatial.Org Services\n\nSome basic services from the Geo-Spatial.Org are provided. All the tools provide the \noption to save the result in a `GeoJSON` file. \n\n```\nUsage: eocube services geospatialorg [OPTIONS] COMMAND [ARGS]...\n\nOptions:\n --help Show this message and exit.\n\nCommands:\n get-administrative-unit-by-code\n Uses the SIRUTA Code to retrieve the...\n get-administrative-unit-by-name\n Retrieves the administrative unit by name\n get-county-by-mnemonic Retrieves the county by mnemonic\n get-county-by-name Retrieves the county by name\n```\n\n## Library Tools\n### Raster\n - `eocube.raster.utils.get_raster_patches()`: Function generating patches over an rasterio `DatasetReaser`\n\nWe welcome contributions! If you'd like to improve `eocube`, fix bugs, or propose new features, follow the steps below to set up your development environment.\n\n## \ud83d\udee0\ufe0f Development Setup (with Poetry)\n\nThis project uses [Poetry](https://python-poetry.org/) for dependency management and packaging.\n\n### 1. Install Poetry\n\nFollow the official instructions: \n\ud83d\udc49 https://python-poetry.org/docs/#installation\n\nOr, if you're on a Unix-like system:\n\n```bash\npip install poetry\n```\n\nOr\n\n```bash\ncurl -sSL https://install.python-poetry.org | python3 -\n```\n\nMake sure it\u2019s available:\n\n```bash\npoetry --version\n```\n\n### 2. Clone the repository\n```bash\ngit clone https://gitlab.dev.info.uvt.ro/rocs/tools/eocube-tools.git\ncd eocube-tools\n```\n\n### 3. Create a feature branch\n\n**Never commit directly to main!**\n\nCreate a new branch for your work:\n\n```bash\ngit checkout -b my-feature-branch # Replace with something meaningful\n```\n\n### 4. Install development dependencies\n```bash\npoetry install --with dev\n```\n\nThis will install both the main library and the development tools (`black`, `pip-audit`, `twine`, etc).\n\n### 5. Activate the shell (optional)\n\n```bash\npoetry shell\n```\n\nYou can now run commands like `eocube`, `pytest`, or `black` directly.\n\n## \u2705 Submitting Changes\n1. Push your branch to GitLab:\n ```bash\n git push --set-upstream origin my-feature-branch\n ```\n2. Open a Merge Request (MR) via the GitLab UI.\n3. Your MR will be reviewed and must be approved by a project maintainer before it can be merged.\n\n\n## \ud83e\uddf9 Code Style\nMake sure your code is properly formated. Non-compliant code will be rejected.\nWe use [Black](https://black.readthedocs.io/en/stable/) for consistent formatting. Before committing:\n\n```bash\npoetry run black .\n```\n\n## \ud83d\ude4f Acknowledgements\n\nThis work was supported by a grant of the Ministry of Research, Innovation and Digitization, \nCCCDI - UEFISCDI, project number **PN-IV-P6-6.3-SOL-2024-2-0248**, within PNCDI IV.\n\n## \ud83d\udcdc Licensing\nAfter updating do not forget to update the NOTICE file with:\n\n```bash\npip-licenses --from=mixed --format=plain --with-urls -i eocube > NOTICE\n```\n\n## Publish to PyPi\nPublication to PyPi is intentionally manual.\n\nIn order to publish to PyPi please make sure to be on the correct branch/tag and issue:\n\n```bash\nrm -fr build/ dist/*\npoetry build\npoetry run twine upload --verbose -s -i 5C5D049F dist/*\n```\nIn the above example adapt the GPG key id with your key id.\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Support tool and library for EOCube.Ro",
"version": "0.0.13",
"project_urls": {
"Documentation": "https://rocs.pages.dev.info.uvt.ro/tools/eocube-tools/",
"Homepage": "https://eocube.ro",
"Repository": "https://gitlab.dev.info.uvt.ro/rocs/tools/eocube-tools"
},
"split_keywords": [
"earth observation",
" cube",
" geospatial",
" cli",
" s3",
" cloudnative",
" stac"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "fc32c105ce599a268a5c7e1194fd2cc55c79e161ceea7065369eab47b33b57c2",
"md5": "f940bb272c1d568d670844eb21f466df",
"sha256": "3c0b7aa3e054fb33b63130834bbf9d2a9f54dadda522347ce76f45c75b1d6c5f"
},
"downloads": -1,
"filename": "eocube-0.0.13-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f940bb272c1d568d670844eb21f466df",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.10",
"size": 38294,
"upload_time": "2025-07-21T12:34:03",
"upload_time_iso_8601": "2025-07-21T12:34:03.602153Z",
"url": "https://files.pythonhosted.org/packages/fc/32/c105ce599a268a5c7e1194fd2cc55c79e161ceea7065369eab47b33b57c2/eocube-0.0.13-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "536c736e5bb7a49867c04d7d044451ed237786bade1d0798f3e4e697e4f3ef01",
"md5": "9ddc17cdf9b41451a30e905baffd54f4",
"sha256": "7facc432a9349fd79ae711f00d6c5df36d864cea966339e47c3c3050f85176df"
},
"downloads": -1,
"filename": "eocube-0.0.13.tar.gz",
"has_sig": false,
"md5_digest": "9ddc17cdf9b41451a30e905baffd54f4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.10",
"size": 30671,
"upload_time": "2025-07-21T12:34:04",
"upload_time_iso_8601": "2025-07-21T12:34:04.993691Z",
"url": "https://files.pythonhosted.org/packages/53/6c/736e5bb7a49867c04d7d044451ed237786bade1d0798f3e4e697e4f3ef01/eocube-0.0.13.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-21 12:34:04",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "eocube"
}