forked from keathmilligan/flask-quickstart
-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.py
102 lines (86 loc) · 2.27 KB
/
setup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
"""
Flask RESTful Quick Start Setup
"""
import sys
import os
from setuptools import setup
from setuptools import Command
from setuptools.command.test import test as TestCommand
from datetime import datetime
NAME = 'flask-quickstart'
VERSION = '0.1'
AUTHOR = 'Keath Milligan'
REQUIRED_PYTHON_VERSION = (2, 7)
PACKAGES = ['sample']
INSTALL_DEPENDENCIES = [
'Flask',
'Flask-SQLAlchemy',
'Flask-Marshmallow',
'Marshmallow-SQLAlchemy',
'Flask-JWT'
]
SETUP_DEPENDENCIES = [
]
TEST_DEPENDENCIES = [
'pytest'
]
EXTRA_DEPENDENCIES = {
'dev': [
'pytest',
'flake8',
'Sphinx'
]
}
if sys.version_info < REQUIRED_PYTHON_VERSION:
sys.exit('Python >= 2.7 is required. Your version:\n'+sys.version)
class PyTest(TestCommand):
"""
Use pytest to run tests
"""
user_options = [('pytest-args=', 'a', "Arguments to pass into py.test")]
def initialize_options(self):
TestCommand.initialize_options(self)
self.pytest_args = []
def finalize_options(self):
TestCommand.finalize_options(self)
self.test_args = []
self.test_suite = True
def run_tests(self):
import pytest
errno = pytest.main(self.pytest_args)
sys.exit(errno)
class BuildDocs(Command):
"""
Build Documentation
"""
user_options = []
def initialize_options(self):
pass
def finalize_options(self):
pass
def run(self):
import sphinx
metadata = self.distribution.metadata
docs = os.path.join(os.getcwd(), 'docs')
sphinx.main(['',
'-D', 'project='+metadata.name,
'-D', 'copyright={}, {}'.format(datetime.now().year,
metadata.author),
'-D', 'version='+metadata.version,
'-D', 'release='+metadata.version,
docs, os.path.join(docs, '_build')])
setup(
name=NAME,
version=VERSION,
author=AUTHOR,
packages=PACKAGES,
include_package_data=True,
install_requires=INSTALL_DEPENDENCIES,
setup_requires=SETUP_DEPENDENCIES,
tests_require=TEST_DEPENDENCIES,
extras_require=EXTRA_DEPENDENCIES,
cmdclass={
'test': PyTest,
'doc': BuildDocs
}
)