zope.filerepresentation
¶
The interfaces defined here are used for file-system and file-system-like representations of objects, such as file-system synchronization, FTP, PUT, and WebDAV.
Documentation is hosted at https://zopefilerepresentation.readthedocs.io/
Contents:
zope.filerepresentation
API¶
File-system representation interfaces
The interfaces defined here are used for file-system and file-system-like representations of objects, such as file-system synchronization, FTP, PUT, and WebDAV.
There are three issues we need to deal with:
File system representation
Every object is either a directory or a file.
Properties
There are two kinds of properties:
Data properties
Data properties are handled directly by the object implementation.
Meta-data properties
Meta data properties are handled via annotations.
Completeness
We must have a complete lossless data representation for file-system synchronization. This is achieved through serialization of:
All annotations (not just properties), and
Extra data.
Strategies for common access mechanisms:
FTP
For getting directory info (static) information:
Use Zope DublinCore to get modification times
Show as readable if we can access a read method.
Show as writable if we can access a write method.
FTP and WebDAV
Treat as a directory if there is an adapter to
IReadDirectory
. Treat as a file otherwise.For creating objects:
Directories:
Look for an
IDirectoryFactory
adapter.Files
First look for a
IFileFactory
adapter with a name that is the same as the extention (e.g. “.pt”).Then look for an unnamed
IFileFactory
adapter.
File-system synchronization
Because this must be lossless, we will use class-based adapters for this, but we want to make it as easy as possible to use other adapters as well.
For reading, there must be a class adapter to
IReadSync
. We will then apply rules similar to those above.
Changes¶
6.0 (unreleased)¶
Add support for Python 3.11.
Drop support for Python 2.7, 3.5, 3.6.
Add support for Python 3.9, 3.10.
5.0.0 (2020-03-31)¶
Drop support for Python 3.4.
Add support for Python 3.7 and 3.8.
Ensure all objects have a consistent interface resolution order. See issue 7.
4.2.0 (2017-08-10)¶
Add support for Python 3.5 and 3.6.
Drop support for Python 2.6 and 3.3.
4.1.0 (2014-12-27)¶
Add support for PyPy3.
Add support for Python 3.4.
4.0.2 (2013-03-08)¶
Add Trove classifiers indicating CPython and PyPy support.
4.0.1 (2013-02-11)¶
Add tox.ini to release.
4.0.0 (2013-02-11)¶
Add support for Python 3.3 and PyPy.
Drop support for Python 2.4 / 2.5.
3.6.1 (2011-11-29)¶
Add undeclared
zope.schema
dependency.Remove
zope.testing
test dependency andtest
extra.
3.6.0 (2009-10-08)¶
Add
IRawReadFile
andIRawWriteFile
interfaces. These extendIReadFile
andIWritefile
, respectively, to behave pretty much like a standard Python file object with a few embellishments. This in turn allows efficient, iterator- based implementations of file reading and writing.Remove dependency on
zope.container
:IReadDirectory
andIWriteDirectory
inherit only from interfaces defined inzope.interface
andzope.interface.common.mapping
.
3.5.0 (2009-01-31)¶
Change use of
zope.app.container
tozope.container
.
3.4.0 (2007-10-02)¶
Initial Zope-independent release.
Development¶
zope.filerepresentation is hosted at GitHub:
Project URLs¶
http://pypi.python.org/pypi/zope.filerepresentation (PyPI entry and downloads)