E&S CVS Commit: PEAK - Properties and utilities are unified at last! Both properties and

pje at eby-sarna.com pje at eby-sarna.com
Thu Oct 10 20:54:00 EDT 2002

Module Name:	PEAK
Committed By:	pje
Date:		Fri Oct 11 00:53:51 UTC 2002

Modified Files:
	PEAK/src/peak/binding: components.py once.py
	PEAK/src/peak/config: api_impl.py config_components.py interfaces.py
	PEAK/src/peak/naming: contexts.py

Log Message:
Properties and utilities are unified at last!  Both properties and
utilities are now handled by the __instance_provides__ and
__class_provides__ attributes of component classes.  This simplified the
code and interfaces for both PropertyMap and for registering dynamic
utility providers.

Property names now have an additional syntax form: 'some.prop?' which is
used as a default value that is checked after 'some.prop', 'some.*', and
'some.prop' (a second time).  This is handled transparently for you by
way of the 'setDefault()' method of 'IPropertyMap', so effectively it's an
implementation detail.

Documentation is still a little sketchy, but it should now be
straightforward to get the naming system using properties and utilities in
a harmonious way.


Fixed config.getLocal() to ensure it's working with a root component.
binding.New() can now use an import string instead of a
class/type/callable.  The object referenced by the import string will be
loaded and called as though the object itself had been used.  GlobalConfig
and LocalConfig now have 'setup()' methods that can be overridden to
create default rule and provider registrations.  This'll be handy for
making LocalConfig register a default transaction service provider, for

To view diffs of this commit, you can use the following URL(s):

To generate a diff of this commit:
cvs rdiff -r1.44 -r1.45 PEAK/src/peak/binding/components.py
cvs rdiff -r1.17 -r1.18 PEAK/src/peak/binding/once.py
cvs rdiff -r1.4 -r1.5 PEAK/src/peak/config/api_impl.py
cvs rdiff -r1.7 -r1.8 PEAK/src/peak/config/config_components.py
cvs rdiff -r1.9 -r1.10 PEAK/src/peak/config/interfaces.py
cvs rdiff -r1.15 -r1.16 PEAK/src/peak/naming/contexts.py

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

More information about the source-changes mailing list