Skip to main content

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

PyPI - Version PyPI - Python Version


Table of Contents

Installation

pip install django-time-block

License

django-time-block is distributed under the terms of the MIT license.

Metadata

Release files for django-time-block 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-time-block 0.5.0
File Size Uploaded
django_time_block-0.5.0.tar.gz 7.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for django-time-block 0.5.0
File Interpreter ABI Platform
django_time_block-0.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 16.8 kB

Release files / django_time_block-0.5.0.tar.gz

Download URL django_time_block-0.5.0.tar.gz
Size 7.3 kB
Tags Source
SHA-256 checksum
How to use checksums
41c3c99aa14fbc994f911252d9fca9c52b95f381a69081183cb0bbe6a45ddf04
BLAKE2b-256 checksum
How to use checksums
42f7334c45690edd376a9e841702371dd4296d2ee3ed5c9a8b46d2c6d335da64
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-httpx/0.25.0

Release files / django_time_block-0.5.0-py3-none-any.whl

Download URL django_time_block-0.5.0-py3-none-any.whl
Size 9.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ca5d5a47e07c56f086deffb65e47307e4a316c58219b5675a7d1a92a359fc55c
BLAKE2b-256 checksum
How to use checksums
af530b3f1812dacafe4af5d5c8ad22aaa6b2ff63fc2402f97fcd998f593265ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-httpx/0.25.0

Release history Release notifications | RSS feed

This release

0.5.0 This release

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page