Skip to content

Commit

Permalink
wx.metadata: lazy import owslib so pre-compiling for MS Windows succe…
Browse files Browse the repository at this point in the history
…eds (#924)

* lazy import owslib

* wxGUI/wx.metadata: fix lazy import py owslib

* Fix black formatting errors

---------

Co-authored-by: Tomas Zigo <tomas.zigo@slovanet.sk>
  • Loading branch information
ninsbl and tmszi committed Jul 3, 2023
1 parent 7845080 commit c69fbf4
Show file tree
Hide file tree
Showing 4 changed files with 186 additions and 164 deletions.
9 changes: 5 additions & 4 deletions src/gui/wxpython/wx.metadata/mdlib/mdeditorfactory.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@
import wx.lib.scrolledpanel as scrolled

from . import globalvar
from . import mdutil
from .mdjinjaparser import JinjaTemplateParser

# =========================================================================
Expand All @@ -57,12 +56,14 @@ class MdFileWork:
def __init__(self, pathToXml=None):

try:
global Environment, FileSystemLoader, etree, GError, GMessage
global Environment, FileSystemLoader, etree, GError, GMessage, mdutil

from jinja2 import Environment, FileSystemLoader
from lxml import etree

from core.gcmd import GError, GMessage

from . import mdutil
except ModuleNotFoundError as e:
msg = e.msg
sys.exit(
Expand All @@ -81,7 +82,7 @@ def initMD(self, path=None):
@return: initialized md object by input xml
"""
if path is None:
self.md = mdutil.MD_MetadataMOD(md=None)
self.md = mdutil.get_md_metadatamod_inst(md=None)
return self.md
else:
io = open(path, "r")
Expand All @@ -96,7 +97,7 @@ def initMD(self, path=None):
try:
tree = etree.parse(path)
root = tree.getroot()
self.md = mdutil.MD_MetadataMOD(root)
self.md = mdutil.get_md_metadatamod_inst(root)

return self.md

Expand Down
8 changes: 4 additions & 4 deletions src/gui/wxpython/wx.metadata/mdlib/mdgrass.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ def __init__(self, map, type):
context = mdutil.StaticContext()
self.dirpath = os.path.join(context.lib_path, "profiles")
# metadata object from OWSLIB ( for define md values)
self.md = mdutil.MD_MetadataMOD(md=None)
self.md = mdutil.get_md_metadatamod_inst(md=None)
self.profilePath = None # path to file with xml templates

if self.type == "raster":
Expand Down Expand Up @@ -245,7 +245,7 @@ def createTemporalISO(self, profile=None):
self.profileName = "TEMPORAL"

# OWSLib md object
self.md.identification = mdutil.MD_DataIdentification_MOD()
self.md.identification = mdutil.get_md_dataidentification_mod_inst()
self.md.dataquality = DQ_DataQuality()
self.md.distribution = MD_Distribution()
self.md.identification.extent = EX_Extent()
Expand Down Expand Up @@ -341,7 +341,7 @@ def createGrassBasicISO(self, profile=None):
self.profilePath = profile

# OWSLib md object
self.md.identification = mdutil.MD_DataIdentification_MOD()
self.md.identification = mdutil.get_md_dataidentification_mod_inst()
self.md.dataquality = DQ_DataQuality()
self.md.distribution = MD_Distribution()
self.md.identification.extent = EX_Extent()
Expand Down Expand Up @@ -529,7 +529,7 @@ def createGrassInspireISO(self, profile=None):

def readXML(self, xml_file):
"""create instance of metadata(owslib) from xml file"""
self.md = mdutil.MD_MetadataMOD(etree.parse(xml_file))
self.md = mdutil.get_md_metadatamod_inst(etree.parse(xml_file))

def getMapInfo(self):
xml_out_name = (
Expand Down
15 changes: 8 additions & 7 deletions src/gui/wxpython/wx.metadata/mdlib/mdjinjaparser.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
import sys

from . import globalvar
from .mdutil import findBetween


class MdDescription:
Expand Down Expand Up @@ -133,9 +132,11 @@ def __init__(self, template):
"""

try:
global GError
global GError, mdutil

from core.gcmd import GError

from . import mdutil
except ModuleNotFoundError as e:
msg = e.msg
sys.exit(
Expand Down Expand Up @@ -163,11 +164,11 @@ def _readJinjaTags(self):

# if found start of comments
if str(line).find("{{") != -1:
obj = findBetween(line, "{{", "}}")
obj = mdutil.findBetween(line, "{{", "}}")
self.mdOWSTag.append(obj)

if str(line).find("{%") != -1:
obj = findBetween(line, "{%", "-%}")
obj = mdutil.findBetween(line, "{%", "-%}")
self.mdOWSTag.append(obj)

except:
Expand All @@ -183,9 +184,9 @@ def _readJinjaInfo(self):
for line in f:
# if found start of comments
if str(line).find("{#") != -1:
values = findBetween(line, "{#", "#}")
values1 = findBetween(line, "{%", "#}")
values2 = findBetween(line, "{{", "#}")
values = mdutil.findBetween(line, "{#", "#}")
values1 = mdutil.findBetween(line, "{%", "#}")
values2 = mdutil.findBetween(line, "{{", "#}")
if values1 != "":
values += ",selfInfoString='''{%" + values1 + "#}'''"
else:
Expand Down

0 comments on commit c69fbf4

Please sign in to comment.