/[thuban]/branches/WIP-pyshapelib-bramz/Thuban/Model/data.py
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/Thuban/Model/data.py

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

revision 983 by bh, Tue Apr 29 12:42:14 2003 UTC revision 984 by bh, Thu May 22 16:37:48 2003 UTC
# Line 12  __version__ = "$Revision$" Line 12  __version__ = "$Revision$"
12  # $Id$  # $Id$
13    
14  import os  import os
15    import warnings
16    import weakref
17    
18  import shapelib  import shapelib
19  import table  import table
20  import transientdb  import transientdb
21    
22    
23    class ShapeTable(transientdb.AutoTransientTable):
24    
25        """A Table that depends on a ShapefileStore
26    
27        Intended use is by the ShapefileStore for the table associated with
28        the shapefiles.
29        """
30    
31        def __init__(self, store, db, table):
32            """Initialize the ShapeTable.
33    
34            Parameters:
35                store -- the ShapefileStore the table is to depend on
36                db -- The transient database to use
37                table -- the table
38            """
39            transientdb.AutoTransientTable.__init__(self, db, table)
40            self.store = weakref.ref(store)
41    
42        def Dependencies(self):
43            """Return a tuple containing the shapestore"""
44            return (self.store(),)
45    
46    
47  class ShapefileStore:  class ShapefileStore:
48    
49      """Combine a shapefile and the corresponding DBF file into one object"""      """Combine a shapefile and the corresponding DBF file into one object"""
# Line 31  class ShapefileStore: Line 57  class ShapefileStore:
57    
58          self.shapefile = shapelib.ShapeFile(self.filename)          self.shapefile = shapelib.ShapeFile(self.filename)
59          self.dbftable = table.DBFTable(filename)          self.dbftable = table.DBFTable(filename)
60          self.table = transientdb.AutoTransientTable(session.TransientDB(),          self.table = ShapeTable(self, session.TransientDB(), self.dbftable)
                                                     self.dbftable)  
61    
62      def Table(self):      def Table(self):
63            """Return the table containing the attribute data"""
64          return self.table          return self.table
65    
66      def Shapefile(self):      def Shapefile(self):
67            """Return the shapefile object"""
68          return self.shapefile          return self.shapefile
69    
70        def FileName(self):
71            """Return the filename used to open the shapefile"""
72            return self.filename
73    
74        def FileType(self):
75            """Return the filetype. This is always the string 'shapefile'"""
76            return "shapefile"
77    
78        def Dependencies(self):
79            """Return the empty tuple.
80    
81            The ShapefileStore doesn't depend on anything else.
82            """
83            return ()
84    
85    
86    class DerivedShapeStore:
87    
88        """A ShapeStore derived from other shapestores or tables"""
89    
90        def __init__(self, shapestore, table):
91            """Initialize the derived shapestore.
92    
93            The arguments are a shapestore for the shapedata and a table for
94            the tabular data.
95            """
96            self.shapestore = shapestore
97            self.table = table
98    
99        def Table(self):
100            """Return the table"""
101            return self.table
102    
103        def Shapefile(self):
104            """Return the shapefile of he underlying shapestore"""
105            return self.shapestore.Shapefile()
106    
107        def Dependencies(self):
108            """Return a tuple containing the shapestore and the table"""
109            return (self.shapestore, self.table)
110    
111    
112  class SimpleStore:  class SimpleStore:
113    
114      """Combine a shapefile and a table object"""      """Combine a shapefile and a table object"""
115    
116      def __init__(self, shapefile, table):      def __init__(self, shapefile, table):
117            warnings.warn("The SimpleStore is deprecated."
118                          " Use DerivedShapeStore instead",
119                          DeprecationWarning, stacklevel = 2)
120          self.shapefile = shapefile          self.shapefile = shapefile
121          self.table = table          self.table = table
122          self.filename = None          self.filename = None

Legend:
Removed from v.983  
changed lines
  Added in v.984

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26