Rémi Cardona <remi.cardona@logilab.fr> [Tue, 13 Oct 2015 18:20:42 +0200] rev 10732
[py3k] Clarify IDownloadable expected types
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 22 Sep 2015 15:31:44 +0200] rev 10731
[py3k] IDownloadable.download_data() returns bytes
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 22 Sep 2015 15:24:58 +0200] rev 10730
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 22 Sep 2015 15:01:16 +0200] rev 10729
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 22 Sep 2015 15:00:41 +0200] rev 10728
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 22 Sep 2015 14:42:33 +0200] rev 10727
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 22 Sep 2015 10:24:47 +0200] rev 10726
[py3k] PageInfo.source contains bytes
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 21 Sep 2015 18:58:12 +0200] rev 10725
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 21 Sep 2015 18:35:38 +0200] rev 10724
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 21 Sep 2015 18:28:10 +0200] rev 10723
[py3k] Don't encode URLs
Python 3's urllib works with unicode objects.
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 21 Sep 2015 18:04:22 +0200] rev 10722
[tests] Stop counting pickle bytes in ResultSet tests
Between python 2's pickle and cPickle implementations, the various
protocol versions added in python 3, the length of the pickled string is
completely unpredictable.
Instead, do a simple round trip and test a few attributes.
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 21 Sep 2015 17:54:15 +0200] rev 10721
[tests] Port unittest_cwctl to py3k
On python 2, sys.stdout takes bytes-like objects whereas python 3's
takes unicode-like objects and handles the encoding on its own.
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 21 Sep 2015 17:51:58 +0200] rev 10720
[migration] NoneType is no longer comparable in py3k
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 13 Oct 2015 12:33:26 +0200] rev 10719
Rename gettext to cwgettext, use stdlib gettext
cubicweb/gettext.py was a copy of Python 2.6's gettext.py with the
context patch from bug https://bugs.python.org/issue2504
Instead of keeping that full copy, just inherit from
gettext.GNUTranslations and add the context-related stuff.
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 13 Oct 2015 17:16:26 +0200] rev 10718
[py3k] MethodType no longer takes a class argument
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 18 Sep 2015 18:03:19 +0200] rev 10717
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 18 Sep 2015 18:02:20 +0200] rev 10716
[py3k] im_self → __self__
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 18 Sep 2015 18:01:31 +0200] rev 10715
[py3k] Don't sort Action objects
In python 3, arbitrary objects are no longer sortable.
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 22 Sep 2015 15:25:25 +0200] rev 10714
[py3k] use inspect module to get a function's arguments
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 18 Sep 2015 17:58:30 +0200] rev 10713
[py3k] __unicode__ and __str__
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 21 Sep 2015 19:00:26 +0200] rev 10712
[test] call rql.parse with unicode objects
Allows to get same results from rqlst.as_string() in python 2 and 3
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 18 Sep 2015 14:23:22 +0200] rev 10711
[py3k] replace cmp with key in sorted()
And stop sorting dicts in snippet_key()
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 18 Sep 2015 12:35:10 +0200] rev 10710
[tests] remove useless sort
Useless in python 2, actively harmful in python 3 where arbitrary
objects are no longer sortable.
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 18 Sep 2015 12:34:51 +0200] rev 10709
[py3k] dict methods no longer return indexable objects
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 18 Sep 2015 12:03:12 +0200] rev 10708
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 18 Sep 2015 11:58:29 +0200] rev 10707
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 18 Sep 2015 11:54:12 +0200] rev 10706
[server] Port BFSS to py3k
The BFSS API changes in python 3:
* 'defaultdir' MUST be a unicode object
* 'fsencoding' MUST NOT be set
In python 2, fsencoding handles both the encoding of file paths on the
file system (utf-8 by default, but the system may actually be using
something else) and the encoding of file paths that will be stored in
the database.
So in python 3, we wipe the slate clean:
* rely on sys.getfilesystemencoding() to convert unicode objects to
bytes
* always encode paths to utf-8 for storage in the database
Caveat emptor / here be dragons:
* sys.getfilesystemencoding() depends on the current locale, which
therefore MUST be set properly
* when migrating an existing instance from py2 to py3, one MAY need
to reencode file paths stored in the database
Rémi Cardona <remi.cardona@logilab.fr> [Thu, 17 Sep 2015 15:35:26 +0200] rev 10705
[py3k] Binary.getvalue() returns bytes
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 22 Sep 2015 14:47:04 +0200] rev 10704
[py3k] ensure Binary objects are initialized with bytes
Rémi Cardona <remi.cardona@logilab.fr> [Thu, 17 Sep 2015 12:02:40 +0200] rev 10703
[py3k] __unicode__ and __str__
Rémi Cardona <remi.cardona@logilab.fr> [Thu, 17 Sep 2015 11:07:36 +0200] rev 10702
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 18 Sep 2015 14:50:44 +0200] rev 10701
[mail] port to py3k
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 16 Sep 2015 18:43:19 +0200] rev 10700
[web/views] port JSON views to py3k
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 16 Sep 2015 18:43:02 +0200] rev 10699
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 16 Sep 2015 18:41:12 +0200] rev 10698
[web/controller] req.form is supposed to contain unicode-data
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 16 Sep 2015 18:40:03 +0200] rev 10697
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 16 Sep 2015 17:22:41 +0200] rev 10696
[py3k] unicode vs str vs bytes vs the world
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 16 Sep 2015 17:07:26 +0200] rev 10695
[web/views] Port csvexport views to py3k
There are a few hoops to jump through since python 3's csv module _is_
unicode aware.
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 22 Sep 2015 14:18:14 +0200] rev 10694
[py3k] unicode vs str vs bytes vs the world
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 16 Sep 2015 16:07:29 +0200] rev 10693
[web/request] don't convert request parameters if py3k
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 16 Sep 2015 16:02:04 +0200] rev 10692
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 16 Sep 2015 15:26:56 +0200] rev 10691
[py3k] __getslice__ → __getitem__ with slice support
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 16 Sep 2015 15:50:42 +0200] rev 10690
[py3k] __nonzero__ → __bool__
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 16 Sep 2015 15:17:42 +0200] rev 10689
[py3k] unicode vs str vs bytes vs the world
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 16 Sep 2015 13:57:21 +0200] rev 10688
[py3k] use six.add_metaclass
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 16 Sep 2015 11:28:07 +0200] rev 10687
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 05 Oct 2015 17:10:36 +0200] rev 10686
[py3k] add list() around dict methods
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 18:43:19 +0200] rev 10685
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 18:39:09 +0200] rev 10684
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 18:30:05 +0200] rev 10683
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 18:23:35 +0200] rev 10682
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 18:22:41 +0200] rev 10681
[server/utils] crypt_password should always return bytes
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 18:21:33 +0200] rev 10680
[py3k] str → six.binary_type
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 17:32:30 +0200] rev 10679
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 17:31:07 +0200] rev 10678
[server/utils] convert to py3k using six
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 17:28:05 +0200] rev 10677
[py3k] six.PY2
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 17:25:50 +0200] rev 10676
[py3k] use text/binary types from six
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 17:04:04 +0200] rev 10675
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 15:28:20 +0200] rev 10674
[py3k] bytes vs str
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 15:08:04 +0200] rev 10673
[py3k] io.BytesIO
Rémi Cardona <remi.cardona@logilab.fr> [Wed, 16 Sep 2015 17:28:06 +0200] rev 10672
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 13 Oct 2015 16:57:09 +0200] rev 10671
[py3k] bytes required for hashlib.{md5,sha1}()
Julien Cristau <julien.cristau@logilab.fr> [Thu, 01 Oct 2015 11:40:23 +0200] rev 10670
[wsgi/test] add __main__ section
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 18 Sep 2015 14:29:53 +0200] rev 10669
[py3k] use next builtin instead of next method
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 17:10:58 +0200] rev 10668
[web/views] use next builtin instead of next method
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 16:09:55 +0200] rev 10667
[py3k] declare meta classes using six.add_metaclass
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 11 Sep 2015 18:05:38 +0200] rev 10666
[py3k] replace '_ = unicode' in global scope (closes #7589459)
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 11 Sep 2015 18:01:36 +0200] rev 10665
[py3k] introduce cubicweb._ (related to #7589459)
The end goal is to stop relying on '_' being in the builtin scope. In
the mean time, deprecate the builtin '_' so that consumers are warned.
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 18 Sep 2015 18:04:05 +0200] rev 10664
[py3k] dict.iterkeys → dict
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 13 Oct 2015 15:09:22 +0200] rev 10663
[py3k] dict.itervalues → dict.values
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 16:15:03 +0200] rev 10662
[py3k] dict.iteritems → dict.items
Julien Cristau <julien.cristau@logilab.fr> [Tue, 08 Sep 2015 18:04:57 +0200] rev 10661
implement __ne__ whenever we implement __eq__
Julien Cristau <julien.cristau@logilab.fr> [Tue, 08 Sep 2015 17:15:03 +0200] rev 10660
[test] use unicode for rql queries (7/7)
Closes #6694446
Julien Cristau <julien.cristau@logilab.fr> [Tue, 08 Sep 2015 16:28:55 +0200] rev 10659
[test] use unicode for rql queries (6/7)
Related to #6694446
Julien Cristau <julien.cristau@logilab.fr> [Tue, 08 Sep 2015 16:25:26 +0200] rev 10658
[test] use unicode for rql queries (5/7)
Related to #6694446
Julien Cristau <julien.cristau@logilab.fr> [Tue, 08 Sep 2015 16:25:16 +0200] rev 10657
[test] use unicode for rql queries (4/7)
Related to #6694446
Julien Cristau <julien.cristau@logilab.fr> [Tue, 08 Sep 2015 16:24:57 +0200] rev 10656
[test] use unicode for rql queries (3/7)
Related to #6694446
Julien Cristau <julien.cristau@logilab.fr> [Tue, 08 Sep 2015 16:24:42 +0200] rev 10655
[test] use unicode for rql queries (2/7)
Related to #6694446
Julien Cristau <julien.cristau@logilab.fr> [Wed, 09 Sep 2015 09:37:14 +0200] rev 10654
[test] use unicode for rql queries (1/7)
Related to #6694446
Julien Cristau <julien.cristau@logilab.fr> [Tue, 08 Sep 2015 16:26:56 +0200] rev 10653
[schema] improve normalization of RQLExpressions
Parse and print back the expression instead of manipulating the string.
Among other benefits, it means we don't mangle embedded string constants
that contain commas or multiple spaces.
Closes #6694426
Julien Cristau <julien.cristau@logilab.fr> [Tue, 08 Sep 2015 13:43:57 +0200] rev 10652
[server/rql2sql] use VariableRef.is_equivalent explicitly instead of relying on __eq__
What we want to compare is the variable referenced by the VariableRef,
we should make that explicit.
Closes #6694406
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 12 Oct 2015 10:53:35 +0200] rev 10651
merge with 3.21.2
David Douard <david.douard@logilab.fr> [Fri, 02 Oct 2015 17:28:33 +0200] rev 10650
[statsd] fix the statsd logger (closes #7558147)
socket.inet_pton's second argument is the ip, not a couple (ip, port)
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 12 Oct 2015 09:19:07 +0200] rev 10649
Added tag 3.21.2, debian/3.21.2-1, centos/3.21.2-1 for changeset a5428e1ab364
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 09 Oct 2015 18:01:46 +0200] rev 10648
[pkg] 3.21.2
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 09 Oct 2015 18:03:40 +0200] rev 10647
[pkg] Remove leftover dep on pyro (closes #7479155)
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 09 Oct 2015 17:52:14 +0200] rev 10646
merge with 3.20.10
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 29 Sep 2015 12:09:04 +0200] rev 10645
[migration] fix change_attribute_type to update the live schema
Closes #7170830
Julien Cristau <julien.cristau@logilab.fr> [Fri, 24 Jul 2015 09:57:08 +0200] rev 10644
[devtools] add has_cache for postgres (closes #5739624)
devtools stores info about existing dbs in the db handler, but in the
case of postgresql that doesn't take into account the path to the
cluster's datadir. Which means if we run two test modules (in the same
test run), we'll create a "__default_empty_db__" for the first one,
cache its existence, and then when moving on to the other module,
believe the template already exists (but since the datadir depends on
the test module's path, it does not). This patch is a bit of a kludge,
and it would be better to make the cache key include enough data to not
need this, but I'm not sure how to do that.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 22 Sep 2015 14:20:02 +0200] rev 10643
fix bad-caching of datetime with tz info at sql generation time
There is a special handling for datetime with tzinfo, where value was stored in
the query cache. The implementation of merge_args was simply overwriting
parameters of the query with those in the query cache, expecting no collision.
To fix this:
* handle replacement of tzinfo in merge_args, not at sql generation time
* add an assertion to ensure we've actually no collision
Closes #6978316
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 09 Oct 2015 09:40:08 +0200] rev 10642
Added tag 3.20.10, debian/3.20.10-1, centos/3.20.10-1 for changeset 8f82e9523962
Rémi Cardona <remi.cardona@logilab.fr> [Thu, 08 Oct 2015 18:47:57 +0200] rev 10641
[pkg] 3.20.10
Rémi Cardona <remi.cardona@logilab.fr> [Thu, 08 Oct 2015 18:38:16 +0200] rev 10640
merge with 3.19.13
Rémi Cardona <remi.cardona@logilab.fr> [Thu, 08 Oct 2015 18:24:09 +0200] rev 10639
[devtools] Fix CubicWebTC.temporary_permissions
If the context manager is exited via an exception, the original
permissions should be restored.
Rémi Cardona <remi.cardona@logilab.fr> [Thu, 08 Oct 2015 18:09:10 +0200] rev 10638
[devtools] Use TestCase.assertGreater
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 09 Sep 2015 08:32:49 +0200] rev 10637
[autoform] fix appearance of link to add inlined creation form
On entity creation, if there are some local permissions on the relation,
we have no way of checking them since neither the subject nor the object
of the relation exists yet. In such a case, we should add the link by
default, for consistency (see other places where we use
`may_have_permission`).
Closes #6711900
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 08 Oct 2015 11:47:15 +0200] rev 10636
[predicates] Simplify specified_etype_implements
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 08 Oct 2015 12:13:35 +0200] rev 10635
[web/views] Fix `has_editable_relation` predicate wrt inlined relations
Prevents the "modify" action from being shown when there is nothing to
edit.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 02 Sep 2015 15:31:18 +0200] rev 10634
[web/views] avoid propagation of NoSelectableObject in some case of inlined relations / permissions
When selecting an inlined creation form, we should catch the
NoSelectable exception that will be raised if the user cannot add
entities of the target type (this is not and cannot be verified earlier)
or if some other custom selector prevents the form from being selected.
Closes #6510921
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 07 Oct 2015 17:27:35 +0200] rev 10633
[server/test] bit of PEP8
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 25 Aug 2015 11:11:34 +0200] rev 10632
[migration] don't attempt to carry over values when renaming a computed relation
Without the fix in migractions.py, the introduced test crashes with an
operational error because of an attempt to write to a non-existing
relation table (computed relations are not materialized).
Closes #6304946
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 21 Aug 2015 11:01:08 +0200] rev 10631
consider .do_fti flag in index_entity method
as this method may be used from outsite the class (eg in UpdateFTIHook), this is
the proper way to consider it anyway.
Closes #6206636
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 06 Oct 2015 18:59:01 +0200] rev 10630
Added tag 3.19.13, debian/3.19.13-1, centos/3.19.13-1 for changeset f933a38d7ab5
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 06 Oct 2015 18:35:14 +0200] rev 10629
[pkg] 3.19.13
Julien Cristau <julien.cristau@logilab.fr> [Tue, 29 Sep 2015 14:41:28 +0200] rev 10628
[migration/3.21] add support for sqlserver
Closes #7173702
Julien Cristau <julien.cristau@logilab.fr> [Tue, 29 Sep 2015 15:49:10 +0200] rev 10627
moved_entities.extid may not be NULL
Julien Cristau <julien.cristau@logilab.fr> [Tue, 29 Sep 2015 15:15:03 +0200] rev 10626
[server] use sqls_create_multicol_unique_index to index entities.extid
SQL Server's UNIQUE is not standards compliant, it doesn't accept two
NULL values. Related to #7173702.
Julien Cristau <julien.cristau@logilab.fr> [Tue, 29 Sep 2015 15:11:29 +0200] rev 10625
[server] fix checkintegrity with pyodbc
"msg % row" dies with "not enough arguments for format string" if row is
a pyodbc.Row.
Julien Cristau <julien.cristau@logilab.fr> [Tue, 29 Sep 2015 14:23:57 +0200] rev 10624
[schema] remove unique constraint on unlimited String attribute
SQL Server doesn't allow indexing (and thus unique constraints) on
nvarchar(max). Related to #7173702.
Aurelien Campeas <aurelien.campeas@pythonian.fr> [Mon, 05 Oct 2015 16:36:49 +0200] rev 10623
[sources/native] fix potential NameError (closes #7364249)
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 14 Sep 2015 11:15:47 +0200] rev 10622
[py3k] unicode → six.text_type
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 14 Sep 2015 18:10:20 +0200] rev 10621
[devtools/testlib] Port CubicWebTC.view() to py3k
testlib.TestCase.set_description's argument will eventually be printed
out to sys.stdout/stderr. On python 2, this object takes bytes-like
objects (eg, str) whereas python 3's takes unicode-like objects and
handles the encoding on its own.
Thus the 'str' type can used in both versions to eventually display the
description on screen.
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 14 Sep 2015 18:12:44 +0200] rev 10620
[devtools/testlib] port 'fake_form' test to io.BytesIO
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 14 Sep 2015 16:45:03 +0200] rev 10619
[dataimport] port ucsvreader tests to io.BytesIO
Rémi Cardona <remi.cardona@logilab.fr> [Mon, 14 Sep 2015 18:56:29 +0200] rev 10618
[py3k] io.BytesIO
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 11 Sep 2015 17:40:23 +0200] rev 10617
[py3k] io.StringIO
Rémi Cardona <remi.cardona@free.fr> [Tue, 15 Sep 2015 12:51:27 +0200] rev 10616
Port cw.Binary to io.BytesIO
And add plenty of tests too!
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 18 Sep 2015 18:26:07 +0200] rev 10615
[py3k] execfile → exec
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Sep 2015 15:33:47 +0200] rev 10614
[py3k] file → open
Rémi Cardona <remi.cardona@logilab.fr> [Thu, 17 Sep 2015 09:52:06 +0200] rev 10613
[py3k] six.integer_types