Kronos makes date ranges easier.
Project description
Kronos
Kronos makes dateranges easier.
- GitHub repo: https://github.com/nat5142/kronos.git
- Documentation: https://nat5142-kronos.readthedocs.io/
- Free software: BSD
Quickstart
Install from pip:
pip install kronos-daterange
Import & basic init:
from kronos import Kronos
kronos = Kronos(start_date='2022-01-01', end_date='2022-01-31')
Feature Demo
# import
from kronos import Kronos
# init --> defaults to range of <yesterday, today> unless otherwise specified by `KRONOS_DATERANGE` environment variable
kronos = Kronos()
# manually set dates
kronos = Kronos(start_date='2022-10-17', end_date='2022-10-23')
# set timezone
kronos = Kronos(timezone='America/New_York')
# specify date format
kronos = Kronos(start_date='10/20/2022', end_date='10/31/2022', date_format='%m/%d/%Y')
# access start, end dates
kronos = Kronos()
kronos.start_date
# 2022-10-19
kronos.end_date
# 2022-10-20
# `date_format` carries over to properties:
kronos = Kronos(date_format='%m/%d/%Y')
kronos.start_date
# 10/19/2022
kronos.end_date
# 10/20/2022
# format start and end date with new format
kronos.format_start('%Y-%m-%d %H:%M:%S')
# 2022-10-20 00:00:00
kronos.format_end('%Y-%m-%d %H:%M:%S')
# 2022-10-21 23:59:59
# get the current date in specified timezone
kronos = Kronos('America/Los_Angeles')
kronos.current_date
# 2022-10-20
kronos = Kronos('America/Los_Angeles', date_format='%m/%d/%Y')
kronos.current_date
# 10/20/2022
# overwrite your object's timezone without altering the time
kronos = Kronos(timezone='UTC')
kronos.change_timezone(tz='America/New_York')
# relative shift forward/back
kronos = Kronos()
kronos.shift_range(weeks=-1) # pipes kwargs into timedelta
# Kronos(start_date='2022-10-12', end_date='2022-10-13', ... )
# pass start and end dates as datetime objects
start_dt = datetime(2023, 3, 8, 12, 0, 0)
end_dt = datetime(2023, 3, 9, 12, 0, 0)
kronos = Kronos(start_dt, end_dt)
kronos.format_start('%Y-%m-%d %H:%M:%S')
# 2023-03-08 12:00:00
kronos.format_end('%Y-%m-%d %H:%M:%S')
# 2023-03-09 12:00:00
# bisect a daterange
kronos = Kronos('2023-03-01', '2023-03-09')
k1, k2 = kronos.splice('2023-03-04')
print(k1)
# Kronos(start_date='2023-03-01', end_date='2023-03-04', ...)
print(k2)
# Kronos(start_date='2023-03-04', end_date='2023-03-09', ...)
Defaults/Environment Variables
Kronos is prepared to accept the following environment variables:
KRONOS_TIMEZONE, which defaults to UTC if not set. Can often be overridden at method-levels for one-off timezone conversions.KRONOS_FORMAT, the strptime date format string for your dates.KRONOS_DATERANGE(see below)
Note that both KRONOS_TIMEZONE and KRONOS_FORMAT can be set during init as timezone= and date_format= arguments, respectively.
KRONOS_TIMEZONE:
Can be any valid timezone name (find them at pytz.all_timezones)
KRONOS_DATERANGE:
List of accepted values:
LATEST: start/end dates of yesterady/todayYESTERDAY_TODAY: same asLATESTLAST_MONTH: previous calendar monthMTD: month-to-dateLAST_{X}_DAYS: relative range where end_date is today, start date is set X days behind.THIS_WEEK__{X}: week-to-date starting on previous day of week specified by X. Valid values for X:SUN, MON, TUES, WED, THURS, FRI, SAT
Credits
This package was created with Cookiecutter and the fedejaure/cookiecutter-modern-pypackage project template.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kronos-daterange-0.0.14.tar.gz.
File metadata
- Download URL: kronos-daterange-0.0.14.tar.gz
- Upload date:
- Size: 12.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.13 CPython/3.9.15 Darwin/22.1.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
539f7563eab6a930bd4506ecc0c64f487911d24af192a7c085f18bea45bbe6dc
|
|
| MD5 |
335909632aee663f1dac72810c2f5f50
|
|
| BLAKE2b-256 |
a12ebdd3ac156c235863c223bfbd0f96b3de1b32f0b12db043be7f4bae9bdbd5
|
File details
Details for the file kronos_daterange-0.0.14-py3-none-any.whl.
File metadata
- Download URL: kronos_daterange-0.0.14-py3-none-any.whl
- Upload date:
- Size: 11.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.13 CPython/3.9.15 Darwin/22.1.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0fff921864c93b4f8f0372fb1c9d61f0ac5529b3c8d71cbb0867a40af7413ea0
|
|
| MD5 |
cbc642627ea0393dd6c63e2c946ee50d
|
|
| BLAKE2b-256 |
1a4cd932fcde8169cd6fd6a25c95935db2a38e22fb57545692b0beffd5393c4c
|