setup.py 3.64 KB
Newer Older
spmohanty's avatar
spmohanty committed
1
2
3
4
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""The setup script."""
5
import os
6
import platform
7
import sys
8

9
from setuptools import setup, find_packages
spmohanty's avatar
spmohanty committed
10

u214892's avatar
u214892 committed
11
assert sys.version_info >= (3, 6)
spmohanty's avatar
spmohanty committed
12
13
14
15
16
17
with open('README.rst') as readme_file:
    readme = readme_file.read()

with open('HISTORY.rst') as history_file:
    history = history_file.read()

u214892's avatar
u214892 committed
18
# install pycairo on Windows
19
20
21
22
23
if os.name == 'nt':
    p = platform.architecture()
    is64bit = p[0] == '64bit'
    if sys.version[0:3] == '3.5':
        if is64bit:
24
            url = 'https://download.lfd.uci.edu/pythonlibs/t4jqbe6o/pycairo-1.18.1-cp35-cp35m-win_amd64.whl'
25
        else:
26
            url = 'https://download.lfd.uci.edu/pythonlibs/t4jqbe6o/pycairo-1.18.1-cp35-cp35m-win32.whl'
27
28
29

    if sys.version[0:3] == '3.6':
        if is64bit:
30
            url = 'https://download.lfd.uci.edu/pythonlibs/t4jqbe6o/pycairo-1.18.1-cp36-cp36m-win_amd64.whl'
31
        else:
32
            url = 'https://download.lfd.uci.edu/pythonlibs/t4jqbe6o/pycairo-1.18.1-cp36-cp36m-win32.whl'
33
34
35

    if sys.version[0:3] == '3.7':
        if is64bit:
36
            url = 'https://download.lfd.uci.edu/pythonlibs/t4jqbe6o/pycairo-1.18.1-cp37-cp37m-win_amd64.whl'
37
        else:
38
            url = 'https://download.lfd.uci.edu/pythonlibs/t4jqbe6o/pycairo-1.18.1-cp37-cp37m-win32.whl'
39
40
41
42

    try:
        import pycairo
    except:
u214892's avatar
u214892 committed
43
        call_cmd = "pip install " + url
44
45
46
47
        os.system(call_cmd)

        import site
        import ctypes.util
48

49
50
51
        default_os_path = os.environ['PATH']
        os.environ['PATH'] = ''
        for s in site.getsitepackages():
52
53
            os.environ['PATH'] = os.environ['PATH'] + ';' + s + '\\cairo'
        os.environ['PATH'] = os.environ['PATH'] + ';' + default_os_path
54
        print(os.environ['PATH'])
55
        if ctypes.util.find_library('cairo') is not None:
56
57
58
59
60
61
62
            print("cairo installed: OK")
else:
    try:
        import pycairo
    except:
        os.system("pip install pycairo==1.18.1")

63
64
65
66

def get_all_svg_files(directory='./svg/'):
    ret = []
    for f in os.listdir(directory):
67
        if os.path.isfile(os.path.join(directory, f)):
u214892's avatar
u214892 committed
68
            ret.append(directory + f)
69
70
71
    return ret


72
73
74
75
76
77
78
79
def get_all_images_files(directory='./images/'):
    ret = []
    for f in os.listdir(directory):
        if os.path.isfile(os.path.join(directory, f)):
            ret.append(directory + f)
    return ret


80
81
82
83
84
85
86
87
88
89
90
91
# Gather requirements from requirements_dev.txt
install_reqs = []
requirements_path = 'requirements_dev.txt'
with open(requirements_path, 'r') as f:
    install_reqs += [
        s for s in [
            line.strip(' \n') for line in f
        ] if not s.startswith('#') and s != ''
    ]
requirements = install_reqs
setup_requirements = install_reqs
test_requirements = install_reqs
spmohanty's avatar
spmohanty committed
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112

setup(
    author="S.P. Mohanty",
    author_email='mohanty@aicrowd.com',
    classifiers=[
        'Development Status :: 2 - Pre-Alpha',
        'Intended Audience :: Developers',
        'Natural Language :: English',
        'Programming Language :: Python :: 3.6',
        'Programming Language :: Python :: 3.7',
    ],
    description="Multi Agent Reinforcement Learning on Trains",
    entry_points={
        'console_scripts': [
            'flatland=flatland.cli:main',
        ],
    },
    install_requires=requirements,
    long_description=readme + '\n\n' + history,
    include_package_data=True,
    keywords='flatland',
113
    name='flatland-rl',
spiglerg's avatar
spiglerg committed
114
    packages=find_packages('.'),
115
    data_files=[('svg', get_all_svg_files()), ('images', get_all_images_files())],
spmohanty's avatar
spmohanty committed
116
117
118
    setup_requires=setup_requirements,
    test_suite='tests',
    tests_require=test_requirements,
119
    url='https://gitlab.aicrowd.com/flatland/flatland',
spmohanty's avatar
spmohanty committed
120
    version='0.1.2',
spmohanty's avatar
spmohanty committed
121
122
    zip_safe=False,
)