{ "info": { "author": "Reuben Cummings", "author_email": "reubano@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "riko: A stream processing engine modeled after Yahoo! Pipes\n===========================================================\n\n|travis| |versions| |pypi|\n\nIndex\n-----\n\n`Introduction`_ | `Requirements`_ | `Word Count`_ | `Motivation`_ | `Usage`_ |\n`Installation`_ | `Design Principles`_ | `Scripts`_ | `Command-line Interface`_ |\n`Contributing`_ | `Credits`_ | `More Info`_ | `Project Structure`_ | `License`_\n\nIntroduction\n------------\n\n**riko** is a pure Python `library`_ for analyzing and processing ``streams`` of\nstructured data. ``riko`` has `synchronous`_ and `asynchronous`_ APIs, supports `parallel\nexecution`_, and is well suited for processing RSS feeds [#]_. ``riko`` also supplies\na `command-line interface`_ for executing ``flows``, i.e., stream processors aka ``workflows``.\n\nWith ``riko``, you can\n\n- Read csv/xml/json/html files\n- Create text and data based ``flows`` via modular `pipes`_\n- Parse, extract, and process RSS/Atom feeds\n- Create awesome mashups [#]_, APIs, and maps\n- Perform `parallel processing`_ via cpus/processors or threads\n- and much more...\n\nNotes\n^^^^^\n\n.. [#] `Really Simple Syndication`_\n.. [#] `Mashup (web application hybrid)`_\n\nRequirements\n------------\n\n``riko`` has been tested and is known to work on Python 2.7, 3.5, and 3.6;\nPyPy2 5.8.0, and PyPy3 5.8.0.\n\nOptional Dependencies\n^^^^^^^^^^^^^^^^^^^^^\n\n======================== =================== ===========================\nFeature Dependency Installation\n======================== =================== ===========================\nAsync API `Twisted`_ ``pip install riko[async]``\nAccelerated xml parsing `lxml`_ [#]_ ``pip install riko[xml]``\nAccelerated feed parsing `speedparser`_ [#]_ ``pip install riko[xml]``\n======================== =================== ===========================\n\nNotes\n^^^^^\n\n.. [#] If ``lxml`` isn't present, ``riko`` will default to the builtin Python xml parser\n.. [#] If ``speedparser`` isn't present, ``riko`` will default to ``feedparser``\n\nWord Count\n----------\n\nIn this example, we use several `pipes`_ to count the words on a webpage.\n\n.. code-block:: python\n\n >>> ### Create a SyncPipe flow ###\n >>> #\n >>> # `SyncPipe` is a convenience class that creates chainable flows\n >>> # and allows for parallel processing.\n >>> from riko.collections import SyncPipe\n >>>\n >>> ### Set the pipe configurations ###\n >>> #\n >>> # Notes:\n >>> # 1. the `detag` option will strip all html tags from the result\n >>> # 2. fetch the text contained inside the 'body' tag of the hackernews\n >>> # homepage\n >>> # 3. replace newlines with spaces and assign the result to 'content'\n >>> # 4. tokenize the resulting text using whitespace as the delimeter\n >>> # 5. count the number of times each token appears\n >>> # 6. obtain the raw stream\n >>> # 7. extract the first word and its count\n >>> # 8. extract the second word and its count\n >>> # 9. extract the third word and its count\n >>> url = 'https://news.ycombinator.com/'\n >>> fetch_conf = {\n ... 'url': url, 'start': '', 'end': '', 'detag': True} # 1\n >>>\n >>> replace_conf = {\n ... 'rule': [\n ... {'find': '\\r\\n', 'replace': ' '},\n ... {'find': '\\n', 'replace': ' '}]}\n >>>\n >>> flow = (\n ... SyncPipe('fetchpage', conf=fetch_conf) # 2\n ... .strreplace(conf=replace_conf, assign='content') # 3\n ... .tokenizer(conf={'delimiter': ' '}, emit=True) # 4\n ... .count(conf={'count_key': 'content'})) # 5\n >>>\n >>> stream = flow.output # 6\n >>> next(stream) # 7\n {\"'sad\": 1}\n >>> next(stream) # 8\n {'(': 28}\n >>> next(stream) # 9\n {'(1999)': 1}\n\nMotivation\n----------\n\nWhy I built riko\n^^^^^^^^^^^^^^^^\n\nYahoo! Pipes [#]_ was a user friendly web application used to\n\n aggregate, manipulate, and mashup content from around the web\n\nWanting to create custom pipes, I came across `pipe2py`_ which translated a\nYahoo! Pipe into python code. ``pipe2py`` suited my needs at the time\nbut was unmaintained and lacked asynchronous or parallel processing.\n\n``riko`` addresses the shortcomings of ``pipe2py`` but removed support for\nimporting Yahoo! Pipes json workflows. ``riko`` contains ~`40 built-in`_\nmodules, aka ``pipes``, that allow you to programatically perform most of the\ntasks Yahoo! Pipes allowed.\n\nWhy you should use riko\n^^^^^^^^^^^^^^^^^^^^^^^\n\n``riko`` provides a number of benefits / differences from other stream processing\napplications such as Huginn, Flink, Spark, and Storm [#]_. Namely:\n\n- a small footprint (CPU and memory usage)\n- native RSS/Atom support\n- simple installation and usage\n- a pure python library with `pypy`_ support\n- builtin modular ``pipes`` to filter, sort, and modify ``streams``\n\nThe subsequent tradeoffs ``riko`` makes are:\n\n- not distributed (able to run on a cluster of servers)\n- no GUI for creating ``flows``\n- doesn't continually monitor ``streams`` for new data\n- can't react to specific events\n- iterator (pull) based so streams only support a single consumer [#]_\n\nThe following table summaries these observations:\n\n======= =========== ========= ===== =========== ===== ======== ======== ===========\nlibrary Stream Type Footprint RSS simple [#]_ async parallel CEP [#]_ distributed\n======= =========== ========= ===== =========== ===== ======== ======== ===========\nriko pull small \u221a \u221a \u221a \u221a\npipe2py pull small \u221a \u221a\nHuginn push med \u221a [#]_ \u221a \u221a\nOthers push large [#]_ [#]_ [#]_ \u221a \u221a \u221a\n======= =========== ========= ===== =========== ===== ======== ======== ===========\n\nFor more detailed information, please check-out the `FAQ`_.\n\nNotes\n^^^^^\n\n.. [#] Yahoo discontinued Yahoo! Pipes in 2015, but you can view what `remains`_\n.. [#] `Huginn`_, `Flink`_, `Spark`_, and `Storm`_\n.. [#] You can mitigate this via the `split`_ module\n.. [#] Doesn't depend on outside services like MySQL, Kafka, YARN, ZooKeeper, or Mesos\n.. [#] `Complex Event Processing`_\n.. [#] Huginn doesn't appear to make `async web requests`_\n.. [#] Many libraries can't parse RSS streams without the use of 3rd party libraries\n.. [#] While most libraries offer a local mode, many require integrating with a data ingestor (e.g., Flume/Kafka) to do anything useful\n.. [#] I can't find evidence that these libraries offer an async APIs (and apparently `Spark doesn't`_)\n\nUsage\n-----\n\n``riko`` is intended to be used directly as a Python library.\n\nUsage Index\n^^^^^^^^^^^\n\n- `Fetching feeds`_\n- `Synchronous processing`_\n- `Parallel processing`_\n- `Asynchronous processing`_\n- `Cookbook`_\n\nFetching feeds\n^^^^^^^^^^^^^^\n\n``riko`` can fetch rss feeds from both local and remote filepaths via \"source\"\n``pipes``. Each \"source\" ``pipe`` returns a ``stream``, i.e., an iterator of\ndictionaries, aka ``items``.\n\n.. code-block:: python\n\n >>> from riko.modules import fetch, fetchsitefeed\n >>>\n >>> ### Fetch an RSS feed ###\n >>> stream = fetch.pipe(conf={'url': 'https://news.ycombinator.com/rss'})\n >>>\n >>> ### Fetch the first RSS feed found ###\n >>> stream = fetchsitefeed.pipe(conf={'url': 'http://arstechnica.com/rss-feeds/'})\n >>>\n >>> ### View the fetched RSS feed(s) ###\n >>> #\n >>> # Note: regardless of how you fetch an RSS feed, it will have the same\n >>> # structure\n >>> item = next(stream)\n >>> item.keys()\n dict_keys(['title_detail', 'author.uri', 'tags', 'summary_detail', 'author_detail',\n 'author.name', 'y:published', 'y:title', 'content', 'title', 'pubDate',\n 'guidislink', 'id', 'summary', 'dc:creator', 'authors', 'published_parsed',\n 'links', 'y:id', 'author', 'link', 'published'])\n\n >>> item['title'], item['author'], item['id']\n ('Gravity doesn\u2019t care about quantum spin',\n 'Chris Lee',\n 'http://arstechnica.com/?p=924009')\n\nPlease see the `FAQ`_ for a complete list of supported `file types`_ and\n`protocols`_. Please see `Fetching data and feeds`_ for more examples.\n\nSynchronous processing\n^^^^^^^^^^^^^^^^^^^^^^\n\n``riko`` can modify ``streams`` via the `40 built-in`_ ``pipes``\n\n.. code-block:: python\n\n >>> from riko.collections import SyncPipe\n >>>\n >>> ### Set the pipe configurations ###\n >>> fetch_conf = {'url': 'https://news.ycombinator.com/rss'}\n >>> filter_rule = {'field': 'link', 'op': 'contains', 'value': '.com'}\n >>> xpath = '/html/body/center/table/tr[3]/td/table[2]/tr[1]/td/table/tr/td[3]/span/span'\n >>> xpath_conf = {'url': {'subkey': 'comments'}, 'xpath': xpath}\n >>>\n >>> ### Create a SyncPipe flow ###\n >>> #\n >>> # `SyncPipe` is a convenience class that creates chainable flows\n >>> # and allows for parallel processing.\n >>> #\n >>> # The following flow will:\n >>> # 1. fetch the hackernews RSS feed\n >>> # 2. filter for items with '.com' in the link\n >>> # 3. sort the items ascending by title\n >>> # 4. fetch the first comment from each item\n >>> # 5. flatten the result into one raw stream\n >>> # 6. extract the first item's content\n >>> #\n >>> # Note: sorting is not lazy so take caution when using this pipe\n >>>\n >>> flow = (\n ... SyncPipe('fetch', conf=fetch_conf) # 1\n ... .filter(conf={'rule': filter_rule}) # 2\n ... .sort(conf={'rule': {'sort_key': 'title'}}) # 3\n ... .xpathfetchpage(conf=xpath_conf)) # 4\n >>>\n >>> stream = flow.output # 5\n >>> next(stream)['content'] # 6\n 'Open Artificial Pancreas home:'\n\nPlease see `alternate workflow creation`_ for an alternative (function based) method for\ncreating a ``stream``. Please see `pipes`_ for a complete list of available ``pipes``.\n\nParallel processing\n^^^^^^^^^^^^^^^^^^^\n\nAn example using ``riko``'s parallel API to spawn a ``ThreadPool`` [#]_\n\n.. code-block:: python\n\n >>> from riko.collections import SyncPipe\n >>>\n >>> ### Set the pipe configurations ###\n >>> fetch_conf = {'url': 'https://news.ycombinator.com/rss'}\n >>> filter_rule = {'field': 'link', 'op': 'contains', 'value': '.com'}\n >>> xpath = '/html/body/center/table/tr[3]/td/table[2]/tr[1]/td/table/tr/td[3]/span/span'\n >>> xpath_conf = {'url': {'subkey': 'comments'}, 'xpath': xpath}\n >>>\n >>> ### Create a parallel SyncPipe flow ###\n >>> #\n >>> # The following flow will:\n >>> # 1. fetch the hackernews RSS feed\n >>> # 2. filter for items with '.com' in the article link\n >>> # 3. fetch the first comment from all items in parallel (using 4 workers)\n >>> # 4. flatten the result into one raw stream\n >>> # 5. extract the first item's content\n >>> #\n >>> # Note: no point in sorting after the filter since parallel fetching doesn't guarantee\n >>> # order\n >>> flow = (\n ... SyncPipe('fetch', conf=fetch_conf, parallel=True, workers=4) # 1\n ... .filter(conf={'rule': filter_rule}) # 2\n ... .xpathfetchpage(conf=xpath_conf)) # 3\n >>>\n >>> stream = flow.output # 4\n >>> next(stream)['content'] # 5\n 'He uses the following example for when to throw your own errors:'\n\nAsynchronous processing\n^^^^^^^^^^^^^^^^^^^^^^^\n\nTo enable asynchronous processing, you must install the ``async`` module.\n\n.. code-block:: bash\n\n pip install riko[async]\n\nAn example using ``riko``'s asynchronous API.\n\n.. code-block:: python\n\n >>> from riko.bado import coroutine, react\n >>> from riko.collections import AsyncPipe\n >>>\n >>> ### Set the pipe configurations ###\n >>> fetch_conf = {'url': 'https://news.ycombinator.com/rss'}\n >>> filter_rule = {'field': 'link', 'op': 'contains', 'value': '.com'}\n >>> xpath = '/html/body/center/table/tr[3]/td/table[2]/tr[1]/td/table/tr/td[3]/span/span'\n >>> xpath_conf = {'url': {'subkey': 'comments'}, 'xpath': xpath}\n >>>\n >>> ### Create an AsyncPipe flow ###\n >>> #\n >>> # The following flow will:\n >>> # 1. fetch the hackernews RSS feed\n >>> # 2. filter for items with '.com' in the article link\n >>> # 3. asynchronously fetch the first comment from each item (using 4 connections)\n >>> # 4. flatten the result into one raw stream\n >>> # 5. extract the first item's content\n >>> #\n >>> # Note: no point in sorting after the filter since async fetching doesn't guarantee\n >>> # order\n >>> @coroutine\n ... def run(reactor):\n ... stream = yield (\n ... AsyncPipe('fetch', conf=fetch_conf, connections=4) # 1\n ... .filter(conf={'rule': filter_rule}) # 2\n ... .xpathfetchpage(conf=xpath_conf) # 3\n ... .output) # 4\n ...\n ... print(next(stream)['content']) # 5\n >>>\n >>> try:\n ... react(run)\n ... except SystemExit:\n ... pass\n Here's how iteration works ():\n\nCookbook\n^^^^^^^^\n\nPlease see the `cookbook`_ or `ipython notebook`_ for more examples.\n\nNotes\n^^^^^\n\n.. [#] You can instead enable a ``ProcessPool`` by additionally passing ``threads=False`` to ``SyncPipe``, i.e., ``SyncPipe('fetch', conf={'url': url}, parallel=True, threads=False)``.\n\nInstallation\n------------\n\n(You are using a `virtualenv`_, right?)\n\nAt the command line, install ``riko`` using either ``pip`` (*recommended*)\n\n.. code-block:: bash\n\n pip install riko\n\nor ``easy_install``\n\n.. code-block:: bash\n\n easy_install riko\n\nPlease see the `installation doc`_ for more details.\n\nDesign Principles\n-----------------\n\nThe primary data structures in ``riko`` are the ``item`` and ``stream``. An ``item``\nis just a python dictionary, and a ``stream`` is an iterator of ``items``. You can\ncreate a ``stream`` manually with something as simple as\n``[{'content': 'hello world'}]``. You manipulate ``streams`` in\n``riko`` via ``pipes``. A ``pipe`` is simply a function that accepts either a\n``stream`` or ``item``, and returns a ``stream``. ``pipes`` are composable: you\ncan use the output of one ``pipe`` as the input to another ``pipe``.\n\n``riko`` ``pipes`` come in two flavors; ``operators`` and ``processors``.\n``operators`` operate on an entire ``stream`` at once and are unable to handle\nindividual items. Example ``operators`` include ``count``, ``pipefilter``,\nand ``reverse``.\n\n.. code-block:: python\n\n >>> from riko.modules.reverse import pipe\n >>>\n >>> stream = [{'title': 'riko pt. 1'}, {'title': 'riko pt. 2'}]\n >>> next(pipe(stream))\n {'title': 'riko pt. 2'}\n\n``processors`` process individual ``items`` and can be parallelized across\nthreads or processes. Example ``processors`` include ``fetchsitefeed``,\n``hash``, ``pipeitembuilder``, and ``piperegex``.\n\n.. code-block:: python\n\n >>> from riko.modules.hash import pipe\n >>>\n >>> item = {'title': 'riko pt. 1'}\n >>> stream = pipe(item, field='title')\n >>> next(stream)\n {'title': 'riko pt. 1', 'hash': 2853617420}\n\nSome ``processors``, e.g., ``pipetokenizer``, return multiple results.\n\n.. code-block:: python\n\n >>> from riko.modules.tokenizer import pipe\n >>>\n >>> item = {'title': 'riko pt. 1'}\n >>> tokenizer_conf = {'delimiter': ' '}\n >>> stream = pipe(item, conf=tokenizer_conf, field='title')\n >>> next(stream)\n {'tokenizer': [{'content': 'riko'},\n {'content': 'pt.'},\n {'content': '1'}],\n 'title': 'riko pt. 1'}\n\n >>> # In this case, if we just want the result, we can `emit` it instead\n >>> stream = pipe(item, conf=tokenizer_conf, field='title', emit=True)\n >>> next(stream)\n {'content': 'riko'}\n\n``operators`` are split into sub-types of ``aggregators``\nand ``composers``. ``aggregators``, e.g., ``count``, combine\nall ``items`` of an input ``stream`` into a new ``stream`` with a single ``item``;\nwhile ``composers``, e.g., ``filter``, create a new ``stream`` containing\nsome or all ``items`` of an input ``stream``.\n\n.. code-block:: python\n\n >>> from riko.modules.count import pipe\n >>>\n >>> stream = [{'title': 'riko pt. 1'}, {'title': 'riko pt. 2'}]\n >>> next(pipe(stream))\n {'count': 2}\n\nIn case you are confused from the \"Word Count\" example up top, ``count`` can return\nmultiple items if you pass in the ``count_key`` config option.\n\n.. code-block:: python\n\n >>> counted = pipe(stream, conf={'count_key': 'title'})\n >>> next(counted)\n {'riko pt. 1': 1}\n >>> next(counted)\n {'riko pt. 2': 1}\n\n``processors`` are split into sub-types of ``source`` and ``transformer``.\n``sources``, e.g., ``itembuilder``, can create a ``stream`` while\n``transformers``, e.g. ``hash`` can only transform items in a ``stream``.\n\n.. code-block:: python\n\n >>> from riko.modules.itembuilder import pipe\n >>>\n >>> attrs = {'key': 'title', 'value': 'riko pt. 1'}\n >>> next(pipe(conf={'attrs': attrs}))\n {'title': 'riko pt. 1'}\n\nThe following table summaries these observations:\n\n+-----------+-------------+--------+-------------+-----------------+------------------+\n| type | sub-type | input | output | parallelizable? | creates streams? |\n+-----------+-------------+--------+-------------+-----------------+------------------+\n| operator | aggregator | stream | stream [#]_ | | |\n| +-------------+--------+-------------+-----------------+------------------+\n| | composer | stream | stream | | |\n+-----------+-------------+--------+-------------+-----------------+------------------+\n| processor | source | item | stream | \u221a | \u221a |\n| +-------------+--------+-------------+-----------------+------------------+\n| | transformer | item | stream | \u221a | |\n+-----------+-------------+--------+-------------+-----------------+------------------+\n\nIf you are unsure of the type of ``pipe`` you have, check its metadata.\n\n.. code-block:: python\n\n >>> from riko.modules import fetchpage, count\n >>>\n >>> fetchpage.async_pipe.__dict__\n {'type': 'processor', 'name': 'fetchpage', 'sub_type': 'source'}\n >>> count.pipe.__dict__\n {'type': 'operator', 'name': 'count', 'sub_type': 'aggregator'}\n\nThe ``SyncPipe`` and ``AsyncPipe`` classes (among other things) perform this\ncheck for you to allow for convenient method chaining and transparent\nparallelization.\n\n.. code-block:: python\n\n >>> from riko.collections import SyncPipe\n >>>\n >>> attrs = [\n ... {'key': 'title', 'value': 'riko pt. 1'},\n ... {'key': 'content', 'value': \"Let's talk about riko!\"}]\n >>> flow = SyncPipe('itembuilder', conf={'attrs': attrs}).hash()\n >>> flow.list[0]\n {'title': 'riko pt. 1',\n 'content': \"Let's talk about riko!\",\n 'hash': 1346301218}\n\nPlease see the `cookbook`_ for advanced examples including how to wire in\nvales from other pipes or accept user input.\n\nNotes\n^^^^^\n\n.. [#] the output ``stream`` of an ``aggregator`` is an iterator of only 1 ``item``.\n\nCommand-line Interface\n----------------------\n\n``riko`` provides a command, ``runpipe``, to execute ``workflows``. A\n``workflow`` is simply a file containing a function named ``pipe`` that creates\na ``flow`` and processes the resulting ``stream``.\n\nCLI Usage\n^^^^^^^^^\n\n usage: runpipe [pipeid]\n\n description: Runs a riko pipe\n\n positional arguments:\n pipeid The pipe to run (default: reads from stdin).\n\n optional arguments:\n -h, --help show this help message and exit\n -a, --async Load async pipe.\n\n -t, --test Run in test mode (uses default inputs).\n\nCLI Setup\n^^^^^^^^^\n\n``flow.py``\n\n.. code-block:: python\n\n from __future__ import print_function\n from riko.collections import SyncPipe\n\n conf1 = {'attrs': [{'value': 'https://google.com', 'key': 'content'}]}\n conf2 = {'rule': [{'find': 'com', 'replace': 'co.uk'}]}\n\n def pipe(test=False):\n kwargs = {'conf': conf1, 'test': test}\n flow = SyncPipe('itembuilder', **kwargs).strreplace(conf=conf2)\n stream = flow.output\n\n for i in stream:\n print(i)\n\nCLI Examples\n^^^^^^^^^^^^\n\nNow to execute ``flow.py``, type the command ``runpipe flow``. You should\nthen see the following output in your terminal:\n\n.. code-block:: bash\n\n https://google.co.uk\n\n``runpipe`` will also search the ``examples`` directory for ``workflows``. Type\n``runpipe demo`` and you should see the following output:\n\n.. code-block:: bash\n\n Deadline to clear up health law eligibility near 682\n\nScripts\n-------\n\n``riko`` comes with a built in task manager ``manage``.\n\nSetup\n^^^^^\n\n.. code-block:: bash\n\n pip install riko[develop]\n\nExamples\n^^^^^^^^\n\n*Run python linter and nose tests*\n\n.. code-block:: bash\n\n manage lint\n manage test\n\nContributing\n------------\n\nPlease mimic the coding style/conventions used in this repo.\nIf you add new classes or functions, please add the appropriate doc blocks with\nexamples. Also, make sure the python linter and nose tests pass.\n\nPlease see the `contributing doc`_ for more details.\n\nCredits\n-------\n\nShoutout to `pipe2py`_ for heavily inspiring ``riko``. ``riko`` started out as a fork\nof ``pipe2py``, but has since diverged so much that little (if any) of the original\ncode-base remains.\n\nMore Info\n---------\n\n- `FAQ`_\n- `Cookbook`_\n- `iPython Notebook`_\n- `Step-by-Step Intro. Tutorial`_\n\nProject Structure\n-----------------\n\n.. code-block:: bash\n\n \u250c\u2500\u2500 benchmarks\n \u2502 \u251c\u2500\u2500 __init__.py\n \u2502 \u2514\u2500\u2500 parallel.py\n \u251c\u2500\u2500 bin\n \u2502 \u2514\u2500\u2500 run\n \u251c\u2500\u2500 data/*\n \u251c\u2500\u2500 docs\n \u2502 \u251c\u2500\u2500 AUTHORS.rst\n \u2502 \u251c\u2500\u2500 CHANGES.rst\n \u2502 \u251c\u2500\u2500 COOKBOOK.rst\n \u2502 \u251c\u2500\u2500 FAQ.rst\n \u2502 \u251c\u2500\u2500 INSTALLATION.rst\n \u2502 \u2514\u2500\u2500 TODO.rst\n \u251c\u2500\u2500 examples/*\n \u251c\u2500\u2500 helpers/*\n \u251c\u2500\u2500 riko\n \u2502 \u251c\u2500\u2500 __init__.py\n \u2502 \u251c\u2500\u2500 lib\n \u2502 \u2502 \u251c\u2500\u2500 __init__.py\n \u2502 \u2502 \u251c\u2500\u2500 autorss.py\n \u2502 \u2502 \u251c\u2500\u2500 collections.py\n \u2502 \u2502 \u251c\u2500\u2500 dotdict.py\n \u2502 \u2502 \u251c\u2500\u2500 log.py\n \u2502 \u2502 \u251c\u2500\u2500 tags.py\n \u2502 \u2502 \u2514\u2500\u2500 py\n \u2502 \u251c\u2500\u2500 modules/*\n \u2502 \u2514\u2500\u2500 twisted\n \u2502 \u251c\u2500\u2500 __init__.py\n \u2502 \u251c\u2500\u2500 collections.py\n \u2502 \u2514\u2500\u2500 py\n \u251c\u2500\u2500 tests\n \u2502 \u251c\u2500\u2500 __init__.py\n \u2502 \u251c\u2500\u2500 standard.rc\n \u2502 \u2514\u2500\u2500 test_examples.py\n \u251c\u2500\u2500 CONTRIBUTING.rst\n \u251c\u2500\u2500 dev-requirements.txt\n \u251c\u2500\u2500 LICENSE\n \u251c\u2500\u2500 Makefile\n \u251c\u2500\u2500 manage.py\n \u251c\u2500\u2500 MANIFEST.in\n \u251c\u2500\u2500 optional-requirements.txt\n \u251c\u2500\u2500 py2-requirements.txt\n \u251c\u2500\u2500 README.rst\n \u251c\u2500\u2500 requirements.txt\n \u251c\u2500\u2500 setup.cfg\n \u251c\u2500\u2500 setup.py\n \u2514\u2500\u2500 tox.ini\n\nLicense\n-------\n\n``riko`` is distributed under the `MIT License`_.\n\n.. |travis| image:: https://img.shields.io/travis/nerevu/riko/master.svg\n :target: https://travis-ci.org/nerevu/riko\n\n.. |versions| image:: https://img.shields.io/pypi/pyversions/riko.svg\n :target: https://pypi.python.org/pypi/riko\n\n.. |pypi| image:: https://img.shields.io/pypi/v/riko.svg\n :target: https://pypi.python.org/pypi/riko\n\n.. _synchronous: #synchronous-processing\n.. _asynchronous: #asynchronous-processing\n.. _parallel execution: #parallel-processing\n.. _parallel processing: #parallel-processing\n.. _library: #usage\n\n.. _contributing doc: https://github.com/nerevu/riko/blob/master/CONTRIBUTING.rst\n.. _FAQ: https://github.com/nerevu/riko/blob/master/docs/FAQ.rst\n.. _pipes: https://github.com/nerevu/riko/blob/master/docs/FAQ.rst#what-pipes-are-available\n.. _40 built-in: https://github.com/nerevu/riko/blob/master/docs/FAQ.rst#what-pipes-are-available\n.. _file types: https://github.com/nerevu/riko/blob/master/docs/FAQ.rst#what-file-types-are-supported\n.. _protocols: https://github.com/nerevu/riko/blob/master/docs/FAQ.rst#what-protocols-are-supported\n.. _installation doc: https://github.com/nerevu/riko/blob/master/docs/INSTALLATION.rst\n.. _Cookbook: https://github.com/nerevu/riko/blob/master/docs/COOKBOOK.rst\n.. _split: https://github.com/nerevu/riko/blob/master/riko/modules/split.py#L15-L18\n.. _alternate workflow creation: https://github.com/nerevu/riko/blob/master/docs/COOKBOOK.rst#alternate-workflow-creation\n.. _Fetching data and feeds: https://github.com/nerevu/riko/blob/master/docs/COOKBOOK.rst#fetching-data-and-feeds\n\n.. _pypy: http://pypy.org\n.. _Really Simple Syndication: https://en.wikipedia.org/wiki/RSS\n.. _Mashup (web application hybrid): https://en.wikipedia.org/wiki/Mashup_%28web_application_hybrid%29\n.. _pipe2py: https://github.com/ggaughan/pipe2py/\n.. _Huginn: https://github.com/cantino/huginn/\n.. _Flink: http://flink.apache.org/\n.. _Spark: http://spark.apache.org/streaming/\n.. _Storm: http://storm.apache.org/\n.. _Complex Event Processing: https://en.wikipedia.org/wiki/Complex_event_processing\n.. _async web requests: https://github.com/cantino/huginn/blob/bf7c2feba4a7f27f39de96877c121d40282c0af9/app/models/agents/rss_agent.rb#L101\n.. _Spark doesn't: https://github.com/perwendel/spark/issues/208\n.. _remains: https://web.archive.org/web/20150930021241/http://pipes.yahoo.com/pipes/\n.. _lxml: http://www.crummy.com/software/BeautifulSoup/bs4/doc/#installing-a-parser\n.. _Twisted: http://twistedmatrix.com/\n.. _speedparser: https://github.com/jmoiron/speedparser\n.. _MIT License: http://opensource.org/licenses/MIT\n.. _virtualenv: http://www.virtualenv.org/en/latest/index.html\n.. _iPython Notebook: http://nbviewer.jupyter.org/github/nerevu/riko/blob/master/examples/usage.ipynb\n.. _Step-by-Step Intro. Tutorial: http://nbviewer.jupyter.org/github/aemreunal/riko-tutorial/blob/master/Tutorial.ipynb\n\n\nChangelog\n=========\n\n%%version%% (unreleased)\n------------------------\n\nBugfixes\n~~~~~~~~\n\n- Store downloaded packages in wheel dir. [Reuben Cummings]\n\n- Fix prefix generation. [Reuben Cummings]\n\nv0.35.1 (2016-07-22)\n--------------------\n\nBugfixes\n~~~~~~~~\n\n- Fix makefile lint command. [Reuben Cummings]\n\n- Update pygogo requirement (fixes #2) [Reuben Cummings]\n\nv0.35.0 (2016-07-19)\n--------------------\n\nNew\n~~~\n\n- Limit the number of unique items tracked. [Reuben Cummings]\n\n- Add grouping ability to count pipe. [Reuben Cummings]\n\nBugfixes\n~~~~~~~~\n\n- Fix processor metadata. [Reuben Cummings]\n\nv0.34.0 (2016-07-19)\n--------------------\n\nNew\n~~~\n\n- Add list element searching to microdom. [Reuben Cummings]\n\n- Add more operations to filter pipes. [Reuben Cummings]\n\nChanges\n~~~~~~~\n\n- Merge async_pmap and async_imap. [Reuben Cummings]\n\n- Change deferToProcess name and arguments. [Reuben Cummings]\n\n- Rename modules/functions, and update docs. [Reuben Cummings]\n\nBugfixes\n~~~~~~~~\n\n- Force getElementsByTagName to return child. [Reuben Cummings]\n\n- Only use FakeReactor when actually needed. [Reuben Cummings]\n\n- Fix async html parsing. [Reuben Cummings]\n\n- Prevent IndexError. [Reuben Cummings]\n\n- Fix async opening of http files. [Reuben Cummings]\n\n- Be lenient with html parsing. [Reuben Cummings]\n\n- Fix empty xpath and start value bugs. [Reuben Cummings]\n\nv0.33.0 (2016-07-01)\n--------------------\n\nChanges\n~~~~~~~\n\n- Major refactor for py3 support: [Reuben Cummings]\n\n - fix py3 and open file errors\n - port missing twisted modules\n - refactor rss parsing\n - and streaming json support\n - rename request function\n - make benchmarks.py a script and add to tests\n\nBugfixes\n~~~~~~~~\n\n- Fix pypy test errors. [Reuben Cummings]\n\nv0.32.0 (2016-06-16)\n--------------------\n\nChanges\n~~~~~~~\n\n- Refactor to remove Twisted dependency. [Reuben Cummings]\n\nv0.31.0 (2016-06-16)\n--------------------\n\nNew\n~~~\n\n- Add parallel testing. [Reuben Cummings]\n\nv0.30.2 (2016-06-16)\n--------------------\n\nBugfixes\n~~~~~~~~\n\n- Add missing optional dependency. [Reuben Cummings]\n\nv0.30.1 (2016-06-16)\n--------------------\n\nBugfixes\n~~~~~~~~\n\n- Fix failed test runner. [Reuben Cummings]\n\n- Fix lxml dependency errors. [Reuben Cummings]\n\nv0.30.0 (2016-06-15)\n--------------------\n\nNew\n~~~\n\n- Try loading workflow from curdir first. [Reuben Cummings]\n\nBugfixes\n~~~~~~~~\n\n- Fix remaining pypy errors. [Reuben Cummings]\n\n- Fix \u201cnewdict instance\u201d error for pypy. [Reuben Cummings]\n\n- Add detagging to `fetchpage` async parser. [Reuben Cummings]\n\nv0.28.0 (2016-03-25)\n--------------------\n\nNew\n~~~\n\n- Add option to specify value if no regex match found. [Reuben Cummings]\n\nChanges\n~~~~~~~\n\n- Make default exchange rate field \u2018content\u2019 [Reuben Cummings]\n\n- Split now returns tier of feeds. [Reuben Cummings]\n\nBugfixes\n~~~~~~~~\n\n- Fix test mode for input pipe. [Reuben Cummings]\n\n- Fix terminal parsing. [Reuben Cummings]\n\n- Fix input pipe if no inputs given. [Reuben Cummings]\n\n- Fix sleep config. [Reuben Cummings]\n\n- Fix json bool parsing. [Reuben Cummings]\n\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/nerevu/riko/archive/v0.60.4.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/nerevu/riko", "keywords": "riko,A,stream,processing,engine,modeled,after,Yahoo!,Pipes.", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "riko", "package_url": "https://pypi.org/project/riko/", "platform": "MacOS X", "project_url": "https://pypi.org/project/riko/", "project_urls": { "Download": "https://github.com/nerevu/riko/archive/v0.60.4.tar.gz", "Homepage": "https://github.com/nerevu/riko" }, "release_url": "https://pypi.org/project/riko/0.60.4/", "requires_dist": [ "html5lib (==0.999999999)", "meza (<0.42.0,>=0.41.1)", "chardet (<4.0.0,>=3.0.4)", "Babel (<3.0.0,>=2.3.4)", "requests (<3.0.0,>=2.18.4)", "pytz (>=2016.10)", "six (<2.0.0,>=1.10.0)", "Mezmorize (<0.26.0,>=0.25.0)", "feedparser (<6.0.0,>=5.2.1)", "pygogo (<0.13.0,>=0.12.0)", "python-dateutil (<3.0.0,>=2.4.2)", "treq (<17.0.0,>=15.1.0); extra == 'async'", "Twisted (<18.0.0,>=17.1.0); extra == 'async'", "coverage (<5.0.0,>=4.0.3); extra == 'develop'", "flake8 (<4.0.0,>=3.3.0); extra == 'develop'", "nose (<2.0.0,>=1.3.7); extra == 'develop'", "responses (<0.6.0,>=0.5.1); extra == 'develop'", "scripttest (<2.0.0,>=1.3); extra == 'develop'", "tox (<3.0.0,>=2.9.1); extra == 'develop'", "twine (<2.0.0,>=1.9.1); extra == 'develop'", "pkutils (<0.14.0,>=0.13.4); extra == 'develop'", "manage.py (<0.3.0,>=0.2.10); extra == 'develop'", "pip (>=9.0.3); extra == 'develop'", "virtualenv (>=15.2.0); extra == 'develop'", "setuptools (>=38.7.0); extra == 'develop'", "wheel (>=0.31.0); extra == 'develop'", "pylint (<2.0.0,>=1.9.0); extra == 'develop'", "future (<1.0.0,>=0.16.0); extra == 'python_version<3.0'", "speedparser (~=0.2.0); extra == 'xml'", "lxml (<4.0.0,>=3.6.0); extra == 'xml'" ], "requires_python": "", "summary": "A stream processing engine modeled after Yahoo! Pipes.", "version": "0.60.4" }, "last_serial": 4269376, "releases": { "0.29.0": [ { "comment_text": "", "digests": { "md5": "20e2f8b26f7a011f444a80530c28ab99", "sha256": "04571f34c32ff01406c0b279e1de6026ad324d208cc35f054dea551b94a53c5e" }, "downloads": -1, "filename": "riko-0.29.0-py2-none-any.whl", "has_sig": true, "md5_digest": "20e2f8b26f7a011f444a80530c28ab99", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 130604, "upload_time": "2016-06-06T14:55:17", "url": "https://files.pythonhosted.org/packages/5d/8d/a595d7d30ba4fd6fd4ce93041e5632f5c9c33042166862a09599bd20ff4b/riko-0.29.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "267ec7cd37d8b1b996033b8fa737d071", "sha256": "5a7f0963d357328ab2d109a2b43bdf6cbde7a87f23ca3f9dc8a1f71f0a5a20e8" }, "downloads": -1, "filename": "riko-0.29.0.tar.gz", "has_sig": true, "md5_digest": "267ec7cd37d8b1b996033b8fa737d071", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 598998, "upload_time": "2016-06-06T14:55:23", "url": "https://files.pythonhosted.org/packages/c3/78/70fdc9f44a12194b83e65564d8115ada88d976ffb727f9c076cf2bbad833/riko-0.29.0.tar.gz" } ], "0.30.0": [ { "comment_text": "", "digests": { "md5": "bee00ebec21917e95b564445de9c2fb1", "sha256": "26aaf37536c4666548bca75162204f0f965095b4fd752eef5cc2347b30ac95a4" }, "downloads": -1, "filename": "riko-0.30.0-py2-none-any.whl", "has_sig": true, "md5_digest": "bee00ebec21917e95b564445de9c2fb1", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 133257, "upload_time": "2016-06-15T19:52:44", "url": "https://files.pythonhosted.org/packages/18/44/54524d8c2414073bdfea9bef0ccc7f1f7ee2dce09792fef0dfe33efd1fb6/riko-0.30.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fbe5905633b579391f875a777ea50813", "sha256": "265d4c711a4bc3a767bdc9601b2c2cfd3556c07ecd2c406cf795df86ffd7c992" }, "downloads": -1, "filename": "riko-0.30.0.tar.gz", "has_sig": true, "md5_digest": "fbe5905633b579391f875a777ea50813", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 603150, "upload_time": "2016-06-15T19:53:04", "url": "https://files.pythonhosted.org/packages/1c/b1/4f8400f0ffc386c2119827d6caf245a6922ece3c6ad740367a421983d99d/riko-0.30.0.tar.gz" } ], "0.32.1": [ { "comment_text": "", "digests": { "md5": "8180784a64ef9c52dc0ec3e5f8f16ef7", "sha256": "5e461aa299d3b11a6fe906a9cea61c50677263d2f00b06139175cfece5cdcfe2" }, "downloads": -1, "filename": "riko-0.32.1-py2-none-any.whl", "has_sig": true, "md5_digest": "8180784a64ef9c52dc0ec3e5f8f16ef7", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 134881, "upload_time": "2016-06-16T21:05:26", "url": "https://files.pythonhosted.org/packages/06/f2/282e5f8378edb1ed903a64a251a37590ce9f2105c5a7e1a3cea8bb4ae436/riko-0.32.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3dfbfbde71be9ef176b3c67a053c3555", "sha256": "2ce652d9e0445a1a15794e80b7ba27cf6426766fa72781129093eccc323a5b32" }, "downloads": -1, "filename": "riko-0.32.1.tar.gz", "has_sig": true, "md5_digest": "3dfbfbde71be9ef176b3c67a053c3555", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 612899, "upload_time": "2016-06-16T21:05:49", "url": "https://files.pythonhosted.org/packages/67/8a/c67b2630fe3bc6fd786e7aae7a63e5304920c8d01f7ac44c2c3597c0e4de/riko-0.32.1.tar.gz" } ], "0.33.0": [ { "comment_text": "", "digests": { "md5": "d68060547679002d4d02c9c353950844", "sha256": "b3a8b1788e3265c95965a750e2773296bde0702292359c61a869a3906f2005ce" }, "downloads": -1, "filename": "riko-0.33.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "d68060547679002d4d02c9c353950844", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 673160, "upload_time": "2016-07-01T07:15:26", "url": "https://files.pythonhosted.org/packages/01/21/7fa52c7c57cd58cb2bda8f3c23d2d9d2e51a6e4672f904739062d9c9f869/riko-0.33.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "62ebc3c8c9384fbb935f51af9a7be349", "sha256": "04b9844f02188c1b795e4dc7e2cb5a292b3da3b9ba6fd97c2a04a53e3eedeb56" }, "downloads": -1, "filename": "riko-0.33.0.tar.gz", "has_sig": true, "md5_digest": "62ebc3c8c9384fbb935f51af9a7be349", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 614267, "upload_time": "2016-07-01T07:15:35", "url": "https://files.pythonhosted.org/packages/10/07/a10a5a24a019c9ce85cc82d037e1fe38531970dfd7526406a14bb32062d2/riko-0.33.0.tar.gz" } ], "0.35.0": [ { "comment_text": "", "digests": { "md5": "14e71dd8c0896fdea711ede179267b7a", "sha256": "476f9049de0b764db9caddd8880429f3b0c4876afa99fb2c3d1806990d743da9" }, "downloads": -1, "filename": "riko-0.35.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "14e71dd8c0896fdea711ede179267b7a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 674712, "upload_time": "2016-07-19T13:25:27", "url": "https://files.pythonhosted.org/packages/61/01/d60bda391b12e84a238b3b60263b73d13a027e54f2b095471803fce6c927/riko-0.35.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cf354915502e3cfca8e621f6bc2b5571", "sha256": "41290b92ccdf345754d3f6c87893be24ef5b43572e7de16e212d90d582f08f72" }, "downloads": -1, "filename": "riko-0.35.0.tar.gz", "has_sig": true, "md5_digest": "cf354915502e3cfca8e621f6bc2b5571", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 618992, "upload_time": "2016-07-19T13:25:39", "url": "https://files.pythonhosted.org/packages/25/92/a635efe6bcca8379c9fad9ffa1ca0547d86c56c730f2f3b5035a381c43b7/riko-0.35.0.tar.gz" } ], "0.35.1": [ { "comment_text": "", "digests": { "md5": "e6299e8c6e0ef46ee96d6eee34016000", "sha256": "50092984a5a066b206e3ae8002ca1e1ab1f04efa4e3b61098e6b727cd17e404a" }, "downloads": -1, "filename": "riko-0.35.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "e6299e8c6e0ef46ee96d6eee34016000", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 658884, "upload_time": "2016-07-22T21:56:43", "url": "https://files.pythonhosted.org/packages/fd/77/d0a74c97a077064f16b032fc5d83cc8d6407435479ef8261643a12343152/riko-0.35.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b1d9f2eace2baebe427a0f3b4551849f", "sha256": "b7aac877b79c9c257b264a57d05f771b90c7bf8fbfd920f087a758ab579d1f46" }, "downloads": -1, "filename": "riko-0.35.1.tar.gz", "has_sig": true, "md5_digest": "b1d9f2eace2baebe427a0f3b4551849f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 616291, "upload_time": "2016-07-22T21:56:58", "url": "https://files.pythonhosted.org/packages/dd/5b/1731d0abbd47ad56c9b91b6e0cd06a2eb490b04a99dbd5fc25584aad362b/riko-0.35.1.tar.gz" } ], "0.35.3": [ { "comment_text": "", "digests": { "md5": "c7a0f9fe82c08861a7964b1a76ccf042", "sha256": "6961ff802fd5f460e69b6469a97601cde23ca3d657069fd801042a94f739c100" }, "downloads": -1, "filename": "riko-0.35.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "c7a0f9fe82c08861a7964b1a76ccf042", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 658877, "upload_time": "2016-07-26T14:01:36", "url": "https://files.pythonhosted.org/packages/ec/f8/ede0eb72867af531540d56216f599bb8535d24cd363e43c43cac047d5598/riko-0.35.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "245450c22e5f13a42e7f88e9e9efbf6e", "sha256": "92b7aaed451e760b286e6a21455730c7ec4877b8615a59cec3c2255f6704ce40" }, "downloads": -1, "filename": "riko-0.35.3.tar.gz", "has_sig": true, "md5_digest": "245450c22e5f13a42e7f88e9e9efbf6e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 614364, "upload_time": "2016-07-26T14:01:43", "url": "https://files.pythonhosted.org/packages/77/bc/f06b689b7ea442e8d3a4022b828560d3308a30fa14fb96c53fc88c95b491/riko-0.35.3.tar.gz" } ], "0.36.0": [ { "comment_text": "", "digests": { "md5": "c5237f14a32f32ef3df1ede0f60a6725", "sha256": "6f7d04379f8df21e600c7e2c5d1baf1bf295c947456ccd62a66f0bea265027d2" }, "downloads": -1, "filename": "riko-0.36.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "c5237f14a32f32ef3df1ede0f60a6725", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 662446, "upload_time": "2016-09-29T05:21:38", "url": "https://files.pythonhosted.org/packages/2b/fc/194f059b3f42ceecc3c7c68e2b1dad46d0673af2c9d90542e84e0cda5010/riko-0.36.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3c39f5bde5c4a121ff0d2e17b9df0ca8", "sha256": "1894853ba2ecfbbe9404a24284e89ea358844b07c4408ad121f1b874eb5d7e01" }, "downloads": -1, "filename": "riko-0.36.0.tar.gz", "has_sig": true, "md5_digest": "3c39f5bde5c4a121ff0d2e17b9df0ca8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 616371, "upload_time": "2016-09-29T05:21:53", "url": "https://files.pythonhosted.org/packages/4f/1f/3d7c24bfe0ad63b480a5fa2b65acc71aa8a9f02a3710c76f060a42654371/riko-0.36.0.tar.gz" } ], "0.37.0": [ { "comment_text": "", "digests": { "md5": "8bd81b5a074951e792f90acacb4ba43c", "sha256": "7f9022b540d16eb2cece2b805b76bb77be6b727b12bbc66e41925225cbd0d400" }, "downloads": -1, "filename": "riko-0.37.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "8bd81b5a074951e792f90acacb4ba43c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 662611, "upload_time": "2016-09-29T08:36:14", "url": "https://files.pythonhosted.org/packages/aa/7d/215d359d8b478fb51dfb518fd4dfbf47711cb80e818333b767cc401b8444/riko-0.37.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f2dd5c083360326c47a87e1917b5eb71", "sha256": "4f86219c34d99638a4ee4cecd17211281b397dd989be3f440cbff131fb7a60e8" }, "downloads": -1, "filename": "riko-0.37.0.tar.gz", "has_sig": true, "md5_digest": "f2dd5c083360326c47a87e1917b5eb71", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 616503, "upload_time": "2016-09-29T08:36:24", "url": "https://files.pythonhosted.org/packages/89/8d/f3a65b49d570d93a9eacaa9aed23393ce9c042396f0a14b0a1e231ffca9f/riko-0.37.0.tar.gz" } ], "0.38.0": [ { "comment_text": "", "digests": { "md5": "af6a3d7a54eeb1ab32c0ce43c7163b41", "sha256": "cf010d14e0951b8826e0304deb6da9c5bc80bc7f87b0acea2a830f4fd30e3962" }, "downloads": -1, "filename": "riko-0.38.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "af6a3d7a54eeb1ab32c0ce43c7163b41", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 665731, "upload_time": "2017-03-10T17:07:42", "url": "https://files.pythonhosted.org/packages/0b/03/3760943d4bc19749f672408a63e776f9d47e1a749786cdf82eab9c51f296/riko-0.38.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "21048bc6ba1b5e22fbaeaf4b0e88c78e", "sha256": "c72be1c75d7e98ca73fd0d4932700ce5f775203441e744a5a256230884d15b60" }, "downloads": -1, "filename": "riko-0.38.0.tar.gz", "has_sig": true, "md5_digest": "21048bc6ba1b5e22fbaeaf4b0e88c78e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 618103, "upload_time": "2017-03-10T17:07:45", "url": "https://files.pythonhosted.org/packages/a9/98/2346bc0d7ac8eccadc3b6eb4ca160ceddcb6386c211752627c1562bdb98f/riko-0.38.0.tar.gz" } ], "0.39.0": [ { "comment_text": "", "digests": { "md5": "37b0f3fd7b2353a7fc6319fe7d076e97", "sha256": "81a71408739eac9ec0b9d0945f28bc6045a6a91a3ce8764454c069fd8f70f7af" }, "downloads": -1, "filename": "riko-0.39.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "37b0f3fd7b2353a7fc6319fe7d076e97", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 674046, "upload_time": "2017-03-11T21:21:53", "url": "https://files.pythonhosted.org/packages/44/31/d31de5ca17f8fc510e2fba1d65f750e52f8efaef60bf395688a7add10186/riko-0.39.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "98654f63c1f9844f70d4a5452549a921", "sha256": "d2fbc09d5f91c049bd3d62f0428a43220db87ff65caf3f299924be0c5f0c335d" }, "downloads": -1, "filename": "riko-0.39.0.tar.gz", "has_sig": true, "md5_digest": "98654f63c1f9844f70d4a5452549a921", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 625291, "upload_time": "2017-03-11T21:21:56", "url": "https://files.pythonhosted.org/packages/e9/0d/dfdaf631f3b5510f0f9592f50d68c4c1e6af937dae8b6fb84e71153beb93/riko-0.39.0.tar.gz" } ], "0.40.1": [ { "comment_text": "", "digests": { "md5": "c53d054052397d155f31e2370fc61142", "sha256": "9797bb18b9d2164ab417a16e82830eb7c0573e91486b082d13d58ca2b0184bbe" }, "downloads": -1, "filename": "riko-0.40.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "c53d054052397d155f31e2370fc61142", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 669260, "upload_time": "2017-03-16T09:30:24", "url": "https://files.pythonhosted.org/packages/e3/89/da78ef929d628c640f310e9608815d640b12ac700165e1d55215781d0b72/riko-0.40.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8ff130c86f20a9a5ed4ddb36422d643a", "sha256": "38075a5795bcc2a6cab5a10cdb1e93c9b82771e44bcecedfeffe7bf82122f300" }, "downloads": -1, "filename": "riko-0.40.1.tar.gz", "has_sig": true, "md5_digest": "8ff130c86f20a9a5ed4ddb36422d643a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 621057, "upload_time": "2017-03-16T09:30:27", "url": "https://files.pythonhosted.org/packages/82/f6/b91864756772844702cdf2357543cfa759b825872dc079d31a06722f6453/riko-0.40.1.tar.gz" } ], "0.41.0": [ { "comment_text": "", "digests": { "md5": "bb1e653139b90c5203a158b2ccc99be7", "sha256": "93b16c1a9f052a651f93b97be819558aac1816768acdf08f3a552be734bf0333" }, "downloads": -1, "filename": "riko-0.41.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "bb1e653139b90c5203a158b2ccc99be7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 667461, "upload_time": "2017-03-18T13:55:59", "url": "https://files.pythonhosted.org/packages/f8/53/2ebf40d5c418298312a2dd8c6dc4c3d5d47d16368be29a37693ae0fec1d7/riko-0.41.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bf7b1f385ac7ca848269b5ea582c3188", "sha256": "57aa7942e64c601dbeb3398e77382f210a923dcbec9e06b3941b2b818a78f62d" }, "downloads": -1, "filename": "riko-0.41.0.tar.gz", "has_sig": true, "md5_digest": "bf7b1f385ac7ca848269b5ea582c3188", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 621647, "upload_time": "2017-03-18T13:56:04", "url": "https://files.pythonhosted.org/packages/3f/74/499d32639041c8f29282cd2fd71e7fb6ba3c8d05abc2f01aab31f7f6250e/riko-0.41.0.tar.gz" } ], "0.42.0": [ { "comment_text": "", "digests": { "md5": "80563215de6be3cd1a0f045911222e78", "sha256": "264f87ca4da4f4fbe4b175836bcd207200f6d53744b13a6bb00fcd692145468d" }, "downloads": -1, "filename": "riko-0.42.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "80563215de6be3cd1a0f045911222e78", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 677185, "upload_time": "2017-03-24T15:20:55", "url": "https://files.pythonhosted.org/packages/89/01/e29a70558217afafc04847dfff0e85d9380c63eec6109c290d14f94f7ff7/riko-0.42.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "33167f109b65868548eee6fd664b0da7", "sha256": "417c84515358b1b2efe0feba5a27af47d5b28e3aa5f484653484da10df3023c6" }, "downloads": -1, "filename": "riko-0.42.0.tar.gz", "has_sig": true, "md5_digest": "33167f109b65868548eee6fd664b0da7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 630442, "upload_time": "2017-03-24T15:20:59", "url": "https://files.pythonhosted.org/packages/62/0f/c8cb024547f23a0df2d20d61699fe901b64bd4713946055619759d45ff1c/riko-0.42.0.tar.gz" } ], "0.43.0": [ { "comment_text": "", "digests": { "md5": "e3a55af0d4d6048fc5b6870a27744b85", "sha256": "f5014ed607f00c7c45bfeeffda4804d43672ae5a3c6e1a9d5d6ea377375a7731" }, "downloads": -1, "filename": "riko-0.43.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "e3a55af0d4d6048fc5b6870a27744b85", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 689105, "upload_time": "2017-03-24T15:21:17", "url": "https://files.pythonhosted.org/packages/62/a4/39af7ec3d2692768c4c914d8fa97122aa7fe38806e561ca7c74c612c9423/riko-0.43.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6707033887172f5d9230b4a0f1a3a0b2", "sha256": "df7deedd9044efd8f87bc8714deeb8453b4d1c4bf83d39aae0b6bdd85b8b3c60" }, "downloads": -1, "filename": "riko-0.43.0.tar.gz", "has_sig": true, "md5_digest": "6707033887172f5d9230b4a0f1a3a0b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 642436, "upload_time": "2017-03-24T15:21:19", "url": "https://files.pythonhosted.org/packages/87/c9/e80b57165c07e146110f072af341874f36808af47b8f524b64f3f48ba566/riko-0.43.0.tar.gz" } ], "0.43.1": [ { "comment_text": "", "digests": { "md5": "1b70ce8969c626e4a4cd7572fd0b5f21", "sha256": "cee9c5a6cb1950ab08714b2a31fed96fb992d09384b0237e9f5295b3af5bf7c5" }, "downloads": -1, "filename": "riko-0.43.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "1b70ce8969c626e4a4cd7572fd0b5f21", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 689125, "upload_time": "2017-03-24T16:11:52", "url": "https://files.pythonhosted.org/packages/23/56/af5264f7219d90920bb72df81d000dcd5e70a6764741a065e65fddddeda1/riko-0.43.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dab92fa6904fa50a0bc38ba77af4e75f", "sha256": "41a11d555458b1709ba6067904e7aeb1e1a68c9e5ab55ce0ed4ba3079be60d12" }, "downloads": -1, "filename": "riko-0.43.1.tar.gz", "has_sig": true, "md5_digest": "dab92fa6904fa50a0bc38ba77af4e75f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 642479, "upload_time": "2017-03-24T16:11:55", "url": "https://files.pythonhosted.org/packages/2d/e3/d69f74380886b316c28aec88ece07c489007cda8dd7073d6b8516fce6683/riko-0.43.1.tar.gz" } ], "0.44.0": [ { "comment_text": "", "digests": { "md5": "21c9a624bfb6cd5f7d3fe9825add23d1", "sha256": "1042cf424dcafd70ebc2e7c70dc552da4f35d2a26c8b6e8bafc90bbdb941a3b2" }, "downloads": -1, "filename": "riko-0.44.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "21c9a624bfb6cd5f7d3fe9825add23d1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 695563, "upload_time": "2017-04-01T07:04:26", "url": "https://files.pythonhosted.org/packages/0c/74/665bf60d377088a50e6b86c28f310c8b3cef874f3c58086b2e06637e677b/riko-0.44.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f26541762da8060685b603df5fb61d4b", "sha256": "3e21a33072c60957259c25453eb1e762b420e1d7caa3e1907b1ab990b46ecf93" }, "downloads": -1, "filename": "riko-0.44.0.tar.gz", "has_sig": true, "md5_digest": "f26541762da8060685b603df5fb61d4b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 648798, "upload_time": "2017-04-01T07:04:32", "url": "https://files.pythonhosted.org/packages/fa/64/9cc3bd7174a8d5b90909e73a426d4e9b5cdd816bb0f692b61d5bba403163/riko-0.44.0.tar.gz" } ], "0.45.0": [ { "comment_text": "", "digests": { "md5": "1e659739d7ff75e5cd56a860ec8f6c7a", "sha256": "812eb74690a60a8be70063efeb151bf26477900d64b77aba41b159b7b3cd5993" }, "downloads": -1, "filename": "riko-0.45.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "1e659739d7ff75e5cd56a860ec8f6c7a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 696837, "upload_time": "2017-04-01T08:34:19", "url": "https://files.pythonhosted.org/packages/83/6d/07f982bb5eb652cd7d5d008102ac275aa4f88ce694531fdf4b89bc626ab5/riko-0.45.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0f7fdcd916266e660a00d9f30d840c54", "sha256": "6afb5db63379c3235a666776ffe458a08538ea31b0b6598a825b70031e57b8a7" }, "downloads": -1, "filename": "riko-0.45.0.tar.gz", "has_sig": true, "md5_digest": "0f7fdcd916266e660a00d9f30d840c54", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 649084, "upload_time": "2017-04-01T08:34:27", "url": "https://files.pythonhosted.org/packages/6f/53/01377a37a4cb10c36d37cb6c96aa1ad01f67342c6d73b18501f2296ff687/riko-0.45.0.tar.gz" } ], "0.45.1": [ { "comment_text": "", "digests": { "md5": "e43ecaae7e4dca6b6a3d4ac4a2c09df2", "sha256": "f9c7592eb88f27fb9350b3d2578b41102a5a8910f6a7b8c22674aa18bb6e0b30" }, "downloads": -1, "filename": "riko-0.45.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "e43ecaae7e4dca6b6a3d4ac4a2c09df2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 696869, "upload_time": "2017-04-04T12:54:18", "url": "https://files.pythonhosted.org/packages/bd/12/156f6b638f4cc1ee73528d45b09f7e4319d107a87640284e01ab22b11c08/riko-0.45.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "618a995cd411e046a2440aae160ffe74", "sha256": "34b7066d0a035a8c2e65b477c350b25a5efffd9855f9f47c60fb589fc037e9ce" }, "downloads": -1, "filename": "riko-0.45.1.tar.gz", "has_sig": true, "md5_digest": "618a995cd411e046a2440aae160ffe74", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 649227, "upload_time": "2017-04-04T12:54:25", "url": "https://files.pythonhosted.org/packages/88/44/7db9a2f0504c1c9a44cc1990e618fc513f055472f8bd0b6b7d35b84dd074/riko-0.45.1.tar.gz" } ], "0.46.0": [ { "comment_text": "", "digests": { "md5": "5eb1a264a84b1c7a9c05970dcfc5f6bb", "sha256": "c4c6a058f143bb2cbb0538c65c5686da483b55d4f034a0e58e2b933d61b3e88c" }, "downloads": -1, "filename": "riko-0.46.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "5eb1a264a84b1c7a9c05970dcfc5f6bb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 696879, "upload_time": "2017-04-04T12:53:52", "url": "https://files.pythonhosted.org/packages/76/12/18aea25391d3526a13fe9fc81d54eb14e141161b6bd3cf25a5df1bb399e3/riko-0.46.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "273c88ebd4cb2acddec73130a2935cd6", "sha256": "89d9a0b47efc82548de5842e6783608bdfd1c074ea0db10acfa5476c57bde2cd" }, "downloads": -1, "filename": "riko-0.46.0.tar.gz", "has_sig": true, "md5_digest": "273c88ebd4cb2acddec73130a2935cd6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 649247, "upload_time": "2017-04-04T12:53:57", "url": "https://files.pythonhosted.org/packages/74/87/fc3bf2ca597440b533e22a17538d0fa8efc6af3235bbc3195758cb14ca7b/riko-0.46.0.tar.gz" } ], "0.46.1": [ { "comment_text": "", "digests": { "md5": "214b4b6bf3aac603c030a0e948e8182d", "sha256": "a15f00274bc37d719e3c78a74cb0b556f8e653d52067037c884a4ab114d44897" }, "downloads": -1, "filename": "riko-0.46.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "214b4b6bf3aac603c030a0e948e8182d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 696872, "upload_time": "2017-04-04T13:24:18", "url": "https://files.pythonhosted.org/packages/55/9f/9b735742879ae6269c024f9029c39505bdf8cb1c0897c5ef9fdf4f52b2ba/riko-0.46.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9006ab7b34ea2d3056ccd108784cd62d", "sha256": "0e27f1c8aa4441c6727abe47d7f268c14781082a7ec45926bf2eff6c44ad1563" }, "downloads": -1, "filename": "riko-0.46.1.tar.gz", "has_sig": true, "md5_digest": "9006ab7b34ea2d3056ccd108784cd62d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 649214, "upload_time": "2017-04-04T13:24:25", "url": "https://files.pythonhosted.org/packages/de/9d/702026cf7fe1b771929613f09626c81a1499025ec803e1e0b5ea7aa68717/riko-0.46.1.tar.gz" } ], "0.47.0": [ { "comment_text": "", "digests": { "md5": "fc7330d61c7a9c27d636815e6491e9ce", "sha256": "1d00f216c01e94fca3e4ac00e2e0dde82f4e50ef5f9eaadf4be4f14a4fa9e7bd" }, "downloads": -1, "filename": "riko-0.47.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "fc7330d61c7a9c27d636815e6491e9ce", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 696894, "upload_time": "2017-04-04T14:11:43", "url": "https://files.pythonhosted.org/packages/dc/e2/e4b5e0e3239b5100b1f0ff35fe36c628f09eb465216d8b88b130b60cd4e0/riko-0.47.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "190a05d0cec0e5d0fb22ebf88ef39c75", "sha256": "9728ae381a72a684eaab490f73ce01690511bbcfa544c8f1c47c63973a7f9019" }, "downloads": -1, "filename": "riko-0.47.0.tar.gz", "has_sig": true, "md5_digest": "190a05d0cec0e5d0fb22ebf88ef39c75", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 649264, "upload_time": "2017-04-04T14:11:50", "url": "https://files.pythonhosted.org/packages/b0/4a/7d6e616956dc273dc63fb0d59c95f21e2036c721e49fa67e54e72e997203/riko-0.47.0.tar.gz" } ], "0.49.2": [ { "comment_text": "", "digests": { "md5": "5b6aeb55ab615b772a3b4d7b7585da51", "sha256": "0e1afa39054171097c2c87f7b0f9699c5ae8b48ba6f776bab56799e6f61ade88" }, "downloads": -1, "filename": "riko-0.49.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "5b6aeb55ab615b772a3b4d7b7585da51", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 698245, "upload_time": "2017-04-12T09:13:13", "url": "https://files.pythonhosted.org/packages/40/1a/45de644f366ea267a4a168c03cf628a4b248acd65480e931a09488fcd255/riko-0.49.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "299f15b2390a25d12977b079380e1601", "sha256": "9278169228491349ac84a3e9b228a246643690731f8ddbbb1abd853620045de4" }, "downloads": -1, "filename": "riko-0.49.2.tar.gz", "has_sig": true, "md5_digest": "299f15b2390a25d12977b079380e1601", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 650176, "upload_time": "2017-04-12T09:13:20", "url": "https://files.pythonhosted.org/packages/39/3d/fe6a4b2262e4fd81c2a231cd588445a48614ef48dc852c49d33822f92fcf/riko-0.49.2.tar.gz" } ], "0.50.0": [ { "comment_text": "", "digests": { "md5": "3a9cbb0de0c0d6aa05ec1c3309f86223", "sha256": "0a52b4a474b1f19a8ef41abd9e9a8bf62f7bbb172350b0c7d029584211a3d308" }, "downloads": -1, "filename": "riko-0.50.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "3a9cbb0de0c0d6aa05ec1c3309f86223", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 700111, "upload_time": "2017-04-12T19:29:38", "url": "https://files.pythonhosted.org/packages/5c/26/d464a37d3ff7acd417c732ba8efbac23084452be9da7761371db34d8462e/riko-0.50.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "231029a2b1ebce144c37ab6d2039845a", "sha256": "94c6a91f08036be81d4df6a6da0ca651cb6869043ebe370f02dec2e32001b737" }, "downloads": -1, "filename": "riko-0.50.0.tar.gz", "has_sig": true, "md5_digest": "231029a2b1ebce144c37ab6d2039845a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 651098, "upload_time": "2017-04-12T19:30:19", "url": "https://files.pythonhosted.org/packages/af/18/4341a1af21a36384e1fe9d1763721d44767c11661d7add06b9fb1d94e015/riko-0.50.0.tar.gz" } ], "0.51.0": [ { "comment_text": "", "digests": { "md5": "d240ccf406bdd5a0ed147fae35a85b3b", "sha256": "5e64e53caaa1dd64c74f48a63ea99dfa9d20845e90fe8089db5a9019f278c796" }, "downloads": -1, "filename": "riko-0.51.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "d240ccf406bdd5a0ed147fae35a85b3b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 700283, "upload_time": "2017-05-01T16:26:25", "url": "https://files.pythonhosted.org/packages/de/ec/ea536852c2ceed9fac5d8e840f32bd3d07227784467c354e5387b0ee99e8/riko-0.51.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cd4d558d6cb5d805bcc8c14c99139507", "sha256": "9de5ddcc036d05908af0e397d21c2ddb71362553a0e28a2196cbf3a595973735" }, "downloads": -1, "filename": "riko-0.51.0.tar.gz", "has_sig": true, "md5_digest": "cd4d558d6cb5d805bcc8c14c99139507", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 651289, "upload_time": "2017-05-01T16:27:13", "url": "https://files.pythonhosted.org/packages/85/5a/82f4245c6542d18b8a9e4adcb216001c41b3db6347c534abc7a5cc18a697/riko-0.51.0.tar.gz" } ], "0.52.1": [ { "comment_text": "", "digests": { "md5": "8d8df32fbcebb6def6ff4caf6a52acec", "sha256": "7bcbaf58d025edac7d957c55d678fb2e4531ffc52f45a2430e7d17614499e3b9" }, "downloads": -1, "filename": "riko-0.52.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "8d8df32fbcebb6def6ff4caf6a52acec", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 701470, "upload_time": "2017-08-09T08:19:11", "url": "https://files.pythonhosted.org/packages/83/40/44f1f7cd6e1068f9fcbde915ae9e8339a271fee487733269f1ffb66b5afb/riko-0.52.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "065665452f04f90cc3853c7b45041d3b", "sha256": "2d62fbc35d95adff3094a58998af7de19d10b088d4ae38ee8d4fb39a1f5bca81" }, "downloads": -1, "filename": "riko-0.52.1.tar.gz", "has_sig": true, "md5_digest": "065665452f04f90cc3853c7b45041d3b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 651088, "upload_time": "2017-08-09T08:19:34", "url": "https://files.pythonhosted.org/packages/61/c4/d6d8e94b34e741fd17631ba748dc7df7ef5a973eed4a0a558a9838c78c8c/riko-0.52.1.tar.gz" } ], "0.52.2": [ { "comment_text": "", "digests": { "md5": "db345e4da8c38238d724901f3f3a5f2d", "sha256": "5bd02539b22313458a5e2508dea69caf58091a61af9a2e9cb38f86c1f5026087" }, "downloads": -1, "filename": "riko-0.52.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "db345e4da8c38238d724901f3f3a5f2d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 701596, "upload_time": "2017-08-11T15:41:05", "url": "https://files.pythonhosted.org/packages/1e/7d/f2af5b5a2e5fb423c61cd6bb9a9e9adec0f0c6bafbda9d38dace2a4fc5e9/riko-0.52.2-py2.py3-none-any.whl" } ], "0.52.3": [ { "comment_text": "", "digests": { "md5": "9fd77e18bd095cb2f3a4409e37c6237e", "sha256": "ff396acb9c731731defd5ff87a30cf17706e470240fc5fc2c0599a2dcdb971e7" }, "downloads": -1, "filename": "riko-0.52.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "9fd77e18bd095cb2f3a4409e37c6237e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 701607, "upload_time": "2017-08-12T06:53:27", "url": "https://files.pythonhosted.org/packages/d9/08/2a775fc5cdf817ef3776dabd81874497a9a3d1f99e392d1a05f5af89428a/riko-0.52.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "728e44cb2f26dc650a5e1d986d90ed26", "sha256": "fdff46f46ae6da0eec8b6e480df4ae215bd3d998cafe1bd26ae383e692bdc545" }, "downloads": -1, "filename": "riko-0.52.3.tar.gz", "has_sig": true, "md5_digest": "728e44cb2f26dc650a5e1d986d90ed26", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 651298, "upload_time": "2017-08-12T06:53:37", "url": "https://files.pythonhosted.org/packages/34/b9/a7cb9c1f8cccd332ca02e28d91778f14481e3174f07dfbeb649ca7f6e6d5/riko-0.52.3.tar.gz" } ], "0.53.0": [ { "comment_text": "", "digests": { "md5": "5669266282eb24d17f91156c2b751b98", "sha256": "5c30af262707fe86ebc879f22c3fd6922055fd89699ca0051f6c55146a9a3f25" }, "downloads": -1, "filename": "riko-0.53.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "5669266282eb24d17f91156c2b751b98", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 701133, "upload_time": "2017-08-16T13:54:16", "url": "https://files.pythonhosted.org/packages/64/e3/b3399c81e964f412190808b80dfc8e001a4e77f41551702318cca7e12181/riko-0.53.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "087a112dce3875a28642b6bb6f360a56", "sha256": "64c09f0be5ca31ecfcf033582db6c7b16b0df49836049a25f9b4786148577762" }, "downloads": -1, "filename": "riko-0.53.0.tar.gz", "has_sig": true, "md5_digest": "087a112dce3875a28642b6bb6f360a56", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 650753, "upload_time": "2017-08-16T13:54:29", "url": "https://files.pythonhosted.org/packages/d7/0e/1ed8044f82837dec2c852c222e3fa979e838d06e3a5e2d9d9eabff3b2aa7/riko-0.53.0.tar.gz" } ], "0.54.0": [ { "comment_text": "", "digests": { "md5": "71abffe20eb7adef413386f541d84484", "sha256": "d089cd8659e17021ff32605c86f2d9ff434141539f74492894afa069f630c807" }, "downloads": -1, "filename": "riko-0.54.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "71abffe20eb7adef413386f541d84484", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 701202, "upload_time": "2017-08-16T18:42:32", "url": "https://files.pythonhosted.org/packages/43/09/86bf9466a7a4fe08f14f4085c89550fe244cccbc0b68cf2a43045f43ec5e/riko-0.54.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9160b2a6beae3f734c4959fbd449b4dd", "sha256": "75f360afeb18782aef02b2ecf1f89e4d26e921dea129248bf6700df809f6d105" }, "downloads": -1, "filename": "riko-0.54.0.tar.gz", "has_sig": true, "md5_digest": "9160b2a6beae3f734c4959fbd449b4dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 650814, "upload_time": "2017-08-16T18:42:47", "url": "https://files.pythonhosted.org/packages/a2/a8/bdcf0d8eefaa38ad5b5fdc9f947da6b28ea8dfe9ec06aa239b5389b86c86/riko-0.54.0.tar.gz" } ], "0.54.1": [ { "comment_text": "", "digests": { "md5": "5c01df41bec43481798c776ba7d1939a", "sha256": "39bb43f847e5a36360c56c9a8dcaaafae4691b3d7e3094001b45b136ca4f516e" }, "downloads": -1, "filename": "riko-0.54.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "5c01df41bec43481798c776ba7d1939a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 701191, "upload_time": "2017-08-17T07:48:46", "url": "https://files.pythonhosted.org/packages/60/07/bbb8046130617dba9f9e056f5d975ac2f248bf79d6cc3ad5eadd503e7781/riko-0.54.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "799f958fb27cd775d822db1ba795446d", "sha256": "beaf5e16f65362939862cf77eb60ef946814683fb585bdfd6d6c4c5948a1bec2" }, "downloads": -1, "filename": "riko-0.54.1.tar.gz", "has_sig": true, "md5_digest": "799f958fb27cd775d822db1ba795446d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 650677, "upload_time": "2017-08-17T07:49:18", "url": "https://files.pythonhosted.org/packages/05/cb/09ed9b202cec28fd063e171f291a794ddbc3e232741a92f98d77288875f7/riko-0.54.1.tar.gz" } ], "0.55.0": [ { "comment_text": "", "digests": { "md5": "c98c8ca352eba2cd0de7f425fc94acf5", "sha256": "383cb51f1241ccf3e28878284b9fecb81c22525df161155e78fbaf84f00e1f4a" }, "downloads": -1, "filename": "riko-0.55.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "c98c8ca352eba2cd0de7f425fc94acf5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 701535, "upload_time": "2017-08-17T12:04:27", "url": "https://files.pythonhosted.org/packages/08/81/1bb5c7e734393bdb24cea215644ca70598b78618a53fa22cf2a3f2490ce3/riko-0.55.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ed26a6852065dde559ed620e09486139", "sha256": "8fdeeba7fb613357a7ab08582413ef0b684eedc202e5a8836aeb71078e65e57a" }, "downloads": -1, "filename": "riko-0.55.0.tar.gz", "has_sig": true, "md5_digest": "ed26a6852065dde559ed620e09486139", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 651341, "upload_time": "2017-08-17T12:04:40", "url": "https://files.pythonhosted.org/packages/d1/98/b565f4eb2f970fd1e17f0a343340310b7d994192df043e4bb400adff7748/riko-0.55.0.tar.gz" } ], "0.56.0": [ { "comment_text": "", "digests": { "md5": "2d6d6e836f46032fa6571d82bb8044ea", "sha256": "ec054ed7cd31519d7f8f8f6d1d45c44239f4684be2077c1a5f02058cbfc6aca6" }, "downloads": -1, "filename": "riko-0.56.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "2d6d6e836f46032fa6571d82bb8044ea", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 701546, "upload_time": "2017-08-17T19:53:19", "url": "https://files.pythonhosted.org/packages/e8/b7/7e823011424d9f9fc7ac0287508b66c095d5f11f931295aa53c0f35f7a38/riko-0.56.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "512d86cbf30bbba43978d6b087aeb6f0", "sha256": "8800cd4c2c619007781f5b96ce3cd8929ff323f8bc7be5a109518a33c94511b5" }, "downloads": -1, "filename": "riko-0.56.0.tar.gz", "has_sig": true, "md5_digest": "512d86cbf30bbba43978d6b087aeb6f0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 651353, "upload_time": "2017-08-17T19:53:36", "url": "https://files.pythonhosted.org/packages/b5/22/a26676533c4b1af26339479e024d03fcfd09a7700179bfe7b6b2b6b511cd/riko-0.56.0.tar.gz" } ], "0.56.1": [ { "comment_text": "", "digests": { "md5": "2f686fd2e58882715c5835714ce768a4", "sha256": "6e788492e14741ac40ad8572734a05c4cef7d9dbcf8fd881bfc09b14faf0570f" }, "downloads": -1, "filename": "riko-0.56.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "2f686fd2e58882715c5835714ce768a4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 701640, "upload_time": "2017-08-17T21:42:42", "url": "https://files.pythonhosted.org/packages/f9/99/116f12d2a101c5920951e14c6dc6055dc2b08d040eb2d42de4e52f97eff8/riko-0.56.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0994c4658fc850fa56656cd22af5dceb", "sha256": "78780548f425129fb158e33ed9cae04ada482bdfc77a8634c96d5d75227cc5d0" }, "downloads": -1, "filename": "riko-0.56.1.tar.gz", "has_sig": true, "md5_digest": "0994c4658fc850fa56656cd22af5dceb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 651491, "upload_time": "2017-08-17T21:42:56", "url": "https://files.pythonhosted.org/packages/3e/ed/f8e46fce2503706c93c89a61c7ab10e5a710cad1b7778407495188701523/riko-0.56.1.tar.gz" } ], "0.56.2": [ { "comment_text": "", "digests": { "md5": "452b79143d2ed834fcb3aa25b8b8044b", "sha256": "f559873172c7d29b2471ff47431b885555b3c5e045341e3724c62b65d98c7c00" }, "downloads": -1, "filename": "riko-0.56.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "452b79143d2ed834fcb3aa25b8b8044b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 701637, "upload_time": "2017-08-17T23:47:21", "url": "https://files.pythonhosted.org/packages/b2/47/b4e8775c2d659793e4d3cc8affe8943ac4181b7e9c7a200dee7b9fd23c9e/riko-0.56.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "247e5f2b0858f62e8ce0fde4d2e2ce2f", "sha256": "c0478e914a9ed35f6b40f70798ccfc5daa52dd69e4448c21f57d789ffd8abd63" }, "downloads": -1, "filename": "riko-0.56.2.tar.gz", "has_sig": true, "md5_digest": "247e5f2b0858f62e8ce0fde4d2e2ce2f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 651485, "upload_time": "2017-08-17T23:50:27", "url": "https://files.pythonhosted.org/packages/94/0c/84b321831670dac40b746a46bf1fae23ffd55ed29031166c105cb9ef8a1b/riko-0.56.2.tar.gz" } ], "0.56.3": [ { "comment_text": "", "digests": { "md5": "e5acdd122853df5ec589927bbc30187c", "sha256": "f49662f7a246eccfe9c4a1180f29591e39c8a47d5bc23cb5b2970434284695a1" }, "downloads": -1, "filename": "riko-0.56.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "e5acdd122853df5ec589927bbc30187c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 701639, "upload_time": "2017-08-18T00:08:54", "url": "https://files.pythonhosted.org/packages/24/2c/d4bb34408996a62708a5496a62ae292f1e57a8ed60cef21de1cf49b7ab72/riko-0.56.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "60a549b3a32a60c64f8145146ea5f331", "sha256": "cf6bbf5d3fbcd7d4e9ed98a82cbdfacdf1b0168ba4af41da973a7fdc2ca5167a" }, "downloads": -1, "filename": "riko-0.56.3.tar.gz", "has_sig": true, "md5_digest": "60a549b3a32a60c64f8145146ea5f331", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 651513, "upload_time": "2017-08-18T00:09:04", "url": "https://files.pythonhosted.org/packages/60/81/e74f9d53b88fb061e8ad80eb19bb24b4736ea4a5dfda9fc2e6a9c4a5db04/riko-0.56.3.tar.gz" } ], "0.57.0": [ { "comment_text": "", "digests": { "md5": "50325ffdf34bd78000c15b48b9f09655", "sha256": "f1ae0c4047492cdb7a48ec3f4bd8a8bce54fb3626789c050119b63d2e401175e" }, "downloads": -1, "filename": "riko-0.57.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "50325ffdf34bd78000c15b48b9f09655", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 700768, "upload_time": "2017-08-31T15:54:26", "url": "https://files.pythonhosted.org/packages/ab/59/1b29ed56d75506899c604a3645db506dd02a9d9f2da1bae7c64b9794fe07/riko-0.57.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "76581b0dc95fb7ea45d4ef28d1b9c78a", "sha256": "6d38b467ebd8eeb59a9bc687c959c4edd2deb86ee60d39f65fd3dad03fa802f9" }, "downloads": -1, "filename": "riko-0.57.0.tar.gz", "has_sig": true, "md5_digest": "76581b0dc95fb7ea45d4ef28d1b9c78a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 650632, "upload_time": "2017-08-31T15:54:38", "url": "https://files.pythonhosted.org/packages/b4/b2/8e150c20183deda6cd80bd384bd1ca760ae60f540f4dab80d2eedaf610ea/riko-0.57.0.tar.gz" } ], "0.58.0": [ { "comment_text": "", "digests": { "md5": "724c4d9293a922e5190e27be0721de24", "sha256": "40f0c324f2babb0e6f6f448563fc40fb57ae1306662540da3a0b62ca71dab697" }, "downloads": -1, "filename": "riko-0.58.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "724c4d9293a922e5190e27be0721de24", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 690620, "upload_time": "2018-05-18T15:02:11", "url": "https://files.pythonhosted.org/packages/d8/b2/5196ed00d6b17e389a207386e3d3e3f205299aeabe2e0e7a77c4fd92e853/riko-0.58.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7ae9d46c57864796fa10771f9f7605c6", "sha256": "e97ffaf90163583cffde43e7537e49a1b03993f844169b42b3e22a3b369e8e03" }, "downloads": -1, "filename": "riko-0.58.0.tar.gz", "has_sig": true, "md5_digest": "7ae9d46c57864796fa10771f9f7605c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 653460, "upload_time": "2018-05-18T15:02:13", "url": "https://files.pythonhosted.org/packages/f4/89/414797edc3d7fb96e5f0cb5acb8ad5bf470312ea048f7e8ae23495c8e0a8/riko-0.58.0.tar.gz" } ], "0.59.0": [ { "comment_text": "", "digests": { "md5": "7a5ab8a713dcae8d1207b971e0490843", "sha256": "5ad9f8835e9fdaf19bfb1d05946d2372edbb350090cb5fee04ec293f98c4e7b5" }, "downloads": -1, "filename": "riko-0.59.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "7a5ab8a713dcae8d1207b971e0490843", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 690666, "upload_time": "2018-05-18T19:43:44", "url": "https://files.pythonhosted.org/packages/f0/2e/b3ba9b3bd7eb61a29601f14a1e35646938152a30ea7128252d088b37af38/riko-0.59.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e3320992e81a061ec9cac0120d627d52", "sha256": "ab6e2895806c74443e955041d3fef9b185687143f3a483d1f15ae8c3b21895ae" }, "downloads": -1, "filename": "riko-0.59.0.tar.gz", "has_sig": true, "md5_digest": "e3320992e81a061ec9cac0120d627d52", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 653540, "upload_time": "2018-05-18T19:43:47", "url": "https://files.pythonhosted.org/packages/8f/f3/46db4c9f5b9f5bfcd24d1332841ad6e055c0a8e783dc29f2e8ee53af67f0/riko-0.59.0.tar.gz" } ], "0.59.1": [ { "comment_text": "", "digests": { "md5": "0453e6e73bb3096bfa2020174c526739", "sha256": "a89e2223d84dbb312fc7e9d3c33e0da549ee56fc948e5f400859857aaecde1f2" }, "downloads": -1, "filename": "riko-0.59.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "0453e6e73bb3096bfa2020174c526739", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 690773, "upload_time": "2018-05-18T21:12:02", "url": "https://files.pythonhosted.org/packages/26/82/c149a6938a66ed4e4d916f4ae7f88d0300cb580a020b219787140fea79f1/riko-0.59.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "668d65038ed129478159c5c5a8ae9783", "sha256": "c47dcba44741dac5123fd73f859fa4dfc089d8440437d8503b9c6c18b91e0158" }, "downloads": -1, "filename": "riko-0.59.1.tar.gz", "has_sig": true, "md5_digest": "668d65038ed129478159c5c5a8ae9783", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 653643, "upload_time": "2018-05-18T21:12:05", "url": "https://files.pythonhosted.org/packages/a2/7a/8934d6c45ff921556185af2ef737089beecbf1f444aa0fd1110e44181108/riko-0.59.1.tar.gz" } ], "0.60.0": [ { "comment_text": "", "digests": { "md5": "5ad67b868c6201448808c92e3e1536b9", "sha256": "6ee577aa7e8c783a01a993733ee01bbb2d4a96609c45ceec4496e0225b3c1b77" }, "downloads": -1, "filename": "riko-0.60.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "5ad67b868c6201448808c92e3e1536b9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 690856, "upload_time": "2018-05-23T18:06:54", "url": "https://files.pythonhosted.org/packages/67/16/21b9b361ac0e355f11c1127c1b76970f839f4174cb0ee48592dfc50b1a3f/riko-0.60.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d57dc316e9a6cdffc05896b50f02be7c", "sha256": "fe688616b5ec4b79740b3ac79884570e010a39db6234082e0783c4c99141bf11" }, "downloads": -1, "filename": "riko-0.60.0.tar.gz", "has_sig": true, "md5_digest": "d57dc316e9a6cdffc05896b50f02be7c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 653739, "upload_time": "2018-05-23T18:06:57", "url": "https://files.pythonhosted.org/packages/12/c7/9fa0546db8bcfe5e9666c1300af2a0102e719612f98a1f46bd56ad4ffe15/riko-0.60.0.tar.gz" } ], "0.60.1": [ { "comment_text": "", "digests": { "md5": "704c42be4ecafa022c2f30d419893c4c", "sha256": "50ac0d2fd13ada687ed34c9e7932d47c70bc7a132298b6ca56ecb260931f1988" }, "downloads": -1, "filename": "riko-0.60.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "704c42be4ecafa022c2f30d419893c4c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 690952, "upload_time": "2018-08-18T19:37:03", "url": "https://files.pythonhosted.org/packages/3e/e5/c11772ac9feb870b3af24822912d7b6686f4a96d45b4ac84ae3bbf30641b/riko-0.60.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fb89d4b962d67a0a3effc760802a976a", "sha256": "4e2b11534b007b42dc79bb3971a0a164b78c15c7daf54713109f91376d6f9089" }, "downloads": -1, "filename": "riko-0.60.1.tar.gz", "has_sig": true, "md5_digest": "fb89d4b962d67a0a3effc760802a976a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 653817, "upload_time": "2018-08-18T19:37:06", "url": "https://files.pythonhosted.org/packages/7a/91/04214c4adc449d06148608b9c73513b931cc5ea966bb6812cd1737ec83c3/riko-0.60.1.tar.gz" } ], "0.60.2": [ { "comment_text": "", "digests": { "md5": "006f3929e7a7504b1125d3070780af27", "sha256": "d4d0e944ac801a8b5c8c5ccb1e0d20361d3caee652bdae00528899320122fb36" }, "downloads": -1, "filename": "riko-0.60.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "006f3929e7a7504b1125d3070780af27", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 689283, "upload_time": "2018-08-18T23:29:31", "url": "https://files.pythonhosted.org/packages/99/a4/d97b1ff3286b0b9d83b87a4cf087df5aabb49b2aacc8f1671ca5f59831c7/riko-0.60.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c1aa12a8a2635f9be67bad00900eaf03", "sha256": "34d352f3263ff2b270307b1ab9ef272888b95122a3a3372eff28c9a5fccc970f" }, "downloads": -1, "filename": "riko-0.60.2.tar.gz", "has_sig": true, "md5_digest": "c1aa12a8a2635f9be67bad00900eaf03", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 651877, "upload_time": "2018-08-18T23:29:33", "url": "https://files.pythonhosted.org/packages/16/06/124a6e3b135264890e350e27fb5f68c51b289336c79be7eb4b16af9c5f4a/riko-0.60.2.tar.gz" } ], "0.60.3": [ { "comment_text": "", "digests": { "md5": "b513e58afacfeb7843da94221e58a352", "sha256": "c08674f0cb43d5233a0112fa0883fe40e182ff395e2e85f002b2971036b91fde" }, "downloads": -1, "filename": "riko-0.60.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "b513e58afacfeb7843da94221e58a352", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 689325, "upload_time": "2018-09-12T23:08:02", "url": "https://files.pythonhosted.org/packages/de/e9/8d5233d31dc80c0ed7ded27016ad2af3909522eacf4f69a2a38258c978a2/riko-0.60.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "439a31aa7dc7ff230674224fe0c25123", "sha256": "162222beb80cddcc5aad4e3d65b540df61b371c108d27e5fc7b33aaa333871c9" }, "downloads": -1, "filename": "riko-0.60.3.tar.gz", "has_sig": true, "md5_digest": "439a31aa7dc7ff230674224fe0c25123", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 651811, "upload_time": "2018-09-12T23:08:06", "url": "https://files.pythonhosted.org/packages/57/1f/954ea8b45c5848cc10cdab35ef0470be88b579bf2baaee23e2ab8fb4ca15/riko-0.60.3.tar.gz" } ], "0.60.4": [ { "comment_text": "", "digests": { "md5": "61560a87c6333df9836bf94c5bff298d", "sha256": "781fabd848f714ef7c14706eed99de465b1d6da5a428723ee3c85f6aec653bef" }, "downloads": -1, "filename": "riko-0.60.4-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "61560a87c6333df9836bf94c5bff298d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 689320, "upload_time": "2018-09-13T16:28:06", "url": "https://files.pythonhosted.org/packages/fe/44/608949b7dd223103aeb59e7a8d0e3e67249184c7856411e7723c95adcf2c/riko-0.60.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7a58bde44abf8b41a85f17616891a915", "sha256": "5aba48c2add7c14581f67719642e78842c60a44d064bcce4daecc45181be6a9b" }, "downloads": -1, "filename": "riko-0.60.4.tar.gz", "has_sig": true, "md5_digest": "7a58bde44abf8b41a85f17616891a915", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 651843, "upload_time": "2018-09-13T16:28:09", "url": "https://files.pythonhosted.org/packages/53/42/0cc4332cd229d357321f2db35d317641097cf23fb2e768a79d589b42c10a/riko-0.60.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "61560a87c6333df9836bf94c5bff298d", "sha256": "781fabd848f714ef7c14706eed99de465b1d6da5a428723ee3c85f6aec653bef" }, "downloads": -1, "filename": "riko-0.60.4-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "61560a87c6333df9836bf94c5bff298d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 689320, "upload_time": "2018-09-13T16:28:06", "url": "https://files.pythonhosted.org/packages/fe/44/608949b7dd223103aeb59e7a8d0e3e67249184c7856411e7723c95adcf2c/riko-0.60.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7a58bde44abf8b41a85f17616891a915", "sha256": "5aba48c2add7c14581f67719642e78842c60a44d064bcce4daecc45181be6a9b" }, "downloads": -1, "filename": "riko-0.60.4.tar.gz", "has_sig": true, "md5_digest": "7a58bde44abf8b41a85f17616891a915", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 651843, "upload_time": "2018-09-13T16:28:09", "url": "https://files.pythonhosted.org/packages/53/42/0cc4332cd229d357321f2db35d317641097cf23fb2e768a79d589b42c10a/riko-0.60.4.tar.gz" } ] }