• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

zopefoundation / ZODB / 750
84%

Build:
DEFAULT BRANCH: master
Ran 29 Aug 2017 02:58PM UTC
Jobs 4
Files 51
Run time 3min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

pending completion
750

push

travis-ci

jimfulton
Use a higher pickle protocol for serializing objects on Python 2 (#179)

* Use a higher pickle protocol (2) for serializing objects on Python 2

Previously protocol 1 was used. This is more efficient for new-style
classes (all persistent objects are new-style), according to the docs,
at the cost of being very slightly less space efficient for old-style
classes.

In tests of a persistent object with two trivial numeric attributes,
the higher protocol was 12 bytes smaller, and serialized and
deserialized 1us faster. Introducing a reference to another new-style
class for a more realistic test made the higher protocol twice as fast
to serialize (20.5 vs 10.3us), almost half the size (215 vs 142
bytes), and it deserialized 30% faster (6.5 vs 4.6us).

On Python 2, this will now allow open ``file`` objects to be
pickled (loading the object will result in a closed file); previously
this would result in a ``TypeError`` (as does under Python 3). We had
tests that you couldn't do that with a BlobFile so I had to update it
to still make that true.

I wouldn't recommend serializing arbitrary open files under Python
2 (for one thing, they can't trivially be deserialized in Python 3),
but I didn't take any steps to prevent it either. Since this hasn't
been possible, there shouldn't be code in the wild that is trying to
do it---and it wouldn't be forward compatible with Python 3 either.

6428 of 8538 relevant lines covered (75.29%)

2.99 hits per line

Jobs
ID Job ID Ran Files Coverage
3 750.3 29 Aug 2017 02:58PM UTC 0
74.67
Travis Job 750.3
4 750.4 29 Aug 2017 02:59PM UTC 0
74.96
Travis Job 750.4
5 750.5 29 Aug 2017 02:58PM UTC 0
74.92
Travis Job 750.5
6 750.6 29 Aug 2017 03:01PM UTC 0
74.92
Travis Job 750.6
Source Files on build 750
  • List 0
  • Changed 12
  • Source Changed 2
  • Coverage Changed 12
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Travis Build #750
  • be5a9d54 on github
  • Prev Build on master (#749)
  • Next Build on master (#752)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc