Skip to content

Commit 5cc155b

Browse files
committed
Update devel docs: add support for PyMySQL
1 parent 21f9520 commit 5cc155b

File tree

8 files changed

+68
-40
lines changed

8 files changed

+68
-40
lines changed

devel/News.html

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ <h3><a href="index.html">Table Of Contents</a></h3>
6161
<li><a class="reference internal" href="#">News</a><ul>
6262
<li><a class="reference internal" href="#sqlobject-3-2-0-master">SQLObject 3.2.0 (master)</a><ul>
6363
<li><a class="reference internal" href="#minor-features">Minor features</a></li>
64+
<li><a class="reference internal" href="#work-in-progress">Work in progress</a></li>
6465
<li><a class="reference internal" href="#documentation">Documentation</a></li>
6566
<li><a class="reference internal" href="#tests">Tests</a></li>
6667
</ul>
@@ -122,22 +123,23 @@ <h1>News<a class="headerlink" href="#news" title="Permalink to this headline">¶
122123
<li><a class="reference internal" href="#news" id="id7">News</a><ul>
123124
<li><a class="reference internal" href="#sqlobject-3-2-0-master" id="id8">SQLObject 3.2.0 (master)</a><ul>
124125
<li><a class="reference internal" href="#minor-features" id="id9">Minor features</a></li>
125-
<li><a class="reference internal" href="#documentation" id="id10">Documentation</a></li>
126-
<li><a class="reference internal" href="#tests" id="id11">Tests</a></li>
126+
<li><a class="reference internal" href="#work-in-progress" id="id10">Work in progress</a></li>
127+
<li><a class="reference internal" href="#documentation" id="id11">Documentation</a></li>
128+
<li><a class="reference internal" href="#tests" id="id12">Tests</a></li>
127129
</ul>
128130
</li>
129-
<li><a class="reference internal" href="#sqlobject-3-1-0" id="id12">SQLObject 3.1.0</a><ul>
130-
<li><a class="reference internal" href="#features" id="id13">Features</a></li>
131-
<li><a class="reference internal" href="#id1" id="id14">Documentation</a></li>
132-
<li><a class="reference internal" href="#source-code" id="id15">Source code</a></li>
133-
<li><a class="reference internal" href="#id2" id="id16">Tests</a></li>
131+
<li><a class="reference internal" href="#sqlobject-3-1-0" id="id13">SQLObject 3.1.0</a><ul>
132+
<li><a class="reference internal" href="#features" id="id14">Features</a></li>
133+
<li><a class="reference internal" href="#id1" id="id15">Documentation</a></li>
134+
<li><a class="reference internal" href="#source-code" id="id16">Source code</a></li>
135+
<li><a class="reference internal" href="#id2" id="id17">Tests</a></li>
134136
</ul>
135137
</li>
136-
<li><a class="reference internal" href="#sqlobject-3-0-0" id="id17">SQLObject 3.0.0</a><ul>
137-
<li><a class="reference internal" href="#id3" id="id18">Features</a></li>
138-
<li><a class="reference internal" href="#id4" id="id19">Minor features</a></li>
139-
<li><a class="reference internal" href="#development" id="id20">Development</a></li>
140-
<li><a class="reference internal" href="#id5" id="id21">Documentation</a></li>
138+
<li><a class="reference internal" href="#sqlobject-3-0-0" id="id18">SQLObject 3.0.0</a><ul>
139+
<li><a class="reference internal" href="#id3" id="id19">Features</a></li>
140+
<li><a class="reference internal" href="#id4" id="id20">Minor features</a></li>
141+
<li><a class="reference internal" href="#development" id="id21">Development</a></li>
142+
<li><a class="reference internal" href="#id5" id="id22">Documentation</a></li>
141143
</ul>
142144
</li>
143145
</ul>
@@ -157,16 +159,24 @@ <h3>Minor features<a class="headerlink" href="#minor-features" title="Permalink
157159
<li>Add <code class="docutils literal"><span class="pre">driver</span></code> keyword for FirebirdConnection. Allowed values are &#8216;fdb&#8217;
158160
or &#8216;kinterbasdb&#8217;. Default is to test &#8216;fdb&#8217; and &#8216;kinterbasdb&#8217; in that
159161
order.</li>
162+
<li>Add <code class="docutils literal"><span class="pre">driver</span></code> keyword for MySQLConnection. Allowed value are &#8216;mysqldb&#8217;,
163+
&#8216;connector&#8217;, &#8216;oursql&#8217; and &#8216;pymysql&#8217;. Default is to test for mysqldb only;
164+
(connector, oursql and pymysql drivers still cause problems).</li>
165+
</ul>
166+
</div>
167+
<div class="section" id="work-in-progress">
168+
<h3>Work in progress<a class="headerlink" href="#work-in-progress" title="Permalink to this headline"></a></h3>
169+
<ul class="simple">
160170
<li>Add support for <a class="reference external" href="https://pypi.python.org/pypi/mysql-connector">MySQL Connector</a> (pure python; <a class="reference external" href="https://dev.mysql.com/doc/connector-python/en/">binary
161171
packages</a> are not at
162172
PyPI and hence are hard to install and test; most tests are passed, but
163173
there are still problems).</li>
164174
<li>Add support for <a class="reference external" href="https://github.com/python-oursql/oursql">oursql</a> MySQL
165-
driver (Python 2.6 and 2.7; most tests are passed, but there are still
175+
driver (Python 2.6 and 2.7 until oursql fixes python 3 compatibility;
176+
most tests are passed, but there are still problems).</li>
177+
<li>Add support for <a class="reference external" href="https://github.com/PyMySQL/PyMySQL/">PyMySQL</a> - pure
178+
python mysql interface; most tests are passed, but there are still
166179
problems).</li>
167-
<li>Add <code class="docutils literal"><span class="pre">driver</span></code> keyword for MySQLConnection. Allowed value are &#8216;mysqldb&#8217;,
168-
&#8216;connector&#8217; and &#8216;oursql&#8217;. Default is to test for mysqldb only;
169-
(connector and oursql drivers still cause problems).</li>
170180
</ul>
171181
</div>
172182
<div class="section" id="documentation">

devel/TODO.html

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -152,10 +152,8 @@ <h1>TODO<a class="headerlink" href="#todo" title="Permalink to this headline">¶
152152
</li>
153153
<li><p class="first">Switch from setuptools to distribute.</p>
154154
</li>
155-
<li><p class="first">Pure Python Mysql Interface: <a class="reference external" href="https://github.com/nasi/MyPy">https://github.com/nasi/MyPy</a></p>
156-
</li>
157155
<li><p class="first">Ultramysql <a class="reference external" href="https://github.com/esnme/ultramysql">for Python2</a> and
158-
<a class="reference external" href="https://github.com/arpitbbhayani/umysql3">Python3</a>.</p>
156+
<a class="reference external" href="https://github.com/arpitbbhayani/umysql3">Python3</a>. See also <a class="reference external" href="https://github.com/hongqn/umysqldb">umysqldb</a>.</p>
159157
</li>
160158
<li><p class="first">pg8000 driver: <a class="reference external" href="http://code.google.com/p/pg8000/">http://code.google.com/p/pg8000/</a></p>
161159
</li>

devel/_modules/sqlobject/converters.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ <h1>Source code for sqlobject.converters</h1><div class="highlight"><pre>
152152
<span class="n">value</span> <span class="o">=</span> <span class="n">value</span><span class="o">.</span><span class="n">tounicode</span><span class="p">()</span>
153153
<span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
154154
<span class="n">value</span> <span class="o">=</span> <span class="n">value</span><span class="o">.</span><span class="n">tostring</span><span class="p">()</span>
155-
<span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">buffer_type</span><span class="p">):</span>
155+
<span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="p">(</span><span class="nb">bytearray</span><span class="p">,</span> <span class="n">buffer_type</span><span class="p">)):</span>
156156
<span class="n">value</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
157157

158158
<span class="k">if</span> <span class="n">db</span> <span class="ow">in</span> <span class="p">(</span><span class="s1">&#39;mysql&#39;</span><span class="p">,</span> <span class="s1">&#39;postgres&#39;</span><span class="p">,</span> <span class="s1">&#39;rdbhost&#39;</span><span class="p">):</span>
@@ -172,6 +172,7 @@ <h1>Source code for sqlobject.converters</h1><div class="highlight"><pre>
172172
<span class="n">registerConverter</span><span class="p">(</span><span class="n">unicode</span><span class="p">,</span> <span class="n">StringLikeConverter</span><span class="p">)</span> <span class="c1"># noqa</span>
173173
<span class="n">registerConverter</span><span class="p">(</span><span class="n">array</span><span class="p">,</span> <span class="n">StringLikeConverter</span><span class="p">)</span>
174174
<span class="k">if</span> <span class="n">PY2</span><span class="p">:</span>
175+
<span class="n">registerConverter</span><span class="p">(</span><span class="nb">bytearray</span><span class="p">,</span> <span class="n">StringLikeConverter</span><span class="p">)</span>
175176
<span class="n">registerConverter</span><span class="p">(</span><span class="n">buffer_type</span><span class="p">,</span> <span class="n">StringLikeConverter</span><span class="p">)</span>
176177
<span class="k">else</span><span class="p">:</span>
177178
<span class="n">registerConverter</span><span class="p">(</span><span class="nb">memoryview</span><span class="p">,</span> <span class="n">StringLikeConverter</span><span class="p">)</span>

devel/_modules/sqlobject/mysql/mysqlconnection.html

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -99,17 +99,28 @@ <h1>Source code for sqlobject.mysql.mysqlconnection</h1><div class="highlight"><
9999
<span class="k">if</span> <span class="ow">not</span> <span class="n">driver</span><span class="p">:</span>
100100
<span class="k">continue</span>
101101
<span class="k">try</span><span class="p">:</span>
102-
<span class="k">if</span> <span class="n">driver</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s1">&#39;mysqldb&#39;</span><span class="p">:</span>
102+
<span class="k">if</span> <span class="n">driver</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="ow">in</span> <span class="p">(</span><span class="s1">&#39;mysqldb&#39;</span><span class="p">,</span> <span class="s1">&#39;pymysql&#39;</span><span class="p">):</span>
103+
<span class="k">if</span> <span class="n">driver</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s1">&#39;pymysql&#39;</span><span class="p">:</span>
104+
<span class="kn">import</span> <span class="nn">pymysql</span>
105+
<span class="n">pymysql</span><span class="o">.</span><span class="n">install_as_MySQLdb</span><span class="p">()</span>
103106
<span class="kn">import</span> <span class="nn">MySQLdb</span>
104-
<span class="k">if</span> <span class="n">MySQLdb</span><span class="o">.</span><span class="n">version_info</span><span class="p">[:</span><span class="mi">3</span><span class="p">]</span> <span class="o">&lt;</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">2</span><span class="p">):</span>
105-
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span>
106-
<span class="s1">&#39;SQLObject requires MySQLdb 1.2.2 or later&#39;</span><span class="p">)</span>
107+
<span class="k">if</span> <span class="n">driver</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s1">&#39;mysqldb&#39;</span><span class="p">:</span>
108+
<span class="k">if</span> <span class="n">MySQLdb</span><span class="o">.</span><span class="n">version_info</span><span class="p">[:</span><span class="mi">3</span><span class="p">]</span> <span class="o">&lt;</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">2</span><span class="p">):</span>
109+
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span>
110+
<span class="s1">&#39;SQLObject requires MySQLdb 1.2.2 or later&#39;</span><span class="p">)</span>
107111
<span class="kn">import</span> <span class="nn">MySQLdb.constants.CR</span>
108112
<span class="kn">import</span> <span class="nn">MySQLdb.constants.ER</span>
109113
<span class="bp">self</span><span class="o">.</span><span class="n">module</span> <span class="o">=</span> <span class="n">MySQLdb</span>
110-
<span class="bp">self</span><span class="o">.</span><span class="n">CR_SERVER_GONE_ERROR</span> <span class="o">=</span> \
111-
<span class="n">MySQLdb</span><span class="o">.</span><span class="n">constants</span><span class="o">.</span><span class="n">CR</span><span class="o">.</span><span class="n">SERVER_GONE_ERROR</span>
112-
<span class="bp">self</span><span class="o">.</span><span class="n">CR_SERVER_LOST</span> <span class="o">=</span> <span class="n">MySQLdb</span><span class="o">.</span><span class="n">constants</span><span class="o">.</span><span class="n">CR</span><span class="o">.</span><span class="n">SERVER_LOST</span>
114+
<span class="k">if</span> <span class="n">driver</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s1">&#39;mysqldb&#39;</span><span class="p">:</span>
115+
<span class="bp">self</span><span class="o">.</span><span class="n">CR_SERVER_GONE_ERROR</span> <span class="o">=</span> \
116+
<span class="n">MySQLdb</span><span class="o">.</span><span class="n">constants</span><span class="o">.</span><span class="n">CR</span><span class="o">.</span><span class="n">SERVER_GONE_ERROR</span>
117+
<span class="bp">self</span><span class="o">.</span><span class="n">CR_SERVER_LOST</span> <span class="o">=</span> \
118+
<span class="n">MySQLdb</span><span class="o">.</span><span class="n">constants</span><span class="o">.</span><span class="n">CR</span><span class="o">.</span><span class="n">SERVER_LOST</span>
119+
<span class="k">else</span><span class="p">:</span>
120+
<span class="bp">self</span><span class="o">.</span><span class="n">CR_SERVER_GONE_ERROR</span> <span class="o">=</span> \
121+
<span class="n">MySQLdb</span><span class="o">.</span><span class="n">constants</span><span class="o">.</span><span class="n">CR</span><span class="o">.</span><span class="n">CR_SERVER_GONE_ERROR</span>
122+
<span class="bp">self</span><span class="o">.</span><span class="n">CR_SERVER_LOST</span> <span class="o">=</span> \
123+
<span class="n">MySQLdb</span><span class="o">.</span><span class="n">constants</span><span class="o">.</span><span class="n">CR</span><span class="o">.</span><span class="n">CR_SERVER_LOST</span>
113124
<span class="bp">self</span><span class="o">.</span><span class="n">ER_DUP_ENTRY</span> <span class="o">=</span> <span class="n">MySQLdb</span><span class="o">.</span><span class="n">constants</span><span class="o">.</span><span class="n">ER</span><span class="o">.</span><span class="n">DUP_ENTRY</span>
114125
<span class="k">elif</span> <span class="n">driver</span> <span class="o">==</span> <span class="s1">&#39;connector&#39;</span><span class="p">:</span>
115126
<span class="kn">import</span> <span class="nn">mysql.connector</span>
@@ -129,7 +140,8 @@ <h1>Source code for sqlobject.mysql.mysqlconnection</h1><div class="highlight"><
129140
<span class="k">else</span><span class="p">:</span>
130141
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span>
131142
<span class="s1">&#39;Unknown MySQL driver &quot;</span><span class="si">%s</span><span class="s1">&quot;, &#39;</span>
132-
<span class="s1">&#39;expected mysqldb, connector or oursql&#39;</span> <span class="o">%</span> <span class="n">driver</span><span class="p">)</span>
143+
<span class="s1">&#39;expected mysqldb, connector, &#39;</span>
144+
<span class="s1">&#39;oursql or pymysql&#39;</span> <span class="o">%</span> <span class="n">driver</span><span class="p">)</span>
133145
<span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
134146
<span class="k">pass</span>
135147
<span class="k">else</span><span class="p">:</span>
@@ -193,8 +205,9 @@ <h1>Source code for sqlobject.mysql.mysqlconnection</h1><div class="highlight"><
193205
<span class="n">conn</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">module</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span>
194206
<span class="n">host</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">host</span><span class="p">,</span> <span class="n">port</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">port</span><span class="p">,</span> <span class="n">db</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="p">,</span>
195207
<span class="n">user</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">user</span><span class="p">,</span> <span class="n">passwd</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">password</span><span class="p">,</span> <span class="o">**</span><span class="bp">self</span><span class="o">.</span><span class="n">kw</span><span class="p">)</span>
196-
<span class="c1"># Attempt to reconnect. This setting is persistent.</span>
197-
<span class="n">conn</span><span class="o">.</span><span class="n">ping</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span>
208+
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">module</span><span class="o">.</span><span class="n">__name__</span> <span class="o">!=</span> <span class="s1">&#39;oursql&#39;</span><span class="p">:</span>
209+
<span class="c1"># Attempt to reconnect. This setting is persistent.</span>
210+
<span class="n">conn</span><span class="o">.</span><span class="n">ping</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span>
198211
<span class="k">except</span> <span class="bp">self</span><span class="o">.</span><span class="n">module</span><span class="o">.</span><span class="n">OperationalError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
199212
<span class="n">conninfo</span> <span class="o">=</span> <span class="p">(</span><span class="s2">&quot;; used connection string: &quot;</span>
200213
<span class="s2">&quot;host=</span><span class="si">%(host)s</span><span class="s2">, port=</span><span class="si">%(port)s</span><span class="s2">, &quot;</span>

devel/_sources/News.txt

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,26 @@ Minor features
2424
or 'kinterbasdb'. Default is to test 'fdb' and 'kinterbasdb' in that
2525
order.
2626

27+
* Add ``driver`` keyword for MySQLConnection. Allowed value are 'mysqldb',
28+
'connector', 'oursql' and 'pymysql'. Default is to test for mysqldb only;
29+
(connector, oursql and pymysql drivers still cause problems).
30+
31+
Work in progress
32+
----------------
33+
2734
* Add support for `MySQL Connector
2835
<https://pypi.python.org/pypi/mysql-connector>`_ (pure python; `binary
2936
packages <https://dev.mysql.com/doc/connector-python/en/>`_ are not at
3037
PyPI and hence are hard to install and test; most tests are passed, but
3138
there are still problems).
3239

3340
* Add support for `oursql <https://github.com/python-oursql/oursql>`_ MySQL
34-
driver (Python 2.6 and 2.7; most tests are passed, but there are still
35-
problems).
41+
driver (Python 2.6 and 2.7 until oursql fixes python 3 compatibility;
42+
most tests are passed, but there are still problems).
3643

37-
* Add ``driver`` keyword for MySQLConnection. Allowed value are 'mysqldb',
38-
'connector' and 'oursql'. Default is to test for mysqldb only;
39-
(connector and oursql drivers still cause problems).
44+
* Add support for `PyMySQL <https://github.com/PyMySQL/PyMySQL/>`_ - pure
45+
python mysql interface; most tests are passed, but there are still
46+
problems).
4047

4148
Documentation
4249
-------------

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy