diff options
| -rw-r--r-- | Procfile | 2 | ||||
| -rw-r--r-- | README.rst | 15 | ||||
| -rw-r--r-- | bin/compile | 1 | ||||
| -rw-r--r-- | requirements.txt | 1 | ||||
| -rw-r--r-- | src_py/opcut/doit/main.py | 49 |
5 files changed, 57 insertions, 11 deletions
@@ -1 +1 @@ -web: cd dist && python -m opcut.main server --ui-addr http://0.0.0.0:$PORT +web: python -m opcut.main server --ui-addr http://0.0.0.0:$PORT @@ -28,13 +28,23 @@ Development requirements Install ------- -... + $ pip install opcut Run --- -... +Running server (default listening address http://0.0.0.0:8080): + + $ opcut server + +Running command line utility: + + $ opcut calculate ... + +Additional command line arguments: + + $ opcut --help Build @@ -62,7 +72,6 @@ TODO * global * create CONTRIBUTING - * write setup.py * optimizer diff --git a/bin/compile b/bin/compile index 74972aa..9aa8e6c 100644 --- a/bin/compile +++ b/bin/compile @@ -3,3 +3,4 @@ cd $1 doit clean_all doit +pip install ./dist/*.whl diff --git a/requirements.txt b/requirements.txt index d458021..d4004cd 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,3 +4,4 @@ jsonschema aiohttp flake8 pycairo +wheel diff --git a/src_py/opcut/doit/main.py b/src_py/opcut/doit/main.py index 98844af..fb34e8c 100644 --- a/src_py/opcut/doit/main.py +++ b/src_py/opcut/doit/main.py @@ -1,3 +1,4 @@ +from doit.action import CmdAction from opcut.doit import _common @@ -47,14 +48,48 @@ 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/opcut/web']), - generate_setup_py], + with open('requirements.txt', encoding='utf-8') as f: + dependencies = [i.strip() for i in f.readlines() if i.strip()] + with open('build/dist/setup.py', 'w', encoding='utf-8') as f: + f.write(_setup_py.format( + version='0.1.0', + dependencies=repr(dependencies))) + + return {'actions': [ + (_common.rm_rf, ['dist', 'build/dist']), + (_common.cp_r, ['build/pyopcut', 'build/dist']), + (_common.cp_r, ['build/jsopcut', 'build/dist/opcut/web']), + (_common.cp_r, ['README.rst', 'build/dist/README.rst']), + generate_setup_py, + CmdAction('python setup.py bdist_wheel --dist-dir ../../dist', + cwd='build/dist')], 'task_dep': [ 'gen_all', 'pyopcut_build', 'jsopcut_build']} + + +_setup_py = r""" +from setuptools import setup +setup( + name='opcut', + version='{version}', + description='Cutting stock problem optimizer', + url='https://github.com/bozokopic/opcut', + author='Bozo Kopic', + author_email='bozo.kopic@gmail.com', + license='GPLv3', + python_requires='>=3.5', + zip_safe=False, + packages=['opcut'], + package_data={{ + 'opcut': ['web/*', 'web/fonts/*'] + }}, + install_requires={dependencies}, + entry_points={{ + 'console_scripts': [ + 'opcut = opcut.main:main' + ] + }} +) +""" |
