Skip to content

Commit 9b4622b

Browse files
committed
Update MI-PYT materials with various new stuff, mostly Python 3.7
1 parent 92ce742 commit 9b4622b

File tree

9 files changed

+93
-71
lines changed

9 files changed

+93
-71
lines changed

lessons/fast-track/install/index.md

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ Modul `venv` je součást [standardní knihovny](https://docs.python.org/3/libra
2828
Zkontroluj, že máš modul `ensurepip`:
2929

3030
```console
31-
$ python3.6 -m ensurepip --version
32-
pip 9.0.1 (nebo i jiná verze)
31+
$ python3.7 -m ensurepip --version
32+
pip 18.0 (nebo i jiná verze)
3333
```
3434

3535
Jestli ne, postupuj podle [lekce pro začátečníky]({{ lesson_url('beginners/install') }}) –
@@ -39,15 +39,15 @@ Jinak použij:
3939
```console
4040
$ mkdir project
4141
$ cd project
42-
$ python3.6 -m venv __venv__ # vytvoření virtualenvu -- použij Python dle systému
42+
$ python3.7 -m venv __venv__ # vytvoření virtualenvu -- použij Python 3 dle systému
4343
$ . __venv__/bin/activate # aktivace
4444
(__venv__)$ python -m pip install requests # příkaz na instalaci balíčků puštěný ve virtualenvu
4545
(__venv__)$ ... # práce "uvnitř"
4646
(__venv__)$ deactivate # vypnutí virtualenvu
4747
```
4848

4949
{% if var('mi-pyt') %}
50-
V tomto kurzu lze případně využít i Python 3.5. Pokud máš 3.4 nebo ještě nižší,
50+
V tomto kurzu lze případně využít i Python 3.6. Pokud máš 3.5 nebo ještě nižší,
5151
doporučujeme aktualizovat.
5252
{% endif %}
5353

@@ -63,20 +63,25 @@ doporučujeme aktualizovat.
6363
(__venv__)> deactivate # vypnutí virtualenvu
6464
```
6565

66-
<!-- XXX: Windows cmd prompt with active venv is not highlighted properly... -->
67-
6866
## Poznámky
6967

70-
Příkaz `__venv__/bin/activate` budeš muset zadat vždy, než začneš na projektu
68+
Příkaz `. __venv__/bin/activate` budeš muset zadat vždy, než začneš na projektu
7169
pracovat.
7270

7371
Ono `__venv__` je jen jméno adresáře. Můžeš si ho pojmenovat jak chceš; dokonce
7472
nemusí být v rámci adresáře s projektem.
7573
Někteří lidé mají všechny virtuální prostředí na jednom místě; dokonce existuje
76-
nástroj [virtualenvwrapper] na správu takového řešení.
77-
Autoři tohoto textu však doporučují `__venv__` v adresáři s projektem.
74+
nástroj [virtualenvwrapper] na správu takového řešení, případně [pipenv],
75+
který _Python Packaging Authority_ [doporučuje] pro vývoj aplikací (my ale
76+
budeme vyvíjet i knihovny).
77+
78+
Autoři tohoto textu tedy doporučují `__venv__` v adresáři s projektem.
79+
Při použití v kombinaci s Gitem nezapomeň tento adresář přidat do souboru
80+
`.gitignore`.
7881

7982
[virtualenvwrapper]: https://virtualenvwrapper.readthedocs.io/en/latest/
83+
[pipenv]: https://pipenv.readthedocs.io/en/latest/
84+
[doporučuje]: https://packaging.python.org/tutorials/managing-dependencies/
8085

8186
Příkaz `python -m pip install` nainstaluje danou knihovnu – může to být i jiná
8287
než `requests` jako výše.

lessons/intro/async/index.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,9 @@ Každé vlákno může mít vlastní smyčku událostí, kterou získáme pomoc
203203
úlohy „vyčerpaly“), nebo
204204
* `loop.run_until_complete(task)` – tahle funkce skončí hned, jakmile je hotová
205205
daná úloha, a vrátí její výsledek.
206-
206+
* Od Pythonu 3.7 můžete použít jednoduché `asyncio.run(task)`, aniž byste museli
207+
explicitně pracovat s určitou smyčkou událostí. Jedná se ale o API, které se
208+
v budoucnu může změnit.
207209
208210
209211
Futures

lessons/intro/deployment/pythonanywhere.md

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
Deployment webových aplikací na PythonAnywhere
22
==============================================
33

4-
[Python Anywhere] je pro limitované použití zdarma.
4+
[PythonAnywhere] je pro limitované použití zdarma.
55

66
K posílání kódu na produkční prostředí budeme používat Git.
77
Nejprve proto uložte celý projekt do Gitu a nahrajte na GitHub.
88

99
Potom se zaregistrujte na
1010
[www.pythonanywhere.com](https://www.pythonanywhere.com/) a vyberte
11-
Beginner Account.
11+
*Beginner Account*.
1212
Po přihlášení se ukáže záložka *Consoles*, kde vytvořte "Bash" konzoli.
1313
V té vytvořte a aktivujte virtuální prostředí a nainstalujte Flask (plus
1414
případně další závislosti nebo jiný webový framework).
@@ -19,12 +19,20 @@ na vytvoření virtuální prostředí, než jste z toho kurzu zvyklí.
1919
Napište příkazy takto (bez úvodního `$`):
2020

2121
```console
22-
$ virtualenv --python=python3.6 __venv__
22+
$ virtualenv --python=python3.7 __venv__
2323
$ . __venv__/bin/activate
2424
$ python -m pip install flask
2525
```
2626

27-
Následně naklonujte na PythonAnywhere náš kód.
27+
> [note]
28+
> Pokud máte na PythonAnywhere starší účet, možná tam Python 3.7 nenajdete.
29+
> Můžete použít Python 3.6, nemělo by to vadit, protože tento návod je
30+
> koncipován tak, aby s touto verzí také fungoval.
31+
> Případně můžete [zažádat o aktualizaci systémové
32+
> image](https://www.pythonanywhere.com/forums/topic/12878/#id_post_52160).
33+
34+
35+
Následně naklonujte na PythonAnywhere váš kód.
2836
S veřejným repozitářem je to jednodušší – stačí ho naklonovat „anonymně”
2937
(`git clone https://github.com/<github-username>/<github-repo>`).
3038
Pokud ale používáme privátní repozitář, bude potřeba si vygenerovat SSH klíč:
@@ -77,7 +85,7 @@ Nakonec restartujte aplikaci velkým zeleným tlačítkem na záložce *Web*
7785
a na adrese <code><var>&lt;uživatelské-jméno&gt;</var>.pythonanywhere.com</code>
7886
si ji můžete prohlédnout.
7987

80-
[Python Anywhere]: https://www.pythonanywhere.com/
88+
[PythonAnywhere]: https://www.pythonanywhere.com/
8189

8290
### Deployment soukromých údajů
8391

lessons/intro/distribution/index.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ Je to dobrá konvence, ale není to technicky nutné.
5656
Balíček můžeme zkusit nainstalovat do virtualenvu:
5757

5858
```console
59-
$ python3.6 -m venv __venv__ # (nebo jinak -- podle vašeho OS)
59+
$ python3.7 -m venv __venv__ # (nebo jinak -- podle vašeho OS)
6060
$ . __venv__/bin/activate # (nebo jinak -- podle vašeho OS)
6161
(__venv__)$ python setup.py install
6262
...
@@ -176,7 +176,8 @@ setup(
176176
'Programming Language :: Python',
177177
'Programming Language :: Python :: Implementation :: CPython',
178178
'Programming Language :: Python :: 3',
179-
'Programming Language :: Python :: 3.5',
179+
'Programming Language :: Python :: 3.6',
180+
'Programming Language :: Python :: 3.7',
180181
'Topic :: Software Development :: Libraries',
181182
],
182183
zip_safe=False,

lessons/intro/docs/index.md

Lines changed: 25 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -25,28 +25,30 @@ K modulům `autodoc` a `doctest` se dostaneme později.
2525
```ansi
2626
␛[36m$␛[0m . __venv__/bin/activate
2727
␛[36m(__venv__) $␛[0m python -m pip install sphinx
28+
␛[36m(__venv__) $␛[0m mkdir docs
29+
␛[36m(__venv__) $␛[0m cd docs
2830
␛[36m(__venv__) $␛[0m python -m sphinx.quickstart
29-
␛[01mWelcome to the Sphinx 1.5.5 quickstart utility.␛[39;49;00m
31+
␛[01mWelcome to the Sphinx 1.8.1 quickstart utility.␛[39;49;00m
3032
3133
Please enter values for the following settings (just press Enter to
3234
accept a default value, if one is given in brackets).
3335
34-
Enter the root path for documentation.
35-
␛[35m> Root path for the documentation [.]: ␛[39;49;00mdocs
36+
␛[01mSelected root path: .␛[39;49;00m
3637
37-
...
38+
You have two options for placing the build directory for Sphinx output.
39+
Either, you use a directory "_build" within the root path, or you separate
40+
"source" and "build" directories within the root path.
41+
␛[35m> Separate source and build directories (y/n) [n]: ␛[39;49;00m
42+
43+
Inside the root directory, two more directories will be created; "_templates"
44+
for custom HTML templates and "_static" for custom stylesheets and other static
45+
files. You can enter another prefix (such as ".") to replace the underscore.
46+
␛[35m> Name prefix for templates and static dir [_]: ␛[39;49;00m
3847
3948
The project name will occur in several places in the built documentation.
4049
␛[35m> Project name: ␛[39;49;00mcoolthing
4150
␛[35m> Author name(s): ␛[39;49;00mPythonista Dokumentarista
42-
43-
Sphinx has the notion of a "version" and a "release" for the
44-
software. Each version can have multiple releases. For example, for
45-
Python the version is something like 2.5 or 3.0, while the release is
46-
something like 2.5.1 or 3.0a1. If you don't need this dual structure,
47-
just set both to the same value.
48-
␛[35m> Project version []: ␛[39;49;00m0.1
49-
␛[35m> Project release [0.1]: ␛[39;49;00m
51+
␛[35m> Project release []: ␛[39;49;00m 0.1
5052
5153
...
5254
@@ -60,7 +62,7 @@ Please indicate if you want to use one of the following Sphinx extensions:
6062
␛[01mFinished: An initial directory structure has been created.␛[39;49;00m
6163
```
6264

63-
Průvodce vytvoří složku `docs` a v ní několik souborů:
65+
Průvodce vytvoří ve složce `docs` několik souborů:
6466

6567
* `conf.py` – konfigurační soubor,
6668
* `index.rst` – vlastní text dokumantace,
@@ -80,10 +82,9 @@ dokumentace sestavit do HTML.
8082
> manuálové stránky atd.), pro nás bude podstatné především HTML.
8183
8284
```console
83-
(__venv__) $ cd docs
8485
(__venv__) $ make html
8586
...
86-
Build finished. The HTML pages are in _build/html.
87+
The HTML pages are in _build/html.
8788
```
8889

8990
Ve zmíněné složce byste měli najít `index.html`, ten si můžete prohlédnout
@@ -149,7 +150,7 @@ It refers to the section itself, see :ref:`my-reference-label`.
149150
It could refer to a different section as well :)
150151
```
151152

152-
[konstrukce ref]: http://www.sphinx-doc.org/en/1.4.8/markup/inline.html#role-ref
153+
[konstrukce ref]: http://www.sphinx-doc.org/en/master/markup/inline.html#role-ref
153154

154155

155156
Co do dokumentace psát
@@ -321,7 +322,7 @@ You can use other values:
321322
```
322323

323324
Testy se také dají zařazovat do skupin, více
324-
v [dokumentaci](http://www.sphinx-doc.org/en/1.4.8/ext/doctest.html).
325+
v [dokumentaci](http://www.sphinx-doc.org/en/master/ext/doctest.html).
325326

326327
```console
327328
(__venv__) $ make doctest
@@ -358,6 +359,8 @@ Pokud jste postupovali podle návodu výše, máte dokumentaci v adresáři `doc
358359
je tedy potřeba přidat nadřazený adresář (`..`):
359360

360361
```python
362+
# -- Path setup --------------------------------------------------------------
363+
361364
# If extensions (or modules to document with autodoc) are in another directory,
362365
# add these directories to sys.path here. If the directory is relative to the
363366
# documentation root, use os.path.abspath to make it absolute, like shown here.
@@ -382,7 +385,7 @@ Poté na Travisu můžete udělat něco jako:
382385
```yaml
383386
language: python
384387
python:
385-
- '3.6'
388+
- '3.7'
386389
install:
387390
- python setup.py install
388391
- pip install -r docs/requirements.txt
@@ -420,7 +423,7 @@ Tento příklad na dané místo vygeneruje dokumentaci složenou z dokumentačn
420423

421424
Pokud chcete selektivně vybrat, dokumentaci čeho chcete generovat,
422425
můžete použít i
423-
[jiné direktivy](http://www.sphinx-doc.org/en/1.4.8/ext/autodoc.html#directive-automodule).
426+
[jiné direktivy](http://www.sphinx-doc.org/en/master/ext/autodoc.html#directive-automodule).
424427

425428
Pro vygenerování hezké struktury si můžete pomoci příkazem `apidoc`:
426429

@@ -476,7 +479,7 @@ class Betamax:
476479
Existují různé způsoby, jak dokumentovat argumenty, návratové hodnoty apod.
477480
Zvídavým studentům doporučujeme podívat se na rozšíření [Napoleon].
478481

479-
[Napoleon]: http://www.sphinx-doc.org/en/1.4.8/ext/napoleon.html
482+
[Napoleon]: http://www.sphinx-doc.org/en/master/ext/napoleon.html
480483

481484

482485
Odkazy na třídy a moduly
@@ -496,8 +499,8 @@ bez použití `autodoc`.
496499
Všechny zdokumentované objekty se automaticky přidávají do rejstříku.
497500
Chcete-li do rejstříku přidat něco navíc, použijte direktivu [index].
498501

499-
[domény Python]: http://www.sphinx-doc.org/en/1.4.8/domains.html#cross-referencing-python-objects
500-
[index]: http://www.sphinx-doc.org/en/1.4.8/markup/misc.html#index-generating-markup
502+
[domény Python]: http://www.sphinx-doc.org/en/master/domains.html#cross-referencing-python-objects
503+
[index]: http://www.sphinx-doc.org/en/master/markup/misc.html#index-generating-markup
501504

502505

503506
README.rst

lessons/intro/flask/index.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,16 +49,18 @@ Pak aplikaci spusťte pomocí následujících příkazů.
4949
(__venv__) $ export FLASK_APP=hello.py
5050
(__venv__) $ export FLASK_DEBUG=1
5151
(__venv__) $ flask run
52+
* Serving Flask app "hello"
53+
* Forcing debug mode on
5254
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
5355
* Restarting with stat
5456
* Debugger is active!
55-
* Debugger pin code: 189-972-345
57+
* Debugger PIN: 189-972-345
5658
```
5759
Na zmíněné adrese byste měli v prohlížeči vidět použitý text.
5860

5961
Proměnná prostředí `FLASK_APP` říká Flasku, kde aplikaci najít.
6062
V daném souboru Flask hledá automaticky proměnnou jménem `app`.
61-
([Jde nastavit](http://flask.pocoo.org/docs/0.12/cli/) i jiná.)
63+
([Jde nastavit](http://flask.pocoo.org/docs/1.0/cli/) i jiná.)
6264
Proměnná `FLASK_DEBUG` nastavuje ladícím režim, který si popíšeme za chvíli.
6365

6466
V programu jsme jako `app` vytvořili flaskovou aplikaci.
@@ -87,7 +89,7 @@ def hello():
8789

8890
Na adrese [`http://127.0.0.1:5000/hello/`][local-hello] pak uvidíte druhou stránku.
8991

90-
[`@app.route`]: http://flask.pocoo.org/docs/0.12/api/#flask.Flask.route
92+
[`@app.route`]: http://flask.pocoo.org/docs/1.0/api/#flask.Flask.route
9193
[local-hello]: http://127.0.0.1:5000/hello/
9294

9395
### Ladící režim
@@ -115,7 +117,7 @@ jako `/user/hroncok/`, ale nemůžete při každé registraci nového uživatele
115117
přidávat novou funkci do kódu.
116118
Musíte použít [dynamické routy]:
117119

118-
[dynamické routy]: http://flask.pocoo.org/docs/0.12/quickstart/#variable-rules
120+
[dynamické routy]: http://flask.pocoo.org/docs/1.0/quickstart/#variable-rules
119121

120122
```python
121123
@app.route('/user/<username>/')
@@ -157,7 +159,7 @@ K tomu se používá funkce [`url_for()`], která jako první parametr bere jmé
157159
routy (neboli jméno funkce, která routu obsluhuje), a pak pojmenované argumenty
158160
pro pravidla v dynamické routě:
159161

160-
[`url_for()`]: http://flask.pocoo.org/docs/0.12/api/#flask.url_for
162+
[`url_for()`]: http://flask.pocoo.org/docs/1.0/api/#flask.url_for
161163

162164
```python
163165
from flask import url_for
@@ -418,4 +420,4 @@ Flask umí i další věci – například zpracování formulářů, chybové s
418420
přesměrování.
419421

420422
Všechno to najdete
421-
[v dokumentaci](http://flask.pocoo.org/docs/0.11/quickstart/).
423+
[v dokumentaci](http://flask.pocoo.org/docs/1.0/quickstart/).

lessons/intro/pyqt/index.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Pokud budete používat svůj počítač, prosíme vás o instalaci již předem
1616

1717
### PyQt5
1818

19-
Pokud máte Python 3.5 a jednu z platforem, pro které je připraven [wheel na PyPI](https://pypi.org/project/PyQt5/), stačí udělat:
19+
Pokud máte Python alespoň 3.5 a jednu z platforem, pro které je připraven [wheel na PyPI](https://pypi.org/project/PyQt5/), stačí udělat:
2020

2121
```console
2222
(__venv__) $ python -m pip install --upgrade pip
@@ -36,7 +36,8 @@ Pokud nic z toho nepomůže, můžete zkusit přeložit PyQt5 ze [zdrojových so
3636

3737
*První aplikace* níže by vám měla fungovat.
3838

39-
Pokud narazíte na chybu `Could not find or load the Qt platform plugin "xcb"`, podívejte se do [naší issue](https://github.com/cvut/MI-PYT/issues/57).
39+
> [note]
40+
> Pokud narazíte na chybu `Could not find or load the Qt platform plugin "xcb"`, podívejte se do [naší issue](https://github.com/cvut/MI-PYT/issues/57).
4041
4142
### Qt5 Designer
4243

lessons/intro/requests/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ k testování HTTP dotazů:
7070
>>> session.headers.update({'x-test': 'true'})
7171
>>> r = session.get('http://httpbin.org/headers', headers={'x-test2': 'true'})
7272
>>> r.json()
73-
{'headers': {'Accept': '*/*', 'User-Agent': 'python-requests/2.10.0', 'X-Test2': 'true', 'Host': 'httpbin.org', 'Accept-Encoding': 'gzip, deflate', 'X-Test': 'true', 'Cookie': 'mipyt=best'}}
73+
{'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Connection': 'close', 'Cookie': 'mipyt=best', 'Host': 'httpbin.org', 'User-Agent': 'python-requests/2.19.1', 'X-Test': 'true', 'X-Test2': 'true'}}
7474
```
7575

7676
## Twitter API

0 commit comments

Comments
 (0)