From 9716f0199f8026239bbe5f72d2763af0fd70fbc2 Mon Sep 17 00:00:00 2001 From: Benjamin Dweck Date: Fri, 16 Oct 2020 15:04:50 +0200 Subject: [PATCH] Can build torch-pub.exe and load config file --- pyproject.toml | 3 +++ setup.cfg | 34 ++++++++++++++++++++++++ setup.py | 39 +++++++++++++++------------- test/test_integration.py | 2 +- {torch_sub => torchsub}/__init__.py | 0 {torch_sub => torchsub}/torch_sub.py | 31 +++++++++++++++------- 6 files changed, 81 insertions(+), 28 deletions(-) create mode 100644 pyproject.toml create mode 100644 setup.cfg rename {torch_sub => torchsub}/__init__.py (100%) rename {torch_sub => torchsub}/torch_sub.py (68%) diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..07de284 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["setuptools", "wheel"] +build-backend = "setuptools.build_meta" \ No newline at end of file diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..4bbdae2 --- /dev/null +++ b/setup.cfg @@ -0,0 +1,34 @@ +# import setuptools +# import torchsub +# +# setuptools.setup( +# name="torchsub", +# version=torchsub.__version__, +# author='Benjamin Dweck', +# author_email='bjdweck@gmail.com', +# url='http://git.rudefox.io/bj/torch-subscriber-simple', +# packages=setuptools.find_packages(), +# entry_points={ +# 'console_scripts': ['torch-sub=torchsub.torch_sub:main'], +# }, +# classifiers=[ +# "Programming Language :: Python :: 3", +# "License :: OSI Approved :: MIT License", +# ], +# ) + +[metadata] +name = torchsub +version = 0.0.1 + +[options] +packages = find: +install_requires = + paho-mqtt~=1.5.1 + +[options.entry_points] +console_scripts = + torch-sub=torchsub.torch_sub:main + +[options.packages.find] +exclude=test \ No newline at end of file diff --git a/setup.py b/setup.py index 43d058d..303bbc9 100644 --- a/setup.py +++ b/setup.py @@ -1,19 +1,22 @@ -from setuptools import setup +# import setuptools +# import torchsub +# +# setuptools.setup( +# name="torchsub", +# version=torchsub.__version__, +# author='Benjamin Dweck', +# author_email='bjdweck@gmail.com', +# url='http://git.rudefox.io/bj/torch-subscriber-simple', +# packages=setuptools.find_packages(), +# entry_points={ +# 'console_scripts': ['torch-sub=torchsub.torch_sub:main'], +# }, +# classifiers=[ +# "Programming Language :: Python :: 3", +# "License :: OSI Approved :: MIT License", +# ], +# ) -setup( - name='torch-subscriber-simple', - version='0.0.1', - packages=['torch_sub', 'torch_sub.test'], - url='http://git.rudefox.io/bj/torch-subscriber-simple', - license='MIT', - author='Benjamin Dweck', - author_email='bjdweck@gmail.com', - description='', - entry_points={ - 'console_scripts': ['torch-sub=torch_sub.torch_sub:main'], - }, - classifiers=[ - "Programming Language :: Python :: 3", - "License :: OSI Approved :: MIT License", - ], -) +import setuptools + +setuptools.setup() diff --git a/test/test_integration.py b/test/test_integration.py index 955dd41..e23896d 100644 --- a/test/test_integration.py +++ b/test/test_integration.py @@ -10,7 +10,7 @@ from unittest.case import TestCase import paho.mqtt.client as mqtt -from torch_sub import torch_sub +from torchsub import torch_sub broker_hostname = "mqtt.example.com" broker_port = 8883 diff --git a/torch_sub/__init__.py b/torchsub/__init__.py similarity index 100% rename from torch_sub/__init__.py rename to torchsub/__init__.py diff --git a/torch_sub/torch_sub.py b/torchsub/torch_sub.py similarity index 68% rename from torch_sub/torch_sub.py rename to torchsub/torch_sub.py index 498bf94..56c6de3 100644 --- a/torch_sub/torch_sub.py +++ b/torchsub/torch_sub.py @@ -2,6 +2,7 @@ import argparse import configparser import json import os +import sys import threading import paho.mqtt.subscribe as mqtt @@ -47,15 +48,23 @@ class Config: self.topic = None self.tls = None parser = self.do_cli_argument_parsing() - config_path = self.get_config_path(parser.parse_args()) + (config_path, config_filename) = self.get_config_path(parser.parse_args()) print("Using torch configuration path: " + config_path) - self.read_configuration_file(config_path) + self.read_configuration_file(config_path, config_filename) @staticmethod def do_cli_argument_parsing(): parser = argparse.ArgumentParser(description='Simple Torch Flat-file Database Subscriber') - parser.add_argument('--config-dir', nargs='?', dest='configPath', default='/etc/torch', + parser.add_argument('--config-dir', + nargs='?', + dest='configPath', + default='/etc/torch', help='configuration directory (default: /etc/torch)') + parser.add_argument('--config-filename', + nargs='?', + dest='configFilename', + default='torch-sub.conf', + help='configuration filename (default: torch-sub.conf)') return parser @staticmethod @@ -65,19 +74,23 @@ class Config: config_path = os.environ.get("TORCH_CONFIG_DIR") if not config_path.endswith("/"): config_path = config_path + "/" - return config_path + return config_path, args.configFilename - def read_configuration_file(self, config_path): + def read_configuration_file(self, config_dir, config_filename): + config_file_path = os.path.join(config_dir, config_filename) + if not os.path.exists(config_file_path): + print("Unable to locate config file at '%s'" % config_file_path) + sys.exit(1) config = configparser.ConfigParser() - config.read(config_path + "torch-sub.conf") + config.read(config_file_path) mqtt_config = config['mqtt'] self.broker_hostname = mqtt_config.get('BrokerHost', fallback="localhost") self.broker_port = mqtt_config.getint('BrokerPort', fallback=1883) self.topic = mqtt_config.get('Topic', fallback="torch/+/onion_url") require_certificate = mqtt_config.getboolean('RequireCertificate', fallback=False) - ca_file = config_path + mqtt_config.get('CaFile') - cert_file = config_path + mqtt_config.get('CertFile') - key_file = config_path + mqtt_config.get('KeyFile') + ca_file = config_dir + mqtt_config.get('CaFile', "") + cert_file = config_dir + mqtt_config.get('CertFile', "") + key_file = config_dir + mqtt_config.get('KeyFile', "") self.tls = None if require_certificate: self.tls = {