diff options
| author | Jason Kirtland <jek@discorporate.us> | 2007-08-11 16:05:27 +0000 |
|---|---|---|
| committer | Jason Kirtland <jek@discorporate.us> | 2007-08-11 16:05:27 +0000 |
| commit | 3c749cba527140aa5d8a5b72ecea3eb87b0a5f8a (patch) | |
| tree | 4f4e8ade9a9ebdd01f1892af13577184712a0f9c /setup.py | |
| parent | ac219b0192814cea0611f7251f7bb3927e5c3201 (diff) | |
| download | sqlalchemy-3c749cba527140aa5d8a5b72ecea3eb87b0a5f8a.tar.gz | |
Bake the version number into the source during packaging.
Diffstat (limited to 'setup.py')
| -rw-r--r-- | setup.py | 81 |
1 files changed, 61 insertions, 20 deletions
@@ -1,21 +1,66 @@ from ez_setup import use_setuptools use_setuptools() from setuptools import setup, find_packages +from distutils.command.build_py import build_py as _build_py +from setuptools.command.sdist import sdist as _sdist +import os +from os import path + +v = open(path.join(path.dirname(__file__), 'VERSION')) +VERSION = v.readline().strip() +v.close() + +class build_py(_build_py): + def run(self): + init = path.join(self.build_lib, 'sqlalchemy', '__init__.py') + if path.exists(init): + os.unlink(init) + _build_py.run(self) + _stamp_version(init) + self.byte_compile([init]) + +class sdist(_sdist): + def make_release_tree (self, base_dir, files): + _sdist.make_release_tree(self, base_dir, files) + orig = path.join('lib', 'sqlalchemy', '__init__.py') + assert path.exists(orig) + dest = path.join(base_dir, orig) + if hasattr(os, 'link') and path.exists(dest): + os.unlink(dest) + self.copy_file(orig, dest) + _stamp_version(dest) + +def _stamp_version(filename): + found, out = False, [] + f = open(filename, 'r') + for line in f: + if '__version__ =' in line: + line = line.replace("'svn'", "'%s'" % VERSION) + found = True + out.append(line) + f.close() + + if found: + f = open(filename, 'w') + f.writelines(out) + f.close() + setup(name = "SQLAlchemy", - version = "0.4.0", - description = "Database Abstraction Library", - author = "Mike Bayer", - author_email = "mike_mp@zzzcomputing.com", - url = "http://www.sqlalchemy.org", - packages = find_packages('lib'), - package_dir = {'':'lib'}, - entry_points = { - 'sqlalchemy.databases': [ - '%s = sqlalchemy.databases.%s:dialect' % (f,f) for f in - ['sqlite', 'postgres', 'mysql', 'oracle', 'mssql', 'firebird']]}, - license = "MIT License", - long_description = """\ + cmdclass={'build_py': build_py, 'sdist': sdist}, + version = VERSION, + description = "Database Abstraction Library", + author = "Mike Bayer", + author_email = "mike_mp@zzzcomputing.com", + url = "http://www.sqlalchemy.org", + packages = find_packages('lib'), + package_dir = {'':'lib'}, + entry_points = { + 'sqlalchemy.databases': [ + '%s = sqlalchemy.databases.%s:dialect' % (f,f) for f in + ['sqlite', 'postgres', 'mysql', 'oracle', 'mssql', 'firebird']]}, + license = "MIT License", + long_description = """\ SQLAlchemy is: * The Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL. SQLAlchemy provides a full suite of well known enterprise-level persistence patterns, designed for efficient and high-performing database access, adapted into a simple and Pythonic domain language. @@ -45,15 +90,11 @@ SVN version: <http://svn.sqlalchemy.org/sqlalchemy/trunk#egg=SQLAlchemy-dev> """, - classifiers = [ + classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Topic :: Database :: Front-Ends", - ] - ) - - - - + ] + ) |
