1 |
bramz |
2751 |
2007-03-29 Bram de Greve <[email protected]> |
2 |
|
|
|
3 |
|
|
* shapelibmodule.c, dbflibmodule.c, pyshapelib_common.h: added support for |
4 |
|
|
Win32 wide character file API. Unicode filenames are now fully supported |
5 |
|
|
on the windows platform: for example exotic filenames like the greek letter |
6 |
|
|
pi (u"\u03c0"). This is mostly mimicked from Python's fileobject.c, and |
7 |
|
|
needed some severe changes in the C++ shapelib library to support the wide |
8 |
|
|
filename API. All XOpen and XCreate functions now have XOpenW and XCreateW |
9 |
|
|
counterparts plus some common code has been split to XOpenEx and XCreateEx. |
10 |
|
|
I hope these modifications might one day end up in an official shapelib |
11 |
|
|
release. Meanwhile, compatibility is guaranteed as the specific Unicode |
12 |
|
|
code paths are not compiled if the modifications are not found. |
13 |
|
|
|
14 |
bramz |
2749 |
2007-03-22 Bram de Greve <[email protected]> |
15 |
|
|
|
16 |
|
|
* shapelibmodule.c, dbflibmodule.c: in __init__ of ShapeFile and DBFFile, |
17 |
|
|
throw proper IOError if opening of file failed. |
18 |
bramz |
2750 |
|
19 |
|
|
* dbflibmodule.c: commit function was incorrectly pointing to |
20 |
|
|
dbflib_read_record |
21 |
bramz |
2749 |
|
22 |
bramz |
2747 |
2007-03-21 Bram de Greve <[email protected]> |
23 |
|
|
|
24 |
|
|
* shptreemodule.c: restoring something that shouldn't have been committed. |
25 |
|
|
|
26 |
bramz |
2744 |
2007-03-15 Bram de Greve <[email protected]> |
27 |
|
|
|
28 |
bramz |
2745 |
* shapelib.c: When creating measured shapes (XYM), treat M value |
29 |
|
|
value as optional (defaults to zero). Similar for |
30 |
|
|
3D shapes (XYZM), threat both the Z and M value as options |
31 |
|
|
(both default to zero). When M values are to be given, |
32 |
|
|
None is accepted as "no-data" value, and is stored as zero |
33 |
|
|
(ESRI shapefile specs define any M value smaller than 1e-38 |
34 |
|
|
as no-data). Added an unpack_vertex() function to lift some |
35 |
|
|
of the load of shpobject_init. Fixed a missing break and |
36 |
|
|
PyMem_Free in build_vertex_list(), shapefile_init() and |
37 |
|
|
shapelib_create(). |
38 |
|
|
|
39 |
|
|
* dbflibmodule.c: Added support for the FTLogical field type. |
40 |
|
|
|
41 |
|
|
* shapelibmodule.c, dbflibmodule.c: Added 'name' and 'mode' |
42 |
|
|
keywords for ShapeFile and DBFFile constructors and the module's |
43 |
|
|
open() function, similiar to Python's file(). Reformatted |
44 |
|
|
the doc strings to have a standard look and feel when parsed |
45 |
|
|
through pydoc. |
46 |
|
|
|
47 |
|
|
* shapelib_common.h: added no-data constants. |
48 |
|
|
|
49 |
|
|
* pytest.py: Added tests for multipatch shapefile with XYZM values. |
50 |
|
|
Added tests for FTLogical field. |
51 |
|
|
|
52 |
|
|
2007-03-15 Bram de Greve <[email protected]> |
53 |
|
|
|
54 |
bramz |
2744 |
* shapelibmodule.c, dbflibmodule.c: added some Unicode support for the |
55 |
|
|
filenames (no internal encoding for DBFFile yet). It now should similar |
56 |
|
|
Unicode support Python's file() (concerning the filename, that is). |
57 |
|
|
|
58 |
bramz |
2742 |
2007-03-14 Bram de Greve <[email protected]> |
59 |
bramz |
2735 |
|
60 |
bramz |
2743 |
* shapelibmodule.c: added support for shapetypes with Z and M values |
61 |
|
|
|
62 |
|
|
2007-03-14 Bram de Greve <[email protected]> |
63 |
|
|
|
64 |
bramz |
2742 |
* dbflibmodule.c, dbflib.i: replaced dbflib.i by dbflibmodule.c to use |
65 |
|
|
hand-crafted Python bindings instead of SWIG generated ones |
66 |
|
|
|
67 |
|
|
* shapelibmodule.c, shapelib.c: Renamed shapelib.c to shapelibmodule.c |
68 |
|
|
to match style of dbflibmodule.c and shptreemodule.c. Changed some |
69 |
|
|
(well, most) names to match same style. |
70 |
|
|
|
71 |
|
|
* pyshapelib_common.h: do all necessary includes here |
72 |
|
|
|
73 |
|
|
* setup.py: updated building of dbflib. |
74 |
|
|
|
75 |
|
|
2007-03-13 Bram de Greve <[email protected]> |
76 |
|
|
|
77 |
bramz |
2741 |
* shapelib.c, shapelib_common.h: Added part_types() to SHPObject to |
78 |
|
|
return tuple of part types. Added __repr__ operators to return a |
79 |
|
|
string that can reconstruct the object using eval() |
80 |
|
|
|
81 |
|
|
* pytest.py: Added tests for part_types() and __repr__. |
82 |
|
|
Humanized the output a bit. |
83 |
|
|
|
84 |
bramz |
2742 |
2007-03-12 Bram de Greve <[email protected]> |
85 |
bramz |
2741 |
|
86 |
bramz |
2735 |
* shapelib.c, shapelib.i: replaced shapelib.i by shapelib.c to use |
87 |
|
|
hand-crafted Python bindings instead of SWIG generated ones. |
88 |
|
|
|
89 |
|
|
* pyshapelib_common.h: New file with some common stuff for both |
90 |
|
|
shapelib and dbflib |
91 |
|
|
|
92 |
|
|
* pyshapelib_api.h, setup.py: import/build shapelib instead of shapelibc |
93 |
|
|
|
94 |
bernhard |
2704 |
2006-09-24 Bernhard Reiter <[email protected]> |
95 |
|
|
|
96 |
bernhard |
2706 |
* dbflib_wrap.c, README: Checked for python version >= 2.4.0a0 |
97 |
|
|
before using &PyOS_ascii_atof. |
98 |
|
|
|
99 |
|
|
2006-09-24 Bernhard Reiter <[email protected]> |
100 |
|
|
|
101 |
bernhard |
2704 |
Added dirty workaround to make dbflib agnostic |
102 |
|
|
against decimal_poinst != ".\0". |
103 |
|
|
|
104 |
|
|
* dbflib_wrap.c: Added call DBFSetatof_function(&PyOS_ascii_atof); |
105 |
|
|
to initdbflibc(). |
106 |
|
|
* README: noted that manual editing of dbflib_wrap.c is necessary now. |
107 |
|
|
|
108 |
bh |
2637 |
2005-06-30 Bernhard Herzog <[email protected]> |
109 |
|
|
|
110 |
|
|
* shapelib.i (new_SHPObject): Fix the test for the length of the |
111 |
|
|
part types. It used the wrong variable. |
112 |
|
|
|
113 |
|
|
* shapelib_wrap.c: Regenerated from shapelib.i |
114 |
|
|
|
115 |
|
|
* pytest.py (make_shapefile): Add some more comments and add an |
116 |
|
|
example with a polygon with a hole. |
117 |
|
|
|
118 |
bernhard |
2510 |
2004-12-27 Bernhard Reiter <[email protected]> |
119 |
|
|
|
120 |
|
|
* README: Refering to the new homepage shapelib.maptools.org now. |
121 |
|
|
|
122 |
bh |
2453 |
2004-12-13 Bernhard Herzog <[email protected]> |
123 |
|
|
|
124 |
|
|
* dbflib.py: Updated from difflib.i with SWIG. |
125 |
|
|
|
126 |
|
|
* dbflib.i: Work around a bug in the generated python code which |
127 |
|
|
leads to exception in the __del__ method when the constructor |
128 |
|
|
fails. See the comments in the code for more details. |
129 |
|
|
|
130 |
bh |
2223 |
2004-05-28 Bernhard Herzog <[email protected]> |
131 |
|
|
|
132 |
bh |
2227 |
* README: Flesh out the some more. Correct the shapelib |
133 |
|
|
requirements. |
134 |
|
|
|
135 |
|
|
* NEWS: Update the date of the actual release of 0.3 |
136 |
|
|
|
137 |
|
|
2004-05-28 Bernhard Herzog <[email protected]> |
138 |
|
|
|
139 |
bh |
2223 |
* setup.py: Determine shp_dir correctly when run with bdist_rpm |
140 |
|
|
(dbf_macros): Remove a debug print |
141 |
|
|
|
142 |
|
|
* NEWS: Also mention the new (compared to 0.2) setup.py |
143 |
|
|
|
144 |
|
|
* MANIFEST.in: New. Define which files belong into a source |
145 |
|
|
distribution |
146 |
|
|
|
147 |
bh |
2213 |
2004-05-17 Bernhard Herzog <[email protected]> |
148 |
|
|
|
149 |
|
|
* README: Update for new release |
150 |
|
|
|
151 |
|
|
* setup.py (dbf_macros): New. Return the preprocessor macros |
152 |
|
|
needed to compile the dbflib wrapper. Determine whether |
153 |
|
|
DBFUpdateHeader is available and define the right value of |
154 |
|
|
HAVE_UPDATE_HEADER |
155 |
|
|
(extensions): Use dbf_macros for the dbflibc extension |
156 |
|
|
|
157 |
|
|
* dbflib_wrap.c, dbflib.py: Update from dbflib.i |
158 |
|
|
|
159 |
|
|
* dbflib.i (DBFInfo_commit): New. Implementation of the commit |
160 |
|
|
method. This new indirection is necessary because we use the |
161 |
|
|
DBFUpdateHeader function now which is not available in shapelib <= |
162 |
|
|
1.2.10 |
163 |
|
|
(DBFFile::commit): Use DBFInfo_commit as implementation |
164 |
|
|
(pragma __class__): New. Kludge to remove the commit method when |
165 |
|
|
the DBFUpdateHeader function isn't available |
166 |
|
|
(_have_commit): New. Helper for the pragma kludge. |
167 |
|
|
|
168 |
bh |
1920 |
2003-11-03 Bernhard Herzog <[email protected]> |
169 |
|
|
|
170 |
|
|
* dbflib.i (do_read_attribute): New helper function for reading |
171 |
|
|
one attribute as a python object |
172 |
|
|
(DBFInfo_read_attribute): New. Implement the read_attribute method |
173 |
|
|
(DBFInfo_read_record): Use do_read_attribute to read the |
174 |
|
|
individual values |
175 |
|
|
(struct DBFFile): Add the read_attribute method. |
176 |
|
|
|
177 |
|
|
* dbflib_wrap.c, dbflib.py: Update from dbflib.i. |
178 |
|
|
|
179 |
bh |
1763 |
2003-09-29 Bernhard Herzog <[email protected]> |
180 |
|
|
|
181 |
|
|
* dbflib.i: Add exception typemap for the add_field method. Fixes |
182 |
|
|
Thuban bug RT#1842 |
183 |
|
|
|
184 |
|
|
* dbflib_wrap.c: Update from dbflib.i |
185 |
|
|
|
186 |
|
|
* testdbf.py: New. Test cases for the dbflib bindings based on the |
187 |
|
|
unittest module |
188 |
|
|
|
189 |
jan |
1611 |
2003-08-18 Bernhard Herzog <[email protected]> |
190 |
|
|
|
191 |
|
|
* dbflib.i (DBFInfo_write_record): Use PySequence_Check instead of |
192 |
|
|
PyMapping_Check to distinguish between sequences and mappings |
193 |
|
|
because in Python 2.3, PyMapping_Check returns true for tuples and |
194 |
|
|
lists too. |
195 |
|
|
|
196 |
|
|
2003-05-28 Bernhard Herzog <[email protected]> |
197 |
|
|
|
198 |
|
|
* dbflib.i (DBFInfo_read_record): Read NULL fields as None unless |
199 |
|
|
it's a string field. DBF files can't distinguish between NULL and |
200 |
|
|
an empty string. Also, check the return value of |
201 |
|
|
DBFReadStringAttribute which may return NULL to indicate errors. |
202 |
|
|
|
203 |
|
|
* dbflib_wrap.c: Updated from dbflib.i |
204 |
|
|
|
205 |
|
|
2002-08-27 Bernhard Herzog <[email protected]> |
206 |
|
|
|
207 |
|
|
* dbflib.i: Raise an exception if open or create fails. |
208 |
|
|
|
209 |
|
|
* shapelib.i: Slightly better wording for the IOError exception |
210 |
|
|
that open and create may raise. |
211 |
|
|
|
212 |
|
|
* shapelib_wrap.c, dbflib_wrap.c: Regenerated |
213 |
|
|
|
214 |
|
|
2002-08-22 Bernhard Herzog <[email protected]> |
215 |
|
|
|
216 |
|
|
* dbflib.i (DBFFile::commit): New method for DBFCommit. |
217 |
|
|
|
218 |
|
|
* dbflib_wrap.c, dbflib.py: Update from dbflib.i |
219 |
|
|
|
220 |
|
|
2002-08-15 Bernhard Herzog <[email protected]> |
221 |
|
|
|
222 |
|
|
* shapelib.i, dbflib.i: Make the NOCHECK trick for the ShapeFile * |
223 |
|
|
check typemap work with SWIG 1.3. |
224 |
|
|
|
225 |
|
|
* shapelib_wrap.c, dbflib_wrap.c: Regenerate from the .i files. |
226 |
|
|
|
227 |
|
|
2002-05-10 Bernhard Herzog <[email protected]> |
228 |
|
|
|
229 |
|
|
* dbflib.i (DBFInfo_write_record): Only DECREF if the return value |
230 |
|
|
of PyMapping_GetItemString is not NULL. Also, test the return |
231 |
|
|
value of PySequence_GetItem |
232 |
|
|
(write_field): Remove some debug prints |
233 |
|
|
|
234 |
|
|
* dbflib_wrap.c: Updated from dbflib.i |
235 |
|
|
|
236 |
|
|
2002-05-07 Bernhard Herzog <[email protected]> |
237 |
|
|
|
238 |
|
|
* shptreemodule.c (SHPTreeType, initshptree): Set SHPTreeType's |
239 |
|
|
PyType_Type pointer in the init function. |
240 |
|
|
(shptree_methods): Use METH_VARARGS |
241 |
|
|
(shptree_dealloc): Use PyMem_DEL |
242 |
|
|
(shptree_find_shapes): Add a missing return |
243 |
|
|
|
244 |
|
|
2002-05-07 Bernhard Herzog <[email protected]> |
245 |
|
|
|
246 |
|
|
* shptreemodule.c: New file with a simple wrapper for shapelib's |
247 |
|
|
quadtree |
248 |
|
|
|
249 |
|
|
* setup.py: Some fixes to use explicit forward slashes as |
250 |
|
|
directory separators because of distutils. |
251 |
|
|
(extensions): Add the shptree module. |
252 |
|
|
|
253 |
|
|
* pytest.py (read_shapefile): Add some demo calls for the shptree |
254 |
|
|
module |
255 |
|
|
|
256 |
|
|
* pyshapelib_api.h (PyShapeLibAPI): Add some of the shptree |
257 |
|
|
functions. |
258 |
|
|
(PYSHAPELIB_IMPORT_API): New macro to import the API |
259 |
|
|
|
260 |
|
|
* shapelib.i (the_api): add the tree API functions. |
261 |
|
|
|
262 |
|
|
* shapelib_wrap.c: Updated from shapelib.i with SWIG. |
263 |
|
|
|
264 |
|
|
2002-04-11 Bernhard Herzog <[email protected]> |
265 |
|
|
|
266 |
|
|
* pyshapelib_api.h: New file with a limited C-level API for |
267 |
|
|
accessing shapilib functions from other Python-extensions. |
268 |
|
|
|
269 |
|
|
* shapelib.i: Export the C-level API with the c_api function. |
270 |
|
|
|
271 |
|
|
* shapelib.py, shapelib_wrap.c: Updated from shapelib.i. Still |
272 |
|
|
done with a very old version of SWIG, but it's probably not worth |
273 |
|
|
it to try it with a newer version as long as this still works. |
274 |
|
|
|
275 |
|
|
2001-07-18 Bernhard Herzog <[email protected]> |
276 |
|
|
|
277 |
|
|
* shapelib.i (open_ShapeFile): declare the swig prototype |
278 |
|
|
correctly with ShapeFile* as return type |
279 |
|
|
(ShapeFile.cobject): New method returning the SHPHandle* as a |
280 |
|
|
CObject |
281 |
|
|
|
282 |
|
|
* Makefile (VERSION): Increase to 0.3 |
283 |
|
|
|
284 |
|
|
* setup.py, MANIFEST.in: New files for python distutils. |
285 |
|
|
|
286 |
|
|
2001-06-15 Bernhard Herzog <[email protected]> |
287 |
|
|
|
288 |
|
|
* Makefile (VERSION): Increase to 0.2 |
289 |
|
|
|
290 |
|
|
2001-06-14 Bernhard Herzog <[email protected]> |
291 |
|
|
|
292 |
|
|
* shapelib.i: Add the functions SHPTypeName as type_name and |
293 |
|
|
SHPPartTypeName as part_type_name |
294 |
|
|
(SHPObject_vertices): |
295 |
|
|
(build_vertex_list): Put building a list of vertices into the |
296 |
|
|
separate function build_vertex_list so that SHPObject_vertices can |
297 |
|
|
support SHPT_POINT too. |
298 |
|
|
|
299 |
|
|
* ChangeLog: create ChangeLog |
300 |
|
|
|