forked from zenml-io/zenml
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsetup.py
106 lines (92 loc) · 3.3 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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
This file is used to create the package we'll publish to PyPI.
.. currentmodule:: setup.py
.. moduleauthor:: maiot GmbH <[email protected]>
"""
import importlib.util
import os
from codecs import open # Use a consistent encoding.
from os import path
from pathlib import Path
from setuptools import setup, find_packages
here = path.abspath(path.dirname(__file__))
# Get the long description from the relevant file
with open(path.join(here, 'README.md'), encoding='utf-8') as f:
long_description = f.read()
# Get the base version from the library. (We'll find it in the `version.py`
# file in the src directory, but we'll bypass actually loading up the library.)
vspec = importlib.util.spec_from_file_location(
"version",
str(Path(__file__).resolve().parent /
'zenml' / 'utils' / "version.py")
)
vmod = importlib.util.module_from_spec(vspec)
vspec.loader.exec_module(vmod)
version = getattr(vmod, '__version__')
# Same method for the requirements
vspec = importlib.util.spec_from_file_location(
"requirement_utils",
str(Path(__file__).resolve().parent
/ 'zenml' / 'utils' / "requirement_utils.py"))
vmod = importlib.util.module_from_spec(vspec)
vspec.loader.exec_module(vmod)
BASE_REQUIREMENTS = getattr(vmod, 'BASE_REQUIREMENTS')
EXTRAS_REQUIRE = getattr(vmod, 'EXTRAS_REQUIRE')
# If the environment has a build number set...
if os.getenv('buildnum') is not None:
# ...append it to the version.
version = "{version}.{buildnum}".format(
version=version,
buildnum=os.getenv('buildnum')
)
setup(
name='zenml',
description="ZenML: Write production-ready ML code.",
long_description=long_description,
long_description_content_type='text/markdown',
packages=find_packages(
exclude=["*.tests",
"*.tests.*",
"tests.*",
"tests",
"examples",
"docs"]),
version=version,
install_requires=BASE_REQUIREMENTS,
extras_require=EXTRAS_REQUIRE,
entry_points="""
[console_scripts]
zenml=zenml.cli.cli:cli
""",
python_requires=">=3.6, <3.9.0",
license='Apache License 2.0', # noqa
author='maiot GmbH',
author_email='[email protected]',
url='https://zenml.io/',
keywords=[
"deep", "learning", "production", "machine", "pipeline", "mlops"
],
# See https://PyPI.python.org/PyPI?%3Aaction=list_classifiers
classifiers=[
# How mature is this project? Common values are
# 3 - Alpha
# 4 - Beta
# 5 - Production/Stable
'Development Status :: 4 - Beta',
# Indicate who your project is intended for.
'Intended Audience :: Developers',
'Topic :: Software Development :: Libraries',
# Pick your license. (It should match "license" above.)
'License :: OSI Approved :: Apache Software License', # noqa
# noqa
# Specify the Python versions you support here. In particular, ensure
# that you indicate whether you support Python 2, Python 3 or both.
'Programming Language :: Python :: 3.6',
],
# add .html file for statistics
data_files=[('zenml/utils/post_training/stats.html',
['zenml/utils/post_training/stats.html'])],
include_package_data=True
)