Miscellaneous utilities
Project description
Intro
This is a collection of generally useful functions for use with any application.
The diag_msg function allows you to print a message with the time and caller sequence added for you.
The FileCatalog item allows you to map file names to their paths.
The @time_box decorator allows you to print start, stop, and execution times.
The print_flower_box_msg function allows you to print text in a flower box (i.e., surrounded by asterisks).
The log_verifier allows you to verify that expected log messages have been issued.
The msgs item is a simple facility you can use to send messages between threads.
The stop_watch item is a simple timing function that you can use in test cases.
The timer item provides a way to keep track of time to determine when a function has timed out.
Examples:
With diag_msg you can print messages with the time and caller info added automatically.
- Example:
print a diagnostic message (<input> appears as the module name when run from the console)
>>> from scottbrian_utils.diag_msg import diag_msg >>> diag_msg('this is a diagnostic message') 16:20:05.909260 <input>:1 this is a diagnostic message
With FileCatalog, you can code your application with file names and retrieve their paths at run time from a catalog. This allows you to use different catalogs for the same set of files, such as one catalog for production and another for testing. Here’s as example:
>>> from scottbrian_utils.file_catalog import FileCatalog >>> from pathlib import Path >>> prod_cat = FileCatalog({'file1': Path('/prod_files/file1.csv')}) >>> print(prod_cat.get_path('file1')) /prod_files/file1.csv
>>> test_cat = FileCatalog({'file1': Path('/test_files/test_file1.csv')}) >>> print(test_cat.get_path('file1')) /test_files/test_file1.csv
With @time_box, you can decorate a function to be sandwiched between start time and end time messages like this:
>>> from scottbrian_utils.time_hdr import time_box
>>> @time_box ... def func2() -> None: ... print('2 * 3 =', 2*3)
>>> func2() <BLANKLINE> ********************************************** * Starting func2 on Mon Jun 29 2020 18:22:50 * ********************************************** 2 * 3 = 6 <BLANKLINE> ******************************************** * Ending func2 on Mon Jun 29 2020 18:22:51 * * Elapsed time: 0:00:00.001204 * ********************************************
Installation
Linux:
pip install scottbrian-utils
Development setup
See tox.ini
Release History
- 1.0.0
Initial release
- 1.0.1
Added doc link to setup.py
Added version number to __init__.py
Added code in setup.py to get version number from __init__.py
Added licence to setup.py classifiers
- 1.1.0
Added FileCatalog
- 1.2.0
Added diag_msg
- 2.0.0
changed get_formatted_call_sequence and diag_msg (both in diag_msg.py) to get class name in additional cases
dropped support for python 3.6, 3.7, and 3.8
Meta
Scott Tuttle
Distributed under the MIT license. See LICENSE for more information.
Contributing
Fork it (<https://github.com/yourname/yourproject/fork>)
Create your feature branch (git checkout -b feature/fooBar)
Commit your changes (git commit -am ‘Add some fooBar’)
Push to the branch (git push origin feature/fooBar)
Create a new Pull Request
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
Hashes for scottbrian_utils-2.0.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6627a46c31b63b840c52edb4a49121c110d9d09aca05fa3f9ded5a29869e9f9a |
|
MD5 | e3d087d256629483ddae119c0f83a809 |
|
BLAKE2b-256 | df220ca04c8bd7a01fbb4731859590938411207a821c1fdac5f16eef19311e0c |