50 lines
1.6 KiB
Plaintext
50 lines
1.6 KiB
Plaintext
|
|
Style
|
|
=====
|
|
|
|
* For indentation, use *four space characters* per level of indentation.
|
|
|
|
* When comparing C pointers, use == and != instead of the python operator "is".
|
|
This makes a visual distinction between C and py code and don't confuse the
|
|
reader as "==" and "is" has different meaning in python.
|
|
|
|
* Internal utility functions used in the bindings must start with an
|
|
underscore and must have the shortest name as possible.
|
|
|
|
Design patterns
|
|
===============
|
|
* From "The Zen of Python":
|
|
|
|
Beautiful is better than ugly.
|
|
Explicit is better than implicit.
|
|
Simple is better than complex.
|
|
Complex is better than complicated.
|
|
Flat is better than nested.
|
|
Sparse is better than dense.
|
|
Readability counts.
|
|
Special cases aren't special enough to break the rules.
|
|
Although practicality beats purity.
|
|
Errors should never pass silently.
|
|
Unless explicitly silenced.
|
|
In the face of ambiguity, refuse the temptation to guess.
|
|
There should be one-- and preferably only one --obvious way to do it.
|
|
Although that way may not be obvious at first unless you're Dutch.
|
|
Now is better than never.
|
|
Although never is often better than *right* now.
|
|
If the implementation is hard to explain, it's a bad idea.
|
|
If the implementation is easy to explain, it may be a good idea.
|
|
Namespaces are one honking great idea -- let's do more of those!
|
|
|
|
Tips
|
|
====
|
|
|
|
* cython -a will generate a report that shows your cython code, and each line
|
|
can be expanded by clicking to show the generated C code.
|
|
|
|
* cython does automatic dict <-> struct conversion with basic struct members
|
|
|
|
Ideas
|
|
=====
|
|
|
|
* Use a decorator for _METHOD_DEPRECATED
|