TODO
ToRead
PyNEngUK
New book:
- update git images (latest git version)
New site:
- fix PDF images/links
- ? offline docs mode?
- maybe python package pynenguk (docs, quiz, pyneng)?
- readthedocs can host mkdocs (can it generate PDF?)
- add examples to site (for search)?
Waiting for:
- tasks unification (en messages)
- tests unification (en messages)
solutionspyneng-cli
Book
- update code output to Python 3.11!
- Translation
- Tasks https://github.com/natenka/pyneng-tasks-uk
Topic (blog?)
- python package
- python project code org
- code org in single script
- functions (as in adv)
- textual
- pydantic
Додати тему: як організувати код у проекті. На основі того, що вже записала, але без прив’язки до PyPi та великих проектів. Вигадати приклад реорганізації як було в лекції, два скрипти, виділяємо загальне, робимо import package.
Там же поговорити про функції, приклади рефакторингу з великої функції більш дрібні. І переробити одну з прив’язкою умовно до команди та парсингу (+ threads) на три окремі функції: відправити show, threads, а потім вже об’єднуємо в специфіку.)
pyneng-quiz
- rewrite with new version textual
- language menu
pyneng-cli
remove course optionstranslate- add lang selection for task/test/chapter update (add lang_repo_dict in
__init__
)
AdvPyNEng tasks
- переделать тесты type annotations на запуск mypy с флагами?
- 4.3 запись в yaml с идентификацией устройств. Явно написать что надо не только cli создать с click, но и написать код функций
- 8.2 невнятно написано про вызов функции что будет ошибка до выполнения - она будет и после, только другая
- улучшить описание ошибки в тесте 8.4/8.4a когда подключений меньше на 1
- 10.1 не хватает тестов для str/repr
- 18.2 написать что надо использовать async subprocess
- тест 12.5 не проверяет что классы возвращаются
- тест 12.3a не проверяет, что генерируется исключение KeyError для несуществующих ключей
- Добавиь в раздел по pytest xfail
в 12.3a не учитывается один вариант работы со словарем:
In [3]: t1.topology
Out[3]:
{('R1', 'Eth0/0'): ('SW1', 'Eth0/1'),
('R2', 'Eth0/0'): ('SW1', 'Eth0/2'),
('R2', 'Eth0/1'): ('SW2', 'Eth0/11'),
('R3', 'Eth0/0'): ('SW1', 'Eth0/3'),
('R3', 'Eth0/1'): ('R4', 'Eth0/0'),
('R3', 'Eth0/2'): ('R5', 'Eth0/0')}
In [5]: t1[('SW1', 'Eth0/3')] = ("SW2", "Eth0/0")
In [6]: t1.topology
Out[6]:
{('R1', 'Eth0/0'): ('SW1', 'Eth0/1'),
('R2', 'Eth0/0'): ('SW1', 'Eth0/2'),
('R2', 'Eth0/1'): ('SW2', 'Eth0/11'),
('R3', 'Eth0/0'): ('SW1', 'Eth0/3'),
('R3', 'Eth0/1'): ('R4', 'Eth0/0'),
('R3', 'Eth0/2'): ('R5', 'Eth0/0'),
('SW1', 'Eth0/3'): ('SW2', 'Eth0/0')}