Skip to main content

A library to query GIE ALSI/AGSI data

Project description

Introduction

Python client for the ALSI/AGSI APIs

Documentation of the API can be found on GIE's website

Documentation of the client API can be found on: https://roiti-ltd.github.io/roiti-gie/

Installation

python -m pip install roiti-gie

Usage

The package is split in two clients:

  1. GieRawClient: Returns data in raw Python Dict.
  2. GiePandasClient: Returns parsed data in the form of a pandas DataFrame.
import asyncio
import os

from roiti.gie import GiePandasClient


async def main():
    """
    The following methods return pandas DataFrame, however you can use the
    raw client "raw_client = GieRawClient(api_key=Your API key)" and you will get the results as
    Python dictionaries.

    NOTE that every method available for AGSI is also available for ALSI
    """

    API_KEY = os.getenv("API_KEY")
    pandas_client = GiePandasClient(api_key=API_KEY)

    # You can specify the country, start date, end date, size (the number of results) in order to get country storage
    await pandas_client.query_country_agsi_storage("AT", start="2020-01-01", end="2022-07-10", size=60)

    # You can run the query without any parameters (in order to get all countries result)
    await pandas_client.query_country_alsi_storage()

    # You can use this query in order to get all AGSI/ALSI EICs (Energy Identification Code)
    await pandas_client.query_alsi_eic_listing()

    # Query which lists all the ALSI/AGSI news (without params)
    await pandas_client.query_alsi_news_listing()

    # Query which lists the news for a specific country (using the url code)
    await pandas_client.query_alsi_news_listing(43419)

    # Query which lists the data for a current facility storage (provide the storage name and params)
    await pandas_client.query_agsi_facility_storage("ugs_haidach_astora", start="2022-10-10")

    # You can list the data for a current storage only using its name
    await pandas_client.query_alsi_facility_storage("dunkerque")

    # Query which lists the data for a current company (also date and size are by choice)
    await pandas_client.query_agsi_company("astora", size=60)
    await pandas_client.query_alsi_company("dunkerque_lng", size=200)

    # Query which lists the unavailability for a current country (country name, date, size are optional)
    await pandas_client.query_agsi_unavailability("GB", size=60)
    await pandas_client.query_agsi_unavailability()
    await pandas_client.query_alsi_unavailability("FR")

    await pandas_client.close_session()


# set_event_loop_policy method is used in order to avoid EventLoopError for Windows
# asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
asyncio.run(main())

Running unit tests

Tell pytest where to look for unit tests and create env for ALSI API key

  • On Unix

    export PYTHONPATH=./src/roiti
    export API_KEY='<API_KEY>'
    
  • On Windows

    $env:PYTHONPATH='./src/roiti'
    $env:API_KEY='<API_KEY>'
    

Run unit tests in coverage mode

python -m pytest ./tests --import-mode=append --cov

Contributing

Set up your working environment:

  1. Create virtual environment

    python -m venv venv
    
  2. Activate the virtual environment

    • On UNIX system

      source venv/bin/activate
      
    • On Windows system

      ./venv/Scripts/activate
      

Install required packages:

python -m pip install -r requirements.txt -r requirements-dev.txt

Bumping the package version after making changes:

bumpversion major|minor|patch|build

Aknowledgements

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

roiti-gie-1.0.1.tar.gz (14.0 kB view details)

Uploaded Source

Built Distribution

roiti_gie-1.0.1-py3-none-any.whl (17.5 kB view details)

Uploaded Python 3

File details

Details for the file roiti-gie-1.0.1.tar.gz.

File metadata

  • Download URL: roiti-gie-1.0.1.tar.gz
  • Upload date:
  • Size: 14.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.15

File hashes

Hashes for roiti-gie-1.0.1.tar.gz
Algorithm Hash digest
SHA256 51a2a9ebe1174caf5731baffbee3dce798f72fecec1ac97f456bfad07198d23f
MD5 be2f69ea7741b75a7c809dac80340680
BLAKE2b-256 434bf45c970477499bec3c7f76844c9934effc62ce5fff19b832f6e8b902760b

See more details on using hashes here.

File details

Details for the file roiti_gie-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: roiti_gie-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 17.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.15

File hashes

Hashes for roiti_gie-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bd4a61e0cf40dad51fe18a1ddf774333e4368c139f42fd9a3e6a70b7ca90e54c
MD5 82b88e6677476acc363688335890b6f8
BLAKE2b-256 642d885edb09cb1582d6c808525aca96a5aeaaf3eee16ce9c5ff1784a294296f

See more details on using hashes here.

Supported by

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