File: todo.rst

package info (click to toggle)
python-sfml 1.5.1.is.1.3%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 1,456 kB
  • ctags: 1,585
  • sloc: python: 5,747; cpp: 285; makefile: 147
file content (88 lines) | stat: -rw-r--r-- 3,283 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
TODO list
=========

Altough this is the **first** version of pySFML enterely based on SFML2 (the
final version), it isn't the perfect version I want because there are still
remaining minor tasks.

While all its functionnalities are present with *an interface that
won't change*, the internal implementation can still be improved to provide
a better C/Cython API as well as other minor
things. See :doc:`C/Cython section</c_api>`.

Also, only some part of the documentation hasn't yet been revised (though,
95% should be correct) and most of the unit tests still need to be
implemented.

Justying the differences
^^^^^^^^^^^^^^^^^^^^^^^^
I want to provide a comprehensive list of all the differences between the
original API and these Python bindings API. As Python isn't C++, the design
can't be exactly the same because of languages differences and philosophy. I'd
like to provide a document justifying all these differences.


Some unit tests still need to be implemented
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Only unit tests for the system moduel are so far implemented.

Object representation
^^^^^^^^^^^^^^^^^^^^^
What should be printed out when typing `print(object)` (with object being a
SFML object).

Enumeration
^^^^^^^^^^^
So far, a C++ enumeration is translated to a set of Python integer constants
but while I was porting Thor I noticed we're having a issue with that. A Thor
action (thor::Action) can be created from these enumeration but as it has
become integer constants we can't know from what C++ enumeration they are from;
an information is lost.

This only regards the implementation, not the interface, so don't worry, I'm
just considering subclassing the integer type.

Add information about copyable classes to the documentation
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
How do people find out if one object is copyable via the copy module or not ?
Currently you can't find that in the documentation.

String conversion handling
^^^^^^^^^^^^^^^^^^^^^^^^^^
To have the same interface in both Python2 and Python3, I used a Cython trick but now
there seems to have support for that in newer Cython version. I need to find
out the best code (and maybe the fastest) for this task.

sf.Text constructor
^^^^^^^^^^^^^^^^^^^
I remember it was a mess when implementing this constructor.

How well the bindings work on Python3.3
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Meantime a new release of Python is out (Python 3.3) which re-introduces
unicode string. I need to check if it runs fine (string/unicode/bytes coercion).

Consider using C++ smart pointer
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Instead of maintaining a boolean to know if we can destroy the object or if it
is shared.

Use const keyword
^^^^^^^^^^^^^^^^^
The latest Cython version support const keyword in its language, I should make
use of it.

Lack of information about operator in the documentation
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
I noticed that.

SocketSelector, Ftp and Http still need to be implemented
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pass

Remove import__module__name() in C++ code
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
I need to find out how to use them properly instead of redeclaring them
everywhere I had a crash.