Python library for calculating Christian liturgical dates
Project description
Liturgical Calendar / Calendario Litúrgico / Calendrier Liturgique
English
A Python library for calculating Christian liturgical dates in both Julian and Gregorian calendars.
Features
- ✅ Julian calendar support (years 532-1582)
- ✅ Gregorian calendar support (years 1583+)
- ✅ Cross-platform (Windows, Linux, macOS)
- ✅ No special characters in function names (no ñ, no accents)
- ✅ Fully type-hinted
- ✅ No external dependencies (core library)
- ✅ Etalab Open License 2.0 (free for commercial use)
- ✅ Web interface for testing with experts
Installation
Option 1: From PyPI (when published)
pip install calendario-liturgico
Option 2: Local Installation
Windows:
git clone https://github.com/andresecha/calendario-liturgico.git
cd calendario-liturgico
install_local.bat
Linux/macOS:
git clone https://github.com/andresecha/calendario-liturgico.git
cd calendario-liturgico
chmod +x install_local.sh
./install_local.sh
Quick Start
from calendario_liturgico import LiturgicalCalendar
# Create calendar for 2024
cal = LiturgicalCalendar(2024)
# Get liturgical dates
print(cal.get_easter_sunday()) # 2024-03-31
print(cal.get_ash_wednesday()) # 2024-02-14
print(cal.get_pentecost()) # 2024-05-19
print(cal.get_corpus_christi()) # 2024-05-30
# Get all dates at once
all_dates = cal.get_all_dates()
for event, date in all_dates.items():
print(f"{event}: {date}")
Web Interface for Testing
Perfect for validation with liturgical experts:
Windows:
cd web
python app.py
Linux/macOS:
cd web
python3 app.py
Then open http://localhost:5000 in your browser.
API Reference
All method names are in English without special characters:
Main Methods
get_easter_sunday()- Easter Sundayget_ash_wednesday()- Ash Wednesday (start of Lent)get_palm_sunday()- Palm Sundayget_holy_thursday()- Holy Thursday / Maundy Thursdayget_good_friday()- Good Fridayget_holy_saturday()- Holy Saturdayget_pentecost()- Pentecost (49 days after Easter)get_ascension()- Ascension (39 days after Easter)get_trinity_sunday()- Trinity Sundayget_corpus_christi()- Corpus Christiget_epiphany()- Epiphany (January 6)get_baptism_of_the_lord()- Baptism of the Lordget_advent_start()- First Sunday of Adventget_advent_sundays()- All four Sundays of Advent (returns list)get_christ_the_king()- Christ the King (last Sunday before Advent)get_lent_range()- Lent period (returns tuple: start, end)get_all_dates()- Dictionary with all liturgical dates
Utility Functions
from calendario_liturgico import is_leap_year, calculate_gregorian_easter
# Check if year is leap
is_leap_year(2024) # True
is_leap_year(1900) # False (Gregorian)
is_leap_year(1900, is_julian=True) # True (Julian)
# Calculate Easter for Gregorian calendar
calculate_gregorian_easter(2025) # datetime.date(2025, 4, 20)
Running Tests
pytest
License
Etalab Open License 2.0 - Free for commercial and non-commercial use with attribution requirement. Compatible with Creative Commons Attribution (CC-BY).
Español
Una librería Python para calcular fechas del calendario litúrgico cristiano en calendarios juliano y gregoriano.
Características
- ✅ Soporte para calendario juliano (años 532-1582)
- ✅ Soporte para calendario gregoriano (años 1583+)
- ✅ Multiplataforma (Windows, Linux, macOS)
- ✅ Sin caracteres especiales en nombres de funciones (sin ñ, sin acentos)
- ✅ Completamente documentado con type hints
- ✅ Sin dependencias externas (librería base)
- ✅ Licencia Abierta Etalab 2.0 (libre para uso comercial)
- ✅ Interfaz web para pruebas con expertos
Instalación
Opción 1: Desde PyPI (cuando se publique)
pip install calendario-liturgico
Opción 2: Instalación Local
Windows:
git clone https://github.com/andresecha/calendario-liturgico.git
cd calendario-liturgico
install_local.bat
Linux/macOS:
git clone https://github.com/andresecha/calendario-liturgico.git
cd calendario-liturgico
chmod +x install_local.sh
./install_local.sh
Uso Rápido
from calendario_liturgico import LiturgicalCalendar
# Crear calendario para 2024
cal = LiturgicalCalendar(2024)
# Obtener fechas litúrgicas
print(cal.get_easter_sunday()) # 2024-03-31
print(cal.get_ash_wednesday()) # 2024-02-14
print(cal.get_pentecost()) # 2024-05-19
print(cal.get_corpus_christi()) # 2024-05-30
# Obtener todas las fechas de una vez
todas_fechas = cal.get_all_dates()
for evento, fecha in todas_fechas.items():
print(f"{evento}: {fecha}")
Interfaz Web para Pruebas
Perfecta para validación con expertos litúrgicos:
Windows:
cd web
python app.py
Linux/macOS:
cd web
python3 app.py
Luego abre http://localhost:5000 en tu navegador.
Referencia de API
Todos los nombres de métodos están en inglés sin caracteres especiales:
Métodos Principales
get_easter_sunday()- Domingo de Pascuaget_ash_wednesday()- Miércoles de Ceniza (inicio de Cuaresma)get_palm_sunday()- Domingo de Ramosget_holy_thursday()- Jueves Santoget_good_friday()- Viernes Santoget_holy_saturday()- Sábado Santoget_pentecost()- Pentecostés (49 días después de Pascua)get_ascension()- Ascensión (39 días después de Pascua)get_trinity_sunday()- Domingo de la Trinidadget_corpus_christi()- Corpus Christiget_epiphany()- Epifanía (6 de enero)get_baptism_of_the_lord()- Bautismo del Señorget_advent_start()- Primer Domingo de Advientoget_advent_sundays()- Los cuatro Domingos de Adviento (devuelve lista)get_christ_the_king()- Cristo Rey (último domingo antes del Adviento)get_lent_range()- Período de Cuaresma (devuelve tupla: inicio, fin)get_all_dates()- Diccionario con todas las fechas litúrgicas
Funciones Auxiliares
from calendario_liturgico import is_leap_year, calculate_gregorian_easter
# Verificar si el año es bisiesto
is_leap_year(2024) # True
is_leap_year(1900) # False (Gregoriano)
is_leap_year(1900, is_julian=True) # True (Juliano)
# Calcular Pascua para calendario gregoriano
calculate_gregorian_easter(2025) # datetime.date(2025, 4, 20)
Ejecutar Tests
pytest
Licencia
Licencia Abierta Etalab 2.0 - Libre para uso comercial y no comercial con requisito de atribución. Compatible con Creative Commons Attribution (CC-BY).
Français
Une bibliothèque Python pour calculer les dates du calendrier liturgique chrétien dans les calendriers julien et grégorien.
Caractéristiques
- ✅ Support du calendrier julien (années 532-1582)
- ✅ Support du calendrier grégorien (années 1583+)
- ✅ Multiplateforme (Windows, Linux, macOS)
- ✅ Aucun caractère spécial dans les noms de fonctions (pas de ñ, pas d'accents)
- ✅ Entièrement documenté avec type hints
- ✅ Aucune dépendance externe (bibliothèque de base)
- ✅ Licence Ouverte Etalab 2.0 (libre pour usage commercial)
- ✅ Interface web pour tests avec des experts
Installation
Option 1: Depuis PyPI
pip install calendario-liturgico
Option 2: Installation Locale
Windows:
git clone https://github.com/andresecha/calendario-liturgico.git
cd calendario-liturgico
install_local.bat
Linux/macOS:
git clone https://github.com/andresecha/calendario-liturgico.git
cd calendario-liturgico
chmod +x install_local.sh
./install_local.sh
Démarrage Rapide
from calendario_liturgico import LiturgicalCalendar
# Créer calendrier pour 2024
cal = LiturgicalCalendar(2024)
# Obtenir les dates liturgiques
print(cal.get_easter_sunday()) # 2024-03-31
print(cal.get_ash_wednesday()) # 2024-02-14
print(cal.get_pentecost()) # 2024-05-19
print(cal.get_corpus_christi()) # 2024-05-30
# Obtenir toutes les dates en une fois
toutes_dates = cal.get_all_dates()
for evenement, date in toutes_dates.items():
print(f"{evenement}: {date}")
Interface Web pour Tests
Parfaite pour la validation avec des experts liturgiques:
Windows:
cd web
python app.py
Linux/macOS:
cd web
python3 app.py
Puis ouvrez http://localhost:5000 dans votre navigateur.
Référence API
Tous les noms de méthodes sont en anglais sans caractères spéciaux:
Méthodes Principales
get_easter_sunday()- Dimanche de Pâquesget_ash_wednesday()- Mercredi des Cendres (début du Carême)get_palm_sunday()- Dimanche des Rameauxget_holy_thursday()- Jeudi Saintget_good_friday()- Vendredi Saintget_holy_saturday()- Samedi Saintget_pentecost()- Pentecôte (49 jours après Pâques)get_ascension()- Ascension (39 jours après Pâques)get_trinity_sunday()- Dimanche de la Trinitéget_corpus_christi()- Fête-Dieu (Corpus Christi)get_epiphany()- Épiphanie (6 janvier)get_baptism_of_the_lord()- Baptême du Seigneurget_advent_start()- Premier Dimanche de l'Aventget_advent_sundays()- Les quatre Dimanches de l'Avent (retourne liste)get_christ_the_king()- Christ Roi (dernier dimanche avant l'Avent)get_lent_range()- Période du Carême (retourne tuple: début, fin)get_all_dates()- Dictionnaire avec toutes les dates liturgiques
Fonctions Utilitaires
from calendario_liturgico import is_leap_year, calculate_gregorian_easter
# Vérifier si l'année est bissextile
is_leap_year(2024) # True
is_leap_year(1900) # False (Grégorien)
is_leap_year(1900, is_julian=True) # True (Julien)
# Calculer Pâques pour calendrier grégorien
calculate_gregorian_easter(2025) # datetime.date(2025, 4, 20)
Exécuter les Tests
pytest
Licence
Licence Ouverte Etalab 2.0 - Libre pour usage commercial et non commercial avec exigence d'attribution. Compatible avec Creative Commons Attribution (CC-BY).
For Historians / Para Historiadores / Pour les Historiens
EN: This library is designed specifically for historians working with historical documents that use liturgical dates. The web interface allows easy validation of calculations with liturgical experts.
ES: Esta biblioteca está diseñada específicamente para historiadores que trabajan con documentos históricos que utilizan fechas litúrgicas. La interfaz web permite una fácil validación de cálculos con expertos litúrgicos.
FR: Cette bibliothèque est conçue spécifiquement pour les historiens travaillant avec des documents historiques utilisant des dates liturgiques. L'interface web permet une validation facile des calculs avec des experts liturgiques.
Technical Details / Detalles Técnicos / Détails Techniques
Platform Support / Soporte de Plataformas / Support de Plateformes
| Platform | Installation | Web Server |
|---|---|---|
| Windows | install_local.bat |
python app.py |
| Linux | ./install_local.sh |
python3 app.py |
| macOS | ./install_local.sh |
python3 app.py |
Requirements / Requisitos / Exigences
- Python 3.8 or higher / o superior / ou supérieur
- pip (included with Python / incluido con Python / inclus avec Python)
- Optional: Flask 3.0+ for web interface / Opcional: Flask 3.0+ para interfaz web / Optionnel: Flask 3.0+ pour interface web
Data Range / Rango de Datos / Plage de Données
- Julian Calendar / Calendario Juliano / Calendrier Julien: Years 532-1582
- Gregorian Calendar / Calendario Gregoriano / Calendrier Grégorien: Years 1583+
Contributing / Contribuir / Contribuer
EN: Contributions are welcome! Please ensure:
- All function/method names in English
- No special characters (ñ, accents) in code
- Add tests for new functionality
- Update documentation in all three languages
ES: ¡Las contribuciones son bienvenidas! Por favor asegurar:
- Todos los nombres de funciones/métodos en inglés
- Sin caracteres especiales (ñ, acentos) en el código
- Agregar tests para nueva funcionalidad
- Actualizar documentación en los tres idiomas
FR: Les contributions sont les bienvenues! Veuillez vous assurer:
- Tous les noms de fonctions/méthodes en anglais
- Aucun caractère spécial (ñ, accents) dans le code
- Ajouter des tests pour les nouvelles fonctionnalités
- Mettre à jour la documentation dans les trois langues
Author / Autor / Auteur
Andres Felipe Echavarria Pelaez
Version
0.1.0
License / Licencia / Licence
Etalab Open License 2.0 / Licence Ouverte Etalab 2.0 - See LICENSE file for details
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file calendario_liturgico-0.1.0.tar.gz.
File metadata
- Download URL: calendario_liturgico-0.1.0.tar.gz
- Upload date:
- Size: 27.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
12edb810137c76a30b49944805f068dd69836416b51a96e1015e1067f3b4a6fc
|
|
| MD5 |
23c248a61220fbbaa37e791b6382185f
|
|
| BLAKE2b-256 |
5a41ae50ce9c293cdf5cffd68e15b9f4630f0ed60bf3fec634f9ff1954c4bbbf
|
File details
Details for the file calendario_liturgico-0.1.0-py3-none-any.whl.
File metadata
- Download URL: calendario_liturgico-0.1.0-py3-none-any.whl
- Upload date:
- Size: 23.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7f8d93e25b0ca3b0a599a3cac253d038379eb8c51f1d12254a588ff519882791
|
|
| MD5 |
69676e3cdffea1ff2e247fa11c464fa6
|
|
| BLAKE2b-256 |
1ee48e8dd15ee1272d93193ca484e90179eca9b5513676ae04439d8eb4361997
|