cpdef enums are automatically exported to C and
to python, no more need for the enums file and
the duplicated definition for py.
This is a cython 0.21 feature so from now on you will
need at least that version.
Require some <int> cast here and there, but a totally
win in the end.
Now ecore do not more looks like an alien with his __init__
hack and his different module/package structure
This broke ecore.x users as the extension is now efl.ecore_x
Sorry to bother but I still think that ecore_x should not be
implemented in python, if this hurt you please let me know
The old efl.ecore.so module renamed to __init__.so which gets
automatically used for the package namespace when there is an empty
__init__.py included.
Elm was lgpl3, COPYING was lgpl3, docs say lgpl3. So fix everything to be v3.
Also fix the COPING for Lesser: we must include gpl (in COPYING) AND lgpl (in COPYING.LESSER).
With "except *" a call is made to PyErr_Occurred on each call of a
function.
Adding a return value where possible and using an appropriate exception
value calls PyErr_Occurred only when that value is returned, ie.
an exception has been raised.
cdef void example_func() except *: <- PyErr_Occurred called on each call
cdef int example_func() except 0: <- PyErr_Occurred called only when
an exception has been raised (the function thus returns 0)
Has two loggers: efl and efl.eo.
To test, add handlers, formatters etc. and change levels using
normal Python logging utilities. The test messages come from
efl.eo init and class registration.
Decorators implemented in a much more simple and generic
way than before, we can use them in other place too.
3 deco implemented:
@on_signal(emission, source)
@message_handler
@on_text_change
I choosed the 'strange' on_* naming convention to not
clash/confuse with normal callback functions, tell
me if you don't like.
Some stuff is not working on the C side, the unit test is full
of FIXME and TODO. The biggest problem is the PartState that
do not work at all, I will give a short look at this, but I'm
not so much intrested atm...If you want/need to help please
let me know.
Now we may leak the strings from _(c)fruni which should be looked up
case by case. The positive side is that we no longer point to (possibly)
invalid memory.
Strings used with touni funcs are suspected to leak as well.
* _strings_to_python -> eina_list_strings_to_python_list
* _strings_from_python -> python_list_strings_to_eina_list
Add two functions for string array conversion.
Add two properties to elm.Window.
This is meant to be the 1.8 version of the wrappers and will include everything
that now is in the python folder.
Atm this include evas, ecore, edje, elementary and emotion (emotion still commented
in the build couse it need some more testing). Eo is used as a base for all the
objects that inherit from it in C, but in real nothing is used from Eo, it is
used more like a container to share code between the libs.
All the docs has been stripped out because we want to use the new sphinx style
docs that Kay has done in his git repo. (Kay: please wait a little bit to include
it, as working on the libs without docs is much more easy)
The new wrappers include a new container module called efl and thus you can live
with both the old and the new installation. This also means that you need to import
the new modules as:
"from efl import evas" (instead of the old "import evas")
The idea here is that you can make your code works with both version doing
something like:
try:
import evas
except:
from efl import evas
...like is done in the gtk bindings
Some stuff has been leaved out on purpose, because was old stuff (like the hacked
evas rotation stuff) or because was not working as expected (like all the ecore.evas.XXX
modules). See the TODO.txt file for more info. Probably some stuff is out just because I
missed them, let me know if you miss something.
Improvements from the old version:
- Py3 compatible (still some work to be done, but really only TODO, no problems to resolv)
- Should also works on other platforms, like windoz (but not tested)
- Unittests greatly improved, you can also run ALL tests at once
- much more simpler :)
I will contine the works in the next weeks and hope someone will help too.
NOTE: I switched back to setup.py instead of autotools, because that is the right way to
compile python stuff. So to build just use:
python setup.py install
or
python3 setup.py install
Enjoy
davemds
SVN revision: 83831