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

zopefoundation / zope.interface / 549
99%
master: 99%

Build:
Build:
LAST BUILD BRANCH: 8.2
DEFAULT BRANCH: master
Ran 07 Mar 2020 12:48AM UTC
Jobs 13
Files 49
Run time 7min
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
549

push

travis-ci

jamadden
Move Interface hashing and comparison to C; 2.5 to 15x speedup in micro benchmarks

Included benchmark numbers:

Current master, Python 3.8:

.....................
contains (empty dict): Mean +- std dev: 198 ns +- 5 ns
.....................
contains (populated dict): Mean +- std dev: 197 ns +- 6 ns
.....................
contains (populated list): Mean +- std dev: 53.1 us +- 1.2 us

This code:

.....................
contains (empty dict): Mean +- std dev: 77.9 ns +- 2.3 ns
.....................
contains (populated dict): Mean +- std dev: 78.4 ns +- 3.1 ns
.....................
contains (populated list): Mean +- std dev: 3.69 us +- 0.08 us

So anywhere from 2.5 to 15x faster. Not sure how that will translate to
larger benchmarks, but I'm hopeful.

It turns out that messing with ``__module__`` is nasty, tricky
business, especially when you do it from C. Everytime you define a new
subclass, the descriptors that you set get overridden by the type
machinery (PyType_Ready). I'm using a data descriptor and a meta class
right now to avoid that but I'm not super happy with that and would
like to find a better way. (At least, maybe the data part of the
descriptor isn't necessary?) It may be needed to move more code into
C, I don't want a slowdown accessing ``__module__`` either; copying
around the standard PyGetSet or PyMember descriptors isn't enough
because they don't work on the class object (so
``classImplements(InterfaceClass, IInterface)`` fails).

1213 of 1231 branches covered (98.54%)

Branch coverage included in aggregate %.

9713 of 9793 relevant lines covered (99.18%)

12.62 hits per line

Jobs
ID Job ID Ran Files Coverage
1 549.1 (TWINE_USERNAME=zope.wheelbuilder TWINE_PASSWORD={:secure=>"AyR5QxUuZKdmywiepdBG0r8hgFQfaEf2hTxOg/HiXisVNcs1sUPjephBP4MqQBbf1/qxLM95F6Mw3sKneO3gDDQSGCsmvY1MWlDc+6R5TgqVBuOoONji5zGQH7v9RR8IPOyple8BNlFePl1hQ8r0dOT1U6rDVh5FkNJgHYE9OJ4="}) 07 Mar 2020 12:48AM UTC 0
97.87
Travis Job 549.1
2 549.2 (TWINE_USERNAME=zope.wheelbuilder TWINE_PASSWORD={:secure=>"AyR5QxUuZKdmywiepdBG0r8hgFQfaEf2hTxOg/HiXisVNcs1sUPjephBP4MqQBbf1/qxLM95F6Mw3sKneO3gDDQSGCsmvY1MWlDc+6R5TgqVBuOoONji5zGQH7v9RR8IPOyple8BNlFePl1hQ8r0dOT1U6rDVh5FkNJgHYE9OJ4="}) 07 Mar 2020 12:48AM UTC 0
96.4
Travis Job 549.2
3 549.3 (TWINE_USERNAME=zope.wheelbuilder TWINE_PASSWORD={:secure=>"AyR5QxUuZKdmywiepdBG0r8hgFQfaEf2hTxOg/HiXisVNcs1sUPjephBP4MqQBbf1/qxLM95F6Mw3sKneO3gDDQSGCsmvY1MWlDc+6R5TgqVBuOoONji5zGQH7v9RR8IPOyple8BNlFePl1hQ8r0dOT1U6rDVh5FkNJgHYE9OJ4="}) 07 Mar 2020 12:48AM UTC 0
96.35
Travis Job 549.3
4 549.4 (TWINE_USERNAME=zope.wheelbuilder TWINE_PASSWORD={:secure=>"AyR5QxUuZKdmywiepdBG0r8hgFQfaEf2hTxOg/HiXisVNcs1sUPjephBP4MqQBbf1/qxLM95F6Mw3sKneO3gDDQSGCsmvY1MWlDc+6R5TgqVBuOoONji5zGQH7v9RR8IPOyple8BNlFePl1hQ8r0dOT1U6rDVh5FkNJgHYE9OJ4="}) 07 Mar 2020 12:48AM UTC 0
96.45
Travis Job 549.4
5 549.5 (TWINE_USERNAME=zope.wheelbuilder TWINE_PASSWORD={:secure=>"AyR5QxUuZKdmywiepdBG0r8hgFQfaEf2hTxOg/HiXisVNcs1sUPjephBP4MqQBbf1/qxLM95F6Mw3sKneO3gDDQSGCsmvY1MWlDc+6R5TgqVBuOoONji5zGQH7v9RR8IPOyple8BNlFePl1hQ8r0dOT1U6rDVh5FkNJgHYE9OJ4="}) 07 Mar 2020 12:48AM UTC 0
96.49
Travis Job 549.5
6 549.6 (TWINE_USERNAME=zope.wheelbuilder TWINE_PASSWORD={:secure=>"AyR5QxUuZKdmywiepdBG0r8hgFQfaEf2hTxOg/HiXisVNcs1sUPjephBP4MqQBbf1/qxLM95F6Mw3sKneO3gDDQSGCsmvY1MWlDc+6R5TgqVBuOoONji5zGQH7v9RR8IPOyple8BNlFePl1hQ8r0dOT1U6rDVh5FkNJgHYE9OJ4="}) 07 Mar 2020 12:49AM UTC 0
98.14
Travis Job 549.6
7 549.7 (TWINE_USERNAME=zope.wheelbuilder TWINE_PASSWORD={:secure=>"AyR5QxUuZKdmywiepdBG0r8hgFQfaEf2hTxOg/HiXisVNcs1sUPjephBP4MqQBbf1/qxLM95F6Mw3sKneO3gDDQSGCsmvY1MWlDc+6R5TgqVBuOoONji5zGQH7v9RR8IPOyple8BNlFePl1hQ8r0dOT1U6rDVh5FkNJgHYE9OJ4="}) 07 Mar 2020 12:49AM UTC 0
96.2
Travis Job 549.7
9 549.9 (TWINE_USERNAME=zope.wheelbuilder TWINE_PASSWORD={:secure=>"AyR5QxUuZKdmywiepdBG0r8hgFQfaEf2hTxOg/HiXisVNcs1sUPjephBP4MqQBbf1/qxLM95F6Mw3sKneO3gDDQSGCsmvY1MWlDc+6R5TgqVBuOoONji5zGQH7v9RR8IPOyple8BNlFePl1hQ8r0dOT1U6rDVh5FkNJgHYE9OJ4="} PURE_PYTHON=0) 07 Mar 2020 12:49AM UTC 0
97.96
Travis Job 549.9
10 549.10 (TWINE_USERNAME=zope.wheelbuilder TWINE_PASSWORD={:secure=>"AyR5QxUuZKdmywiepdBG0r8hgFQfaEf2hTxOg/HiXisVNcs1sUPjephBP4MqQBbf1/qxLM95F6Mw3sKneO3gDDQSGCsmvY1MWlDc+6R5TgqVBuOoONji5zGQH7v9RR8IPOyple8BNlFePl1hQ8r0dOT1U6rDVh5FkNJgHYE9OJ4="} PURE_PYTHON=1) 07 Mar 2020 12:49AM UTC 0
96.66
Travis Job 549.10
13 549.13 (TWINE_USERNAME=zope.wheelbuilder TWINE_PASSWORD={:secure=>"AyR5QxUuZKdmywiepdBG0r8hgFQfaEf2hTxOg/HiXisVNcs1sUPjephBP4MqQBbf1/qxLM95F6Mw3sKneO3gDDQSGCsmvY1MWlDc+6R5TgqVBuOoONji5zGQH7v9RR8IPOyple8BNlFePl1hQ8r0dOT1U6rDVh5FkNJgHYE9OJ4="} TERRYFY_PYTHON='macpython 2.7.17') 07 Mar 2020 12:52AM UTC 0
97.87
Travis Job 549.13
14 549.14 (TWINE_USERNAME=zope.wheelbuilder TWINE_PASSWORD={:secure=>"AyR5QxUuZKdmywiepdBG0r8hgFQfaEf2hTxOg/HiXisVNcs1sUPjephBP4MqQBbf1/qxLM95F6Mw3sKneO3gDDQSGCsmvY1MWlDc+6R5TgqVBuOoONji5zGQH7v9RR8IPOyple8BNlFePl1hQ8r0dOT1U6rDVh5FkNJgHYE9OJ4="} TERRYFY_PYTHON='macpython 3.5') 07 Mar 2020 12:52AM UTC 0
96.4
Travis Job 549.14
15 549.15 (TWINE_USERNAME=zope.wheelbuilder TWINE_PASSWORD={:secure=>"AyR5QxUuZKdmywiepdBG0r8hgFQfaEf2hTxOg/HiXisVNcs1sUPjephBP4MqQBbf1/qxLM95F6Mw3sKneO3gDDQSGCsmvY1MWlDc+6R5TgqVBuOoONji5zGQH7v9RR8IPOyple8BNlFePl1hQ8r0dOT1U6rDVh5FkNJgHYE9OJ4="} TERRYFY_PYTHON='macpython 3.6.2') 07 Mar 2020 12:55AM UTC 0
96.35
Travis Job 549.15
16 549.16 (TWINE_USERNAME=zope.wheelbuilder TWINE_PASSWORD={:secure=>"AyR5QxUuZKdmywiepdBG0r8hgFQfaEf2hTxOg/HiXisVNcs1sUPjephBP4MqQBbf1/qxLM95F6Mw3sKneO3gDDQSGCsmvY1MWlDc+6R5TgqVBuOoONji5zGQH7v9RR8IPOyple8BNlFePl1hQ8r0dOT1U6rDVh5FkNJgHYE9OJ4="} TERRYFY_PYTHON='macpython 3.7.0') 07 Mar 2020 12:55AM UTC 0
96.45
Travis Job 549.16
Source Files on build 549
Detailed source file information is not available for this build.
  • Back to Repo
  • Travis Build #549
  • 6b5502a2 on github
  • Next Build on faster-eq-hash-comparison (#575)
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

© 2026 Coveralls, Inc