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 (2023-01-14)¶
Drop support for Python 2.7, 3.5, 3.6.
Add support for Python 3.9, 3.10, 3.11.
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)