experiment with reStructuredtext

This commit is contained in:
Mathew Guest 2020-07-19 01:54:54 -06:00
parent 157a9e501c
commit 87fbc405c0
3 changed files with 38 additions and 27 deletions

@ -1,17 +1,17 @@
app_skellington app_skellington
=============== ===============
Application framework for Python, features include: Application framework for Python, features include:
* Pain-free multi-level command menu: Expose public class methods as commands available to user. - 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 - 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). - INI-style config and and validation (provided through ConfigObj).
* Colored logging (provided through colorlog) - Colored logging (provided through colorlog)
* Works on Linux, Windows, and Mac. - Works on Linux, Windows, and Mac.
Principles: Principles:
* Lend to creating beautiful, easy to read and understand code in the application. - Lend to creating beautiful, easy to read and understand code in the application.
* Minimize coupling of applications to this framework. - Minimize coupling of applications to this framework.
* Compatable with Linux, Windows, and Mac. Try to be compatible as possible otherwise. - 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 - Try to be compatible with alternate Python runtimes such as PyPy and older python environments. \*WIP
Application Configuration Application Configuration
------------------------- -------------------------
@ -23,8 +23,8 @@ application which is built on app_skellington. The format is multi-level .ini sy
Reference the ConfigObj documentation for config.ini and config.spec Reference the ConfigObj documentation for config.ini and config.spec
format. See: format. See:
* https://configobj.readthedocs.io/en/latest/configobj.html#the-config-file-format - https://configobj.readthedocs.io/en/latest/configobj.html#the-config-file-format
* https://configobj.readthedocs.io/en/latest/configobj.html#validation - https://configobj.readthedocs.io/en/latest/configobj.html#validation
Config files (config.ini) are created if they don't exist. The Config files (config.ini) are created if they don't exist. The
file always contains the full specification of parameters; i.e. even default file always contains the full specification of parameters; i.e. even default
@ -38,9 +38,9 @@ Linux:
Windows: Windows:
C:\Users\\\<user>\\\<app_name\>\\Local\\\<app_name\>\\config.ini C:\\Users\\\<user>\\\<app_name\>\\Local\\\<app_name\>\\config.ini
C:\Users\\\<user>\\\<app_name\>\\Local\\\<app_name\>\\Logs\\\<app_name\>.log C:\\Users\\\<user>\\\<app_name\>\\Local\\\<app_name\>\\Logs\\\<app_name\>.log
Application configuration can be overridden ad-hoc through the --config <filename> Application configuration can be overridden ad-hoc through the --config <filename>
argument. argument.
@ -50,11 +50,11 @@ Debug - Turn on Logging
Set 'APPSKELLINGTON_ENABLE_LOGGING' environment variable to any value which turns Set 'APPSKELLINGTON_ENABLE_LOGGING' environment variable to any value which turns
on AppSkellington-level logging. For example, on AppSkellington-level logging. For example,
APP_SKELLINGTON_DEBUG=1 <executable> APPSKELLINGTON_DEBUG=1 <executable>
or or
export APP_SKELLINGTON_DEBUG=1 export APPSKELLINGTON_DEBUG=1
<executable> <executable>
Tests Tests
@ -64,5 +64,5 @@ Tests are a WIP. Recommendation is to run 'pytest' in the 'tests' directory.
Notes Notes
----- -----
See official website: https://zavage-software.com See official website: https://zavage-software.com
Please report bugs, improvements, or feedback! <contact> Please report bugs, improvements, or feedback!

@ -473,7 +473,7 @@ class SubMenu:
# NOTE(MG) Fix below strategizes whether to pass in 'required' # NOTE(MG) Fix below strategizes whether to pass in 'required'
# paremter to ArgumentParser.add_subparsers() # paremter to ArgumentParser.add_subparsers()
# which was added in in Python3.7. # which was added in in Python3.7.
# Must also be written into SubMenu.create_submenu. # Must also be written into CommandTree.init_submenu
func_args = { func_args = {
'dest': var_name, 'dest': var_name,
'metavar': var_name, 'metavar': var_name,

@ -12,24 +12,35 @@
# #
# de-installation: # de-installation:
# #
# $ pip uninstall <app> # $ pip uninstall app_skellington
from setuptools import setup from setuptools import setup
import os
__project__ = 'app_skellington' __project__ = 'app_skellington'
__version__ = '0.1.0' __version__ = '0.1.1'
__description__ = 'A high-powered command line menu framework.'
long_description = __description__
readme_filepath = os.path.join(
os.path.abspath(os.path.dirname(__file__)),
'README.md'
)
with open(readme_filepath, encoding='utf-8') as fp:
long_description = fp.read()
setup( setup(
name = __project__, name = __project__,
version = __version__, version = __version__,
description = 'A high-powered 2-level CLI framework', description = 'A high-powered 2-level CLI framework',
author = 'Mathew Guest', long_description = long_description,
author_email = 't3h.zavage@gmail.com', author = 'Mathew Guest',
url = 'https://git-mirror.zavage-software.com/Mirror/app_skellington', author_email = 't3h.zavage@gmail.com',
license = 'MIT', url = 'https://git-mirror.zavage-software.com/Mirror/app_skellington',
license = 'MIT',
python_requires = '>=3', python_requires = '>=3',
classifiers = [ classifiers = [
'Development Status :: 3 - Alpha', 'Development Status :: 3 - Alpha',