Metadata-Version: 2.4
Name: gams-pylican
Version: 0.0.1
Summary: Python based gams5 client / api facade - installabe via pip, uv etc. Pelicans use their massive pouches to scoop up and transport large catches. Similarily gams-pylican transports gams5 data for your personal usage.
Author-email: Sebastian David Schiller-Stoff <sebastian.stoff@uni-graz.at>
License-File: LICENSE.md
Requires-Python: >=3.12
Requires-Dist: requests>=2.32.4
Description-Content-Type: text/markdown

# gams-pylican

Lightweight python based gams5 client / api facade - installable via pip, uv etc. Pelicans use their massive pouches to scoop up and transport large catches. Similarly, gams-pylican transports gams5 data for your personal usage.


# Installation

```sh
# e.g.
pip install gams-pylican


```

# Quickstart

```py
import gams_pylican

# instantiate client
gams_client = gams_pylican.bootstrap_client("https://gams.uni-graz.at")

# use api facade operations (public get)
objects = gams_client.curation.list_objects("memor")


```


# State changing operations

- e.g. CRUD on digital objects, datastreams, projects or ingest operations.

```py
import gams_pylican

# instantiate client
gams_client = gams_pylican.bootstrap_client("https://gams.uni-graz.at")

# either supply username and password
gams_client.login(username="foo", password="bar")
# or overwrite values from env variables (PYLICAN_USER, PYLICAN_PASSWORD)
gams_client.login() # in this case method can be empty

# perform state changing operations
gams_client.curation.update_project("foo", "bar")
gams_client.curation.ingest("foo")
# ...

# logout as last step
gams_client.logout()


```


## Development

### Release

1. Increment version in pyproject.toml in feature branch (merging into develop):
    - make sure version follow vd.d.d pattern 
2. Merge changes to develop -> main
3. Create release on the gitlab webclient (from main branch) with new git tag that must be the same as in the pyproject.toml!
    - e.g. v0.1.1
    - create the release from the main branch!
    - gitlab will autodeploy the new version to pypi