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.1.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

super_py-1.0.1-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

Details for the file super-py-1.0.1.tar.gz.

File metadata

  • Download URL: super-py-1.0.1.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.1 CPython/3.10.7 Darwin/21.6.0

File hashes

Hashes for super-py-1.0.1.tar.gz
Algorithm Hash digest
SHA256 3b1777f73abb1cdad4dbeef91530559c0eea2bd88f62a5ec9110ef52e5e9a2c8
MD5 6a5876a4fdec0d217f3231db3413cce9
BLAKE2b-256 784c4267d9f7dbcbf8c8887813fa5edde33b1be75df757ff367de885fa3577aa

See more details on using hashes here.

File details

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

File metadata

  • Download URL: super_py-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 8.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.1 CPython/3.10.7 Darwin/21.6.0

File hashes

Hashes for super_py-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a7e91e2ca8d51d83671ffa7567d3238a00a114bac77e0e9e61789672832df9fd
MD5 e5169a0dec00cb83d7c6aeecb6af043f
BLAKE2b-256 8cb3bf1debf986c385ab72b21efa3863444e73e45fc27899ca36cf494831c96d

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