Skip to content
/ Times Public

Descriptively reference time ranges in Python. `ONE_DAY` instead of `86400`.

License

Notifications You must be signed in to change notification settings

Wyko/Times

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A small helper package for working with time intervals.

This package provides a single class called Seconds (a subclass of int) that represents a time interval in seconds. It also provides a number of constants that represent common time intervals, such as ONE_SECOND and ONE_DAY.

The intended use of this package is to provide a more readable alternative to using raw numbers for time intervals. For example, instead of writing time.sleep(86400) to sleep for one day, you can write time.sleep(ONE_DAY). This makes the code more readable and easier to understand.

The Seconds class also provides attributes for accessing the interval in other units of time, such as minutes and hours.

Shoot me an email if you use it and find it useful, or if you have any suggestions!

Usage

>>> from times import THREE_MINUTES
>>> import time
>>> time.sleep(THREE_MINUTES)
>>> import times
>>> times.ONE_DAY
86400
>>> times.THREE_HOURS.years
0.00034223866072692215
>>> times.FIVE_MONTHS.minutes
219145.25
from times import Seconds, TEN_YEARS
>>> century = Seconds(TEN_YEARS * 10)
>>> century
3155692500
>>> century.hours
876581.25

Installation

pip install pytimes

Reference

The Seconds class is a subclass of int that represents a time interval in seconds. It usually won't be instantiated directly, but rather used via the constants defined in this module. It offers the following attributes:

  • seconds: The interval in seconds.
  • minutes: The interval in minutes.
  • hours: The interval in hours.
  • days: The interval in days.
  • weeks: The interval in weeks.
  • months: The interval in months. A month is defined as 1/12 of a year.
  • years: The interval in years. A year is defined as 365.242196 days.

The following constants are defined in this module:

  • ONE_SECOND
  • ONE_MINUTE
  • ONE_HOUR
  • ONE_DAY
  • ONE_WEEK
  • ONE_MONTH
  • ONE_YEAR
  • ... And many more, in variations like TWO_DAYS, THREE_WEEKS, FOUR_MONTHS, etc.

Requirements

Python 3.6+

License

MIT

Changelog

1.12.0

Added shorthand methods for all the time fractions, like times.ONE_DAY.m for times.ONE_DAY.minutes.

1.11.0

Now fully typed and compatible with mypy.

About

Descriptively reference time ranges in Python. `ONE_DAY` instead of `86400`.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages