/[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 1497 by frank, Tue Jul 29 12:07: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]>
354    
355            * Thuban/UI/projdialog.py (UTMPanel._OnPropose): Added test for
356            a bounding box. A dialog is raised in case, no bounding box
357            is found. This fixes bug #2043:
358            https://intevation.de/rt/webrt?serial_num=2043
359    
360    2003-08-05  Bernhard Herzog  <[email protected]>
361    
362            * Thuban/Model/color.py (Color.__repr__): Make the repr of a color
363            object look like a Color instantiation. Formerly it looked like a
364            tuple.
365    
366            * test/test_color.py (TestColor.test_repr)
367            (TestColor.test_equality, TestColor.test_inequality): New. test
368            some more apects of the Color class
369            (TestTransparent.test_repr, TestTransparent.test_hex)
370            (TestTransparent.test_equality): New. Test cases for the
371            Transparent object.
372    
373    2003-08-04  Jan-Oliver Wagner <[email protected]>
374    
375            * Doc/manual/thuban-manual.xml: a number of small improvements.
376            The resulting file is the version submitted for GREAT-ER II.
377    
378    2003-08-01  Bernhard Herzog  <[email protected]>
379    
380            * Thuban/UI/resource.py, Thuban/UI/projdialog.py,
381            Thuban/UI/join.py, Thuban/UI/classgen.py, Thuban/UI/about.py,
382            Thuban/Model/resource.py: Insert cvs keywords and doc-strings.
383    
384            * Thuban/UI/common.py: Insert cvs keywords and doc-strings.
385            (Color2wxColour, wxColour2Color, ThubanBeginBusyCursor)
386            (ThubanEndBusyCursor): Add doc-strings
387    
388    2003-08-01  Bernhard Herzog  <[email protected]>
389    
390            First step towards PostGIS integration. More abstraction by movin
391            more code from the layer to the shapestore. More methods of the
392            layer are now simply delegated to the equivalent method of the
393            shapestore. The SHAPETYPE_* constants are now in data not in
394            layer.
395    
396            * Thuban/Model/data.py (SHAPETYPE_POLYGON, SHAPETYPE_ARC)
397            (SHAPETYPE_POINT, Shape): Move these constants and classes from
398            layer.py to data.py
399            (ShapefileStore.__init__): More Initialization for the new methods
400            and functionality.
401            (ShapefileStore.ShapeType, ShapefileStore.NumShapes)
402            (ShapefileStore.BoundingBox, ShapefileStore.ShapesInRegion)
403            (ShapefileStore.Shape): New methods that were formerly implemented
404            in the layer.
405            (DerivedShapeStore.Shape, DerivedShapeStore.ShapesInRegion)
406            (DerivedShapeStore.ShapeType, DerivedShapeStore.NumShapes)
407            (DerivedShapeStore.BoundingBox): New. DerivedShapeStore
408            equivalents of the new shape methods. These versions are simply
409            delegated to the original shapstore.
410    
411            * Thuban/Model/layer.py (SHAPETYPE_POLYGON, SHAPETYPE_ARC)
412            (SHAPETYPE_POINT, Shape): Removed. They're now in data.py
413            (Layer.SetShapeStore): Removed the initializatin of instance
414            variables that were needed for the stuff that's now in
415            ShapefileStore
416            (Layer.BoundingBox, Layer.NumShapes, Layer.ShapeType)
417            (Layer.Shape, Layer.ShapesInRegion): Simply delegate to the
418            shapestore.
419    
420            * Thuban/UI/classifier.py, Thuban/UI/renderer.py,
421            Thuban/UI/viewport.py: Import the SHAPETYPE_* constants from data
422            instead of layer.
423    
424            * test/test_shapefilestore.py: New. Tests for ShapefileStore.
425    
426            * test/test_derivedshapestore.py: New. Tests for DerivedShapeStore.
427    
428            * test/test_layer.py: Import the SHAPETYPE_* constants from data
429            instead of layer.
430            (TestLayer.test_derived_store): Remove the test for the exception
431            when instantiating the DerivedShapeStore with an incompatible
432            table which is now in test_derivedshapestore.py. Add some more
433            tests of the layer methods to determine whether they work for a
434            DerivedShapeStore as well.
435    
436    2003-07-31  Jonathan Coles   <[email protected]>
437    
438            * Doc/manual/thuban-manual.xml: Fix the list of required packages
439            by just listing the name and where they can be found.
440    
441    2003-07-31  Frank Koormann   <[email protected]>
442    
443            * Doc/manual/thuban-manual.xml:
444            Changed the screenshot elements to figure.
445            Changed some variablelist elements to itemizedlist.
446            Added section on GDAL formats.
447    
448    2003-07-31  Jonathan Coles   <[email protected]>
449    
450            * Doc/manual/thuban-manual.xml: Added a few sentences about
451            the Fix Border Color option when generating classes.
452    
453    2003-07-30  Jonathan Coles   <[email protected]>
454    
455            * Thuban/Model/classgen.py: Add docstrings. Rename specific
456            Ramp instances to use lower_case_style.
457    
458            * Thuban/UI/classgen.py: Use renamed Ramp instances.
459            
460            * Thuban/UI/classifier.py: Add docstrings.
461    
462            * Thuban/UI/dock.py: Add docstrings.
463    
464            * test/test_classgen.py: Use renamed Ramp instances.
465    
466    2003-07-30  Bernhard Herzog  <[email protected]>
467    
468            * Thuban/Lib/connector.py (QueueingPublisher): Removed. This class
469            was never used in Thuban.
470    
471    2003-07-30  Bernhard Herzog  <[email protected]>
472    
473            * Thuban/UI/join.py (JoinDialog.__init__): Use the table's Title()
474            method directly instead of going through the transient_table
475            method. This faster because transient_table may force the copy of
476            a DBF file into the transient database and setting a table's title
477            doesnm't affect the title of the associated transient table, so
478            this fixes RT #2042
479    
480            * Thuban/UI/main.py (__version__): Don't import the already
481            removed show_exception_dialog.
482    
483    2003-07-29  Jonathan Coles   <[email protected]>
484    
485            * Thuban/UI/application.py (ThubanApplication.ShowExceptionDialog):
486            Put back this method and remove the equivalent function since we
487            are setting the exception hook from within this class (OnInit).
488    
489    2003-07-29  Jonathan Coles   <[email protected]>
490    
491            * Doc/manual/images/5_2_custom_ramp.png,
492            Doc/manual/images/5_2_quantiles.png,
493            Doc/manual/images/5_2_uniform_dist.png,
494            Doc/manual/images/5_2_unique_values.png,
495            Doc/manual/images/8_int_error.png: New screen shots.
496    
497            * Doc/manual/thuban-manual.xml: Fixed typos and wording, clarified
498            some points, and added more screen shots.
499    
500    2003-07-29  Bernhard Herzog  <[email protected]>
501    
502            * Thuban/Model/data.py: Remove the now unused import of warnings
503    
504    2003-07-29  Bernhard Herzog  <[email protected]>
505    
506            * Thuban/Model/data.py (SimpleStore): Removed. This class has been
507            deprecated since before the 0.8 release and isn't used in Thuban
508            itself anymore.
509    
510            * Thuban/Model/transientdb.py: Remove some unnecessary imports
511    
512    2003-07-29  Jonathan Coles   <[email protected]>
513    
514            * Thuban/UI/application.py (ThubanApplication.OnInit): set the
515            python exception hook here so that we are sure to catch any
516            Thuban exception that happen during initialization.
517    
518            * Thuban/UI/main.py (main): Don't set the exception hook here,
519            it will get set in ThubanApplication.OnInit.
520    
521    2003-07-29  Jonathan Coles   <[email protected]>
522                                                                                
523            * Thuban/UI/application.py (ThubanApplication.ShowExceptionDialog):
524            Removed and called it show_exception_dialog() so that the exception
525            handler can be set before the class is created.
526                                                                                
527            * Thuban/UI/main.py (main): Install the exception handler before
528            a ThubanApplication is created.
529                                                                                    
530    2003-07-29  Bernhard Herzog  <[email protected]>
531    
532            * po/it.po: New. Italian translation by Maurizio Napolitano
533    
534            * po/ru.po: New. Russian translation by Alex Shevlakov
535    
536    2003-07-29  Frank Koormann   <[email protected]>
537    
538            * Doc/manual/thuban-manual.xml: Extended section on supported
539            projections.
540            
541  2003-07-29  Frank Koormann   <[email protected]>  2003-07-29  Frank Koormann   <[email protected]>
542    
543          * Doc/manual/thuban-manual.xml: gaspell-checked.          * Doc/manual/thuban-manual.xml: gaspell-checked.

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26