mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-25 00:58:06 -05:00
47 lines
1.5 KiB
Python
47 lines
1.5 KiB
Python
# =============================================================================
|
|
# OWSLib. Copyright (C) 2005 Sean C. Gillies
|
|
#
|
|
# Contact email: sgillies@frii.com
|
|
# =============================================================================
|
|
|
|
|
|
def patch_well_known_namespaces(etree_module):
|
|
|
|
import warnings
|
|
from owslib.namespaces import Namespaces
|
|
ns = Namespaces()
|
|
|
|
"""Monkey patches the etree module to add some well-known namespaces."""
|
|
|
|
try:
|
|
register_namespace = etree_module.register_namespace
|
|
except AttributeError:
|
|
try:
|
|
etree_module._namespace_map
|
|
|
|
def register_namespace(prefix, uri):
|
|
etree_module._namespace_map[uri] = prefix
|
|
except AttributeError:
|
|
def register_namespace(prefix, uri):
|
|
pass
|
|
warnings.warn("Only 'lxml.etree' >= 2.3 and 'xml.etree.ElementTree' >= 1.3 are fully supported!")
|
|
|
|
for k, v in ns.get_namespaces().iteritems():
|
|
register_namespace(k, v)
|
|
|
|
# try to find lxml or elementtree
|
|
try:
|
|
from lxml import etree
|
|
except ImportError:
|
|
try:
|
|
# Python 2.5 with ElementTree included
|
|
import xml.etree.ElementTree as etree
|
|
except ImportError:
|
|
try:
|
|
# Python < 2.5 with ElementTree installed
|
|
import elementtree.ElementTree as etree
|
|
except ImportError:
|
|
raise RuntimeError('You need either lxml or ElementTree to use OWSLib!')
|
|
|
|
patch_well_known_namespaces(etree)
|