aboutsummaryrefslogtreecommitdiff
path: root/src_py
diff options
context:
space:
mode:
Diffstat (limited to 'src_py')
-rw-r--r--src_py/opcut/doit/main.py14
-rw-r--r--src_py/opcut/doit/pyopcut.py25
-rw-r--r--src_py/opcut/main.py24
3 files changed, 42 insertions, 21 deletions
diff --git a/src_py/opcut/doit/main.py b/src_py/opcut/doit/main.py
index d45859b..98844af 100644
--- a/src_py/opcut/doit/main.py
+++ b/src_py/opcut/doit/main.py
@@ -30,6 +30,13 @@ def task_gen_all():
'jsopcut_gen']}
+def task_check_all():
+ """Check all"""
+
+ return {'actions': None,
+ 'task_dep': ['pyopcut_check']}
+
+
def task_dist_clean():
"""Distribution - clean"""
@@ -39,9 +46,14 @@ def task_dist_clean():
def task_dist_build():
"""Distribution - build (DEFAULT)"""
+ def generate_setup_py():
+ with open('dist/setup.py', 'w', encoding='utf-8') as f:
+ f.write('\n')
+
return {'actions': [(_common.rm_rf, ['dist']),
(_common.cp_r, ['build/pyopcut', 'dist']),
- (_common.cp_r, ['build/jsopcut', 'dist/web'])],
+ (_common.cp_r, ['build/jsopcut', 'dist/opcut/web']),
+ generate_setup_py],
'task_dep': [
'gen_all',
'pyopcut_build',
diff --git a/src_py/opcut/doit/pyopcut.py b/src_py/opcut/doit/pyopcut.py
index 8582f95..98cd1af 100644
--- a/src_py/opcut/doit/pyopcut.py
+++ b/src_py/opcut/doit/pyopcut.py
@@ -1,13 +1,14 @@
-import py_compile
+# import py_compile
import os
import yaml
from pathlib import Path
+from doit.action import CmdAction
from opcut.doit import _common
-__all__ = ['task_pyopcut_clean', 'task_pyopcut_build', 'task_pyopcut_gen',
- 'task_pyopcut_gen_json_validator']
+__all__ = ['task_pyopcut_clean', 'task_pyopcut_build', 'task_pyopcut_check',
+ 'task_pyopcut_gen', 'task_pyopcut_gen_json_validator']
def task_pyopcut_clean():
@@ -24,15 +25,15 @@ def task_pyopcut_build():
def compile(src_path, dst_path):
_common.mkdir_p(dst_path.parent)
- if src_path.suffix == '.py':
- py_compile.compile(src_path, dst_path, doraise=True)
- else:
- _common.cp_r(src_path, dst_path)
+ # if src_path.suffix == '.py':
+ # py_compile.compile(src_path, dst_path.with_suffix('.pyc'),
+ # doraise=True)
+ # else:
+ # _common.cp_r(src_path, dst_path)
+ _common.cp_r(src_path, dst_path)
def create_subtask(src_path):
dst_path = Path('build/pyopcut') / src_path.relative_to('src_py')
- if dst_path.suffix == '.py':
- dst_path = dst_path.with_suffix('.pyc')
return {'name': str(src_path),
'actions': [(compile, [src_path, dst_path])],
'file_dep': [src_path],
@@ -50,6 +51,12 @@ def task_pyopcut_build():
yield create_subtask(src_path)
+def task_pyopcut_check():
+ """PyOpcut - run flake8"""
+
+ return {'actions': [CmdAction('python -m flake8 .', cwd='src_py')]}
+
+
def task_pyopcut_gen():
"""PyOpcut - generate additional python modules"""
diff --git a/src_py/opcut/main.py b/src_py/opcut/main.py
index 917cbb2..9ca2e18 100644
--- a/src_py/opcut/main.py
+++ b/src_py/opcut/main.py
@@ -7,6 +7,7 @@ import aiohttp.web
import ssl
import asyncio
import contextlib
+import os.path
from opcut import util
import opcut.json_validator
@@ -21,23 +22,26 @@ def main():
opcut.json_validator.validate(log_conf, 'opcut://logging.yaml#')
logging.config.dictConfig(log_conf)
- util.run_until_complete_without_interrupt(async_main(args))
+ addr = urllib.parse.urlparse(args.ui_addr)
+ pem_path = args.ui_pem_path
+ ui_path = args.ui_path or os.path.join(os.path.dirname(__file__), 'web')
+ util.run_until_complete_without_interrupt(
+ async_main(addr, pem_path, ui_path))
-async def async_main(args):
- addr = urllib.parse.urlparse(args.ui_addr)
+async def async_main(addr, pem_path, ui_path):
if addr.scheme == 'https':
ssl_ctx = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
- ssl_ctx.load_cert_chain(args.ui_pem_path)
+ ssl_ctx.load_cert_chain(pem_path)
else:
ssl_ctx = None
app = aiohttp.web.Application()
app.router.add_route('GET', '/',
lambda req: aiohttp.web.HTTPFound('/index.html'))
- app.router.add_static('/', args.ui_path)
+ app.router.add_static('/', ui_path)
app_handler = app.make_handler()
srv = await asyncio.get_event_loop().create_server(
@@ -63,14 +67,12 @@ def _create_parser():
"<host> is hostname; <port> is tcp port number "
"(default http://0.0.0.0:8080)")
parser.add_argument(
- '--ui-path', default='web',
- metavar='path', dest='ui_path',
- help="web front-end path (default web)")
- parser.add_argument(
- '--ui-pem', default=None,
- metavar='path', dest='ui_pem_path',
+ '--ui-pem', default=None, metavar='path', dest='ui_pem_path',
help="web front-end pem file path - required for https")
parser.add_argument(
+ '--ui-path', default=None, metavar='path', dest='ui_path',
+ help="override path to front-end web app")
+ parser.add_argument(
'--log', default=None, metavar='path', dest='log_conf_path',
help="logging configuration")
return parser