/[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 1897 by bh, Fri Oct 31 11:55:44 2003 UTC revision 1960 by bh, Wed Nov 19 15:31:52 2003 UTC
# Line 1  Line 1 
1    2003-11-19  Bernhard Herzog  <[email protected]>
2    
3            * test/test_table.py: Revert to revision 1.5 again. Changing the
4            tests to use the new table interface is completely wrong since the
5            whole purpose of the tests in this module is to test the old
6            interface.
7    
8    2003-11-18  Bernhard Herzog  <[email protected]>
9    
10            * Thuban/Model/postgisdb.py (PostGISConnection.MatchesParameters):
11            New. Test whether the connection matches a set of connection
12            parameters
13    
14            * Thuban/UI/dbdialog.py (DBFrame.conns_changed): Fix doc-string
15            (DBFrame.OnAdd): Use the new MatchesParameters method when looking
16            for existing connections with the same parameters and break out of
17            the loop correctly.
18    
19            * test/test_postgis_db.py (TestBriefDescription)
20            (TestPostGISSimple.test_brief_description): Rename
21            TestBriefDescription to TestPostGISSimple and the test method to
22            test_brief_description so that we can add more test methods.
23            (TestPostGISSimple.test_matches_parameters): New. Test the new
24            MatchesParameters method
25    
26    2003-11-18  Bernhard Herzog  <[email protected]>
27    
28            * Thuban/Lib/connector.py (Publisher): Introduce a new flag,
29            _was_destroyed, to indicate whether an publisher instance has
30            already been destroyed.
31            (Publisher.Unsubscribe): Only disconnect if the publisher has not
32            been destroyed yet.
33            (Publisher.Destroy): Set the _was_destroyed flag to true.
34    
35            * test/test_connector.py
36            (TestPublisher.test_unsubscribe_after_destroy): New. Test that
37            calling Unsubscribe after Destroy doesn't raise an exception
38    
39    2003-11-14  Bernhard Herzog  <[email protected]>
40    
41            * Thuban/UI/identifyview.py (IdentifyView.selected_shape): Fix
42            typo in doc-string
43    
44    2003-11-13  Bernhard Herzog  <[email protected]>
45    
46            Quote table and column names properly for postgis.
47    
48            * Thuban/Model/postgisdb.py (quote_identifier): New. Function to
49            quote an identifier for use in an sql statement
50            (PostGISColumn.__init__): Add the quoted_name attribute
51            (PostGISTable.__init__): New instance variable quoted_tablename
52            (PostGISTable._fetch_table_information): Use the quoted table
53            name. New isntance variable quoted_geo_col with a quoted version
54            of geometry_column
55            (PostGISTable.NumRows, PostGISTable.RowIdToOrdinal)
56            (PostGISTable.RowOrdinalToId): Use the quoted table name
57            (PostGISTable.ReadValue, PostGISTable.ValueRange)
58            (PostGISTable.UniqueValues, PostGISTable.SimpleQuery)
59            (PostGISShapeStore.BoundingBox, PostGISShapeStore.Shape)
60            (PostGISShapeStore.AllShapes, PostGISShapeStore.ShapesInRegion):
61            Use quoted table and column names
62    
63            * test/test_postgis_db.py (TestPostGISSpecialCases)
64            (TestPostGISIgnoredColumns): Rename the class to
65            TestPostGISSpecialCases because that better describes the new
66            cases
67            (TestPostGISSpecialCases.test_unsupported_types)
68            (TestPostGISSpecialCases.test): Rename the method to
69            test_unsupported_types because we need a more descriptive name now
70            that there are more methods
71            (TestPostGISSpecialCases.test_table_name_quoting)
72            (TestPostGISSpecialCases.test_column_name_quoting)
73            (TestPostGISSpecialCases.test_shapestore_name_quoting): New test
74            cases to test quoting of table and column names in PostGISTable
75            and PostGISShapeStore
76    
77            * test/postgissupport.py
78            (skip_if_addgeometrycolumn_does_not_use_quote_ident): New. Skip if
79            AddGeometryColumn desn't support table or column names with sapces
80            or double quotes
81    
82    2003-11-12  Jan-Oliver Wagner <[email protected]>
83    
84            * Extensions/wms/__init__.py: New: Init to make this
85            directory a package.
86    
87            * Extensions/wms/wms.py: New: Provide layers via OGC WMS.
88    
89    2003-11-11  Bernhard Herzog  <[email protected]>
90    
91            * Thuban/Model/resource.py (EPSG_DEPRECATED_PROJ_FILE): New.
92            Constant for the file woth deprecated epsg projections
93            (get_system_proj_file): Update doc-string
94    
95            * Thuban/UI/projdialog.py (ProjFrame.build_dialog): Add a space
96            above the EPS widgets, introduce a check box for the deprecated
97            eps projections and a label for the epsg widgets
98            (ProjFrame._OnShowEPSG): Handle the deprecated EPSG projections
99            too
100    
101    2003-11-11  Bernhard Herzog  <[email protected]>
102    
103            Avoid warnings when run under Python 2.3
104    
105            * Thuban/UI/baserenderer.py (BaseRenderer.draw_point_shape)
106            (BaseRenderer.draw_label_layer): Coordinates must be ints.
107    
108            * Thuban/UI/renderer.py (MapRenderer.make_point): Turn this into a
109            real method so that we can convert to int.
110            (MapRenderer.label_font): The font size mist be an int.
111    
112            * Thuban/UI/common.py (Color2wxColour): The color values must be
113            ints. Also, remove the unnecessary asserts.
114    
115            * test/test_load_0_8.py (TestUnicodeStrings.file_contents)
116            (TestUnicodeStrings.test): Python source code should not contain
117            non-ascii characters unless an encoding is specified in the file.
118            Therefore use \x escapes in the string literals for non-ascii
119            characters.
120    
121    2003-11-11  Bernhard Herzog  <[email protected]>
122    
123            * Thuban/Model/resource.py (get_system_proj_file): Add a filename
124            parameter so that this function can be used for all proj files in
125            Resource/Projections
126            (DEFAULT_PROJ_FILE, EPSG_PROJ_FILE): New. Predefined filenames for
127            get_system_proj_file
128    
129            * Thuban/UI/projdialog.py (ProjFrame.__init__): Instead of one
130            ProjFile self.__sysProjFile use a dictionary of system ProjFile
131            objects self._sys_proj_files
132            (ProjFrame.build_dialog): Adapt to the new changes in the
133            ProjectionList constructor. Add a check button to toggle whether
134            EPSG projections are shown
135            (ProjFrame._OnShowEPSG): New. Handler for the epsg check button
136            events.
137            (ProjFrame.load_user_proj, ProjFrame.load_system_proj): Only show
138            the busy cursor if the files have not yet been loaded by the
139            dialog.
140            (ProjFrame.load_system_proj): Add a parameter for the name of the
141            proj file. Maintain the dictionary of system projections
142            self._sys_proj_files
143    
144            * Thuban/UI/projlist.py (ProjectionList): Merge the system_projs,
145            user_projs parameters into one parameter proj_files which is a
146            list of proj files.
147            (ProjectionList._subscribe_proj_files)
148            (ProjectionList._unsubscribe_proj_files): New. Move
149            subscription/unsubscription of projfile messages to separate
150            methods
151            (ProjectionList.Destroy): The unsubscribe is now done in
152            _unsubscribe_proj_files
153            (ProjectionList.update_projections): We now have a list of proj
154            file objects
155            (ProjectionList.SetProjFiles): New method to set a new list of
156            proj file objects
157    
158            * test/test_proj.py (ProjFileReadTests.test_get_system_proj_file):
159            Specify explicitly which system proj file to load.
160    
161    2003-11-11  Bernhard Herzog  <[email protected]>
162    
163            * Thuban/Model/load.py (SessionLoader.Destroy): New. Clear all
164            instance variables to cut cyclic references. The GC would have
165            collected the loader eventually but it can happen that it doesn't
166            run at all until thuban is closed (2.3 but not 2.2 tries a bit
167            harder and forces a collection when the interpreter terminates)
168            (load_session): Call the handler's Destroy method to make sure
169            that it gets garbage collected early. Otherwise it will be
170            collected very late if at all and it holds some references to e.g.
171            shapestores and the session which can lead to leaks (of e.g. the
172            temporary files)
173    
174            * test/test_load.py (TestSingleLayer.test_leak): New. test for the
175            resource leak in load_session
176    
177    2003-11-10  Bernhard Herzog  <[email protected]>
178    
179            * Thuban/UI/baserenderer.py: Add a way to specify how layers in
180            extensions are to be rendered.
181            (_renderer_extensions): New. List with renderer for layers in
182            extensions
183            (add_renderer_extension): New. Add a renderer extension
184            (init_renderer_extensions): New. Init the renderer extensions
185            (BaseRenderer.render_map_incrementally): Search
186            _renderer_extensions for how to draw unknown layer types
187            (BaseRenderer.draw_raster_data): Add format parameter so that
188            formats other than BMP can be drawn
189            (BaseRenderer.draw_raster_layer): Pass an explicit format to
190            draw_raster_data
191    
192            * Thuban/UI/renderer.py (raster_format_map): New. Mapping form the
193            strings of the format parameter of draw_raster_data method to wx
194            constants
195            (MapRenderer.draw_raster_data): Add the format parameter and use
196            raster_format_map to map it to the right wxwindows constant for
197            wxImageFromStream
198    
199            * test/test_baserenderer.py (SimpleRenderer.draw_raster_data): Add
200            the format parameter and record it
201            (TestBaseRenderer.test_raster_no_projection): check the format
202            paramter of the draw_raster_data method
203            (TestBaseRenderer.test_renderer_extension): New. Test the renderer
204            extension facility
205    
206    2003-11-07  Bernhard Herzog  <[email protected]>
207    
208            Tweak the usage of the sqlite database to make common use cases
209            more responsive. In most cases copying the data to the sqlite
210            database takes so long that using sqlite doesn't have enough
211            advantages.
212    
213            * Thuban/Model/transientdb.py (TransientTableBase.ValueRange): Add
214            comments about performance and query the min and max in separate
215            statements because only that way will indexes be used.
216            (TransientTableBase.UniqueValues): Add some comments about
217            performance.
218            (AutoTransientTable.ValueRange, AutoTransientTable.UniqueValues):
219            Do not copy the data to the transient DB but use the transient
220            copy if it exists. See the new comments for the performance trade
221            offs
222    
223            * test/test_transientdb.py
224            (TestTransientTable.test_auto_transient_table): Make sure that the
225            data is copied to the transient database at some point.
226    
227    2003-11-03  Bernhard Herzog  <[email protected]>
228    
229            * Thuban/Model/data.py (ShapefileStore.ShapesInRegion): Bind some
230            globals to locals so that it's a bit faster
231    
232    2003-11-03  Bernhard Herzog  <[email protected]>
233    
234            * Thuban/UI/baserenderer.py
235            (BaseRenderer.draw_shape_layer_incrementally): Use the ReadValue
236            method. ReadValue is faster than ReadRowAsDict since it only reads
237            one cell especially now that the dbf file objects actually
238            implement it.
239    
240            * Thuban/Model/table.py (DBFTable.ReadValue): Use the new
241            read_attribute method of the dbf objects
242    
243    2003-11-03  Bernhard Herzog  <[email protected]>
244    
245            * Extensions/profiling/profiling.py (popup_dialog_box): New config
246            variable to indicate whether the result should be shown in a
247            dialog box
248            (profile_screen_renderer, time_screen_renderer): Only show a
249            dialog box if popup_dialog_box is true.
250            (profile_screen_renderer): Flush stdout after the printing the
251            first part of the "profiling..." message
252    
253            * Thuban/UI/baserenderer.py
254            (BaseRenderer.draw_shape_layer_incrementally): Cache the pens and
255            brushes for the groups so that they're not created over and over
256            again
257    
258            * Thuban/Model/classification.py (Classification.__getattr__)
259            (Classification._compile_classification)
260            (Classification._clear_compiled_classification): New. Methods to
261            manage a 'compiled' representation of the classification groups
262            which is created on demand
263            (Classification.InsertGroup, Classification.RemoveGroup)
264            (Classification.ReplaceGroup): reset the compiled representation
265            (Classification.FindGroup): Use the compiled representation to
266            find the matching group
267            (ClassGroupRange.GetRangeTuple): New. Return the range as a tuple
268    
269    2003-10-31  Bernhard Herzog  <[email protected]>
270    
271            * Thuban/Model/classification.py (Classification.SetDefaultGroup):
272            Send a CLASS_CHANGED message
273            (Classification.RemoveGroup): Send a CLASS_CHANGED message and do
274            not return the removed group since it wasn't used.
275    
276            * test/test_classification.py
277            (TestClassification.test_set_default_group): New. Test the
278            SetDefaultGroup method
279            (TestClassification.test_insert_group): New. Test the InsertGroup
280            method
281            (TestClassification.test_remove_group): New. Test the RemoveGroup
282            method
283            (TestClassification.test_replace_group): New. Test the
284            ReplaceGroup method
285    
286    2003-10-31  Bernhard Herzog  <[email protected]>
287    
288            * test/test_classification.py (TestClassification.setUp):
289            Subscribe to the CLASS_CHANGED messages
290            (TestClassification.tearDown): New. Destroy the classification
291            properly
292            (TestClassification.test_defaults): Add tests for the default line
293            width and whether no messages were sent yet
294            (TestClassification.test_set_default_properties): Add tests for
295            messages and setting the default line width
296            (TestClassification.test_add_singleton)
297            (TestClassification.test_add_range)
298            (TestClassification.test_multiple_groups): Add tests for messages
299    
300    2003-10-31  Bernhard Herzog  <[email protected]>
301    
302            Some more refactoring in preparation for new tests:
303    
304            * test/test_classification.py (TestClassification.setUp): New.
305            Instantiate the classification here. Update the test methods
306            accordingly.
307            (TestClassification.test_multiple_groups): Make sure that the two
308            singletons matching 1 are considered different.
309    
310    2003-10-31  Bernhard Herzog  <[email protected]>
311    
312            * test/test_classification.py (red, green, blue): New. These
313            constants were used in several cases. Update the relevant methods.
314            (TestClassification.test_defaults)
315            (TestClassification.test_set_default_properties)
316            (TestClassification.test_add_singleton)
317            (TestClassification.test_add_range)
318            (TestClassification.test_multiple_groups)
319            (TestClassification.test_deepcopy): New. These were formerly all
320            part of the single method test.
321            (TestClassification.test_deepcopy): Removed.
322            (TestClassIterator): Removed. The test case is now a method of
323            TestClassification since it tests part of the public interface of
324            Classification
325            (TestClassification.test_iterator): New. Used to be
326            TestClassIterator effectively
327    
328    2003-10-31  Jan-Oliver Wagner <[email protected]>
329    
330            GUIfied the functions of the profiling extension.
331    
332            * /Extensions/profiling/__init__.py: New: Init to make this
333            directory a package.
334    
335            * Extensions/profiling/profiling.py: Moved menu entries to
336            the Extensions menu. Applied _() for strings.
337            (profile_screen_renderer): Catch the detailed printout and present
338            it in a dialog.
339            (time_screen_renderer): Raise a dialog to present the result instead
340            of printing it to stdout.
341    
342    2003-10-31  Bernhard Herzog  <[email protected]>
343    
344            * test/test_classification.py (TestClassGroupProperties)
345            (TestClassGroup, TestClassGroupDefault, TestClassGroupRange)
346            (TestClassGroupSingleton, TestClassIterator, TestClassification):
347            Split TestClassification into several classes, one for each class
348            being tested. TestClassification itself now only tests
349            Classification. This split makes changes to the tests a bit easier
350    
351  2003-10-31  Bernhard Herzog  <[email protected]>  2003-10-31  Bernhard Herzog  <[email protected]>
352    
353          * Extensions/profiling/profiling.py: New. Extension to measure          * Extensions/profiling/profiling.py: New. Extension to measure

Legend:
Removed from v.1897  
changed lines
  Added in v.1960

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26