Repository: kivy/kivy

Issue:
Kivy is using deprecated Cython syntax for properties
### Versions

* Kivy: master

### Description

According to [Cython documentation](http://cython.readthedocs.io/en/latest/src/userguide/extension_types.html) we are using a "special (deprecated) legacy syntax for defining properties in an extension class".  The new syntax is `@property`, `@propname.setter` and `@propname.deleter` instead of `property propname:`

The deprecated syntax is used in the files listed below (and maybe elsewhere). It's not clear if or when the legacy syntax is slated for removal.

* [graphics/gl_instructions.pyx](https://github.com/kivy/kivy/blob/master/kivy/graphics/gl_instructions.pyx)
* [lib/vidcore_lite/bcm.pyx](https://github.com/kivy/kivy/blob/master/kivy/lib/vidcore_lite/bcm.pyx)
* [graphics/context_instructions.pyx](https://github.com/kivy/kivy/blob/master/kivy/graphics/context_instructions.pyx)
* [graphics/scissor_instructions.pyx](https://github.com/kivy/kivy/blob/master/kivy/graphics/scissor_instructions.pyx)
* [graphics/instructions.pyx](https://github.com/kivy/kivy/blob/master/kivy/graphics/instructions.pyx)
* [graphics/vertex_instructions.pyx](https://github.com/kivy/kivy/blob/master/kivy/graphics/vertex_instructions.pyx)
* [graphics/texture.pyx](https://github.com/kivy/kivy/blob/master/kivy/graphics/texture.pyx)
* [graphics/vertex_instructions_line.pxi](https://github.com/kivy/kivy/blob/master/kivy/graphics/vertex_instructions_line.pxi)
* [graphics/fbo.pyx](https://github.com/kivy/kivy/blob/master/kivy/graphics/fbo.pyx)
* [graphics/shader.pyx](https://github.com/kivy/kivy/blob/master/kivy/graphics/shader.pyx)
* [graphics/stencil_instructions.pyx](https://github.com/kivy/kivy/blob/master/kivy/graphics/stencil_instructions.pyx)
* [graphics/svg.pyx](https://github.com/kivy/kivy/blob/master/kivy/graphics/svg.pyx)
* [weakproxy.pyx](https://github.com/kivy/kivy/blob/master/kivy/weakproxy.pyx)
* [properties.pyx](https://github.com/kivy/kivy/blob/master/kivy/properties.pyx)
* [_event.pyx](https://github.com/kivy/kivy/blob/master/kivy/_event.pyx)
* [core/window/_window_sdl2.pyx](https://github.com/kivy/kivy/blob/master/kivy/core/window/_window_sdl2.pyx)



Discussion:
Ah, so they adopted one of the pure python syntax, nice, should be a pretty mechanical change.
Forgot to add, the old syntax was deprecated in Cython 0.24 (2016-04-04), Kivy's minimum supported version must be bumped when this is updated
Hm, it's more about when the new syntax was introduced, right? or is it the same version?

edit: yeah, considering the time frame between https://github.com/cython/cython/pull/462 and https://github.com/cython/cython/pull/468 it's certainly the same release.
> or is it the same version?

Yes sorry that was poorly worded; the new syntax was finalized in 0.24, and the old syntax deprecated in the same release
@tshirtman @bionoid Any progress on this issue?
No, but if you want to do a PR, that's more than welcome, else, it'll come certainly for next release, since it shouldn't be too hard to do.

Resolving patch:
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -74,7 +74,7 @@ def get_version(filename='kivy/version.py'):
     return VERSION
 
 
-MIN_CYTHON_STRING = '0.23'
+MIN_CYTHON_STRING = '0.24'
 MIN_CYTHON_VERSION = LooseVersion(MIN_CYTHON_STRING)
 MAX_CYTHON_STRING = '0.28.3'
 MAX_CYTHON_VERSION = LooseVersion(MAX_CYTHON_STRING)


Test patch: