class SbankenTransaction(jsonobject.JsonObject): 'Objectify Sbanken Transaction' # properties defined in Sbanken json structs # {'accountNumber': '', # str # 'accountingDate': '2018-01-22T00:00:00+01:00', # 'amount': 1.5, # float # 'customerId': '', # str, norwegian ssn # 'interestDate': '2018-01-21T00:00:00+01:00', # 'otherAccountNumber': None, # 'registrationDate': None, # 'text': '', # str # 'transactionId': '', # str # 'transactionType': 'RKI'} # one of RKI, accountNumber = jsonobject.StringProperty() accountingDate = jsonobject.DefaultProperty( ) # TODO: use DateTimeProperty() amount = jsonobject.FloatProperty() customerId = jsonobject.StringProperty() interestDate = jsonobject.DefaultProperty() # TODO: use DateTimeProperty() otherAccountNumber = jsonobject.StringProperty() registrationDate = jsonobject.DefaultProperty( ) # TODO: use DateTimeProperty() text = jsonobject.StringProperty() transactionId = jsonobject.StringProperty() transactionType = jsonobject.StringProperty()
class SbankenAccount(jsonobject.JsonObject): 'Objectify Sbanken account' # properties defined in Sbanken json structs # {'accountNumber': '', # str # 'accountType': 'Standard account', # 'available': 0.01, # float # 'balance': 0.01, # float # 'creditLimit': 0.0, # 'customerId': '', # str, norwegian ssn # 'defaultAccount': False, # boolean # 'name': '', # str # 'ownerCustomerId': '' # str, norwegian ssn} accountNumber = jsonobject.StringProperty() accountType = jsonobject.StringProperty() available = jsonobject.FloatProperty() balance = jsonobject.FloatProperty() creditLimit = jsonobject.FloatProperty() customerId = jsonobject.StringProperty() defaultAccount = jsonobject.BooleanProperty() name = jsonobject.StringProperty() ownerCustomerId = jsonobject.StringProperty()
def jsl_field_to_jsonobject_property( prop: jsl.BaseField) -> jsonobject.JsonProperty: if isinstance(prop, jsl.DateTimeField): return jsonobject.DateTimeProperty(name=prop.name, required=prop.required) if isinstance(prop, jsl.StringField): return jsonobject.StringProperty(name=prop.name, required=prop.required) if isinstance(prop, jsl.IntField): return jsonobject.IntegerProperty(name=prop.name, required=prop.required) if isinstance(prop, jsl.DictField): return jsonobject.DictProperty(name=prop.name, required=prop.required) if isinstance(prop, jsl.NumberField): return jsonobject.FloatProperty(name=prop.name, required=prop.required) if isinstance(prop, jsl.BooleanField): return jsonobject.BooleanProperty(name=prop.name, required=prop.required) if isinstance(prop, jsl.DocumentField): if prop.document_cls: subtype = jsl_to_jsonobject(prop.document_cls) return jsonobject.DictProperty(name=prop.name, item_type=subtype, required=prop.required) return jsonobject.DictProperty(name=prop.name, required=prop.required) if isinstance(prop, jsl.ArrayField): if prop.items: if isinstance(prop.items, jsl.DocumentField): subtype = jsl_to_jsonobject(prop.items.document_cls) elif isinstance(prop.items, jsl.BaseField): subtype = jsl_field_to_jsonobject_property(prop.items) else: raise KeyError(prop.items) return jsonobject.ListProperty(item_type=subtype, required=prop.required) return jsonobject.ListProperty(name=prop.name, required=prop.required) raise KeyError(prop)
class BoundingBox(jsonobject.JsonObject): left = jsonobject.FloatProperty() top = jsonobject.FloatProperty() right = jsonobject.FloatProperty() bottom = jsonobject.FloatProperty()
class Prediction(jsonobject.JsonObject): label = jsonobject.StringProperty() confidence = jsonobject.FloatProperty()