[Sqlalchemy-commits] [1437] sqlalchemy/branches/schema/lib/sqlalchemy/orm: mapper query methods are
Brought to you by:
zzzeek
From: <co...@sq...> - 2006-05-11 19:55:44
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><style type="text/css"><!-- #msg dl { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; } #msg dt { float: left; width: 6em; font-weight: bold; } #msg dt:after { content:':';} #msg dl, #msg dt, #msg ul, #msg li { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; } #msg dl a { font-weight: bold} #msg dl a:link { color:#fc3; } #msg dl a:active { color:#ff0; } #msg dl a:visited { color:#cc6; } h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; } #msg pre { overflow: auto; background: #ffc; border: 1px #fc0 solid; padding: 6px; } #msg ul, pre { overflow: auto; } #patch { width: 100%; } #patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;} #patch .propset h4, #patch .binary h4 {margin:0;} #patch pre {padding:0;line-height:1.2em;margin:0;} #patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;} #patch .propset .diff, #patch .binary .diff {padding:10px 0;} #patch span {display:block;padding:0 10px;} #patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;} #patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;} #patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;} #patch .lines, .info {color:#888;background:#fff;} --></style> <title>[1437] sqlalchemy/branches/schema/lib/sqlalchemy/orm: mapper query methods are deprecated</title> </head> <body> <div id="msg"> <dl> <dt>Revision</dt> <dd>1437</dd> <dt>Author</dt> <dd>zzzeek</dd> <dt>Date</dt> <dd>2006-05-11 14:55:30 -0500 (Thu, 11 May 2006)</dd> </dl> <h3>Log Message</h3> <pre>mapper query methods are deprecated took new_imap option out of Session</pre> <h3>Modified Paths</h3> <ul> <li><a href="#sqlalchemybranchesschemalibsqlalchemyormmapperpy">sqlalchemy/branches/schema/lib/sqlalchemy/orm/mapper.py</a></li> <li><a href="#sqlalchemybranchesschemalibsqlalchemyormquerypy">sqlalchemy/branches/schema/lib/sqlalchemy/orm/query.py</a></li> <li><a href="#sqlalchemybranchesschemalibsqlalchemyormsessionpy">sqlalchemy/branches/schema/lib/sqlalchemy/orm/session.py</a></li> </ul> </div> <div id="patch"> <h3>Diff</h3> <a id="sqlalchemybranchesschemalibsqlalchemyormmapperpy"></a> <div class="modfile"><h4>Modified: sqlalchemy/branches/schema/lib/sqlalchemy/orm/mapper.py (1436 => 1437)</h4> <pre class="diff"><span> <span class="info">--- sqlalchemy/branches/schema/lib/sqlalchemy/orm/mapper.py 2006-05-11 19:53:11 UTC (rev 1436) +++ sqlalchemy/branches/schema/lib/sqlalchemy/orm/mapper.py 2006-05-11 19:55:30 UTC (rev 1437) </span><span class="lines">@@ -257,76 +257,9 @@ </span><span class="cx"> class_or_mapper = class_mapper(class_or_mapper, entity_name=entity_name) </span><span class="cx"> self.polymorphic_map[key] = class_or_mapper </span><span class="cx"> </span><del>- def using(self, session): - return querylib.Query(self, session=session) - def query(self, session=None): - """returns an instance of sqlalchemy.orm.query.Query, which implements all the query-constructing - methods such as get(), select(), select_by(), etc.""" - if session is not None: - return querylib.Query(self, session=session) - - try: - if self._query.mapper is not self: - self._query = querylib.Query(self) - return self._query - except AttributeError: - self._query = querylib.Query(self) - return self._query - - def get(self, ident, **kwargs): - """calls get() on this mapper's default Query object.""" - return self.query().get(ident, **kwargs) </del><span class="cx"> </span><del>- def _get(self, key, ident=None, reload=False): - return self.query()._get(key, ident=ident, reload=reload) - - def get_by(self, *args, **params): - """calls get_by() on this mapper's default Query object.""" - return self.query().get_by(*args, **params) - - def select_by(self, *args, **params): - """calls select_by() on this mapper's default Query object.""" - return self.query().select_by(*args, **params) - - def selectfirst_by(self, *args, **params): - """calls selectfirst_by() on this mapper's default Query object.""" - return self.query().selectfirst_by(*args, **params) - - def selectone_by(self, *args, **params): - """calls selectone_by() on this mapper's default Query object.""" - return self.query().selectone_by(*args, **params) - - def count_by(self, *args, **params): - """calls count_by() on this mapper's default Query object.""" - return self.query().count_by(*args, **params) - - def selectfirst(self, *args, **params): - """calls selectfirst() on this mapper's default Query object.""" - return self.query().selectfirst(*args, **params) - - def selectone(self, *args, **params): - """calls selectone() on this mapper's default Query object.""" - return self.query().selectone(*args, **params) - - def select(self, arg=None, **kwargs): - """calls select() on this mapper's default Query object.""" - return self.query().select(arg=arg, **kwargs) - - def select_whereclause(self, whereclause=None, params=None, **kwargs): - """calls select_whereclause() on this mapper's default Query object.""" - return self.query().select_whereclause(whereclause=whereclause, params=params, **kwargs) - - def count(self, whereclause=None, params=None, **kwargs): - """calls count() on this mapper's default Query object.""" - return self.query().count(whereclause=whereclause, params=params, **kwargs) - - def select_statement(self, statement, **params): - """calls select_statement() on this mapper's default Query object.""" - return self.query().select_statement(statement, **params) - - def select_text(self, text, **params): - return self.query().select_text(text, **params) </del><span class="cx"> </span><ins>+ </ins><span class="cx"> def add_properties(self, dict_of_properties): </span><span class="cx"> """adds the given dictionary of properties to this mapper, using add_property.""" </span><span class="cx"> for key, value in dict_of_properties.iteritems(): </span><span class="lines">@@ -400,18 +333,12 @@ </span><span class="cx"> # in order to save on KeyErrors later on </span><span class="cx"> sessionlib.global_attributes.init_attr(self) </span><span class="cx"> </span><del>- nohist = kwargs.pop('_mapper_nohistory', False) </del><span class="cx"> if kwargs.has_key('_sa_session'): </span><span class="cx"> session = kwargs.pop('_sa_session') </span><span class="cx"> else: </span><span class="cx"> session = sessionlib.current_session(self) </span><span class="cx"> if session is not None: </span><del>- if not nohist: - session._register_new(self) - else: - pass - # TODO: this _attach should not be needed.... - #session._attach(self) </del><ins>+ session._register_new(self) </ins><span class="cx"> if oldinit is not None: </span><span class="cx"> oldinit(self, *args, **kwargs) </span><span class="cx"> # override oldinit, insuring that its not already one of our </span><span class="lines">@@ -475,10 +402,6 @@ </span><span class="cx"> """returns the identity (list of primary key values) for the given instance. The list of values can be fed directly into the get() method as mapper.get(*key).""" </span><span class="cx"> return [self._getattrbycolumn(instance, column) for column in self.pks_by_table[self.select_table]] </span><span class="cx"> </span><del>- def compile(self, whereclause = None, **options): - """works like select, except returns the SQL statement object without - compiling or executing it""" - return self.query()._compile(whereclause, **options) </del><span class="cx"> </span><span class="cx"> def copy(self, **kwargs): </span><span class="cx"> mapper = Mapper.__new__(Mapper) </span><span class="lines">@@ -501,13 +424,6 @@ </span><span class="cx"> self._options[optkey] = mapper </span><span class="cx"> return mapper </span><span class="cx"> </span><del>- def __getattr__(self, key): - if (key.startswith('select_by_') or key.startswith('get_by_')): - return getattr(self.query(), key) - else: - if key == 'table': - raise "what!? " + key #AttributeError(key) - raise AttributeError(key) </del><span class="cx"> </span><span class="cx"> def _getpropbycolumn(self, column, raiseerror=True): </span><span class="cx"> try: </span><span class="lines">@@ -846,6 +762,75 @@ </span><span class="cx"> row = frommapper.translate_row(self, row) </span><span class="cx"> for prop in self.props.values(): </span><span class="cx"> prop.execute(session, instance, row, identitykey, imap, isnew) </span><ins>+ + # deprecated query methods. Query is constructed from Session, and the rest + # of these methods are called off of Query now. + def query(self, session=None): + """deprecated. use Query instead.""" + if session is not None: + return querylib.Query(self, session=session) + + try: + if self._query.mapper is not self: + self._query = querylib.Query(self) + return self._query + except AttributeError: + self._query = querylib.Query(self) + return self._query + def using(self, session): + """deprecated. use Query instead.""" + return querylib.Query(self, session=session) + def __getattr__(self, key): + """deprecated. use Query instead.""" + if (key.startswith('select_by_') or key.startswith('get_by_')): + return getattr(self.query(), key) + else: + raise AttributeError(key) + def compile(self, whereclause = None, **options): + """deprecated. use Query instead.""" + return self.query()._compile(whereclause, **options) + def get(self, ident, **kwargs): + """deprecated. use Query instead.""" + return self.query().get(ident, **kwargs) + def _get(self, key, ident=None, reload=False): + """deprecated. use Query instead.""" + return self.query()._get(key, ident=ident, reload=reload) + def get_by(self, *args, **params): + """deprecated. use Query instead.""" + return self.query().get_by(*args, **params) + def select_by(self, *args, **params): + """deprecated. use Query instead.""" + return self.query().select_by(*args, **params) + def selectfirst_by(self, *args, **params): + """deprecated. use Query instead.""" + return self.query().selectfirst_by(*args, **params) + def selectone_by(self, *args, **params): + """deprecated. use Query instead.""" + return self.query().selectone_by(*args, **params) + def count_by(self, *args, **params): + """deprecated. use Query instead.""" + return self.query().count_by(*args, **params) + def selectfirst(self, *args, **params): + """deprecated. use Query instead.""" + return self.query().selectfirst(*args, **params) + def selectone(self, *args, **params): + """deprecated. use Query instead.""" + return self.query().selectone(*args, **params) + def select(self, arg=None, **kwargs): + """deprecated. use Query instead.""" + return self.query().select(arg=arg, **kwargs) + def select_whereclause(self, whereclause=None, params=None, **kwargs): + """deprecated. use Query instead.""" + return self.query().select_whereclause(whereclause=whereclause, params=params, **kwargs) + def count(self, whereclause=None, params=None, **kwargs): + """deprecated. use Query instead.""" + return self.query().count(whereclause=whereclause, params=params, **kwargs) + def select_statement(self, statement, **params): + """deprecated. use Query instead.""" + return self.query().select_statement(statement, **params) + def select_text(self, text, **params): + """deprecated. use Query instead.""" + return self.query().select_text(text, **params) </ins><span class="cx"> </span><span class="cx"> class MapperProperty(object): </span><span class="cx"> """an element attached to a Mapper that describes and assists in the loading and saving </span></span></pre></div> <a id="sqlalchemybranchesschemalibsqlalchemyormquerypy"></a> <div class="modfile"><h4>Modified: sqlalchemy/branches/schema/lib/sqlalchemy/orm/query.py (1436 => 1437)</h4> <pre class="diff"><span> <span class="info">--- sqlalchemy/branches/schema/lib/sqlalchemy/orm/query.py 2006-05-11 19:53:11 UTC (rev 1436) +++ sqlalchemy/branches/schema/lib/sqlalchemy/orm/query.py 2006-05-11 19:55:30 UTC (rev 1437) </span><span class="lines">@@ -4,7 +4,6 @@ </span><span class="cx"> # This module is part of SQLAlchemy and is released under </span><span class="cx"> # the MIT License: http://www.opensource.org/licenses/mit-license.php </span><span class="cx"> </span><del>- </del><span class="cx"> import session as sessionlib </span><span class="cx"> from sqlalchemy import sql, util, exceptions </span><span class="cx"> import mapper </span></span></pre></div> <a id="sqlalchemybranchesschemalibsqlalchemyormsessionpy"></a> <div class="modfile"><h4>Modified: sqlalchemy/branches/schema/lib/sqlalchemy/orm/session.py (1436 => 1437)</h4> <pre class="diff"><span> <span class="info">--- sqlalchemy/branches/schema/lib/sqlalchemy/orm/session.py 2006-05-11 19:53:11 UTC (rev 1436) +++ sqlalchemy/branches/schema/lib/sqlalchemy/orm/session.py 2006-05-11 19:55:30 UTC (rev 1437) </span><span class="lines">@@ -67,11 +67,9 @@ </span><span class="cx"> </span><span class="cx"> class Session(object): </span><span class="cx"> """encapsulates a set of objects being operated upon within an object-relational operation.""" </span><del>- def __init__(self, bind_to=None, hash_key=None, new_imap=True, import_session=None, echo_uow=False): </del><ins>+ def __init__(self, bind_to=None, hash_key=None, import_session=None, echo_uow=False): </ins><span class="cx"> if import_session is not None: </span><span class="cx"> self.uow = unitofwork.UnitOfWork(identity_map=import_session.uow.identity_map) </span><del>- elif new_imap is False: - self.uow = unitofwork.UnitOfWork(identity_map=current_session().uow.identity_map) </del><span class="cx"> else: </span><span class="cx"> self.uow = unitofwork.UnitOfWork() </span><span class="cx"> </span></span></pre> </div> </div> </body> </html> |