def __init__(self, schema, renderer=None, counter=None, resource_registry=None, **kw): self.counter = counter or itertools.count() self.order = next(self.counter) self.oid = 'deformField%s' % self.order self.schema = schema self.typ = self.schema.typ # required by Invalid exception if renderer is None: renderer = self.default_renderer if resource_registry is None: resource_registry = self.default_resource_registry self.renderer = renderer self.resource_registry = resource_registry self.name = schema.name self.title = schema.title self.description = schema.description self.required = schema.required self.children = [] self.__dict__.update(kw) for child in schema.children: self.children.append( Field(child, renderer=renderer, counter=self.counter, resource_registry=resource_registry, **kw))
def __init__(self, schema, renderer=None, counter=None, resource_registry=None, **kw): self.counter = counter or itertools.count() self.order = next(self.counter) self.oid = 'deformField%s' % self.order self.schema = schema self.typ = self.schema.typ # required by Invalid exception if renderer is None: renderer = self.default_renderer if resource_registry is None: resource_registry = self.default_resource_registry self.renderer = renderer self.resource_registry = resource_registry self.name = schema.name self.title = schema.title self.description = schema.description self.required = schema.required self.children = [] self.__dict__.update(kw) for child in schema.children: self.children.append(Field(child, renderer=renderer, counter=self.counter, resource_registry=resource_registry, **kw))
def clone(self): """ Clone the field and its subfields, retaining attribute information. Return the cloned field. The ``order`` attribute of the node is not cloned; instead the field receives a new order attribute; it will be a number larger than the last renderered field of this set.""" cloned = self.__class__(self.schema) cloned.__dict__.update(self.__dict__) cloned.order = next(cloned.counter) cloned.oid = 'deformField%s' % cloned.order cloned.children = [field.clone() for field in self.children] return cloned
def clone(self): """ Clone the field and its subfields, retaining attribute information. Return the cloned field. The ``order`` attribute of the node is not cloned; instead the field receives a new order attribute; it will be a number larger than the last renderered field of this set.""" cloned = self.__class__(self.schema) cloned.__dict__.update(self.__dict__) cloned.order = next(cloned.counter) cloned.oid = 'deformField%s' % cloned.order cloned.children = [ field.clone() for field in self.children ] return cloned
def deserialize(self, field, pstruct): if pstruct is null: return null if not pstruct.strip(): return null try: infile = StringIO(pstruct) reader = csv.reader(infile) # row = reader.next() row = next(reader) except Exception as e: field.unparseable = pstruct raise Invalid(field.schema, str(e)) return row