aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Procfile2
-rw-r--r--README.rst15
-rw-r--r--bin/compile1
-rw-r--r--requirements.txt1
-rw-r--r--src_py/opcut/doit/main.py49
5 files changed, 57 insertions, 11 deletions
diff --git a/Procfile b/Procfile
index 08d3287..531e0f2 100644
--- a/Procfile
+++ b/Procfile
@@ -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
diff --git a/README.rst b/README.rst
index c443e27..288ab92 100644
--- a/README.rst
+++ b/README.rst
@@ -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'
+ ]
+ }}
+)
+"""