Skip to main content

Utility for generating datetimes within given constraints

Project description

secondstate

GitHub release PyPI version GitHub pull-requests Build Release GitHub license

Requirements

  • Python >= 3.8
  • Docker (for development only)

Installation

pip install secondstate

Usage

Lets say you want to figure out the availability of a haircut with a particular barber:

from secondstate import SecondState

# We want all available appointments from now until the next 7 days
barber = SecondState(start="2021-05-23T11:17:49", finish="2021-05-30T11:17:49")

# The barber works Monday 10:00-16:00
barber.set(start="2021-05-24T10:00:00", finish="2021-05-24T16:00:00")

# Looks like the barber already has appointments on Monday at 10:30 and 15:00
barber.unset(start="2021-05-24T10:30:00", finish="2021-05-24T11:00:00")
barber.unset(start="2021-05-24T15:00:00", finish="2021-05-24T15:30:00")

# Haircut takes 30 minutes
print(barber.get(minutes=30))

Result:

[
    ["2021-05-24T10:00:00", "2021-05-24T10:30:00"],
    ["2021-05-24T11:00:00", "2021-05-24T11:30:00"],
    ["2021-05-24T11:30:00", "2021-05-24T12:00:00"],
    ["2021-05-24T12:00:00", "2021-05-24T12:30:00"],
    ["2021-05-24T12:30:00", "2021-05-24T13:00:00"],
    ["2021-05-24T13:00:00", "2021-05-24T13:30:00"],
    ["2021-05-24T13:30:00", "2021-05-24T14:00:00"],
    ["2021-05-24T14:00:00", "2021-05-24T14:30:00"],
    ["2021-05-24T14:30:00", "2021-05-24T15:00:00"],
    ["2021-05-24T15:30:00", "2021-05-24T16:00:00"],
]

To use the development environment:

make dev

Releasing

poetry version major | minor | patch
make release

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

secondstate-2.0.0.tar.gz (4.2 kB view hashes)

Uploaded Source

Built Distribution

secondstate-2.0.0-py3-none-any.whl (4.6 kB view hashes)

Uploaded Python 3

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