From 51358e0f4bc92e58caf2cbbafce756950c40e82a Mon Sep 17 00:00:00 2001 From: Nicolas Dandrimont Date: Sun, 28 Jul 2013 19:28:40 +0200 Subject: [PATCH] Add some machinery to avoid importing hy in setup.py --- hy/__init__.py | 3 +-- hy/version.py | 23 +++++++++++++++++++++++ setup.py | 20 ++++++++++++++++++-- 3 files changed, 42 insertions(+), 4 deletions(-) create mode 100644 hy/version.py diff --git a/hy/__init__.py b/hy/__init__.py index 3cb4c7b..fd95f90 100644 --- a/hy/__init__.py +++ b/hy/__init__.py @@ -19,8 +19,7 @@ # DEALINGS IN THE SOFTWARE. -__appname__ = "hy" -__version__ = "0.9.10" +from hy.version import __version__, __appname__ # NOQA from hy.models.expression import HyExpression # NOQA diff --git a/hy/version.py b/hy/version.py new file mode 100644 index 0000000..8fd8376 --- /dev/null +++ b/hy/version.py @@ -0,0 +1,23 @@ +# Copyright (c) 2013 Paul Tagliamonte +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. + + +__appname__ = "hy" +__version__ = "0.9.10" diff --git a/setup.py b/setup.py index 9e9284a..932b2f6 100755 --- a/setup.py +++ b/setup.py @@ -20,11 +20,27 @@ # DEALINGS IN THE SOFTWARE. -from hy import __appname__, __version__ from setuptools import setup import os +import re import sys +PKG = "hy" +VERSIONFILE = os.path.join(PKG, "version.py") +verstr = "unknown" +try: + verstrline = open(VERSIONFILE, "rt").read() +except EnvironmentError: + pass # Okay, there is no version file. +else: + VSRE = r"^__version__ = ['\"]([^'\"]*)['\"]" + mo = re.search(VSRE, verstrline, re.M) + if mo: + __version__ = mo.group(1) + else: + raise RuntimeError("if %s.py exists, it is required to be well-formed" % (VERSIONFILE,)) + + long_description = """Hy is a Python <--> Lisp layer. It helps make things work nicer, and lets Python and the Hy lisp variant play nice together. """ @@ -36,7 +52,7 @@ if os.name == 'nt': install_requires.append('pyreadline==2.0') setup( - name=__appname__, + name=PKG, version=__version__, install_requires=install_requires, entry_points={