Skip to main content

This is a collection of my Python 3 utilities

  • Logger.py set up a logger which supports console, rolling file, and/or SMTP logging methods

    • addArgs(parser:argparse.ArgumentParser) adds command line arguments for setting up logging
    • mkLogger(args:argparse.ArgumentParser, fmt:str, name:str) uses the args to setup the logger
      • fmt is the logging message format, by default "%(asctime)s %(threadName)s %(levelname)s: %(message)s"
      • name is the logger to setup
  • Thread.py is a threading.Thread class which catches exceptions and sends them to a queue. Then the main thread can wait on the queue for a problem to arise in any of the threads.

  • INotify.py is a thread which waits for modifications in a file system then forwards the modifications to a set of queues for other threads to process. It handles adding/removing of directories.

  • GreatCircle.py calculates great circle distances on the earth in meters using Vincenty's method. Compared against Matlab's distance function, distance.sample.nc, it should give a maximum difference around 1e-7.

  • Credentials.py loads credentials from YAML files with automatic prompting if the file doesn't exist

    • getCredentials(fn:str) returns a tuple of (username, password) from the specified YAML file
  • SingleInstance.py ensures only one instance of a program runs at a time using Unix abstract sockets

    • Use as a context manager: with SingleInstance(key) as single:
  • loadAndExecuteSQL.py loads and executes SQL commands from a file with optional table existence checking

    • loadAndExecuteSQL(db, fn:str, tableName:str=None) executes SQL from a file, skipping if table already exists
  • install.py installs and manages systemd services and timers for both user and system contexts

    • addArgs(parser:ArgumentParser) adds command line arguments for service installation
    • install(args:ArgumentParser) installs services and timers
    • uninstall(args:ArgumentParser) removes services and timers

License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.

Metadata

Release files for TPWUtils 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for TPWUtils 0.2.0
File Size Uploaded
tpwutils-0.2.0.tar.gz 28.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for TPWUtils 0.2.0
File Interpreter ABI Platform
tpwutils-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 55.5 kB

Release files / tpwutils-0.2.0.tar.gz

Download URL tpwutils-0.2.0.tar.gz
Size 28.7 kB
Tags Source
SHA-256 checksum
How to use checksums
47c380310e6fc54a4f07e7e3152f24e6e63cd128f2217e575b05e7d332a284de
BLAKE2b-256 checksum
How to use checksums
7ea5e68c5e1b4bacbb0e02ad5798ef4b66eafbdaa9489f0dac1764ff9e4eda83
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Release files / tpwutils-0.2.0-py3-none-any.whl

Download URL tpwutils-0.2.0-py3-none-any.whl
Size 26.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e7ce471a6d870f93bdce6ac8bab33e5635f82f65caa3191dc29038b9ac6cb12d
BLAKE2b-256 checksum
How to use checksums
48c564f7f1fa9da03dde8265f202ffa29cc909e701c96d67af481e65f7cc4be1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page