Skip to main content

Python library to streamline interaction with the ENVRI-Hub APIs, providing a pythonic facade to data and service access.

Project description

ENVRI Hub's VRE Library

This is the official ENVRI-Hub Python library, its purpose is to streamline interaction with the ENVRI-Hub APIs, providing a pythonic facade to data and service access.

Quickstart

After installing the package with a quick

pip install envrihub

You can start using the ENVRI-HUB resorces right away through the Hub object:

from envrihub import Hub

hub = Hub()

You can query it to retrieve resources that match your needs:

for res in hub.search_catalogue('bacon'):
    print(res.title)

You can specify free text queries, time boundaries, geographic boundaries, dara providers and/or variables you expect in your data. Here is an example of geographical search with a WKT polygon:

geography = 'POLYGON((10.70 48.34,
                28.98 48.34
                28.98 36.17,
                10.70 36.17,
                10.70 48.34))'

for i in hub.search_catalogue(geography = geography):
    print(i.title)

Just type help(hub.seach_catalogue) for the full details.

You can also access a resurce directly if you know its unique identifier in the Catalogue of Services:

res = hub.fetch_from_catalogue('b646c445-57b8-4553-bf2f-12448ee16b55')

Retrieved resources have the following properties:

  • title: a human readable title for the resource;
  • id: the resource's identifier in the Catalogue of Services;
  • description: a human readable description of the resource;
  • metadata: the whole EPOS-DCAT-AP metadata of the resource;
  • dao: the data access object that allows you to get the actual data. All DAOs have an access method.

DAO objects are auto-generated according to the resource's metadata and can have additional methods to access data, when in doubt check them out with the help function:

help(res.dao)

If the resource is a Web Service, the DAO object allows to query such a service with all due parameters:

res = hub.fetch_from_catalogue('16c3ae2f-ba39-4239-964d-12e67c378fef')
res.dao.access(id='138228')

Or if the resource is a static file it lets you download it either as a bytes object or directly to your file system.

res = hub.fetch_from_catalogue('b646c445-57b8-4553-bf2f-12448ee16b55')
byte_stream = res.dao.access() # bytes object
res.dao.download('path-to.file') # local file download

Digital kleptomaniacs rejoice! This means that with a handful of lines you can now scrape the whole ENVRI-HUB!

for res in hub.search_catalogue():
    if res.is_downloadable():
        res.dao.download(res.id)

Contributing

To contribute, you have to attend ENVRI-Hub Next's WP13 monthly meetings. For now, if we never saw you, your pull requests will be rejected.

Acknowledgements

This project is funded by the ENVRI-Hub Next project. The project received funding from the European Union’s Horizon Europe research and innovation programme under grant agreement No 101131141.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

envrihub-0.0.6.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

envrihub-0.0.6-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

Details for the file envrihub-0.0.6.tar.gz.

File metadata

  • Download URL: envrihub-0.0.6.tar.gz
  • Upload date:
  • Size: 6.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.13

File hashes

Hashes for envrihub-0.0.6.tar.gz
Algorithm Hash digest
SHA256 f8d50fe38c10c8eff32e8e2b272653c5d6dc395dd29dec7c52d0dca521242975
MD5 f57563ac206d88888bbb4076d616b60e
BLAKE2b-256 4aba9b213aeb1c0312ecdcc8a1a5c9d3d9701ab393eccc787376897b65d3ed8c

See more details on using hashes here.

File details

Details for the file envrihub-0.0.6-py3-none-any.whl.

File metadata

  • Download URL: envrihub-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 5.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.13

File hashes

Hashes for envrihub-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 be35a9419425b4a3f94c6207ca4608f816df0e6a266c0d5ff796cff3c164d9a6
MD5 9b9d61f85bb916b1566e2f49f4524fe7
BLAKE2b-256 020ed5a2111c1e5819f39834c2abb8d5588bed4b665b7aceae053c5f6a23c107

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page