提交 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 #!/usr/bin/env python
# from setuptools import find_packages, setup
# TODO:
# * Figure out how to compile and install documentation automatically
# * Add download_url
import versioneer
import codecs
import os
from distutils.util import convert_path
from fnmatch import fnmatchcase
try: def read_file(filename):
from setuptools import setup with open(filename, "rt") as buff:
except ImportError: return buff.read()
from distutils.core import setup
import versioneer
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 = """\ CLASSIFIERS = """\
Development Status :: 6 - Mature Development Status :: 6 - Mature
Intended Audience :: Education Intended Audience :: Education
...@@ -39,65 +41,13 @@ Programming Language :: Python :: 3.7 ...@@ -39,65 +41,13 @@ Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.8 Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9 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] 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('"') if __name__ == "__main__":
version_data["version"] = FALLBACK_VERSION
def do_setup():
setup( setup(
name=NAME, name=NAME,
version=version_data["version"], version=versioneer.get_version(),
cmdclass=versioneer.get_cmdclass(),
description=DESCRIPTION, description=DESCRIPTION,
long_description=LONG_DESCRIPTION, long_description=LONG_DESCRIPTION,
classifiers=CLASSIFIERS, classifiers=CLASSIFIERS,
...@@ -106,8 +56,7 @@ def do_setup(): ...@@ -106,8 +56,7 @@ def do_setup():
url=URL, url=URL,
license=LICENSE, license=LICENSE,
platforms=PLATFORMS, platforms=PLATFORMS,
packages=find_packages(), packages=find_packages(exclude=["tests.*"]),
cmdclass=versioneer.get_cmdclass(),
install_requires=["numpy>=1.9.1", "scipy>=0.14"], install_requires=["numpy>=1.9.1", "scipy>=0.14"],
package_data={ package_data={
"": [ "": [
...@@ -145,7 +94,3 @@ def do_setup(): ...@@ -145,7 +94,3 @@ def do_setup():
] ]
), ),
) )
if __name__ == "__main__":
do_setup()
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论