New Features and Bug Fixes since v0.2, preview 1 |
Fixes and Enhancements since Version 0.5 alpha 1 |
|
|
* Added 'SEF.bindToParent()' and 'SEF.bindToNames()' specifiers to allow |
Changed, Enhanced, or Newly Deprecated Features |
more flexible component parameter bindings. |
|
|
|
* Fixed the base class "rebind by name" bugs in module inheritance, and |
- 'binding.bindTo()' now accepts a 'default=' argument, whose value will be |
updated the documentation to more clearly reflect what it is that |
used in case of a 'NameNotFound' error. |
metaclass generation and module inheritance does and does not do. Added |
|
test cases to prevent regression of the rebind-by-name problem. |
|
|
|
* The 'setup.py' script features a new command, 'happy', which can be used |
- DEPRECATED 'naming.ParsedURL'. It will disappear in 0.5 alpha 3 or beta. |
to generate the API reference docs, and this command runs as part of the |
It is replaced by the new 'naming.URL.Base'. The 'naming.URL' package |
'sdist' command to build source distributions. |
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. |
|
|
* The API reference docs in the source distribution has been moved from |
For more complex URL classes, the '__init__' methods go away, 'parse' |
the 'doc' directory to 'docs/html/reference'. |
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 |
|
'binding.Once(...,activateUponAssembly=True)'. |
|
|
|
- Removed 'LOG_XYZ' convenience functions from 'peak.api', and refactored |
|
'peak.running.logs' to use a PEP 282-like interface, 'running.ILogger'. |
|
Under the new scheme, messages must be sent to a specific entry point |
|
(e.g. 'self.logger.warning("foo")'). Components can bind an attribute |
|
directly to a logger object, or via configuration properties or utilities. |
|
PEAK components that do logging all define a 'logger' attribute, bound |
|
to a configuration property in the 'peak.logs' property namespace. By |
|
a default in 'peak.ini', 'peak.logs.*' is configured to output messages |
|
of 'WARNING' priority or higher to 'sys.stderr'. |
|
|
|
For compatibility with the PEP 282 logging package, a 'logging.logger:' |
|
URL scheme has been added; looking up the URL '"logging.logger:foo.bar"' |
|
is equivalent to 'logging.getLogger("foo.bar")', unless the 'logging' |
|
package is not available, in which case the configuration property |
|
'peak.logs.foo.bar' will be looked up in the target context of the |
|
lookup. Optionally, you can configure the 'logging.logger' URL scheme so |
|
that it only uses PEAK loggers, and never uses the PEP 282 loggers. |
|
|
|
- Added 'binding.metamethod()' wrapper for metaclass methods that might |
|
not be accessible from their instances if the instances (classes) also |
|
defined the method for *their* instances. You must now use this wrapper |
|
on any such metaclass-defined methods, as PEAK no longer works around |
|
this via the 'x.__class__.foo(x,...)' trick that was used previously. |
|
In particular, if you have metaclass definitions of 'getParentComponent', |
|
'_getConfigData', 'getComponentName', or 'notifyUponAssembly', you need |
|
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 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 model.Element not getting parent component set when passed as a |
|
constructor argument. |
|
|
|
- Fixed property/utility lookups not working correctly on model.* |
|
objects. |
|
|
|
- Fixed IndentedStream generating all-whitespace lines |
|
|
* Added 'CHANGES.txt' file. |
|