comparison sat_tmp/wokkel/data_form.py @ 69:0721b6254c9e

python 3 port: - applied 2to3 - replaced zope's implements by @implementer decorator - replaced references to python2 by python3
author Goffi <goffi@goffi.org>
date Tue, 13 Aug 2019 18:58:11 +0200
parents 1245269f9aab
children
comparison
equal deleted inserted replaced
68:042a926cf3b2 69:0721b6254c9e
18 # along with this program. If not, see <http://www.gnu.org/licenses/>. 18 # along with this program. If not, see <http://www.gnu.org/licenses/>.
19 19
20 from wokkel import data_form 20 from wokkel import data_form
21 from twisted.words.xish import domish 21 from twisted.words.xish import domish
22 22
23 NS_XML_ELEMENT = u"urn:xmpp:xml-element" 23 NS_XML_ELEMENT = "urn:xmpp:xml-element"
24 24
25 25
26 class Field(data_form.Field): 26 class Field(data_form.Field):
27 """Field class adding implementation for XML Element""" 27 """Field class adding implementation for XML Element"""
28 28
47 raise ValueError('Invalid main type for a extended type field') 47 raise ValueError('Invalid main type for a extended type field')
48 if len(self.values) != 1: 48 if len(self.values) != 1:
49 raise ValueError('extended type must have one and only one value') 49 raise ValueError('extended type must have one and only one value')
50 if self.options: 50 if self.options:
51 raise ValueError('options must not be set for extented type') 51 raise ValueError('options must not be set for extented type')
52 if self.ext_type == u'xml': 52 if self.ext_type == 'xml':
53 if not isinstance(self.value, domish.Element): 53 if not isinstance(self.value, domish.Element):
54 raise ValueError('invalid value, a domish.Element is expected') 54 raise ValueError('invalid value, a domish.Element is expected')
55 else: 55 else:
56 raise ValueError( 56 raise ValueError(
57 'Unknown extended type: {ext_type}'.format(ext_type=self.ext_type)) 57 'Unknown extended type: {ext_type}'.format(ext_type=self.ext_type))
67 field_elt['type'] = self.fieldType 67 field_elt['type'] = self.fieldType
68 68
69 if self.var is not None: 69 if self.var is not None:
70 field_elt['var'] = self.var 70 field_elt['var'] = self.var
71 71
72 wrapper_elt = field_elt.addElement((NS_XML_ELEMENT, u'wrapper')) 72 wrapper_elt = field_elt.addElement((NS_XML_ELEMENT, 'wrapper'))
73 wrapper_elt.addChild(self.value) 73 wrapper_elt.addChild(self.value)
74 74
75 if asForm: 75 if asForm:
76 if self.label is not None: 76 if self.label is not None:
77 field_elt['label'] = self.label 77 field_elt['label'] = self.label
86 86
87 @staticmethod 87 @staticmethod
88 def fromElement(element): 88 def fromElement(element):
89 field = super(Field, Field).fromElement(element) 89 field = super(Field, Field).fromElement(element)
90 if element.wrapper and element.wrapper.uri == NS_XML_ELEMENT: 90 if element.wrapper and element.wrapper.uri == NS_XML_ELEMENT:
91 field.ext_type = u"xml" 91 field.ext_type = "xml"
92 field.value = element.wrapper.firstChildElement() 92 field.value = element.wrapper.firstChildElement()
93 return field 93 return field
94 94
95 95
96 def install(): 96 def install():