Skip to content

thamin-i/aelf-api-client

Repository files navigation

aelf-api-client

An unofficial Python client for interacting with the AELF API. This library provides an easy-to-use interface for fetching liturgical information from the AELF API.

Table of contents

Features

  • Fetch liturgical information for a specific date and zone.
  • Retrieve liturgical entities (masses, complines, lauds, readings, none, sext, terce or vespers) for a specific date and zone.
  • Built with aiohttp for asynchronous requests.
  • Validates API responses using pydantic models.

Installation

Package is directly available from the Pypi repositories:

pip install aelf-api-client

Usage

Example: Fetch masses informations

from datetime import datetime

import asyncio

from aelf_api_client import AELFClient
from aelf_api_client.schemas.enums import ZoneEnum, EntityEnum
from aelf_api_client.schemas.responses import MassesResponseModel

async def main():
    client = AELFClient()
    date = datetime.now()
    zone = ZoneEnum.FRANCE

    masses: MassesResponseModel

    # 2 ways to fetch a liturgical entity:
    masses = await client.request_masses(date=date, zone=zone)
    # or
    masses = await client.request(entity=EntityEnum.MASS, date=date, zone=zone)

    print(masses)

asyncio.run(main())

Available Methods:

The AELFClient provides the following methods:

  • request(entity: EntityEnum, date: datetime, zone: ZonesEnum): Fetch any liturgical entity for a given day and zone
  • request_informations(date: datetime, zone: ZonesEnum): Fetch informations for a given day and zone
  • request_masses(date: datetime, zone: ZonesEnum): Fetch masses for a given day and zone
  • request_complines(date: datetime, zone: ZonesEnum): Fetch comlines for a given day and zone
  • request_lauds(date: datetime, zone: ZonesEnum): Fetch lauds for a given day and zone
  • request_readings(date: datetime, zone: ZonesEnum): Fetch readings for a given day and zone
  • request_none(date: datetime, zone: ZonesEnum): Fetch none for a given day and zone
  • request_sext(date: datetime, zone: ZonesEnum): Fetch sext for a given day and zone
  • request_terce(date: datetime, zone: ZonesEnum): Fetch terce for a given day and zone
  • request_vespers(date: datetime, zone: ZonesEnum): Fetch vespers for a given day and zone

Each method fetches data for a specific liturgical entity and returns a validated Pydantic response model.

Development

Setting Up the Local Environment

git clone git@github.com:thamin-i/aelf-api-client.git
cd aef-client
make install

Running Tests

Tests are written using pytest. To run the tests:

poetry run pytest

Code Formatting and Linting

This project uses ruff, isort, and pylint for formatting and linting. To check the code:

make format_code && make check_code

Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature or bugfix.
  3. Write tests for your changes.
  4. Run the tests to ensure everything works.
  5. Submit a pull request.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Links

About

Unofficial AELF API client (https://api.aelf.org)

Resources

License

Stars

2 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors