/[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 1267 by jonathan, Fri Jun 20 14:36:46 2003 UTC revision 1380 by bh, Tue Jul 8 13:23:31 2003 UTC
# Line 1  Line 1 
1    2003-07-08  Bernhard Herzog  <[email protected]>
2    
3            * Thuban/Model/classgen.py (CustomRamp.GetProperties): Compute the
4            interpolated colors correctly.
5    
6            * test/test_classgen.py (TestCustomRamp.test_color_interpolation):
7            New. Test case for the fix in classgen.py
8    
9    2003-07-08  Bernhard Herzog  <[email protected]>
10    
11            * test/runtests.py (main): Make the default output less verbose
12            and add a verbosity option (-v) to get the old output
13    
14    2003-07-08  Bernhard Herzog  <[email protected]>
15    
16            * Resources/XML/thuban-0.9.dtd: New. This will become the DTD for
17            0.9.
18    
19            * Thuban/Model/transientdb.py (TransientJoinedTable.JoinType):
20            New. Return the join type
21    
22            * Thuban/Model/save.py (SessionSaver.write_session): Use new 0.9
23            DTD
24            (SessionSaver.write_data_containers): Save the join type for
25            joined tables
26    
27            * Thuban/Model/load.py (SessionLoader.__init__): Add the new 0.9
28            namespace
29            (SessionLoader.start_jointable): Handle the jointype attribute
30    
31            * test/test_load_0_8.py: New. Effectively a copy of test_load.py
32            as of Thuban 0.8. These are now tests to determine whether Thuban
33            can still read files generated by Thuban 0.8
34    
35            * test/test_load.py (LoadSessionTest.dtd)
36            (TestSingleLayer.file_contents)
37            (TestLayerVisibility.file_contents, TestLabels.file_contents)
38            (TestLayerProjection.file_contents)
39            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
40            (TestJoinedTable.file_contents)
41            (TestLoadError.file_contents): Update for new DTD
42            (TestJoinedTable.file_contents, TestJoinedTable.setUp): Add test
43            for new join type attribute
44    
45            * test/test_save.py (SaveSessionTest.dtd)
46            (SaveSessionTest.testEmptySession)
47            (SaveSessionTest.testSingleLayer)
48            (SaveSessionTest.testLayerProjection)
49            (SaveSessionTest.testRasterLayer)
50            (SaveSessionTest.testClassifiedLayer)
51            (SaveSessionTest.test_dbf_table)
52            (SaveSessionTest.test_joined_table): Update for new DTD
53            (SaveSessionTest.test_joined_table): Add test for new join type
54            attribute
55    
56    2003-07-04  Bernhard Herzog  <[email protected]>
57    
58            * Thuban/Model/table.py (_find_dbf_column_names): New. Helper
59            function for table_to_dbf
60            (table_to_dbf): Deal with names longer than the 10 character limit
61    
62            * test/test_dbf_table.py (TestTableToDBF.test_table_to_dbf): Add
63            doc-string
64            (TestTableToDBF.test_table_to_dbf_long_col_names): New test for
65            long column names
66    
67    2003-07-03  Bernhard Herzog  <[email protected]>
68    
69            * Doc/manual/thuban-manual.xml: Fix the CVS Revision Tag syntax
70    
71    2003-07-03  Bernhard Herzog  <[email protected]>
72    
73            * Doc/manual/thuban-manual.xml, Doc/manual/README: New. Skeleton
74            for the Thuban manual and README with some basic information about
75            the manual
76    
77    2003-07-03  Bernhard Herzog  <[email protected]>
78    
79            * Thuban/Model/transientdb.py (TransientJoinedTable.__init__):
80            Update doc-string
81            (TransientJoinedTable.create): Do not modify the column objects of
82            the input tables in place and copy all columns of the input tables
83            into the joined table after all.
84    
85            * test/test_transientdb.py
86            (TestTransientTable.test_transient_joined_table_same_column_name):
87            Update to reflect the new behavior
88            (TestTransientTable.test_transient_joined_table_with_equal_column_names):
89            Update to reflect the new behavior
90            (TestTransientTable.test_transient_joined_table_name_collisions_dont_modify_in_place):
91            New test case for a bug which modified the column objects in place
92    
93    2003-07-02  Jonathan Coles   <[email protected]>
94    
95            * Thuban/Model/classgen.py (generate_singletons,
96            generate_uniform_distribution, generate_quantiles,
97            GenQuantiles0): Make sure maxValue isn't less than
98            one, otherwise we could divide by zero.
99    
100            * test/test_classgen.py (ClassGenTest.doClassRangeTest,
101            ClassGenTest.doClassSingleTest): Call doBoundsTest to
102            check the end classification groups against the
103            proper property values.
104            (ClassGenTest.doBoundsTest): New. Checks the first and
105            last classification groups to make sure their properties
106            are the correct upper and lower bounds for a color ramp.
107    
108    2003-07-02  Jonathan Coles   <[email protected]>
109    
110            * Thuban/Model/classgen.py (generate_singletons,
111            generate_uniform_distribution, generate_quantiles,
112            GenQuantiles0): The denominator was one to high when
113            calculating the index for the ramp causing the index
114            to never to reach one.
115    
116    2003-07-02  Jonathan Coles   <[email protected]>
117    
118            Changed the singature of ClassGroupRange.__init__ and
119            ClassGroupRange.SetRange() so that the min/max values are
120            passed as a tuple. This makes a better calling scheme for
121            when a Range object is passed instead.
122    
123            * Thuban/Model/classgen.py: Fixed parameters to
124            ClassGroupRange constructor.
125    
126            * Thuban/Model/classification.py (ClassGroupRange.__init__):
127            Consolidate the min/max parameters into a single _range which
128            can either be a tuple or a Range object.
129            (ClassGroupRange.SetRange): Consolidate the min/max parameters
130            into a single _range which can either be a tuple or a Range object.
131    
132            * Thuban/Model/load.py (SessionLoader.start_clrange): Fix
133            call to ClassGroupRange constructor to use a tuple.
134    
135            * Thuban/Model/layer.py (Layer.SetClassification): Switch
136            the classification instance variable to the new class
137            before calling _set_layer otherwise subscribers to a
138            LAYER_CHANGED event will not see any difference.
139    
140            * test/test_classification.py: Fix tests of ClassGroupRange
141            so that they use the new signature.
142    
143            * test/test_load.py: Fix use of ClassGroupRange so that it
144            uses the new signature.
145    
146            * test/test_load_0_2.py: Fix use of ClassGroupRange so that it
147            uses the new signature.
148    
149            * test/test_save.py: Fix use of ClassGroupRange so that it
150            uses the new signature.
151    
152    
153    2003-07-01  Jonathan Coles   <[email protected]>
154    
155            * Thuban/Model/classgen.py: Fixes RTbug #1972, 1971.
156            Import used objects/class from color.
157            (generate_singletons): We don't
158            need the numGroups parameter anymore because we are using
159            the new ramps with GetProperties().
160            (generate_uniform_distribution): Use new ramp method
161            GetProperties().
162            (generate_quantiles, GenQuantiles0): Use new ramp method
163            GetProperties().
164            (CustomRamp.SetNumGroups): Removed. The ramps now map
165            a value from 0 to 1 to class properties so the number
166            of groups is not needed ahead of time.
167            (CustomRamp.next): Removed. CustomRamp does not support
168            interation anymore.
169            (CustomRamp.GetProperties): Returns a ClassGroupProperties
170            object based on the index value from 0 to 1 that is
171            passed to it.
172            (GreyRamp, RedRamp, GreenRamp, BlueRamp, GreenToRedRamp):
173            Made into instances of Monochromatic class instread of
174            deriving from it.
175            (HotToCold.SetNumGroups): Removed. See CustomRamp.
176            (HotToCold.next): Removed. See CustomRamp.
177    
178            * Thuban/Model/classification.py: Fixes RTbug #1973, 1971.
179            (Classification.SetField, Classification.SetFieldType):
180            Replaced with SetFieldInfo.
181            (Classification.SetFieldInfo): New. Does a better job of
182            what SetField and SetFieldType used to do by combining
183            their function since they should really always be done
184            at the same time.
185            (Classification.SetLayer): Renamed to _set_layer.
186            (Classification._set_layer): Should only be called from
187            Layer's SetClassification. This does not cause a recursive
188            call as SetLayer did because we know that Layer knows about
189            the classification.
190    
191            * Thuban/Model/color.py: Fixes RTbug #1971.
192            (_Transparent): Renamed from Transparent so it doesn't
193            conflict with the module variable.
194            (Transparent, Black): Renamed from Color.Transparent,
195            Color.Black so they are not class variables.
196    
197            * Thuban/Model/layer.py: Fixes RTbug #1971, 1973.
198            (Layer.Destroy): We don't need to call SetClassification
199            anymore to clear out the back reference in the classifcation
200            to the layer. It's better to set it to None using _set_layer,
201            and we won't be creating another clas object too.
202            (Layer.SetClassification): Classification._set_layer is not
203            recursive so remove all the locking variables. Also clean
204            up the code so that it remains unchanged if something fails.
205    
206            * Thuban/Model/load.py: Fixes RTbug #1971.
207            (SessionLoader.start_classification): Call
208            Classification.SetFieldInfo().
209    
210            * Thuban/Model/save.py: Removed import of Color which wasn't
211            being used.
212    
213            * Thuban/UI/classgen.py: Fixes RTbug #1972.
214            (ClassGenDialog.__init__): Color ramps are now instances
215            already so we don't need to create any new objects.
216            (ClassGenDialog.OnOK): Check for numGroups is no longer
217            necessary because we never use it.
218    
219            * Thuban/UI/classifier.py: Fixes RTbug #1971.
220            (Classifier.__BuildClassification, Classifier.__SetGridTable):
221            Call Classification.SetFieldInfo() instead of SetFieldType.
222    
223            * Thuban/UI/renderer.py: Fixes RTbug #1971.
224    
225            * Thuban/UI/view.py: Fixes RTbug #1974, 1971.
226            (MapCanvas.__init__): Subscribe to the idle time event. Set
227            background color to white.
228            (MapCanvas.OnPaint): Set a flag indicating that we should
229            render the map during idle time. If we already have a bitmap
230            just draw it now.
231            (MapCanvas.OnIdle): New. Render the map only during idle time.
232            This also fixes a problem with the busy cursor under gtk.
233    
234            * test/test_classgen.py (ClassGenTest.test_generate_singletons):
235            Fix calls to generate_singletons because the signature changed.
236    
237            * test/test_classification.py: Fix color references and
238            change calls to Classification.[SetField|SetFieldType] to
239            SetFieldInfo.
240    
241            * test/test_load.py: Fix color references.
242    
243            * test/test_load_0_2.py: Fix color references.
244    
245            * test/test_save.py (SaveSessionTest.testClassifiedLayer):
246            Change calls to Classification.[SetField|SetFieldType] to
247            SetFieldInfo.
248    
249    2003-07-01  Frank Koormann   <[email protected]>
250    
251            MERGE from the greater-ms3 branch.
252    
253            * test/test_transientdb.py
254            (TestTransientTable.test_transient_joined_table_with_equal_column_names):
255            New. Test join of two tables with partly equal column names.
256    
257            * Thuban/Model/transientdb.py (TransientJoinedTable.create):
258            If duplicates in left and right tables column names are found,
259            append '_' (underscores) to the name until it is unique.
260            Create always new internal names for the resulting table and reference
261            columns in the join statement with <table>.<column>
262    
263    2003-07-01  Bernhard Herzog  <[email protected]>
264    
265            * test/test_transientdb.py
266            (TestTransientTable.test_transient_joined_table_same_column_name):
267            New. Test whether joining on columns with the same names in both
268            tables works.
269            
270            * Thuban/Model/transientdb.py (TransientJoinedTable.create): Make
271            sure to use the right internal names even when joining on field
272            with the same names in both tables. Also, detect duplicate names
273            in the joined table correctly.
274    
275    2003-07-01  Frank Koormann   <[email protected]>
276    
277            * Thuban/UI/renderer.py (ExportRenderer.render_legend):
278            Reverse List of layers to render in same order as in desktop legend.
279    
280    2003-06-30  Jonathan Coles   <[email protected]>
281    
282            * Thuban/version.py (make_tuple): Takes a version string
283            and splits it into a tuple of at most three integers.
284            Used make_tuple() to make tuple versions of the version
285            numbers.
286    
287            * Thuban/UI/about.py: Add Thuban email addresses.
288    
289    2003-06-30  Jonathan Coles   <[email protected]>
290    
291            * Thuban/version.py: SQLite/PySQLite version dependencies
292            were too high.
293    
294    2003-06-30  Jonathan Coles   <[email protected]>
295    
296            * Thuban/version.py: Update version to 0.8.1
297            
298            * MANIFEST.in: Added Projections so that default.proj is
299            included.
300    
301    2003-06-26  Jonathan Coles   <[email protected]>
302    
303            New About box with lots more information including library
304            versions and credits. More/better version checking before
305            Thuban starts.
306    
307            * Thuban/UI/about.py: New. New About box that displays
308            library version information and credits.
309    
310            * Thuban/version.py: Added new 'versions' dictionary which
311            contains the verions of various libraries which are checked
312            when the module loads.
313            (verify_versions): Check all version numbers and returns
314            a list of errors.
315    
316            * Thuban/UI/classifier.py (Classifier.__EnableButtons):
317            Reset the status of the buttons as the situation warrants,
318            but in a better more reliable way by not relying on the
319            current status to determine what needs to change.
320    
321            * Thuban/UI/main.py (wxCHECK_VERSION): Removed. Not needed.
322            (verify_versions): Remove most of the code since it is
323            now in Thuban.version.verify_versions.o
324    
325            * Thuban/UI/mainwindow.py (MainWindow.About): Call new
326            About box in Thuban.UI.about.
327    
328            * extensions/thuban/gdalwarp.cpp (get_gdal_version): New.
329            Returns the version of gdal library being used as a string.
330    
331            * extensions/thuban/wxproj.cpp (check_version, check_version_gtk):
332            Removed.
333            (get_proj_version): Return the version of PROJ that the file
334            was compiled with.
335            (get_gtk_version): Return th version of GTK that the file
336            was compiled with.
337    
338    2003-06-25  Jonathan Coles   <[email protected]>
339    
340            * Thuban/UI/classifier.py (Classifier.EditSymbol): The parent
341            of the SelectPropertiesDialog should be self so the window
342            appears on top.
343            (ClassGroupPropertiesCtrl.DoEdit): The parent
344            of the SelectPropertiesDialog should be self so the window
345            appears on top.
346    
347            * Thuban/UI/resource.py: Cleaned up how we determine file
348            extensions.
349            (GetImageResource): Return an wxImage from our Resources.
350    
351    2003-06-24  Jonathan Coles   <[email protected]>
352    
353            * Thuban/UI/renderer.py (ExportRenderer.render_legend):
354            Check that a layer has a classification before trying
355            to get it. Raster layers don't have classifications.
356    
357    2003-06-23  Jonathan Coles   <[email protected]>
358            
359            * setup.py: Add Resources/XML to resource list.
360        
361    2003-06-23  Jonathan Coles   <[email protected]>
362    
363            * setup.cfg: Fix copyright dates
364        
365    2003-06-23  Jonathan Coles   <[email protected]>
366    
367            * MANIFEST.in: Update with Resources/XML
368    
369            * setup.py: Don't include Locale resources yet as we don't
370            have any and it causes problems building the distribution
371            for Windows. Update version to 0.8.0.
372    
373            * Doc/thuban.dtd: Removed since it is now in Resources/XML.
374    
375            * Thuban/UI/mainwindow.py: Add blank line at the end because
376            file was not being read correctly building the Windows
377            distribution.
378    
379    2003-06-23  Jonathan Coles   <[email protected]>
380    
381            * Thuban/UI/mainwindow.py (MainWindow.About): Fix text.
382    
383            * Thuban/version.py: Temporarily update longversion for
384            the 0.8 release so that it doesn't have the cvs revision.
385    
386    2003-06-23  Jonathan Coles   <[email protected]>
387    
388            * Thuban/UI/common.py (ThubanBeginBusyCursor): Call wxSafeYield
389            to make sure that we don't create reentrant possibilities with
390            wxYield.
391    
392            * Thuban/UI/view.py (MapCanvas.OnPaint): Call wxBeginBusyCursor()
393            directly to avoid the wxSafeYield() call which generates an
394            OnPaint event causing infinite recursion. Don't try to catch
395            exception anymore. This was for before there were limits on map
396            scaling.
397    
398    2003-06-23  Bernhard Herzog  <[email protected]>
399    
400            Bug fix for RT #1961:
401    
402            * Thuban/Model/load.py (SessionLoader.start_derivedshapesource):
403            Register DerivedShapestores with the session
404    
405            * Thuban/Model/session.py (Session.Tables): Make sure each table
406            is only listed once.
407    
408            * test/test_load.py (TestJoinedTable.test): Add check_format call.
409            Update file contents to match the one written out.
410    
411    2003-06-20  Bernhard Herzog  <[email protected]>
412    
413            * test/xmlsupport.py (SaxEventLister.startElementNS)
414            (SaxEventLister.endElementNS): Do not include the qname. Python
415            2.2.1 and 2.2.2 and 2.2.3 differ in this regard. In 2.2.1 qname it
416            is (presumably incorrectly) None, whereas it's a string with the
417            element name in the later versions.
418    
419            * test/test_xmlsupport.py (TestEventList.test_even_list_simple)
420            (TestEventList.test_even_list_namespace): Update tests to reflect
421            the new behaviour
422            (TestEventList.test_even_list_id_normalization): Fix doc-string
423    
424    2003-06-20  Jonathan Coles   <[email protected]>
425    
426            * Thuban/Model/layer.py (BaseLayer.HasShapes): New. Overridden
427            by deriving classes to determine if that layer supports shapes.
428            (Layer): Override HasShapes and return true.
429    
430            * Thuban/UI/classgen.py: Use Thuban[Begin|End]BusyCursor()
431            instead of a direct call to wx[Begin|End]CusyCursor().
432            (GenUniquePanel._OnRetrieve): Set busy cursor while retrieving
433            table data.
434    
435            * Thuban/UI/common.py (ThubanBeginBusyCursor, ThubanEndBusyCursor):
436            New. Wrappers around the wxWindows functions that allow us to
437            make additional calls such as wxYield which gives the native
438            system a chance to update the cursor correctly.
439    
440            * Thuban/UI/tableview.py: Use Thuban[Begin|End]BusyCursor()
441            instead of a direct call to wx[Begin|End]CusyCursor().
442    
443            * Thuban/UI/view.py: Use Thuban[Begin|End]BusyCursor()
444            instead of a direct call to wx[Begin|End]CusyCursor().
445            (MapCanvas.find_shape_at): Check if the current search layer
446            support shapes, otherwise go on to the next layer.
447    
448            * test/test_layer.py: Add tests in each type of layer for
449            HasClassification() and HasShapes()
450    
451    2003-06-20  Jonathan Coles   <[email protected]>
452    
453            * Thuban/UI/view.py (MapCanvas.OnPaint): Call wxYield after
454            turning on the busy cursor to allow the system to change the
455            cursor before we begin painting. This fixes a problem that
456            was occuring only under GTK. Fixes RTbug #1840.
457    
458    2003-06-20  Bernhard Herzog  <[email protected]>
459    
460            * Resources/XML/thuban-0.8.dtd: New DTD for the new file format
461            version.
462    
463            * Thuban/Model/save.py (sort_data_stores): New. Make topological
464            sort of the data sources so they can be written with sources that
465            data sources that depend on other data sources come after the
466            sources they depend on.
467            (SessionSaver.__init__): Add idmap instance variable to map from
468            objects to the ids used in the file.
469            (SessionSaver.get_id, SessionSaver.define_id)
470            (SessionSaver.has_id): New. Methods to manage the idmap
471            (SessionSaver.write): Use thuban-0.8.dtd
472            (SessionSaver.write_session): Add a namespace on the session and
473            write out the data sources before the maps.
474            (SessionSaver.write_data_containers): New. Write the data
475            containers.
476            (SessionSaver.write_layer): Layer elements now refer to a
477            shapestore and don't contain filenames anymore.
478    
479            * Thuban/Model/load.py (LoadError): Exception class to raise when
480            errors in the files are discovered
481            (SessionLoader.__init__): Define dispatchers for elements with a
482            thuban-0.8 namespace too.
483            (SessionLoader.check_attrs): New helper method to check and
484            convert attributes
485            (AttrDesc): New. Helper class for SessionLoader.check_attrs
486            (SessionLoader.start_fileshapesource)
487            (SessionLoader.start_derivedshapesource)
488            (SessionLoader.start_filetable, SessionLoader.start_jointable):
489            Handlers for the new elements in the new fileformat
490            (SessionLoader.start_layer): Handle the shapestore attribute in
491            addition to filename.
492            (SessionLoader.start_table, SessionLoader.end_table): Removed.
493            They were never used in the old formats and aren't needed for the
494            new.
495    
496            * Thuban/Model/session.py (Session.DataContainers): New method to
497            return all "data containers", i.e. shapestores and tables
498    
499            * test/xmlsupport.py (SaxEventLister.__init__)
500            (SaxEventLister.startElementNS, sax_eventlist): Add support to
501            normalize IDs.
502    
503            * test/test_xmlsupport.py
504            (TestEventList.test_even_list_id_normalization): New test case for
505            id normalization
506    
507            * test/test_load.py (LoadSessionTest.check_format): Use ID
508            normalization
509            (LoadSessionTest.thubanids, LoadSessionTest.thubanidrefs): New
510            class atrributes used for ID normalization
511            (TestSingleLayer, TestLayerVisibility, TestLabels.test)
512            (TestLayerProjection.test, TestRasterLayer.test): Adapt to new
513            file format
514            (TestJoinedTable): New test for loading sessions with joined
515            tables.
516            (TestLoadError): New. Test whether missing required attributes
517            cause a LoadError.
518    
519            * test/test_save.py (SaveSessionTest.thubanids)
520            (SaveSessionTest.thubanidrefs): New class attributes for ID
521            normalization in .thuban files.
522            (SaveSessionTest.compare_xml): Use id-normalization.
523            (SaveSessionTest.testEmptySession)
524            (SaveSessionTest.testLayerProjection)
525            (SaveSessionTest.testRasterLayer)
526            (SaveSessionTest.testClassifiedLayer): Adapt to new file format.
527            (SaveSessionTest.testLayerProjection): The filename used was the
528            same as for testSingleLayer. Use a different one.
529            (SaveSessionTest.test_dbf_table)
530            (SaveSessionTest.test_joined_table): New test cases for saving the
531            new data sources structures.
532            (TestStoreSort, MockDataStore): Classes to test the sorting of the
533            data stores for writing.
534    
535            * test/runtests.py: Add CVS keywords
536    
537  2003-06-20  Jonathan Coles   <[email protected]>  2003-06-20  Jonathan Coles   <[email protected]>
538    
539          * test/test_session.py          * test/test_session.py

Legend:
Removed from v.1267  
changed lines
  Added in v.1380

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26