[Checkins] SVN: Products.ZopeVersionControl/trunk/ Move zope 3
interfaces to new file. Old zope 2 interfaces were only used
internally, so just remove them
Laurence Rowe
l at lrowe.co.uk
Tue May 20 12:33:28 EDT 2008
Log message for revision 86854:
Move zope 3 interfaces to new file. Old zope 2 interfaces were only used internally, so just remove them
Changed:
U Products.ZopeVersionControl/trunk/CHANGES.txt
D Products.ZopeVersionControl/trunk/Products/ZopeVersionControl/IVersionControl.py
A Products.ZopeVersionControl/trunk/Products/ZopeVersionControl/interfaces.py
U Products.ZopeVersionControl/trunk/Products/ZopeVersionControl/nonversioned.py
-=-
Modified: Products.ZopeVersionControl/trunk/CHANGES.txt
===================================================================
--- Products.ZopeVersionControl/trunk/CHANGES.txt 2008-05-20 14:26:06 UTC (rev 86853)
+++ Products.ZopeVersionControl/trunk/CHANGES.txt 2008-05-20 16:33:26 UTC (rev 86854)
@@ -5,6 +5,7 @@
------------------
- Purge old zope2 Interface interfaces for Zope 2.12 compatibility.
+ Note that they are internal to the implementation of this module.
1.0a1 (2008/05/03)
------------------
Deleted: Products.ZopeVersionControl/trunk/Products/ZopeVersionControl/IVersionControl.py
===================================================================
--- Products.ZopeVersionControl/trunk/Products/ZopeVersionControl/IVersionControl.py 2008-05-20 14:26:06 UTC (rev 86853)
+++ Products.ZopeVersionControl/trunk/Products/ZopeVersionControl/IVersionControl.py 2008-05-20 16:33:26 UTC (rev 86854)
@@ -1,269 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.0 (ZPL). A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE
-#
-##############################################################################
-
-__version__='$Revision: 1.7 $'[11:-2]
-
-from zope.interface import Interface
-
-
-class IVersionControl(Interface):
- """The version control interface serves as the main API for version
- control operations. The interface hides most of the details of
- version data storage and retrieval.
-
- In Zope 3, the version control interface will probably be implemented
- by a version control service. In the meantime, it may be implemented
- directly by repository implementations (or other things, like CMF
- tools).
-
- The goal of this version of the version control interface is to
- support simple linear versioning with support for labelled versions.
- Future versions or extensions of this interface will likely support
- more advanced version control features such as concurrent lines of
- descent (activities) and collection versioning."""
-
- def isAVersionableResource(object):
- """
- Returns true if the given object is a versionable resource.
-
- Permission: public
- """
-
- def isUnderVersionControl(object):
- """
- Returns true if the given object is under version control.
-
- Permission: public
- """
-
- def isResourceUpToDate(object, require_branch=0):
- """
- Returns true if a resource is based on the latest version. Note
- that the latest version is in the context of any activity (branch).
-
- If the require_branch flag is true, this method returns false if
- the resource is updated to a particular version, label, or date.
- Useful for determining whether a call to checkoutResource()
- will succeed.
-
- Permission: public
- """
-
- def isResourceChanged(object):
- """
- Return true if the state of a resource has changed in a transaction
- *after* the version bookkeeping was saved. Note that this method is
- not appropriate for detecting changes within a transaction!
-
- Permission: public
- """
-
- def getVersionInfo(object):
- """
- Return the VersionInfo associated with the given object. The
- VersionInfo object contains version control bookkeeping information.
- If the object is not under version control, a VersionControlError
- will be raised.
-
- Permission: public
- """
-
- def applyVersionControl(object, message=None):
- """
- Place the given object under version control. A VersionControlError
- will be raised if the object is already under version control.
-
- After being placed under version control, the resource is logically
- in the 'checked-in' state.
-
- If no message is passed the 'Initial checkin.' message string is
- written as the message log entry.
-
- Permission: Use version control
- """
-
- def checkoutResource(object):
- """
- Put the given version-controlled object into the 'checked-out'
- state, allowing changes to be made to the object. If the object is
- not under version control or the object is already checked out, a
- VersionControlError will be raised.
-
- Permission: Use version control
- """
-
- def checkinResource(object, message=''):
- """
- Check-in (create a new version) of the given object, updating the
- state and bookkeeping information of the given object. The optional
- message should describe the changes being committed. If the object
- is not under version control or is already in the checked-in state,
- a VersionControlError will be raised.
-
- Permission: Use version control
- """
-
- def uncheckoutResource(object):
- """
- Discard changes to the given object made since the last checkout.
- If the object is not under version control or is not checked out,
- a VersionControlError will be raised.
- """
-
- def updateResource(object, selector=None):
- """
- Update the state of the given object to that of a specific version
- of the object. The object must be in the checked-in state to be
- updated. The selector must be a string (version id, activity id,
- label or date) that is used to select a version from the version
- history.
-
- Permission: Use version control
- """
-
- def labelResource(object, label, force=None):
- """
- Associate the given resource with a label. If force is true, then
- any existing association with the given label will be removed and
- replaced with the new association. If force is false and there is
- an existing association with the given label, a VersionControlError
- will be raised.
-
- Permission: Use version control
- """
-
- def getVersionOfResource(history_id, selector):
- """
- Given a version history id and a version selector, return the
- object as of that version. Note that the returned object has no
- acquisition context. The selector must be a string (version id,
- activity id, label or date) that is used to select a version
- from the version history.
-
- Permission: Use version control
- """
-
- def getVersionIds(object):
- """
- Return a sequence of the (string) version ids corresponding to the
- available versions of an object. This should be used by UI elements
- to populate version selection widgets, etc.
-
- Permission: Use version control
- """
-
- def getLabelsForResource(object):
- """
- Return a sequence of the (string) labels corresponding to the
- versions of the given object that have been associated with a
- label. This should be used by UI elements to populate version
- selection widgets, etc.
-
- Permission: Use version control
- """
-
- def getLogEntries(object):
- """
- Return a sequence of LogEntry objects (most recent first) that
- are associated with a version-controlled object.
-
- Permission: Use version control
- """
-
-class IVersionInfo(Interface):
- """The IVersionInfo interface provides access to version control
- bookkeeping information. The fields provided by this interface
- are:
-
- timestamp - a float (time.time() format) value indicating the
- time that the bookkeeping information was created.
-
- history_id - the id of the version history related to the version
- controlled resource.
-
- version_id - the version id that the version controlled resource
- is based upon.
-
- status - an enumerated value indicating the status of the version
- controlled resource. This value is one of the VersionInfo class
- constants CHECKED_IN or CHECKED_OUT.
-
- sticky - sticky tag information used internally by the version
- control implementation.
-
- user_id - the id of the effective user at the time the bookkeeping
- information was created.
- """
-
-class ILogEntry(Interface):
- """The ILogEntry interface provides access to the information in an
- audit log entry. The fields provided by this interface are:
-
- timestamp - a float (time.time() format) value indicating the
- time that the log entry was created.
-
- version_id - the version id of the version controlled resource
- related to the log entry.
-
- action - an enumerated value indicating the action that was taken.
- This value is one of the LogEntry class constants ACTION_CHECKOUT,
- ACTION_CHECKIN, ACTION_UNCHECKOUT, ACTION_UPDATE.
-
- message - a string message provided by the user at the time of the
- action. This string may be empty.
-
- user_id - the id of the user causing the audited action.
-
- path - the path to the object upon which the action was taken.
-
- """
-
-
-class INonVersionedData(Interface):
- """Controls what parts of an object fall outside version control.
-
- Containerish objects implement this interface to allow the items they
- contain to be versioned independently of the container.
- """
-
- def listNonVersionedObjects():
- """Returns a list of subobjects that should not be pickled.
-
- The objects in the list must not be wrapped, because only the
- identity of the objects will be considered. The version
- repository uses this method to avoid cloning subobjects that
- will soon be removed by removeNonVersionedData.
- """
-
- def removeNonVersionedData():
- """Removes the non-versioned data from this object.
-
- The version repository uses this method before storing an
- object in the version repository.
- """
-
- def getNonVersionedData():
- """Returns an opaque object containing the non-versioned data.
-
- The version repository uses this method before reverting an
- object to a revision.
- """
-
- def restoreNonVersionedData(dict):
- """Restores non-versioned data to this object.
-
- The version repository uses this method after reverting an
- object to a revision.
- """
-
-IVersionedContainer = INonVersionedData
Copied: Products.ZopeVersionControl/trunk/Products/ZopeVersionControl/interfaces.py (from rev 86853, Products.ZopeVersionControl/trunk/Products/ZopeVersionControl/IVersionControl.py)
===================================================================
--- Products.ZopeVersionControl/trunk/Products/ZopeVersionControl/interfaces.py (rev 0)
+++ Products.ZopeVersionControl/trunk/Products/ZopeVersionControl/interfaces.py 2008-05-20 16:33:26 UTC (rev 86854)
@@ -0,0 +1,269 @@
+##############################################################################
+#
+# Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.0 (ZPL). A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE
+#
+##############################################################################
+
+__version__='$Revision: 1.7 $'[11:-2]
+
+from zope.interface import Interface
+
+
+class IVersionControl(Interface):
+ """The version control interface serves as the main API for version
+ control operations. The interface hides most of the details of
+ version data storage and retrieval.
+
+ In Zope 3, the version control interface will probably be implemented
+ by a version control service. In the meantime, it may be implemented
+ directly by repository implementations (or other things, like CMF
+ tools).
+
+ The goal of this version of the version control interface is to
+ support simple linear versioning with support for labelled versions.
+ Future versions or extensions of this interface will likely support
+ more advanced version control features such as concurrent lines of
+ descent (activities) and collection versioning."""
+
+ def isAVersionableResource(object):
+ """
+ Returns true if the given object is a versionable resource.
+
+ Permission: public
+ """
+
+ def isUnderVersionControl(object):
+ """
+ Returns true if the given object is under version control.
+
+ Permission: public
+ """
+
+ def isResourceUpToDate(object, require_branch=0):
+ """
+ Returns true if a resource is based on the latest version. Note
+ that the latest version is in the context of any activity (branch).
+
+ If the require_branch flag is true, this method returns false if
+ the resource is updated to a particular version, label, or date.
+ Useful for determining whether a call to checkoutResource()
+ will succeed.
+
+ Permission: public
+ """
+
+ def isResourceChanged(object):
+ """
+ Return true if the state of a resource has changed in a transaction
+ *after* the version bookkeeping was saved. Note that this method is
+ not appropriate for detecting changes within a transaction!
+
+ Permission: public
+ """
+
+ def getVersionInfo(object):
+ """
+ Return the VersionInfo associated with the given object. The
+ VersionInfo object contains version control bookkeeping information.
+ If the object is not under version control, a VersionControlError
+ will be raised.
+
+ Permission: public
+ """
+
+ def applyVersionControl(object, message=None):
+ """
+ Place the given object under version control. A VersionControlError
+ will be raised if the object is already under version control.
+
+ After being placed under version control, the resource is logically
+ in the 'checked-in' state.
+
+ If no message is passed the 'Initial checkin.' message string is
+ written as the message log entry.
+
+ Permission: Use version control
+ """
+
+ def checkoutResource(object):
+ """
+ Put the given version-controlled object into the 'checked-out'
+ state, allowing changes to be made to the object. If the object is
+ not under version control or the object is already checked out, a
+ VersionControlError will be raised.
+
+ Permission: Use version control
+ """
+
+ def checkinResource(object, message=''):
+ """
+ Check-in (create a new version) of the given object, updating the
+ state and bookkeeping information of the given object. The optional
+ message should describe the changes being committed. If the object
+ is not under version control or is already in the checked-in state,
+ a VersionControlError will be raised.
+
+ Permission: Use version control
+ """
+
+ def uncheckoutResource(object):
+ """
+ Discard changes to the given object made since the last checkout.
+ If the object is not under version control or is not checked out,
+ a VersionControlError will be raised.
+ """
+
+ def updateResource(object, selector=None):
+ """
+ Update the state of the given object to that of a specific version
+ of the object. The object must be in the checked-in state to be
+ updated. The selector must be a string (version id, activity id,
+ label or date) that is used to select a version from the version
+ history.
+
+ Permission: Use version control
+ """
+
+ def labelResource(object, label, force=None):
+ """
+ Associate the given resource with a label. If force is true, then
+ any existing association with the given label will be removed and
+ replaced with the new association. If force is false and there is
+ an existing association with the given label, a VersionControlError
+ will be raised.
+
+ Permission: Use version control
+ """
+
+ def getVersionOfResource(history_id, selector):
+ """
+ Given a version history id and a version selector, return the
+ object as of that version. Note that the returned object has no
+ acquisition context. The selector must be a string (version id,
+ activity id, label or date) that is used to select a version
+ from the version history.
+
+ Permission: Use version control
+ """
+
+ def getVersionIds(object):
+ """
+ Return a sequence of the (string) version ids corresponding to the
+ available versions of an object. This should be used by UI elements
+ to populate version selection widgets, etc.
+
+ Permission: Use version control
+ """
+
+ def getLabelsForResource(object):
+ """
+ Return a sequence of the (string) labels corresponding to the
+ versions of the given object that have been associated with a
+ label. This should be used by UI elements to populate version
+ selection widgets, etc.
+
+ Permission: Use version control
+ """
+
+ def getLogEntries(object):
+ """
+ Return a sequence of LogEntry objects (most recent first) that
+ are associated with a version-controlled object.
+
+ Permission: Use version control
+ """
+
+class IVersionInfo(Interface):
+ """The IVersionInfo interface provides access to version control
+ bookkeeping information. The fields provided by this interface
+ are:
+
+ timestamp - a float (time.time() format) value indicating the
+ time that the bookkeeping information was created.
+
+ history_id - the id of the version history related to the version
+ controlled resource.
+
+ version_id - the version id that the version controlled resource
+ is based upon.
+
+ status - an enumerated value indicating the status of the version
+ controlled resource. This value is one of the VersionInfo class
+ constants CHECKED_IN or CHECKED_OUT.
+
+ sticky - sticky tag information used internally by the version
+ control implementation.
+
+ user_id - the id of the effective user at the time the bookkeeping
+ information was created.
+ """
+
+class ILogEntry(Interface):
+ """The ILogEntry interface provides access to the information in an
+ audit log entry. The fields provided by this interface are:
+
+ timestamp - a float (time.time() format) value indicating the
+ time that the log entry was created.
+
+ version_id - the version id of the version controlled resource
+ related to the log entry.
+
+ action - an enumerated value indicating the action that was taken.
+ This value is one of the LogEntry class constants ACTION_CHECKOUT,
+ ACTION_CHECKIN, ACTION_UNCHECKOUT, ACTION_UPDATE.
+
+ message - a string message provided by the user at the time of the
+ action. This string may be empty.
+
+ user_id - the id of the user causing the audited action.
+
+ path - the path to the object upon which the action was taken.
+
+ """
+
+
+class INonVersionedData(Interface):
+ """Controls what parts of an object fall outside version control.
+
+ Containerish objects implement this interface to allow the items they
+ contain to be versioned independently of the container.
+ """
+
+ def listNonVersionedObjects():
+ """Returns a list of subobjects that should not be pickled.
+
+ The objects in the list must not be wrapped, because only the
+ identity of the objects will be considered. The version
+ repository uses this method to avoid cloning subobjects that
+ will soon be removed by removeNonVersionedData.
+ """
+
+ def removeNonVersionedData():
+ """Removes the non-versioned data from this object.
+
+ The version repository uses this method before storing an
+ object in the version repository.
+ """
+
+ def getNonVersionedData():
+ """Returns an opaque object containing the non-versioned data.
+
+ The version repository uses this method before reverting an
+ object to a revision.
+ """
+
+ def restoreNonVersionedData(dict):
+ """Restores non-versioned data to this object.
+
+ The version repository uses this method after reverting an
+ object to a revision.
+ """
+
+IVersionedContainer = INonVersionedData
Modified: Products.ZopeVersionControl/trunk/Products/ZopeVersionControl/nonversioned.py
===================================================================
--- Products.ZopeVersionControl/trunk/Products/ZopeVersionControl/nonversioned.py 2008-05-20 14:26:06 UTC (rev 86853)
+++ Products.ZopeVersionControl/trunk/Products/ZopeVersionControl/nonversioned.py 2008-05-20 16:33:26 UTC (rev 86854)
@@ -18,7 +18,7 @@
from Acquisition import aq_base
from OFS.ObjectManager import ObjectManager
-from IVersionControl import INonVersionedData
+from interfaces import INonVersionedData
from VersionSupport import isAVersionableResource
from zope.interface import implements
@@ -49,15 +49,8 @@
if INonVersionedData.providedBy(base):
return obj
# If the object is an ObjectManager, use the ObjectManager adapter.
- try:
- is_obj_mgr = isinstance(base, ObjectManager)
- except TypeError:
- # Python 2.1 isinstance() dislikes ExtensionClass instances.
- # This is an adequate workaround.
- pass
- else:
- if is_obj_mgr:
- return ObjectManagerNonVersionedDataAdapter(obj)
+ if isinstance(base, ObjectManager):
+ return ObjectManagerNonVersionedDataAdapter(obj)
# Otherwise use the standard adapter.
return StandardNonVersionedDataAdapter(obj)
More information about the Checkins
mailing list