Skip to main content

A high-powered command line menu framework.

Project description

Application framework for Python, features include:
  • Pain-free multi-level command menu: Expose public class methods as commands available to user.

  • Simple to define services and automatic dependency injection based on name (with custom invocation as an option). *WIP

  • INI-style config and and validation (provided through ConfigObj).

  • Colored logging (provided through colorlog)

  • Works on Linux, Windows, and Mac.

Principles:
  • Lend to creating beautiful, easy to read and understand code in the application.

  • Minimize coupling of applications to this framework.

  • Compatable with Linux, Windows, and Mac. Try to be compatible as possible otherwise.

  • Try to be compatible with alternate Python runtimes such as PyPy and older python environments. *WIP

Application Configuration

Site configurations are supported through ConfigObj. There is a config.spec in the src directory which is a validation file; it contains the accepted parameter names, types, and limits for configurable options in the application which is built on app_skellington. The format is multi-level .ini syntax.

Reference the ConfigObj documentation for config.ini and config.spec format. See:

Config files (config.ini) are created if they don’t exist. The file always contains the full specification of parameters; i.e. even default parameters are added into the config file.

Linux:

/home/<user>/.config/<app_name>/config.ini

/home/<user>/.cache/<app_name>/log/<app_name>.log

Windows:

C:\Users\<user>\<app_name>\Local\<app_name>\config.ini

C:\Users\<user>\<app_name>\Local\<app_name>\Logs\<app_name>.log

Application configuration can be overridden ad-hoc through the –config <filename> argument.

Debug - Turn on Logging

Set ‘APPSKELLINGTON_ENABLE_LOGGING’ environment variable to any value which turns on AppSkellington-level logging. For example,

APPSKELLINGTON_DEBUG=1 <executable>

or

export APPSKELLINGTON_DEBUG=1 <executable>

Tests

Tests are a WIP. Recommendation is to run ‘pytest’ in the ‘tests’ directory.

License

I’m releasing this software under one of the most permissive licenses, the MIT software license. This applies to this source repository and all files within it.

Notes

See official website: https://zavage-software.com Please report bugs, improvements, or feedback!

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

app_skellington-0.1.1.tar.gz (17.1 kB view details)

Uploaded Source

Built Distribution

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

app_skellington-0.1.1-py3-none-any.whl (18.4 kB view details)

Uploaded Python 3

File details

Details for the file app_skellington-0.1.1.tar.gz.

File metadata

  • Download URL: app_skellington-0.1.1.tar.gz
  • Upload date:
  • Size: 17.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.42.0 CPython/3.8.3

File hashes

Hashes for app_skellington-0.1.1.tar.gz
Algorithm Hash digest
SHA256 d9ea7423f8e9434724065e528f89b35182abe9b338e6997397d46e98e7f87a0a
MD5 bc42d66a9f103beefa517f69a11007f4
BLAKE2b-256 cb7a42ca07a0c204223647f925bc1b528b22de83bb67a8cebb1abf8e03fc692f

See more details on using hashes here.

File details

Details for the file app_skellington-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: app_skellington-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 18.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.42.0 CPython/3.8.3

File hashes

Hashes for app_skellington-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 61853a63b6683a3bccbca87c34d19352c1c5c4ab80fb4ff5fa77ebc0cf3348af
MD5 37c3d0da08c96079cf359b7c94edfda9
BLAKE2b-256 f4611eba1349d4b4ef3023e454f4c26bf37b83e6676ae413704bb2651e68c7b3

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