Skip to main content

A collection of Python 3 utilities for logging, threading, file monitoring, and geographic calculations

Project description

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.

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

tpwutils-0.2.0.tar.gz (28.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tpwutils-0.2.0-py3-none-any.whl (26.9 kB view details)

Uploaded Python 3

File details

Details for the file tpwutils-0.2.0.tar.gz.

File metadata

  • Download URL: tpwutils-0.2.0.tar.gz
  • Upload date:
  • Size: 28.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for tpwutils-0.2.0.tar.gz
Algorithm Hash digest
SHA256 47c380310e6fc54a4f07e7e3152f24e6e63cd128f2217e575b05e7d332a284de
MD5 7d47051cf93720f87e018e7c089f5a5f
BLAKE2b-256 7ea5e68c5e1b4bacbb0e02ad5798ef4b66eafbdaa9489f0dac1764ff9e4eda83

See more details on using hashes here.

File details

Details for the file tpwutils-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: tpwutils-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 26.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for tpwutils-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e7ce471a6d870f93bdce6ac8bab33e5635f82f65caa3191dc29038b9ac6cb12d
MD5 529aa4cbbf59b3c393de2ba5aedee231
BLAKE2b-256 48c564f7f1fa9da03dde8265f202ffa29cc909e701c96d67af481e65f7cc4be1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page