Skip to main content

dateutil-gorman

dateutil-gorman is a typed Python package for converting between Gregorian dates and the Gorman calendar.

Features

  • src/ layout with a small, explicit public API.
  • Immutable value objects for regular Gorman dates and intermission days.
  • Bidirectional Gregorian conversion helpers.
  • String parsing for common Gorman date formats.
  • No runtime dependencies outside the Python standard library.

Installation

pip install dateutil-gorman

For local development with uv:

uv sync --extra dev

Quick Start

from datetime import date, datetime

from dateutil_gorman import (
    GormanDate,
    gregorian_to_gorman,
    gorman_to_gregorian,
    parse_gorman,
)

gorman_value = gregorian_to_gorman(date(2024, 1, 1))
assert str(gorman_value) == "1 March 2024"

gregorian_value = gorman_to_gregorian(2024, 6, 15)
assert gregorian_value.isoformat() == "2024-06-03"

parsed = parse_gorman("June 15, 2024 14:30")
assert parsed == datetime(2024, 4, 8, 14, 30)

same_day = GormanDate.fromisoformat("2024-06-10")
assert same_day.to_gregorian().isoformat() == "2024-06-10"

Usage

Convert Gregorian values

from datetime import date

from dateutil_gorman import gregorian_to_gorman

assert str(gregorian_to_gorman(date(2024, 12, 30))) == "Intermission 1 2024"
assert str(gregorian_to_gorman(date(2024, 12, 31))) == "Intermission 2 2024"

Work with immutable value objects

from dateutil_gorman import GormanDate

gorman_date = GormanDate(year=2024, month=6, day=15)
updated = gorman_date.replace(day=1)

assert str(gorman_date) == "15 Sextilis 2024"
assert str(updated) == "1 Sextilis 2024"

Parse Gorman strings

from dateutil_gorman import parse_gorman

assert parse_gorman("15 June 2024").isoformat() == "2024-04-08T00:00:00"
assert parse_gorman("Intermission 1 2024 08:15").isoformat() == "2024-12-30T08:15:00"

Public API

Classes

  • GormanDate: Immutable regular-month date with conversion, week-calendar, ordinal, and replacement helpers.
  • Intermission: Immutable year-end intermission day with Gregorian conversion and replacement helpers.

Functions

  • gregorian_to_gorman(d): Convert a Gregorian date or datetime.
  • gorman_to_gregorian(year, month, day): Convert a regular Gorman date.
  • intermission_to_gregorian(year, day): Convert an intermission day.
  • parse_gorman(date_string): Parse supported Gorman date strings into a Gregorian datetime.

Constants

  • GORMAN_MONTHS: Ordered tuple of month names used by the Gorman calendar.

Development

uv sync --extra dev
uv run pytest
uv run ruff check .
uv run mypy src

Contributing

  1. Fork the repository and create a feature branch.
  2. Keep the public API typed and documented with Google-style docstrings.
  3. Add or update tests for behavior changes.
  4. Run uv run pytest, uv run ruff check ., and uv run mypy src before opening a pull request.

License

Released under the MIT License.

Metadata

Release files for dateutil-gorman 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dateutil-gorman 0.1.4
File Size Uploaded
dateutil_gorman-0.1.4.tar.gz 14.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dateutil-gorman 0.1.4
File Interpreter ABI Platform
dateutil_gorman-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 24.7 kB

Release files / dateutil_gorman-0.1.4.tar.gz

Download URL dateutil_gorman-0.1.4.tar.gz
Size 14.8 kB
Tags Source
SHA-256 checksum
How to use checksums
5f2b18705d5f058b03406d8db769c359062d9937aaa0ca825077eaefed313a5f
BLAKE2b-256 checksum
How to use checksums
56020e03988ce143b4982cecceeb0eaaf8ce3ba5f0445dff87b2e6f2f28b41f6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 15, 2026.

Transparency log

Release files / dateutil_gorman-0.1.4-py3-none-any.whl

Download URL dateutil_gorman-0.1.4-py3-none-any.whl
Size 9.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7ecd7354b63ccb3e73737c25f25b6fde8c5b69b2c5b3bb374cee3dc2df4c0aab
BLAKE2b-256 checksum
How to use checksums
874a53c5b9d20232a335e3541112cda6a5cc34378298b20bf105fe5a3182cc7c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 15, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page