Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v0.0.2 #10

Merged
merged 3 commits into from
Feb 25, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 35 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ The **DataCosmos SDK** allows Open Cosmos' customers to interact with the **Data
The easiest way to install the SDK is via **pip**:

```sh
pip install datacosmos
pip install datacosmos=={version}
```

## Getting Started
Expand All @@ -22,7 +22,7 @@ The recommended way to initialize the SDK is by passing a `Config` object with a

```python
from datacosmos.datacosmos_client import DatacosmosClient
from datacosmos.config import Config
from config.config import Config

config = Config(
authentication={
Expand Down Expand Up @@ -114,7 +114,7 @@ stac_client.delete_collection(collection_id)
#### 1. **Search Items**

```python
from datacosmos.stac.models.search_parameters import SearchParameters
from datacosmos.stac.item.models.search_parameters import SearchParameters

parameters = SearchParameters(collections=["example-collection"], limit=1)
items = list(stac_client.search_items(parameters=parameters))
Expand All @@ -135,35 +135,53 @@ items = stac_client.fetch_collection_items(collection_id="example-collection")
#### 4. **Create a New STAC Item**

```python
from pystac import Item, Asset
from datetime import datetime
from pystac import Item, Asset
from pystac.utils import str_to_datetime

stac_item = Item(
id="new-item",
geometry={"type": "Point", "coordinates": [102.0, 0.5]},
bbox=[101.0, 0.0, 103.0, 1.0],
datetime=datetime.utcnow(),
properties={},
collection="example-collection"
id="MENUT_000001418_20240211120920_20240211120932_new_release.tiff",
geometry={
"type": "Polygon",
"coordinates": [
[
[-24.937406454761664, 64.5931773445667],
[-19.6596824245997, 64.5931773445667],
[-19.6596824245997, 63.117895100111724],
[-24.937406454761664, 63.117895100111724],
[-24.937406454761664, 64.5931773445667]
]
]
},
bbox=[
-24.937406454761664,
63.117895100111724,
-19.6596824245997,
64.5931773445667
],
datetime=str_to_datetime("2024-02-11T12:09:32Z"),
properties={"processing:level": "L0"},
collection="menut-l0",
)

stac_item.add_asset(
"image",
"thumbnail",
Asset(
href="https://example.com/sample-image.tiff",
media_type="image/tiff",
roles=["data"],
title="Sample Image"
href="https://test.app.open-cosmos.com/api/data/v0/storage/full/menut/l0/2024/02/11/MENUT_000001418_20240211120920_20240211120932.tiff/thumbnail.webp",
media_type="image/webp",
roles=["thumbnail"],
title="Thumbnail",
description="Thumbnail of the image"
)
)

stac_client.create_item(collection_id="example-collection", item=stac_item)
stac_client.create_item(collection_id="menutl-l0", item=stac_item)
```

#### 5. **Update an Existing STAC Item**

```python
from datacosmos.stac.models.item_update import ItemUpdate
from datacosmos.stac.item.models.item_update import ItemUpdate
from pystac import Asset, Link

update_payload = ItemUpdate(
Expand Down
5 changes: 0 additions & 5 deletions config/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,3 @@
This package includes modules for loading and managing authentication
configurations.
"""

# Expose Config class for easier imports
from .config import Config

__all__ = ["Config"]
1 change: 1 addition & 0 deletions config/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ class Config(BaseSettings):
model_config = SettingsConfigDict(
env_nested_delimiter="__",
nested_model_default_partial_update=True,
extra="allow",
)

authentication: Optional[M2MAuthenticationConfig] = None
Expand Down
1 change: 1 addition & 0 deletions config/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
"""Models for configuration settings."""
2 changes: 1 addition & 1 deletion datacosmos/stac/collection/collection_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

from datacosmos.datacosmos_client import DatacosmosClient
from datacosmos.stac.collection.models.collection_update import CollectionUpdate
from datacosmos.utils.http_response import check_api_response
from datacosmos.utils.http_response.check_api_response import check_api_response


class CollectionClient:
Expand Down
2 changes: 1 addition & 1 deletion datacosmos/stac/item/item_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from datacosmos.exceptions.datacosmos_exception import DatacosmosException
from datacosmos.stac.item.models.item_update import ItemUpdate
from datacosmos.stac.item.models.search_parameters import SearchParameters
from datacosmos.utils.http_response import check_api_response
from datacosmos.utils.http_response.check_api_response import check_api_response


class ItemClient:
Expand Down
6 changes: 3 additions & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "datacosmos"
version = "0.0.1"
version = "0.0.2"
authors = [
{ name="Open Cosmos", email="support@open-cosmos.com" },
]
Expand Down Expand Up @@ -33,8 +33,8 @@ dev = [
"pydocstyle==6.1.1"
]

[tool.setuptools]
packages = ["datacosmos"]
[tool.setuptools.packages.find]
include = ["datacosmos*", "config*"]

[tool.bandit]
exclude_dirs = [".venv"]
Expand Down