Files
typikon/pyproject.toml
T
funkpower f2867f8212 the fast was reading the calendar and ignoring who was on it
An adversarial pass found the rules throwing away the feast rank that
describe() computes, in exactly the seasons where it decides the answer.

  - A saint of vigil or polyeleos rank now lifts a weekday of a fast, to wine
    and oil inside the Great Fast and as far as fish in the three lesser
    ones. This is why the printed calendars mark so many Wednesdays in the
    Nativity Fast; 74 days across 2020-2030 were being reported stricter than
    any published calendar keeps them, St Nicholas and the Forty Martyrs of
    Sebaste among them.
  - The Annunciation was tested after Great Friday and Great Saturday, so on
    the years it lands there it vanished into them entirely -- the Great Feast
    of the Incarnation demoted to a bullet, reported as a total fast, and its
    rank overwritten with the lesser movable one the rules then read. It is
    now tested first and lifts those days to wine and oil. Five such years
    this century on the Gregorian paschalion, seven on the Julian.
  - Lazarus Saturday and Palm Sunday belonged to no season at all, sitting
    between the Forty Days and Great Week. Any rule keying on the season fell
    through, so Byzantine Catholic jurisdictions reported a meat glyph and
    'no fast' on Palm Sunday.
  - The eves of the Nativity and Theophany are relaxed to wine and oil when
    they fall on a weekend, which ruthenian.py already implemented and this
    module did not.

Also: iCalendar folded on characters where RFC 5545 counts octets, so an
emoji put lines up to 80 octets over a 75-octet limit; a malformed --date
printed a traceback; the overlaid menologion was rebuilt for every single day
asked about; the Nativity of the Forerunner was ranked below its class.

Fourteen new tests, each one able to fail. The old sweep asserted only
all(d.fast), and 'none' is a truthy string.
2026-09-18 10:29:25 -04:00

44 lines
1.2 KiB
TOML

[build-system]
requires = ["setuptools>=64"]
build-backend = "setuptools.build_meta"
[project]
name = "typikon"
version = "0.1.0"
description = "The Orthodox liturgical day — feasts, seasons and the fast, computed rather than fetched"
readme = "README.md"
license = { text = "GPL-2.0-only" }
requires-python = ">=3.9"
authors = [{ name = "funkpower", email = "funkpower@pumpin.online" }]
keywords = ["orthodox", "liturgical", "calendar", "byzantine", "pascha",
"menologion", "typikon", "fasting"]
classifiers = [
"Development Status :: 4 - Beta",
"Environment :: Console",
"Intended Audience :: End Users/Desktop",
"License :: OSI Approved :: GNU General Public License v2 (GPLv2)",
"Programming Language :: Python :: 3",
"Topic :: Religion",
"Topic :: Utilities",
]
dependencies = []
[project.optional-dependencies]
dev = ["pytest>=7"]
[project.urls]
Homepage = "https://git.pumpin.online/funkpower/typikon"
Source = "https://git.pumpin.online/funkpower/typikon"
[project.scripts]
typikon = "typikon.cli:main"
[tool.setuptools.packages.find]
include = ["typikon*"]
[tool.setuptools.package-data]
typikon = ["data/*.json", "data/LICENSE"]
[tool.pytest.ini_options]
testpaths = ["tests"]