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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: calendarweek-0.5.0.tar.gz
  • Upload date:
  • Size: 9.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/3.9.2 Linux/5.10.0-4-amd64

File hashes

Hashes for calendarweek-0.5.0.tar.gz
Algorithm Hash digest
SHA256 32f5c8663799a2f5a0b8909976c7a3ae77397acd7e7c31d1456ece5b452988a5
MD5 2aa2cf3eae928fefc95c7f5890e8c6e8
BLAKE2b-256 1ccc93b1f936915f876631519277007c37432388e9f16b74e75ca56cbf3f72cc

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: calendarweek-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 10.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/3.9.2 Linux/5.10.0-4-amd64

File hashes

Hashes for calendarweek-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f2003e6e0264d3d1320fc99ae6d70e60174c2664e5640c6aa31ad38e229d942d
MD5 9da3f84da6f6ff7287db1a29853067a6
BLAKE2b-256 90ede4a0b49a935b2620206bd8c12fc6c4a2087c9b9dbbab8427c45805868a50

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