This repository has been archived by the owner on Jun 4, 2023. It is now read-only.
release 4.46
Compatibility issues:
The change mentioned below about @expose
now being required by default requires a change in your (server-)code or configuration. Read on for details.
Using @expose(...)
on a class to set the instance_mode
or/and instance_creator
for that
class, also exposes ALL methods of that class. That is an unintended side-effect that will be fixed
in the next Pyro version. You can already fix your code right now to prepare for this. Read on for details.
@Pyro4.behavior
decorator added that should now be used to set instance_mode and instance_creator instead of
using@Pyro4.expose
. You can still use@expose
in this release, but its arguments will be removed
in the next Pyro version. So by then you have to have updated your code or it won't run anymore.
The fix is simple: replace all occurences of@expose(...)
where you set theinstance_mode
or/andinstance_creator
on your Pyro class, by@behavior(...)
-- and add new@expose
decorations to the class or the methods
as required to properly expose them. Also read the next bullet.- Backwards incompatible behavior change: in the spirit of 'secure by default', it's now required to use
@expose
on things you want to expose via Pyro. This is because the REQUIRE_EXPOSE config item is now True by default.
The "servers" chapter contains details about this and how you can best approach this upgrade issue. - blobtransfer example added.
- improved the docs on binary data transfer a bit.
- code now uses set literals instead of old fashioned set([...])
- removed the way outdated 'upgrading from Pyro3' chapter from the documentation.
- Pyro4.util.get_exposed_members now has a cache which speeds up determining object metadata enormously on subsequent connections.
- added paragraph to server chapter in documentation about how to expose classes without changing the source code (such as 3rd party libraries)
- added thirdpartylib example for the above