Fixes and Enhancements since Version 0.5 alpha 1 |
Fixes and Enhancements since Version 0.5 alpha 1 |
|
|
- Refactored naming.ParsedURL to be a peak.model.Struct; this means that |
Changed, Enhanced, or Newly Deprecated Features |
existing ParsedURL subclasses will need to be revised if they used fields |
|
other than 'scheme' and 'body'. See PEAK's ParsedURL subclasses for |
- DEPRECATED use of '__implements__' and '__class_implements__' to declare |
examples of the needed changes. Mainly, '__init__' methods go away, |
support for interfaces. Use 'implements()', 'classProvides()', |
'parse' methods change slightly, and explicit field definitions (using |
'directlyProvides()', 'moduleProvides()', etc. to do this now; they |
'model.structField' or similar) are required. |
are now available automatically from 'peak.api'. |
|
|
|
- The signatures of the 'getObjectInstance()', 'getStateToBind()', and |
|
'getURLContext()' methods in the 'peak.naming' package have changed, to |
|
place the context or parent component as the first, non-optional argument. |
|
(If you don't know what these methods are for, you don't need to do anything |
|
about this, as they are part of the naming package's extensibility |
|
framework.) |
|
|
|
- 'EigenRegistry' and 'PropertyMap' no longer attempt to figure out whether |
|
implied (i.e. inherited) interfaces are more or less general with respect |
|
to a previous registration. This was behavior that emulated Zope adapter |
|
registries, but what we really wanted was more akin to a Zope "type" |
|
registry. The only parts of the test suite that used the old behavior |
|
were the tests specifically written to ensure that behavior! |
|
|
|
- 'binding.bindTo()' now accepts a 'default=' argument, whose value will be |
|
used in case of a 'NameNotFound' error. |
|
|
|
- DEPRECATED 'naming.ParsedURL'. It will disappear in 0.5 alpha 3 or beta. |
|
It is replaced by the new 'naming.URL.Base'. The 'naming.URL' package |
|
provides a new URL parsing framework based on 'peak.model'. Upgrading from |
|
'ParsedURL' to 'URL.Base' is trivial for ParsedURL subclasses that used |
|
only the 'scheme' and 'body' fields, and in fact may not require any |
|
changes except for the choice of base class. |
|
|
|
For more complex URL classes, the '__init__' methods go away, 'parse' |
|
methods change slightly, and explicit field definitions (using |
|
'model.structField' or similar) are required. See PEAK's 'URL.Base' |
|
subclasses for examples. There is also a sophisticated parsing and |
|
formatting framework (see the 'peak.naming.URL' and 'peak.util.fmtparse' |
|
modules) that can be used in place of the old regex-based approach. |
|
|
|
- Added 'peak.util.fmtparse', a parsing and formatting framework, and |
|
integrated it with 'peak.model' so that any element type can have a |
|
syntax for parsing from, or formatting to, a string. |
|
|
- Added 'binding.whenAssembled(...)' as syntax sugar for |
- Added 'binding.whenAssembled(...)' as syntax sugar for |
'binding.Once(...,activateUponAssembly=True)'. |
'binding.Once(...,activateUponAssembly=True)'. |
'_getConfigData', 'getComponentName', or 'notifyUponAssembly', you need |
'_getConfigData', 'getComponentName', or 'notifyUponAssembly', you need |
to wrap them with 'binding.metamethod' now. |
to wrap them with 'binding.metamethod' now. |
|
|
|
- Made 'NOT_GIVEN' and 'NOT_FOUND' recognizable by humans (they 'repr' |
|
and 'str' to their names) and by Python (they can be pickled, and |
|
when restored they come back as the same object). |
|
|
|
|
|
Corrected Problems |
|
|
|
- Fixed 'naming.lookup()' and related APIs not setting the parent component |
|
of created objects without an explicitly supplied 'creationParent' keyword |
|
argument. This used to "sort of work" when we had implicit configuration |
|
parents, but was broken when we went "all explicit" for 0.5 alpha 1. |
|
|
|
- Fixed a problem where initializing single-valued immutable fields of |
|
'peak.model' types did not perform type/value normalization. |
|
|
|
- Fixed a problem where bindTo would use the attribute name as the |
|
default value for a lookup, if the requested name/property/utility |
|
was not found. |
|
|
- Fixed 'mof2py' generator script not working |
- Fixed 'mof2py' generator script not working |
|
|
- Fixed model.Element not getting parent component set when passed as a |
- Fixed model.Element not getting parent component set when passed as a |
|
|
- Fixed IndentedStream generating all-whitespace lines |
- Fixed IndentedStream generating all-whitespace lines |
|
|
- Made 'NOT_GIVEN' and 'NOT_FOUND' recognizable by humans (they 'repr' |
|
and 'str' to their names) and by Python (they can be pickled, and |
|
when restored they come back as the same object). |
|
|
|