Skip to content

Instantly share code, notes, and snippets.

@signalpillar
Created November 16, 2015 12:05
Show Gist options
  • Select an option

  • Save signalpillar/d6e47a33ea564319dc1f to your computer and use it in GitHub Desktop.

Select an option

Save signalpillar/d6e47a33ea564319dc1f to your computer and use it in GitHub Desktop.

Benjamin Peterson - Python Packaging Progress

Presentation just enumerates all tools related to the packaging and their development timeline. It is about pain and

  1. Find out that there is a PyPi replacement project in development Warehouse

    1. Clean code base and developed in Python 3.x

    2. Engineering design, non-attractive

    3. Nice feature - Versions section with date and link to the package version!

      At PyPi I found only https://pypi.python.org/simple/<package>/ to see all available versions but with missing dates which is sometimes helpful information.

  2. Raised interesting question of a single-executable for Python programs - currently there is no discussion or PEP to have this feature as part of the standard Python packaging.

aiohttp (works on 3.3, 3.4) consists of two parts:

  • client
    • code looks really nice as plain synchronous code but with keywords usage (from 3.5)
    • supported
      • Session (cookies)
      • timeouts (used asyncio.wait_for)
      • WebSockets
    • supported timeouts (used asyncio.wait_for)
    • supported WebSockets
  • server
    • static/variable routing. Variable routing support regexp in the pattern
    • restore URL by handler name, registered in the application
    • debug toolbar, sessions (are implemented as a middleware)
    • implementation provides a way to shutdown a server softly so the remaining requests will be processed and user won't notice shutdown.
    • debugging
      • PYTHONASYNCIODEBUG=1 helps to determine not called coroutines (if forget to mark as a yield from)
    • covered testing, should be easy to test
    • good speed comparing to Tornado and Twisted
    • deployment (WSGi)
      • make sense to run a loop per process
      • nginx (reverse proxy, nix_http_upstream_module?) + process per core supervised by supervisord
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment