Skip to content

Commit 39bdcd4

Browse files
committed
Cython added
1 parent 2d4bf88 commit 39bdcd4

File tree

2 files changed

+63
-3
lines changed

2 files changed

+63
-3
lines changed

README.md

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2978,7 +2978,7 @@ pg.draw.ellipse(<Surf>, color, <Rect>)
29782978
```python
29792979
<Font> = pg.font.SysFont('<name>', size, bold=False, italic=False)
29802980
<Font> = pg.font.Font('<path>', size)
2981-
<Surf> = <Font>.render(text, antialias, color, background=None)
2981+
<Surf> = <Font>.render(text, antialias, color [, background])
29822982
```
29832983

29842984
### Sound
@@ -3422,6 +3422,42 @@ if __name__ == '__main__':
34223422
```
34233423

34243424

3425+
Cython
3426+
------
3427+
**Library that compiles Python code into C.**
3428+
3429+
```python
3430+
# $ pip3 install cython
3431+
```
3432+
3433+
```python
3434+
cdef <type> <var_name> = <el>
3435+
cdef <type>[n_elements] <var_name> = [<el_1>, <el_2>, ...]
3436+
cdef <type/void> <func_name>(<type> <arg_name_1>, ...):
3437+
```
3438+
3439+
```python
3440+
cdef class <class_name>:
3441+
cdef public <type> <attr_name>
3442+
def __init__(self, <type> <arg_name>):
3443+
self.<attr_name> = <arg_name>
3444+
```
3445+
3446+
```python
3447+
cdef enum <enum_name>: <member_name_1>, <member_name_2>, ...
3448+
```
3449+
* **All `'cdef'` definitions are optional, but they contribute to the speed-up.**
3450+
* **Script needs to be saved with a `'pyx'` extension.**
3451+
3452+
#### Running Cython code:
3453+
```python
3454+
#!/usr/bin/env python3
3455+
import pyximport; pyximport.install()
3456+
import <pyx_script_name>
3457+
<pyx_script_name>.main()
3458+
```
3459+
3460+
34253461
Basic Script Template
34263462
---------------------
34273463
```python
@@ -3452,5 +3488,4 @@ def read_file(filename):
34523488

34533489
if __name__ == '__main__':
34543490
main()
3455-
34563491
```

index.html

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2544,7 +2544,7 @@
25442544
</code></pre>
25452545
<div><h3 id="font">Font</h3><pre><code class="python language-python hljs">&lt;Font&gt; = pg.font.SysFont(<span class="hljs-string">'&lt;name&gt;'</span>, size, bold=<span class="hljs-keyword">False</span>, italic=<span class="hljs-keyword">False</span>)
25462546
&lt;Font&gt; = pg.font.Font(<span class="hljs-string">'&lt;path&gt;'</span>, size)
2547-
&lt;Surf&gt; = &lt;Font&gt;.render(text, antialias, color, background=<span class="hljs-keyword">None</span>)
2547+
&lt;Surf&gt; = &lt;Font&gt;.render(text, antialias, color [, background])
25482548
</code></pre></div>
25492549

25502550
<div><h3 id="sound">Sound</h3><pre><code class="python language-python hljs">&lt;Sound&gt; = pg.mixer.Sound(<span class="hljs-string">'&lt;path&gt;'</span>) <span class="hljs-comment"># Loads the WAV file.</span>
@@ -2911,6 +2911,31 @@
29112911

29122912

29132913

2914+
<div><h2 id="cython"><a href="#cython" name="cython">#</a>Cython</h2><p><strong>Library that compiles Python code into C.</strong></p><pre><code class="python language-python hljs"><span class="hljs-comment"># $ pip3 install cython</span>
2915+
</code></pre></div>
2916+
2917+
2918+
<pre><code class="python language-python hljs">cdef &lt;type&gt; &lt;var_name&gt; = &lt;el&gt;
2919+
cdef &lt;type&gt;[n_elements] &lt;var_name&gt; = [&lt;el_1&gt;, &lt;el_2&gt;, ...]
2920+
cdef &lt;type/void&gt; &lt;func_name&gt;(&lt;type&gt; &lt;arg_name_1&gt;, ...):
2921+
</code></pre>
2922+
<pre><code class="python language-python hljs">cdef <span class="hljs-class"><span class="hljs-keyword">class</span> &lt;<span class="hljs-title">class_name</span>&gt;:</span>
2923+
cdef public &lt;type&gt; &lt;attr_name&gt;
2924+
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">__init__</span><span class="hljs-params">(self, &lt;type&gt; &lt;arg_name&gt;)</span>:</span>
2925+
self.&lt;attr_name&gt; = &lt;arg_name&gt;
2926+
</code></pre>
2927+
<pre><code class="python language-python hljs">cdef enum &lt;enum_name&gt;: &lt;member_name_1&gt;, &lt;member_name_2&gt;, ...
2928+
</code></pre>
2929+
<ul>
2930+
<li><strong>All <code class="python hljs"><span class="hljs-string">'cdef'</span></code> definitions are optional, but they contribute to the speed-up.</strong></li>
2931+
<li><strong>Script needs to be saved with a <code class="python hljs"><span class="hljs-string">'pyx'</span></code> extension.</strong></li>
2932+
</ul>
2933+
<div><h4 id="runningcythoncode">Running Cython code:</h4><pre><code class="python language-python hljs"><span class="hljs-comment">#!/usr/bin/env python3</span>
2934+
<span class="hljs-keyword">import</span> pyximport; pyximport.install()
2935+
<span class="hljs-keyword">import</span> &lt;pyx_script_name&gt;
2936+
&lt;pyx_script_name&gt;.main()
2937+
</code></pre></div>
2938+
29142939
<div><h2 id="basicscripttemplate"><a href="#basicscripttemplate" name="basicscripttemplate">#</a>Basic Script Template</h2><pre><code class="python language-python hljs"><span class="hljs-comment">#!/usr/bin/env python3</span>
29152940
<span class="hljs-comment">#</span>
29162941
<span class="hljs-comment"># Usage: .py</span>

0 commit comments

Comments
 (0)