Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
doc = WPS.Capabilities()
doc.attrib['service'] = 'WPS'
doc.attrib['version'] = '1.0.0'
doc.attrib['{http://www.w3.org/XML/1998/namespace}lang'] = 'en-CA'
doc.attrib['{http://www.w3.org/2001/XMLSchema-instance}schemaLocation'] = 'http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsDescribeProcess_response.xsd'
# TODO: check Table 7 in OGC 05-007r7
doc.attrib['updateSequence'] = '1'
# Service Identification
service_ident_doc = OWS.ServiceIdentification(
OWS.Title(config.get_config_value('wps', 'title'))
)
if config.get_config_value('wps', 'abstract'):
service_ident_doc.append(OWS.Abstract(config.get_config_value('wps', 'abstract')))
if config.get_config_value('wps', 'keywords'):
keywords_doc = OWS.Keywords()
for k in config.get_config_value('wps', 'keywords').split(','):
if k:
keywords_doc.append(OWS.Keyword(k))
service_ident_doc.append(keywords_doc)
service_ident_doc.append(OWS.ServiceType('WPS'))
for v in config.get_config_value('wps', 'version').split(','):
service_ident_doc.append(OWS.ServiceTypeVersion(v))
service_ident_doc.append(OWS.Fees(config.get_config_value('wps', 'fees')))
for con in config.get_config_value('wps', 'constraints').split(','):
service_prov_doc = OWS.ServiceProvider(OWS.ProviderName(config.get_config_value('provider', 'providerName')))
if config.get_config_value('provider', 'providerSite'):
service_prov_doc.append(OWS.ProviderSite(
{'{http://www.w3.org/1999/xlink}href': config.get_config_value('provider', 'providerSite')})
)
# Service Contact
service_contact_doc = OWS.ServiceContact()
# Add Contact information only if a name is set
if config.get_config_value('provider', 'individualName'):
service_contact_doc.append(OWS.IndividualName(config.get_config_value('provider', 'individualName')))
if config.get_config_value('provider', 'positionName'):
service_contact_doc.append(OWS.PositionName(config.get_config_value('provider', 'positionName')))
if config.get_config_value('provider', 'role'):
service_contact_doc.append(OWS.Role(config.get_config_value('provider', 'role')))
contact_info_doc = OWS.ContactInfo()
phone_doc = OWS.Phone()
if config.get_config_value('provider', 'phoneVoice'):
phone_doc.append(OWS.Voice(config.get_config_value('provider', 'phoneVoice')))
if config.get_config_value('provider', 'phoneFacsimile'):
phone_doc.append(OWS.Facsimile(config.get_config_value('provider', 'phoneFacsimile')))
# Add Phone if not empty
if len(phone_doc):
contact_info_doc.append(phone_doc)
address_doc = OWS.Address()
if config.get_config_value('provider', 'deliveryPoint'):
address_doc.append(OWS.DeliveryPoint(config.get_config_value('provider', 'deliveryPoint')))
if config.get_config_value('provider', 'country'):
address_doc.append(OWS.Country(config.get_config_value('provider', 'country')))
if config.get_config_value('provider', 'electronicalMailAddress'):
address_doc.append(
OWS.ElectronicMailAddress(config.get_config_value('provider', 'electronicalMailAddress'))
)
# Add Address if not empty
if len(address_doc):
contact_info_doc.append(address_doc)
if config.get_config_value('provider', 'onlineResource'):
contact_info_doc.append(OWS.OnlineResource(
{'{http://www.w3.org/1999/xlink}href': config.get_config_value('provider', 'onlineResource')})
)
if config.get_config_value('provider', 'hoursOfService'):
contact_info_doc.append(OWS.HoursOfService(config.get_config_value('provider', 'hoursOfService')))
if config.get_config_value('provider', 'contactInstructions'):
contact_info_doc.append(OWS.ContactInstructions(config.get_config_value('provider', 'contactInstructions')))
# Add Contact information if not empty
if len(contact_info_doc):
service_contact_doc.append(contact_info_doc)
# Add Service Contact only if ProviderName and PositionName are set
if len(service_contact_doc):
service_prov_doc.append(service_contact_doc)
doc.append(service_prov_doc)
# Operations Metadata
operations_metadata_doc = OWS.OperationsMetadata(
OWS.Operation(
phone_doc = OWS.Phone()
if config.get_config_value('provider', 'phoneVoice'):
phone_doc.append(OWS.Voice(config.get_config_value('provider', 'phoneVoice')))
if config.get_config_value('provider', 'phoneFacsimile'):
phone_doc.append(OWS.Facsimile(config.get_config_value('provider', 'phoneFacsimile')))
# Add Phone if not empty
if len(phone_doc):
contact_info_doc.append(phone_doc)
address_doc = OWS.Address()
if config.get_config_value('provider', 'deliveryPoint'):
address_doc.append(OWS.DeliveryPoint(config.get_config_value('provider', 'deliveryPoint')))
if config.get_config_value('provider', 'city'):
address_doc.append(OWS.City(config.get_config_value('provider', 'city')))
if config.get_config_value('provider', 'postalCode'):
address_doc.append(OWS.PostalCode(config.get_config_value('provider', 'postalCode')))
if config.get_config_value('provider', 'country'):
address_doc.append(OWS.Country(config.get_config_value('provider', 'country')))
if config.get_config_value('provider', 'electronicalMailAddress'):
address_doc.append(
OWS.ElectronicMailAddress(config.get_config_value('provider', 'electronicalMailAddress'))
)
# Add Address if not empty
if len(address_doc):
contact_info_doc.append(address_doc)
if config.get_config_value('provider', 'onlineResource'):
contact_info_doc.append(OWS.OnlineResource(
{'{http://www.w3.org/1999/xlink}href': config.get_config_value('provider', 'onlineResource')})
)
if config.get_config_value('provider', 'hoursOfService'):
contact_info_doc.append(OWS.HoursOfService(config.get_config_value('provider', 'hoursOfService')))
phone_doc = OWS.Phone()
if config.get_config_value('provider', 'phoneVoice'):
phone_doc.append(OWS.Voice(config.get_config_value('provider', 'phoneVoice')))
if config.get_config_value('provider', 'phoneFacsimile'):
phone_doc.append(OWS.Facsimile(config.get_config_value('provider', 'phoneFacsimile')))
# Add Phone if not empty
if len(phone_doc):
contact_info_doc.append(phone_doc)
address_doc = OWS.Address()
if config.get_config_value('provider', 'deliveryPoint'):
address_doc.append(OWS.DeliveryPoint(config.get_config_value('provider', 'deliveryPoint')))
if config.get_config_value('provider', 'city'):
address_doc.append(OWS.City(config.get_config_value('provider', 'city')))
if config.get_config_value('provider', 'postalCode'):
address_doc.append(OWS.PostalCode(config.get_config_value('provider', 'postalCode')))
if config.get_config_value('provider', 'country'):
address_doc.append(OWS.Country(config.get_config_value('provider', 'country')))
if config.get_config_value('provider', 'electronicalMailAddress'):
address_doc.append(
OWS.ElectronicMailAddress(config.get_config_value('provider', 'electronicalMailAddress'))
)
# Add Address if not empty
if len(address_doc):
contact_info_doc.append(address_doc)
if config.get_config_value('provider', 'onlineResource'):
contact_info_doc.append(OWS.OnlineResource(
{'{http://www.w3.org/1999/xlink}href': config.get_config_value('provider', 'onlineResource')})
)
if config.get_config_value('provider', 'hoursOfService'):
if config.get_config_value('provider', 'phoneFacsimile'):
phone_doc.append(OWS.Facsimile(config.get_config_value('provider', 'phoneFacsimile')))
# Add Phone if not empty
if len(phone_doc):
contact_info_doc.append(phone_doc)
address_doc = OWS.Address()
if config.get_config_value('provider', 'deliveryPoint'):
address_doc.append(OWS.DeliveryPoint(config.get_config_value('provider', 'deliveryPoint')))
if config.get_config_value('provider', 'city'):
address_doc.append(OWS.City(config.get_config_value('provider', 'city')))
if config.get_config_value('provider', 'postalCode'):
address_doc.append(OWS.PostalCode(config.get_config_value('provider', 'postalCode')))
if config.get_config_value('provider', 'country'):
address_doc.append(OWS.Country(config.get_config_value('provider', 'country')))
if config.get_config_value('provider', 'electronicalMailAddress'):
address_doc.append(
OWS.ElectronicMailAddress(config.get_config_value('provider', 'electronicalMailAddress'))
)
# Add Address if not empty
if len(address_doc):
contact_info_doc.append(address_doc)
if config.get_config_value('provider', 'onlineResource'):
contact_info_doc.append(OWS.OnlineResource(
{'{http://www.w3.org/1999/xlink}href': config.get_config_value('provider', 'onlineResource')})
)
if config.get_config_value('provider', 'hoursOfService'):
contact_info_doc.append(OWS.HoursOfService(config.get_config_value('provider', 'hoursOfService')))
if config.get_config_value('provider', 'contactInstructions'):
contact_info_doc.append(OWS.ContactInstructions(config.get_config_value('provider', 'contactInstructions')))
# Service Contact
service_contact_doc = OWS.ServiceContact()
# Add Contact information only if a name is set
if config.get_config_value('provider', 'individualName'):
service_contact_doc.append(OWS.IndividualName(config.get_config_value('provider', 'individualName')))
if config.get_config_value('provider', 'positionName'):
service_contact_doc.append(OWS.PositionName(config.get_config_value('provider', 'positionName')))
if config.get_config_value('provider', 'role'):
service_contact_doc.append(OWS.Role(config.get_config_value('provider', 'role')))
contact_info_doc = OWS.ContactInfo()
phone_doc = OWS.Phone()
if config.get_config_value('provider', 'phoneVoice'):
phone_doc.append(OWS.Voice(config.get_config_value('provider', 'phoneVoice')))
if config.get_config_value('provider', 'phoneFacsimile'):
phone_doc.append(OWS.Facsimile(config.get_config_value('provider', 'phoneFacsimile')))
# Add Phone if not empty
if len(phone_doc):
contact_info_doc.append(phone_doc)
address_doc = OWS.Address()
if config.get_config_value('provider', 'deliveryPoint'):
address_doc.append(OWS.DeliveryPoint(config.get_config_value('provider', 'deliveryPoint')))
if config.get_config_value('provider', 'city'):
address_doc.append(OWS.City(config.get_config_value('provider', 'city')))
if config.get_config_value('provider', 'postalCode'):
address_doc.append(OWS.PostalCode(config.get_config_value('provider', 'postalCode')))
if config.get_config_value('provider', 'country'):
address_doc.append(OWS.Country(config.get_config_value('provider', 'country')))
address_doc.append(OWS.PostalCode(config.get_config_value('provider', 'postalCode')))
if config.get_config_value('provider', 'country'):
address_doc.append(OWS.Country(config.get_config_value('provider', 'country')))
if config.get_config_value('provider', 'electronicalMailAddress'):
address_doc.append(
OWS.ElectronicMailAddress(config.get_config_value('provider', 'electronicalMailAddress'))
)
# Add Address if not empty
if len(address_doc):
contact_info_doc.append(address_doc)
if config.get_config_value('provider', 'onlineResource'):
contact_info_doc.append(OWS.OnlineResource(
{'{http://www.w3.org/1999/xlink}href': config.get_config_value('provider', 'onlineResource')})
)
if config.get_config_value('provider', 'hoursOfService'):
contact_info_doc.append(OWS.HoursOfService(config.get_config_value('provider', 'hoursOfService')))
if config.get_config_value('provider', 'contactInstructions'):
contact_info_doc.append(OWS.ContactInstructions(config.get_config_value('provider', 'contactInstructions')))
# Add Contact information if not empty
if len(contact_info_doc):
service_contact_doc.append(contact_info_doc)
# Add Service Contact only if ProviderName and PositionName are set
if len(service_contact_doc):
service_prov_doc.append(service_contact_doc)
doc.append(service_prov_doc)
# Operations Metadata
operations_metadata_doc = OWS.OperationsMetadata(