Skip to main content

A very simple yet customizable Python package to add timestamps to your print statements.

Project description

 █████╗ ████████╗████████╗███████╗   ███╗   ███╗   ██████╗ ████████╗███████╗  
██╔══██╗╚══██╔══╝╚══██╔══╝██╔════╝   ████╗ ████║   ██╔══██╗╚══██╔══╝██╔════╝  
███████║   ██║      ██║   █████╗     ██╔████╔██║   ██████╔╝   ██║   ███████╗  
██╔══██║   ██║      ██║   ██╔══╝     ██║╚██╔╝██║   ██╔═══╝    ██║   ╚════██║  
██║  ██║██╗██║██╗   ██║██╗███████╗██╗██║ ╚═╝ ██║██╗██║██╗     ██║██╗███████║██╗  
╚═╝  ╚═╝╚═╝╚═╝╚═╝   ╚═╝╚═╝╚══════╝╚═╝╚═╝     ╚═╝╚═╝╚═╝╚═╝     ╚═╝╚═╝╚══════╝╚═╝    

𝗔dd 𝗧imestamps 𝗧o 𝗘ach one of 𝗠y 𝗣rint statemen𝗧𝗦

A very simple yet customizable Python package to add timestamps to your print statements.

It supports replacing the default 'print()', keeping all of its default options, or use the built-in "printt()" command, that accepts all the same arguments as "print()".
You can also choose to use different colors on your timestamp.

Installation

To install, run

  pip install attempts

Usage

Import the package and initialize with init().

The only required parameter is 'replace_print'.

  import attempts
  import time

  attempts.init(replace_print=True)

  print("Hello World")
  time.sleep(0.5)
  print("This is a new line after a 500ms sleep")
  time.sleep(0.42)
  print("This is yet another line after a 420ms sleep")

Demo

Basic demo:
demo gif

Parameters

replace_print: bool

The only mandatory parameter. If set to False, will not replace the default 'print()'.
Instead, you'll need to use 'printt()' to output timestamped messages.
If set to True, will replace all calls of 'print()' with the timestamped version.

timestamp_start: str

The character at the start of the timestamp.
Default: '[' - Square Bracket

timestamp_end: str

The character at the end of the timestamp.
Default: ']' - Square Bracket

timestamp_format: str

A string containing the format of the timestamp. It uses any strings formats accepted by the strftime() method.
Default: '%H:%M:%S.%f' - Hours, minutes, seconds and microseconds.

Available Codes:

Code Meaning Example
%a Abbreviated weekday name. Sun, Mon, ...
%A Full weekday name. Sunday, Monday, ...
%w Weekday as a decimal number. 0, 1, ..., 6
%d Day of the month as a zero-padded decimal. 01, 02, ..., 31
%-d Day of the month as a decimal number. 1, 2, ..., 30
%b Abbreviated month name. Jan, Feb, ..., Dec
%B Full month name. January, February, ...
%m Month as a zero-padded decimal number. 01, 02, ..., 12
%-m Month as a decimal number. 1, 2, ..., 12
%y Year without century as a zero-padded decimal number. 00, 01, ..., 99
%-y Year without century as a decimal number. 0, 1, ..., 99
%Y Year with century as a decimal number. 2013, 2019 etc.
%H Hour (24-hour clock) as a zero-padded decimal number. 00, 01, ..., 23
%-H Hour (24-hour clock) as a decimal number. 0, 1, ..., 23
%I Hour (12-hour clock) as a zero-padded decimal number. 01, 02, ..., 12
%-I Hour (12-hour clock) as a decimal number. 1, 2, ... 12
%p Locale’s AM or PM. AM, PM
%M Minute as a zero-padded decimal number. 00, 01, ..., 59
%-M Minute as a decimal number. 0, 1, ..., 59
%S Second as a zero-padded decimal number. 00, 01, ..., 59
%-S Second as a decimal number. 0, 1, ..., 59
%f Microsecond as a decimal number, zero-padded on the left. 000000 - 999999
%z UTC offset in the form +HHMM or -HHMM.
%Z Time zone name.
%j Day of the year as a zero-padded decimal number. 001, 002, ..., 366
%-j Day of the year as a decimal number. 1, 2, ..., 366
%U Week number of the year (Sunday as the first day of the week). All days in a new year preceding the first Sunday are considered to be in week 0. 00, 01, ..., 53
%W Week number of the year (Monday as the first day of the week). All days in a new year preceding the first Monday are considered to be in week 0. 00, 01, ..., 53
%c Locale’s appropriate date and time representation. Mon Sep 30 07:06:05 2013
%x Locale’s appropriate date representation. 09/30/13
%X Locale’s appropriate time representation. 07:06:05
%% A literal '%' character. %

timestamp_color: str

The color of the text.
Uses the Colorama package. Please see the project for compatibility details: https://pypi.org/project/colorama/

Available colors:

BLACK
BLUE
CYAN
GREEN
MAGENTA
RED
WHITE
YELLOW
LIGHTBLACK_EX
LIGHTBLUE_EX
LIGHTCYAN_EX
LIGHTGREEN_EX
LIGHTMAGENTA_EX
LIGHTRED_EX
LIGHTWHITE_EX
LIGHTYELLOW_EX

color table

ROADMAP

  • Add option to choose timestamp color
  • Add option to benchmark using a key and output time delta
  • Add option to store timestamps in memory, given a variable limit, to optmize memory usage
  • Add option to output a formatted table with outputs

License

MIT

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

attempts-0.2.1.tar.gz (4.9 kB view details)

Uploaded Source

Built Distribution

attempts-0.2.1-py3-none-any.whl (5.0 kB view details)

Uploaded Python 3

File details

Details for the file attempts-0.2.1.tar.gz.

File metadata

  • Download URL: attempts-0.2.1.tar.gz
  • Upload date:
  • Size: 4.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for attempts-0.2.1.tar.gz
Algorithm Hash digest
SHA256 aefe21cfb2dbb0791ce9045b92bdec1ecda9b5e87eb710590f07a0153f48e5ba
MD5 7b433fcc5384f12ef23e882f54d6a9b3
BLAKE2b-256 d9773f01c79c95326726bc45b3e4ccbaec02141d8c0bd4564ff946c2495fd1cf

See more details on using hashes here.

File details

Details for the file attempts-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: attempts-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 5.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for attempts-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2648535b03120dd6884af7dfb61e4fe97b9ef7cee2bf5066860c04b06a91b9d9
MD5 4496fa80d31205ea8ab28b11a3033f4c
BLAKE2b-256 fcf974d25b9f9213b7ea823bd721d6312352626c68ba1d66c58d8dd2ad83fa64

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