[Sqlalchemy-commits] [1125] sqlalchemy/trunk/lib/sqlalchemy: utf-8 encoding is switchable at the eng
Brought to you by:
zzzeek
From: <co...@sq...> - 2006-03-10 04:47:47
|
<!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>[1125] sqlalchemy/trunk/lib/sqlalchemy: utf-8 encoding is switchable at the engine level, ticket [ticket:101]</title> </head> <body> <div id="msg"> <dl> <dt>Revision</dt> <dd>1125</dd> <dt>Author</dt> <dd>zzzeek</dd> <dt>Date</dt> <dd>2006-03-09 22:47:38 -0600 (Thu, 09 Mar 2006)</dd> </dl> <h3>Log Message</h3> <pre>utf-8 encoding is switchable at the engine level, ticket [ticket:101]</pre> <h3>Modified Paths</h3> <ul> <li><a href="#sqlalchemytrunkdocbuildcontentdbenginemyt">sqlalchemy/trunk/doc/build/content/dbengine.myt</a></li> <li><a href="#sqlalchemytrunklibsqlalchemyenginepy">sqlalchemy/trunk/lib/sqlalchemy/engine.py</a></li> <li><a href="#sqlalchemytrunklibsqlalchemytypespy">sqlalchemy/trunk/lib/sqlalchemy/types.py</a></li> </ul> </div> <div id="patch"> <h3>Diff</h3> <a id="sqlalchemytrunkdocbuildcontentdbenginemyt"></a> <div class="modfile"><h4>Modified: sqlalchemy/trunk/doc/build/content/dbengine.myt (1124 => 1125)</h4> <pre class="diff"><span> <span class="info">--- sqlalchemy/trunk/doc/build/content/dbengine.myt 2006-03-10 04:35:34 UTC (rev 1124) +++ sqlalchemy/trunk/doc/build/content/dbengine.myt 2006-03-10 04:47:38 UTC (rev 1125) </span><span class="lines">@@ -103,6 +103,7 @@ </span><span class="cx"> <li>use_ansi=True : used only by Oracle; when False, the Oracle driver attempts to support a particular "quirk" of some Oracle databases, that the LEFT OUTER JOIN SQL syntax is not supported, and the "Oracle join" syntax of using <% "<column1>(+)=<column2>" |h%> must be used in order to achieve a LEFT OUTER JOIN. Its advised that the Oracle database be configured to have full ANSI support instead of using this feature.</li> </span><span class="cx"> <li>use_oids=False : used only by Postgres, will enable the column name "oid" as the object ID column. Postgres as of 8.1 has object IDs disabled by default.</li> </span><span class="cx"> <li>convert_unicode=False : if set to True, all String/character based types will convert Unicode values to raw byte values going into the database, and all raw byte values to Python Unicode coming out in result sets. This is an engine-wide method to provide unicode across the board. For unicode conversion on a column-by-column level, use the Unicode column type instead.</li> </span><ins>+ <li>encoding='utf-8' : the encoding to use when doing unicode translations.</li> </ins><span class="cx"> </ul> </span><span class="cx"> </&> </span><span class="cx"> <&|doclib.myt:item, name="proxy", description="Using the Proxy Engine" &> </span></span></pre></div> <a id="sqlalchemytrunklibsqlalchemyenginepy"></a> <div class="modfile"><h4>Modified: sqlalchemy/trunk/lib/sqlalchemy/engine.py (1124 => 1125)</h4> <pre class="diff"><span> <span class="info">--- sqlalchemy/trunk/lib/sqlalchemy/engine.py 2006-03-10 04:35:34 UTC (rev 1124) +++ sqlalchemy/trunk/lib/sqlalchemy/engine.py 2006-03-10 04:47:38 UTC (rev 1125) </span><span class="lines">@@ -180,7 +180,7 @@ </span><span class="cx"> SQLEngines are constructed via the create_engine() function inside this package. </span><span class="cx"> """ </span><span class="cx"> </span><del>- def __init__(self, pool=None, echo=False, logger=None, default_ordering=False, echo_pool=False, echo_uow=False, convert_unicode=False, **params): </del><ins>+ def __init__(self, pool=None, echo=False, logger=None, default_ordering=False, echo_pool=False, echo_uow=False, convert_unicode=False, encoding='utf-8', **params): </ins><span class="cx"> """constructs a new SQLEngine. SQLEngines should be constructed via the create_engine() </span><span class="cx"> function which will construct the appropriate subclass of SQLEngine.""" </span><span class="cx"> # get a handle on the connection pool via the connect arguments </span><span class="lines">@@ -197,6 +197,7 @@ </span><span class="cx"> self.echo = echo </span><span class="cx"> self.echo_uow = echo_uow </span><span class="cx"> self.convert_unicode = convert_unicode </span><ins>+ self.encoding = encoding </ins><span class="cx"> self.context = util.ThreadLocal(raiseerror=False) </span><span class="cx"> self._ischema = None </span><span class="cx"> self._figure_paramstyle() </span></span></pre></div> <a id="sqlalchemytrunklibsqlalchemytypespy"></a> <div class="modfile"><h4>Modified: sqlalchemy/trunk/lib/sqlalchemy/types.py (1124 => 1125)</h4> <pre class="diff"><span> <span class="info">--- sqlalchemy/trunk/lib/sqlalchemy/types.py 2006-03-10 04:35:34 UTC (rev 1124) +++ sqlalchemy/trunk/lib/sqlalchemy/types.py 2006-03-10 04:47:38 UTC (rev 1125) </span><span class="lines">@@ -77,12 +77,12 @@ </span><span class="cx"> if not engine.convert_unicode or value is None or not isinstance(value, unicode): </span><span class="cx"> return value </span><span class="cx"> else: </span><del>- return value.encode('utf-8') </del><ins>+ return value.encode(engine.encoding) </ins><span class="cx"> def convert_result_value(self, value, engine): </span><span class="cx"> if not engine.convert_unicode or value is None or isinstance(value, unicode): </span><span class="cx"> return value </span><span class="cx"> else: </span><del>- return value.decode('utf-8') </del><ins>+ return value.decode(engine.encoding) </ins><span class="cx"> def adapt_args(self): </span><span class="cx"> if self.length is None: </span><span class="cx"> return TEXT() </span><span class="lines">@@ -92,12 +92,12 @@ </span><span class="cx"> class Unicode(String): </span><span class="cx"> def convert_bind_param(self, value, engine): </span><span class="cx"> if isinstance(value, unicode): </span><del>- return value.encode('utf-8') </del><ins>+ return value.encode(engine.encoding) </ins><span class="cx"> else: </span><span class="cx"> return value </span><span class="cx"> def convert_result_value(self, value, engine): </span><span class="cx"> if not isinstance(value, unicode): </span><del>- return value.decode('utf-8') </del><ins>+ return value.decode(engine.encoding) </ins><span class="cx"> else: </span><span class="cx"> return value </span><span class="cx"> </span></span></pre> </div> </div> </body> </html> |