No project description provided
Project description
django-time-block
an django application to save the timeline information of an object.
Tutorial
from django_time_block.utils import add_time_block
def format_datetime(date_str: str) -> datetime.datetime:
"""formate datetime string format"""
return datetime.datetime.strptime(
date_str,
"%Y-%m-%d %H:%M:%S",
).astimezone(
timezone.get_current_timezone(),
)
# record alice's work time according to her clock in record
object_id = "work_time_user_alice"
add_time_block( # a timeblock record will be created
object_id=object_id,
start_datetime=format_datetime("2023-09-01 00:00:00"),
end_datetime=format_datetime("2023-09-05 00:00:00"),
)
all_include( # alice didn't work from 2023-09-05 00:00 to 2023-09-06 00:00
object_id,
format_datetime("2023-09-02 00:00:00"),
format_datetime("2023-09-06 00:00:00"),
) # False
TimeBlock.objects.filter(object_id=object_id).count() # 1
add_time_block( # the second record will merged int the first one
object_id=object_id,
start_datetime=format_datetime("2023-09-01 00:00:00"),
end_datetime=format_datetime("2023-09-05 00:00:00"),
)
TimeBlock.objects.filter(object_id=object_id).count() # 1
all_include(
object_id,
format_datetime("2023-09-02 00:00:00"),
format_datetime("2023-09-06 00:00:00"),
) # True
-
For example: You have to handle a lot of data from 2000-01-01 to 2023-11-11.
-
First day, you may handle the data from 2023-10-01 to 2023-11-11
-
Next day, you may have handled the data from 2023-09-01 to 2023-09-07: the results look like this:
you will record:
2023-09-01~2023-09-07, 2023-10-01~2023-11-11
- the third day, you handled the data from 2023-09-06 to 2023-10-02 then, the records will merge into one:
this two records will be merged:
2023-09-01 ~ 2023-11-11
-
API
-
add_time_block
-
all_include
check if a duration is all included -
find_min_uninclude
find the earliest datetime that was not included -
find_max_uninclude
find the latest datetime that was not included -
find_uninclude_blocks
find all the uninclude durations
Table of Contents
Installation
pip install django-time-block
License
django-time-block
is distributed under the terms of the MIT license.
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
Built Distribution
File details
Details for the file django_time_block-0.5.0.tar.gz
.
File metadata
- Download URL: django_time_block-0.5.0.tar.gz
- Upload date:
- Size: 7.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.25.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 41c3c99aa14fbc994f911252d9fca9c52b95f381a69081183cb0bbe6a45ddf04 |
|
MD5 | 01980f05d36fbd57ee205dce368abf02 |
|
BLAKE2b-256 | 42f7334c45690edd376a9e841702371dd4296d2ee3ed5c9a8b46d2c6d335da64 |
File details
Details for the file django_time_block-0.5.0-py3-none-any.whl
.
File metadata
- Download URL: django_time_block-0.5.0-py3-none-any.whl
- Upload date:
- Size: 9.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.25.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca5d5a47e07c56f086deffb65e47307e4a316c58219b5675a7d1a92a359fc55c |
|
MD5 | 39863274bca91a9433233db0d6ba659d |
|
BLAKE2b-256 | af530b3f1812dacafe4af5d5c8ad22aaa6b2ff63fc2402f97fcd998f593265ed |