/[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 765 by bh, Tue Apr 29 12:42:14 2003 UTC revision 1074 by bh, Tue May 27 17:39:43 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        def OrigShapeStore(self):
86            """Return None.
87    
88            The ShapefileStore was not derived from another shapestore.
89            """
90            return None
91    
92    
93    class DerivedShapeStore:
94    
95        """A ShapeStore derived from other shapestores or tables"""
96    
97        def __init__(self, shapestore, table):
98            """Initialize the derived shapestore.
99    
100            The arguments are a shapestore for the shapedata and a table for
101            the tabular data.
102            """
103            self.shapestore = shapestore
104            self.table = table
105    
106        def Table(self):
107            """Return the table"""
108            return self.table
109    
110        def Shapefile(self):
111            """Return the shapefile of the underlying shapestore"""
112            return self.shapestore.Shapefile()
113    
114        def Dependencies(self):
115            """Return a tuple containing the shapestore and the table"""
116            return (self.shapestore, self.table)
117    
118        def OrigShapeStore(self):
119            """
120            Return the original shapestore the derived store was instantiated with
121            """
122            return self.shapestore
123    
124    
125  class SimpleStore:  class SimpleStore:
126    
127      """Combine a shapefile and a table object"""      """Combine a shapefile and a table object"""
128    
129      def __init__(self, shapefile, table):      def __init__(self, shapefile, table):
130            warnings.warn("The SimpleStore is deprecated."
131                          " Use DerivedShapeStore instead",
132                          DeprecationWarning, stacklevel = 2)
133          self.shapefile = shapefile          self.shapefile = shapefile
134          self.table = table          self.table = table
135          self.filename = None          self.filename = None

Legend:
Removed from v.765  
changed lines
  Added in v.1074

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26