Basic Finite State Machine (FSM) tools.
Graphviz utility functions.
Assorted filesystem related utility functions, some of which have been bloating cs.fileutils for too long.
PlayOn facilities, primarily access to the download API. Includes a nice command line tool.
Utilities and command line for working with EBooks. Basic support for talking to Apple Books, Calibre, Kindle, Mobi. These form the basis of my personal Kindle and Calibre workflow.
ServiceAPI, a base class for APIs which talk to a service, typically a web service via HTTP.
Convenience functions for working with the Cmd module, the BaseCommand class for constructing command line programmes, and other command line related stuff.
a Range class implementing compact integer ranges with a set-like API, and associated functions
Assorted debugging facilities.
Assorted utility functions for working with data downloaded from Selectronics' SP-LINK programme which communicates with their solar inverter controllers.
Efficient portable machine native columnar file storage of time series data for double float and signed 64-bit integers.
Simple SQL based tagging and the associated `sqltags` command line script, supporting both tagged named objects and tagged timestamped log entries.
Tags and sets of tags with __format__ support and optional ontology information.
Assorted utility functions to support working with SQLAlchemy.
Facilities for mappings and objects associated with mappings.
Assorted process and subprocess management functions.
Easy context prefixes for messages.
Resource management classes and functions.
My grab bag of convenience functions for files and filenames/pathnames.
Simple filesystem based file tagging and the associated `fstags` command line script.
A few conveniences for working with matplotlib.
Some environment related functions.
A general purpose Task and TaskQueue for running tasks with dependencies and failure/retry, potentially in parallel.
Facilities associated with binary data parsing and transcription. The classes in this module support easy parsing of binary data structures, returning instances with the binary data decoded into attributes and capable of transcribing themselves in binary form (trivially via `bytes(instance)` and also otherwise).
A progress tracker with methods for throughput, ETA and update notification; also a compound progress meter composed from other progress meters.
Facilities to do with buffers, particularly CornuCopyBuffer, an automatically refilling buffer to support parsing of data streams.
Single and multiple line status updates with minimal update sequences.
Lexical analysis functions, tokenisers, transcribers: an arbitrary assortment of lexical and tokenisation functions useful for writing recursive descent parsers, of which I have several. There are also some transcription functions for producing text from various objects, such as `hexify` and `unctrl`.
some Queue subclasses and ducktypes
Result and friends: various subclassable classes for deferred delivery of values.
threading and communication/synchronisation conveniences
Assorted context managers.
Convenience facilities related to Python functions.
X(), for low level debugging.
Assorted decorator functions.
Gimmicks and hacks to make some of my other modules more robust and less demanding of others.
Trite hacks for use with typing.
Queue functions for execution later in priority and time order.
Facilities for ISO14496 files - the ISO Base Media File Format, the basis for several things including MP4 and MOV.
facilities for shared access to files
Logging convenience routines.
Convenience facilities for managing exceptions.
A few conveniences to do with dates and times.
Hacks to assist with testing.
Manage persistent ssh tunnels and port forwards.
SvcD class and "svcd" command to run persistent service programmes.
Some simple MacOS plist facilities. Supports binary plist files, which the stdlib `plistlib` module does not.
Tool for finding and hardlinking identical files.
POP3 stuff, particularly a streaming downloader and a simple command line which runs it.
Stuff to do with counters, sequences and iterables.
A few ad hoc numeric alogrithms: `factors` and `primes`.
Convenience functions for the python execution stack.
Convenience facilities for objects.
my make program; parallel make tool with superior expression syntax
CSV file related facilities
A couple of trite XML conveniences: preferred `etree` import and a `pprint` function.
Utility functions and classes for .ini style configuration files.
Convenience functions related to modules and importing.
Aids for code sharing between python2 and python3.
Convenience functions for editing things. - Cameron Simpson <email@example.com> 02jun2016
Convenient command line and library wrapper for youtube-dl.
Create documentation from python modules and other objects.
Functions for decomposing nonnegative integers according to various unit scales and also parsing support for values written in scales.
Convenience functions for ANSI terminal colour sequences [color].
Support for ID3 tags. A cs.binary based parser/transcriber for ID3 tags and a convenience wrapper for Doug Zongker's pyid3lib: http://pyid3lib.sourceforge.net/
general purpose bidirectional packet stream connection
convenience routines for times and timing
utilities for working with newline delimited JSON (NDJSON) files
Command line tool to inspect and manipulate LSI MegaRAID adapters, such as used in IBM ServeRAID systems and Dell PowerEdge RAID Controller (PERC).
OBSOLETE: some serialising functions. Please use by cs.binary instead.
Functions related to terminals.
Convenience functions for constructing shell commands.
fnctions for expressing predicates
functions and classes to work with email
Persistent filesystem based flags for state and control.
email message filing system which monitors multiple inbound Maildir folders
unrfc2047: a decoder for RFC2047 (MIME Part 3) encoded text.
Function pipelines mediated by queues and a Later.
convenience functions for working with URLs
A content hash based data store with a filesystem layer, using variable sized blocks, arbitrarily sized data and utilising some domain knowledge to aid efficient block boundary selection.
implementation of PEP0418 with the "Choosing the clock from a list of constraints" get_clock() and get_clocks() functions
some utilities for network sockets
caching data structures and other lossy things with capped sizes
Trivial FileState class used to watch for file changes.
Tool for sending a wake on LAN (WOL) packet out a specific interface to a specific MAC address.
OpenSSH configuration parsing.
RFC2616 (HTTP 1.1) facilities
a simple and versatile collection of nodes with attributes, accessed as direct Python objects and automatically transcribed to assorted backing stores (CSV, SQL, GDBM, etc); the CSV backend can be (loosely) shared between multiple clients
various trite types associated with integers, such as bitmasks, flags and enums
easy HTML and XHTML transcription
a cs.nodedb NodeDB subclass for storing email address information (groups, addresses, so forth)
Beyonwiz PVR and TVWiz recording utilities
Mixin for .FOO uppercase attributes mapped to ['FOO'] access.