class Pt(dexml.Model): """Simple point class.""" class meta: tagname = "point" name = RestrictedString("tl","bl","br","tr") x = fields.Float() y = fields.Float()
class Cell(dexml.Model): x = fields.Float() x_random = fields.Float() y_random = fields.Float() width = fields.Float() height = fields.Integer() #n_words = fields.Integer() probability = fields.Float() type_text = fields.Integer() type_font = fields.Integer()
class Line(dexml.Model): #id = fields.Integer(attrname="id") height = fields.Integer() text_min_height_prob = fields.Float() y_space_step = fields.Integer() cells = fields.List(Cell) type = fields.String() probability = fields.Float() repeat = fields.Integer()
class Frame(dexml.Model): """Store information about a frame to process: index in original stream, filename of extracted version, etc.""" class meta: tagname = "frame" index = fields.Integer(required=False) time = fields.Float(required=False) filename = fields.String() # can be relative to root given to a tool on command line
class GroupTextLine(dexml.Model): lines = fields.List(Line) probability = fields.Float() type = fields.String() def __init__(self, probability= 0.0, type='NULL'): self.probability = probability self.type = type self.real_lines = []
class Object(dexml.Model): command = fields.String() left = fields.Integer() top = fields.Integer() right = fields.Integer() bottom = fields.Integer() fill = fields.String() probability = fields.Float()
class Item(dexml.Model): indicador = fields.String(tagname="indicador") numeroOrdenItem = fields.String(tagname="numeroOrdenItem") codigoProducto = fields.String(tagname="codigoProducto") descripcion = fields.String(tagname="descripcion") cantidad = fields.Float(tagname="cantidad") unidadMedida = fields.String(tagname="unidadMedida") importeUnitarioSinImpuesto = fields.Float( tagname="importeUnitarioSinImpuesto") importeUnitarioConImpuesto = fields.Float( tagname="importeUnitarioConImpuesto") codigoImporteUnitarioConImpuesto = fields.String( tagname="codigoImporteUnitarioConImpuesto") importeTotalSinImpuesto = fields.Float(tagname="importeTotalSinImpuesto") importeDescuento = fields.Float(tagname="importeDescuento") importeCargo = fields.Float(tagname="importeCargo") codigoRazonExoneracion = fields.String(tagname="codigoRazonExoneracion") importeIgv = fields.Float(tagname="importeIgv")
class GroupHeader(dexml.Model): '''Conjunto de características compartidas por todas las operaciones incluidas en el mensaje.''' message_identification = fields.String(tagname='MsgId') creation_date_time = fields.String(tagname='CreDtTm') number_of_transactions = fields.String(tagname='NbOfTxs') control_sum = fields.Float(tagname="CtrlSum", required=False) initiating_party = fields.Model(InitiatingParty) def __init__(self): self.message_identification = generated_id(35) self.creation_date_time = iso_datetime() self.initiating_party = InitiatingParty() self.number_of_transactions = "1" def render(self, **kwargs): return super(GroupHeader, self).render(**kwargs) class meta: tagname = "GrpHdr"
class Document(dexml.Model): id = fields.String(attrname='id') rotate = fields.Integer() max_append_records = fields.Integer() probability = fields.Float() height = fields.Integer() width = fields.Integer() corpus_top = fields.Integer() corpus_left = fields.Integer() corpus_width = fields.Integer() corpus_min_height = fields.Integer() corpus_max_height = fields.Integer() #record_type = fields.String() header = fields.List(GroupTextLine, tagname='header') record = fields.List(GroupTextLine, tagname='record') background = fields.List(Object, tagname='background')
class Waypoint(dexml.Model): class meta: tagname = 'Waypoints' name = fields.String(tagname="Name") latitude = fields.Float(tagname='Latitude') # radians longitude = fields.Float(tagname='Longitude') # radians track_limit = fields.Float(tagname='TrackLimit', default=0) course_limit = fields.Float(tagname='CourseLimit', default=0) economy = fields.Float(tagname='Economy', default=0) max_speed = fields.Float(tagname='MaximalSpeed', default=0) controller_type = fields.String(tagname='ControllerType', default='') notes = fields.String(tagname="Notes", default='') is_parameter_point = fields.Boolean(tagname="IsParameterPoint", default=False) is_arrival_point = fields.Boolean(tagname="IsArrivalPoint", default=False) # 0 great circle, 1 rhumb # latter sailmode corresponds to leg's sailmode sail_mode = fields.Integer(tagname="SailMode") radius = fields.Float(tagname='Radius') # meters
class Documento(dexml.Model): class meta: tagname = "documento" tipoDocumentoEmisor = fields.String(tagname='tipoDocumentoEmisor') numeroDocumentoEmisor = fields.String(tagname='numeroDocumentoEmisor') razonSocialEmisor = fields.String(tagname='razonSocialEmisor') nombreComercialEmisor = fields.String(tagname='nombreComercialEmisor') tipoDocumento = fields.String(tagname='tipoDocumento') serieNumero = fields.String(tagname='serieNumero') fechaEmision = fields.String(tagname='fechaEmision') ubigeoEmisor = fields.String(tagname='ubigeoEmisor') direccionEmisor = fields.String(tagname='direccionEmisor') urbanizacion = fields.String(tagname='urbanizacion') provinciaEmisor = fields.String(tagname='provinciaEmisor') departamentoEmisor = fields.String(tagname='departamentoEmisor') distritoEmisor = fields.String(tagname='distritoEmisor') paisEmisor = fields.String(tagname='paisEmisor') correoEmisor = fields.String(tagname='correoEmisor') tipoDocumentoAdquiriente = fields.String( tagname='tipoDocumentoAdquiriente') numeroDocumentoAdquiriente = fields.String( tagname='numeroDocumentoAdquiriente') razonSocialAdquiriente = fields.String(tagname='razonSocialAdquiriente') correoAdquiriente = fields.String(tagname='correoAdquiriente') tipoMoneda = fields.String(tagname='tipoMoneda') totalValorVentaNetoOpGravadas = fields.Float( tagname='totalValorVentaNetoOpGravadas') totalValorVentaNetoOpNoGravada = fields.Float( tagname='totalValorVentaNetoOpNoGravada') totalValorVentaNetoOpExoneradas = fields.Float( tagname='totalValorVentaNetoOpExoneradas') subTotal = fields.Float(tagname='subTotal') totalIgv = fields.Float(tagname='totalIgv') totalDescuentos = fields.Float(tagname='totalDescuentos') totalVenta = fields.Float(tagname='totalVenta') inHabilitado = fields.String(tagname='inHabilitado') codigoLeyenda_1 = fields.String(tagname='codigoLeyenda_1') textoLeyenda_1 = fields.String(tagname='textoLeyenda_1') items = fields.List(Item)
class settings(dexml.Model): total_time = fields.Float(tagname="total_time") timestep = fields.Float(tagname="timestep") records = fields.List(record)
class record(dexml.Model): name = fields.String() interval = fields.Float(tagname="interval") row_index = fields.Integer(tagname="row_index") col_index = fields.Integer(tagname="col_index")
class F(dexml.Model): value = fields.Float()
class Size(dexml.Model): """Simple size abstraction. Floats used, beware!""" width = fields.Float() height = fields.Float()