Skip to main content

Utilities for working with calendar weeks in Python and Django

Project description

python-calendarweek provides a CalendarWeek dataclass for representing one week in a year, and utility functions to work with it in pure Python or Django.

Usage

The CalendarWeek object

The main interface is the CalendarWeek object. The following example shows its interface.

from datetime import date
from calendarweek import CalendarWeek

# Create an object for the third week in 2012
week = CalendarWeek(year=2012, week=3)

# Get the current week (or the week for any date)
week = CalendarWeek.from_date(date.today())

# Short-hand for the current week
week = CalendarWeek()

# Get all weeks within a date range
start = date(2012, 3, 18)
end = date(2012, 4, 19)
weeks = CalendarWeek.weeks_within(start, end)

# Get the last week of a year
week = CalendarWeek.get_last_week_of_year(2012)

# Get the Wednesday of the selected week (or any weekday)
day = week[3]

# Check whether a day is within a week
is_contained = day in week

# Get the week five weeks later
week = week + 5

# Additionally, all comparison operators are implemented

Django utilities

Some utilities for Django are contained in the calendarweek.django module:

  • i18n_day_names — Returns a tuple of localised day names

  • i18n_day_abbrs — Returns a tuple of abbreviated, localised day names

  • i18n_month_names — Returns a tuple of localised month names

  • i18n_month_abbrs — Returns a tuple of abbreviated, localised month names

  • All the above for suffixed with _choices to get a list of tuples ready for a model or form field’s choices

  • i18n_js — A view returning the above as JSON ready to be consumed by a frontend

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

calendarweek-0.5.1.tar.gz (9.1 kB view details)

Uploaded Source

Built Distribution

calendarweek-0.5.1-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

Details for the file calendarweek-0.5.1.tar.gz.

File metadata

  • Download URL: calendarweek-0.5.1.tar.gz
  • Upload date:
  • Size: 9.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.7 CPython/3.9.9 Linux/5.15.0-2-amd64

File hashes

Hashes for calendarweek-0.5.1.tar.gz
Algorithm Hash digest
SHA256 fffe2db46dc272f2ede867bfe20e9b07fb051429f25441fb45fb2a4dd69ee0c7
MD5 4feed09cd23ba2349d24ca84b8ef3847
BLAKE2b-256 268f0791c7b3cfc0aff7e8eee43c27362dc349db0b1b91809e6f8b12cccfaaaa

See more details on using hashes here.

Provenance

File details

Details for the file calendarweek-0.5.1-py3-none-any.whl.

File metadata

  • Download URL: calendarweek-0.5.1-py3-none-any.whl
  • Upload date:
  • Size: 10.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.7 CPython/3.9.9 Linux/5.15.0-2-amd64

File hashes

Hashes for calendarweek-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8ce36cdce753ee0ed576f4d08774abf9905079656cdb938f1004e19978c0ccb1
MD5 7e88bdd927370970bbb70d4a6a901462
BLAKE2b-256 a7fdaf33e2da39ac459fbcf159f3c27ce8f54e9c18fd416dbc3de83b15de97f0

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page