python/pypngtile: cleanup cython using modern cimports
authorTero Marttila <terom@paivola.fi>
Sun, 14 Sep 2014 16:26:38 +0300
changeset 133 67f956b71bdf
parent 132 0260aeca943c
child 134 08a0056f6175
python/pypngtile: cleanup cython using modern cimports
python/pypngtile.pxd
python/pypngtile.pyx
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/python/pypngtile.pxd	Sun Sep 14 16:26:38 2014 +0300
@@ -0,0 +1,50 @@
+from libc.stdio cimport (
+        FILE,
+)
+
+cdef extern from "pngtile.h" :
+    struct pt_ctx :
+        pass
+
+    struct pt_image :
+        pass
+
+    enum pt_open_mode :
+        PT_OPEN_READ    # 0
+        PT_OPEN_UPDATE
+
+    enum pt_cache_status :
+        PT_CACHE_ERROR  # -1
+        PT_CACHE_FRESH
+        PT_CACHE_NONE
+        PT_CACHE_STALE
+        PT_CACHE_INCOMPAT
+
+    struct pt_image_info :
+        size_t img_width, img_height, img_bpp
+        int image_mtime, cache_mtime, cache_version
+        size_t image_bytes, cache_bytes
+        size_t cache_blocks
+
+    struct pt_image_params :
+        int background_color[4]
+    
+    struct pt_tile_info :
+        size_t width, height
+        size_t x, y
+        int zoom
+
+    ctypedef pt_image_info* const_image_info_ptr "const struct pt_image_info *"
+    
+    ## functions
+    int pt_image_open (pt_image **image_ptr, pt_ctx *ctx, char *png_path, int cache_mode) nogil
+    int pt_image_info_ "pt_image_info" (pt_image *image, pt_image_info **info_ptr) nogil
+    int pt_image_status (pt_image *image) nogil
+    int pt_image_load (pt_image *image) nogil
+    int pt_image_update (pt_image *image, pt_image_params *params) nogil
+    int pt_image_tile_file (pt_image *image, pt_tile_info *info, FILE *out) nogil
+    int pt_image_tile_mem (pt_image *image, pt_tile_info *info, char **buf_ptr, size_t *len_ptr) nogil
+    void pt_image_destroy (pt_image *image) nogil
+    
+    # error code -> name
+    char* pt_strerror (int err)
--- a/python/pypngtile.pyx	Sun Sep 14 16:08:40 2014 +0300
+++ b/python/pypngtile.pyx	Sun Sep 14 16:26:38 2014 +0300
@@ -1,68 +1,25 @@
-cdef extern from "errno.h" :
-    extern int errno
-
-cdef extern from "string.h" :
-    char* strerror (int err)
-
-    void* memset (void *, int, size_t)
-    void* memcpy (void *, void *, size_t)
-
-cimport stdio
-cimport stdlib
-cimport python_string
+from libc.errno cimport (
+        errno,
+)
+from libc.string cimport (
+        strerror,
+        memset,
+        memcpy,
+)
+from libc.stdio cimport (
+        FILE,
+)
+from libc.stdlib cimport (
+        free,
+)
+from cpython.string cimport (
+    PyString_FromStringAndSize,
+)
+from pypngtile cimport *
 
 cdef extern from "Python.h" :
     int PyFile_Check (object p)
-    stdio.FILE* PyFile_AsFile (object p)
-    void PyFile_IncUseCount (object p)
-    void PyFile_DecUseCount (object p)
-
-cdef extern from "pngtile.h" :
-    struct pt_ctx :
-        pass
-
-    struct pt_image :
-        pass
-
-    enum pt_open_mode :
-        PT_OPEN_READ    # 0
-        PT_OPEN_UPDATE
-
-    enum pt_cache_status :
-        PT_CACHE_ERROR  # -1
-        PT_CACHE_FRESH
-        PT_CACHE_NONE
-        PT_CACHE_STALE
-        PT_CACHE_INCOMPAT
-
-    struct pt_image_info :
-        size_t img_width, img_height, img_bpp
-        int image_mtime, cache_mtime, cache_version
-        size_t image_bytes, cache_bytes
-        size_t cache_blocks
-
-    struct pt_image_params :
-        int background_color[4]
-    
-    struct pt_tile_info :
-        size_t width, height
-        size_t x, y
-        int zoom
-
-    ctypedef pt_image_info* const_image_info_ptr "const struct pt_image_info *"
-    
-    ## functions
-    int pt_image_open (pt_image **image_ptr, pt_ctx *ctx, char *png_path, int cache_mode) nogil
-    int pt_image_info_ "pt_image_info" (pt_image *image, pt_image_info **info_ptr) nogil
-    int pt_image_status (pt_image *image) nogil
-    int pt_image_load (pt_image *image) nogil
-    int pt_image_update (pt_image *image, pt_image_params *params) nogil
-    int pt_image_tile_file (pt_image *image, pt_tile_info *info, stdio.FILE *out) nogil
-    int pt_image_tile_mem (pt_image *image, pt_tile_info *info, char **buf_ptr, size_t *len_ptr) nogil
-    void pt_image_destroy (pt_image *image) nogil
-    
-    # error code -> name
-    char* pt_strerror (int err)
+    FILE* PyFile_AsFile (object p)
 
 ## constants
 # Image()
@@ -226,10 +183,10 @@
             zoom        - zoom level: out = 2**(-zoom) * in
             out         - output file
 
-            Note that the given file object MUST be a *real* stdio FILE*, not a fake Python object.
+            Note that the given file object MUST be a *real* FILE*, not a fake Python object.
         """
 
-        cdef stdio.FILE *outf
+        cdef FILE *outf
         cdef pt_tile_info ti
         cdef int err
 
@@ -292,10 +249,10 @@
             raise Error("pt_image_tile_mem", err)
         
         # copy buffer as str...
-        data = python_string.PyString_FromStringAndSize(buf, len)
+        data = PyString_FromStringAndSize(buf, len)
 
         # drop buffer...
-        stdlib.free(buf)
+        free(buf)
 
         return data