Skip to main content

Compute recurrences of events

Project description

This package provides helper functions to compute recurrences of events in a environment using the Zope Component Architecture (ZCA).

Copyright (c) 2013-2016 Michael Howitz

All Rights Reserved.

This software is subject to the provisions of the Zope Public License, Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. THIS SOFTWARE IS PROVIDED “AS IS” AND ANY AND ALL EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE.

Usage

  • Register the package at the ZCA via ZCML:

    <include package="icemac.recurrence" />
  • Compute recurrences. The example computes the 2nd Tuesday each month.:

    >>> from icemac.recurrence import get_recurrences
    >>> get_recurrences(
    ...     datetime=datetime(2015, 10, 13, 11, 15),
    ...     period='nth weekday of month',
    ...     interval_start=datetime(2015, 1, 1),
    ...     interval_end=datetime(2015, 12, 31))
    [datetime(2015, 10, 13, 11, 15),
     datetime(2015, 11, 10, 11, 15),
     datetime(2015, 12, 8, 11, 15)]
  • Supported recurrence periods:

    • daily

    • weekly

    • biweekly

    • nth weekday of month

    • nth weekday every other month

    • nth weekday from end of month

    • nth weekday from end of other month

    • yearly

Hacking

Source code

Get the source code:

$ hg clone https://bitbucket.org/icemac/icemac.recurrence

or fork me on: https://bitbucket.org/icemac/icemac.recurrence

Running the tests

To run the tests yourself call:

$ python2.7 bootstrap.py
$ bin/buildout -n
$ bin/py.test

Changelog

1.1 (2016-03-01)

  • Shorten the import path of get_recurrences() from icemac.recurrence.recurrence to just icemac.recurrence.

  • Refactor tests to use py.test fixtures.

  • Fix an off by one month error in the periods nth weekday every other month and nth weekday from end of other month.

  • Bring the test coverage to 100 % even in branch coverage.

1.0.1 (2015-10-22)

  • Fix broken 1.0.0 release.

1.0.0 (2015-10-13)

  • Extract package from icemac.ab.calendar for reuse in other projects.

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

icemac.recurrence-1.1.tar.gz (14.3 kB view details)

Uploaded Source

File details

Details for the file icemac.recurrence-1.1.tar.gz.

File metadata

File hashes

Hashes for icemac.recurrence-1.1.tar.gz
Algorithm Hash digest
SHA256 fe77f87c12e7798983c002faff4a956ee5317872711875f09211449c3367b126
MD5 7524538d40dc4e8b0a6ea0f3f3717f35
BLAKE2b-256 a04a694ff75ff55a34c0c9af4260820283da57f9abdf9f6b87cde7521724fcc1

See more details on using hashes here.

Supported by

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