Skip to main content

Pychrono is a Python package for managing delays, scheduling tasks, and timing functions. It supports both synchronous and async operations, making time management simple and efficient.

Project description

Pychrono

Pychrono is a Python package designed for managing delays, scheduling tasks, timing functions, and more. It provides decorators for repeating tasks, scheduling actions, and running tasks asynchronously using threading. Pychrono simplifies time-related operations for both synchronous and asynchronous contexts.

Features

  • Delay execution for a specific amount of time.
  • Get the current system time and format it.
  • Run tasks on a delay asynchronously.
  • Repeat functions multiple times.
  • Measure function execution time.
  • Use a robust Timer class with start, pause, resume, and elapsed time tracking.

Changlogs 0.1.1

  • .elapsed and Timer (__str__) now output a non-rounded string without "seconds" that led to type casting issues.

Installation

pip install pychrono

Usage

1. Delays and Time Functions

Delay Execution

import pychrono

# Delay execution for 1000 milliseconds (1 second)
pychrono.delay(1000)

Get Current Time

# Get the current time in seconds since the epoch
current_time = pychrono.current()
print(f"Current time: {current_time}")

Convert Time to Local String

# Convert time to a readable local time string
seconds = pychrono.current()
formatted_time = pychrono.local(seconds)
print(f"Local time: {formatted_time}")

2. Decorators

Repeat Function Execution

@pychrono.repeat(3)
def greet():
    print("Hello!")

greet()  # This will print "Hello!" three times

Time a Function's Execution

@pychrono.timer
def long_task():
    for _ in range(1000000):
        pass

# Print the time taken to run the function
long_task()

Asynchronous Scheduling with Delay

@pychrono.schedule(2000)  # Delay for 2000 milliseconds (2 seconds)
def say_hello():
    print("Hello after 2 seconds!")

say_hello()  # Will print "Hello" after 2 seconds without blocking

Run a Function Asynchronously

@pychrono.asynchronous
def task():
    print("Running asynchronously!")

task()  # Runs in a separate thread

3. Timer Class

The Timer class allows you to start, pause, resume, and get the elapsed time. Printing the timer object directly will output the seconds elapsed.

Start, Pause, and Resume Timer

# Create a timer instance
timer = pychrono.Timer()

# Start the timer
timer.start()

# Perform some task
time.sleep(2)

# Get the elapsed time
print(f"Elapsed: {timer}")  # Prints elapsed time in seconds (e.g., 2.0)

# Pause the timer
timer.pause()

# Resume the timer
timer.resume()

# Get updated elapsed time
time.sleep(1)
print(f"Updated Elapsed: {timer}")  # Prints updated elapsed time (e.g., 3.0)

More Features Coming Soon!

Stay tuned for more functionalities such as:

  • Recurring scheduled tasks.
  • Enhanced threading control and task management.
  • Time zone support for easier global time handling.
  • And much more!

Feel free to contribute to the project, raise issues, or suggest features by visiting our GitHub repository.

License

Pychrono is licensed under 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

pychrono-0.1.1.tar.gz (5.0 kB view details)

Uploaded Source

Built Distribution

pychrono-0.1.1-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

Details for the file pychrono-0.1.1.tar.gz.

File metadata

  • Download URL: pychrono-0.1.1.tar.gz
  • Upload date:
  • Size: 5.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for pychrono-0.1.1.tar.gz
Algorithm Hash digest
SHA256 c6d6395cfc24379ff0b49233ad6601f0c77a127e972134ede869cbafdd2beb63
MD5 df1909c69abc3e26c4f401656e3dc902
BLAKE2b-256 584d98f091d1d9add956918f972ad79d6cacae1c8a70cd719c9337d7be501a58

See more details on using hashes here.

File details

Details for the file pychrono-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: pychrono-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 6.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for pychrono-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ac34398cfe0fa772b15702607d64ac10d2c5c78170fee0e05fa200f999de99e6
MD5 6990ff397f008f2dad0ae823f84fa001
BLAKE2b-256 05f5e94c837e4fb00a1ed77d629e1f14ea55f7775f340849b5f90e44db4b4952

See more details on using hashes here.

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