Releases: mutating/pristan
Release list
0.0.24
0.0.23
A potential deadlock was eliminated in a situation where two different slots recursively call each other.
Closes #28.
0.0.22
A purely technical stability release with no major new features:
- Added many docstrings for existing tests.
- Added several thread-safety tests.
- Improved thread safety of slots: most public operations are now performed under locks.
- Added a warning suggesting that if the
.oneattribute is used when retrieving an item from a slot, it is recommended to set theunique=Trueflag for the slot, since your code effectively expects uniqueness. - Minor code refactoring was performed.
0.0.21
Now, before checking the contents of a plugin slot and when determining the number of plugins in it, lazy loading of entry points is triggered.
0.0.20
A new dynamic attribute, .one, was added to slots and slot selections; it contains a selection of exactly one plugin. Accessing it will raise an exception if there is more than one plugin in the slot or selection.
This feature is very similar to how things used to be done:
selection = some_slot[‘plugin_name’]
if not selection:
raise SomeError(‘I need some plugin, sorry.’)
if len(selection) > 1:
raise SomeError(‘I need only one plugin!’)
selection()Now, the complete equivalent of the code above would look like this:
some_slot[‘plugin_name’].one()0.0.19
Added the ability to enforce the requirement that all plugin names be explicitly specified at the slot level.
0.0.18
Added the ability to cast slots to bool.
0.0.17
The ability to specify not just one, but multiple expected signatures for a slot was added. In this case, functions used as slots and plugins must match not just one, but all of the specified signatures at the same time.
Closes #19.
0.0.16
Small but important update: @slot(..., unique=True) can now enforce unique requested plugin names at the slot level. By default duplicate names still get suffixed as before, but slots that require stricter registration can now reject duplicates explicitly.
Closes #16
0.0.15
Fixed a bug where, when removing a plugin from a slot, only its metadata was deleted, but not the plugin itself.