Changeset 4201

Show
Ignore:
Timestamp:
03/06/08 12:34:07 (5 months ago)
Author:
chrisz
Message:

Moved check for SQLObject/SQLAlchemy from controller to model and added checks for Elixir. Also check for SO/SA on startup when identity is used in the project.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/1.0/turbogears/command/quickstart.py

    r3842 r4201  
    102102 
    103103 
    104 def get_requirement(name): 
     104def get_requirement(name, pkg=None): 
    105105    dist = pkg_resources.get_distribution("TurboGears") 
    106     with_reqs = set(dist.requires((name,))) 
    107     without_reqs = set(dist.requires()) 
    108     reqs = with_reqs - without_reqs 
    109     try: 
    110         return [r for r in reqs if r.project_name.lower() == name][0] 
    111     except IndexError: 
    112         raise ValueError("Did not find matching %s requirement in the TurboGears setup.py:extras_require." % name) 
     106    for r in set(dist.requires((name,))) - set(dist.requires()): 
     107        if r.project_name.lower() == (pkg or name): 
     108            return r 
     109    raise ValueError("Did not find matching %s requirement" 
     110        " in the TurboGears setup.py:extras_require." % name) 
    113111 
    114112 
     
    242240            sqlobjectversion = str(get_requirement('sqlobject')) 
    243241            cmd_args.append("sqlobjectversion=%s" % sqlobjectversion) 
    244  
    245242        if self.sqlalchemy: 
    246243            sqlalchemyversion = str(get_requirement('sqlalchemy')) 
    247244            cmd_args.append("sqlalchemyversion=%s" % sqlalchemyversion) 
     245        if self.elixir: 
     246            elixirversion = str(get_requirement('future', 'elixir')) 
     247            cmd_args.append("elixirversion=%s" % elixirversion) 
    248248 
    249249        command.run(cmd_args) 
  • branches/1.0/turbogears/qstemplates/quickstartbig/+package+/controllers/root.py_tmpl

    r4170 r4201  
    22from turbogears import controllers, expose, flash 
    33# from ${package} import model 
    4 #if $sqlobject == 'True' 
    5 import pkg_resources 
    6 try: 
    7     pkg_resources.require("$sqlobjectversion") 
    8 except pkg_resources.DistributionNotFound: 
    9     import sys 
    10     print >> sys.stderr, """You are required to install SQLObject but appear not to have done so. 
    11 Please run your projects setup.py or run `easy_install SQLObject`. 
    12  
    13 """ 
    14     sys.exit(1) 
    15 #end if 
    16 #if $sqlalchemy == 'True' 
    17 import pkg_resources 
    18 try: 
    19     pkg_resources.require("$sqlalchemyversion") 
    20 except pkg_resources.DistributionNotFound: 
    21     import sys 
    22     print >> sys.stderr, """You are required to install SQLAlchemy but appear not to have done so. 
    23 Please run your projects setup.py or run `easy_install SQLAlchemy`. 
    24  
    25 """ 
    26     sys.exit(1) 
    27 #end if 
    284#if $identity != "none" 
    295from turbogears import identity, redirect 
  • branches/1.0/turbogears/qstemplates/quickstart/+package+/commands.py_tmpl

    r3843 r4201  
    22"""This module contains functions called from console script entry points.""" 
    33 
    4 import os 
    54import sys 
    6  
     5from os import getcwd 
    76from os.path import dirname, exists, join 
    87 
    98import pkg_resources 
    10 pkg_resources.require("TurboGears") 
     9pkg_resources.require("TurboGears>=$turbogearsversion") 
     10#if $identity == 'sqlobject' 
     11pkg_resources.require("$sqlobjectversion") 
     12#elif $identity == 'sqlalchemy' 
     13pkg_resources.require("$sqlalchemyversion") 
     14#end if 
    1115 
     16import cherrypy 
    1217import turbogears 
    13 import cherrypy 
    1418 
    1519cherrypy.lowercase_api = True 
    1620 
     21 
    1722class ConfigurationError(Exception): 
    1823    pass 
     24 
    1925 
    2026def start(): 
     
    2228 
    2329    setupdir = dirname(dirname(__file__)) 
    24     curdir = os.getcwd() 
     30    curdir = getcwd() 
    2531 
    2632    # First look on the command line for a desired config file, 
  • branches/1.0/turbogears/qstemplates/quickstart/+package+/controllers.py_tmpl

    r4170 r4201  
    22from turbogears import controllers, expose, flash 
    33# from ${package} import model 
    4 #if $sqlobject == 'True' 
    5 import pkg_resources 
    6 try: 
    7     pkg_resources.require("$sqlobjectversion") 
    8 except pkg_resources.DistributionNotFound: 
    9     import sys 
    10     print >> sys.stderr, """You are required to install SQLObject but appear not to have done so. 
    11 Please run your projects setup.py or run `easy_install SQLObject`. 
    12  
    13 """ 
    14     sys.exit(1) 
    15 #end if 
    16 #if $sqlalchemy == 'True' 
    17 import pkg_resources 
    18 try: 
    19     pkg_resources.require("$sqlalchemyversion") 
    20 except pkg_resources.DistributionNotFound: 
    21     import sys 
    22     print >> sys.stderr, """You are required to install SQLAlchemy but appear not to have done so. 
    23 Please run your projects setup.py or run `easy_install SQLAlchemy`. 
    24  
    25 """ 
    26     sys.exit(1) 
    27 #end if 
    284#if $identity != "none" 
    295from turbogears import identity, redirect 
  • branches/1.0/turbogears/qstemplates/quickstart/+package+/model.py_tmpl

    r4196 r4201  
    11#if $identity != 'none' 
    22from datetime import datetime 
     3#end if 
     4#if $sqlobject == 'True' 
     5import pkg_resources 
     6pkg_resources.require("$sqlobjectversion") 
     7#elif $sqlalchemy == 'True' 
     8import pkg_resources 
     9pkg_resources.require("$sqlalchemyversion") 
     10#if $elixir == 'True' 
     11pkg_resources.require("$elixirversion") 
     12#end if 
    313#end if 
    414#if $sqlobject == 'True' 
  • branches/1.0/turbogears/qstemplates/quickstart/setup.py_tmpl

    r3843 r4201  
    2828    install_requires=[ 
    2929        "TurboGears >= ${turbogearsversion}", 
    30 #if $sqlalchemy == 'True' 
    31         "${sqlalchemyversion}", 
    32 #end if 
    3330#if $sqlobject == 'True' 
    3431        "$sqlobjectversion" 
     32#elif $sqlalchemy == 'True' 
     33        "${sqlalchemyversion}", 
     34#if $elixir == 'True' 
     35        "${elixirversion}", 
     36#end if 
    3537#end if 
    3638    ], 
  • branches/1.1/turbogears/command/quickstart.py

    r4051 r4201  
    102102 
    103103 
    104 def get_requirement(name): 
     104def get_requirement(name, pkg=None): 
    105105    dist = pkg_resources.get_distribution("TurboGears") 
    106     with_reqs = set(dist.requires((name,))) 
    107     without_reqs = set(dist.requires()) 
    108     reqs = with_reqs - without_reqs 
    109     try: 
    110         return [r for r in reqs if r.project_name.lower() == name][0] 
    111     except IndexError: 
    112         raise ValueError("Did not find matching %s requirement in the TurboGears setup.py:extras_require." % name) 
     106    for r in set(dist.requires((name,))) - set(dist.requires()): 
     107        if r.project_name.lower() == (pkg or name): 
     108            return r 
     109    raise ValueError("Did not find matching %s requirement" 
     110        " in the TurboGears setup.py:extras_require." % name) 
    113111 
    114112 
     
    242240            sqlobjectversion = str(get_requirement('sqlobject')) 
    243241            cmd_args.append("sqlobjectversion=%s" % sqlobjectversion) 
    244  
    245242        if self.sqlalchemy: 
    246243            sqlalchemyversion = str(get_requirement('sqlalchemy')) 
    247244            cmd_args.append("sqlalchemyversion=%s" % sqlalchemyversion) 
     245        if self.elixir: 
     246            elixirversion = str(get_requirement('future', 'elixir')) 
     247            cmd_args.append("elixirversion=%s" % elixirversion) 
    248248 
    249249        command.run(cmd_args) 
  • branches/1.1/turbogears/qstemplates/quickstartbig/+package+/controllers/root.py_tmpl

    r4170 r4201  
    22from turbogears import controllers, expose, flash 
    33# from ${package} import model 
    4 #if $sqlobject == 'True' 
    5 import pkg_resources 
    6 try: 
    7     pkg_resources.require("$sqlobjectversion") 
    8 except pkg_resources.DistributionNotFound: 
    9     import sys 
    10     print >> sys.stderr, """You are required to install SQLObject but appear not to have done so. 
    11 Please run your projects setup.py or run `easy_install SQLObject`. 
    12  
    13 """ 
    14     sys.exit(1) 
    15 #end if 
    16 #if $sqlalchemy == 'True' 
    17 import pkg_resources 
    18 try: 
    19     pkg_resources.require("$sqlalchemyversion") 
    20 except pkg_resources.DistributionNotFound: 
    21     import sys 
    22     print >> sys.stderr, """You are required to install SQLAlchemy but appear not to have done so. 
    23 Please run your projects setup.py or run `easy_install SQLAlchemy`. 
    24  
    25 """ 
    26     sys.exit(1) 
    27 #end if 
    284#if $identity != "none" 
    295from turbogears import identity, redirect 
  • branches/1.1/turbogears/qstemplates/quickstart/+package+/commands.py_tmpl

    r4054 r4201  
    22"""This module contains functions called from console script entry points.""" 
    33 
    4 import os 
    54import sys 
    6  
     5from os import getcwd 
    76from os.path import dirname, exists, join 
    87 
    98import pkg_resources 
    10 pkg_resources.require("TurboGears") 
     9pkg_resources.require("TurboGears>=$turbogearsversion") 
     10#if $identity == 'sqlobject' 
     11pkg_resources.require("$sqlobjectversion") 
     12#elif $identity == 'sqlalchemy' 
     13pkg_resources.require("$sqlalchemyversion") 
     14#end if 
    1115 
     16import cherrypy 
    1217import turbogears 
    13 import cherrypy 
    1418 
    1519cherrypy.lowercase_api = True 
    1620 
     21 
    1722class ConfigurationError(Exception): 
    1823    pass 
     24 
    1925 
    2026def start(): 
     
    2228 
    2329    setupdir = dirname(dirname(__file__)) 
    24     curdir = os.getcwd() 
     30    curdir = getcwd() 
    2531 
    2632    # First look on the command line for a desired config file, 
  • branches/1.1/turbogears/qstemplates/quickstart/+package+/controllers.py_tmpl

    r4170 r4201  
    22from turbogears import controllers, expose, flash 
    33# from ${package} import model 
    4 #if $sqlobject == 'True' 
    5 import pkg_resources 
    6 try: 
    7     pkg_resources.require("$sqlobjectversion") 
    8 except pkg_resources.DistributionNotFound: 
    9     import sys 
    10     print >> sys.stderr, """You are required to install SQLObject but appear not to have done so. 
    11 Please run your projects setup.py or run `easy_install SQLObject`. 
    12  
    13 """ 
    14     sys.exit(1) 
    15 #end if 
    16 #if $sqlalchemy == 'True' 
    17 import pkg_resources 
    18 try: 
    19     pkg_resources.require("$sqlalchemyversion") 
    20 except pkg_resources.DistributionNotFound: 
    21     import sys 
    22     print >> sys.stderr, """You are required to install SQLAlchemy but appear not to have done so. 
    23 Please run your projects setup.py or run `easy_install SQLAlchemy`. 
    24  
    25 """ 
    26     sys.exit(1) 
    27 #end if 
    284#if $identity != "none" 
    295from turbogears import identity, redirect 
  • branches/1.1/turbogears/qstemplates/quickstart/+package+/model.py_tmpl

    r4196 r4201  
    11#if $identity != 'none' 
    22from datetime import datetime 
     3#end if 
     4#if $sqlobject == 'True' 
     5import pkg_resources 
     6pkg_resources.require("$sqlobjectversion") 
     7#elif $sqlalchemy == 'True' 
     8import pkg_resources 
     9pkg_resources.require("$sqlalchemyversion") 
     10#if $elixir == 'True' 
     11pkg_resources.require("$elixirversion") 
     12#end if 
    313#end if 
    414#if $sqlobject == 'True' 
  • branches/1.1/turbogears/qstemplates/quickstart/setup.py_tmpl

    r4054 r4201  
    2828    install_requires=[ 
    2929        "TurboGears >= ${turbogearsversion}", 
    30 #if $sqlalchemy == 'True' 
    31         "${sqlalchemyversion}", 
    32 #end if 
    3330#if $sqlobject == 'True' 
    3431        "$sqlobjectversion" 
     32#elif $sqlalchemy == 'True' 
     33        "${sqlalchemyversion}", 
     34#if $elixir == 'True' 
     35        "${elixirversion}", 
     36#end if 
    3537#end if 
    3638    ],