/[thuban]/branches/WIP-pyshapelib-bramz/Extensions/wms/capabilities.py
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/Extensions/wms/capabilities.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2136 by joey, Wed Mar 24 20:05:33 2004 UTC revision 2149 by joey, Thu Apr 1 10:17:00 2004 UTC
# Line 19  Line 19 
19  """  """
20  Maintain WMS Capabilities  Maintain WMS Capabilities
21    
22    Inherits methods from WMSCapabilitiesParser
23    
24  class WMSCapabilities:  class WMSCapabilities:
25      __init__ (resource xor filename xor nothing)      __init__ (resource xor filename xor nothing)
26    
27      getErrorMsg()      getErrorMsg()
28    
29      fetchCapabilities (*resource)      fetchCapabilities(resource)
30      saveCapabilities (filename)      saveCapabilities(filename)
31      loadCapabilities (filename)      loadCapabilities(filename)
32      printCapabilities ()      printCapabilities()
33    
34  Requirements:  Requirements:
35      - PyOGCLib <http://www.sourceforge.net/projects/pyogclib>      - PyOGCLib <http://www.sourceforge.net/projects/pyogclib>
# Line 54  from sys import path Line 56  from sys import path
56    
57  # Assume the PyOGCLib to be checked out next to the thuban main directory  # Assume the PyOGCLib to be checked out next to the thuban main directory
58  pyogclib = "../../../PyOGCLib"  pyogclib = "../../../PyOGCLib"
59  if os.path.isdir (pyogclib) and os.path.isdir (pyogclib + "/ogclib"):  if os.path.isdir(pyogclib) and os.path.isdir(pyogclib + "/ogclib"):
60      path.insert (0, pyogclib)      path.insert(0, pyogclib)
61    
62  # We use gettext, so we need to import it and hence need to adjust the  # We use gettext, so we need to import it and hence need to adjust the
63  # path again  # path again
64  if __name__ == "__main__":  if __name__ == "__main__":
65      path.insert (0, "../../")      path.insert(0, "../../")
66    
67  # ----------------------------------------------------------------------  # ----------------------------------------------------------------------
68    
69  from Thuban import _  from Thuban import _
70    
71  from ogclib.WMSClient import WMSClient  from ogclib.WMSClient import WMSClient
72    from parser import WMSCapabilitiesParser
73    
74  class WMSCapabilities (WMSClient):  class WMSCapabilities(WMSClient, WMSCapabilitiesParser):
75      """      """
76      Thuban class to maintain capabilities.  This class provides      Thuban class to maintain capabilities.  This class provides
77      methods to fetch, save and load capabilities as well as methods to      methods to fetch, save and load capabilities as well as methods to
# Line 85  class WMSCapabilities (WMSClient): Line 88  class WMSCapabilities (WMSClient):
88      errorMsg = None      errorMsg = None
89      wmsVersion = None      wmsVersion = None
90    
91      def __init__ (self, *parm):      def __init__(self, *parm):
92          """          """
93          Initialises Capabilities with one optional parameter          Initialises Capabilities with one optional parameter
94    
95            param can be either a URL or a filename:
96    
97          filename -- load capabilities from file          filename -- load capabilities from file
98          url -- fetch capabilities from network          url -- fetch capabilities from network
99          """          """
100    
101          if parm and parm[0]:          if parm and parm[0]:
102              if os.path.isfile (parm[0]):              if os.path.isfile(parm[0]):
103                  self.loadCapabilities (parm[0])                  self.loadCapabilities(parm[0])
104              else:              else:
105                  if parm[0].find ("http://",0) == 0:                  if parm[0].find("http://", 0) == 0:
106                      self.fetchCapabilities (parm[0])                      self.fetchCapabilities(parm[0])
107                  else:                  else:
108                      self.errorMsg \                      self.errorMsg \
109                          = _("Resource '%s' is neither local file nor URL")                          = _("Resource '%s' is neither local file nor URL") \
110                              % parm[0]                          % parm[0]
111    
112    
113      def getErrorMsg (self):      def getErrorMsg(self):
114          return self.errorMsg          return self.errorMsg
115    
116    
117      def fetchCapabilities (self, resource):      def fetchCapabilities(self, resource):
118          """Fetches the WMS capabilities from an Internet resource"""          """Fetches the WMS capabilities from an Internet resource"""
119    
120          self.wmsVersion = "1.1"          self.wmsVersion = "1.1"
# Line 118  class WMSCapabilities (WMSClient): Line 123  class WMSCapabilities (WMSClient):
123              self.wmsVersion = "1.0"              self.wmsVersion = "1.0"
124              self.capabilities = self.getCapabilities(resource, self.wmsVersion)              self.capabilities = self.getCapabilities(resource, self.wmsVersion)
125    
126            if self.capabilities:
127                self.grok(self.capabilities)
128    
129    
130      def saveCapabilities (self, fname):      def saveCapabilities(self, fname):
131          """Save capabilities to local file"""          """Save capabilities to local file"""
132    
133          if self.capabilities is None:          if self.capabilities is None:
134              self.errorMsg = _("No capabilities available")              self.errorMsg = _("No capabilities available")
135          else:          else:
136              try:              try:
137                  out = open (fname, "w")                  out = open(fname, "w")
138                  out.write (self.capabilities)                  out.write(self.capabilities)
139                  out.close()                  out.close()
140              except:              except IOError:
141                  self.errorMsg = _("Can't open file '%s' for writing") % fname                  self.errorMsg = _("Can't open file '%s' for writing") % fname
142    
143    
144      def loadCapabilities (self, fname):      def loadCapabilities(self, fname):
145          """Load capabilities from a local file"""          """Load capabilities from a local file"""
146    
147          try:          try:
148              input = open (fname, "r")              input = open(fname, "r")
149              self.capabilities = input.read ()              self.capabilities = input.read()
150              input.close()              input.close()
151          except:              self.grok(self.capabilities)
152            except IOError:
153              self.errorMsg = _("Can't open file '%s' for reading") % fname              self.errorMsg = _("Can't open file '%s' for reading") % fname
154    
155    
156      def printCapabilities (self):      def printCapabilities(self):
157          """Prints capabilities to stdout"""          """Prints capabilities to stdout"""
158    
159          print self.capabilities          print self.capabilities
# Line 154  class WMSCapabilities (WMSClient): Line 163  class WMSCapabilities (WMSClient):
163  if __name__ == "__main__":  if __name__ == "__main__":
164      capabilities \      capabilities \
165          = WMSCapabilities("http://frida.intevation.org/cgi-bin/frida_wms?")          = WMSCapabilities("http://frida.intevation.org/cgi-bin/frida_wms?")
166      if capa.getErrorMsg() is None:      if capabilities.getErrorMsg() is None:
167          capa.saveCapabilities("frida_capabilities.xml")          capabilities.saveCapabilities("frida_capabilities.xml")
168      else:      else:
169          print "Error: " + capa.getErrorMsg()          print "Error: " + capabilities.getErrorMsg()

Legend:
Removed from v.2136  
changed lines
  Added in v.2149

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26