Skip to main content

Minimal library for command-line applications.

Project description

A4 – Minimal library for command-line applications.

The name comes from A4 paper. It provides absolutely minimal (but not lousy) support for command-line applications.

A4 is listed on PyPI.

Simple logging

a4.log implements minimal logging with three major features which, in my highly opinionated opinion, should be included in all logging libraries:

  • Levels.
  • Colors.
  • Timestamps.

Yet another command-line application decorator

a4.app provides a decorator Runnable to convert a class into a runnable command-line application. All class methods NOT starting with understore are recognized as sub-commands. This pattern offers more convenience over single-function decorators when multiple commands require shared resources.

import a4
from a4.app import AppBase, Runnable

@Runnable
class MyApp(AppBase):
    def __init__(self):
        AppBase.__init__(self)

    def gen_calendar(self, args):
        """<yyyy> mmdd-mmdd [mmdd-mmdd ...]
        Generate trading calendar for one year.
        -c  <cal_id>   calendar ID, default 86
        """

        opts, args = a4.get_opts('c:', args)
        if len(args) < 2:
            self._die_usage()
        cal_id = int(opts['c'] or '86')
        self._log(f'calendar id = {cal_id}')


if __name__ == '__main__':
    MyApp().run()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

a4-0.2.5-py3-none-any.whl (7.6 kB view hashes)

Uploaded Python 3

Supported by

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