forked from quaquel/pyNetLogo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.py
71 lines (54 loc) · 1.98 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
from __future__ import (print_function, absolute_import)
import io
import os
import re
from setuptools import setup
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 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.")
def package_files(root, package_data_dir):
paths = []
directory = os.path.join(root, package_data_dir)
for (path, directories, filenames) in os.walk(directory):
for filename in filenames:
full_path = os.path.join(path, filename)
paths.append(os.path.relpath(full_path, root))
return paths
java_files = package_files('pyNetLogo', 'java')
# java_files = [''.join(['connectors/', entry]) for entry in java_files]
NAME = 'pyNetLogo'
pjoin = os.path.join
here = os.path.abspath(os.path.dirname(__file__))
pkg_root = pjoin(here, NAME)
packages = []
for d, _, _ in os.walk(pjoin(here, NAME)):
if os.path.exists(pjoin(d, '__init__.py')):
packages.append(d[len(here) + 1:].replace(os.path.sep, '.'))
VERSION = version('pyNetLogo/__init__.py')
LONG_DESCRIPTION = """Project Documentation: https://pyNetLogo.readthedocs.io/"""
JAVA = java_files
PACKAGES = packages
setup(
name=NAME,
version=VERSION,
description='Python interface to NetLogo',
long_description=LONG_DESCRIPTION,
author='Jan Kwakkel',
author_email='j.h.kwakkel@tudelft.nl',
packages=PACKAGES,
package_data={NAME: JAVA},
url='https://github.com/quaquel/pyNetLogo',
license='BSD 3-Clause',
platforms="Linux, Mac OS X, Windows",
)