class Status(ComplexModel): """Current status information relevant to an entity.""" _type_info = [ ('dateTime', DateTime.customize(max_occurs=1, min_occurs=0)), ('reason', Unicode.customize(max_occurs=1, min_occurs=0)), ('remark', Unicode.customize(max_occurs=1, min_occurs=0)), ('value', Unicode.customize(max_occurs=1, min_occurs=0)), ] def __init__(self, dateTime=None, reason=None, remark=None, value=None, **kwargs): super().__init__(dateTime=dateTime, reason=reason, remark=remark, value=value, **kwargs) if isinstance(dateTime, str): initvalue_ = datetime_.datetime.strptime(dateTime, '%Y-%m-%dT%H:%M:%S') else: initvalue_ = dateTime self.dateTime = initvalue_ self.reason = reason self.remark = remark self.value = value
class NameType(ComplexModel): """Type of name. Possible values for attribute 'name' are implementation dependent but standard profiles may specify types. An enterprise may have multiple IT systems each having its own local name for the same object, e.g. a planning system may have different names from an EMS. An object may also have different names within the same IT system, e.g. localName as defined in CIM version 14. The definition from CIM14 is:The localName is a human readable name of the object. It is a free text name local to a node in a naming hierarchy similar to a file directory structure. A power system related naming hierarchy may be: Substation, VoltageLevel, Equipment etc. Children of the same parent in such a hierarchy have names that typically are unique among them.""" member_data_items_ = [('description', Unicode.customize(max_occurs=1, min_occurs=0)), ('name', Unicode.customize(max_occurs=1, min_occurs=1)), ('NameTypeAuthority', NameTypeAuthority.customize(max_occurs=1, min_occurs=0))] def __init__(self, description=None, name=None, nameTypeAuthority=None, **kwargs): super().__init__(description=description, name=name, NameTypeAuthority=nameTypeAuthority, **kwargs) self.description = description self.name = name self.nameTypeAuthority = nameTypeAuthority
def create_parameters_model(self): type_info = ( ('checkedOutId', Unicode.customize()), ('checkedOutBy', Unicode.customize(min_occurs=0)), ) parameters_model = complex_model_factory('Parameters-zs-dms-r', ZDS_XML_NS, type_info) return parameters_model
def create_object_model(self): type_info = ( ('identificatie', Unicode.customize(sub_ns=self.stuf_zkn_ns)), ('functie', XmlAttribute(Unicode.customize(sub_ns=self.stuf_ns), ns='http://www.egem.nl/StUF/StUF0301')), ('entiteittype', XmlAttribute(Unicode.customize(sub_ns=self.stuf_ns, ns='http://www.egem.nl/StUF/StUF0301'))), ) object_model = complex_model_factory( '{}_{}'.format(self.entiteittype, self.shortname), self.stuf_zkn_ns, type_info) return object_model
def create_object_model(self): type_info = ( ('identificatie', Unicode.customize(sub_ns=self.stuf_zkn_ns)), ('functie', XmlAttribute(Unicode.customize(sub_ns=self.stuf_ns), ns='http://www.egem.nl/StUF/StUF0301')), ('entiteittype', XmlAttribute(Unicode.customize(sub_ns=self.stuf_ns, ns='http://www.egem.nl/StUF/StUF0301'))), ) object_model = complex_model_factory( '{}_{}'.format(self.entiteittype, self.shortname), self.stuf_zkn_ns, type_info) return object_model
def create_parameters_model(self): type_info = (('checkedOutId', Unicode.customize(type_name='checkedOutId')), ('versioningState', Unicode.customize(type_name='versioningState', min_occurs=0))) parameters_model = complex_model_factory( '{}_Parameters_{}'.format(self.berichtcode, self.shortname), self.stuf_zds_ns, type_info) return parameters_model
class OntkoppelZaakdocument_gerelateerde(ComplexModel): __namespace__ = ZKN_XML_NS __type_name__ = 'OntkoppelZaakdocument_gerelateerde' _type_info = [ ('identificatie', Unicode.customize(type_name='zaakIdentificatie')), ('omschrijving', Unicode.customize(type_name='zaakIdentificatie')), # TODO [TECH]: Taiga #216 Gaan we alle niet in ZDS 1.2 gedefinieerde # relaties/attributen toestaan middels dummy elementen (AnyXML)? # ('isVan', AnyXml.customize(type_name='ontkoppelZaakIsVan')), ('entiteittype', entiteittype), ('verwerkingssoort', verwerkingssoort) ]
class NameTypeAuthority(ComplexModel): """Authority responsible for creation and management of names of a given type; typically an organization or an enterprise system.""" _type_info = [ ('description', Unicode.customize(max_occurs=1, min_occurs=0)), ('name', Unicode.customize(max_occurs=1, min_occurs=1)), ] def __init__(self, description=None, name=None, **kwargs): super().__init__(description=description, name=name, **kwargs) self.description = description self.name = name
def create_stuurgegevens_model(self): BerichtCode = Unicode.customize(type_name='BerichtcodeLk01', sub_ns=STUF_XML_NS, fixed=self.berichtcode, min_occurs=1, max_occurs=1, nillable=False) type_info = ( ('berichtcode', BerichtCode.customize(min_occurs=1, max_occurs=1, nillable=False)), ('zender', Systeem.customize(min_occurs=1, max_occurs=1, nillable=False)), ('ontvanger', Systeem.customize(min_occurs=1, max_occurs=1, nillable=False)), ('referentienummer', simple_types.Refnummer), ('tijdstipBericht', simple_types.Tijdstip), ('entiteittype', simple_types.Entiteittype.customize( fixed=self.stuf_entiteit.get_mnemonic(), nillable=False, min_occurs=1, max_occurs=1)), ) name = self.create_stuurgegevens_name() return self.create_reusable_model(name, STUF_XML_NS, type_info)
def create_stuurgegevens_model(self): type_info = ( ('berichtcode', Unicode.customize(sub_ns=STUF_XML_NS, pattern=self.berichtcode)), ) stuurgegevens_model = complex_model_factory('{}_Stuurgegevens_{}'.format( self.berichtcode, self.shortname), STUF_XML_NS, type_info) return stuurgegevens_model
def create_parameters_model(self): # See StUF 3.01 Tabel 5.2, only mutatiesoort should be part of the parameters. mutatiesoort = 'W' if self.update else 'T' type_info = ( ('mutatiesoort', Unicode.customize(sub_ns=STUF_XML_NS, fixed=mutatiesoort, min_occurs=1, max_occurs=1, nillable=False)), ) parameters_model = self.create_reusable_model(self.create_parameters_name(), STUF_XML_NS, type_info) return parameters_model
def create_parameters_model(self): type_info = ( ('checkedOutId', Unicode.customize(type_name='checkedOutId')), # ('versioningState', Unicode.customize(type_name='versioningState', min_occurs=0)) ) parameters_model = complex_model_factory('{}_Parameters_{}'.format( self.berichtcode, self.shortname), ZDS_XML_NS, type_info) return parameters_model
def create_stuurgegevens_model(self): type_info = (('berichtcode', Unicode.customize(sub_ns=STUF_XML_NS, pattern=self.berichtcode)), ) stuurgegevens_model = complex_model_factory( '{}_Stuurgegevens_{}'.format(self.berichtcode, self.shortname), STUF_XML_NS, type_info) return stuurgegevens_model
class VoegBesluitToe_BSL_kennisgeving(ComplexModel): __namespace__ = ZKN_XML_NS __type_name__ = 'VoegBesluitToe_BSL_kennisgeving' _type_info = [ # Elements ('identificatie', simple_types.Refnummer.customize(nillable=True) ), # DocumentIdentificatie-e ('bst.omschrijving', simple_types.Omschrijving.customize(nillable=True, min_occurs=0)), # Omschrijving-e ('datumBeslissing', simple_types.Datum.customize(nillable=True)), # Datum-e ('toelichting', Unicode.customize(type_name='Toelichting-e', max_len=1000, nillable=True, min_occurs=0)), # Toelichting-e ('ingangsdatumWerking', simple_types.Datum.customize(nillable=True)), ('einddatumWerking', simple_types.Datum.customize(nillable=True, min_occurs=0)), # Datum-e ('vervalreden', Unicode.customize(type_name='Vervalreden-e', max_len=40, nillable=True, min_occurs=0)), # Vervalreden-e ('datumPublicatie', simple_types.Datum.customize(nillable=True, min_occurs=0)), # Datum-e ('datumVerzending', simple_types.Datum.customize(nillable=True, min_occurs=0)), # Datum-e ('datumUiterlijkeReactie', simple_types.Datum.customize(nillable=True, min_occurs=0)), # Datum-e ('tijdvakGeldigheid', TijdvakGeldigheid.customize(ref='tijdvakGeldigheid', min_occurs=0)), ('tijdstipRegistratie', Tijdstip_e.customize(ref='tijdstipRegistratie', min_occurs=0)), ('isVastgelegdIn', VoegBesluitToe_BSLEDC_kennisgeving.customize( nillable=True, min_occurs=0, max_occurs=decimal.Decimal('inf'))), # Attributes ('entiteittype', entiteittype.customize(fixed='BSL')), ('verwerkingssoort', verwerkingssoort), # <attribute ref="StUF:sleutelVerzendend"/> # <attribute ref="StUF:sleutelOntvangend"/> # <attribute ref="StUF:sleutelGegevensbeheer"/> # <attribute ref="StUF:sleutelSynchronisatie"/> ]
def create_edc_parameters_model(self): type_info = (('mutatiesoort', Unicode.customize(type_name='mutatiesoort', sub_ns=self.stuf_ns)), ) model = complex_model_factory( '{}_EdcParameters_{}'.format(self.berichtcode, self.shortname), self.stuf_ns, type_info) return model
class Add_DNS_Record_Record(ComplexModel): __namespace__ = "http://subreg.cz/wsdl" _type_info = [ ('name', Unicode), ('type', Unicode), ('content', Unicode.customize(min_occurs=0)), ('prio', Integer.customize(min_occurs=0)), ('ttl', Integer.customize(min_occurs=0)), ]
def create_document_model(self): type_info = ( ('identificatie', Unicode.customize(min_occurs=1, max_occurs=1, nillable=False)), ('functie', functie), ('entiteittype', entiteittype), ('verwerkingssoort', verwerkingssoort) ) document_model = complex_model_factory('EDC_cc_e', ZKN_XML_NS, type_info) return document_model
def create_parameters_model(self): # See StUF 3.01 Tabel 5.2 mutatiesoort = 'W' if self.update else 'T' type_info = ( ('mutatiesoort', Unicode.customize(sub_ns=STUF_XML_NS, fixed=mutatiesoort, min_occurs=1, max_occurs=1, nillable=False)), ('indicatorOvername', IndicatorOvername.customize(min_occurs=1, max_occurs=1, nillable=False)), ) parameters_model = self.create_reusable_model(self.create_parameters_name(), STUF_XML_NS, type_info) return parameters_model
class ExtraElement(ComplexModel): __namespace__ = STUF_XML_NS __type_name__ = 'ExtraElement' _type_info = [ ('data', XmlData(Unicode)), ('noValue', noValue), ('exact', exact), ('naam', XmlAttribute(Unicode.customize(min_occurs=1))), ('indOnvolledigeDatum', indOnvolledigeDatum), ]
def create_document_model(self): type_info = (('identificatie', Unicode.customize(min_occurs=1, max_occurs=1, nillable=False)), ('functie', functie), ('entiteittype', entiteittype), ('verwerkingssoort', verwerkingssoort)) document_model = complex_model_factory('EDC_cc_e', ZKN_XML_NS, type_info) return document_model
class OntkoppelZaakdocument_object(ComplexModel): __namespace__ = ZKN_XML_NS __type_name__ = 'OntkoppelZaakdocument_object' _type_info = [ ('identificatie', Unicode.customize(type_name='edcIdentificatie')), # ('dct.omschrijving', Unicode.customize(type_name='edcOmschrijving', min_occurs=0)), ('isRelevantVoor', OntkoppelZaakdocument_isRelevantVoor.customize(min_occurs=0)), ('entiteittype', entiteittype), ('verwerkingssoort', verwerkingssoort) ]
class Name(ComplexModel): """The Name class provides the means to define any number of human readable names for an object. A name is <b>not</b> to be used for defining inter-object relationships. For inter-object relationships instead use the object identification 'mRID'.""" _type_info = [('name', Unicode.customize(max_occurs=1, min_occurs=1)), ('NameType', NameType.customize(max_occurs=1, min_occurs=0))] def __init__(self, name=None, nameType=None, **kwargs): super().__init__(name=name, NameType=nameType, **kwargs) self.name = name self.nameType = nameType
def create_stuurgegevens_model(self): type_info = ( ('berichtcode', Unicode.customize(type_name='BerichtcodeDi02', sub_ns=self.stuf_ns, pattern=self.berichtcode)), # sub_ns=self.stuf_ns ('zender', Systeem), ('ontvanger', Systeem), ('referentienummer', simple_types.Refnummer.customize(min_occurs=0)), ('tijdstipBericht', simple_types.Tijdstip.customize(min_occurs=0)), ('functie', simple_types.Functie), ) stuurgegevens_model = complex_model_factory('{}_Stuurgegevens_{}'.format( self.berichtcode, self.shortname), self.stuf_ns, type_info) return stuurgegevens_model
def create_stuurgegevens_model(self): BerichtCode = Unicode.customize(type_name='BerichtcodeLk01', sub_ns=STUF_XML_NS, fixed=self.berichtcode, min_occurs=1, max_occurs=1, nillable=False) type_info = ( ('berichtcode', BerichtCode.customize(min_occurs=1, max_occurs=1, nillable=False)), ('zender', Systeem.customize(min_occurs=1, max_occurs=1, nillable=False)), ('ontvanger', Systeem.customize(min_occurs=1, max_occurs=1, nillable=False)), ('referentienummer', simple_types.Refnummer), ('tijdstipBericht', simple_types.Tijdstip), ('entiteittype', simple_types.Entiteittype.customize(fixed=self.stuf_entiteit.get_mnemonic(), nillable=False, min_occurs=1, max_occurs=1)), ) name = self.create_stuurgegevens_name() return self.create_reusable_model(name, STUF_XML_NS, type_info)
def create_stuurgegevens_model(self): type_info = ( ('berichtcode', Unicode.customize(type_name='BerichtcodeLv01', fixed=BerichtcodeChoices.lv01, min_occurs=1, nillable=False)), ('zender', Systeem.customize(min_occurs=0, nillable=False)), ('ontvanger', Systeem.customize(min_occurs=0, nillable=False)), ('referentienummer', simple_types.Refnummer.customize(min_occurs=0, nillable=False)), ('tijdstipBericht', simple_types.Tijdstip.customize(min_occurs=0, nillable=False)), # Technically: EntiteittypeBSL, EntiteittypeZAK, EntiteittypeEDC ('entiteittype', simple_types.Entiteittype.customize(fixed=self.stuf_entiteit.get_mnemonic(), min_occurs=1, nillable=False)), ) stuurgegevens_model = self.create_reusable_model(self.create_stuurgegevens_name(), STUF_XML_NS, type_info).customize(min_occurs=1, nillable=False) return stuurgegevens_model
def create_stuurgegevens_model(self): type_info = ( ('berichtcode', Unicode.customize(type_name='BerichtcodeLv01', fixed=BerichtcodeChoices.lv01, min_occurs=1, nillable=False)), ('zender', Systeem.customize(min_occurs=0, nillable=False)), ('ontvanger', Systeem.customize(min_occurs=0, nillable=False)), ('referentienummer', simple_types.Refnummer.customize(min_occurs=0, nillable=False)), ('tijdstipBericht', simple_types.Tijdstip.customize(min_occurs=0, nillable=False)), # Technically: EntiteittypeBSL, EntiteittypeZAK, EntiteittypeEDC ('entiteittype', simple_types.Entiteittype.customize(fixed=self.stuf_entiteit.get_mnemonic(), min_occurs=1, nillable=False)), ) stuurgegevens_model = self.create_reusable_model(self.create_stuurgegevens_name(), STUF_XML_NS, type_info).customize(min_occurs=1, nillable=False) return stuurgegevens_model
def create_stuurgegevens_model(self): type_info = ( ('berichtcode', Unicode.customize(type_name='BerichtcodeDi02', sub_ns=self.stuf_ns, pattern=self.berichtcode)), # sub_ns=self.stuf_ns ('zender', Systeem), ('ontvanger', Systeem), ('referentienummer', simple_types.Refnummer.customize(min_occurs=0)), ('tijdstipBericht', simple_types.Tijdstip.customize(min_occurs=0)), ('functie', simple_types.Functie), ) stuurgegevens_model = complex_model_factory('{}_Stuurgegevens_{}'.format( self.berichtcode, self.shortname), self.stuf_ns, type_info) return stuurgegevens_model
def create_parameters_model(self): # See StUF 3.01 Tabel 5.2, only mutatiesoort should be part of the parameters. mutatiesoort = 'W' if self.update else 'T' type_info = (('mutatiesoort', Unicode.customize(sub_ns=STUF_XML_NS, fixed=mutatiesoort, min_occurs=1, max_occurs=1, nillable=False)), ) parameters_model = self.create_reusable_model( self.create_parameters_name(), STUF_XML_NS, type_info) return parameters_model
def create_stuurgegevens_model(self): type_info = [ ('berichtcode', Unicode.customize(type_name='BerichtcodeLa01')), ('zender', Systeem.customize(min_occurs=0)), ('ontvanger', Systeem.customize(min_occurs=0)), ('referentienummer', simple_types.Refnummer.customize(min_occurs=0)), ('tijdstipBericht', simple_types.Tijdstip.customize(min_occurs=0)), ('crossRefnummer', simple_types.Refnummer.customize(min_occurs=0)), # Technically: EntiteittypeBSL, EntiteittypeZAK, EntiteittypeEDC ('entiteittype', simple_types.Entiteittype), ] stuurgegevens_model = self.create_reusable_model(self.create_stuurgegevens_name(), STUF_XML_NS, type_info) return stuurgegevens_model
class DERGroupStatusQueriesPayloadType(ComplexModel): _type_info = [('DERGroupStatuses', DERGroupStatuses.customize(min_occurs=0)), ('OperationSet', OperationSet.customize(min_occurs=0)), ('Compressed', Unicode.customize(min_occurs=0)), ('Format', Unicode.customize(min_occurs=0))] def __init__(self, dERGroupStatuses=None, operationSet=None, compressed=None, format=None, **kwargs): super().__init__(DERGroupStatuses=dERGroupStatuses, OperationSet=operationSet, Compressed=compressed, Format=format, **kwargs) self.dERGroupStatuses = dERGroupStatuses self.operationSet = operationSet self.compressed = compressed self.format = format
def create_stuurgegevens_model(self): type_info = [ ('berichtcode', Unicode.customize(type_name='BerichtcodeLa01')), ('zender', Systeem.customize(min_occurs=0)), ('ontvanger', Systeem.customize(min_occurs=0)), ('referentienummer', simple_types.Refnummer.customize(min_occurs=0)), ('tijdstipBericht', simple_types.Tijdstip.customize(min_occurs=0)), ('crossRefnummer', simple_types.Refnummer.customize(min_occurs=0)), # Technically: EntiteittypeBSL, EntiteittypeZAK, EntiteittypeEDC ('entiteittype', simple_types.Entiteittype), ] stuurgegevens_model = self.create_reusable_model(self.create_stuurgegevens_name(), STUF_XML_NS, type_info) return stuurgegevens_model
def create_parameters_model(self): # See StUF 3.01 Tabel 5.2 mutatiesoort = 'W' if self.update else 'T' type_info = ( ('mutatiesoort', Unicode.customize(sub_ns=STUF_XML_NS, fixed=mutatiesoort, min_occurs=1, max_occurs=1, nillable=False)), ('indicatorOvername', IndicatorOvername.customize(min_occurs=1, max_occurs=1, nillable=False)), ) parameters_model = self.create_reusable_model( self.create_parameters_name(), STUF_XML_NS, type_info) return parameters_model
class DERGroupStatusQueriesRequestType(ComplexModel): _type_info = [('StartTime', DateTime.customize(min_occurs=0)), ('EndTime', DateTime.customize(min_occurs=0)), ('Option', OptionType.customize(max_occurs='unbounded', min_occurs=0)), ('ID', Unicode.customize(max_occurs='unbounded', min_occurs=0)), ('DERGroupStatusQueries', DERGroupStatusQueries), ('__ANY__', AnyDict)] def __init__(self, startTime=None, endTime=None, option=None, id=None, dERGroupStatusQueries=None, **kwargs): super().__init__(StartTime=startTime, EndTime=endTime, Option=option, ID=id, DERGroupStatusQueries=dERGroupStatusQueries, **kwargs) if isinstance(startTime, str): initvalue_ = datetime_.datetime.strptime(startTime, '%Y-%m-%dT%H:%M:%S') else: initvalue_ = startTime self.startTime = initvalue_ if isinstance(endTime, str): initvalue_ = datetime_.datetime.strptime(endTime, '%Y-%m-%dT%H:%M:%S') else: initvalue_ = endTime self.endTime = initvalue_ if option is None: self.option = [] else: self.option = option if id is None: self.id = [] else: self.id = id self.dERGroupStatusQueries = dERGroupStatusQueries
class VoegBesluitToe_EDC_kerngegevensKennisgeving(ComplexModel): __namespace__ = ZKN_XML_NS __type_name__ = 'VoegBesluitToe_EDC_kerngegevensKennisgeving' _type_info = [ # Elements ('identificatie', simple_types.Refnummer.customize(nillable=True) ), # DocumentIdentificatie-e ('dct.omschrijving', simple_types.Omschrijving.customize(nillable=True, min_occurs=0)), # Omschrijving-e ('titel', Unicode.customize(nillable=True, min_occurs=0)), # DocumentTitel-e # Attributes ('entiteittype', entiteittype.customize(fixed='EDC')), ('verwerkingssoort', verwerkingssoort), # <attribute ref="StUF:sleutelVerzendend"/> # <attribute ref="StUF:sleutelOntvangend"/> # <attribute ref="StUF:sleutelGegevensbeheer"/> # <attribute ref="StUF:sleutelSynchronisatie"/> ]
def test_simple_type_explicit_customization(self): assert Unicode(max_len=5).__extends__ is not None assert Unicode.customize(max_len=5).__extends__ is not None
import logging logging.basicConfig(level=logging.DEBUG) from spyne import Application, rpc, ServiceBase, \ Integer, Unicode from spyne import Iterable from spyne.protocol.soap import Soap11 from spyne.server.wsgi import WsgiApplication EmailString = Unicode.customize( max_length=128, pattern='[^@]+@[^@]+', type_name='EmailString', ) class EmailValidation(ServiceBase): @rpc(Unicode, EmailString, _returns=Unicode) def validate_email(ctx, username, email): return 'That is %s and %s' % (username, email) class HelloWorldService(ServiceBase): @rpc(Unicode, Integer, _returns=Iterable(Unicode)) def say_hello(ctx, name, times): for i in range(times): yield 'Hello, %s' % name application = Application([HelloWorldService, EmailValidation], tns='spyne.examples.hello', in_protocol=Soap11(), out_protocol=Soap11() ) if __name__ == '__main__':
import logging logging.basicConfig(level=logging.DEBUG) from spyne import Application, rpc, ServiceBase, \ Integer, Unicode from spyne import Iterable from spyne.protocol.soap import Soap11 from spyne.server.wsgi import WsgiApplication EmailString = Unicode.customize( max_length=128, pattern='[^@]+@[^@]+', type_name='EmailString', ) class EmailValidation(ServiceBase): @rpc(Unicode, EmailString, _returns=Unicode) def validate_email(ctx, username, email): return 'That is %s and %s' % (username, email) class HelloWorldService(ServiceBase): @rpc(Unicode, Integer, _returns=Iterable(Unicode)) def say_hello(ctx, name, times): for i in range(times): yield 'Hello, %s' % name application = Application([HelloWorldService, EmailValidation], tns='spyne.examples.hello', in_protocol=Soap11(),
def Mandatory(cls, **_kwargs): kwargs = dict(min_occurs=1, nillable=False) return cls.customize(**kwargs) # StUF simple types # Wordt zowel als attribute als Type gebruikt. AantalVoorkomens = NonNegativeInteger.customize(__namespace__=STUF_XML_NS, type_name='AantalVoorkomens') Administratie = Mandatory( Unicode.customize(__namespace__=STUF_XML_NS, type_name='Administratie', max_len=50)) Applicatie = Mandatory( Unicode.customize(__namespace__=STUF_XML_NS, type_name='Applicatie', min_len=3, max_len=50)) Berichtcode = Mandatory( Unicode.customize(__namespace__=STUF_XML_NS, type_name='Berichtcode')) Code = Mandatory( Unicode.customize(__namespace__=STUF_XML_NS, type_name='Code', max_len=10)) Datum = Decimal.customize(__namespace__=STUF_XML_NS,
from lxml import etree from spyne import Unicode from spyne.model.complex import TypeInfo from spyne.util.django import DEFAULT_FIELD_MAP as _DEFAULT_FIELD_MAP from ...utils import stuf_datetime from ...utils.fields import GMLField from .models import DatumMetIndicator, TijdstipMetIndicator from .simple_types import GeometrieIMGeo_e DEFAULT_FIELD_MAP = dict(_DEFAULT_FIELD_MAP) DEFAULT_FIELD_MAP['StUFDateField'] = DatumMetIndicator DEFAULT_FIELD_MAP['StUFDateTimeField'] = TijdstipMetIndicator DEFAULT_FIELD_MAP['GMLField'] = GeometrieIMGeo_e DEFAULT_FIELD_MAP['ArrayField'] = Unicode.customize(max_occurs=Decimal('inf')) def get_model_value(obj, field_name): """ Returns the value belonging to `field_name` on `Model` instance. This works for related fields. Example:: >>> get_model_value(Zaak, 'zaaktype__zaaktypeomschrijving') 'Some description' """ fields = field_name.split(LOOKUP_SEP) for field in fields:
from spyne import Unicode from spyne.model.complex import XmlAttribute from ...utils.stuf_datetime import IndicatieOnvolledigeDatum from ..stuf.choices import ScopeChoices from .constants import STUF_XML_NS, XMIME_XML_NS from .simple_types import Entiteittype, Exact, Functie Bestandsnaam = Unicode.customize(__namespace__=STUF_XML_NS, type_name='Bestandsnaam', max_len=255) ContentType = Unicode.customize(__namespace__=XMIME_XML_NS, type_name='ContentType', min_len=3) # J = de datum heeft een waarde maar jaar, maand en dag zijn onbekend # M = de datum heeft een waarde maar maand en dag zijn onbekend # D = de datum heeft een waarde maar de dag is onbekend # V = datum is volledig IndOnvolledigeDatum = Unicode.customize( __namespace__=STUF_XML_NS, type_name='IndOnvolledigeDatum', values=set(IndicatieOnvolledigeDatum.values.keys()), default='V') NoValue = Unicode.customize(__namespace__=STUF_XML_NS, type_name='NoValue', values={ 'nietOndersteund', 'nietGeautoriseerd', 'geenWaarde', 'waardeOnbekend',
from lxml import etree from spyne import Unicode from spyne.model.complex import TypeInfo from spyne.util.django import DEFAULT_FIELD_MAP as _DEFAULT_FIELD_MAP from ...utils import stuf_datetime from ...utils.fields import GMLField from .models import DatumMetIndicator, TijdstipMetIndicator from .simple_types import GeometrieIMGeo_e DEFAULT_FIELD_MAP = dict(_DEFAULT_FIELD_MAP) DEFAULT_FIELD_MAP['StUFDateField'] = DatumMetIndicator DEFAULT_FIELD_MAP['StUFDateTimeField'] = TijdstipMetIndicator DEFAULT_FIELD_MAP['GMLField'] = GeometrieIMGeo_e DEFAULT_FIELD_MAP['ArrayField'] = Unicode.customize(max_occurs=Decimal('inf')) def get_model_value(obj, field_name): """ Returns the value belonging to `field_name` on `Model` instance. This works for related fields. Example:: >>> get_model_value(Zaak, 'zaaktype__zaaktypeomschrijving') 'Some description' """ fields = field_name.split(LOOKUP_SEP) for field in fields:
from spyne import Unicode from spyne.model.complex import XmlAttribute from ...utils.stuf_datetime import IndicatieOnvolledigeDatum from ..stuf.choices import ScopeChoices from .constants import STUF_XML_NS, XMIME_XML_NS from .simple_types import Entiteittype, Exact, Functie Bestandsnaam = Unicode.customize(__namespace__=STUF_XML_NS, type_name='Bestandsnaam', max_len=255) ContentType = Unicode.customize(__namespace__=XMIME_XML_NS, type_name='ContentType', min_len=3) # J = de datum heeft een waarde maar jaar, maand en dag zijn onbekend # M = de datum heeft een waarde maar maand en dag zijn onbekend # D = de datum heeft een waarde maar de dag is onbekend # V = datum is volledig IndOnvolledigeDatum = Unicode.customize(__namespace__=STUF_XML_NS, type_name='IndOnvolledigeDatum', values=set(IndicatieOnvolledigeDatum.values.keys()), default='V') NoValue = Unicode.customize(__namespace__=STUF_XML_NS, type_name='NoValue', values={'nietOndersteund', 'nietGeautoriseerd', 'geenWaarde', 'waardeOnbekend', 'vastgesteldOnbekend'}) Scope__Anonymous = Unicode.customize(__namespace__=STUF_XML_NS, values=set(ScopeChoices.values.keys())) # T = Toevoeging # W = Wijziging of correctie # V = Verwijdering # E = Een relatie entiteit wordt beeindigd. # I = Entiteit bevat alleen identificerende gegevens. # R = Een relatie entiteit wordt vervangen door een nieuwe relatie entiteit. # S = De sleutel van een entiteit wordt gewijzigd. # O = Het object in de oude entiteit wordt in het kader van een ontdubbeling samengevoegd met het object in de