catholic-mass-readings
=====
Welcome to the catholic-mass-readings documentation! Here you will find links to the core modules and examples of how to use each.
A Python package that enables converting a US Zip Code into a timezone.
Provides an API for scraping the web page from `Daily Readings `_ website of United States Conference of Catholic Bishops.
Modules
-------
If there is functionality that is missing or an error in the docs, please open a new issue `here `_.
.. toctree::
:maxdepth: 1
catholic_mass_readings/constants
catholic_mass_readings/models
catholic_mass_readings/usccb
Install
-------
To install catholic-mass-readings from PyPI, use the following command:
$ pip install catholic-mass-readings
You can also clone the repo and run the following command in the project root to install the source code as editable:
$ pip install -e .
Indices and tables
------------------
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
Examples
-----------------
The following example queries for the mass on a particular date:
.. code-block:: Python
import asyncio
import datetime
from catholic_mass_readings import USCCB, models
async with USCCB() as usccb:
mass = await usccb.get_mass(datetime.date(2024, 12, 25), models.MassType.VIGIL)
print(mass)
The following example queries for a range of Sunday masses:
.. code-block:: Python
async with USCCB() as usccb:
dates = usccb.get_sunday_mass_dates(datetime.date(2024, 12, 25), datetime.date(2025, 1, 25))
tasks = [usccb.get_mass_from_date(dt, types) for dt in dates]
responses = await asyncio.gather(*tasks)
masses = [m for m in responses if m]
masses.sort(key=lambda m: m.date.toordinal() if m.date else -1)
for mass in masses:
end = "\n" if mass is masses[-1] else "\n\n"
print(mass, end=end)
To query for a range of masses (step how you want to):
.. code-block:: Python
async with USCCB() as usccb:
dates = usccb.get_mass_dates(datetime.date(2024, 12, 25), datetime.date(2025, 1, 25), step=datetime.timedelta(days=1))
tasks = [usccb.get_mass_from_date(dt) for dt in dates]
responses = await asyncio.gather(*tasks)
masses = [m for m in responses if m]
masses.sort(key=lambda m: m.date.toordinal() if m.date else -1)
for mass in masses:
end = "\n" if mass is masses[-1] else "\n\n"
print(mass, end=end)
To query for the available mass types for a particular date:
.. code-block:: Python
async with USCCB() as usccb:
mass_types = await usccb.get_mass_types(datetime.date(2024, 12, 25))
for mass_type in mass_types:
print(mass_type.name)
.. code-block:: bash
# To get a mass for a particular date:
python -m catholic_mass_readings get-mass --date 2024-12-25 --type vigil
# To query for a range of Sunday masses:
python -m catholic_mass_readings get-sunday-mass-range --start 2024-12-25 --end 2025-01-01
# To query for a range of masses (step how you want to):
python -m catholic_mass_readings get-mass-range --start 2024-12-25 --end 2025-01-01 --step 7
# To query for a list of mass types on a particular date:
python -m catholic_mass_readings get-mass-types --date 2025-12-25
# or saving to a file...
# To get a mass for a particular date:
python -m catholic_mass_readings get-mass --date 2024-12-25 --type vigil --save mass.json
# To query for a range of Sunday masses:
python -m catholic_mass_readings get-sunday-mass-range --start 2024-12-25 --end 2025-01-01 --save mass.json
# To query for a range of masses (step how you want to):
python -m catholic_mass_readings get-mass-range --start 2024-12-25 --end 2025-01-01 --step 7 --save mass.json