- Undate is now Calendar aware / Calendar explicit; default is Gregorian
- New
BaseCalendarConverter
class, with additional methods required for calendar converters HebrewDateConverter
: Parsing and calendar conversion for Hebrew/Anno MundiIslamicDateConverter
: Parsing and calendar conversion for Islamic/HijriGregorianDateConverter
: basic Gregorian calendar logicundate.Calendar
class to trackUndate
object calendar, and match with calendar converters
- New
- BaseDateConverter class now includes nested/descendant subclasses when looking
for available converters Undate.to_undate
method to convert supported date objects toUndate
(datetime.date
,datetime.datetime
, and internalundate.date.Date
class)UndateInterval
improvements- Can be initialized with
Undate
objects or any type supported byUndate.to_undate
- New method for contains (
in
), to determine if another interval or date is contained by an interval - New method
intersection
to determine the overlap between twoUndateInterval
objects
- Can be initialized with
- EDTF parser : fixed day parsing for some unsupported cases
- Dropped support for Python 3.9
- Reorganized examples folder to avoid unnecessary nesting
- ISMI data has been updated from older JSON data to examples in RDF (turtle)
What's Changed
(auto-generated list of changes)
- Citation file by @rlskoeser in #70
- Reorganize and improve documentation by @rlskoeser in #81
- Add example usage to the readme #75 by @rlskoeser in #82
- Check notebooks in CI
check
workflow #76 by @rlskoeser in #83 - Configure mypy pre-commit check by @rlskoeser in #91
- Consolidate setup.cfg and pyproject.toml; drop tox; revamp sphinx docs by @rlskoeser in #88
- Update contributor documentation with branching guidelines by @rlskoeser in #94
- Revise optional dependency groups so dev implies test by @rlskoeser in #96
- Test against python 3.13 by @rlskoeser in #97
- Use numpy datetime64 instead of datetime.date #77 by @rlskoeser in #84
- Make EDTF parser available as undate formatter; handle 5+ digit years by @rlskoeser in #89
- preliminary str parse and format methods by @rlskoeser in #90
- Rename formatters submodule and classes to converters by @rlskoeser in #101
- EDTF demo/validation notebook by @rlskoeser in #98
- Release v0.3 by @rlskoeser in #103
- updated ismi sample data for development branch by @robcast in #104
- Add converter for hebrew calendar based on hijri calendar by @rlskoeser in #108
- Add support for converting from Hijri calendar to undate and undate interval by @rlskoeser in #107
- Document that duration calculation is inclusive / closed interval by @rlskoeser in #111
- Move interval object and tests into separate files by @rlskoeser in #115
- Find all converter subclasses / descendants by @rlskoeser in #110
- Interval logic improvements: type/range validation, intersection method, contains/in functionality by @rlskoeser in #114
- Try using uv for unit test workflow by @rlskoeser in #113
- Support conversion from internal Date class to Undate #119 by @rlskoeser in #122
- Use
islamic
for Islamic/Hijri calendar classes #120 by @rlskoeser in #123 - Reorganize examples and update readme / contents #121 by @rlskoeser in #124
Full Changelog: 0.3...0.4