From e5a18d1abfc1898d7ca9e19e356735f01546ea6f Mon Sep 17 00:00:00 2001 From: lash Date: Fri, 13 May 2022 10:32:56 +0000 Subject: [PATCH] Make flag and arg preparations stateless --- chaind/cli/__init__.py | 24 ++++++++++----------- chaind/cli/arg.py | 30 +++++++++++++++------------ chaind/settings.py | 47 ++++++++++++++++++------------------------ requirements.txt | 8 +++---- setup.cfg | 3 ++- 5 files changed, 55 insertions(+), 57 deletions(-) diff --git a/chaind/cli/__init__.py b/chaind/cli/__init__.py index 0caa7c5..497338c 100644 --- a/chaind/cli/__init__.py +++ b/chaind/cli/__init__.py @@ -1,12 +1,12 @@ -# standard imports -import os - -# local imports -from .base import * -from .arg import process_flags -from .config import process_config - - -__script_dir = os.path.dirname(os.path.realpath(__file__)) -data_dir = os.path.join(os.path.dirname(__script_dir), 'data') -config_dir = os.path.join(data_dir, 'config') +## standard imports +#import os +# +## local imports +#from .base import * +#from .arg import process_flags +#from .config import process_config +# +# +#__script_dir = os.path.dirname(os.path.realpath(__file__)) +#data_dir = os.path.join(os.path.dirname(__script_dir), 'data') +#config_dir = os.path.join(data_dir, 'config') diff --git a/chaind/cli/arg.py b/chaind/cli/arg.py index 3e5033e..bf44603 100644 --- a/chaind/cli/arg.py +++ b/chaind/cli/arg.py @@ -1,17 +1,21 @@ -# local imports -from .base import ChaindFlag +def apply_flag(flag): + flag.add('session') + flag.add('dispatch') + flag.add('socket') + flag.add('socket_client') + flag.add('token') -def process_flags(argparser, flags): - if flags & ChaindFlag.SESSION > 0: - argparser.add_argument('--session-id', dest='session_id', type=str, help='Session to store state and data under') - argparser.add_argument('--runtime-dir', dest='runtime_dir', type=str, help='Directory to store volatile data') - argparser.add_argument('--data-dir', dest='data_dir', type=str, help='Directory to store persistent data') + flag.alias('chaind_base', 'session') + flag.alias('chaind_socket_client', 'session', 'socket', 'socket_client') - if flags & ChaindFlag.SOCKET > 0: - argparser.add_argument('--socket-path', dest='socket', type=str, help='UNIX socket path') + return flag - if flags & ChaindFlag.SOCKET_CLIENT > 0: - argparser.add_argument('--send-socket', dest='socket_send', action='store_true', help='Send to UNIX socket') - if flags & ChaindFlag.TOKEN > 0: - argparser.add_argument('--token-module', dest='token_module', type=str, help='Python module path to resolve tokens from identifiers') +def apply_arg(arg): + arg.add_long('session-id', 'session', help='Session to store state and data under') + arg.add_long('runtime-dir', 'session', help='Directory to store volatile data') + arg.add_long('data-dir', 'session', help='Directory to store persistent data') + arg.add_long('socket-path', 'socket', help='UNIX socket path') + arg.add_long('send-socket', 'socket_client', typ=bool, help='Send to UNIX socket') + arg.add_long('token-module', 'token', help='Python module path to resolve tokens from identifiers') + return arg diff --git a/chaind/settings.py b/chaind/settings.py index 25e05f5..a7ab6d0 100644 --- a/chaind/settings.py +++ b/chaind/settings.py @@ -68,18 +68,13 @@ def process_session(settings, config): settings.set('SESSION_RUNTIME_DIR', runtime_dir) settings.set('SESSION_DIR', session_dir) - settings.set('SESSION_DATA_DIR'], data_dir) + settings.set('SESSION_DATA_DIR', data_dir) settings.set('SESSION_ID', session_id) return settings -def process_sync_interface(settings, config): - raise NotImplementedError('no sync interface implementation defined') - - def process_sync(settings, config): - settings = process_sync_interface(settings, config) settings = process_sync_range(settings, config) return settings @@ -137,24 +132,22 @@ def process_chaind_queue(settings, config): return settings -def process_settings(settings, config): - settings = process_common(settings, config) - - if settings = include_queue: - settings = process_queue_backend(settings, config) - if settings = include_sync: - settings = process_sync_backend(settings, config) - - settings = process_backend(settings, config) - settings = process_session(settings, config) - - if settings = include_sync: - settings = process_sync(settings, config) - if settings = include_queue: - settings = process_chaind_queue(settings, config) - settings = process_dispatch(settings, config) - settings = process_token(settings, config) - - settings = process_socket(settings, config) - - return settings +#def process_settings(settings, config): +# if settings = include_queue: +# settings = process_queue_backend(settings, config) +# if settings = include_sync: +# settings = process_sync_backend(settings, config) +# +# settings = process_backend(settings, config) +# settings = process_session(settings, config) +# +# if settings = include_sync: +# settings = process_sync(settings, config) +# if settings = include_queue: +# settings = process_chaind_queue(settings, config) +# settings = process_dispatch(settings, config) +# settings = process_token(settings, config) +# +# settings = process_socket(settings, config) +# +# return settings diff --git a/requirements.txt b/requirements.txt index c745aeb..8f80413 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ -chainlib~=0.2.0 -chainqueue~=0.1.16 -chainsyncer~=0.4.9 -confini~=0.6.0 +chainlib~=0.3.0 +chainqueue~=0.1.17 +chainsyncer~=0.4.11 +confini~=0.6.1 funga~=0.5.2 pyxdg~=0.26 diff --git a/setup.cfg b/setup.cfg index b6ee1ef..dcbf45c 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = chaind -version = 0.2.12 +version = 0.2.13 description = Base package for chain queue service author = Louis Holbrook author_email = dev@holbrook.no @@ -30,6 +30,7 @@ packages = # chaind.runnable chaind.adapters chaind.unittest + chaind.data chaind.cli #[options.entry_points]