├── .flake8 ├── .gitignore ├── .isort.cfg ├── .travis.yml ├── LICENSE ├── Makefile ├── README.md ├── agenda.md ├── code ├── 00-preparation │ └── hello.py ├── 01-intro-asyncio │ ├── async_demo.py │ └── sync_demo.py ├── 02-intro-aiohttp │ ├── aiohttp_demo.py │ └── requests_demo.py ├── 04-server │ ├── 01-simple-server.py │ ├── 02-path-and-arguments.py │ ├── 03-rest.py │ └── client.sh ├── 05-client │ └── 01-client.py ├── 06-templates │ ├── 01-templated-server.py │ ├── jinja_server.py │ └── templates │ │ ├── base.html │ │ ├── edit.html │ │ ├── example.html │ │ ├── index.html │ │ ├── new.html │ │ └── view.html ├── 07-file-uploading │ ├── 01-file-uploading.py │ └── templates │ │ ├── base.html │ │ ├── edit.html │ │ ├── example.html │ │ ├── index.html │ │ ├── new.html │ │ └── view.html ├── 08-middlewares │ ├── 01-error-middleware.py │ └── templates │ │ ├── base.html │ │ ├── edit.html │ │ ├── error-page.html │ │ ├── example.html │ │ ├── index.html │ │ ├── new.html │ │ └── view.html ├── 09-sessions │ ├── 01-login-session.py │ └── templates │ │ ├── base.html │ │ ├── edit.html │ │ ├── error-page.html │ │ ├── example.html │ │ ├── index.html │ │ ├── login.html │ │ ├── new.html │ │ └── view.html └── 10-testing │ ├── proj │ ├── __init__.py │ ├── client.py │ ├── server.py │ └── templates │ │ ├── base.html │ │ ├── edit.html │ │ ├── error-page.html │ │ ├── example.html │ │ ├── index.html │ │ ├── login.html │ │ ├── new.html │ │ └── view.html │ ├── setup.py │ └── tests │ ├── conftest.py │ ├── test_aioresponses.py │ ├── test_client.py │ ├── test_client_fake_server.py │ └── test_rest.py ├── docs ├── Makefile ├── _templates │ └── sidebarlogo.html ├── aiohttp_client.rst ├── aiohttp_client_full.rst ├── aiohttp_file_uploading.rst ├── aiohttp_images_upload_full.rst ├── aiohttp_intro.rst ├── aiohttp_middlewares.rst ├── aiohttp_middlewares_full.rst ├── aiohttp_server.rst ├── aiohttp_server_rest_full.rst ├── aiohttp_session.rst ├── aiohttp_session_full.rst ├── aiohttp_templates.rst ├── aiohttp_templates_full.rst ├── aiohttp_tests.rst ├── asyncio_intro.rst ├── conf.py ├── git-basics.rst ├── index.rst ├── make.bat └── preparation_resources.rst ├── mypy.ini └── requirements.txt /.flake8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/.flake8 -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/.gitignore -------------------------------------------------------------------------------- /.isort.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/.isort.cfg -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/.travis.yml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/README.md -------------------------------------------------------------------------------- /agenda.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/agenda.md -------------------------------------------------------------------------------- /code/00-preparation/hello.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/00-preparation/hello.py -------------------------------------------------------------------------------- /code/01-intro-asyncio/async_demo.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/01-intro-asyncio/async_demo.py -------------------------------------------------------------------------------- /code/01-intro-asyncio/sync_demo.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/01-intro-asyncio/sync_demo.py -------------------------------------------------------------------------------- /code/02-intro-aiohttp/aiohttp_demo.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/02-intro-aiohttp/aiohttp_demo.py -------------------------------------------------------------------------------- /code/02-intro-aiohttp/requests_demo.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/02-intro-aiohttp/requests_demo.py -------------------------------------------------------------------------------- /code/04-server/01-simple-server.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/04-server/01-simple-server.py -------------------------------------------------------------------------------- /code/04-server/02-path-and-arguments.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/04-server/02-path-and-arguments.py -------------------------------------------------------------------------------- /code/04-server/03-rest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/04-server/03-rest.py -------------------------------------------------------------------------------- /code/04-server/client.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/04-server/client.sh -------------------------------------------------------------------------------- /code/05-client/01-client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/05-client/01-client.py -------------------------------------------------------------------------------- /code/06-templates/01-templated-server.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/06-templates/01-templated-server.py -------------------------------------------------------------------------------- /code/06-templates/jinja_server.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/06-templates/jinja_server.py -------------------------------------------------------------------------------- /code/06-templates/templates/base.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/06-templates/templates/base.html -------------------------------------------------------------------------------- /code/06-templates/templates/edit.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/06-templates/templates/edit.html -------------------------------------------------------------------------------- /code/06-templates/templates/example.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/06-templates/templates/example.html -------------------------------------------------------------------------------- /code/06-templates/templates/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/06-templates/templates/index.html -------------------------------------------------------------------------------- /code/06-templates/templates/new.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/06-templates/templates/new.html -------------------------------------------------------------------------------- /code/06-templates/templates/view.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/06-templates/templates/view.html -------------------------------------------------------------------------------- /code/07-file-uploading/01-file-uploading.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/07-file-uploading/01-file-uploading.py -------------------------------------------------------------------------------- /code/07-file-uploading/templates/base.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/07-file-uploading/templates/base.html -------------------------------------------------------------------------------- /code/07-file-uploading/templates/edit.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/07-file-uploading/templates/edit.html -------------------------------------------------------------------------------- /code/07-file-uploading/templates/example.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/07-file-uploading/templates/example.html -------------------------------------------------------------------------------- /code/07-file-uploading/templates/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/07-file-uploading/templates/index.html -------------------------------------------------------------------------------- /code/07-file-uploading/templates/new.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/07-file-uploading/templates/new.html -------------------------------------------------------------------------------- /code/07-file-uploading/templates/view.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/07-file-uploading/templates/view.html -------------------------------------------------------------------------------- /code/08-middlewares/01-error-middleware.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/08-middlewares/01-error-middleware.py -------------------------------------------------------------------------------- /code/08-middlewares/templates/base.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/08-middlewares/templates/base.html -------------------------------------------------------------------------------- /code/08-middlewares/templates/edit.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/08-middlewares/templates/edit.html -------------------------------------------------------------------------------- /code/08-middlewares/templates/error-page.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/08-middlewares/templates/error-page.html -------------------------------------------------------------------------------- /code/08-middlewares/templates/example.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/08-middlewares/templates/example.html -------------------------------------------------------------------------------- /code/08-middlewares/templates/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/08-middlewares/templates/index.html -------------------------------------------------------------------------------- /code/08-middlewares/templates/new.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/08-middlewares/templates/new.html -------------------------------------------------------------------------------- /code/08-middlewares/templates/view.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/08-middlewares/templates/view.html -------------------------------------------------------------------------------- /code/09-sessions/01-login-session.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/09-sessions/01-login-session.py -------------------------------------------------------------------------------- /code/09-sessions/templates/base.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/09-sessions/templates/base.html -------------------------------------------------------------------------------- /code/09-sessions/templates/edit.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/09-sessions/templates/edit.html -------------------------------------------------------------------------------- /code/09-sessions/templates/error-page.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/09-sessions/templates/error-page.html -------------------------------------------------------------------------------- /code/09-sessions/templates/example.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/09-sessions/templates/example.html -------------------------------------------------------------------------------- /code/09-sessions/templates/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/09-sessions/templates/index.html -------------------------------------------------------------------------------- /code/09-sessions/templates/login.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/09-sessions/templates/login.html -------------------------------------------------------------------------------- /code/09-sessions/templates/new.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/09-sessions/templates/new.html -------------------------------------------------------------------------------- /code/09-sessions/templates/view.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/09-sessions/templates/view.html -------------------------------------------------------------------------------- /code/10-testing/proj/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /code/10-testing/proj/client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/10-testing/proj/client.py -------------------------------------------------------------------------------- /code/10-testing/proj/server.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/10-testing/proj/server.py -------------------------------------------------------------------------------- /code/10-testing/proj/templates/base.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/10-testing/proj/templates/base.html -------------------------------------------------------------------------------- /code/10-testing/proj/templates/edit.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/10-testing/proj/templates/edit.html -------------------------------------------------------------------------------- /code/10-testing/proj/templates/error-page.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/10-testing/proj/templates/error-page.html -------------------------------------------------------------------------------- /code/10-testing/proj/templates/example.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/10-testing/proj/templates/example.html -------------------------------------------------------------------------------- /code/10-testing/proj/templates/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/10-testing/proj/templates/index.html -------------------------------------------------------------------------------- /code/10-testing/proj/templates/login.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/10-testing/proj/templates/login.html -------------------------------------------------------------------------------- /code/10-testing/proj/templates/new.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/10-testing/proj/templates/new.html -------------------------------------------------------------------------------- /code/10-testing/proj/templates/view.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/10-testing/proj/templates/view.html -------------------------------------------------------------------------------- /code/10-testing/setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/10-testing/setup.py -------------------------------------------------------------------------------- /code/10-testing/tests/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/10-testing/tests/conftest.py -------------------------------------------------------------------------------- /code/10-testing/tests/test_aioresponses.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/10-testing/tests/test_aioresponses.py -------------------------------------------------------------------------------- /code/10-testing/tests/test_client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/10-testing/tests/test_client.py -------------------------------------------------------------------------------- /code/10-testing/tests/test_client_fake_server.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/10-testing/tests/test_client_fake_server.py -------------------------------------------------------------------------------- /code/10-testing/tests/test_rest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/code/10-testing/tests/test_rest.py -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/docs/Makefile -------------------------------------------------------------------------------- /docs/_templates/sidebarlogo.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/docs/_templates/sidebarlogo.html -------------------------------------------------------------------------------- /docs/aiohttp_client.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/docs/aiohttp_client.rst -------------------------------------------------------------------------------- /docs/aiohttp_client_full.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/docs/aiohttp_client_full.rst -------------------------------------------------------------------------------- /docs/aiohttp_file_uploading.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/docs/aiohttp_file_uploading.rst -------------------------------------------------------------------------------- /docs/aiohttp_images_upload_full.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/docs/aiohttp_images_upload_full.rst -------------------------------------------------------------------------------- /docs/aiohttp_intro.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/docs/aiohttp_intro.rst -------------------------------------------------------------------------------- /docs/aiohttp_middlewares.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/docs/aiohttp_middlewares.rst -------------------------------------------------------------------------------- /docs/aiohttp_middlewares_full.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/docs/aiohttp_middlewares_full.rst -------------------------------------------------------------------------------- /docs/aiohttp_server.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/docs/aiohttp_server.rst -------------------------------------------------------------------------------- /docs/aiohttp_server_rest_full.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/docs/aiohttp_server_rest_full.rst -------------------------------------------------------------------------------- /docs/aiohttp_session.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/docs/aiohttp_session.rst -------------------------------------------------------------------------------- /docs/aiohttp_session_full.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/docs/aiohttp_session_full.rst -------------------------------------------------------------------------------- /docs/aiohttp_templates.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/docs/aiohttp_templates.rst -------------------------------------------------------------------------------- /docs/aiohttp_templates_full.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/docs/aiohttp_templates_full.rst -------------------------------------------------------------------------------- /docs/aiohttp_tests.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/docs/aiohttp_tests.rst -------------------------------------------------------------------------------- /docs/asyncio_intro.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/docs/asyncio_intro.rst -------------------------------------------------------------------------------- /docs/conf.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/docs/conf.py -------------------------------------------------------------------------------- /docs/git-basics.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/docs/git-basics.rst -------------------------------------------------------------------------------- /docs/index.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/docs/index.rst -------------------------------------------------------------------------------- /docs/make.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/docs/make.bat -------------------------------------------------------------------------------- /docs/preparation_resources.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/docs/preparation_resources.rst -------------------------------------------------------------------------------- /mypy.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/mypy.ini -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asvetlov/us-pycon-2019-tutorial/HEAD/requirements.txt --------------------------------------------------------------------------------