Merge lp:~cjwatson/storm/py3-final into lp:storm

Proposed by Colin Watson
Status: Merged
Merged at revision: 527
Proposed branch: lp:~cjwatson/storm/py3-final
Merge into: lp:storm
Diff against target: 59 lines (+19/-0)
4 files modified
.bzrignore (+1/-0)
NEWS (+15/-0)
setup.py (+2/-0)
tox.ini (+1/-0)
To merge this branch: bzr merge lp:~cjwatson/storm/py3-final
Reviewer Review Type Date Requested Status
Simon Poirier (community) Approve
Review via email: mp+372859@code.launchpad.net

Commit message

Document Python 3 support.

Description of the change

Now that all the Python 3 support branches have landed, we can document it and adjust tox configuration to ensure that it keeps working.

To post a comment you must log in.
Revision history for this message
Simon Poirier (simpoir) wrote :

+1 LGTM

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file '.bzrignore'
2--- .bzrignore 2019-05-30 13:21:20 +0000
3+++ .bzrignore 2019-09-17 09:46:46 +0000
4@@ -1,3 +1,4 @@
5+__pycache__
6 build
7 storm.egg-info
8 build-stamp
9
10=== modified file 'NEWS'
11--- NEWS 2019-08-11 17:51:37 +0000
12+++ NEWS 2019-09-17 09:46:46 +0000
13@@ -12,6 +12,21 @@
14 both StormError and the appropriate DB-API exception type, rather than
15 injecting virtual base classes. This preserves existing exception handling
16 in applications while also being a viable approach in Python 3.
17+- Port to Python 3 (bug #1530734, based partly on contributions from Thiago
18+ Bellini). Existing Python 2 users should be unaffected. For people
19+ porting to Python 3, note the following API changes relative to Python 2:
20+ - On Python 3, raw=True and token=True in storm.expr.Compile.__call__ only
21+ treat str specially, not bytes and str, because ultimately the compiler
22+ is assembling a text string to send to the database.
23+ - On Python 3, storm.tracer.BaseStatementTracer.connection_raw_execute
24+ renders text parameters using ascii() rather than by encoding to bytes
25+ and then calling repr(). While this does result in slightly different
26+ output from Python 2, it's normally more useful since the encoding is in
27+ terms of Unicode codepoints rather than UTF-8.
28+ - storm.sqlobject.AutoUnicodeVariable (and hence StringCol) explicitly
29+ documents that it only accepts text on Python 3, since native strings
30+ are already Unicode there so there's much less need for the porting
31+ affordance.
32
33 Bug fixes
34 ---------
35
36=== modified file 'setup.py'
37--- setup.py 2019-08-11 17:51:37 +0000
38+++ setup.py 2019-09-17 09:46:46 +0000
39@@ -58,6 +58,8 @@
40 ("License :: OSI Approved :: GNU Library or "
41 "Lesser General Public License (LGPL)"),
42 "Programming Language :: Python",
43+ "Programming Language :: Python :: 2",
44+ "Programming Language :: Python :: 3",
45 "Topic :: Database",
46 "Topic :: Database :: Front-Ends",
47 "Topic :: Software Development :: Libraries :: Python Modules",
48
49=== modified file 'tox.ini'
50--- tox.ini 2019-06-06 10:25:25 +0000
51+++ tox.ini 2019-09-17 09:46:46 +0000
52@@ -1,6 +1,7 @@
53 [tox]
54 envlist =
55 py27-{cextensions,nocextensions}
56+ py35-{cextensions,nocextensions}
57
58 [testenv]
59 deps =

Subscribers

People subscribed via source and target branches

to status/vote changes: