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

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

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

Pull #183

travis-ci

web-flow
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).
Pull Request #183: Move Interface hashing and comparison to C; 2.5 to 15x speedup in micro benchmarks

1213 of 1231 branches covered (98.54%)

Branch coverage included in aggregate %.

64 of 64 new or added lines in 3 files covered. (100.0%)

9713 of 9793 relevant lines covered (99.18%)

12.62 hits per line

Jobs
ID Job ID Ran Files Coverage
1 550.1 (TWINE_USERNAME=zope.wheelbuilder TWINE_PASSWORD={:secure=>"AyR5QxUuZKdmywiepdBG0r8hgFQfaEf2hTxOg/HiXisVNcs1sUPjephBP4MqQBbf1/qxLM95F6Mw3sKneO3gDDQSGCsmvY1MWlDc+6R5TgqVBuOoONji5zGQH7v9RR8IPOyple8BNlFePl1hQ8r0dOT1U6rDVh5FkNJgHYE9OJ4="}) 07 Mar 2020 12:54AM UTC 0
97.87
Travis Job 550.1
2 550.2 (TWINE_USERNAME=zope.wheelbuilder TWINE_PASSWORD={:secure=>"AyR5QxUuZKdmywiepdBG0r8hgFQfaEf2hTxOg/HiXisVNcs1sUPjephBP4MqQBbf1/qxLM95F6Mw3sKneO3gDDQSGCsmvY1MWlDc+6R5TgqVBuOoONji5zGQH7v9RR8IPOyple8BNlFePl1hQ8r0dOT1U6rDVh5FkNJgHYE9OJ4="}) 07 Mar 2020 12:54AM UTC 0
96.4
Travis Job 550.2
3 550.3 (TWINE_USERNAME=zope.wheelbuilder TWINE_PASSWORD={:secure=>"AyR5QxUuZKdmywiepdBG0r8hgFQfaEf2hTxOg/HiXisVNcs1sUPjephBP4MqQBbf1/qxLM95F6Mw3sKneO3gDDQSGCsmvY1MWlDc+6R5TgqVBuOoONji5zGQH7v9RR8IPOyple8BNlFePl1hQ8r0dOT1U6rDVh5FkNJgHYE9OJ4="}) 07 Mar 2020 12:54AM UTC 0
96.35
Travis Job 550.3
4 550.4 (TWINE_USERNAME=zope.wheelbuilder TWINE_PASSWORD={:secure=>"AyR5QxUuZKdmywiepdBG0r8hgFQfaEf2hTxOg/HiXisVNcs1sUPjephBP4MqQBbf1/qxLM95F6Mw3sKneO3gDDQSGCsmvY1MWlDc+6R5TgqVBuOoONji5zGQH7v9RR8IPOyple8BNlFePl1hQ8r0dOT1U6rDVh5FkNJgHYE9OJ4="}) 07 Mar 2020 12:55AM UTC 0
96.45
Travis Job 550.4
5 550.5 (TWINE_USERNAME=zope.wheelbuilder TWINE_PASSWORD={:secure=>"AyR5QxUuZKdmywiepdBG0r8hgFQfaEf2hTxOg/HiXisVNcs1sUPjephBP4MqQBbf1/qxLM95F6Mw3sKneO3gDDQSGCsmvY1MWlDc+6R5TgqVBuOoONji5zGQH7v9RR8IPOyple8BNlFePl1hQ8r0dOT1U6rDVh5FkNJgHYE9OJ4="}) 07 Mar 2020 12:55AM UTC 0
96.49
Travis Job 550.5
6 550.6 (TWINE_USERNAME=zope.wheelbuilder TWINE_PASSWORD={:secure=>"AyR5QxUuZKdmywiepdBG0r8hgFQfaEf2hTxOg/HiXisVNcs1sUPjephBP4MqQBbf1/qxLM95F6Mw3sKneO3gDDQSGCsmvY1MWlDc+6R5TgqVBuOoONji5zGQH7v9RR8IPOyple8BNlFePl1hQ8r0dOT1U6rDVh5FkNJgHYE9OJ4="}) 07 Mar 2020 12:56AM UTC 0
98.14
Travis Job 550.6
7 550.7 (TWINE_USERNAME=zope.wheelbuilder TWINE_PASSWORD={:secure=>"AyR5QxUuZKdmywiepdBG0r8hgFQfaEf2hTxOg/HiXisVNcs1sUPjephBP4MqQBbf1/qxLM95F6Mw3sKneO3gDDQSGCsmvY1MWlDc+6R5TgqVBuOoONji5zGQH7v9RR8IPOyple8BNlFePl1hQ8r0dOT1U6rDVh5FkNJgHYE9OJ4="}) 07 Mar 2020 12:56AM UTC 0
96.2
Travis Job 550.7
9 550.9 (TWINE_USERNAME=zope.wheelbuilder TWINE_PASSWORD={:secure=>"AyR5QxUuZKdmywiepdBG0r8hgFQfaEf2hTxOg/HiXisVNcs1sUPjephBP4MqQBbf1/qxLM95F6Mw3sKneO3gDDQSGCsmvY1MWlDc+6R5TgqVBuOoONji5zGQH7v9RR8IPOyple8BNlFePl1hQ8r0dOT1U6rDVh5FkNJgHYE9OJ4="} PURE_PYTHON=0) 07 Mar 2020 12:56AM UTC 0
97.96
Travis Job 550.9
10 550.10 (TWINE_USERNAME=zope.wheelbuilder TWINE_PASSWORD={:secure=>"AyR5QxUuZKdmywiepdBG0r8hgFQfaEf2hTxOg/HiXisVNcs1sUPjephBP4MqQBbf1/qxLM95F6Mw3sKneO3gDDQSGCsmvY1MWlDc+6R5TgqVBuOoONji5zGQH7v9RR8IPOyple8BNlFePl1hQ8r0dOT1U6rDVh5FkNJgHYE9OJ4="} PURE_PYTHON=1) 07 Mar 2020 12:56AM UTC 0
96.66
Travis Job 550.10
13 550.13 (TWINE_USERNAME=zope.wheelbuilder TWINE_PASSWORD={:secure=>"AyR5QxUuZKdmywiepdBG0r8hgFQfaEf2hTxOg/HiXisVNcs1sUPjephBP4MqQBbf1/qxLM95F6Mw3sKneO3gDDQSGCsmvY1MWlDc+6R5TgqVBuOoONji5zGQH7v9RR8IPOyple8BNlFePl1hQ8r0dOT1U6rDVh5FkNJgHYE9OJ4="} TERRYFY_PYTHON='macpython 2.7.17') 07 Mar 2020 12:59AM UTC 0
97.87
Travis Job 550.13
14 550.14 (TWINE_USERNAME=zope.wheelbuilder TWINE_PASSWORD={:secure=>"AyR5QxUuZKdmywiepdBG0r8hgFQfaEf2hTxOg/HiXisVNcs1sUPjephBP4MqQBbf1/qxLM95F6Mw3sKneO3gDDQSGCsmvY1MWlDc+6R5TgqVBuOoONji5zGQH7v9RR8IPOyple8BNlFePl1hQ8r0dOT1U6rDVh5FkNJgHYE9OJ4="} TERRYFY_PYTHON='macpython 3.5') 07 Mar 2020 12:59AM UTC 0
96.4
Travis Job 550.14
15 550.15 (TWINE_USERNAME=zope.wheelbuilder TWINE_PASSWORD={:secure=>"AyR5QxUuZKdmywiepdBG0r8hgFQfaEf2hTxOg/HiXisVNcs1sUPjephBP4MqQBbf1/qxLM95F6Mw3sKneO3gDDQSGCsmvY1MWlDc+6R5TgqVBuOoONji5zGQH7v9RR8IPOyple8BNlFePl1hQ8r0dOT1U6rDVh5FkNJgHYE9OJ4="} TERRYFY_PYTHON='macpython 3.6.2') 07 Mar 2020 01:02AM UTC 0
96.35
Travis Job 550.15
16 550.16 (TWINE_USERNAME=zope.wheelbuilder TWINE_PASSWORD={:secure=>"AyR5QxUuZKdmywiepdBG0r8hgFQfaEf2hTxOg/HiXisVNcs1sUPjephBP4MqQBbf1/qxLM95F6Mw3sKneO3gDDQSGCsmvY1MWlDc+6R5TgqVBuOoONji5zGQH7v9RR8IPOyple8BNlFePl1hQ8r0dOT1U6rDVh5FkNJgHYE9OJ4="} TERRYFY_PYTHON='macpython 3.7.0') 07 Mar 2020 01:02AM UTC 0
96.45
Travis Job 550.16
Source Files on build 550
  • List 0
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Travis Build #550
  • Pull Request #183
  • PR Base - master (#538)
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