DateTime python extensions to help create and consult a liturgical calendar
(C) Martin Raynal, 2015
This project references the following python modules:
- Motu Proprio Mysterii paschalis, Paul VI, 14-02-1969
- General Norms for the Liturgical Year and the Calendar, 21-03-1969
- Decree Celebratio Baptismatis Domini, 7 October 1977
- Notificatio: DE OCCURRENTIA MEMORIAE OBLIGATORIAE IMMACULATI CORDIS BEATAE MARIAE VIRGINIS, Per Decretum die 01-01-1996
- Apostolorum Apostola - Decretum CCDDS 03-06-2016
== Most functional work is done, still need data feeding and some cleanup. == CatholicDateUtils.py : * Methods returning the date of various solemnities and feasts for a given year * Full-year calendar generation (heavily based on ROMCal implementation) - use: cl= computeCalendar(year, continent, country, diocese, verbose) returns an array containing all informations for given year, optionally with the addition of continental and national Propers celebrations - for printing the French calendar to csv: from CatholicDateUtils import * cl=computeCalendar(2017,'Europe','France',verbose=False) f1=open('./generated_2017.csv','w+') for day in cl: print >>f1, day.printAll_TR('fr-FR') TODO: provide a cleaner API to print and use this structure... LiturgicalUtils.py : * 'LiturgicalDay'Class and Enums - the day class provides several ways of printing a specific day (raw, translated...). This will likely be expanded again. Translation.py : * Methods used to translate the keys found in the calendar structure. * Expects all localised files to be stored in './locale/[localeName]/' directory, except for default ('en-EN') ones that are at root. TODO List * Options to generate specific fixed calendars forContinent/Country/Diocese and Orders * AP to pretty print the calendars * Explicits Queries: Fix calculations to ensure correct priorities are always taken into account - For now the date of a Feast will always be returned even when it is superseded by another solemnity or sunday (ex. St Matthias 2015) * The current calendar is the General Roman Calendar for the ordinary Rite (cf. Mysterii Paschalis, 1969). I may also implement the Tridentine calendar someday. * Test. Test and test again. This was really not tested enough, which is NOT GOOD(TM) * Maybe actually learn Python ? As this is my first project it is likely ridden with noob errors. Oh well... In fine, I hope to use it for several applications - in particular, to feed the @Angelus_LT & @Angelus_FRA twitter accounts with daily hashtags, or provide the results as a web service...
## Credits This was inspired by Jan Schreuder's article on CodeProject:
http://www.codeproject.com/Articles/10860/Calculating-Christian-Holidays
and the RomCal project:
http://www.romcal.net/
It also makes use of the DateUtil python library, especially (obviously?) the easter() function.
https://labix.org/python-dateutil