/[thuban]/branches/WIP-pyshapelib-bramz/ChangeLog
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/ChangeLog

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

revision 1550 by jan, Wed Aug 6 11:19:41 2003 UTC revision 1602 by bh, Mon Aug 18 17:22:17 2003 UTC
# Line 1  Line 1 
1    2003-08-18  Bernhard Herzog  <[email protected]>
2    
3            * test/support.py (ThubanTestResult.printErrors): Indent the
4            reason for the skips in the output to make it a bit more readable.
5            (execute_as_testsuite): New helper function to run a test suite
6            and print some more information.
7            (run_tests): Use execute_as_testsuite to run the tests
8    
9            * test/runtests.py (main): Use execute_as_testsuite to run the
10            tests
11    
12    2003-08-18  Bernhard Herzog  <[email protected]>
13    
14            Fix some bugs in Thuban and the test suite that were uncovered by
15            changes introduced in Python 2.3:
16    
17            * Thuban/Model/table.py (DBFTable.__init__): Make sure the
18            filename is an absolute name
19    
20            * Thuban/Model/layer.py (RasterLayer.__init__): Make sure the
21            filename is an absolute name
22    
23            * test/test_save.py (SaveSessionTest.testRasterLayer): Use a
24            unique filename to save to and use the correct relative filename
25            in the expected output.
26            (SaveSessionTest.test_dbf_table): Use the correct relative
27            filename in the expected output.
28    
29            * test/test_layer.py (TestLayer.test_raster_layer): Update the
30            test to check whether the filename is absolute.
31    
32    2003-08-18  Jan-Oliver Wagner <[email protected]>
33    
34            * Thuban/UI/about.py (About.__init__): Added Silke Reimer.
35    
36    2003-08-15  Bernhard Herzog  <[email protected]>
37    
38            Change the way shapes are returned by a shape store. The
39            ShapesInRegion method returns an iterator over actual shape
40            objects instead of a list of shape ids.
41    
42            * Thuban/Model/data.py (ShapefileShape.ShapeID): New. Return shape
43            id.
44            (ShapefileStore.ShapesInRegion): Return an iterator over the
45            shapes which yields shape objects instead of returning a list of
46            shape ids
47            (ShapefileStore.AllShapes): New. Return an iterator over all
48            shapes in the shape store
49            (DerivedShapeStore.AllShapes): New. Like in ShapefileStore
50    
51            * Thuban/Model/layer.py (Layer.ShapesInRegion): Update
52            doc-string.
53    
54            * Thuban/UI/baserenderer.py
55            (BaseRenderer.layer_ids, BaseRenderer.layer_shapes): Rename to
56            layer_shapes and make it return an iterator containg shapes
57            instead of a list of ids.
58            (BaseRenderer.draw_shape_layer): Update doc-string; Adapt to
59            layer_shapes() change
60    
61            * Thuban/UI/renderer.py (ScreenRenderer.layer_ids)
62            (ScreenRenderer.layer_shapes): Rename as in BaseRenderer
63    
64            * Thuban/UI/viewport.py (ViewPort._find_shape_in_layer): Adapt to
65            changes in the ShapesInRegion return value.
66            (ViewPort._get_hit_tester): Remove commented out code
67    
68            * test/mockgeo.py (SimpleShapeStore.ShapesInRegion): Adapt to the
69            new return value.
70            (SimpleShapeStore.AllShapes): New. Implement this method too.
71    
72            * test/test_layer.py (TestLayer.test_arc_layer)
73            (TestLayer.test_polygon_layer, TestLayer.test_point_layer)
74            (TestLayer.test_point_layer_with_projection)
75            (TestLayer.test_derived_store): Adapt to changes in the
76            ShapesInRegion return value.
77    
78            * test/test_shapefilestore.py
79            (TestShapefileStoreArc.test_shapes_in_region)
80            (TestShapefileStorePolygon.test_shapes_in_region)
81            (TestShapefileStorePoint.test_shapes_in_region): Adapt to changes
82            in the ShapesInRegion return value.
83            (TestShapefileStorePoint.test_all_shapes)
84            (TestShapefileStoreArc.test_shape_shapeid): New tests for the new
85            methods
86    
87            * test/test_derivedshapestore.py
88            (TestDerivedShapeStore.test_shapes_in_region): Adapt to changes in
89            the ShapesInRegion return value.
90            (TestDerivedShapeStore.test_all_shapes)
91            (TestDerivedShapeStore.test_shape_shapeid): New tests for the new
92            methods
93    
94    2003-08-15  Bernhard Herzog  <[email protected]>
95    
96            Make the renderers deal correctly with raw vs. python level
97            representation of shape geometries
98    
99            * Thuban/UI/baserenderer.py (BaseRenderer.low_level_renderer):
100            Return a flag useraw in addition to the callable and the parameter
101            to indicate whether the callable can deal with the raw shape data
102            or uses the higher level python lists of coordinates. The callable
103            now should accept either the raw data or the return value of the
104            shape's Points() method.
105            (BaseRenderer.draw_shape_layer): Adapt to the low_level_renderer
106            change
107            (BaseRenderer.projected_points): Instead of the shape id use the
108            points list as parameter.
109            (BaseRenderer.draw_polygon_shape, BaseRenderer.draw_arc_shape)
110            (BaseRenderer.draw_point_shape): Adapt to projected_points()
111            change and accept the points list as parameter instead of the
112            shape id.
113    
114            * Thuban/UI/renderer.py (MapRenderer.low_level_renderer): Return
115            the useraw flag as required by the BaseRenderer
116            (ScreenRenderer.draw_shape_layer): Adapt to low-level renderer
117            changes.
118    
119            * test/test_baserenderer.py
120            (TestBaseRenderer.test_point_with_classification): New test for
121            rendering a map with classifications.
122    
123    2003-08-15  Bernhard Herzog  <[email protected]>
124    
125            * Thuban/UI/viewport.py (ViewPort.find_shape_at)
126            (ViewPort._find_shape_in_layer, ViewPort._find_shape_in_layer)
127            (ViewPort._get_hit_tester, ViewPort.projected_points)
128            (ViewPort._hit_point, ViewPort._hit_arc, ViewPort._hit_polygon)
129            (ViewPort._find_label_at): Split the find_shape_at method into
130            several new methods and use the functions in the hit-test module.
131    
132            * Thuban/UI/hittest.py: New module with Python-level hit-testing
133            functions
134    
135            * test/test_hittest.py: New. Test for the new hittest module
136    
137    2003-08-15  Bernhard Herzog  <[email protected]>
138    
139            * Thuban/Model/layer.py (Layer.ShapesInRegion): Apply the layer
140            projection to all corners of the bounding box to get a better
141            approximation of the projected bounding box
142    
143            * test/test_layer.py (TestLayer.test_point_layer_with_projection):
144            New. Test coordinate handling of a layer with a projection.
145            Catches the bug fixed in Layer.ShapesInRegion
146    
147    2003-08-15  Bernhard Herzog  <[email protected]>
148    
149            Move some of the mock objects in test_baserenderer into their own
150            module so they can easily be used from other tests
151    
152            * test/mockgeo.py: New test helper module with some mock objects
153            for geometry related things like shapes, shapestores and
154            projections.
155    
156            * test/test_mockgeo.py: New. Tests for the new helper module
157    
158            * test/test_baserenderer.py: Some of the mock-objects are in
159            mockgeo now.
160    
161    2003-08-12  Jan-Oliver Wagner <[email protected]>
162    
163            * Thuban/UI/about.py (About.__init__): Added Bj�rn Broscheit.
164    
165    2003-08-12  Bernhard Herzog  <[email protected]>
166    
167            * po/de.po: New. German translations by Bjoern Broscheit
168    
169    2003-08-12  Bernhard Herzog  <[email protected]>
170    
171            * Thuban/UI/projdialog.py (UnknownProjPanel._DoLayout): Translated
172            strings have to be one string literal.
173    
174    2003-08-11  Bernhard Herzog  <[email protected]>
175    
176            * test/support.py (FloatComparisonMixin.assertPointListEquals):
177            New. This method was used in various derived classes, but it's
178            better to have it here.
179    
180            * test/test_shapefilestore.py
181            (ShapefileStoreTests.assertPointListEquals): Removed. It's now in
182            FloatComparisonMixin
183    
184            * test/test_layer.py (TestLayer.assertPointListEquals): Removed.
185            It's now in FloatComparisonMixin
186    
187            * test/test_derivedshapestore.py
188            (TestDerivedShapeStore.assertPointListEquals): Removed. It's now
189            in FloatComparisonMixin
190    
191    2003-08-11  Bernhard Herzog  <[email protected]>
192    
193            * Thuban/UI/join.py (JoinDialog.OnJoin): Add missing space to
194            error message
195    
196    2003-08-08  Jan-Oliver Wagner <[email protected]>
197    
198            * Doc/manual/thuban-manual.xml: Now use authorgroup. Added revhistory
199            with version number.
200            Changed title to reflect version number of Thuban.
201    
202    2003-08-08  Jan-Oliver Wagner <[email protected]>
203    
204            * Thuban/UI/about.py (About.__init__): Reworked the hall of fame. Now
205            the list corresponds to the "About" web page.
206    
207    2003-08-08  Bernhard Herzog  <[email protected]>
208    
209            * Thuban/UI/projdialog.py (UTMProposeZoneDialog.dialogLayout):
210            Make sure translated strings are recognized as one string literal.
211    
212            * Thuban/UI/proj4dialog.py (UTMProposeZoneDialog.dialogLayout):
213            Make sure translated strings are recognized as one string literal.
214    
215            * Thuban/UI/classgen.py (ClassGenDialog.OnOK): Make sure
216            translated strings are recognized as one string literal.
217    
218            * Thuban/UI/application.py (ThubanApplication.OpenSession): Make
219            sure translated strings are recognized as one string literal.
220    
221    2003-08-07  Bernhard Herzog  <[email protected]>
222    
223            * Thuban/Model/data.py (DerivedShapeStore.RawShapeFormat): New.
224            Simply delegates to the original shapestore.
225    
226            * test/test_derivedshapestore.py
227            (TestDerivedShapeStore.test_raw_format): New. Test case for
228            DerivedShapeStore.RawShapeFormat
229    
230    2003-08-07  Bernhard Herzog  <[email protected]>
231    
232            Add raw data interface to shape objects.
233    
234            * Thuban/Model/data.py (ShapefileShape, Shape): Rname the shape
235            class to ShapefileShape which now holds shapefile specific
236            information.
237            (ShapefileShape.compute_bbox): Simplified to not cache any
238            information. The way this method is used that shouldn't matter
239            performance wise.
240            (ShapefileShape.RawData): New. Return the shapeid which is the raw
241            data format for shapes from shapefiles.
242            (ShapefileStore.RawShapeFormat): New. Return the raw datatype used
243            in the shape objects returned by a shapestore. For a
244            ShapefileStore this is always RAW_SHAPEFILE.
245            (RAW_PYTHON, RAW_SHAPEFILE): Constants for the RawShapeFormat
246            method.
247    
248            * test/test_shapefilestore.py
249            (TestShapefileStore.test_raw_format): New test to test the raw
250            format feature of shapes.
251    
252            * Thuban/Model/layer.py: Remove the unused import of Shape from
253            data. It was only there for interface compatibility but it's not
254            used inside of Thuban and the generic Shape class has gone away.
255    
256            * Thuban/UI/renderer.py (MapRenderer.low_level_renderer): Check
257            the raw data format and only use an optimized version of its a
258            shapefile.
259    
260    2003-08-07  Bernhard Herzog  <[email protected]>
261    
262            * test/test_baserenderer.py (SimpleShape): Shape class for the
263            tests.
264            (SimpleShapeStore.Shape): Use SimpleShape instead of
265            Thuban.Model.data.Shape to make the tests independed of the coming
266            changes.
267    
268    2003-08-07  Bernhard Herzog  <[email protected]>
269    
270            * test/support.py (SkipTest, ThubanTestResult, ThubanTestRunner)
271            (ThubanTestProgram): New classes that extend the respective
272            classes from unittest. These new version support skipping tests
273            under certain expected conditions. In the Thuban test suite we
274            uses this for tests that require the optional gdal support.
275            (run_tests): Use ThubanTestProgram instead of the unittest.main()
276    
277            * test/runtests.py (main): Use the new ThubanTestRunner instead of
278            the normal one from unittest
279    
280            * test/test_layer.py (TestLayer.test_raster_layer): If this test
281            is not run because gdal support isn't available report this to the
282            runner.
283    
284            * test/test_baserenderer.py
285            (TestBaseRenderer.test_raster_no_projection): Do not run this test
286            if gdal support isn't available and report this to the runner.
287    
288    2003-08-06  Bernhard Herzog  <[email protected]>
289    
290            Rearrange the renderers a bit, partly in preparation for changes
291            required for the postgis merge, partly to make it more testable.
292            Also make the representation of coordinates in Shapes more
293            consistent.
294    
295            * Thuban/UI/renderer.py (MapRenderer): Most of the code/methods in
296            this class is now in BaseRenderer. This class is now practically
297            only a specialization of BaseRenderer for rendering to an actual
298            wx DC.
299            (ScreenRenderer.draw_shape_layer): Use self.low_level_renderer()
300            to get the shapetype specific rendering functions.
301    
302            * Thuban/UI/baserenderer.py: New file with the basic rendering
303            logic. The code in this file is completely independend of wx.
304            (BaseRenderer): Class with the basic rendering logic
305    
306            * test/test_baserenderer.py: New. Test cases for BaseRenderer
307    
308            * Thuban/UI/view.py (MapCanvas.__init__): New instance variable
309            error_on_redraw to guard agains endless loops and stack overflows
310            when there's a bug in the rendering code that raises exceptions.
311            (MapCanvas.OnIdle, MapCanvas._do_redraw): Split the actual
312            rendering into a separate method _do_redraw so that error handling
313            is a bit easier. When an exception occurs, set error_on_redraw to
314            true. When it's true on entry to OnIdle do nothing and return
315            immediately.
316    
317            * Thuban/Model/data.py (ShapefileStore.Shape): For consistency, a
318            Shape object will always have the coordinates as a list of list of
319            coordinate pairs (tuples).
320            (Shape.compute_bbox): Adapt to new representation.
321    
322            * Thuban/UI/viewport.py (ViewPort.find_shape_at)
323            (ViewPort.LabelShapeAt): Adapt to new coordinate representation in
324            Shape objects.
325    
326            * test/test_shapefilestore.py
327            (ShapefileStoreTests.assertFloatTuplesEqual)
328            (ShapefileStoreTests.assertPointListEquals): Rename to
329            assertPointListEquals and change purpose to checking equality of
330            the lists returned by Shape.Points().
331            (TestShapefileStoreArc.test_shape)
332            (TestShapefileStorePolygon.test_shape)
333            (TestShapefileStorePoint.test_shape): Use the new
334            assertPointListEquals instead of assertFloatTuplesEqual
335    
336            * test/test_layer.py (TestLayer.assertFloatTuplesEqual)
337            (TestLayer.assertPointListEquals): Rename to assertPointListEquals
338            and change purpose to checking equality of the lists returned by
339            Shape.Points().
340            (TestLayer.test_arc_layer, TestLayer.test_arc_layer)
341            (TestLayer.test_polygon_layer, TestLayer.test_point_layer)
342            (TestLayer.test_derived_store): Use the new assertPointListEquals
343            instead of assertFloatTuplesEqual
344    
345            * test/test_derivedshapestore.py
346            (TestDerivedShapeStore.assertFloatTuplesEqual)
347            (TestDerivedShapeStore.assertPointListEquals): Rename to
348            assertPointListEquals and change purpose to checking equality of
349            the lists returned by Shape.Points().
350            (TestDerivedShapeStore.test_shape): Use the new
351            assertPointListEquals instead of assertFloatTuplesEqual
352    
353  2003-08-06  Jan-Oliver Wagner <[email protected]>  2003-08-06  Jan-Oliver Wagner <[email protected]>
354    
355          * Thuban/UI/projdialog.py (UTMPanel._OnPropose): Added test for          * Thuban/UI/projdialog.py (UTMPanel._OnPropose): Added test for

Legend:
Removed from v.1550  
changed lines
  Added in v.1602

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26