From 43320dd547283c59157e0aee57cfcd82ad670c78 Mon Sep 17 00:00:00 2001 From: gforcada Date: Thu, 7 Jul 2016 01:00:11 +0200 Subject: [PATCH] [fc] Repository: plone.schemaeditor Branch: refs/heads/master Date: 2016-07-05T23:17:52+02:00 Author: Gil Forcada (gforcada) Commit: https://github.com/plone/plone.schemaeditor/commit/cb007573831a4c94f3c36708dd5e49499e582689 Use zope.interface decorator This not only makes code more pleasent to read, but also makes the code python 3 compatible (while maintaining python 2 compatibility). Files changed: M CHANGES.rst M plone/schemaeditor/browser/field/edit.py M plone/schemaeditor/browser/field/traversal.py M plone/schemaeditor/browser/schema/listing.py M plone/schemaeditor/browser/schema/traversal.py M plone/schemaeditor/fields.py M plone/schemaeditor/utils.py Repository: plone.schemaeditor Branch: refs/heads/master Date: 2016-07-07T01:00:11+02:00 Author: Gil Forcada Codinachs (gforcada) Commit: https://github.com/plone/plone.schemaeditor/commit/e61e752f171412976967342f06f01c8dd3dc2ed2 Merge pull request #38 from plone/gforcada-use-zope-decorators Use zope.interface decorator Files changed: M CHANGES.rst M plone/schemaeditor/browser/field/edit.py M plone/schemaeditor/browser/field/traversal.py M plone/schemaeditor/browser/schema/listing.py M plone/schemaeditor/browser/schema/traversal.py M plone/schemaeditor/fields.py M plone/schemaeditor/utils.py --- last_commit.txt | 540 +++++++++++++++++++++++++++++++++++------------- 1 file changed, 401 insertions(+), 139 deletions(-) diff --git a/last_commit.txt b/last_commit.txt index 7c8cbb2fac..63e41499e2 100644 --- a/last_commit.txt +++ b/last_commit.txt @@ -1,10 +1,10 @@ -Repository: Products.MimetypesRegistry +Repository: plone.schemaeditor Branch: refs/heads/master -Date: 2016-07-05T23:19:43+02:00 +Date: 2016-07-05T23:17:52+02:00 Author: Gil Forcada (gforcada) -Commit: https://github.com/plone/Products.MimetypesRegistry/commit/3b1c7a60fd4b04eb4b7dad166a5f9c6e9c98c723 +Commit: https://github.com/plone/plone.schemaeditor/commit/cb007573831a4c94f3c36708dd5e49499e582689 Use zope.interface decorator @@ -14,12 +14,15 @@ but also makes the code python 3 compatible Files changed: M CHANGES.rst -M Products/MimetypesRegistry/MimeTypeItem.py -M Products/MimetypesRegistry/MimeTypesRegistry.py -M Products/MimetypesRegistry/mime_types/mtr_mimetypes.py +M plone/schemaeditor/browser/field/edit.py +M plone/schemaeditor/browser/field/traversal.py +M plone/schemaeditor/browser/schema/listing.py +M plone/schemaeditor/browser/schema/traversal.py +M plone/schemaeditor/fields.py +M plone/schemaeditor/utils.py diff --git a/CHANGES.rst b/CHANGES.rst -index 1092ba0..10e6200 100644 +index ecc7e5f..5e880f6 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -14,7 +14,8 @@ New features: @@ -31,103 +34,234 @@ index 1092ba0..10e6200 100644 + [gforcada] - 2.0.9 (2016-05-26) -diff --git a/Products/MimetypesRegistry/MimeTypeItem.py b/Products/MimetypesRegistry/MimeTypeItem.py -index 76bed1d..2ee08f1 100644 ---- a/Products/MimetypesRegistry/MimeTypeItem.py -+++ b/Products/MimetypesRegistry/MimeTypeItem.py -@@ -5,14 +5,14 @@ - from Persistence import Persistent - from Products.CMFCore.permissions import ManagePortal - from Products.MimetypesRegistry.interfaces import IMimetype + 2.0.10 (2016-06-07) +diff --git a/plone/schemaeditor/browser/field/edit.py b/plone/schemaeditor/browser/field/edit.py +index b760c76..fcd3f54 100644 +--- a/plone/schemaeditor/browser/field/edit.py ++++ b/plone/schemaeditor/browser/field/edit.py +@@ -1,6 +1,6 @@ + from Acquisition import aq_parent, aq_inner + +-from zope.interface import implements, Interface ++from zope.interface import implementer, Interface + from zope.interface.declarations import ObjectSpecificationDescriptor + from zope.interface.declarations import getObjectSpecification + from zope.cachedescriptors.property import Lazy as lazy_property +@@ -37,8 +37,8 @@ class IFieldTitle(Interface): + ) + + ++@implementer(IFieldTitle) + class FieldTitleAdapter(object): +- implements(IFieldTitle) + adapts(IField) + + def __init__(self, field): +@@ -64,8 +64,8 @@ def __get__(self, inst, cls=None): + return inst.__provides__ + + ++@implementer(IFieldProxy) + class FieldProxy(object): +- implements(IFieldProxy) + + __providedBy__ = FieldProxySpecification() + +@@ -75,8 +75,8 @@ def __init__(self, context): + self.__dict__ = context.__dict__ + + ++@implementer(IDataManager) + class FieldDataManager(AttributeField): +- implements(IDataManager) + adapts(IFieldProxy, IField) + + def get(self): +@@ -98,8 +98,8 @@ def set(self, value): + super(FieldDataManager, self).set(value) + + ++@implementer(IFieldEditForm) + class FieldEditForm(AutoExtensibleForm, form.EditForm): +- implements(IFieldEditForm) + id = 'edit-field-form' + + def __init__(self, context, request): +diff --git a/plone/schemaeditor/browser/field/traversal.py b/plone/schemaeditor/browser/field/traversal.py +index 3ef197e..2a3c5b0 100644 +--- a/plone/schemaeditor/browser/field/traversal.py ++++ b/plone/schemaeditor/browser/field/traversal.py +@@ -1,4 +1,4 @@ -from zope.interface import implements +from zope.interface import implementer - import os - import urllib - - -+@implementer(IMimetype) - class MimeTypeItem(Persistent, Explicit, Item): - security = ClassSecurityInfo() -- implements(IMimetype) - - extensions = () - globs = () -diff --git a/Products/MimetypesRegistry/MimeTypesRegistry.py b/Products/MimetypesRegistry/MimeTypesRegistry.py -index ce82971..e84c579 100644 ---- a/Products/MimetypesRegistry/MimeTypesRegistry.py -+++ b/Products/MimetypesRegistry/MimeTypesRegistry.py -@@ -23,7 +23,7 @@ - from Products.PageTemplates.PageTemplateFile import PageTemplateFile - from types import UnicodeType - from zope.contenttype import guess_content_type + from zope.publisher.interfaces.browser import IBrowserPublisher + from ZPublisher.BaseRequest import DefaultPublishTraverse + from OFS.SimpleItem import SimpleItem +@@ -7,11 +7,11 @@ + from plone.schemaeditor.interfaces import IFieldContext + + ++@implementer(IFieldContext, IBrowserPublisher) + class FieldContext(SimpleItem): + + """ wrapper for published zope 3 schema fields + """ +- implements(IFieldContext, IBrowserPublisher) + + def __init__(self, context, request): + super(FieldContext, self).__init__() +diff --git a/plone/schemaeditor/browser/schema/listing.py b/plone/schemaeditor/browser/schema/listing.py +index 3f6783e..748a4c6 100644 +--- a/plone/schemaeditor/browser/schema/listing.py ++++ b/plone/schemaeditor/browser/schema/listing.py +@@ -1,6 +1,6 @@ + from zope.component import queryUtility + from zope.event import notify +-from zope.interface import implements ++from zope.interface import implementer + from z3c.form import button, form + from z3c.form.interfaces import IEditForm, DISPLAY_MODE + +@@ -21,8 +21,8 @@ + + + ++@implementer(IEditForm) + class SchemaListing(AutoExtensibleForm, form.Form): +- implements(IEditForm) + + ignoreContext = True + ignoreRequest = True +diff --git a/plone/schemaeditor/browser/schema/traversal.py b/plone/schemaeditor/browser/schema/traversal.py +index 18d108a..7ed16e6 100644 +--- a/plone/schemaeditor/browser/schema/traversal.py ++++ b/plone/schemaeditor/browser/schema/traversal.py +@@ -1,4 +1,4 @@ -from zope.interface import implements +from zope.interface import implementer - import fnmatch - import os - import re -@@ -41,6 +41,7 @@ - } - - -+@implementer(IMimetypesRegistry, ISourceAdapter) - class MimeTypesRegistry(UniqueObject, ActionProviderBase, Folder): - """Mimetype registry that deals with - a) registering types -@@ -48,8 +49,6 @@ class MimeTypesRegistry(UniqueObject, ActionProviderBase, Folder): - c) classifying data into a given type + from zope.publisher.interfaces.browser import IBrowserPublisher + from ZPublisher.BaseRequest import DefaultPublishTraverse + from OFS.SimpleItem import SimpleItem +@@ -7,14 +7,12 @@ + from plone.schemaeditor.interfaces import ISchemaContext + + ++@implementer(ISchemaContext, IBrowserPublisher) + class SchemaContext(SimpleItem): + + """ This is a transient item that allows us to traverse through (a wrapper + of) a zope 3 schema to (a wrapper of) a zope 3 schema field. """ +- # Implementing IBrowserPublisher tells the Zope 2 publish traverser to pay attention +- # to the publishTraverse and browserDefault methods. +- implements(ISchemaContext, IBrowserPublisher) -- implements(IMimetypesRegistry, ISourceAdapter) -- - id = 'mimetypes_registry' - meta_type = 'MimeTypes Registry' - isPrincipiaFolderish = 1 # Show up in the ZMI -diff --git a/Products/MimetypesRegistry/mime_types/mtr_mimetypes.py b/Products/MimetypesRegistry/mime_types/mtr_mimetypes.py -index ee5b412..d98f774 100644 ---- a/Products/MimetypesRegistry/mime_types/mtr_mimetypes.py -+++ b/Products/MimetypesRegistry/mime_types/mtr_mimetypes.py -@@ -1,7 +1,7 @@ - from Products.MimetypesRegistry.MimeTypeItem import MimeTypeItem - from Products.MimetypesRegistry.interfaces import IClassifier - from types import InstanceType + schemaEditorView = None + additionalSchemata = () +diff --git a/plone/schemaeditor/fields.py b/plone/schemaeditor/fields.py +index 1d3f706..3f51dce 100644 +--- a/plone/schemaeditor/fields.py ++++ b/plone/schemaeditor/fields.py +@@ -5,7 +5,7 @@ + from zope.component import adapter + from zope.component import getUtilitiesFor + from zope.globalrequest import getRequest -from zope.interface import implements +from zope.interface import implementer - import re + from zope.i18n import translate + from zope import schema + from zope.schema import interfaces as schema_ifaces +@@ -28,8 +28,8 @@ def getFirstFieldSchema(field): + s.isOrExtends(schema_ifaces.IField)][0] + + ++@implementer(IFieldFactory) + class FieldFactory(object): +- implements(IFieldFactory) + + title = u'' + +@@ -105,8 +105,8 @@ def getChoiceFieldSchema(field): + values=[]) + + ++@interface.implementer(se_schema.ITextLineChoice) + class TextLineChoiceField(object): +- interface.implements(se_schema.ITextLineChoice) + component.adapts(schema_ifaces.IChoice) + + def __init__(self, field): +@@ -225,8 +225,8 @@ def getMultiChoiceFieldSchema(field): + value_type=schema.Choice(values=[])) + + ++@interface.implementer_only(se_schema.ITextLineChoice) + class TextLineMultiChoiceField(TextLineChoiceField): +- interface.implementsOnly(se_schema.ITextLineChoice) + component.adapts(schema_ifaces.ISet) + + def __init__(self, field): +diff --git a/plone/schemaeditor/utils.py b/plone/schemaeditor/utils.py +index b9085f4..e00260f 100644 +--- a/plone/schemaeditor/utils.py ++++ b/plone/schemaeditor/utils.py +@@ -1,4 +1,4 @@ +-from zope.interface import implements ++from zope.interface import implementer + from zope.interface.interfaces import IInterface + from zope.component import adapts + from zope.component.interfaces import ObjectEvent +@@ -43,13 +43,13 @@ def get_field_fieldset(schema, field_name): + return None + + ++@implementer(IEditableSchema) + class EditableSchema(object): + + """ Zope 3 schema adapter to allow addition/removal of schema fields + + XXX this needs to be made threadsafe + """ +- implements(IEditableSchema) + adapts(IInterface) + def __init__(self, schema): +@@ -151,8 +151,9 @@ def changeFieldFieldset(self, field_name, next_fieldset): + current_fieldset.fields.remove(field_name) -@@ -69,8 +69,8 @@ class application_msword(MimeTypeItem): - binary = 1 ++@implementer(ISchemaModifiedEvent) + class SchemaModifiedEvent(ObjectEvent): +- implements(ISchemaModifiedEvent) ++ pass -+@implementer(IClassifier) - class text_xml(MimeTypeItem): -- implements(IClassifier) - __name__ = "Extensible Markup Language (XML)" - mimetypes = ('text/xml',) + class FieldModifiedEvent(SchemaModifiedEvent): -Repository: Products.MimetypesRegistry +Repository: plone.schemaeditor Branch: refs/heads/master -Date: 2016-07-07T01:00:03+02:00 +Date: 2016-07-07T01:00:11+02:00 Author: Gil Forcada Codinachs (gforcada) -Commit: https://github.com/plone/Products.MimetypesRegistry/commit/90558142f046d26e3eddb4ea84320b4bc69fbc7c +Commit: https://github.com/plone/plone.schemaeditor/commit/e61e752f171412976967342f06f01c8dd3dc2ed2 -Merge pull request #5 from plone/gforcada-use-zope-decorators +Merge pull request #38 from plone/gforcada-use-zope-decorators Use zope.interface decorator Files changed: M CHANGES.rst -M Products/MimetypesRegistry/MimeTypeItem.py -M Products/MimetypesRegistry/MimeTypesRegistry.py -M Products/MimetypesRegistry/mime_types/mtr_mimetypes.py +M plone/schemaeditor/browser/field/edit.py +M plone/schemaeditor/browser/field/traversal.py +M plone/schemaeditor/browser/schema/listing.py +M plone/schemaeditor/browser/schema/traversal.py +M plone/schemaeditor/fields.py +M plone/schemaeditor/utils.py diff --git a/CHANGES.rst b/CHANGES.rst -index 1092ba0..10e6200 100644 +index ecc7e5f..5e880f6 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -14,7 +14,8 @@ New features: @@ -139,80 +273,208 @@ index 1092ba0..10e6200 100644 + [gforcada] - 2.0.9 (2016-05-26) -diff --git a/Products/MimetypesRegistry/MimeTypeItem.py b/Products/MimetypesRegistry/MimeTypeItem.py -index 76bed1d..2ee08f1 100644 ---- a/Products/MimetypesRegistry/MimeTypeItem.py -+++ b/Products/MimetypesRegistry/MimeTypeItem.py -@@ -5,14 +5,14 @@ - from Persistence import Persistent - from Products.CMFCore.permissions import ManagePortal - from Products.MimetypesRegistry.interfaces import IMimetype + 2.0.10 (2016-06-07) +diff --git a/plone/schemaeditor/browser/field/edit.py b/plone/schemaeditor/browser/field/edit.py +index b760c76..fcd3f54 100644 +--- a/plone/schemaeditor/browser/field/edit.py ++++ b/plone/schemaeditor/browser/field/edit.py +@@ -1,6 +1,6 @@ + from Acquisition import aq_parent, aq_inner + +-from zope.interface import implements, Interface ++from zope.interface import implementer, Interface + from zope.interface.declarations import ObjectSpecificationDescriptor + from zope.interface.declarations import getObjectSpecification + from zope.cachedescriptors.property import Lazy as lazy_property +@@ -37,8 +37,8 @@ class IFieldTitle(Interface): + ) + + ++@implementer(IFieldTitle) + class FieldTitleAdapter(object): +- implements(IFieldTitle) + adapts(IField) + + def __init__(self, field): +@@ -64,8 +64,8 @@ def __get__(self, inst, cls=None): + return inst.__provides__ + + ++@implementer(IFieldProxy) + class FieldProxy(object): +- implements(IFieldProxy) + + __providedBy__ = FieldProxySpecification() + +@@ -75,8 +75,8 @@ def __init__(self, context): + self.__dict__ = context.__dict__ + + ++@implementer(IDataManager) + class FieldDataManager(AttributeField): +- implements(IDataManager) + adapts(IFieldProxy, IField) + + def get(self): +@@ -98,8 +98,8 @@ def set(self, value): + super(FieldDataManager, self).set(value) + + ++@implementer(IFieldEditForm) + class FieldEditForm(AutoExtensibleForm, form.EditForm): +- implements(IFieldEditForm) + id = 'edit-field-form' + + def __init__(self, context, request): +diff --git a/plone/schemaeditor/browser/field/traversal.py b/plone/schemaeditor/browser/field/traversal.py +index 3ef197e..2a3c5b0 100644 +--- a/plone/schemaeditor/browser/field/traversal.py ++++ b/plone/schemaeditor/browser/field/traversal.py +@@ -1,4 +1,4 @@ -from zope.interface import implements +from zope.interface import implementer - import os - import urllib - - -+@implementer(IMimetype) - class MimeTypeItem(Persistent, Explicit, Item): - security = ClassSecurityInfo() -- implements(IMimetype) - - extensions = () - globs = () -diff --git a/Products/MimetypesRegistry/MimeTypesRegistry.py b/Products/MimetypesRegistry/MimeTypesRegistry.py -index ce82971..e84c579 100644 ---- a/Products/MimetypesRegistry/MimeTypesRegistry.py -+++ b/Products/MimetypesRegistry/MimeTypesRegistry.py -@@ -23,7 +23,7 @@ - from Products.PageTemplates.PageTemplateFile import PageTemplateFile - from types import UnicodeType - from zope.contenttype import guess_content_type + from zope.publisher.interfaces.browser import IBrowserPublisher + from ZPublisher.BaseRequest import DefaultPublishTraverse + from OFS.SimpleItem import SimpleItem +@@ -7,11 +7,11 @@ + from plone.schemaeditor.interfaces import IFieldContext + + ++@implementer(IFieldContext, IBrowserPublisher) + class FieldContext(SimpleItem): + + """ wrapper for published zope 3 schema fields + """ +- implements(IFieldContext, IBrowserPublisher) + + def __init__(self, context, request): + super(FieldContext, self).__init__() +diff --git a/plone/schemaeditor/browser/schema/listing.py b/plone/schemaeditor/browser/schema/listing.py +index 3f6783e..748a4c6 100644 +--- a/plone/schemaeditor/browser/schema/listing.py ++++ b/plone/schemaeditor/browser/schema/listing.py +@@ -1,6 +1,6 @@ + from zope.component import queryUtility + from zope.event import notify +-from zope.interface import implements ++from zope.interface import implementer + from z3c.form import button, form + from z3c.form.interfaces import IEditForm, DISPLAY_MODE + +@@ -21,8 +21,8 @@ + + + ++@implementer(IEditForm) + class SchemaListing(AutoExtensibleForm, form.Form): +- implements(IEditForm) + + ignoreContext = True + ignoreRequest = True +diff --git a/plone/schemaeditor/browser/schema/traversal.py b/plone/schemaeditor/browser/schema/traversal.py +index 18d108a..7ed16e6 100644 +--- a/plone/schemaeditor/browser/schema/traversal.py ++++ b/plone/schemaeditor/browser/schema/traversal.py +@@ -1,4 +1,4 @@ -from zope.interface import implements +from zope.interface import implementer - import fnmatch - import os - import re -@@ -41,6 +41,7 @@ - } - - -+@implementer(IMimetypesRegistry, ISourceAdapter) - class MimeTypesRegistry(UniqueObject, ActionProviderBase, Folder): - """Mimetype registry that deals with - a) registering types -@@ -48,8 +49,6 @@ class MimeTypesRegistry(UniqueObject, ActionProviderBase, Folder): - c) classifying data into a given type + from zope.publisher.interfaces.browser import IBrowserPublisher + from ZPublisher.BaseRequest import DefaultPublishTraverse + from OFS.SimpleItem import SimpleItem +@@ -7,14 +7,12 @@ + from plone.schemaeditor.interfaces import ISchemaContext + + ++@implementer(ISchemaContext, IBrowserPublisher) + class SchemaContext(SimpleItem): + + """ This is a transient item that allows us to traverse through (a wrapper + of) a zope 3 schema to (a wrapper of) a zope 3 schema field. """ +- # Implementing IBrowserPublisher tells the Zope 2 publish traverser to pay attention +- # to the publishTraverse and browserDefault methods. +- implements(ISchemaContext, IBrowserPublisher) -- implements(IMimetypesRegistry, ISourceAdapter) -- - id = 'mimetypes_registry' - meta_type = 'MimeTypes Registry' - isPrincipiaFolderish = 1 # Show up in the ZMI -diff --git a/Products/MimetypesRegistry/mime_types/mtr_mimetypes.py b/Products/MimetypesRegistry/mime_types/mtr_mimetypes.py -index ee5b412..d98f774 100644 ---- a/Products/MimetypesRegistry/mime_types/mtr_mimetypes.py -+++ b/Products/MimetypesRegistry/mime_types/mtr_mimetypes.py -@@ -1,7 +1,7 @@ - from Products.MimetypesRegistry.MimeTypeItem import MimeTypeItem - from Products.MimetypesRegistry.interfaces import IClassifier - from types import InstanceType + schemaEditorView = None + additionalSchemata = () +diff --git a/plone/schemaeditor/fields.py b/plone/schemaeditor/fields.py +index 1d3f706..3f51dce 100644 +--- a/plone/schemaeditor/fields.py ++++ b/plone/schemaeditor/fields.py +@@ -5,7 +5,7 @@ + from zope.component import adapter + from zope.component import getUtilitiesFor + from zope.globalrequest import getRequest -from zope.interface import implements +from zope.interface import implementer - import re + from zope.i18n import translate + from zope import schema + from zope.schema import interfaces as schema_ifaces +@@ -28,8 +28,8 @@ def getFirstFieldSchema(field): + s.isOrExtends(schema_ifaces.IField)][0] + + ++@implementer(IFieldFactory) + class FieldFactory(object): +- implements(IFieldFactory) + + title = u'' + +@@ -105,8 +105,8 @@ def getChoiceFieldSchema(field): + values=[]) + + ++@interface.implementer(se_schema.ITextLineChoice) + class TextLineChoiceField(object): +- interface.implements(se_schema.ITextLineChoice) + component.adapts(schema_ifaces.IChoice) + + def __init__(self, field): +@@ -225,8 +225,8 @@ def getMultiChoiceFieldSchema(field): + value_type=schema.Choice(values=[])) + + ++@interface.implementer_only(se_schema.ITextLineChoice) + class TextLineMultiChoiceField(TextLineChoiceField): +- interface.implementsOnly(se_schema.ITextLineChoice) + component.adapts(schema_ifaces.ISet) + + def __init__(self, field): +diff --git a/plone/schemaeditor/utils.py b/plone/schemaeditor/utils.py +index b9085f4..e00260f 100644 +--- a/plone/schemaeditor/utils.py ++++ b/plone/schemaeditor/utils.py +@@ -1,4 +1,4 @@ +-from zope.interface import implements ++from zope.interface import implementer + from zope.interface.interfaces import IInterface + from zope.component import adapts + from zope.component.interfaces import ObjectEvent +@@ -43,13 +43,13 @@ def get_field_fieldset(schema, field_name): + return None + + ++@implementer(IEditableSchema) + class EditableSchema(object): + + """ Zope 3 schema adapter to allow addition/removal of schema fields + + XXX this needs to be made threadsafe + """ +- implements(IEditableSchema) + adapts(IInterface) + def __init__(self, schema): +@@ -151,8 +151,9 @@ def changeFieldFieldset(self, field_name, next_fieldset): + current_fieldset.fields.remove(field_name) -@@ -69,8 +69,8 @@ class application_msword(MimeTypeItem): - binary = 1 ++@implementer(ISchemaModifiedEvent) + class SchemaModifiedEvent(ObjectEvent): +- implements(ISchemaModifiedEvent) ++ pass -+@implementer(IClassifier) - class text_xml(MimeTypeItem): -- implements(IClassifier) - __name__ = "Extensible Markup Language (XML)" - mimetypes = ('text/xml',) + class FieldModifiedEvent(SchemaModifiedEvent):