提交 a26990a2 authored 作者: Brandon T. Willard's avatar Brandon T. Willard 提交者: Brandon T. Willard

Refactor setup.py

* Simplify file reading * Use versioneer as designed * Avoid adding the `tests` package
上级 645d7155
#!/usr/bin/env python
#
# TODO:
# * Figure out how to compile and install documentation automatically
# * Add download_url
from setuptools import find_packages, setup
import codecs
import os
from distutils.util import convert_path
from fnmatch import fnmatchcase
import versioneer
try:
from setuptools import setup
except ImportError:
from distutils.core import setup
import versioneer
def read_file(filename):
with open(filename, "rt") as buff:
return buff.read()
NAME = "Theano-PyMC"
MAINTAINER = "PyMC developers"
MAINTAINER_EMAIL = "pymc-devs@gmail.com"
DESCRIPTION = (
"Optimizing compiler for evaluating mathematical expressions on CPUs and GPUs."
)
LONG_DESCRIPTION = read_file("DESCRIPTION.txt")
URL = "http://deeplearning.net/software/theano/"
LICENSE = "BSD"
AUTHOR = "pymc-devs"
AUTHOR_EMAIL = "pymc-devs@gmail.com"
PLATFORMS = ["Windows", "Linux", "Solaris", "Mac OS-X", "Unix"]
CLASSIFIERS = """\
Development Status :: 6 - Mature
Intended Audience :: Education
......@@ -39,65 +41,13 @@ Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
"""
NAME = "Theano-PyMC"
MAINTAINER = "PyMC developers"
MAINTAINER_EMAIL = "pymc-devs@gmail.com"
DESCRIPTION = (
"Optimizing compiler for evaluating mathematical " + "expressions on CPUs and GPUs."
)
LONG_DESCRIPTION = (
codecs.open("DESCRIPTION.txt", encoding="utf-8").read()
+ "\n\n"
+ codecs.open("NEWS.txt", encoding="utf-8").read()
)
URL = "http://deeplearning.net/software/theano/"
DOWNLOAD_URL = ""
LICENSE = "BSD"
CLASSIFIERS = [_f for _f in CLASSIFIERS.split("\n") if _f]
AUTHOR = "LISA laboratory, University of Montreal"
AUTHOR_EMAIL = "pymc-devs@gmail.com"
PLATFORMS = ["Windows", "Linux", "Solaris", "Mac OS-X", "Unix"]
def find_packages(where=".", exclude=()):
out = []
stack = [(convert_path(where), "")]
while stack:
where, prefix = stack.pop(0)
for name in os.listdir(where):
fn = os.path.join(where, name)
if (
"." not in name
and os.path.isdir(fn)
and os.path.isfile(os.path.join(fn, "__init__.py"))
):
out.append(prefix + name)
stack.append((fn, prefix + name + "."))
for pat in list(exclude) + ["ez_setup", "distribute_setup"]:
out = [item for item in out if not fnmatchcase(item, pat)]
return out
version_data = versioneer.get_versions()
if version_data["error"] is not None:
# Get the fallback version
# We can't import theano.version as it isn't yet installed, so parse it.
fname = os.path.join(os.path.split(__file__)[0], "theano", "version.py")
with open(fname) as f:
lines = f.readlines()
lines = [l for l in lines if l.startswith("FALLBACK_VERSION")]
assert len(lines) == 1
FALLBACK_VERSION = lines[0].split("=")[1].strip().strip('"')
version_data["version"] = FALLBACK_VERSION
def do_setup():
if __name__ == "__main__":
setup(
name=NAME,
version=version_data["version"],
version=versioneer.get_version(),
cmdclass=versioneer.get_cmdclass(),
description=DESCRIPTION,
long_description=LONG_DESCRIPTION,
classifiers=CLASSIFIERS,
......@@ -106,8 +56,7 @@ def do_setup():
url=URL,
license=LICENSE,
platforms=PLATFORMS,
packages=find_packages(),
cmdclass=versioneer.get_cmdclass(),
packages=find_packages(exclude=["tests.*"]),
install_requires=["numpy>=1.9.1", "scipy>=0.14"],
package_data={
"": [
......@@ -145,7 +94,3 @@ def do_setup():
]
),
)
if __name__ == "__main__":
do_setup()
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论