class: center, middle # Python ### 23/11/2018 Paweł Suder
https://pasuder.github.io/labs/doc/lab00 --- # Agenda 1. Harmonogram 2. Tematy zajęć 3. Git i organizacja projektu 4. Inne tematy i następne zajęcia --- # Harmonogram - pięć zajęć do końca semestru - cztery zajęcia tematyczne w grudniu - sprawdzenie projektów/test w styczniu --- # Tematy zajęć - Git i organizacja projektu _extra intro_ - Metody specjalne w klasie - Obsługa wyjątków, blok `with` - _List comprehensions_ - Obsługa list z `map`, `filter`, `reduce` --- # Git - _commit_, _branch_, _pull request_, _merge_ - [workflow](https://guides.github.com/introduction/flow/) - [hello world](https://guides.github.com/activities/hello-world/) - [zaawansowane wprowadzenie](https://git-scm.com/docs/gittutorial) --- # Organizacja projektu - informacje o projekcie w `README.md` - [About READMES](https://help.github.com/articles/about-readmes/) - licencja na korzystanie `LICENSE` - [Choose License](https://choosealicense.com/) - opis kontrybucji w projekcie _opcjonalne_ - [Contributors](https://help.github.com/articles/setting-guidelines-for-repository-contributors/) oraz [Code of Conduct](https://help.github.com/articles/adding-a-code-of-conduct-to-your-project/) - testowanie kodów, rodzaje testów, `mock` - [przykłady](https://www.pythonsheets.com/notes/python-tests.html) - `setup.py` - [StackOverflow](https://stackoverflow.com/q/4740473), [sampleproject/setup.py](https://github.com/pypa/sampleproject/blob/master/setup.py) - dystrybucja paczek python - [PyPi](https://pypi.org/), [minimalne howto z setup.py](https://python-packaging.readthedocs.io/en/latest/minimal.html) - przykładowy projekt z opisem i licencją: Flask [repo](https://github.com/pallets/flask) i [paczka](https://pypi.org/project/Flask/) --- # Inne ## Testy - różne rodzaje testów: jednostkowe, funkcjonalne, integracyjne, regresyjne, składniowe - uruchomienie testów `tox` - analiza składni, formatowanie [`pep8`](https://www.python.org/dev/peps/pep-0008/) --- # Inne ## Formatowanie kodu - online narzędzia: [pep8online](http://pep8online.com/) - narzędzia do uruchomienia lokalnie: [`pep8`](https://pypi.org/project/pep8/), [`flake8`](https://pypi.org/project/flake8/) ## `setup.py` - [Quick start](https://the-hitchhikers-guide-to-packaging.readthedocs.io/en/latest/quickstart.html) - [Example setuptools](https://pythonhosted.org/an_example_pypi_project/setuptools.html) --- # Na następne zajęcia - forma oceny bloku: test i/lub projekt - projekt: nowy czy kontynuacja - udostępnienie projektu - Git oraz `README`, `LICENSE` i `setup.py`