-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsetup.py
69 lines (60 loc) · 1.87 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
import io
import os
import re
from setuptools import setup, find_packages
def read(path, encoding='utf-8'):
path = os.path.join(os.path.dirname(__file__), path)
with io.open(path, encoding=encoding) as fp:
return fp.read()
def get_install_requirements(path):
content = read(path)
return [
req
for req in content.split("\n")
if req != '' and not req.startswith('#')
]
def version(path):
"""Obtain the packge version from a python file e.g. pkg/__init__.py
See <https://packaging.python.org/en/latest/single_source_version.html>.
"""
version_file = read(path)
version_match = re.search(r"""^__version__ = ['"]([^'"]*)['"]""",
version_file, re.M)
if version_match:
return version_match.group(1)
raise RuntimeError("Unable to find version string.")
DESCRIPTION = "Python implementation of TopoJSON"
LONG_DESCRIPTION = """
Python port of Mike Bostock's TopoJSON.
TopoJSON is an extension of GeoJSON that encodes topology.
Rather than representing geometries discretely,
geometries in TopoJSON files are stitched together from shared line segments called arcs.
"""
NAME = "topojson"
AUTHOR = "Christophe Rousson"
MAINTAINER = "Christophe Rousson"
URL = 'https://github.com/tramebleue/python-topojson'
LICENSE = 'BSD'
PACKAGES = find_packages()
VERSION = version('topojson/__init__.py')
DEV_REQUIRES = get_install_requirements("requirements-dev.txt")
setup(
name=NAME,
version=VERSION,
license=LICENSE,
packages=PACKAGES,
# extras_requires={
# 'dev': DEV_REQUIRES
# },
test_suite="tests",
description=DESCRIPTION,
long_description=LONG_DESCRIPTION,
author=AUTHOR,
maintainer=MAINTAINER,
# maintainer_email=MAINTAINER_EMAIL,
# url=URL
entry_points='''
[console_scripts]
geo2topo=topojson.cli.geo2topo:geo2topo
'''
)