{
"info": {
"author": "Ruslan Spivak",
"author_email": "ruslan.spivak@gmail.com",
"bugtrack_url": null,
"classifiers": [
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Operating System :: Unix",
"Programming Language :: Python",
"Topic :: Software Development :: Compilers"
],
"description": "::\n\n _____ _ _____ __ __ _____ _______\n / ____| | |_ _| \\/ |_ _|__ __|\n | (___ | | | | | \\ / | | | | |\n \\___ \\| | | | | |\\/| | | | | |\n ____) | |____ _| |_| | | |_| |_ | |\n |_____/|______|_____|_| |_|_____| |_|\n\n\nWelcome to SlimIt\n==================================\n\n`SlimIt` is a JavaScript minifier written in Python.\nIt compiles JavaScript into more compact code so that it downloads\nand runs faster.\n\n`SlimIt` also provides a library that includes a JavaScript parser,\nlexer, pretty printer and a tree visitor.\n\n`http://slimit.readthedocs.org/ `_\n\nInstallation\n------------\n\n::\n\n $ [sudo] pip install slimit\n\nOr the bleeding edge version from the git master branch:\n\n::\n\n $ [sudo] pip install git+https://github.com/rspivak/slimit.git#egg=slimit\n\n\nThere is also an official DEB package available at\n`http://packages.debian.org/sid/slimit `_\n\n\nLet's minify some code\n----------------------\n\nFrom the command line:\n\n::\n\n $ slimit -h\n Usage: slimit [options] [input file]\n\n If no input file is provided STDIN is used by default.\n Minified JavaScript code is printed to STDOUT.\n\n Options:\n -h, --help show this help message and exit\n -m, --mangle mangle names\n -t, --mangle-toplevel\n mangle top level scope (defaults to False)\n\n $ cat test.js\n var foo = function( obj ) {\n for ( var name in obj ) {\n return false;\n }\n return true;\n };\n $\n $ slimit --mangle < test.js\n var foo=function(a){for(var b in a)return false;return true;};\n\nOr using library API:\n\n>>> from slimit import minify\n>>> text = \"\"\"\n... var foo = function( obj ) {\n... for ( var name in obj ) {\n... return false;\n... }\n... return true;\n... };\n... \"\"\"\n>>> print minify(text, mangle=True, mangle_toplevel=True)\nvar a=function(a){for(var b in a)return false;return true;};\n\n\nIterate over, modify a JavaScript AST and pretty print it\n---------------------------------------------------------\n\n>>> from slimit.parser import Parser\n>>> from slimit.visitors import nodevisitor\n>>> from slimit import ast\n>>>\n>>> parser = Parser()\n>>> tree = parser.parse('for(var i=0; i<10; i++) {var x=5+i;}')\n>>> for node in nodevisitor.visit(tree):\n... if isinstance(node, ast.Identifier) and node.value == 'i':\n... node.value = 'hello'\n...\n>>> print tree.to_ecma() # print awesome javascript :)\nfor (var hello = 0; hello < 10; hello++) {\n var x = 5 + hello;\n}\n>>>\n\nWriting custom node visitor\n---------------------------\n\n>>> from slimit.parser import Parser\n>>> from slimit.visitors.nodevisitor import ASTVisitor\n>>>\n>>> text = \"\"\"\n... var x = {\n... \"key1\": \"value1\",\n... \"key2\": \"value2\"\n... };\n... \"\"\"\n>>>\n>>> class MyVisitor(ASTVisitor):\n... def visit_Object(self, node):\n... \"\"\"Visit object literal.\"\"\"\n... for prop in node:\n... left, right = prop.left, prop.right\n... print 'Property key=%s, value=%s' % (left.value, right.value)\n... # visit all children in turn\n... self.visit(prop)\n...\n>>>\n>>> parser = Parser()\n>>> tree = parser.parse(text)\n>>> visitor = MyVisitor()\n>>> visitor.visit(tree)\nProperty key=\"key1\", value=\"value1\"\nProperty key=\"key2\", value=\"value2\"\n\nUsing lexer in your project\n---------------------------\n\n>>> from slimit.lexer import Lexer\n>>> lexer = Lexer()\n>>> lexer.input('a = 1;')\n>>> for token in lexer:\n... print token\n...\nLexToken(ID,'a',1,0)\nLexToken(EQ,'=',1,2)\nLexToken(NUMBER,'1',1,4)\nLexToken(SEMI,';',1,5)\n\nYou can get one token at a time using ``token`` method:\n\n>>> lexer.input('a = 1;')\n>>> while True:\n... token = lexer.token()\n... if not token:\n... break\n... print token\n...\nLexToken(ID,'a',1,0)\nLexToken(EQ,'=',1,2)\nLexToken(NUMBER,'1',1,4)\nLexToken(SEMI,';',1,5)\n\n`LexToken` instance has different attributes:\n\n>>> lexer.input('a = 1;')\n>>> token = lexer.token()\n>>> token.type, token.value, token.lineno, token.lexpos\n('ID', 'a', 1, 0)\n\nBenchmarks\n----------\n\n**SAM** - JQuery size after minification in bytes (the smaller number the better)\n\n+-------------------------------+------------+------------+------------+\n| Original jQuery 1.6.1 (bytes) | SlimIt SAM | rJSmin SAM | jsmin SAM |\n+===============================+============+============+============+\n| 234,995 | 94,290 | 134,215 | 134,819 |\n+-------------------------------+------------+------------+------------+\n\nRoadmap\n-------\n- when doing name mangling handle cases with 'eval' and 'with'\n- foo[\"bar\"] ==> foo.bar\n- consecutive declarations: var a = 10; var b = 20; ==> var a=10,b=20;\n- reduce simple constant expressions if the result takes less space:\n 1 +2 * 3 ==> 7\n- IF statement optimizations\n\n 1. if (foo) bar(); else baz(); ==> foo?bar():baz();\n 2. if (!foo) bar(); else baz(); ==> foo?baz():bar();\n 3. if (foo) bar(); ==> foo&&bar();\n 4. if (!foo) bar(); ==> foo||bar();\n 5. if (foo) return bar(); else return baz(); ==> return foo?bar():baz();\n 6. if (foo) return bar(); else something(); ==> {if(foo)return bar();something()}\n\n- remove unreachable code that follows a return, throw, break or\n continue statement, except function/variable declarations\n- parsing speed improvements\n\nAcknowledgments\n---------------\n- The lexer and parser are built with `PLY `_\n- Several test cases and regexes from `jslex `_\n- Some visitor ideas - `pycparser `_\n- Many grammar rules are taken from `rkelly `_\n- Name mangling and different optimization ideas - `UglifyJS `_\n- ASI implementation was inspired by `pyjsparser `_\n\nLicense\n-------\nThe MIT License (MIT)\n\nChange History\n==============\n0.8.1 (2013-03-26)\n------------------\n- Bug fix: https://github.com/rspivak/slimit/pull/45\n Fix syntax error in the output of for statement with some form of expressions\n\n0.8.0 (2013-03-23)\n------------------\n- Python 3.x support\n- Bug fix: https://github.com/rspivak/slimit/issues/42\n slimit removes parentheses from ternary expression, causes syntax error in jQuery\n- Bug fix: https://github.com/rspivak/slimit/issues/37\n simple identifier in FOR init\n- Bug fix: https://github.com/rspivak/slimit/issues/36\n using $ for mangled function names conflicts with jQuery\n\n0.7.4 (2012-06-5)\n------------------\n- Bug fix: https://github.com/rspivak/slimit/issues/34\n 'class' is reserved keyword now\n\n0.7.3 (2012-05-21)\n------------------\n- Bug fix (unary op in FOR init): https://github.com/rspivak/slimit/pull/33\n\n0.7.2 (2012-05-17)\n------------------\n- Added support for get/set properties:\n https://github.com/rspivak/slimit/issues/32\n\n0.7.1 (2012-05-10)\n------------------\n- Function call support in FOR init section:\n https://github.com/rspivak/slimit/pull/31\n\n0.7 (2012-04-16)\n----------------\n- Multiline string support: https://github.com/rspivak/slimit/issues/24\n\n0.6.2 (2012-04-07)\n------------------\n- Bug fix: https://github.com/rspivak/slimit/issues/29\n- Bug fix: https://github.com/rspivak/slimit/issues/28\n\n0.6.1 (2012-03-15)\n------------------\n- Added command-line option *-t/--mangle-toplevel* to turn on\n global scope name mangling. As of this version it's off by\n default: https://github.com/rspivak/slimit/issues/27\n- Removed dependency on a 'distribute' package\n- Bug fix: https://github.com/rspivak/slimit/issues/26\n- Bug fix: https://github.com/rspivak/slimit/issues/25\n\n0.6 (2012-02-04)\n----------------\n- Added optimization: foo[\"bar\"] ==> foo.bar\n- Added base class for custom AST node visitors\n- Documentation updates\n- Bug fix: https://github.com/rspivak/slimit/issues/22\n- Bug fix: https://github.com/rspivak/slimit/issues/21\n\n0.5.5 (2011-10-05)\n------------------\n- Bugfix: https://github.com/rspivak/slimit/issues/7\n\n0.5.4 (2011-10-01)\n------------------\n- Bugfix: https://github.com/rspivak/slimit/issues/6\n Division with \"this\" fails\n\n0.5.3 (2011-06-29)\n------------------\n- Bugfix: https://github.com/rspivak/slimit/issues/5\n\n0.5.2 (2011-06-14)\n------------------\n- Bugfix: https://github.com/rspivak/slimit/issues/4\n- Bugfix: https://github.com/rspivak/slimit/issues/3\n\n0.5.1 (2011-06-06)\n------------------\n- Bugfix: https://github.com/rspivak/slimit/issues/2\n\n0.5 (2011-06-06)\n----------------\n- Added name mangling\n\n0.4 (2011-05-12)\n----------------\n- Minify more by removing block braces { }\n- More tests\n\n0.3.2 (2011-05-09)\n------------------\n- More hacks to use pre-generated lex and yacc tables when called from\n the command line\n\n0.3.1 (2011-05-09)\n------------------\n- Use pre-generated lex and yacc tables when called from the command line\n\n0.3 (2011-05-09)\n----------------\n- Added minifier\n\n0.2 (2011-05-07)\n----------------\n- Added a JavaScript parser\n- Added pretty printer\n- Added node visitor\n\n0.1 (2011-05-02)\n----------------\n- Initial public version. It contains only a JavaScript lexer",
"description_content_type": null,
"docs_url": "https://pythonhosted.org/slimit/",
"download_url": "UNKNOWN",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "http://slimit.readthedocs.org",
"keywords": null,
"license": "MIT",
"maintainer": null,
"maintainer_email": null,
"name": "slimit",
"package_url": "https://pypi.org/project/slimit/",
"platform": "UNKNOWN",
"project_url": "https://pypi.org/project/slimit/",
"project_urls": {
"Download": "UNKNOWN",
"Homepage": "http://slimit.readthedocs.org"
},
"release_url": "https://pypi.org/project/slimit/0.8.1/",
"requires_dist": null,
"requires_python": null,
"summary": "SlimIt - JavaScript minifier",
"version": "0.8.1"
},
"last_serial": 799703,
"releases": {
"0.1": [
{
"comment_text": "",
"digests": {
"md5": "9884aa147a399447c125be27912ccd14",
"sha256": "ace97dc13e6eae559da08df1750b1bb0f26e6ec7971b5d982e77871caf8e088e"
},
"downloads": -1,
"filename": "slimit-0.1.tar.gz",
"has_sig": false,
"md5_digest": "9884aa147a399447c125be27912ccd14",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 12271,
"upload_time": "2011-05-02T22:18:57",
"url": "https://files.pythonhosted.org/packages/12/d3/29a9eb758874d800ce2073f9a1ce4b62acaab047ef575ebb5cf03e3ff013/slimit-0.1.tar.gz"
}
],
"0.2": [
{
"comment_text": "",
"digests": {
"md5": "2b1103da211377f9a41c9183e46c39f5",
"sha256": "f74a6085c5b1fe4cc6dd04f7c8d6b9833cbe6177ae347aa22c3464d876134a68"
},
"downloads": -1,
"filename": "slimit-0.2.tar.gz",
"has_sig": false,
"md5_digest": "2b1103da211377f9a41c9183e46c39f5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 24147,
"upload_time": "2011-05-08T02:35:10",
"url": "https://files.pythonhosted.org/packages/cb/62/1a1604d83032459a50041155e780cd52f762ac003eec7dd5797adcca0e67/slimit-0.2.tar.gz"
}
],
"0.3.2": [
{
"comment_text": "",
"digests": {
"md5": "09df40db88a8771bdcbaf53546032fe8",
"sha256": "85617382828db5f14d3ad9b2418501e4d3c7b9fb6a52eca6a599b2ec43d5ae5e"
},
"downloads": -1,
"filename": "slimit-0.3.2.tar.gz",
"has_sig": false,
"md5_digest": "09df40db88a8771bdcbaf53546032fe8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 49650,
"upload_time": "2011-05-09T10:01:20",
"url": "https://files.pythonhosted.org/packages/06/76/5883de8f3bdc53346056b4862aad1dc1efb716742c60c24816bc476f3b84/slimit-0.3.2.tar.gz"
}
],
"0.4": [
{
"comment_text": "",
"digests": {
"md5": "a13c1e89d2ecb1597b02e26fd2031f53",
"sha256": "117ed1384d65f7b768f0204114d2b4518b231c6fdcfdf6289a6becc7b5de4c21"
},
"downloads": -1,
"filename": "slimit-0.4.tar.gz",
"has_sig": false,
"md5_digest": "a13c1e89d2ecb1597b02e26fd2031f53",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 51201,
"upload_time": "2011-05-13T05:03:41",
"url": "https://files.pythonhosted.org/packages/83/ba/bbf7d2160e8cb4ec5469b71de754f15603013cf9dfaa85f72b29ebeb4b93/slimit-0.4.tar.gz"
}
],
"0.5": [
{
"comment_text": "",
"digests": {
"md5": "1e034da8579c34651f4f79a6a817ee86",
"sha256": "8573e06e445c7450e2f38c67dde46b39f883ef048690c884c4e538640d91f599"
},
"downloads": -1,
"filename": "slimit-0.5.zip",
"has_sig": false,
"md5_digest": "1e034da8579c34651f4f79a6a817ee86",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 74637,
"upload_time": "2011-06-06T06:41:35",
"url": "https://files.pythonhosted.org/packages/cb/d6/041b905c32cb2d1e18d9570b0dc8141eee7c2405d80719b6c41092b8d4cf/slimit-0.5.zip"
}
],
"0.5.1": [
{
"comment_text": "",
"digests": {
"md5": "6f584f219e82c288cdfc4004eac7e3ac",
"sha256": "59bfa383fa76ccd8395ab307228813f5485ed0a6ac890d4068a8488efce7eb47"
},
"downloads": -1,
"filename": "slimit-0.5.1.zip",
"has_sig": false,
"md5_digest": "6f584f219e82c288cdfc4004eac7e3ac",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 74849,
"upload_time": "2011-06-06T14:31:47",
"url": "https://files.pythonhosted.org/packages/c0/1a/89bc68e9ad296317faf9463a190b3660b367e18de9c063644c182c638410/slimit-0.5.1.zip"
}
],
"0.5.2": [
{
"comment_text": "",
"digests": {
"md5": "7550cec7eed5b4d62fb773aac6a10e34",
"sha256": "b4979b1e2e0902c34562a9505daf9bafd95051bdbdc0d5a451c0e93d03eb400f"
},
"downloads": -1,
"filename": "slimit-0.5.2.zip",
"has_sig": false,
"md5_digest": "7550cec7eed5b4d62fb773aac6a10e34",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 76515,
"upload_time": "2011-06-15T03:20:21",
"url": "https://files.pythonhosted.org/packages/eb/7f/82c8bce7662d73c01a521f7066ea63249cc5de2cab45c45a2a4366d81a15/slimit-0.5.2.zip"
}
],
"0.5.3": [
{
"comment_text": "",
"digests": {
"md5": "4babe9563839501917e22913479a220f",
"sha256": "f532187ac01d1d1f5fc20a28ae4fc9363bcffc94a9483209d9504a6526820ac0"
},
"downloads": -1,
"filename": "slimit-0.5.3.zip",
"has_sig": false,
"md5_digest": "4babe9563839501917e22913479a220f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 78603,
"upload_time": "2011-06-29T06:22:10",
"url": "https://files.pythonhosted.org/packages/fa/53/7d46655959578d4278f9e6557aafa2c5021f94d0e42f12a4f83e82dddb35/slimit-0.5.3.zip"
}
],
"0.5.4": [
{
"comment_text": "",
"digests": {
"md5": "d83550ad50967989a45048039f3d796b",
"sha256": "c8b4125530c1b5d654033ff6e6bb8211a88039470953e96d859328f6141b9016"
},
"downloads": -1,
"filename": "slimit-0.5.4.zip",
"has_sig": false,
"md5_digest": "d83550ad50967989a45048039f3d796b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 79258,
"upload_time": "2011-10-01T06:23:36",
"url": "https://files.pythonhosted.org/packages/84/e2/3ac78c8d13b4c3503c8b7921eb91597b0d590874367e3b917b9ea771728c/slimit-0.5.4.zip"
}
],
"0.5.5": [
{
"comment_text": "",
"digests": {
"md5": "0f77cb80d9b06f364afb9e4ffb8d6ff7",
"sha256": "81201ff334fc285f9b27180b1d8ab8c6e6fcfac1bfc5ef487bf7b75734fdedb2"
},
"downloads": -1,
"filename": "slimit-0.5.5.zip",
"has_sig": false,
"md5_digest": "0f77cb80d9b06f364afb9e4ffb8d6ff7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 79833,
"upload_time": "2011-10-06T03:46:09",
"url": "https://files.pythonhosted.org/packages/a3/af/932b8d65ddb1138f37089e75483fd4ff6738148866514db3eb4dac5f0fc1/slimit-0.5.5.zip"
}
],
"0.6": [
{
"comment_text": "",
"digests": {
"md5": "118fd71391977001fd0e543ad1229044",
"sha256": "9ea6ba063704c61f2d057b253439cd863d6f0af9bbb485194c8b7c3dcfa19dd0"
},
"downloads": -1,
"filename": "slimit-0.6.zip",
"has_sig": false,
"md5_digest": "118fd71391977001fd0e543ad1229044",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 82856,
"upload_time": "2012-02-05T04:47:20",
"url": "https://files.pythonhosted.org/packages/36/c1/42f58349710a623e24d11dbfd87fde1d51d2f822e4cc1cacb918b460c5cf/slimit-0.6.zip"
}
],
"0.6.1": [
{
"comment_text": "",
"digests": {
"md5": "e7c0229f26ddc8e7201492d927647c58",
"sha256": "7983054176bba1aa7633e8931df3dd9cb59ab85b9c0574fc41f5fa0f6da3cca8"
},
"downloads": -1,
"filename": "slimit-0.6.1.zip",
"has_sig": false,
"md5_digest": "e7c0229f26ddc8e7201492d927647c58",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 83923,
"upload_time": "2012-03-16T04:30:20",
"url": "https://files.pythonhosted.org/packages/21/d6/ef8b078367d0805c039f035e9f53def233b80f13007ee0af56312bfd298f/slimit-0.6.1.zip"
}
],
"0.6.2": [
{
"comment_text": "",
"digests": {
"md5": "a160e1d1908eea05681d994dcdf8b6fe",
"sha256": "e5bc309206c83fb03966e209a3ae1d80110c01124f8d7e1c2409ba1b7321923f"
},
"downloads": -1,
"filename": "slimit-0.6.2.zip",
"has_sig": false,
"md5_digest": "a160e1d1908eea05681d994dcdf8b6fe",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 84413,
"upload_time": "2012-04-07T07:53:43",
"url": "https://files.pythonhosted.org/packages/eb/b2/949b8a82f2389c76cc165e29667259ca1525f4bb4d5b4e13571ac741418a/slimit-0.6.2.zip"
}
],
"0.7": [
{
"comment_text": "",
"digests": {
"md5": "b394b534b154051f6056d33609367de8",
"sha256": "80855895f71a742fae71a403f76fcef1c56a2e46df786ab90439a612da435f98"
},
"downloads": -1,
"filename": "slimit-0.7.zip",
"has_sig": false,
"md5_digest": "b394b534b154051f6056d33609367de8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 84631,
"upload_time": "2012-04-17T03:54:10",
"url": "https://files.pythonhosted.org/packages/c3/73/5a3b835de5a5d0adfdedc8d812c02b3fb815efe535f185c7bb3c37ac26d0/slimit-0.7.zip"
}
],
"0.7.1": [
{
"comment_text": "",
"digests": {
"md5": "ddf3608f6b7782539e08c2d60adeca1b",
"sha256": "6e9a0d078fc3181ef2794feae300b50a1207b4e0a4bdc2754fd65e8866e66c59"
},
"downloads": -1,
"filename": "slimit-0.7.1.tar.gz",
"has_sig": false,
"md5_digest": "ddf3608f6b7782539e08c2d60adeca1b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 63659,
"upload_time": "2012-05-10T08:39:22",
"url": "https://files.pythonhosted.org/packages/1c/e3/5bdda5e98880fd3a48c42e8b175a6191ec2297946547ccc2c1e604d1b8de/slimit-0.7.1.tar.gz"
},
{
"comment_text": "",
"digests": {
"md5": "c792712cb2ba13497ea4a0ea01f4a5ba",
"sha256": "353b9c29bb6e5d188cee5699fc392a6cd0cc9acacbfc09b7b62808599a36be6d"
},
"downloads": -1,
"filename": "slimit-0.7.1.zip",
"has_sig": false,
"md5_digest": "c792712cb2ba13497ea4a0ea01f4a5ba",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 85017,
"upload_time": "2012-05-10T08:39:20",
"url": "https://files.pythonhosted.org/packages/00/a4/09391826702c2869142be2699f1fc5586fdd860ef6cff4926f23405d057f/slimit-0.7.1.zip"
}
],
"0.7.2": [
{
"comment_text": "",
"digests": {
"md5": "0a37ba68740068cc52f54950659200bc",
"sha256": "8c7404ad03f1124ade0d428485ba5845a7f56a21f6b09160c2c22730b2ccbaa8"
},
"downloads": -1,
"filename": "slimit-0.7.2.zip",
"has_sig": false,
"md5_digest": "0a37ba68740068cc52f54950659200bc",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 86605,
"upload_time": "2012-05-17T07:27:55",
"url": "https://files.pythonhosted.org/packages/4d/ef/4285bea54c57bfa9c192ff3058c79d6dff848d2e2293e2f7d62db84af508/slimit-0.7.2.zip"
}
],
"0.7.3": [
{
"comment_text": "",
"digests": {
"md5": "de0a5f1655f4d82ef758d33c94b0b649",
"sha256": "71b1453570d7f06cc838ae47a8a38e62c1be54f7a3e0c2a3861e559c490a4f18"
},
"downloads": -1,
"filename": "slimit-0.7.3.zip",
"has_sig": false,
"md5_digest": "de0a5f1655f4d82ef758d33c94b0b649",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 86921,
"upload_time": "2012-05-21T06:08:58",
"url": "https://files.pythonhosted.org/packages/9b/17/84dc10c158155f590ccd24260147bce687fcf0e44ed2de89b3557234a09c/slimit-0.7.3.zip"
}
],
"0.7.4": [
{
"comment_text": "",
"digests": {
"md5": "35b50859883a1d8dfd61a77c125f517d",
"sha256": "3916ff8b58545ee601d6fdc083dfd467f3709ea0f8e77ced35e1655e767496d7"
},
"downloads": -1,
"filename": "slimit-0.7.4.zip",
"has_sig": false,
"md5_digest": "35b50859883a1d8dfd61a77c125f517d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 87154,
"upload_time": "2012-06-06T02:25:03",
"url": "https://files.pythonhosted.org/packages/3e/61/bedd3345541716aad1549b0609cf97addf1cd2a8d6fcc05549c6276998e2/slimit-0.7.4.zip"
}
],
"0.8.0": [
{
"comment_text": "",
"digests": {
"md5": "148454c96518cf184ce903804e9334bf",
"sha256": "84aebef383ae1d9756a78d1edace5fb0590a8bf0a086aa2ea5e04095ce1b327c"
},
"downloads": -1,
"filename": "slimit-0.8.0.zip",
"has_sig": false,
"md5_digest": "148454c96518cf184ce903804e9334bf",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 87949,
"upload_time": "2013-03-23T04:22:29",
"url": "https://files.pythonhosted.org/packages/11/83/ba71ff82f6945e114ecd9e196920c242c32b3d26779bc60312f802cff35a/slimit-0.8.0.zip"
}
],
"0.8.1": [
{
"comment_text": "",
"digests": {
"md5": "5f5f86e98940a1e71a6a30d501e0d733",
"sha256": "f433dcef899f166b207b67d91d3f7344659cb33b8259818f084167244e17720b"
},
"downloads": -1,
"filename": "slimit-0.8.1.zip",
"has_sig": false,
"md5_digest": "5f5f86e98940a1e71a6a30d501e0d733",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 88217,
"upload_time": "2013-03-26T13:11:15",
"url": "https://files.pythonhosted.org/packages/61/cf/0d6598b1ceb463a46b75a716fbb23d2d5ccc5738aba8ddceeec3fa59997f/slimit-0.8.1.zip"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "5f5f86e98940a1e71a6a30d501e0d733",
"sha256": "f433dcef899f166b207b67d91d3f7344659cb33b8259818f084167244e17720b"
},
"downloads": -1,
"filename": "slimit-0.8.1.zip",
"has_sig": false,
"md5_digest": "5f5f86e98940a1e71a6a30d501e0d733",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 88217,
"upload_time": "2013-03-26T13:11:15",
"url": "https://files.pythonhosted.org/packages/61/cf/0d6598b1ceb463a46b75a716fbb23d2d5ccc5738aba8ddceeec3fa59997f/slimit-0.8.1.zip"
}
]
}