From 5731016ca51b61d1e1c3ddda74bcdd5c99d2030a Mon Sep 17 00:00:00 2001 From: Jack Robison Date: Tue, 29 Mar 2022 16:06:44 -0400 Subject: [PATCH] move module cli entrypoints to __main__.py files --- scribe/blockchain/__init__.py | 2 +- scribe/blockchain/__main__.py | 27 ++++++++++++++ scribe/cli.py | 64 -------------------------------- scribe/common.py | 6 +++ scribe/elasticsearch/__init__.py | 4 +- scribe/elasticsearch/__main__.py | 29 +++++++++++++++ scribe/hub/__main__.py | 29 +++++++++++++++ setup.py | 6 +-- 8 files changed, 97 insertions(+), 70 deletions(-) create mode 100644 scribe/blockchain/__main__.py delete mode 100644 scribe/cli.py create mode 100644 scribe/elasticsearch/__main__.py create mode 100644 scribe/hub/__main__.py diff --git a/scribe/blockchain/__init__.py b/scribe/blockchain/__init__.py index a729426..8e0dfca 100644 --- a/scribe/blockchain/__init__.py +++ b/scribe/blockchain/__init__.py @@ -1 +1 @@ -from .network import LBCTestNet, LBCRegTest, LBCMainNet +from scribe.blockchain.network import LBCTestNet, LBCRegTest, LBCMainNet diff --git a/scribe/blockchain/__main__.py b/scribe/blockchain/__main__.py new file mode 100644 index 0000000..a47cc88 --- /dev/null +++ b/scribe/blockchain/__main__.py @@ -0,0 +1,27 @@ +import logging +import traceback +import argparse +from scribe.env import Env +from scribe.common import setup_logging +from scribe.blockchain.service import BlockchainProcessorService + + +def main(): + setup_logging() + parser = argparse.ArgumentParser( + prog='scribe' + ) + Env.contribute_to_arg_parser(parser) + args = parser.parse_args() + try: + block_processor = BlockchainProcessorService(Env.from_arg_parser(args)) + block_processor.run() + except Exception: + traceback.print_exc() + logging.critical('scribe terminated abnormally') + else: + logging.info('scribe terminated normally') + + +if __name__ == "__main__": + main() diff --git a/scribe/cli.py b/scribe/cli.py deleted file mode 100644 index 675a77f..0000000 --- a/scribe/cli.py +++ /dev/null @@ -1,64 +0,0 @@ -import logging -import traceback -import argparse -from scribe.env import Env -from scribe.blockchain.service import BlockchainProcessorService -from scribe.hub.service import HubServerService -from scribe.elasticsearch.service import ElasticSyncService - - -def get_arg_parser(name): - parser = argparse.ArgumentParser( - prog=name - ) - Env.contribute_to_arg_parser(parser) - return parser - - -def setup_logging(): - logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)-4s %(name)s:%(lineno)d: %(message)s") - logging.getLogger('aiohttp').setLevel(logging.WARNING) - logging.getLogger('elasticsearch').setLevel(logging.WARNING) - - -def run_writer_forever(): - setup_logging() - args = get_arg_parser('scribe').parse_args() - try: - block_processor = BlockchainProcessorService(Env.from_arg_parser(args)) - block_processor.run() - except Exception: - traceback.print_exc() - logging.critical('scribe terminated abnormally') - else: - logging.info('scribe terminated normally') - - -def run_server_forever(): - setup_logging() - args = get_arg_parser('scribe-hub').parse_args() - - try: - server = HubServerService(Env.from_arg_parser(args)) - server.run() - except Exception: - traceback.print_exc() - logging.critical('hub terminated abnormally') - else: - logging.info('hub terminated normally') - - -def run_es_sync_forever(): - setup_logging() - parser = get_arg_parser('scribe-elastic-sync') - parser.add_argument('--reindex', type=bool, default=False) - args = parser.parse_args() - - try: - server = ElasticSyncService(Env.from_arg_parser(args)) - server.run(args.reindex) - except Exception: - traceback.print_exc() - logging.critical('es sync terminated abnormally') - else: - logging.info('es sync terminated normally') diff --git a/scribe/common.py b/scribe/common.py index 45d122d..d42fed7 100644 --- a/scribe/common.py +++ b/scribe/common.py @@ -23,6 +23,12 @@ HISTOGRAM_BUCKETS = ( ) +def setup_logging(): + logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)-4s %(name)s:%(lineno)d: %(message)s") + logging.getLogger('aiohttp').setLevel(logging.WARNING) + logging.getLogger('elasticsearch').setLevel(logging.WARNING) + + class StagedClaimtrieItem(typing.NamedTuple): """ Represents a claim TXO, used internally by the block processor diff --git a/scribe/elasticsearch/__init__.py b/scribe/elasticsearch/__init__.py index 041e949..68591c9 100644 --- a/scribe/elasticsearch/__init__.py +++ b/scribe/elasticsearch/__init__.py @@ -1,2 +1,2 @@ -from .search import SearchIndex -from .notifier_protocol import ElasticNotifierClientProtocol \ No newline at end of file +from scribe.elasticsearch.search import SearchIndex +from scribe.elasticsearch.notifier_protocol import ElasticNotifierClientProtocol \ No newline at end of file diff --git a/scribe/elasticsearch/__main__.py b/scribe/elasticsearch/__main__.py new file mode 100644 index 0000000..976db56 --- /dev/null +++ b/scribe/elasticsearch/__main__.py @@ -0,0 +1,29 @@ +import logging +import traceback +import argparse +from scribe.env import Env +from scribe.common import setup_logging +from scribe.elasticsearch.service import ElasticSyncService + + +def main(): + setup_logging() + parser = argparse.ArgumentParser( + prog='scribe-elastic-sync' + ) + Env.contribute_to_arg_parser(parser) + parser.add_argument('--reindex', type=bool, default=False) + args = parser.parse_args() + + try: + server = ElasticSyncService(Env.from_arg_parser(args)) + server.run(args.reindex) + except Exception: + traceback.print_exc() + logging.critical('es sync terminated abnormally') + else: + logging.info('es sync terminated normally') + + +if __name__ == "__main__": + main() diff --git a/scribe/hub/__main__.py b/scribe/hub/__main__.py new file mode 100644 index 0000000..5d6ca0c --- /dev/null +++ b/scribe/hub/__main__.py @@ -0,0 +1,29 @@ +import logging +import traceback +import argparse +from scribe.env import Env +from scribe.common import setup_logging +from scribe.hub.service import HubServerService + + +def main(): + setup_logging() + parser = argparse.ArgumentParser( + prog='scribe-hub' + ) + Env.contribute_to_arg_parser(parser) + args = parser.parse_args() + + try: + + server = HubServerService(Env.from_arg_parser(args)) + server.run() + except Exception: + traceback.print_exc() + logging.critical('hub terminated abnormally') + else: + logging.info('hub terminated normally') + + +if __name__ == "__main__": + main() diff --git a/setup.py b/setup.py index ab2c1a5..eee770a 100644 --- a/setup.py +++ b/setup.py @@ -23,9 +23,9 @@ setup( zip_safe=False, entry_points={ 'console_scripts': [ - 'scribe=scribe.cli:run_writer_forever', - 'scribe-hub=scribe.cli:run_server_forever', - 'scribe-elastic-sync=scribe.cli:run_es_sync_forever', + 'scribe=scribe.blockchain.__main__:main', + 'scribe-hub=scribe.hub.__main__:main', + 'scribe-elastic-sync=scribe.elasticsearch.__main__:main', ], }, install_requires=[