#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
#-----------------------------------------------------------------------------
# Modeling Framework: an Object-Relational Bridge for python
#
# Copyright (c) 2001-2004 Sbastien Bigaret <sbigaret@users.sourceforge.net>
# All rights reserved.
#
# This file is part of the Modeling Framework.
#
# This code is distributed under a "3-clause BSD"-style license;
# see the LICENSE file for details.
#-----------------------------------------------------------------------------
"""The Modeling Framework is an Object-Relational Bridge for python
The Modeling Framework fills the gap between the Python object world and
relational databases in that it allows users to transparently create,
retrieve, update, or delete Python objects from a database without having to
write a single line of SQL. Its main features include generation of database
schema, generation of Python code templates ready to be used, support for
transparent mapping of (class) inheritance in relational databases,
object-oriented query language, use of standard Python getters to traverse
relationships (the related objects are automatically fetched when needed and
when appropriate), and automatic checking for referential-integrity
constraints, etc. Supported databases are MySQL, Oracle, PostgreSQL, and
SQLite.
"""
from distutils.core import setup
import glob, os, sys
CHEETAH_COMPILE="cheetah-compile"
templates='Modeling/ModelMasons/Python_bricks/*.tmpl'
cheetah_compile_cmd='%s %s'%(CHEETAH_COMPILE, templates)
# Instruction for PyPi found at:
# http://www.python.org/~jeremy/weblog/030924.html
classifiers = """\
Development Status :: 4 - Beta
Intended Audience :: Developers
License :: OSI Approved :: BSD License
Operating System :: OS Independent
Programming Language :: Python
Topic :: Database :: Front-Ends
Topic :: Software Development :: Code Generators
Topic :: Software Development :: Libraries :: Application Frameworks
Topic :: Software Development :: Libraries :: Python Modules
"""
if sys.version_info < (2, 3):
_setup = setup
def setup(**kwargs):
if kwargs.has_key("classifiers"):
del kwargs["classifiers"]
_setup(**kwargs)
doclines = __doc__.split("\n")
short_description = doclines[0]
long_description = "\n".join(doclines[2:])
# taken from python documentation-SIG's mkhowto.run()
def compile_cheetah_template(command):
if sys.platform.startswith("win"):
rc = os.system(command)
else:
rc = os.system("%s" % command)
if rc:
sys.stderr.write('Warning: compilation of cheetah templates failed: they ')
sys.stderr.write('may be absent, or cheetah-compile is not available.\n')
sys.stderr.write('=> Using the already compiled templates\n')
raw_input('Press ENTER to continue, CTRL-C to abort\n')
compile_cheetah_template(cheetah_compile_cmd)
setup(name="Modeling",
version="0.9",
license ="BSD License",
description=short_description,
author="Sbastien Bigaret",
author_email="sbigaret@users.sourceforge.net",
maintainer="Sebastien Bigaret",
maintainer_email="sbigaret@users.sourceforge.net",
url="http://modeling.sourceforge.net/",
classifiers = filter(None, classifiers.split("\n")),
package_dir={'Modeling':'Modeling'},
packages=['Modeling', 'Modeling.interfaces', 'Modeling.utilities',
'Modeling.ModelMasons', 'Modeling.ModelMasons.Python_bricks',
'Modeling.DatabaseAdaptors',
'Modeling.DatabaseAdaptors.AbstractDBAPI2AdaptorLayer',
'Modeling.DatabaseAdaptors.MySQLAdaptorLayer',
'Modeling.DatabaseAdaptors.OracleAdaptorLayer',
'Modeling.DatabaseAdaptors.PostgresqlAdaptorLayer',
'Modeling.DatabaseAdaptors.SQLiteAdaptorLayer',
],
long_description = long_description,
scripts = ['Modeling/scripts/mdl_generate_DB_schema.py',
'Modeling/scripts/mdl_generate_python_code.py',
'Modeling/scripts/mdl_validate_model.py',
'Modeling/scripts/mdl_compile_model.py', ]
)
|