Skip to content

Instantly share code, notes, and snippets.

@sfelde
Forked from diyan/python_stack.md
Created January 4, 2014 15:51
Show Gist options
  • Save sfelde/8256711 to your computer and use it in GitHub Desktop.
Save sfelde/8256711 to your computer and use it in GitHub Desktop.

Tools and libraries which I prefer to use in Python stack

Development Environment

  • Ubuntu Linux for both development and production
  • Git version control system
  • Jenkins CI build server (but recently I'm moving to git server-side hooks with ssh from git server to dev/stage/prod servers)
  • Redmine bug tracking system
  • JetBrains PyCharm IDE

Production Environment

  • Amazon EC2 instance with Ubuntu Linux
  • Amazon RDS with MySQL backend
  • IPython / ipdb for debugging
  • uWSGI web server
  • Nginx frontend server
  • Sentry error aggregator

Infrastructure

  • Python 2.7 (waiting for Gevent on Python 3)
  • toolz (in addition to itertools)
  • requests
  • validictory
  • pytest, pytest-cov for testing (high-level integration tests but fast test run)
  • mock, freezegun, httpretty, factory_boy for mocking
  • structlog and logging into console, text file, Logstash
  • times for handling time zones
  • pygeoip for reading MaxMind GeoIP databases

Data access

  • MySQL (due to popularity but also like PostgreSQL)
  • SQLAlchemy ORM (must have for legacy databases but not sure about greenfield projects)
  • Redis as buffer storage, session storage, queue and cache
  • RabbitMQ if queue must be durable

Communication / Messaging

  • TODO

Web interface

  • Flask
  • jQuery
  • AngularJS
  • TODO

TODO

  • twilio, phonenumbers, apns_client, xmltodict, flask_principal, PySide

Usually prefer to avoid

  • TODO

Not interested in using

  • TODO, Django

Note this list was written on 2014-01-04 and could/should/must be changed in time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment