Asynchronous functions for making HTTP requests to Gancio istances
Project description
gancio_requests
gancio_requests
is a tool for making asynchronous HTTP
requests to the API of a specified Gancio instance. Gancio is a shared
agenda for local communities, a project which wants to provide
a self-hosted solution to host and organize events.
This repo aims to supply a convenient set of functions to fetch data from a gancio instance (e.g. scheduled events, the image or description of an event).
Installation
To install the latest version of the library just download (or clone) the current project, open a terminal and run the following commands:
pip install -r requirements.txt
pip install .
Alternatively use pip
pip install gancio_requests
Dependencies
At the moment I have tested the library only on python == 3.10.4
The library requires the dependencies specified in requirements.txt and I haven't still tested other versions.
Usage
Command line interface
python3 -m gancio_requests [-h] gancio_instance
gancio_instance is the URL of the instance from which we want to fetch the data.
The output displays the list of events starting of 00:00:00 of the current day. The information about an event is shown this way:
EVENT_NAME
[STARTING_TIME | END_TIME]
PLACE_NAME - ADDRESS
LIST_OF_TAGS (optional)
EVENT_URL
Example
Input
python3 -m gancio_requests https://gancio.cisti.org
Output
Crazy toga party
[2022-08-11 22:30:00 | 2022-08-12 00:00:00]
Colosseo - Piazza del Colosseo, Roma
Tags: ["colosseum", "ancient rome", "toga party"]
https://gancio.cisti.org/crazy-toga-party
Gioco del ponte
[2022-09-10 22:00:00 | 2022-09-10 23:00:00]
Ponte di mezzo - Ponte di Mezzo, 1, 56125 Pisa
https://gancio.cisti.org/gioco-del-ponte
Python library
After the installation, it is possible to use the package
directly from the python interpreter by using
import gancio_requests
.
Caching
It is possible to cache HTTP requests thanks to aiohttp-client-cache. All the functions shown above have an optional parameter called cache which accepts a aiohttp_client_cache.backends object.
import asyncio
from aiohttp_client_cache import SQLiteBackend
from gancio_requests.request import get_events
url = 'https://gancio.cisti.org'
params = {"start": 0}
cache = SQLiteBackend(
cache_name = "Test.db"
)
result = asyncio.run(get_events(url, params, cache=cache))
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for gancio_requests-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 93ebd42b7fede7fdf9611c03deb4445b4a7ad2c287623bcaed39a7ee3f2620a8 |
|
MD5 | 15a8cf1262380b5ff324528e05f840b1 |
|
BLAKE2b-256 | 0896143a7e4cef849e9ba999bac534d5453606b8780ce9ce530af19539073a77 |