-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathsetup.py
63 lines (51 loc) · 1.68 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
import setuptools
# https://packaging.python.org/guides/single-sourcing-package-version/
import codecs
import os.path
def read(rel_path):
here = os.path.abspath(os.path.dirname(__file__))
with codecs.open(os.path.join(here, rel_path), 'r') as fp:
return fp.read()
def get_version(rel_path):
for line in read(rel_path).splitlines():
if line.startswith('__version__'):
delim = '"' if '"' in line else "'"
return line.split(delim)[1]
else:
raise RuntimeError("Unable to find version string.")
with open("README.md", "r") as fh:
long_description = fh.read()
test_deps = [
'pytest',
'pytest-cov',
'pytest-pycodestyle',
'pytest-pep8',
'pytest-flake8',
]
extras = {
'test': test_deps,
}
description = """
dijkstra is a native Python implementation of famous Dijkstra's shortest path
algorithm. The implemented algorithm can be used to analyze reasonably large
networks. The primary goal in design is the clarity of the program code. Thus,
program code tends to be more educational than effective.
"""
setuptools.setup(
name="dijkstra",
version=get_version("dijkstra/__init__.py"),
author="Jukka Aho",
author_email="[email protected]",
description=" ".join(description.strip().splitlines()),
long_description=long_description,
long_description_content_type="text/markdown",
url="https://github.com/ahojukka5/dijkstra",
packages=setuptools.find_packages(),
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
tests_require=test_deps,
extras_require=extras,
)