{
"info": {
"author": "Petr Pokorny",
"author_email": "petr@innit.cz",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 2 - Pre-Alpha",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 3",
"Topic :: Utilities"
],
"description": "\n`Complete documentation in full color `_.\n\n.. image:: https://travis-ci.org/0101/pipetools.svg?branch=master\n :target: https://travis-ci.org/0101/pipetools\n\nPipetools\n=========\n\n``pipetools`` is a python package that enables function composition similar to\nusing Unix pipes.\n\nInspired by Pipe_ and \u041e\u043a\u043e\u043b\u043e\u043c\u043e\u043d\u0430\u0434\u043d\u043e\u0435_ (whatever that means...)\n\n.. _Pipe: http://dev-tricks.net/pipe-infix-syntax-for-python\n.. _\u041e\u043a\u043e\u043b\u043e\u043c\u043e\u043d\u0430\u0434\u043d\u043e\u0435: http://honeyman.livejournal.com/122675.html?nojs=1\n\n\nIt allows piping of arbitrary functions and comes with a few handy shortcuts.\n\n\nSource is on github_.\n\n\n.. _github: https://github.com/0101/pipetools\n\nWhy?\n----\n\nPipetools attempt to simplify function composition and make it more readable.\n\nWhy piping instead of regular composition?\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\nI believe it to be easier to read, write and think about from left to right /\ntop to bottom in the order that it's actually executed, instead of reversed\norder as it is with regular function composition (``(f \u2022 g)(x) == f(g(x))``).\n\n\nExample\n-------\n\nSay you want to create a list of python files in a given directory, ordered by\nfilename length, as a string, each file on one line and also with line numbers:\n\n.. code-block:: pycon\n\n >>> print pyfiles_by_length('../pipetools')\n 0. main.py\n 1. utils.py\n 2. __init__.py\n 3. ds_builder.py\n\n\nSo you might write it like this:\n\n.. code-block:: python\n\n def pyfiles_by_length(directory):\n all_files = os.listdir(directory)\n py_files = [f for f in all_files if f.endswith('.py')]\n py_files.sort(key=len)\n numbered = enumerate(py_files)\n rows = (\"{0}. {1}\".format(i, f) for i, f in numbered)\n return '\\n'.join(rows)\n\nOr perhaps like this:\n\n.. code-block:: python\n\n def pyfiles_by_length(directory):\n return '\\n'.join('{0}. {1}'.format(*x) for x in enumerate(sorted(\n [f for f in os.listdir(directory) if f.endswith('.py')], key=len)))\n\nOr, if you're a mad scientist, you would probably do it like this:\n\n.. code-block:: python\n\n pyfiles_by_length = lambda d: (reduce('{0}\\n{1}'.format,\n map(lambda x: '%d. %s' % x, enumerate(sorted(\n filter(lambda f: f.endswith('.py'), os.listdir(d)), key=len)))))\n\n\nBut *there should be one -- and preferably only one -- obvious way to do it*.\n\nSo which one is it? Well, to redeem the situation, ``pipetools`` give you yet\nanother possibility!\n\n.. code-block:: python\n\n pyfiles_by_length = (pipe\n | os.listdir\n | where(X.endswith('.py'))\n | sort_by(len)\n | enumerate\n | foreach(\"{0}. {1}\")\n | '\\n'.join\n )\n\n\nSo is this `The Right Way\u2122`_? Probably not, but I think it's pretty cool, so you\nshould give it a try! Read on to see how it works.\n\n.. _`The Right Way\u2122`: http://www.python.org/dev/peps/pep-0020/\n\n\nInstallation\n------------\n\n.. code-block:: console\n\n $ pip install pipetools\n\n`Uh, what's that? `_\n\n\nUsage\n-----\n\n.. _the-pipe:\n\nThe pipe\n\"\"\"\"\"\"\"\"\nThe ``pipe`` object can be used to pipe functions together to\nform new functions, and it works like this:\n\n.. code-block:: python\n\n from pipetools import pipe\n\n f = pipe | a | b | c\n\n f(x) == c(b(a(x)))\n\n\nA real example, sum of odd numbers from 0 to *x*:\n\n.. code-block:: python\n\n from functools import partial\n from pipetools import pipe\n\n odd_sum = pipe | range | partial(filter, lambda x: x % 2) | sum\n\n odd_sum(10) # -> 25\n\n\nNote that the chain up to the `sum` is lazy.\n\n\nAutomatic partial application in the pipe\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\nAs partial application is often useful when piping things together, it is done\nautomatically when the *pipe* encounters a tuple, so this produces the same\nresult as the previous example:\n\n.. code-block:: python\n\n odd_sum = pipe | range | (filter, lambda x: x % 2) | sum\n\nAs of ``0.1.9``, this is even more powerful, see `X-partial `_.\n\n\nBuilt-in tools\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\nPipetools contain a set of *pipe-utils* that solve some common tasks. For\nexample there is a shortcut for the filter class from our example, called\n`where() `_:\n\n.. code-block:: python\n\n from pipetools import pipe, where\n\n odd_sum = pipe | range | where(lambda x: x % 2) | sum\n\nWell that might be a bit more readable, but not really a huge improvement, but\nwait!\n\nIf a *pipe-util* is used as first or second item in the pipe (which happens\nquite often) the ``pipe`` at the beginning can be omitted:\n\n.. code-block:: python\n\n odd_sum = range | where(lambda x: x % 2) | sum\n\n\nSee `pipe-utils' documentation `_.\n\n\nOK, but what about the ugly lambda?\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\n`where() `_, but also `foreach() `_,\n`sort_by() `_ and other `pipe-utils `_ can be\nquite useful, but require a function as an argument, which can either be a named\nfunction -- which is OK if it does something complicated -- but often it's\nsomething simple, so it's appropriate to use a ``lambda``. Except Python's\nlambdas are quite verbose for simple tasks and the code gets cluttered...\n\n**X object** to the rescue!\n\n.. code-block:: python\n\n from pipetools import where, X\n\n odd_sum = range | where(X % 2) | sum\n\n\nHow 'bout that.\n\n`Read more about the X object and it's limitations. `_\n\n\n.. _auto-string-formatting:\n\nAutomatic string formatting\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\nSince it doesn't make sense to compose functions with strings, when a pipe (or a\n`pipe-util `_) encounters a string, it attempts to use it for\n`(advanced) formatting`_:\n\n.. code-block:: pycon\n\n >>> countdown = pipe | (range, 1) | reversed | foreach('{0}...') | ' '.join | '{0} boom'\n >>> countdown(5)\n u'4... 3... 2... 1... boom'\n\n.. _(advanced) formatting: http://docs.python.org/library/string.html#formatstrings\n\n\nFeeding the pipe\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\nSometimes it's useful to create a one-off pipe and immediately run some input\nthrough it. And since this is somewhat awkward (and not very readable,\nespecially when the pipe spans multiple lines):\n\n.. code-block:: python\n\n result = (pipe | foo | bar | boo)(some_input)\n\nIt can also be done using the ``>`` operator:\n\n.. code-block:: python\n\n result = some_input > pipe | foo | bar | boo\n\n.. note::\n Note that the above method of input won't work if the input object\n defines `__gt__ `_\n for *any* object - including the pipe. This can be the case for example with\n some objects from math libraries such as NumPy. If you experience strange\n results try falling back to the standard way of passing input into a pipe.\n\n\nBut wait, there is more\n-----------------------\nSee the `full documentation `_.\n",
"description_content_type": "",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "http://0101.github.com/pipetools/",
"keywords": "",
"license": "MIT",
"maintainer": "",
"maintainer_email": "",
"name": "pipetools",
"package_url": "https://pypi.org/project/pipetools/",
"platform": "",
"project_url": "https://pypi.org/project/pipetools/",
"project_urls": {
"Homepage": "http://0101.github.com/pipetools/"
},
"release_url": "https://pypi.org/project/pipetools/0.3.4/",
"requires_dist": null,
"requires_python": "",
"summary": "A library that enables function composition similar to using Unix pipes.",
"version": "0.3.4"
},
"last_serial": 3958307,
"releases": {
"0.1.1": [
{
"comment_text": "",
"digests": {
"md5": "fc4ec61443924c88fbd86288f1c3d60b",
"sha256": "37a0f5859d78da0bf625bd0fe64bf0cf69667b9091c3ea6f71af6eabe232420e"
},
"downloads": -1,
"filename": "pipetools-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "fc4ec61443924c88fbd86288f1c3d60b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 3662,
"upload_time": "2012-10-03T17:38:09",
"url": "https://files.pythonhosted.org/packages/94/47/be793e8fab7bc45d05eaf8bbc3a30bc626f54814c8080c06c9d245e3140b/pipetools-0.1.1.tar.gz"
}
],
"0.1.2": [
{
"comment_text": "",
"digests": {
"md5": "9c3e7e70dc01aa3bc70f4aeeb703d803",
"sha256": "c6463828dc3bafebe195a56e36a546ab39e77257c32fe989a758754f0afa343b"
},
"downloads": -1,
"filename": "pipetools-0.1.2.tar.gz",
"has_sig": false,
"md5_digest": "9c3e7e70dc01aa3bc70f4aeeb703d803",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 3740,
"upload_time": "2012-10-03T17:46:18",
"url": "https://files.pythonhosted.org/packages/49/e0/78f478e22b957cbbaa3920722c4fd77927075d12e69a48923462d6729c7c/pipetools-0.1.2.tar.gz"
}
],
"0.1.3": [
{
"comment_text": "",
"digests": {
"md5": "32dac916684b2cd0d8686e081c261bdb",
"sha256": "e40ddfdb2dc8ef3ebf8ab7b718c733d6394d521eeb8d80f4ae9c98fea8dc7ce8"
},
"downloads": -1,
"filename": "pipetools-0.1.3.tar.gz",
"has_sig": false,
"md5_digest": "32dac916684b2cd0d8686e081c261bdb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7403,
"upload_time": "2012-10-05T01:12:10",
"url": "https://files.pythonhosted.org/packages/83/04/74ef0f7b123b00888585d898315025449d317974773a4dfd6dcca357e0a0/pipetools-0.1.3.tar.gz"
}
],
"0.1.4": [
{
"comment_text": "",
"digests": {
"md5": "f372b89dfc48d9f62493d56b4d54c014",
"sha256": "a7d8de9806561931d41ad6594238ba007433aa5d9605f18f71de695e6e72e910"
},
"downloads": -1,
"filename": "pipetools-0.1.4.tar.gz",
"has_sig": false,
"md5_digest": "f372b89dfc48d9f62493d56b4d54c014",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7545,
"upload_time": "2012-10-08T16:15:48",
"url": "https://files.pythonhosted.org/packages/26/60/8872c7814c48c7572c8a08658d2e63803855b99ae82c6496d1f49918d8d4/pipetools-0.1.4.tar.gz"
}
],
"0.1.5": [
{
"comment_text": "",
"digests": {
"md5": "c5675810c2553167502b9a21f4ee71fd",
"sha256": "f05b0d19343847f774cc2032f5212b078d357728cde996d05e9fe7986fd544cb"
},
"downloads": -1,
"filename": "pipetools-0.1.5.tar.gz",
"has_sig": false,
"md5_digest": "c5675810c2553167502b9a21f4ee71fd",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7678,
"upload_time": "2012-10-10T19:12:37",
"url": "https://files.pythonhosted.org/packages/10/b1/cc7765ead11cd1192846aa3cfc4f18cb83716b3a56ec48224fbc37961513/pipetools-0.1.5.tar.gz"
}
],
"0.1.6": [
{
"comment_text": "",
"digests": {
"md5": "d2c46907800d7ea283dc95b5914940f1",
"sha256": "0dd9d81c42c83094e6dab05f2d775fa2b4c2d6bf1b7aff4b87e00e264f11036f"
},
"downloads": -1,
"filename": "pipetools-0.1.6.tar.gz",
"has_sig": false,
"md5_digest": "d2c46907800d7ea283dc95b5914940f1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7723,
"upload_time": "2012-10-11T21:54:58",
"url": "https://files.pythonhosted.org/packages/0a/0a/305d95d81cf133f38b0345a84c32aa33a2ff342d536d064b34457eeea2c6/pipetools-0.1.6.tar.gz"
}
],
"0.1.7": [
{
"comment_text": "",
"digests": {
"md5": "1c7212fedfc28872d31f6e702d14ca29",
"sha256": "8d597fc7ff629e86ae46a050211c7daa666bba55d9f91bc54f7c0bae849ac1d0"
},
"downloads": -1,
"filename": "pipetools-0.1.7.tar.gz",
"has_sig": false,
"md5_digest": "1c7212fedfc28872d31f6e702d14ca29",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8434,
"upload_time": "2012-10-25T19:29:55",
"url": "https://files.pythonhosted.org/packages/f8/c0/1379e5d4a562f685274a7203f84b0f1bbdf4323cdb580788426c72c2d7c1/pipetools-0.1.7.tar.gz"
}
],
"0.1.8": [
{
"comment_text": "",
"digests": {
"md5": "a25412401281e5f5d37670d10b5094bd",
"sha256": "db40f3b638cd23da975d2e518c19c6c85d0c42c6fc5e1876ecc141292034266c"
},
"downloads": -1,
"filename": "pipetools-0.1.8.tar.gz",
"has_sig": false,
"md5_digest": "a25412401281e5f5d37670d10b5094bd",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8534,
"upload_time": "2012-10-31T01:13:47",
"url": "https://files.pythonhosted.org/packages/c7/9a/7b89e262d2deab937917c6ce4314d0f9ef84ff178240d61e6f2eb7153554/pipetools-0.1.8.tar.gz"
}
],
"0.1.9": [
{
"comment_text": "",
"digests": {
"md5": "c7303131f537dec819daba18e845668a",
"sha256": "d1a8fbd20c94d1c434731a4f801823e2f42cbec8821f173d16d312f05be99510"
},
"downloads": -1,
"filename": "pipetools-0.1.9.tar.gz",
"has_sig": false,
"md5_digest": "c7303131f537dec819daba18e845668a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9171,
"upload_time": "2012-11-04T23:21:08",
"url": "https://files.pythonhosted.org/packages/e6/07/e4f5d3eb76aac4f4116a867dbbaa986b174d9f7d6f18710f4533f22cfa78/pipetools-0.1.9.tar.gz"
}
],
"0.2.0": [
{
"comment_text": "",
"digests": {
"md5": "a2b656f13333b9da6930599d577a710c",
"sha256": "2b650eb8edefd27522f95d932ee359522368c5ddb4dc62ef75f036e21d64471e"
},
"downloads": -1,
"filename": "pipetools-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "a2b656f13333b9da6930599d577a710c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9219,
"upload_time": "2012-11-14T16:07:46",
"url": "https://files.pythonhosted.org/packages/e3/12/851b7481fb7cad12ef62aafffcd53df2d33de3adbc78fdbc1b99f507fa32/pipetools-0.2.0.tar.gz"
}
],
"0.2.1": [
{
"comment_text": "",
"digests": {
"md5": "4d79ca29422e9c8f0d121317dcc0da32",
"sha256": "b6ad3803e63a32fdccc5b53594358b0337e98ab256d0bcdce2205b7fb18106d7"
},
"downloads": -1,
"filename": "pipetools-0.2.1.tar.gz",
"has_sig": false,
"md5_digest": "4d79ca29422e9c8f0d121317dcc0da32",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9424,
"upload_time": "2013-02-11T14:10:06",
"url": "https://files.pythonhosted.org/packages/00/47/a0177771c1902187d37d057b63f95558302f6e009a1f5a79f410ebf9c5a0/pipetools-0.2.1.tar.gz"
}
],
"0.2.2": [
{
"comment_text": "",
"digests": {
"md5": "a270ddc13e91c39a5eb37fc5856738b2",
"sha256": "9e96ba0ee3f8cec51cdce259a5d7d4c469c20b17c33c3a27a21f03a12bc6ce0b"
},
"downloads": -1,
"filename": "pipetools-0.2.2.tar.gz",
"has_sig": false,
"md5_digest": "a270ddc13e91c39a5eb37fc5856738b2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9492,
"upload_time": "2013-04-16T15:24:28",
"url": "https://files.pythonhosted.org/packages/d0/5f/a1039bcf02bfbd8a720b8cde7b7efbd90cb056a1d83ea2b20c4d7c919843/pipetools-0.2.2.tar.gz"
}
],
"0.2.3": [
{
"comment_text": "",
"digests": {
"md5": "e9f1071df1e594d29cbd50827a8f0721",
"sha256": "d9b27a8bbe53ae65f63e3dbe9f1bd3cb0f47f06744f9b57fe2c2ca6389475789"
},
"downloads": -1,
"filename": "pipetools-0.2.3.tar.gz",
"has_sig": false,
"md5_digest": "e9f1071df1e594d29cbd50827a8f0721",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9829,
"upload_time": "2013-04-24T14:12:29",
"url": "https://files.pythonhosted.org/packages/7e/23/dd05850f23c47ec104c7caa2f41bb9be297cd354e547fb7f80f14ce0420a/pipetools-0.2.3.tar.gz"
}
],
"0.2.4": [
{
"comment_text": "",
"digests": {
"md5": "2d47f823b1bdb16fedbaf711cd7d7803",
"sha256": "7b00164ebc3611f3a2554b88b3d505a5a316f2f56d8cc8d0bbe25aab64a02389"
},
"downloads": -1,
"filename": "pipetools-0.2.4.tar.gz",
"has_sig": false,
"md5_digest": "2d47f823b1bdb16fedbaf711cd7d7803",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9947,
"upload_time": "2013-07-13T10:57:45",
"url": "https://files.pythonhosted.org/packages/fb/cc/7d533d217e57ba7493840f8019e3d42d8526e7d397e1785b13ee0d90f2be/pipetools-0.2.4.tar.gz"
}
],
"0.2.5": [
{
"comment_text": "",
"digests": {
"md5": "612f2b87196b8fe7b57932a711d9dfb7",
"sha256": "139a9ff9b187a4bde4c382417f3ad4c79af0da5117ebef1c5ec73724d84e5a9e"
},
"downloads": -1,
"filename": "pipetools-0.2.5.tar.gz",
"has_sig": false,
"md5_digest": "612f2b87196b8fe7b57932a711d9dfb7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 10087,
"upload_time": "2013-08-13T21:19:12",
"url": "https://files.pythonhosted.org/packages/25/e3/78a0639b35510b780b6308cbbf3cf8292a61465f7cf171d6fe347d21d288/pipetools-0.2.5.tar.gz"
}
],
"0.2.6": [
{
"comment_text": "",
"digests": {
"md5": "2f80d47f94a1ac5ce213d9c640bfd252",
"sha256": "188fca3768765f557282449d392b67e447906dacf0760e68c07605c22bf371d6"
},
"downloads": -1,
"filename": "pipetools-0.2.6.tar.gz",
"has_sig": false,
"md5_digest": "2f80d47f94a1ac5ce213d9c640bfd252",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9853,
"upload_time": "2013-09-02T08:51:33",
"url": "https://files.pythonhosted.org/packages/41/fa/3336c33dbeb73972bcb0d854a15edef2355683456a0456ad6c991921deac/pipetools-0.2.6.tar.gz"
}
],
"0.2.7": [
{
"comment_text": "",
"digests": {
"md5": "05f33df719301ab060d838d4cf20e79b",
"sha256": "c574eef6fed2ac00d0d9550870d71228f3633652878627df7a2ed6071883d928"
},
"downloads": -1,
"filename": "pipetools-0.2.7.tar.gz",
"has_sig": false,
"md5_digest": "05f33df719301ab060d838d4cf20e79b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9876,
"upload_time": "2014-03-19T20:25:35",
"url": "https://files.pythonhosted.org/packages/41/8e/6300f212a50b9b826fcdba84ad1f1f4b355392dbc69d8e4bd1c9cefe440b/pipetools-0.2.7.tar.gz"
}
],
"0.3.0": [
{
"comment_text": "",
"digests": {
"md5": "79f09688e6df170dc02a5b80723e7d09",
"sha256": "8ae6f4e4862d0c5428bd7ba36c8e9ffd748fbdead1564b170da0df87f21c44f8"
},
"downloads": -1,
"filename": "pipetools-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "79f09688e6df170dc02a5b80723e7d09",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 10202,
"upload_time": "2016-08-03T10:49:23",
"url": "https://files.pythonhosted.org/packages/a2/27/585c8b2679b324cb2aaee1dfee480978b4f9c46611844692fbfb2e6506ce/pipetools-0.3.0.tar.gz"
}
],
"0.3.1": [
{
"comment_text": "",
"digests": {
"md5": "2cda5f5f6f79928352d8a14730fa29f2",
"sha256": "68ed3457198c91a62a74c2a98e3ac1e3da519351c573c6c631cf43e992107e80"
},
"downloads": -1,
"filename": "pipetools-0.3.1.tar.gz",
"has_sig": false,
"md5_digest": "2cda5f5f6f79928352d8a14730fa29f2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 12544,
"upload_time": "2018-03-23T15:52:47",
"url": "https://files.pythonhosted.org/packages/b0/f1/cc4912b64688786ac936455e1d616d275716ab5bb13d4776c1e733b58df7/pipetools-0.3.1.tar.gz"
}
],
"0.3.2": [
{
"comment_text": "",
"digests": {
"md5": "361b8fb6676c9e786576060f95d32c55",
"sha256": "291590bfdf32319b5cf169fde0122299569eb334fc95359499199adaadd1838f"
},
"downloads": -1,
"filename": "pipetools-0.3.2.tar.gz",
"has_sig": false,
"md5_digest": "361b8fb6676c9e786576060f95d32c55",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 12782,
"upload_time": "2018-05-26T22:52:02",
"url": "https://files.pythonhosted.org/packages/73/ee/9827aa2398cd497a98dd84be1c9c9166fb5f849bbc60daf110fc8b520d67/pipetools-0.3.2.tar.gz"
}
],
"0.3.3": [
{
"comment_text": "",
"digests": {
"md5": "cf442a576c0f69e8694d3d49c6263fec",
"sha256": "2c854bfd87bf075fa7a168273b8309fdead3ee41b894a82b5ef6e052652187b0"
},
"downloads": -1,
"filename": "pipetools-0.3.3.tar.gz",
"has_sig": false,
"md5_digest": "cf442a576c0f69e8694d3d49c6263fec",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 13006,
"upload_time": "2018-05-30T18:07:59",
"url": "https://files.pythonhosted.org/packages/86/51/0184d5a8fbffdea398986b7db28ce4ef728c8034e197ed6f3ccd99b506a4/pipetools-0.3.3.tar.gz"
}
],
"0.3.4": [
{
"comment_text": "",
"digests": {
"md5": "cc9a303b8947e59278ff38dfde87c273",
"sha256": "54ed2d4be9b32563b54f1156a72c6c99d351cfd9c264c918227239aa7bf4d627"
},
"downloads": -1,
"filename": "pipetools-0.3.4.tar.gz",
"has_sig": false,
"md5_digest": "cc9a303b8947e59278ff38dfde87c273",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 13053,
"upload_time": "2018-06-13T17:11:50",
"url": "https://files.pythonhosted.org/packages/47/03/b5145c9a400a897bec3cf6b361bfe71feb9ae7c46183b224299437cca741/pipetools-0.3.4.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "cc9a303b8947e59278ff38dfde87c273",
"sha256": "54ed2d4be9b32563b54f1156a72c6c99d351cfd9c264c918227239aa7bf4d627"
},
"downloads": -1,
"filename": "pipetools-0.3.4.tar.gz",
"has_sig": false,
"md5_digest": "cc9a303b8947e59278ff38dfde87c273",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 13053,
"upload_time": "2018-06-13T17:11:50",
"url": "https://files.pythonhosted.org/packages/47/03/b5145c9a400a897bec3cf6b361bfe71feb9ae7c46183b224299437cca741/pipetools-0.3.4.tar.gz"
}
]
}