Repository navigation
Expand file tree
/
Copy pathsetup.py
More file actions
81 lines (72 loc) · 4.17 KB
/
Copy pathsetup.py
File metadata and controls
81 lines (72 loc) · 4.17 KB
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
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import os
from email.parser import Parser
import yaml
from setuptools import find_packages, setup
current_dir = os.path.abspath(os.path.dirname(__file__))
requirements_auton = None
requirements_autond = None
requirements_auton_file = os.path.join(current_dir, 'requirements-auton.txt')
requirements_autond_file = os.path.join(current_dir, 'requirements-autond.txt')
setup_config = os.path.join(current_dir, 'setup.yml')
readme_file = os.path.join(current_dir, 'README.md')
long_desc = None
long_desc_content_type = None
if os.path.isfile(requirements_auton_file):
requirements_auton = [line.strip() for line in open(requirements_auton_file, 'r').readlines()]
if os.path.isfile(requirements_autond_file):
requirements_autond = [line.strip() for line in open(requirements_autond_file, 'r').readlines()]
if os.path.isfile(setup_config):
setup_cfg = yaml.safe_load(open(setup_config, 'r').read())
if os.path.isfile(readme_file):
long_desc = open(readme_file, 'r').read()
long_desc_content_type = 'text/markdown'
package = os.environ.get('AUTON_PACKAGE')
# A published source distribution must retain its identity without requiring
# users to set AUTON_PACKAGE when installing it with pip.
package_info = os.path.join(current_dir, 'PKG-INFO')
if package is None and os.path.isfile(package_info):
with open(package_info) as stream:
package = Parser().parsestr(stream.read())['Name']
if package not in (None, 'auton', 'autond'):
raise ValueError('AUTON_PACKAGE must be auton or autond')
if requirements_auton and package in (None, 'auton'):
setup(
name = setup_cfg['auton']['name'],
version = setup_cfg['version'],
description = setup_cfg['auton']['description'],
author = setup_cfg['author'],
author_email = setup_cfg['author_email'],
license = setup_cfg['license'],
url = setup_cfg['url'],
scripts = ['bin/auton'],
packages = ['auton_client'],
options = {'build': {'build_base': 'build/auton'}},
install_requires = requirements_auton,
extras_require = {'textual': ['dwho[textual]>=0.3.66', "textual>=8.2.8,<9; python_version >= '3.9'"]},
python_requires = ', '.join(setup_cfg['python_requires']),
classifiers = setup_cfg['common']['classifiers'] + setup_cfg['auton'].get('classifiers', []),
long_description = long_desc,
long_description_content_type = long_desc_content_type
)
if requirements_autond and package in (None, 'autond'):
setup(
name = setup_cfg['autond']['name'],
version = setup_cfg['version'],
description = setup_cfg['autond']['description'],
author = setup_cfg['author'],
author_email = setup_cfg['author_email'],
license = setup_cfg['license'],
url = setup_cfg['url'],
scripts = ['bin/autond', 'bin/autond-auth'],
options = {'build': {'build_base': 'build/autond'}},
packages = find_packages(exclude=('auton_client',)),
package_data = {'auton': ['web/*.html', 'web/*.css', 'web/*.js', 'web/*.svg']},
install_requires = requirements_autond,
extras_require = {'auth': ['httpdis[auth]>=0.6.31'], 'redis': ['redis>=5,<9'], 'oidc': ['PyJWT[crypto]>=2.10,<3', 'httpdis[auth]>=0.6.31']},
python_requires = ', '.join(setup_cfg['python_requires']),
classifiers = setup_cfg['common']['classifiers'] + setup_cfg['autond'].get('classifiers', []),
long_description = long_desc,
long_description_content_type = long_desc_content_type
)