PyCon Pune 2017

A conference on the Python programming language

Amit Kumar Jaiswal

@amitkumarjaiswal

Build Pythonic development environments in nix

Submitted Nov 6, 2016

Our aim of this session is the Introduction of rqtxt2nix, which is a small utility which converts requirements.txt file into .nix file that contains myEnvFun declaration, which helps to build pythonic development environments in nix.

Outline

Build nix expressions from pythonic requirements.txt

Key Features:

  1. Generates nice short and clean dev environment expression
  2. Makes specific versions of python libraries from requirements.txt
  3. Writes url/hash code boiler plate
  4. Doesn’t execute untrusted code (i.e., setup.py)
  5. Very short and simple script

Apart from the above feature, our session outlines are:

  1. Dependency Tracking
    Note: The rqtxt2nix does absolutely nothing to track dependencies, The main idea is that it’s easy to add buildInputs.
  2. Customization
    • a) Python Version
    • b) Customizing the environment
    • c) Altering packages
  3. Updating environments

Requirements

Since this would be a development workshop on Python, so participants should come with their own laptop given that they should know the Python programming language. Development should be from scratch and can be shown, still without any problem related to a varying number of participants.

Speaker bio

Amit Kumar Jaiswal is a final year undergraduate of Computer Science & Engineering from Kanpur University. He is a Free Software Enthusiast and an active open source contributor to Mozilla[1], Fedora[2], Docker[3], WikiMedia[4] and recently started with FOSSASIA projects. As an Open Hacktivist and a passionate coder, he is an ardent fan of MS Dhoni and a travel freak. He is fond of Mathematics and inculcating new interests.
1. Mozilla Representative
2. FedoraWiki
3. Docker Hub
4. Phabricator

Links

Slides

http://amitkumarj441.github.io/Presentations/Python

Comments

{{ gettext('Login to leave a comment') }}

{{ gettext('Post a comment…') }}
{{ gettext('New comment') }}
{{ formTitle }}

{{ errorMsg }}

{{ gettext('No comments posted yet') }}