/[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 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
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    
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:
113    
114        """Combine a shapefile and a table object"""
115    
116        def __init__(self, shapefile, table):
117            warnings.warn("The SimpleStore is deprecated."
118                          " Use DerivedShapeStore instead",
119                          DeprecationWarning, stacklevel = 2)
120            self.shapefile = shapefile
121            self.table = table
122            self.filename = None
123    
124      def Table(self):      def Table(self):
125          return self.table          return self.table

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26