Display all Python process output character-by-character
Project description
dramatic
The dramatic
module includes utilities to cause cause all text output to display character-by-character (it prints dramatically).
Note: This project is based on a Python Morsels exercise. If you're working on that exercise right now, please don't look at the source code for this! 😉
Usage
The dramatic
module is available on PyPI.
You can install it with pip
:
$ python3 -m pip install dramatic
There are four primary ways to use the utilities in the dramatic
module:
- As a context manager that temporarily makes output display dramatically
- As a decorator that temporarily makes output display dramatically
- Using a
dramatic.start()
function that makes output display dramatically - Using a
dramatic.print
function to display specific text dramatically
Dramatic Context Manager
The dramatic.output
context manager will temporarily cause all standard output and standard error to display dramatically:
import dramatic
def main():
print("This function prints")
with dramatic.output:
main()
To change the printing speed from the default of 75 characters per second to another value (30 characters per minute in this case) use the at_speed
method:
import dramatic
def main():
print("This function prints")
with dramatic.output.at_speed(30):
main()
Dramatic Decorator
The dramatic.output
decorator will cause all standard output and standard error to display dramatically while the decorated function is running:
import dramatic
@dramatic.output
def main():
print("This function prints")
main()
The at_speed
method works as a decorator as well:
import dramatic
@dramatic.output.at_speed(30)
def main():
print("This function prints")
main()
Manually Starting and Stopping
Instead of enabling dramatic printing temporarily with a context manager or decorator, the dramatic.start
function may be used to enable dramatic printing:
import dramatic
def main():
print("This function prints")
dramatic.start()
main()
The speed
keyword argument may be used to change the printing speed:
import dramatic
def main():
print("This function prints")
dramatic.start(speed=30)
main()
To make only standard output dramatic (but not standard error) pass stderr=False
to start
:
import dramatic
def main():
print("This function prints")
dramatic.start(stderr=False)
main()
To disable dramatic printing, the dramatic.stop
function may be used:
import dramatic
class CustomContextManager:
def __enter__(self):
print("Printing will become dramatic now")
dramatic.start()
def __exit__(self):
dramatic.stop()
print("Dramatic printing has stopped")
Dramatic Print
The dramatic.print
function acts just like the built-in print
function, but it prints dramatically:
import dramatic
dramatic.print("This will print some text dramatically")
Other Features
Pressing Ctrl-C
while text prints dramatically will cause the remaining text-to-be-printed to print immediately.
To start a dramatic Python REPL:
$ python3 -m dramatic
>>>
To dramatically run a Python module:
$ python3 -m dramatic -m this
To dramatically run a Python file:
$ python3 -m dramatic hello_world.py
Credits
This package was inspired by the dramatic print Python Morsels exercise, which was partially inspired by Brandon Rhodes' adventure Python port (which displays its text at 1200 baud).
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 dramatic-0.2.1.tar.gz
.
File metadata
- Download URL: dramatic-0.2.1.tar.gz
- Upload date:
- Size: 653.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.25.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7fc9896337cf94f0b535ec0e26ff4ef1e0c64a7cb790eb1f86b3d4b646cb17bd |
|
MD5 | 60e3f81a3e68f8188b123efb03d30109 |
|
BLAKE2b-256 | 8b1689488ae30142fabc2c933cf838d6116abdc3db536ba7e53bc768e447eb49 |
File details
Details for the file dramatic-0.2.1-py3-none-any.whl
.
File metadata
- Download URL: dramatic-0.2.1-py3-none-any.whl
- Upload date:
- Size: 5.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.25.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cfffffedc104ad5cccda3695037eae5b75157965a14148ef2d2e05ff4bef8d98 |
|
MD5 | bb85e2fbdf3fa3077e9d9161fe9a667f |
|
BLAKE2b-256 | fca6347d7ae86289af32f68db44d4f8d7f108537b5f8fe6691ba5f96eef5cae6 |