Features that Python should have in the standard library
Project description
SuperPy
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | f5b4bc25dac16aece22cca67c75fa150287f93aef281f3ed83582d7308f18c24 |
|
MD5 | 93184d0f0930787190b9323a751d43c5 |
|
BLAKE2b-256 | ef2f6d31ca5b343f9fd7f4692f00ce5544dcd2a2becf95f6c8dfc343f81efa93 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 384e2e6ae70453561093fadd9596d7aa3dd0e8095b5f52b8ba01f7f5d5b220d0 |
|
MD5 | d147fc0322a30a08b5df7bbb4a23e3a9 |
|
BLAKE2b-256 | c67873b43bf145a2a533362a43198916fbdc8d1129a197f64ebc82e519f7dd19 |