Skip to main content

Features that Python should have in the standard library

Project description

SuperPy

Downloads Downloads Downloads

There are 5 sub modules:

  • sp.logging
  • sp.testing
  • sp.concurrency
  • sp.dicts
  • sp.disk
  • sp.string

sp.logging

SuperPy's logging system is a simple abstraction from the standard library logging module. It also provides some nice extra functionalities. Here are some examples:

Logging messages

import super_py as sp

log = sp.logging.Logger("info",
    ts_color="bright_green",
    terminal=True,
    files=["info.log", "combined.log"],
)

log("This is a simple log!")

This will write the following log line to the terminal, and the files info.log and comnined.log:

[info        ] 2022-10-04 15:53:09            This is a simple log!

where the name and timestamp will be colored in bright_green.

Logging function benchmarks

You can also use the provided decorator to log benchmarks of your functions:

import super_py as sp

log = sp.logging.Logger("benchmark",
    ts_color="bright_green",
    terminal=True,
)

@log.benchmark(with_args=[0])
def wait(seconds):
    time.sleep(seconds)

for i in range(10):
    wait(i / 10)

This will write the following log lines:

[benchmark   ] 2022-10-04 16:03:39     0.0ms  wait((0.0))
[benchmark   ] 2022-10-04 16:03:39   105.1ms  wait((0.1))
[benchmark   ] 2022-10-04 16:03:39   205.1ms  wait((0.2))
[benchmark   ] 2022-10-04 16:03:40   308.3ms  wait((0.3))
[benchmark   ] 2022-10-04 16:03:40   403.5ms  wait((0.4))
[benchmark   ] 2022-10-04 16:03:40   505.1ms  wait((0.5))
[benchmark   ] 2022-10-04 16:03:41   605.1ms  wait((0.6))
[benchmark   ] 2022-10-04 16:03:42   705.1ms  wait((0.7))
[benchmark   ] 2022-10-04 16:03:43   804.1ms  wait((0.8))
[benchmark   ] 2022-10-04 16:03:43   903.3ms  wait((0.9))

You can use benchmark without calling the decorator, it will still work:

@log.benchmark
def wait(seconds):
    time.sleep(seconds)

The benchmark decorator takes the following keyword arguments:

  • with_args: list[int]: The list of indices of function arguments which should be logged.
  • with_kwargs: list[str]: The list of keyword argument names of the function which should be logged.

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

super_py-1.0.3.tar.gz (7.6 kB view details)

Uploaded Source

Built Distribution

super_py-1.0.3-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file super_py-1.0.3.tar.gz.

File metadata

  • Download URL: super_py-1.0.3.tar.gz
  • Upload date:
  • Size: 7.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.2 CPython/3.10.8 Darwin/22.1.0

File hashes

Hashes for super_py-1.0.3.tar.gz
Algorithm Hash digest
SHA256 f5b4bc25dac16aece22cca67c75fa150287f93aef281f3ed83582d7308f18c24
MD5 93184d0f0930787190b9323a751d43c5
BLAKE2b-256 ef2f6d31ca5b343f9fd7f4692f00ce5544dcd2a2becf95f6c8dfc343f81efa93

See more details on using hashes here.

File details

Details for the file super_py-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: super_py-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 8.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.2 CPython/3.10.8 Darwin/22.1.0

File hashes

Hashes for super_py-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 384e2e6ae70453561093fadd9596d7aa3dd0e8095b5f52b8ba01f7f5d5b220d0
MD5 d147fc0322a30a08b5df7bbb4a23e3a9
BLAKE2b-256 c67873b43bf145a2a533362a43198916fbdc8d1129a197f64ebc82e519f7dd19

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page