Skip to main content

Toolkit to work with str representing ISO Week date format

Project description

Code style: black

iso-week-date

iso-week-date is a toolkit to work with strings representing ISO Week date in two formats, namely:

  • Week format YYYY-WNN (corresponding to the date format %Y-W%V)
  • Week date format YYYY-WNN-D (corresponding to the date format %Y-W%V-%u)

In a nutshell it provides:

  • IsoWeek and IsoWeekDate classes implementing a series of methods to work with ISO Week date formats and avoiding the pitfalls of going back and forth between string, date and datetime python objects.
  • pandas and polars functionalities to work with series of ISO Week dates.

Documentation | Source Code


Installation

iso-week-date is published as a Python package on pypi, and it can be installed with pip, or directly from source using git, or with a local clone:

  • pip (suggested):

    python -m pip install iso-week-date
    
  • pip + source/git:

    python -m pip install git+https://github.com/FBruzzesi/iso-week-date.git
    
  • local clone:

    git clone https://github.com/FBruzzesi/iso-week-date.git
    cd iso-week-date
    python -m pip install .
    

Dependencies

  • To work with IsoWeek and IsoWeekDate classes, no additional dependency is required.
  • pandas and polars functionalities require the installation of the respective libraries.

Getting Started

Available features

This is a high level overview of the features provided by the iso-week-date package.

The IsoWeek and IsoWeekDate classes provide the following functionalities:

  • Parsing from string, date and datetime objects
  • Conversion to string, date and datetime objects
  • Comparison operations between IsoWeek (resp IsoWeekDate) objects
  • Addition with int and timedelta types
  • Subtraction with int, timedelta and IsoWeek (resp IsoWeekDate) types
  • Range between two IsoWeek (resp. IsoWeekDate) objects
  • __next__ method to generate the next IsoWeek (resp. IsoWeekDate) object

IsoWeek unique methods/features:

  • days properties that lists the dates in the given week
  • nth method to get the nth day of the week as date
  • in operator and contains method to check if a (iterable of) week(s), string(s) and/or date(s) is contained in the given week
  • weeksout method to generate a list of weeks that are n_weeks after the given week
  • Addition and subtraction with int defaults to adding/subtracting weeks

IsoWeekDate unique methods/features:

  • day property that returns the weekday as integer
  • isoweek property that returns the ISO Week of the given date (as string)
  • daysout method to generate a list of dates that are n_days after the given date
  • Addition and subtraction with int defaults to adding/subtracting days

pandas_utils and polars_utils modules provide functionalities to work with and move back and forth with series of Iso Week dates in YYYY-WNN format.

In specific both modules implements the following:

  • datetime_to_isoweek to convert a series of datetime objects to a series of Iso Week strings
  • isoweek_to_datetime to convert a series of Iso Week strings to a series of datetime objects
  • is_isoweek_series to check if a string series values match the ISO Week format
  • is_isoweekdate_series to check if a string series values match the ISO Week date format

Quickstart

To get started with IsoWeek and IsoWeekDate classes please refer to the quickstart documentation section.

To check examples on how to work with pandas and polars functionalities please refer to the dataframe modules documentation section.

Custom offset

One of the main reason for this library to exist is the need of the flexibility to work with custom offsets, i.e. to be able to add/subtract a custom offset (as timedelta) to the default ISO Week start and given date, and get a "shifted" week.

This feature is present both in the IsoWeek and IsoWeekDate classes and the dataframe functionalities.

To check an example see the working with custom offset section.

Contributing

Please read the contributing guidelines in the documentation site.

License

The project has a MIT Licence.

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

iso-week-date-0.1.0.tar.gz (16.9 kB view details)

Uploaded Source

Built Distribution

iso_week_date-0.1.0-py2.py3-none-any.whl (19.7 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file iso-week-date-0.1.0.tar.gz.

File metadata

  • Download URL: iso-week-date-0.1.0.tar.gz
  • Upload date:
  • Size: 16.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.8

File hashes

Hashes for iso-week-date-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ece8482e065506128155f3bc24cce7094696201e028dd5d72514dd7e33b7797c
MD5 2d3997c0ca61a40a0a4242f3fcb903cd
BLAKE2b-256 5b6dd36eb46c269f30a699385470cf839f61e58fd86dd228ccaf210f16837c0c

See more details on using hashes here.

File details

Details for the file iso_week_date-0.1.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for iso_week_date-0.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ccde8348e01f0fcbd2f9582f690f37c6733a57e79eb9b4e26a2bcd885c7ea12d
MD5 86b12d4fb758f1272029e87127f2b17b
BLAKE2b-256 379200c7b563443fefe6bfb5dce2254d61f0b1821fffc480c9c5b83bdae16da4

See more details on using hashes here.

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