/[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 1582 by bh, Tue Aug 12 15:08:40 2003 UTC revision 1690 by jan, Fri Aug 29 10:04:50 2003 UTC
# Line 1  Line 1 
1    2003-08-29  Jan-Oliver Wagner <[email protected]>
2    
3            * /Doc/manual/thuban-manual.xml: updated to version 1.0pre2.
4    
5    2003-08-29  Bernhard Herzog  <[email protected]>
6    
7            Add some missing parameters to projections. Proj complains about
8            them on windows but for some reason not on Linux.
9    
10            * test/test_save.py (SaveSessionTest.testLayerProjection): Add
11            missing required projection parameters
12    
13            * test/test_proj.py (TestProjFile.test): Add missing required
14            projection parameters
15    
16            * test/test_load_0_8.py (TestLayerProjection.file_contents)
17            (TestLayerProjection.test): Add missing required projection
18            parameters and tests for them
19    
20            * test/test_load.py (TestLayerProjection.file_contents)
21            (TestLayerProjection.test): Add missing required projection
22            parameters and tests for them
23    
24            * test/test_layer.py (TestLayer.test_base_layer): Add missing
25            required projection parameters
26    
27    2003-08-29  Bernhard Herzog  <[email protected]>
28    
29            * libraries/pyprojection/Projection.i: Use pj_get_errno_ref to
30            access the pj_errno because directly accessing pj_errno doesn't
31            work on windows if the proj library is in a DLL
32    
33            * libraries/pyprojection/Projection_wrap.c: Update from Projection.i
34    
35    2003-08-28  Bernhard Herzog  <[email protected]>
36    
37            * test/test_proj.py: Import things from Thuban after calling
38            initthuban
39    
40            * test/test_load.py (LoadSessionTest.filenames): New class
41            variable with the filename attributes to normalize
42            (LoadSessionTest.check_format): Pass self.filenames to
43            sax_eventlist to normalize the filename attributes
44    
45            * test/xmlsupport.py: Add cvs keywords
46            (SaxEventLister.__init__): New parameter filenames which indicates
47            attributes that contain filenames
48            (SaxEventLister.startElementNS): Normalize the filename attributes
49            with os.path.normpath
50            (sax_eventlist): New parameter filenames to pass through to
51            SaxEventLister
52    
53            * test/test_derivedshapestore.py: Make this file callable as a
54            program to execute the tests
55            (TestDerivedShapeStoreExceptions.test_table_with_wrong_size): Bind
56            the session to self.session so that it gets destroyed properly
57    
58            * test/test_layer.py (TestLayer.tearDown): Call the session's
59            Destroy method
60    
61            * test/test_map.py (TestMapBase.tearDown): Destroy self.session
62            too if it exists
63            (TestMapAddLayer.test_add_layer): Bind the session to self.session
64            so that it gets destroyed properly
65    
66            * test/postgissupport.py (reason_for_not_running_tests): Add a
67            test for the existence of popen2.Popen4.
68    
69            * test/test_save.py (SaveSessionTest.tearDown): New. Provide a
70            reliable way to destroy the sessions created in the test cases
71            (SaveSessionTest.test_dbf_table): Bind the session to self.session
72            so that it gets destroyed properly
73            (SaveSessionTest.testLayerProjection): Bind the session to
74            self.session so that it gets destroyed properly
75    
76            * test/test_session.py (UnreferencedTablesTests.tearDown): Make
77            sure that the session is destroyed properly
78    
79            * test/test_shapefilestore.py: Make this callable as a program to
80            execute the tests
81    
82            * test/test_scalebar.py: Remove unnecessary import of _ from
83            Thuban
84    
85            * test/support.py (print_garbage_information): Call initthuban
86            here because it may be called indirectly from test cases that test
87            test support modules which do not use anything from thuban itself
88            (ThubanTestProgram.runTests): Remove unnecessary debug print
89    
90    2003-08-28  Bernhard Herzog  <[email protected]>
91    
92            * Thuban/version.py (longversion): Update to 0.9
93    
94            * Thuban/UI/mainwindow.py: Remove some unused imports
95    
96            * README: Add section about required additional software. Add date
97            and revision CVS keywords
98    
99            * HOWTO-Release: Add item about the translations. Add date and
100            revision CVs keywords and change formatting to match README a bit
101            better
102    
103            * po/de.po: Update for 0.9
104    
105            * test/README: Tweak the wording a little because many tests are
106            not really unittest.
107    
108    2003-08-27  Bernhard Herzog  <[email protected]>
109    
110            As preparation for the 0.9 release, switch thuban files to a
111            non-dev namespace
112    
113            * Thuban/Model/save.py (SessionSaver.write_session): Write files
114            with the http://thuban.intevation.org/dtds/thuban-0.9.dtd
115            namespace
116    
117            * Thuban/Model/load.py (SessionLoader.__init__): Accept the
118            http://thuban.intevation.org/dtds/thuban-0.9.dtd namespace too
119    
120            * test/test_save.py (SaveSessionTest.dtd)
121            (SaveSessionTest.testEmptySession)
122            (SaveSessionTest.testSingleLayer)
123            (SaveSessionTest.testLayerProjection)
124            (SaveSessionTest.testRasterLayer)
125            (SaveSessionTest.testClassifiedLayer)
126            (SaveSessionTest.test_dbf_table)
127            (SaveSessionTest.test_joined_table)
128            (SaveSessionTest.test_save_postgis): Update for new namespace
129    
130            * test/test_load.py (LoadSessionTest.dtd, TestSingleLayer)
131            (TestLayerVisibility.file_contents, TestLabels.file_contents)
132            (TestLayerProjection.file_contents)
133            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
134            (TestPostGISLayer.file_contents)
135            (TestPostGISLayerPassword.file_contents)
136            (TestLoadError.file_contents, TestLoadError.test): Update for new
137            namespace
138    
139    2003-08-27  Bernhard Herzog  <[email protected]>
140    
141            Make the table interface distinguish between row ids (an integer
142            that uniquely identifies a row) and row ordinals (a simple row
143            count from 0 to NumRows() - 1)
144    
145            * Thuban/Model/postgisdb.py (PostGISTable.RowIdToOrdinal)
146            (PostGISTable.RowOrdinalToId): New methods to conver between row
147            ids and row ordinals
148            (PostGISTable.ReadRowAsDict, PostGISTable.ReadValue): New keyword
149            parameter row_is_ordinal to indicate whether the row parameter is
150            the row id or the ordinal
151    
152            * Thuban/Model/transientdb.py (TransientTableBase.RowIdToOrdinal)
153            (TransientTableBase.RowOrdinalToId)
154            (AutoTransientTable.RowIdToOrdinal)
155            (AutoTransientTable.RowOrdinalToId): Same new methods as in
156            PostGISTable.
157            (TransientTableBase.ReadRowAsDict, TransientTableBase.ReadValue)
158            (AutoTransientTable.ReadRowAsDict, AutoTransientTable.ReadValue):
159            Same new parameter as in PostGISTable.
160    
161            * Thuban/Model/table.py (DBFTable.RowIdToOrdinal)
162            (DBFTable.RowOrdinalToId, MemoryTable.RowIdToOrdinal)
163            (MemoryTable.RowOrdinalToId): Same new methods as in PostGISTable.
164            (DBFTable.ReadValue, DBFTable.ReadRowAsDict)
165            (MemoryTable.ReadValue, MemoryTable.ReadRowAsDict): Same new
166            parameter as in PostGISTable.
167    
168            * Thuban/UI/tableview.py (DataTable.RowIdToOrdinal)
169            (DataTable.RowOrdinalToId): New methods to convert between row ids
170            and row ordinals.
171            (TableGrid.SelectRowById): New method to select a row based on its
172            ID as opposed to its ordinal
173            (DataTable.GetValue, TableGrid.OnRangeSelect)
174            (TableGrid.OnSelectCell, LayerTableGrid.select_shapes)
175            (QueryTableFrame.OnQuery, QueryTableFrame.get_selected)
176            (LayerTableFrame.__init__): Convert between row ids and row
177            ordinals as appropriate
178    
179            * test/postgissupport.py (PostGISDatabase.__init__): Add
180            doc-string.
181            (PostGISDatabase.initdb): The optional third item in a tuple in
182            tables is now a (key, value) list with additional arguments to
183            pass to upload_shapefile
184            (upload_shapefile): New parameter gid_offset to allow gids that
185            are not the same as the shapeids in the shapefile
186            (PostgreSQLServer.get_default_static_data_db): Use the new
187            gid_offset to make the gids in landmarks 1000 higher than the
188            shapeids in the shapefile
189    
190            * test/test_viewport.py
191            (TestViewportWithPostGIS.test_find_shape_at_point): Adapt to the
192            new shapeids in the landmarks table
193    
194            * test/test_transientdb.py
195            (TestTransientTable.run_iceland_political_tests)
196            (TestTransientTable.test_transient_joined_table): Add tests for
197            the new table methods and new keywords arguments.
198    
199            * test/test_postgis_db.py
200            (TestPostGISTable.test_read_row_as_dict_row_count_mode)
201            (TestPostGISTable.test_read_value_row_count_mode)
202            (TestPostGISTable.test_row_id_to_ordinal)
203            (TestPostGISTable.test_row_oridnal_to_id): New test for the new
204            table methods and the new arguments
205            (TestPostGISShapestorePoint.test_shapes_in_region)
206            (TestPostGISShapestorePoint.test_shape_raw_data)
207            (TestPostGISShapestorePoint.test_shape_points)
208            (TestPostGISShapestorePoint.test_shape_shapeid)
209            (TestPostGISShapestorePoint.test_all_shapes)
210            (TestPostGISTable.test_simple_query)
211            (TestPostGISTable.test_simple_query)
212            (TestPostGISTable.test_simple_query)
213            (TestPostGISTable.test_read_value)
214            (TestPostGISTable.test_read_row_as_dict): Adapt to the new
215            shapeids in the landmarks table
216    
217            * test/test_memory_table.py
218            (TestMemoryTable.test_read_row_as_dict_row_count_mode)
219            (TestMemoryTable.test_read_value_row_count_mode)
220            (TestMemoryTable.test_row_id_to_ordinal)
221            (TestMemoryTable.test_row_oridnal_to_id): New test for the new
222            table methods and the new arguments
223    
224            * test/test_dbf_table.py
225            (TestDBFTable.test_read_row_as_dict_row_count_mode)
226            (TestDBFTable.test_read_value_row_count_mode)
227            (TestDBFTable.test_row_id_to_ordinal)
228            (TestDBFTable.test_row_oridnal_to_id): New test for the new table
229            methods and the new arguments
230    
231    2003-08-26  Bernhard Herzog  <[email protected]>
232    
233            * Thuban/Model/postgisdb.py (PostGISShapeStore.BoundingBox): Use a
234            more postgis specific but much faster method to get the bounding
235            box
236    
237    2003-08-26  Bernhard Herzog  <[email protected]>
238    
239            * Thuban/Model/postgisdb.py (PostGISTable.Title)
240            (PostGISShapeStore.AllShapes): Add these missing methods.
241            (PostGISShapeStore.ShapesInRegion): No need to raise
242            StopIteration. We can simply return
243    
244            * test/test_postgis_db.py (TestPostGISTable.test_title)
245            (TestPostGISShapestorePoint.test_all_shapes): New tests for the
246            new methods
247    
248    2003-08-25  Bernhard Herzog  <[email protected]>
249    
250            * Thuban/Model/postgisdb.py (shapetype_map): Add MUTLIPOLYGON.
251    
252            * test/test_postgis_db.py (PolygonTests): New class containing
253            those tests from TestPostGISShapestorePolygon that can also be
254            used to test MUTLIPOLYGON tables
255            (TestPostGISShapestorePolygon): Most tests are now in PolygonTests
256            so derive from that
257            (TestPostGISShapestoreMultiPolygon): New class with tests for
258            MUTLIPOLYGON tables
259    
260            * test/postgissupport.py (PostGISDatabase.initdb): Allow the
261            tables argument to have tuples with three items to override the
262            WKT type used.
263            (PostgreSQLServer.get_default_static_data_db): Use the above to
264            create a polygon table with MUTLIPOLYGONs
265            (point_to_wkt, coords_to_point, polygon_to_wkt, coords_to_polygon)
266            (arc_to_wkt, coords_to_multilinestring): Rename from *_to_wkt to
267            coords_to*
268            (coords_to_multipolygon): New. Convert to MUTLIPOLYGON
269            (wkt_converter): New. Map WKT types to converters
270            (upload_shapefile): New parameter force_wkt_type to use a
271            different WKT type than the default
272    
273    2003-08-25  Bernhard Herzog  <[email protected]>
274    
275            * Thuban/UI/application.py
276            (ThubanApplication.run_db_param_dialog): New. Suitable as a
277            db_connection_callback. Main difference is that the dialog run
278            from this method doesn't have a parent so it can be used even when
279            there is no main window
280            (ThubanApplication.OpenSession): Use self.run_db_param_dialog if
281            no db_connection_callback was given. This way the dialog pops up
282            even when the .thuban file was given as a command line parameter.
283    
284    2003-08-25  Bernhard Herzog  <[email protected]>
285    
286            * Thuban/UI/view.py (MapCanvas.OnLeftUp): Release the the mouse
287            before calling MouseLeftUp. MouseLeftUp may pop up modal dialogs
288            which leads to an effectively frozen X session because the user
289            can only interact with the dialog but the mouse is still grabbed
290            by the canvas.
291            Also, call the tool's Hide method before MouseLeftUp because
292            MouseLeftUp may change the tool's coordinates.
293    
294    2003-08-25  Bernhard Herzog  <[email protected]>
295    
296            * Thuban/UI/application.py (ThubanApplication.OpenSession): Catch
297            LoadCancelled exceptions and handle them by returning immediately.
298    
299    2003-08-25  Bernhard Herzog  <[email protected]>
300    
301            GUI part of loading sessions with postgis connections which may
302            require user interaction to get passwords or updated parameters
303    
304            * Thuban/UI/dbdialog.py (DBDialog): Reimplement to make it look a
305            bit nucer and be more generic.
306            (DBFrame.OnAdd): Adapt to new DBDialog interface
307    
308            * Thuban/UI/application.py (ThubanApplication.OpenSession): New
309            optional parameter db_connection_callback which is passed to
310            load_session.
311    
312            * Thuban/UI/mainwindow.py (MainWindow.run_db_param_dialog): New.
313            Suitable as a db_connection_callback
314            (MainWindow.OpenSession): Use self.run_db_param_dialog as the
315            db_connection_callback of the application's OpenSession method
316    
317    
318    2003-08-25  Bernhard Herzog  <[email protected]>
319    
320            Basic loading of sessions containing postgis connections:
321    
322            * Thuban/Model/load.py (LoadError): Add doc-string
323            (LoadCancelled): New exception class to indicate a cancelled load
324            (SessionLoader.__init__): Add the db_connection_callback parameter
325            which will be used by the loader to get updated parameters and a
326            password for a database connection
327            (SessionLoader.__init__): Add the new XML elements to the
328            dispatchers dictionary
329            (SessionLoader.check_attrs): Two new conversions, ascii to convert
330            to a byte-string object and idref as a generic id reference
331            (SessionLoader.start_dbconnection)
332            (SessionLoader.start_dbshapesource): New. Handlers for the new XML
333            elements
334            (load_session): Add the db_connection_callback to pass through the
335            SessionLoader
336    
337            * test/test_load.py (TestPostGISLayer, TestPostGISLayerPassword):
338            New classes to test loading of sessions with postgis database
339            connections.
340    
341    2003-08-25  Bernhard Herzog  <[email protected]>
342    
343            * Thuban/UI/mainwindow.py (__ThubanVersion__): Remove this and
344            replace it and the comment with __BuildDate__ by the Source: and
345            Id: cvs keywords as used in the other files.
346    
347    2003-08-25  Bernhard Herzog  <[email protected]>
348    
349            * Thuban/Model/load.py (SessionLoader.check_attrs): Raise a
350            LoadError when a required attribute is missing. The code used to
351            be commented out for some reason, but probably should have been
352            active.
353    
354            * test/test_load.py (TestLoadError.test): Test the message in the
355            LoadError too to make sure it really is about the missing
356            attribute
357    
358    2003-08-22  Bernhard Herzog  <[email protected]>
359    
360            * test/test_save.py (SaveSessionTest.test_dbf_table)
361            (SaveSessionTest.test_joined_table): Add XML validation tests.
362    
363    2003-08-22  Bernhard Herzog  <[email protected]>
364    
365            Implement saving a session with a postgis connection
366    
367            * Resources/XML/thuban-0.9.dtd (dbconnection, dbshapesource) New
368            elements for database connections and shapestores using db
369            connections
370            (session): Add the dbconnections to the content model
371    
372            * Thuban/Model/save.py (SessionSaver.write_db_connections): New.
373            Write the db connections
374            (SessionSaver.write_session): Call write_db_connections to write
375            the connection before the data sources
376            (SessionSaver.write_data_containers): Handle postgis shapestores
377    
378            * test/test_save.py (SaveSessionTest.thubanids)
379            (SaveSessionTest.thubanidrefs): Update for new DTD
380            (SaveSessionTest.test_save_postgis): New. Test saving a session
381            with postgis connections
382    
383            * Thuban/Model/postgisdb.py (PostGISTable.DBConnection)
384            (PostGISTable.TableName): New accessor methods for the connection
385            and table name
386    
387            * test/test_postgis_db.py (TestPostGISTable.test_dbconn)
388            (TestPostGISTable.test_dbname): New methods to test the new
389            PostGISConnection methods
390    
391    2003-08-22  Bernhard Herzog  <[email protected]>
392    
393            * Thuban/Model/postgisdb.py (ConnectionError): New exception class
394            for exceptions occurring when establishing a Database connection
395            (PostGISConnection.connect): Catch psycopg.OperationalError during
396            connects and raise ConnectionError.
397    
398            * test/test_postgis_db.py (TestPostgisDBExceptions): New class for
399            tests for database exceptions
400    
401    2003-08-22  Bernhard Herzog  <[email protected]>
402    
403            Prepare the test suite for tests with required authentication
404    
405            * test/postgissupport.py (PostgreSQLServer.__init__): Add instance
406            variables with two predefined users/passwords, one for the admin
407            and one for a non-privileged user.
408            (PostgreSQLServer.createdb): Pass the admin name to initdb and add
409            the non-privileged user to the database and set the admin password
410            (PostgreSQLServer.wait_for_postmaster): Use the admin user name.
411            Better error reporting
412            (PostgreSQLServer.connection_params)
413            (PostgreSQLServer.connection_string): New methods to return
414            information about how to connect to the server
415            (PostgreSQLServer.execute_sql): New. Convenience method to execute
416            SQL statements
417            (PostgreSQLServer.require_authentication): Toggle whether the
418            server requires authentication
419            (PostgreSQLServer.create_user, PostgreSQLServer.alter_user): New.
420            Add or alter users
421            (PostGISDatabase.initdb): Pass the admin name one the
422            subprocesses' command lines. Grant select rights on
423            geometry_columns to everybody.
424            (upload_shapefile): Use the admin name and password when
425            connecting. Grant select rights on the new table to everybody.
426    
427            * test/test_viewport.py (TestViewportWithPostGIS.setUp): Use the
428            server's new methods to get the connection parameters.
429    
430            * test/test_postgis_session.py (TestSessionWithPostGIS.setUp)
431            (TestSessionWithPostGIS.test_remove_dbconn_exception): Use the
432            server's new methods to get the connection parameters.
433    
434            * test/test_postgis_db.py
435            (TestPostGISConnection.test_gis_tables_empty)
436            (TestPostGISConnection.test_gis_tables_non_empty)
437            (PostGISStaticTests.setUp): Use the server's new methods to get
438            the connection parameters.
439    
440    2003-08-22  Bernhard Herzog  <[email protected]>
441    
442            * Thuban/UI/about.py (About.__init__): Add the psycopg version.
443    
444            * Thuban/version.py: Add psycopg version
445    
446            * Thuban/Model/postgisdb.py (psycopg_version): New. Return the
447            version of the psycopg module
448    
449    2003-08-22  Bernhard Herzog  <[email protected]>
450    
451            * Thuban/UI/dbdialog.py (DBPwdDlg): Removed because it's not used.
452            (DBFrame.OnEdit): Removed because it's not used and wouldn't work
453            at the moment. The functionality should probably be implemented
454            some time, though.
455            (DBFrame.OnRemove): Display a message if the connection can't be
456            removed because it's still in use.
457    
458    2003-08-22  Jan-Oliver Wagner <[email protected]>
459    
460            * Thuban/UI/about.py (About.__init__): split up the huge about
461            text into elements/lists for easier translation. This fixes bug
462            https://intevation.de/rt/webrt?serial_num=2058
463            Also, made some forgotten string available for the i18n.
464    
465    2003-08-21  Bernhard Herzog  <[email protected]>
466    
467            Make postgis support really optional including insensitive menu
468            items.
469    
470            * Thuban/Model/postgisdb.py (has_postgis_support): New. Return
471            whether the postgis is supported.
472    
473            * Thuban/UI/dbdialog.py: Put the psycopg import into try..except
474            to make postgis support optional
475    
476            * Thuban/UI/mainwindow.py (_has_postgis_support): New. Context
477            version of Thuban.Model.postgisdb.has_postgis_support
478            (database_management command): Make it only sensitive if postgis
479            is supported.
480    
481    2003-08-21  Jan-Oliver Wagner <[email protected]>
482    
483            * Doc/manual/thuban-manual.xml: Added CVS revision for rev-history.
484            (section Adding and Removing Layers): Added text and described
485            multi-selection.
486            (chapter Extensions): New.
487    
488    2003-08-21  Jan-Oliver Wagner <[email protected]>
489    
490            * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Changed dialog
491            settings to allow multiple files to load into the map.
492            Also reduced selection to *.shp as a default.
493    
494    2003-08-20  Bernhard Herzog  <[email protected]>
495    
496            Add dialogs and commands to open database connections and add
497            database layers.
498    
499            * Thuban/UI/mainwindow.py (MainWindow.DatabaseManagement): New
500            method to open the database connection management dialog
501            (MainWindow.AddDBLayer): New method to add a layer from a database
502            (_has_dbconnections): New helper function to use for sensitivity
503            (database_management command, layer_add_db command): New commands
504            that call the above new methods.
505            (main_menu): Add the new commands to the menu.
506    
507            * Thuban/Model/postgisdb.py (PostGISConnection.__init__)
508            (PostGISConnection.connect): Establish the actual connection in a
509            separate method and call it in __init__. This makes it easier to
510            override the behavior in test cases
511            (PostGISConnection.BriefDescription): New method to return a brief
512            description for use in dialogs.
513    
514            * test/test_postgis_db.py (NonConnection): DB connection that
515            doesn't actually connect
516            (TestBriefDescription): New class with tests for the new
517            BriefDescription method
518    
519    2003-08-19  Jan-Oliver Wagner <[email protected]>
520    
521            Moved anything from extensions to libraries.
522    
523            * libraries: New.
524    
525            * libraries/ pyprojection, pyshapelib, shapelib, thuban: New.
526    
527            * libraries/pyprojection/ LICENSE, MANIFEST.in, Projection.i,
528            Projection.py, Projection_wrap.c, setup.py, swighelp.txt: These files have
529            been moved here from thuban/extensions/pyprojection/
530            See there in the Attic for the older history.
531    
532            * libraries/pyshapelib/ COPYING, ChangeLog, NEWS, README, dbflib.i,
533            dbflib.py, dbflib_wrap.c, pyshapelib_api.h, pytest.py, setup.py,
534            shapelib.i, shapelib.py, shapelib_wrap.c, shptreemodule.c: These files
535            have been moved here from thuban/extensions/pyshapelib/
536            See there in the Attic for the older history.
537    
538            * libraries/shapelib/ dbfopen.c, shapefil.h, shpopen.c, shptree.c: These
539            files have been moved here from thuban/extensions/shapelib/
540            See there in the Attic for the older history.
541    
542            * libraries/thuban/ bmpdataset.cpp, cpl_mfile.cpp, cpl_mfile.h,
543            gdalwarp.cpp, wxproj.cpp: These files have been moved here from
544            thuban/extensions/thuban/
545            See there in the Attic for the older history.
546    
547            * MANIFEST.in, setup.cfg, setup.py: renamed extensions to libraries.
548    
549            * extensions/thuban/ bmpdataset.cpp, cpl_mfile.cpp, cpl_mfile.h,
550            gdalwarp.cpp, wxproj.cpp: Moved to libraries/thuban.
551    
552            * extensions/shapelib/ dbfopen.c, shapefil.h, shpopen.c, shptree.c:
553            Moved to libraries/shapelib.
554    
555            * extensions/pyshapelib/ COPYING, NEWS, dbflib.py, pytest.py,
556            shapelib.py, README, dbflib_wrap.c, setup.py, shapelib_wrap.c,
557            ChangeLog, dbflib.i, pyshapelib_api.h, shapelib.i, shptreemodule.c:
558            Moved to libraries/pyshapelib.
559    
560            * extensions/pyprojection/ MANIFEST.in, Projection.py, setup.py,
561            LICENSE, Projection.i, Projection_wrap.c, swighelp.txt:
562            Moved to libraries/pyprojection.
563    
564            * extensions/ pyprojection, pyshapelib, shapelib, thuban: Removed.
565    
566            * extensions: Removed.
567    
568    2003-08-19  Bernhard Herzog  <[email protected]>
569    
570            * test/test_viewport.py (ViewPortTest): We don't use the
571            facilities of FileTestMixin so don't derive from it.
572            (TestViewportWithPostGIS): New class with tests for using a
573            viewport on a map with postgis layers.
574    
575    2003-08-19  Bernhard Herzog  <[email protected]>
576    
577            Add the db connection management to the session.
578    
579            * Thuban/Model/session.py (Session.__init__): New instance
580            variable db_connections
581            (Session.AddDBConnection, Session.DBConnections)
582            (Session.HasDBConnections, Session.CanRemoveDBConnection)
583            (Session.RemoveDBConnection): New methods to manage and query the
584            db connections managed by the session
585            (Session.OpenDBShapeStore): New method to open a shapestore from a
586            db connection
587    
588            * Thuban/Model/messages.py (DBCONN_REMOVED, DBCONN_ADDED): New
589            messages for the db connection handling in the session
590    
591            * test/test_postgis_session.py: New. test cases for the session's
592            db connection handling with postgis connections
593    
594    2003-08-19  Bernhard Herzog  <[email protected]>
595    
596            Add very basic postgis database support and the corresponding test
597            cases. The test cases require a PostgreSQL + postgis installation
598            but no existing database. The database will be created
599            automatically by the test cases
600    
601            * test/README: Add note about skipped tests and the requirements
602            of the postgis tests.
603    
604            * Thuban/Model/postgisdb.py: New. Basic postgis database support.
605    
606            * test/test_postgis_db.py: New. Test cases for the postgis
607            support.
608    
609            * Thuban/Model/wellknowntext.py: New. Parser for well-known-text
610            format
611    
612            * test/test_wellknowntext.py: New. Test cases for the
613            wellknowntext parser
614    
615            * test/postgissupport.py: New. Support module for tests involving
616            a postgis database.
617    
618            * test/support.py (execute_as_testsuite): Shut down the postmaster
619            if it's still running after the tests
620    
621            * Thuban/Model/data.py (RAW_WKT): New constant for raw data in
622            well known text format
623    
624    2003-08-19  Jan-Oliver Wagner <[email protected]>
625    
626            * Examples/simple_extensions/hello_world.py: New. Raises a Hello World
627            message dialog.
628    
629    2003-08-18  Bernhard Herzog  <[email protected]>
630    
631            * test/support.py (ThubanTestResult.printErrors): Indent the
632            reason for the skips in the output to make it a bit more readable.
633            (execute_as_testsuite): New helper function to run a test suite
634            and print some more information.
635            (run_tests): Use execute_as_testsuite to run the tests
636    
637            * test/runtests.py (main): Use execute_as_testsuite to run the
638            tests
639    
640    2003-08-18  Bernhard Herzog  <[email protected]>
641    
642            Fix some bugs in Thuban and the test suite that were uncovered by
643            changes introduced in Python 2.3:
644    
645            * Thuban/Model/table.py (DBFTable.__init__): Make sure the
646            filename is an absolute name
647    
648            * Thuban/Model/layer.py (RasterLayer.__init__): Make sure the
649            filename is an absolute name
650    
651            * test/test_save.py (SaveSessionTest.testRasterLayer): Use a
652            unique filename to save to and use the correct relative filename
653            in the expected output.
654            (SaveSessionTest.test_dbf_table): Use the correct relative
655            filename in the expected output.
656    
657            * test/test_layer.py (TestLayer.test_raster_layer): Update the
658            test to check whether the filename is absolute.
659    
660    2003-08-18  Jan-Oliver Wagner <[email protected]>
661    
662            * Thuban/UI/about.py (About.__init__): Added Silke Reimer.
663    
664    2003-08-15  Bernhard Herzog  <[email protected]>
665    
666            Change the way shapes are returned by a shape store. The
667            ShapesInRegion method returns an iterator over actual shape
668            objects instead of a list of shape ids.
669    
670            * Thuban/Model/data.py (ShapefileShape.ShapeID): New. Return shape
671            id.
672            (ShapefileStore.ShapesInRegion): Return an iterator over the
673            shapes which yields shape objects instead of returning a list of
674            shape ids
675            (ShapefileStore.AllShapes): New. Return an iterator over all
676            shapes in the shape store
677            (DerivedShapeStore.AllShapes): New. Like in ShapefileStore
678    
679            * Thuban/Model/layer.py (Layer.ShapesInRegion): Update
680            doc-string.
681    
682            * Thuban/UI/baserenderer.py
683            (BaseRenderer.layer_ids, BaseRenderer.layer_shapes): Rename to
684            layer_shapes and make it return an iterator containg shapes
685            instead of a list of ids.
686            (BaseRenderer.draw_shape_layer): Update doc-string; Adapt to
687            layer_shapes() change
688    
689            * Thuban/UI/renderer.py (ScreenRenderer.layer_ids)
690            (ScreenRenderer.layer_shapes): Rename as in BaseRenderer
691    
692            * Thuban/UI/viewport.py (ViewPort._find_shape_in_layer): Adapt to
693            changes in the ShapesInRegion return value.
694            (ViewPort._get_hit_tester): Remove commented out code
695    
696            * test/mockgeo.py (SimpleShapeStore.ShapesInRegion): Adapt to the
697            new return value.
698            (SimpleShapeStore.AllShapes): New. Implement this method too.
699    
700            * test/test_layer.py (TestLayer.test_arc_layer)
701            (TestLayer.test_polygon_layer, TestLayer.test_point_layer)
702            (TestLayer.test_point_layer_with_projection)
703            (TestLayer.test_derived_store): Adapt to changes in the
704            ShapesInRegion return value.
705    
706            * test/test_shapefilestore.py
707            (TestShapefileStoreArc.test_shapes_in_region)
708            (TestShapefileStorePolygon.test_shapes_in_region)
709            (TestShapefileStorePoint.test_shapes_in_region): Adapt to changes
710            in the ShapesInRegion return value.
711            (TestShapefileStorePoint.test_all_shapes)
712            (TestShapefileStoreArc.test_shape_shapeid): New tests for the new
713            methods
714    
715            * test/test_derivedshapestore.py
716            (TestDerivedShapeStore.test_shapes_in_region): Adapt to changes in
717            the ShapesInRegion return value.
718            (TestDerivedShapeStore.test_all_shapes)
719            (TestDerivedShapeStore.test_shape_shapeid): New tests for the new
720            methods
721    
722    2003-08-15  Bernhard Herzog  <[email protected]>
723    
724            Make the renderers deal correctly with raw vs. python level
725            representation of shape geometries
726    
727            * Thuban/UI/baserenderer.py (BaseRenderer.low_level_renderer):
728            Return a flag useraw in addition to the callable and the parameter
729            to indicate whether the callable can deal with the raw shape data
730            or uses the higher level python lists of coordinates. The callable
731            now should accept either the raw data or the return value of the
732            shape's Points() method.
733            (BaseRenderer.draw_shape_layer): Adapt to the low_level_renderer
734            change
735            (BaseRenderer.projected_points): Instead of the shape id use the
736            points list as parameter.
737            (BaseRenderer.draw_polygon_shape, BaseRenderer.draw_arc_shape)
738            (BaseRenderer.draw_point_shape): Adapt to projected_points()
739            change and accept the points list as parameter instead of the
740            shape id.
741    
742            * Thuban/UI/renderer.py (MapRenderer.low_level_renderer): Return
743            the useraw flag as required by the BaseRenderer
744            (ScreenRenderer.draw_shape_layer): Adapt to low-level renderer
745            changes.
746    
747            * test/test_baserenderer.py
748            (TestBaseRenderer.test_point_with_classification): New test for
749            rendering a map with classifications.
750    
751    2003-08-15  Bernhard Herzog  <[email protected]>
752    
753            * Thuban/UI/viewport.py (ViewPort.find_shape_at)
754            (ViewPort._find_shape_in_layer, ViewPort._find_shape_in_layer)
755            (ViewPort._get_hit_tester, ViewPort.projected_points)
756            (ViewPort._hit_point, ViewPort._hit_arc, ViewPort._hit_polygon)
757            (ViewPort._find_label_at): Split the find_shape_at method into
758            several new methods and use the functions in the hit-test module.
759    
760            * Thuban/UI/hittest.py: New module with Python-level hit-testing
761            functions
762    
763            * test/test_hittest.py: New. Test for the new hittest module
764    
765    2003-08-15  Bernhard Herzog  <[email protected]>
766    
767            * Thuban/Model/layer.py (Layer.ShapesInRegion): Apply the layer
768            projection to all corners of the bounding box to get a better
769            approximation of the projected bounding box
770    
771            * test/test_layer.py (TestLayer.test_point_layer_with_projection):
772            New. Test coordinate handling of a layer with a projection.
773            Catches the bug fixed in Layer.ShapesInRegion
774    
775    2003-08-15  Bernhard Herzog  <[email protected]>
776    
777            Move some of the mock objects in test_baserenderer into their own
778            module so they can easily be used from other tests
779    
780            * test/mockgeo.py: New test helper module with some mock objects
781            for geometry related things like shapes, shapestores and
782            projections.
783    
784            * test/test_mockgeo.py: New. Tests for the new helper module
785    
786            * test/test_baserenderer.py: Some of the mock-objects are in
787            mockgeo now.
788    
789    2003-08-12  Jan-Oliver Wagner <[email protected]>
790    
791            * Thuban/UI/about.py (About.__init__): Added Bj�rn Broscheit.
792    
793  2003-08-12  Bernhard Herzog  <[email protected]>  2003-08-12  Bernhard Herzog  <[email protected]>
794    
795          * po/de.po: New. German translations by Bjoern Broscheit          * po/de.po: New. German translations by Bjoern Broscheit

Legend:
Removed from v.1582  
changed lines
  Added in v.1690

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26