{ "info": { "author": "Chelsea Voss", "author_email": "csvoss@mit.edu", "bugtrack_url": null, "classifiers": [], "description": "Oneliner-izer\n=========\n\n[![Build Status](https://travis-ci.org/csvoss/onelinerizer.svg?branch=master)](https://travis-ci.org/csvoss/onelinerizer)\n\n\nConvert any Python file into a single line of code which has the same functionality.\n\nNo newlines allowed. No semicolons allowed, either.\n\n**Live demo at [onelinepy.herokuapp.com](http://onelinepy.herokuapp.com/)!**\n\n[Presentation at PyCon 2016](https://www.youtube.com/watch?v=DsUxuz_Rt8g), and [slide deck](https://speakerdeck.com/pycon2016/chelsea-voss-oneliner-izer-an-exercise-in-constrained-coding).\n\n\nUser Installation and Usage\n---\n\nInstall via `pip` from PyPI:\n\n```sh\n$ pip install onelinerizer\n```\n\nUse either the command line function or the Python module:\n\n```sh\n$ echo \"def f(x):\\n print x\\nf(4)\" > sandbox.py\n$ onelinerizer sandbox.py --debug\n$ onelinerizer sandbox_ol.py\n```\n\n```python\nfrom onelinerizer import onelinerize\nonelinerize(\"def f(x):\\n print x\\nf(4)\")\n```\n\nExamples\n--------\n\n**Before:**\n\n```python\nx = 3\ny = 4\nprint (x < y < 5)\n```\n\n**After:**\n\n```python\n(lambda __builtin__: (lambda __print, __y, d: [[__print(d.x n:\n print \"Too big! Try again!\"\n elif user_input < n:\n print \"Too small! Try again!\"\n else:\n print \"You win!\"\n return True\nguess_my_number(42)\n```\n\n**After:**\n\n```python\n(lambda __builtin__: (lambda __print, __y, d: [(lambda ___: None)(d.guess_my_number(42)) for d.guess_my_number in [(lambda n:[(__y(lambda __this: (lambda d: (lambda __after: [(lambda __after: (lambda ___: __after(d))(__print('Not a positive integer!')) if (d.len(d.user_input)==0 or (not d.user_input.isdigit())) else [(lambda __after: (lambda ___: __after(d))(__print('Too big! Try again!')) if d.user_input>d.n else (lambda __after: (lambda ___: __after(d))(__print('Too small! Try again!')) if d.user_input