Fixes and Enhancements since Version 0.5 alpha 3 |
Fixes and Enhancements since Version 0.5 alpha 3 |
|
|
|
- There is a new 'config.getStreamFactory' generic function, to make it easy |
|
to accept URLs, filenames, or 'naming.IStreamFactory' objects as the source |
|
of a "file". |
|
|
|
Its typical usage is just:: |
|
|
|
factory = config.getStreamFactory(self,source) |
|
stream = factory.open('t') # open for reading in text mode |
|
|
|
where 'source' is a string or a 'naming.IStreamFactory', and 'self' is a |
|
component to be used as lookup context. The returned 'factory' is a |
|
'naming.IStreamFactory' that can then be '.open()'-ed for reading, or used |
|
in other ways as needed. |
|
|
|
If you have special objects that you'd like to be able to treat as stream |
|
sources, you can register them by defining an extension, e.g.:: |
|
|
|
[config.getStreamFactory.when(MyType)] |
|
def getStreamFactory(context,source): |
|
"""Return a naming.IStreamFactory for 'source' (a 'MyType' instance)""" |
|
|
|
Wherever practical, as we encounter them, we'll be changing PEAK API's that |
|
take filenames to also accept stream sources. |
|
|
- Added an optional 'base' argument to 'naming.parseURL()', to allow parsing |
- Added an optional 'base' argument to 'naming.parseURL()', to allow parsing |
URLs relative to a base URL. For a URL scheme to support this, it must |
URLs relative to a base URL. For a URL scheme to support this, it must |
implement the new 'naming.IBaseURL' interface. See the |
implement the new 'naming.IBaseURL' interface. See the |
- Added a 'data:' URL scheme, implementing RFC 2397 (although it's not as |
- Added a 'data:' URL scheme, implementing RFC 2397 (although it's not as |
strict in its parsing of the content type and parameters as the RFC calls |
strict in its parsing of the content type and parameters as the RFC calls |
for). This is a semi-convenient way to provide configuration data in-line, |
for). This is a semi-convenient way to provide configuration data in-line, |
since a 'data:' URL can be a 'config.IStreamSource'. |
since a 'data:' URL can be a 'config.getStreamFactory()' source. |
|
|
- Added 'config.processXML()', a function that provides a high-level, |
- Added 'config.processXML()', a function that provides a high-level, |
configuration-driven interface to 'peak.util.SOX.NegotiatingParser'. This |
configuration-driven interface to 'peak.util.SOX.NegotiatingParser'. This |
you will need to rewrite appropriately. |
you will need to rewrite appropriately. |
|
|
- 'config.loadConfigFile()' and 'config.loadConfigFiles()' now accept URLs, |
- 'config.loadConfigFile()' and 'config.loadConfigFiles()' now accept URLs, |
'naming.IStreamFactory' objects, and 'config.IStreamSource' objects as well |
'naming.IStreamFactory' objects, and other 'config.getStreamFactory()' |
as filenames. This was primarily added to support use of |
targets as well as filenames. This was primarily added to support use of |
'config.packageFile()' or 'pkgfile:' URLs, in place of using |
'config.packageFile()' or 'pkgfile:' URLs, in place of using |
'config.fileNearModule()'. |
'config.fileNearModule()'. |
|
|
- There is a new 'config.IStreamSource' protocol, to make it easy to accept |
|
URLs, filenames, or 'naming.IStreamFactory' objects as the source of a |
|
"file". |
|
|
|
Its typical usage is just:: |
|
|
|
factory = config.IStreamSource(data).getFactory(self) |
|
stream = factory.open('t') # open for reading in text mode |
|
|
|
where 'data' is a string or a 'naming.IStreamFactory', and 'self' is a |
|
component to be used as lookup context. The returned 'factory' is a |
|
'naming.IStreamFactory' that can then be '.open()'-ed for reading, or used |
|
in other ways as needed. |
|
|
|
Wherever practical, as we encounter them, we'll be changing PEAK API's that |
|
take filenames to also accept stream sources. |
|
|
|
- The 'naming.IStreamFactory' interface now has an 'address' attribute, which |
- The 'naming.IStreamFactory' interface now has an 'address' attribute, which |
is the string form of the canonical URL of the target stream. This was |
is the string form of the canonical URL of the target stream. This was |
added to make it easier to e.g. report errors in a stream that's being |
added to make it easier to e.g. report errors in a stream that's being |