/[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 723 by bh, Thu Apr 24 15:31:53 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
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    
# Line 28  class ShapefileStore: Line 56  class ShapefileStore:
56          self.filename = os.path.abspath(filename)          self.filename = os.path.abspath(filename)
57    
58          self.shapefile = shapelib.ShapeFile(self.filename)          self.shapefile = shapelib.ShapeFile(self.filename)
59          self.table = table.Table(filename)          self.dbftable = table.DBFTable(filename)
60            self.table = ShapeTable(self, session.TransientDB(), self.dbftable)
61    
62        def Table(self):
63            """Return the table containing the attribute data"""
64            return self.table
65    
66        def Shapefile(self):
67            """Return the shapefile object"""
68            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:
126    
127        """Combine a shapefile and a table object"""
128    
129        def __init__(self, shapefile, table):
130            warnings.warn("The SimpleStore is deprecated."
131                          " Use DerivedShapeStore instead",
132                          DeprecationWarning, stacklevel = 2)
133            self.shapefile = shapefile
134            self.table = table
135            self.filename = None
136    
137      def Table(self):      def Table(self):
138          return self.table          return self.table

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26