From 6b9ecb57853ad7030be05ef6ef040f8a35022c89 Mon Sep 17 00:00:00 2001 From: Dorian Pula Date: Tue, 22 Jul 2014 20:19:52 -0400 Subject: [PATCH] Split up extra requirements away from the rest of the project. Add setup.py for PyPI distribution. Enhance Invoke tasks. --- .../development.txt | 1 - requirements/web.txt | 2 + setup.py | 37 +++++++++++++++++++ tasks.py | 4 ++ 4 files changed, 43 insertions(+), 1 deletion(-) rename requirements-dev.txt => requirements/development.txt (98%) create mode 100644 requirements/web.txt create mode 100644 setup.py diff --git a/requirements-dev.txt b/requirements/development.txt similarity index 98% rename from requirements-dev.txt rename to requirements/development.txt index c079073..e782739 100644 --- a/requirements-dev.txt +++ b/requirements/development.txt @@ -1,4 +1,3 @@ # Requirements for developing the justCheckers app Sphinx>=1.2.2 nose>=1.3.0 - diff --git a/requirements/web.txt b/requirements/web.txt new file mode 100644 index 0000000..68aea40 --- /dev/null +++ b/requirements/web.txt @@ -0,0 +1,2 @@ +# Requirements for the web front for justCheckers +Flask>=0.10 diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..7e20246 --- /dev/null +++ b/setup.py @@ -0,0 +1,37 @@ +# coding=utf-8 +import re + +from setuptools import setup, find_packages + + +def gather_requirements(filename='requirements.txt'): + """ + Gather the requirements from a requirements file. + + :param filename: The name of the file. + """ + with open(filename) as req_file: + raw_requirements = req_file.readlines() + + return [requirement.strip() + for requirement in raw_requirements + if requirement.strip() and not re.match('#|-(?!e)', requirement)] + +setup( + name='justcheckers', + version='0.5.0', + packages=['justcheckers'], + url='http://justcheckers.org/', + license='Affero GPL v3', + author='Dorian Pula', + author_email='dorian.pula@gmail.com', + description='An advanced cross-platform checkers game.', + + install_requires=gather_requirements(), + extras_requires={ + 'web': gather_requirements('requirements/web.txt'), + }, + + packages=find_packages('justcheckers'), + include_package_data=True, +) diff --git a/tasks.py b/tasks.py index 585ae8e..1131f0b 100644 --- a/tasks.py +++ b/tasks.py @@ -3,15 +3,19 @@ from os import path from invoke import task, run + @task def docs(): + """Build Sphinx documentation.""" build_dir = '_build' if not path.exists(build_dir): os.mkdir(build_dir) run('sphinx-build -b slides . _build') + @task def clean(): + """Clean generated files.""" run('rm *.pyc') run('rm _build -rv')