Commit Graph

167 Commits

Author SHA1 Message Date
Michael Howitz c1b436de3f Back to development: 4.5.1
[skip ci]
2018-04-19 08:27:50 +02:00
Michael Howitz f0a6a10a94 Preparing release 4.5.0
[skip ci]
2018-04-19 08:24:35 +02:00
Michael Howitz aed246cd0d Add change log entry for #115 fixing #114. 2018-04-19 08:23:32 +02:00
Joni Orponen bad4827689 Bump to 4.5.0. 2017-12-14 16:40:49 +01:00
‮rekcäH nitraM‮ d50e3d4bed Allow Registering and unregistering instance methods as listeners (#102)
* Fixes #12 - registering instance methods as listeners doesn’t allow to easily unregister them as the registry tries to find the handler with 'is' but it should use '==' to allow the python BoundMethod wrapper (which is a new instance every time instance.$methodname is accessed).
2017-11-28 08:28:40 +01:00
Marius Gedminas 3ce6b0c929 Back to development: 4.4.4 2017-09-22 10:46:26 +03:00
Marius Gedminas 8d2d94ddc6 Preparing release 4.4.3 2017-09-22 10:45:07 +03:00
Jason Madden 32e26fc242
Add change note. Fixes #100 2017-09-21 05:54:37 -05:00
Maxim Avanov 5162674b83 Drop __annotations__ in interface declarations 2017-09-01 16:29:44 +01:00
Jason Madden a34e5cbaa8
Back to development: 4.4.3 2017-06-14 17:30:04 -05:00
Jason Madden db06631f38
Preparing release 4.4.2 2017-06-14 17:29:25 -05:00
Jason Madden 751a950885
Fix the cache getting out of sync with _utility_registrations.
Fixes #93
2017-06-14 08:51:43 -05:00
Jason Madden 9de7239b28
Fix #85 by implementing __reduce__ to omit _v_ attributes.
This is an alternative to #86 and was suggested by @mgedmin in #85.

There are tests to be sure this works for subclasses like Pyramid's
Registry that extend dict too.

This doesn't change the pickle format, we were storing the output of
object.__reduce__ previously.
2017-06-14 06:51:22 -05:00
Jim Fulton 47cf89eee7 Back to development: 4.4.2 2017-05-13 09:28:54 -04:00
Jim Fulton 1fa2e84aba Preparing release 4.4.1 2017-05-13 09:28:35 -04:00
Jim Fulton c95f1e2e73 typo 2017-05-12 17:50:52 -04:00
Jim Fulton 38d1c82de8 Simply the caching of utility-registration data. In addition to
simplification, avoids spurious test failures when checking for
leaks in tests with persistent registries.
2017-05-12 17:20:59 -04:00
Tres Seaver 81f50ca160 Raise ValueError if non-text name passed to adapter registry methods.
Prevents corruption of lookup cache.

Alternative to fix proposed in #75.
2017-05-04 05:50:35 -04:00
Tres Seaver 33c4d9ce39 svb 2017-04-21 17:03:53 -04:00
Tres Seaver e57f5ddfaa Prep 4.4.0 release. 2017-04-21 17:03:14 -04:00
Tres Seaver f1b3346f2e Bump minor version due to new Python version support. 2017-04-21 17:00:57 -04:00
Jason Madden b8a36f1b6a Add support for Python 3.6. (#74)
* Add support for Python 3.6.

Also use macpython for all the mac builds. See
zopefoundation/persistent#59

* Install the test extra with pip.

hopefully this avoids the SSL issue seen in macpython
3.6 (https://travis-ci.org/zopefoundation/zope.interface/jobs/192367647)

Also update appveyor.yml
2017-01-18 10:33:35 -06:00
Jason Madden 5c08781ce9
Don't redefine METH_KEYWORDS
Instead, use the intended METH_KEYWORDS | METH_VARARGS spelling.

Fixes #71
2017-01-05 07:06:42 -06:00
Tres Seaver 947bd6da06 svb 2016-12-13 18:04:23 -05:00
Tres Seaver 3217ecd3e7 Prep 4.3.3 release. 2016-12-13 18:03:17 -05:00
Tres Seaver 03d1303915 Garden changelog.
[ci skip]
2016-12-13 18:00:43 -05:00
Jean Jordaan 188d97b39d Merge branch 'master' of github.com:zopefoundation/zope.interface
Conflicts:
	CHANGES.rst

I think that was the simplest conflict resolution ever :-]
2016-12-06 10:24:23 +07:00
Tres Seaver 53246e5362 Fix C optimizations broken on Py3k.
- The bare import of '_zope_c_optimizations' prevented them from being
  used.

- After enabling them via absolute imports, they would fail due to
  http://bugs.python.org/issue15657.

Fixes #60.
2016-11-15 14:04:50 -05:00
Jean Jordaan f4a1c48698 Make changelog note more informative 2016-10-16 13:32:47 -04:00
Jean Jordaan 4631968f79 Changelog note 2016-10-16 12:51:33 -04:00
Marius Gedminas bcc55d4038 Back to development: 4.3.3 2016-09-05 09:11:20 +03:00
Marius Gedminas f407ba133f Preparing release 4.3.2 2016-09-05 09:11:02 +03:00
Jason Madden c0e980b4b9
Fix equality testing of implementedBy objects that have been proxied. Fixes #55. 2016-09-02 18:20:25 -05:00
Michael Howitz 69cacf26ff Back to development: 4.4.0 2016-08-31 14:45:05 +02:00
Michael Howitz f644e237c8 Preparing release 4.3.1 2016-08-31 14:44:31 +02:00
Jason Madden 14c8b29660 Support Components subclasses that are not hashable. (#54)
* Support Components subclasses that are not hashable.

Fixes #53.
2016-08-31 14:41:51 +02:00
Michael Howitz dae04c304b Back to development: 4.4.0 2016-08-31 09:19:40 +02:00
Michael Howitz aaeb59c64e Preparing release 4.3.0 2016-08-31 09:18:48 +02:00
Jason Madden 58ef487292
Use dictionary lookups for testing subscribed status.
Fixes #46.

Benchmarks show a dramatic improvement; not quite as good as the
demonstration in #46 because the implementation had to be a bit more
complex to properly handle unregistration, but still very good. Here it
is with 20,000 items already registered:
```
   %time add_to_reg(reg, 1000)
   CPU times: user 190 ms, sys: 19.3 ms, total: 209 ms
   Wall time: 203 ms
```

Here's a profile with about 100,000 utilities registered:
```
 %prun add_to_reg(reg, 1000)
         80005 function calls (79005 primitive calls) in 0.713 seconds

   Ordered by: internal time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
     1000    0.596    0.001    0.621    0.001 adapter.py:202(subscribe)
    12000    0.016    0.000    0.019    0.000 interface.py:518(__hash__)
     1000    0.010    0.000    0.709    0.001 registry.py:206(registerUtility)
3000/2000    0.009    0.000    0.014    0.000 interface.py:255(interfaces)
     2000    0.008    0.000    0.022    0.000 adapter.py:637(changed)
     1000    0.008    0.000    0.025    0.000 registry.py:498(_getUtilityProvided)
     9000    0.008    0.000    0.017    0.000 {method 'get' of 'dict' objects}
     1000    0.008    0.000    0.027    0.000 adapter.py:102(register)
     2000    0.006    0.000    0.008    0.000 adapter.py:450(changed)
     1000    0.005    0.000    0.663    0.001 registry.py:145(registerUtility)
```

I was very careful not to change the pickle at all.

zope.interface and zope.component tests have been run and both pass. (It
was necessary to account for the underlying objects changing because of
the way zope.component cleans up after tests.)
2016-08-19 08:18:39 -05:00
Jason Madden 2081db253c
Make setuptools a hard dep of setup.py
Fixes #13
Fixes #14
2016-08-04 06:54:31 -05:00
Jason Madden bbf1a3d479
Make declarations.Implements sortable.
Fixes #42
2016-08-03 10:34:31 -05:00
Tres Seaver d88751d4cf svb 2016-06-10 10:00:49 -04:00
Tres Seaver 13eb0ed599 Prep 4.2.0 release. 2016-06-10 09:58:29 -04:00
Tres Seaver 0a0dad5c0b Drop support for Python 3.2. 2016-03-23 17:33:22 -04:00
Tres Seaver 582cc3d340 Drop support for Python 2.6.
Note explicit support for Python 3.5.

Bump next release for semver.
2016-03-09 13:20:07 -05:00
Marius Gedminas baa6844f11 Back to development: 4.1.4 2015-10-05 10:35:42 +03:00
Marius Gedminas d99c28ae9f Preparing release 4.1.3 2015-10-05 10:34:51 +03:00
Marius Gedminas 49348bf625 Update changelog 2015-10-05 10:32:30 +03:00
Tres Seaver 937b7a1125 svb 2014-12-27 19:47:53 -05:00
Tres Seaver 05a1200e58 Prep 4.1.2 release. 2014-12-27 19:46:25 -05:00
Tres Seaver 8367145f31 Normalize ReST, etc. 2014-12-27 19:42:16 -05:00
Tres Seaver e804db87ea Flesh out changelog entry for 'asReStructuredText'. 2014-10-30 14:01:36 -04:00
Michael McNeil Forbes a85a4b0f44 Updated CHANGES.rst. 2014-10-30 10:30:02 -07:00
Tres Seaver 438df9bc2c svb 2014-03-19 14:35:09 -04:00
Tres Seaver 1f6c141ac6 Prep 4.1.1 release. 2014-03-19 14:34:11 -04:00
Tres Seaver abd2098a6a Note explicit support for Python 3.4. 2014-03-17 16:08:08 -04:00
Stephan Richter f600186b43 Back to development: 4.1.1 2014-02-05 20:22:06 -05:00
Stephan Richter 37b723e825 Preparing release 4.1.0 2014-02-05 20:21:46 -05:00
Stephan Richter 79a2662003 Added ``@named(name)`` declaration.
The decorator specifies the component name, so it does not have to be
passed in during registration. This in turn allows developers to define
component names once globally and use it everywhere, especially when
using ZCML where the name had to be specified a second time.
2014-02-04 23:21:42 -05:00
Tres Seaver d76f739a0e Update to buildout 2.2's bootstrap. 2013-07-09 20:34:55 -04:00
Albertas Agejevas 1044abff6a Back to development: 4.0.6 2013-02-28 18:51:36 +02:00
Albertas Agejevas b4bf5417ca Preparing release 4.0.5 2013-02-28 18:51:03 +02:00
Albertas Agejevas d2c77ef641 Update changelog. 2013-02-28 18:50:40 +02:00
Stephan Richter 019a065a5f Back to development: 4.0.5 2013-02-21 01:21:58 -05:00
Stephan Richter f155bad939 Preparing release 4.0.4 2013-02-21 01:19:52 -05:00
Stephan Richter 4c51651d04 - Fixed a bug that was revealed by porting zope.traversing. During a loop, the
loop body modified a weakref dict causing a ``RuntimeError`` error
2013-02-21 01:18:58 -05:00
Tres Seaver bb9e803534 Nest into Github.
- Denominate files to indicate ReST.

- Drop .bzrignore.

- Add MANIFEST.in FBO users w/o setuptools_git.
2013-01-11 14:37:23 -05:00