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.3.tar.gz (9.2 kB view details)

Uploaded Source

Built Distribution

calendarweek-0.5.3-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: calendarweek-0.5.3.tar.gz
  • Upload date:
  • Size: 9.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.1 CPython/3.11.2 Linux/6.0.0-2-rt-amd64

File hashes

Hashes for calendarweek-0.5.3.tar.gz
Algorithm Hash digest
SHA256 1c972958279130712e9a061f47671efb09d32f623dc70f25ab3b416a5f2580ff
MD5 6539969a813b7a43ce685a6486c43da8
BLAKE2b-256 1c9d73fed99b1263c9592bdc9b4f4571ec57cef5f72028a6ec64469e8da99e03

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: calendarweek-0.5.3-py3-none-any.whl
  • Upload date:
  • Size: 11.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.1 CPython/3.11.2 Linux/6.0.0-2-rt-amd64

File hashes

Hashes for calendarweek-0.5.3-py3-none-any.whl
Algorithm Hash digest
SHA256 bf69b5cb8b29a517307b1cc08f7931d7880003ade395e5c21e2147fe16c2d07f
MD5 05d7bb3865e772835b7108edfc0d54dd
BLAKE2b-256 34a1348e8477309f17371c18e71dc1eab15e1fad31abc4bdb4e84ed834b9f9f1

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