{ "info": { "author": "Yasushi Itoh", "author_email": "UNKNOWN", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Code Generators", "Topic :: Software Development :: Compilers" ], "description": "Mochi\n=====\n\nMochi is a dynamically typed programming language for functional\nprogramming and actor-style programming.\n\nIts interpreter is written in Python3. The interpreter translates a\nprogram written in Mochi to Python3's AST / bytecode.\n\nFeatures\n--------\n\n- Python-like syntax\n- Tail recursion optimization (self tail recursion only), and no loop\n syntax\n- Re-assignments are not allowed in function definition.\n- Basic collection type is a persistent data structure. (using\n Pyrsistent)\n- Pattern matching / Data types, like algebraic data types\n- Pipeline operator\n- Syntax sugar of anonymous function definition\n- Actor, like the actor of Erlang (using Eventlet)\n- Macro, like the traditional macro of Lisp\n- Builtin functions includes functions exported by itertools module,\n recipes, functools module and operator module\n\nExamples\n--------\n\nFactorial\n~~~~~~~~~\n\n.. code:: python\n\n def factorial(n, m):\n if n == 1:\n m\n else:\n factorial(n - 1, n * m)\n\n\n factorial(10000, 1)\n # => 28462596809170545189064132121198688...\n\n # Or\n\n def factorial:\n n: factorial(n, 1)\n 0, acc: acc\n n, acc: factorial(n - 1, acc * n)\n \n factorial(10000)\n # => 28462596809170545189064132121198688...\n\nFizzBuzz\n~~~~~~~~\n\n.. code:: python\n\n def fizzbuzz(n):\n match [n % 3, n % 5]:\n [0, 0]: \"fizzbuzz\"\n [0, _]: \"fizz\"\n [_, 0]: \"buzz\"\n _: n\n\n range(1, 31)\n |> map(fizzbuzz)\n |> pvector()\n |> print()\n\nActor\n~~~~~\n\n.. code:: python\n\n def show():\n receive:\n message:\n print(message)\n show()\n\n actor = spawn(show)\n\n send('foo', actor)\n actor ! 'bar' # send('bar', actor)\n\n sleep(1)\n # -> foo\n # -> bar\n\n\n 'foo' !> spawn(show)\n\n sleep(1)\n # -> foo\n\n ['foo', 'bar'] !&> spawn(show)\n # The meaning of the above is the same as the meaning of the following.\n # spawn(show) ! 'foo'\n # spawn(show) ! 'bar'\n\n sleep(1)\n # -> foo\n # -> bar\n\n def show_loop():\n receive:\n [tag, value]:\n print(tag, value)\n show_loop()\n\n actor2 = spawn(show_loop)\n\n actor2 ! [\"bar\", 2000]\n sleep(1)\n # -> bar 2000\n\n ['foo', 1000] !> spawn(show_loop)\n sleep(1)\n # -> foo 1000\n\n [['foo', 1000],['bar', 2000]] !&> spawn(show_loop)\n sleep(1)\n # -> foo 1000\n # -> bar 2000\n\n\nDistributed Computing\n~~~~~~~~~~~~~~~~~~~~~\n.. code:: python\n\n # comsumer.mochi\n from mochi.actor.mailbox import KombuMailbox, ZmqInbox, SQSMailbox\n\n def consumer():\n receive:\n 'exit':\n print('exit!')\n other:\n print(other)\n consumer()\n\n kombu_mailbox = KombuMailbox('sqs://@:80//',\n '',\n dict(region=''))\n spawn_with_mailbox(consumer, kombu_mailbox)\n\n zmq_mailbox = ZmqInbox('tcp://*:9999')\n spawn_with_mailbox(consumer, zmq_mailbox)\n\n sqs_mailbox = SQSMailbox('')\n spawn_with_mailbox(consumer, sqs_mailbox)\n\n wait_all()\n\n\n.. code:: python\n\n # producer.mochi\n from mochi.actor.mailbox import KombuMailbox, ZmqOutbox, SQSMailbox\n\n kombu_mailbox = KombuMailbox('sqs://@:80//',\n '',\n dict(region=''))\n kombu_mailbox ! [1, 2, 3]\n kombu_mailbox ! 'exit'\n\n zmq_mailbox = ZmqOutbox('tcp://localhost:9999')\n zmq_mailbox ! [4, 5, 6]\n zmq_mailbox ! 'exit'\n\n sqs_mailbox = SQSMailbox('')\n sqs_mailbox ! [7, 8, 9]\n sqs_mailbox ! 'exit'\n\n\nFlask\n~~~~~\n\n.. code:: python\n\n from flask import Flask\n\n app = Flask('demo')\n\n @app.route('/')\n def hello():\n 'Hello World!'\n\n app.run()\n\nRxPY\n~~~~\n\n.. code:: python\n\n # usage: mochi -no-mp timer.mochi\n # original:\n # https://github.com/ReactiveX/RxPY/blob/master/examples/parallel/timer.py\n\n import rx\n import concurrent.futures\n import time\n\n seconds = [5, 1, 2, 4, 3]\n\n\n def sleep(t):\n time.sleep(t)\n return t\n\n\n def output(result):\n print('%d seconds' % result)\n\n\n with concurrent.futures.ProcessPoolExecutor(5) as executor:\n rx.Observable.from_(seconds)\n .flat_map((s) -> executor.submit(sleep, s))\n .subscribe(output)\n\n # 1 seconds\n # 2 seconds\n # 3 seconds\n # 4 seconds\n # 5 seconds\n\naif (Anaphoric macro)\n~~~~~~~~~~~~~~~~~~~~~\n\n.. code:: python\n\n macro aif(test, true_expr, false_expr):\n quasi_quote:\n it = unquote(test)\n if it:\n unquote(true_expr)\n else:\n unquote(false_expr)\n\n aif([], first(it), \"empty\")\n # => \"empty\"\n aif([10, 20], first(it), \"empty\")\n # => 10\n\nRequirements\n------------\n\n- CPython >= 3.2 or PyPy >= 3.2.1\n- rply >= 0.7.2\n- pyrsistent >= 0.10.1\n- pathlib >= 1.0.1\n- eventlet >= 0.17.1\n- msgpack-python >= 0.4.6\n- typeannotations >= 0.1.0\n\nInstallation\n------------\n\n.. code:: sh\n\n $ pip3 install mochi\n $ pip3 install flask Flask-RESTful Pillow RxPY # to run the examples\n\n\nOptional Installation\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code:: sh\n\n $ pip3 install flask Flask-RESTful Pillow RxPY # to run the examples\n $ pip3 install pyzmq # to use ZmqInbox and ZmqOutbox\n $ pip3 install kombu # to use KombuMailbox\n $ pip3 install boto # to use SQS as transport of KombuMailbox\n $ pip3 install boto3 # to use SQSMailbox\n\nTh error of the following may occur when you run Mochi on PyPy.\n\n..\n\n ImportError: Importing zmq.backend.cffi failed with version mismatch, 0.8.2 != 0.9.2\n\nIn this case, please change the version of cffi to 0.8.2 using pip on PyPy.\n\n.. code:: sh\n\n $ pip3 uninstall cffi\n $ pip3 install cffi==0.8.2\n\nUsage\n-----\n\nREPL\n~~~~\n\n.. code:: sh\n\n $ mochi\n >>>\n\nloading and running a file\n~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code:: sh\n\n $ cat kinako.mochi\n print('kinako')\n $ mochi kinako.mochi\n kinako\n $ mochi -no-mp kinako.mochi # not apply eventlet's monkey patching\n kinako\n\nbyte compilation\n~~~~~~~~~~~~~~~~\n\n.. code:: sh\n\n $ mochi -c kinako.mochi > kinako.mochic\n\nrunning a byte-compiled file\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code:: sh\n\n $ mochi -e kinako.mochic\n kinako\n $ mochi -e -no-mp kinako.mochic # not apply eventlet's monkey patching\n kinako\n\ngenerating .pyc\n~~~~~~~~~~~~~~~\n\n.. code:: sh\n\n $ ls\n kagami.mochi\n $ cat kagami.mochi\n print('kagami')\n $ mochi\n >>> import kagami\n kagami\n >>> exit()\n $ ls\n kagami.mochi kagami.pyc\n $ python3 kagami.pyc\n kagami\n\nOr\n\n.. code:: sh\n\n $ mochi -pyc kagami.mochi > kagami.pyc\n $ python3 kagami.pyc\n kagami\n $ mochi -pyc -no-mp kagami.mochi > kagami.pyc # not apply eventlet's monkey patching\n $ python3 kagami.pyc\n kagami\n\nExamples for each feature\n-------------------------\n\nPersistent data structures\n~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code:: python\n\n [1, 2, 3]\n # => pvector([1, 2, 3])\n\n v(1, 2, 3)\n # => pvector([1, 2, 3])\n\n vec = [1, 2, 3]\n vec2 = vec.set(0, 8)\n # => pvector([8, 2, 3]\n vec\n # => pvector([1, 2, 3])\n [x, y, z] = vec\n x # => 1\n y # => 2\n z # => 3\n\n get(vec, 0) # => 1\n get(vec, 0, 2) # => [1, 2]\n\n vec[0] # => 1\n vec[0:2] # => [1, 2]\n\n {'x': 100, 'y': 200}\n # => pmap({'y': 200, 'x': 100})\n\n ma = {'x': 100, 'y': 200}\n ma.get('x') # => 100\n ma.x # => 100\n ma['x'] # => 100\n ma2 = ma.set('x', 10000)\n # => pmap({'y': 200, 'x': 10000})\n ma # => pmap({'y': 200, 'x': 100})\n get(ma, 'y') # => 200\n ma['y'] # => 200\n\n m(x=100, y=200)\n # => pmap({'y': 200, 'x': 100})\n\n s(1, 2, 3)\n # => pset([1, 2, 3])\n\n b(1, 2, 3)\n # => pbag([1, 2, 3])\n\nFunction definitions\n~~~~~~~~~~~~~~~~~~~~\n\n.. code:: python\n\n def hoge(x):\n 'hoge' + str(x)\n\n hoge(3)\n # => hoge3\n\nPattern matching\n~~~~~~~~~~~~~~~~\n\n.. code:: python\n\n lis = [1, 2, 3]\n\n # Sequence pattern\n match lis:\n [1, 2, x]: x\n _: None\n # => 3\n\n match lis:\n [1, &rest]: rest\n _: None\n\n # => pvector([2, 3])\n\n\n foo_map = {'foo' : 'bar'}\n\n # Mapping pattern\n match foo_map:\n {'foo' : value}: value\n _: None\n # => 'bar'\n\n\n # Type pattern\n # : \n match 10:\n int x: 'int'\n float x: 'float'\n str x: 'str'\n bool x: 'bool'\n _: 'other'\n # => 'int'\n\n match [1, 2, 3]:\n [1, str x, 3]: 'str'\n [1, int x, 3]: 'int'\n _: 'other'\n # => 'int'\n\n num = union(int, float)\n vector nums[num]\n vector strs[str]\n\n match nums([1, 2, 3]):\n nums[x, y, z]: z\n strs[x, y, z]: x\n # => 3\n\n Positive = predicate(-> $1 > 0)\n Even = predicate(-> $1 % 2 == 0)\n EvenAndPositive = predicate(-> ($1 % 2 == 0) and ($1 >= 0)) \n\n match 10:\n EvenAndPositive n: str(n) + ':Even and Positive'\n Even n: str(n) + ':Even'\n Positive n: str(n) + ':Positive'\n\n # => 10:Even and Positive\n\n\n # Or pattern\n match ['foo', 100]:\n ['foo' or 'bar', value]: value\n _: 10000\n # => 100\n\n match ['foo', 100]:\n [str x or int x, value]: value\n _: 10000\n # => 100\n\n\n # Record pattern\n record Person(name, age)\n\n foo = Person('foo', 32)\n\n match foo:\n Person('bar', age):\n 'bar:' + str(age)\n Person('foo', age):\n 'foo:' + str(age)\n _: None\n # => 'foo:32'\n\nRecords\n~~~~~~~\n\n.. code:: python\n\n record Mochi\n record AnkoMochi(anko) < Mochi\n record KinakoMochi(kinako) < Mochi\n\n anko_mochi = AnkoMochi(anko=3)\n\n isinstance(anko_mochi, Mochi)\n # => True\n isinstance(anko_mochi, AnkoMochi)\n # => True\n isinstance(anko_mochi, KinakoMochi)\n # => False\n\n match anko_mochi:\n KinakoMochi(kinako): 'kinako ' * kinako + ' mochi'\n AnkoMochi(anko): 'anko ' * anko + 'mochi'\n Mochi(_): 'mochi'\n # => 'anko anko anko mochi'\n\n\n record Person(name, age):\n def show(self):\n print(self.name + ': ' + self.age)\n\n foo = Person('foo', '32')\n foo.show()\n # -> foo: 32\n\n # runtime type checking\n record Point(x:int, y:int, z:optional(int))\n Point(1, 2, None)\n # => Point(x=1, y=2, z=None)\n Point(1, 2, 3)\n # => Point(x=1, y=2, z=3)\n Point(1, None, 3)\n # => TypeError\n\nBindings\n~~~~~~~~\n\n.. code:: python\n\n x = 3000\n # => 3000\n\n [a, b] = [1, 2]\n a\n # => 1\n b\n # => 2\n\n [c, &d] = [1, 2, 3]\n c\n # => 1\n d\n # => pvector([2, 3])\n\nData types, like algebraic data types\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code:: python\n\n data Point:\n Point2D(x, y)\n Point3D(x, y, z)\n\n # The meaning of the above is the same as the meaning of the following.\n # record Point\n # record Point2D(x, y) < Point\n # record Point3D(x, y, z) < Point\n\n p1 = Point2D(x=1, y=2)\n # => Point2D(x=1, y=2)\n\n p2 = Point2D(3, 4)\n # => Point2D(x=3, y=4)\n\n p1.x\n # => 1\n\nPattern-matching function definitions\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code:: python\n\n data Point:\n Point2D(x, y)\n Point3D(x, y, z)\n\n def offset:\n Point2D(x1, y1), Point2D(x2, y2):\n Point2D(x1 + x2, y1 + y2)\n Point3D(x1, y1, z1), Point3D(x2, y2, z2):\n Point3D(x1 + x2, y1 + y2, z1 + z2)\n _: None\n\n offset(Point2D(1, 2), Point2D(3, 4))\n # => Point2D(x=4, y=6)\n offset(Point3D(1, 2, 3), Point3D(4, 5, 6))\n # => Point3D(x=5, y=7, z=9)\n\n def show:\n int x, message: print('int', x, message)\n float x, message: print('float', x, message)\n _: None\n\n show(1.0, 'msg')\n # -> float 1.0 msg\n # => None\n\n FileMode = options('r', 'w', 'a', 'r+', 'w+', 'a+')\n\n def open_file:\n str path, FileMode mode: \n open(path, mode)\n str path:\n open(path, 'r')\n\nAnonymous function\n~~~~~~~~~~~~~~~~~~\n\n.. code:: python\n\n # Arrow expression.\n add = (x, y) -> x + y\n add(1, 2)\n # => 3\n\n add = -> $1 + $2\n add(1, 2)\n # => 3\n\n foo = (x, y) ->\n if x == 0:\n y\n else:\n x\n\n foo(1, 2)\n # => 1\n\n foo(0, 2)\n # => 2\n\n pvector(map(-> $1 * 2, [1, 2, 3]))\n # => pvector([2, 4, 6])\n\nPipeline operator\n~~~~~~~~~~~~~~~~~\n\n.. code:: python\n\n add = -> $1 + $2\n 2 |> add(10) |> add(12)\n # => 24\n None |>? add(10) |>? add(12)\n # => None\n\nLazy sequences\n~~~~~~~~~~~~~~\n\n.. code:: python\n\n def fizzbuzz(n):\n match [n % 3, n % 5]:\n [0, 0]: \"fizzbuzz\"\n [0, _]: \"fizz\"\n [_, 0]: \"buzz\"\n _: n\n\n\n result = range(1, 31) |> map(fizzbuzz)\n pvector(result)\n # => pvector([1, 2, fizz, 4, 'buzz', 'fizz', 7, 8, 'fizz', 'buzz', 11, 'fizz', 13, 14, 'fizzbuzz', 16, 17, 'fizz', 19, 'buzz', 'fizz', 22, 23, 'fizz', 'buzz', 26, 'fizz', 28, 29, 'fizzbuzz'])\n pvector(result)\n # => pvector([])\n pvector(result)\n # => pvector([])\n\n\n # Iterator -> lazyseq\n lazy_result = range(1, 31) |> map(fizzbuzz) |> lazyseq()\n pvector(lazy_result)\n # => pvector([1, 2, fizz, 4, 'buzz', 'fizz', 7, 8, 'fizz', 'buzz', 11, 'fizz', 13, 14, 'fizzbuzz', 16, 17, 'fizz', 19, 'buzz', 'fizz', 22, 23, 'fizz', 'buzz', 26, 'fizz', 28, 29, 'fizzbuzz'])\n pvector(lazy_result)\n # => pvector([1, 2, fizz, 4, 'buzz', 'fizz', 7, 8, 'fizz', 'buzz', 11, 'fizz', 13, 14, 'fizzbuzz', 16, 17, 'fizz', 19, 'buzz', 'fizz', 22, 23, 'fizz', 'buzz', 26, 'fizz', 28, 29, 'fizzbuzz'])\n pvector(lazy_result)\n # => pvector([1, 2, fizz, 4, 'buzz', 'fizz', 7, 8, 'fizz', 'buzz', 11, 'fizz', 13, 14, 'fizzbuzz', 16, 17, 'fizz', 19, 'buzz', 'fizz', 22, 23, 'fizz', 'buzz', 26, 'fizz', 28, 29, 'fizzbuzz'])\n\nTrailing closures\n~~~~~~~~~~~~~~~~~\n\n.. code:: python\n\n # The following trailing closure expression is passed to a function as the function\u2019s first argument.\n result = map([1, 2, 3]) ->\n print($1)\n $1 * 2\n\n print(doall(result))\n\n # -> 1\n # -> 2\n # -> 3\n # => pvector([2, 4, 6])\n\n\n def foreach(closure, seq):\n doall(filter(closure, seq))\n\n # The following trailing closure expression is passed to a function as the function\u2019s first argument.\n foreach([1, 2, 3]) (item) ->\n new_item = item * 100\n print(new_item)\n\n # -> 100\n # -> 200\n # -> 300\n # => pvector([])\n\n # Or\n\n def foreach(seq, closure):\n doall(filter(closure, seq))\n\n # The following trailing closure expression is passed to a function as the function\u2019s final argument.\n foreach([1, 2, 3]) @ (item) ->\n new_item = item * 100\n print(new_item)\n\n # -> 100\n # -> 200\n # -> 300\n # => pvector([])\n\nShort form for keyword arguments and dict keys\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code:: python\n\n def foo(a, b, c):\n a + b + c\n \n a = 1\n b = 2\n c = 3\n\n # This is the same as foo(a=a, b=b, c=c)\n foo(=a, =b, =c))\n # => 6\n\n # This is the same as {'a': a, 'b': b}\n {=a, =b}\n # => pmap({'a': 1, 'b': 2})\n\nMacros\n~~~~~~\n\n.. code:: python\n\n macro rest_if_first_is_true(first, &args):\n match first:\n quote(True): quasi_quote(v(unquote_splicing(args)))\n _: quote(False)\n\n rest_if_first_is_true(True, 1, 2, 3)\n # => pvector([1, 2, 3])\n rest_if_first_is_true(\"foo\", 1, 2, 3)\n # => False\n\n macro pipeline(&args):\n [Symbol('|>')] + args\n\n pipeline([1, 2, 3],\n map(-> $1 * 2),\n filter(-> $1 != 2),\n pvector())\n # => pvector([4, 6])\n\nIncluding a file at compile time\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code:: sh\n\n $ cat anko.mochi\n x = 10000\n y = 20000\n\n.. code:: python\n\n require 'anko.mochi'\n x\n # => 10000\n\n x = 30000\n\n require 'anko.mochi' # include once at compile time\n x\n # => 30000\n\nModule\n~~~~~~\n\n.. code:: python\n\n module Math:\n export add, sub\n \n def add(x, y):\n x + y\n \n def sub(x, y):\n x - y\n\n Math.add(1, 2)\n # => 3\n\n.. code:: sh\n\n $ cat foobar.mochi\n foo = 'foo'\n bar = 'bar'\n\n.. code:: python\n\n require 'foobar.mochi'\n [foo, bar]\n # => pvector(['foo', 'bar'])\n\n foo = 'foofoofoo'\n\n module X:\n export foobar\n require 'foobar.mochi'\n def foobar:\n [foo, bar]\n\n X.foobar()\n # => pvector(['foo', 'bar'])\n\n [foo, bar]\n # => pvector(['foofoofoo', 'bar'])\n\nTODO\n----\n\n- Improve documentation\n- Improve parsing\n- Support type annotation\n\nLicense\n-------\n\nMIT License\n\nContributors\n------------\n\nhttps://github.com/i2y/mochi/graphs/contributors", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/i2y/mochi", "keywords": null, "license": "MIT License", "maintainer": null, "maintainer_email": null, "name": "mochi", "package_url": "https://pypi.org/project/mochi/", "platform": "any", "project_url": "https://pypi.org/project/mochi/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/i2y/mochi" }, "release_url": "https://pypi.org/project/mochi/0.2.7/", "requires_dist": null, "requires_python": null, "summary": "Dynamically typed functional programming language", "version": "0.2.7" }, "last_serial": 1733738, "releases": { "0.0.1": [ { "comment_text": "built for Darwin-13.1.0", "digests": { "md5": "34005a7284c3922c3ec2cd492f1d09b2", "sha256": "f0d2f1b1059ca30033f212b5a38c8abb154fcff188960aa93c27b5daca906b90" }, "downloads": -1, "filename": "mochi-0.0.1.macosx-10.6-intel.tar.gz", "has_sig": false, "md5_digest": "34005a7284c3922c3ec2cd492f1d09b2", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 132572, "upload_time": "2014-11-10T02:02:54", "url": "https://files.pythonhosted.org/packages/44/20/f7ec954d0b787165b4dbc82521440a42a4561d77ebb7494eea2ddbd018ea/mochi-0.0.1.macosx-10.6-intel.tar.gz" }, { "comment_text": "", "digests": { "md5": "79c11bf36218935674df3b8c052f2aec", "sha256": "b768f2602c85fb30bbd1723b17ac892ba31358266e5139f16fc0d7620a0ec2e9" }, "downloads": -1, "filename": "mochi-0.0.1-py3.4.egg", "has_sig": false, "md5_digest": "79c11bf36218935674df3b8c052f2aec", "packagetype": "bdist_egg", "python_version": "3.4", "requires_python": null, "size": 134982, "upload_time": "2014-11-10T02:02:57", "url": "https://files.pythonhosted.org/packages/29/58/d52960955bad707f1ef617c8e71b4b85ed3340ccd8e71217241a0793a58f/mochi-0.0.1-py3.4.egg" }, { "comment_text": "", "digests": { "md5": "40a57d803ba87c304d9d883ec5a51f01", "sha256": "c66a7ee078d764d46ddace105e6c25590d89d3d3cda5ef26b6c90ef57a452cdb" }, "downloads": -1, "filename": "mochi-0.0.1.tar.gz", "has_sig": false, "md5_digest": "40a57d803ba87c304d9d883ec5a51f01", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28180, "upload_time": "2014-11-10T02:02:50", "url": "https://files.pythonhosted.org/packages/6b/f2/35d3e1b5097ef3181632aa52341a6d9178cc2557e93c01193b38d1190e07/mochi-0.0.1.tar.gz" } ], "0.0.1.1": [ { "comment_text": "built for Darwin-13.1.0", "digests": { "md5": "272f56900a23e213231b2ef883a32d20", "sha256": "7927cbba09546cc96f3c1bb6ffe680f44529f3660881687950bf9003f51a5e6c" }, "downloads": -1, "filename": "mochi-0.0.1.1.macosx-10.6-intel.tar.gz", "has_sig": false, "md5_digest": "272f56900a23e213231b2ef883a32d20", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 132475, "upload_time": "2014-11-12T16:48:42", "url": "https://files.pythonhosted.org/packages/c1/d6/f4068d205d8177b42c70dcf6b3060f6eb5603c06a1db6f23409fb0887d56/mochi-0.0.1.1.macosx-10.6-intel.tar.gz" }, { "comment_text": "", "digests": { "md5": "05e80bd3acb9a5dd4263eab226748097", "sha256": "bbcbdc435b2a771c256b02bd8a23611d2c4078219a5c13b966d1e6a2f7f2b8f7" }, "downloads": -1, "filename": "mochi-0.0.1.1-py3.4.egg", "has_sig": false, "md5_digest": "05e80bd3acb9a5dd4263eab226748097", "packagetype": "bdist_egg", "python_version": "3.4", "requires_python": null, "size": 134819, "upload_time": "2014-11-12T16:48:47", "url": "https://files.pythonhosted.org/packages/03/ca/54311d975f09d0a2011b89955871f0cc56ab05f44d474154a107a6a609b0/mochi-0.0.1.1-py3.4.egg" }, { "comment_text": "", "digests": { "md5": "cf3a64ff35c65c4b019fc02f0bb02661", "sha256": "6b7bfbda19ff6e2ed2b3b3cbca770926850276fbeb50b70e093f205f919bec2b" }, "downloads": -1, "filename": "mochi-0.0.1.1.tar.gz", "has_sig": false, "md5_digest": "cf3a64ff35c65c4b019fc02f0bb02661", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28163, "upload_time": "2014-11-12T16:48:36", "url": "https://files.pythonhosted.org/packages/72/cf/27e07f6a678e19238e26130246bcf61a8a5843d225e3ae78ad65b0b30d49/mochi-0.0.1.1.tar.gz" } ], "0.0.2": [ { "comment_text": "built for Darwin-13.1.0", "digests": { "md5": "f16f96785e3573c1af75f9fe8fe8774f", "sha256": "00aec154ef9234a509b27afd0550caca0107ddeb0bad35279fbb16cbac11d939" }, "downloads": -1, "filename": "mochi-0.0.2.macosx-10.6-intel.tar.gz", "has_sig": false, "md5_digest": "f16f96785e3573c1af75f9fe8fe8774f", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 132753, "upload_time": "2014-11-16T18:19:10", "url": "https://files.pythonhosted.org/packages/26/ca/4da3a6387d8e2bd55554aaeb1fbb3e4c2d4d38cd35295546a1d986b170c8/mochi-0.0.2.macosx-10.6-intel.tar.gz" }, { "comment_text": "", "digests": { "md5": "63d81b3d93a700b2baf655f2be8cf35d", "sha256": "6e68867c05b4202e452aa79d8cc59ba551a14debc1d86ad9bacd9dc0e226c21e" }, "downloads": -1, "filename": "mochi-0.0.2-py3.4.egg", "has_sig": false, "md5_digest": "63d81b3d93a700b2baf655f2be8cf35d", "packagetype": "bdist_egg", "python_version": "3.4", "requires_python": null, "size": 135092, "upload_time": "2014-11-16T18:19:14", "url": "https://files.pythonhosted.org/packages/3b/48/810a8c7152e9c2cefba827e44492cfb1929539200d6a57b38a842ce788f7/mochi-0.0.2-py3.4.egg" }, { "comment_text": "", "digests": { "md5": "1da69a58a075e2d998120409148004c0", "sha256": "a732b2425c605b76fdd356be0aa656ec71c2347b4ba1bf2ceaface155dd55399" }, "downloads": -1, "filename": "mochi-0.0.2.tar.gz", "has_sig": false, "md5_digest": "1da69a58a075e2d998120409148004c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28235, "upload_time": "2014-11-16T18:19:04", "url": "https://files.pythonhosted.org/packages/fc/01/3615449f31af3328c20de042d3078c6d0c2a17317778f970d93f0970a8e9/mochi-0.0.2.tar.gz" } ], "0.0.2.1": [ { "comment_text": "built for Darwin-13.1.0", "digests": { "md5": "f1bbb6109f8674a650b7b0a514199b8b", "sha256": "623952e3f8674c731bf5f9032adfe972a2525661b78d4df455a5587fc70880b4" }, "downloads": -1, "filename": "mochi-0.0.2.1.macosx-10.6-intel.tar.gz", "has_sig": false, "md5_digest": "f1bbb6109f8674a650b7b0a514199b8b", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 132904, "upload_time": "2014-11-18T23:00:32", "url": "https://files.pythonhosted.org/packages/24/8d/7ed0d86397cf327f881aa42a22a2a13938d3e1958406374d930228cee025/mochi-0.0.2.1.macosx-10.6-intel.tar.gz" }, { "comment_text": "", "digests": { "md5": "738d13fe1ce8b2d870ccc41f7bc3922f", "sha256": "6cab8fb1fe24f0e41564ea96fc14b7a97c7794b35a4c182c5bf9a9f9fdc771bd" }, "downloads": -1, "filename": "mochi-0.0.2.1-py3.4.egg", "has_sig": false, "md5_digest": "738d13fe1ce8b2d870ccc41f7bc3922f", "packagetype": "bdist_egg", "python_version": "3.4", "requires_python": null, "size": 135235, "upload_time": "2014-11-18T23:00:36", "url": "https://files.pythonhosted.org/packages/47/5c/6b257a72dd30a254bbe72f7ba6378b1bd3682506c1b04b4b8a09b150e546/mochi-0.0.2.1-py3.4.egg" }, { "comment_text": "", "digests": { "md5": "7e467f4d1e718dc59876725b05d09b47", "sha256": "b2ca7bbdbc32540673ee67f667c532e58773b6e240eed489e2b55cabab28b274" }, "downloads": -1, "filename": "mochi-0.0.2.1.tar.gz", "has_sig": false, "md5_digest": "7e467f4d1e718dc59876725b05d09b47", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28310, "upload_time": "2014-11-18T23:00:25", "url": "https://files.pythonhosted.org/packages/d6/14/c6fe2e86271734508cf6144d51494d87b4902c68406ddc24f5be31611019/mochi-0.0.2.1.tar.gz" } ], "0.0.2.2": [ { "comment_text": "built for Darwin-13.1.0", "digests": { "md5": "3a3733d8cb3474791c3e2cfb6c1d4e03", "sha256": "b9828f802a0b829b28a58f272d9a0cab965696e4a097e30a0a3599872acb7413" }, "downloads": -1, "filename": "mochi-0.0.2.2.macosx-10.6-intel.tar.gz", "has_sig": false, "md5_digest": "3a3733d8cb3474791c3e2cfb6c1d4e03", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 132796, "upload_time": "2014-11-19T23:09:10", "url": "https://files.pythonhosted.org/packages/25/3b/cced800e13f16cb0c3267ec50259ea3438b25638abd7364e550d54097097/mochi-0.0.2.2.macosx-10.6-intel.tar.gz" }, { "comment_text": "", "digests": { "md5": "e9dff909646ed904ea78c9f3476ccd7f", "sha256": "413c5db9ed3872f6e8ecb8d161a91e46ad32175435d1b5eadb21bd46a50b1fa1" }, "downloads": -1, "filename": "mochi-0.0.2.2-py3.4.egg", "has_sig": false, "md5_digest": "e9dff909646ed904ea78c9f3476ccd7f", "packagetype": "bdist_egg", "python_version": "3.4", "requires_python": null, "size": 135138, "upload_time": "2014-11-19T23:09:15", "url": "https://files.pythonhosted.org/packages/c6/ff/7ce55c5353ef4989931f83ce241b0fd5e5783243ff6d203f6f1e0f8b489b/mochi-0.0.2.2-py3.4.egg" }, { "comment_text": "", "digests": { "md5": "175669c0cf669aa2f242d266e28202e4", "sha256": "180afd760ecf476a96a9c906aadc84d2acfed533ea0ef8ff32693de980c8f943" }, "downloads": -1, "filename": "mochi-0.0.2.2.tar.gz", "has_sig": false, "md5_digest": "175669c0cf669aa2f242d266e28202e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28262, "upload_time": "2014-11-19T23:09:06", "url": "https://files.pythonhosted.org/packages/6f/f0/41cf403f8b2151d98f565e4e45139b845e259d751e1f2ecfd465a36c043b/mochi-0.0.2.2.tar.gz" } ], "0.0.2.3": [ { "comment_text": "built for Darwin-13.1.0", "digests": { "md5": "dea7ee043dcf1fec0a295bcf1bda09a2", "sha256": "bcb1c5c4c2f46cc0d2ad125ad29de5e2549c2cee8918305ab4ef3e68dc78337e" }, "downloads": -1, "filename": "mochi-0.0.2.3.macosx-10.6-intel.tar.gz", "has_sig": false, "md5_digest": "dea7ee043dcf1fec0a295bcf1bda09a2", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 132970, "upload_time": "2014-11-20T18:40:18", "url": "https://files.pythonhosted.org/packages/09/a5/9a38ce2e4b0aebb084e541fc3d42078e3ae3bd40c87d8a0062d21da6c280/mochi-0.0.2.3.macosx-10.6-intel.tar.gz" }, { "comment_text": "", "digests": { "md5": "504b79a4c9bb0985c449ff274ce94457", "sha256": "90561f87fbe9444e8ae88e9f52118115a80d6aa59ba158b4292fa71a6aa8d935" }, "downloads": -1, "filename": "mochi-0.0.2.3-py3.4.egg", "has_sig": false, "md5_digest": "504b79a4c9bb0985c449ff274ce94457", "packagetype": "bdist_egg", "python_version": "3.4", "requires_python": null, "size": 135322, "upload_time": "2014-11-20T18:40:22", "url": "https://files.pythonhosted.org/packages/e8/f7/4939a7c44825d88b7e112d487c3c9dfa4fbe3b53d0c97c49c3e27022f772/mochi-0.0.2.3-py3.4.egg" }, { "comment_text": "", "digests": { "md5": "4273634769e8c1cff97864e09216b508", "sha256": "60528b17e54ba07f9da8647028d89122484da38aee7ad334d58cb17a7ab56af8" }, "downloads": -1, "filename": "mochi-0.0.2.3.tar.gz", "has_sig": false, "md5_digest": "4273634769e8c1cff97864e09216b508", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28306, "upload_time": "2014-11-20T18:40:15", "url": "https://files.pythonhosted.org/packages/99/bb/ae63cc0471401710cef8cf3dc62b3e94e324abe9516bc82fe9c9aaeb9907/mochi-0.0.2.3.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "7ed88e4b0ed14aa6c3fbdb14af6af85d", "sha256": "700a44746f2268be33099878fcf39bcde3e7ce655f08e85f4c45525522022fce" }, "downloads": -1, "filename": "mochi-0.0.3.tar.gz", "has_sig": false, "md5_digest": "7ed88e4b0ed14aa6c3fbdb14af6af85d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28082, "upload_time": "2014-11-27T14:53:48", "url": "https://files.pythonhosted.org/packages/58/de/d6f21a0eacfe272bd6f37286c7269c24f756156a8101cea389e4c5336b08/mochi-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "cfb2fe1d88816ced5ddf5111d740a3ee", "sha256": "ee9b52744f54c35f5d7a867f790e7179b36ffec1ebd929a7b1408629f2da6bfe" }, "downloads": -1, "filename": "mochi-0.0.4.tar.gz", "has_sig": false, "md5_digest": "cfb2fe1d88816ced5ddf5111d740a3ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28710, "upload_time": "2014-11-30T21:23:55", "url": "https://files.pythonhosted.org/packages/bf/c3/888413f8d362a3cfb6fbd83170db44b997fdb4413e0e8fe77af6ad78b085/mochi-0.0.4.tar.gz" } ], "0.0.4.1": [ { "comment_text": "", "digests": { "md5": "54d3490bc02d25c5dd8fb57a960095c4", "sha256": "639d17a6821203f1b4805ae005f3a683f1e2f99cba333ff661a7dd7020afef11" }, "downloads": -1, "filename": "mochi-0.0.4.1.tar.gz", "has_sig": false, "md5_digest": "54d3490bc02d25c5dd8fb57a960095c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28687, "upload_time": "2014-11-30T22:24:38", "url": "https://files.pythonhosted.org/packages/ec/4c/305f5a9a9392ced545199220abb2c53f423f3b787d6a3b75cfffd02aa9f3/mochi-0.0.4.1.tar.gz" } ], "0.0.4.2": [ { "comment_text": "", "digests": { "md5": "c889bcf7869c47e03f0b7b86dc1fe4b3", "sha256": "8d78b747900a969215d1d52551342248f3e60856bfd71de14d7981daedf3a7c6" }, "downloads": -1, "filename": "mochi-0.0.4.2.tar.gz", "has_sig": false, "md5_digest": "c889bcf7869c47e03f0b7b86dc1fe4b3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28727, "upload_time": "2014-12-02T15:27:19", "url": "https://files.pythonhosted.org/packages/18/2c/44eaead8d4df54059cae22cc0a5db4708901d75659b872ecf7edd77dd730/mochi-0.0.4.2.tar.gz" } ], "0.0.4.3": [ { "comment_text": "", "digests": { "md5": "ec5731b090dce70ee1fb6605f5dc8ba0", "sha256": "df580c4a16a9b79c6ac52f4ed58174926816e000328a5528e481969e39e06ec9" }, "downloads": -1, "filename": "mochi-0.0.4.3.tar.gz", "has_sig": false, "md5_digest": "ec5731b090dce70ee1fb6605f5dc8ba0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31150, "upload_time": "2014-12-02T15:36:58", "url": "https://files.pythonhosted.org/packages/c1/88/85b9c24f18f91bb80a9e8bfa369d896547e22c103c0a51e174d0575d62ba/mochi-0.0.4.3.tar.gz" } ], "0.0.4.4": [ { "comment_text": "", "digests": { "md5": "b8d2f65f51f07d4cca629b4e88793be5", "sha256": "6f3e098e9de743d62ebd94d8fa0dc6011fd71a0ad974df148a29536a66973d42" }, "downloads": -1, "filename": "mochi-0.0.4.4.tar.gz", "has_sig": false, "md5_digest": "b8d2f65f51f07d4cca629b4e88793be5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28726, "upload_time": "2014-12-02T16:45:43", "url": "https://files.pythonhosted.org/packages/a1/f8/97e35ffa30bf6a99a4923bcecda935d9176458167417b37e87aa92714a73/mochi-0.0.4.4.tar.gz" } ], "0.0.4.5": [ { "comment_text": "", "digests": { "md5": "e8ae343bc479b6a4abbcf45fab981aca", "sha256": "be21eb64c40e8784377fe57cc72effcf59f50e8bfdb274e1f2f48cae2c3a434f" }, "downloads": -1, "filename": "mochi-0.0.4.5.tar.gz", "has_sig": false, "md5_digest": "e8ae343bc479b6a4abbcf45fab981aca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32105, "upload_time": "2014-12-03T14:24:18", "url": "https://files.pythonhosted.org/packages/83/40/d67453aacae666869bdda4da90fc36e655d2171178453554ae4deb18b80c/mochi-0.0.4.5.tar.gz" } ], "0.0.4.6": [ { "comment_text": "", "digests": { "md5": "bb1721f097f76f324d5d3938cff4c29c", "sha256": "7b169a5953cf6ee4fe35286018e8f3baf32ca5e791cd356efd34a3bd63a919ab" }, "downloads": -1, "filename": "mochi-0.0.4.6.tar.gz", "has_sig": false, "md5_digest": "bb1721f097f76f324d5d3938cff4c29c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32109, "upload_time": "2014-12-03T14:29:47", "url": "https://files.pythonhosted.org/packages/ea/ee/fb541f825eae46a0c069685ea207eb5eb403167605de8c841be95465cedd/mochi-0.0.4.6.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "666873c4ab6767db0a6e92823f400cbd", "sha256": "34123f390147f00fd54a72be1605d314187ffc2f9d9f73009adb95d747371254" }, "downloads": -1, "filename": "mochi-0.0.5.tar.gz", "has_sig": false, "md5_digest": "666873c4ab6767db0a6e92823f400cbd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32414, "upload_time": "2014-12-04T15:37:39", "url": "https://files.pythonhosted.org/packages/5b/4f/de0ee0e086af5313240a0b403f4457c74d72ac4822bdd97ba120b78c1469/mochi-0.0.5.tar.gz" } ], "0.0.5.1": [ { "comment_text": "", "digests": { "md5": "481c5a63038ea8cb20ec80209711041c", "sha256": "1c1f84bf2954d8f9d662ea994acaac6d3a62a25dcf40bb6894d5317157be6745" }, "downloads": -1, "filename": "mochi-0.0.5.1.tar.gz", "has_sig": false, "md5_digest": "481c5a63038ea8cb20ec80209711041c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32490, "upload_time": "2014-12-05T12:53:00", "url": "https://files.pythonhosted.org/packages/0d/59/dd7856f7a9ddcf11ea85b10d9fec74b79de2d5a5849f36307db5a55d636f/mochi-0.0.5.1.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "deb07821a78039c4a30f188e1c43f09a", "sha256": "4f3b4aa187bed208f240205a578c7ca96df42c2c5d042888641e1237ea8034ef" }, "downloads": -1, "filename": "mochi-0.0.6.tar.gz", "has_sig": false, "md5_digest": "deb07821a78039c4a30f188e1c43f09a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32974, "upload_time": "2014-12-07T16:16:35", "url": "https://files.pythonhosted.org/packages/5b/ce/89bbaa5eee875fcebccb79c57fce61fc0eceaa6d176ddcac842ca829ca13/mochi-0.0.6.tar.gz" } ], "0.0.6.1": [ { "comment_text": "", "digests": { "md5": "2812d19b65a2ee8af7fbf524d1fba302", "sha256": "f08cf5b9a4369132c2f0572447e6e7bb43eb03e046dac7b7c68818dd56f5a7ae" }, "downloads": -1, "filename": "mochi-0.0.6.1.tar.gz", "has_sig": false, "md5_digest": "2812d19b65a2ee8af7fbf524d1fba302", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32982, "upload_time": "2014-12-07T16:22:07", "url": "https://files.pythonhosted.org/packages/5c/36/b66c69b5606f8f9abbdc2e74c81a0f5222339c174f9d32339c095a8e1ee3/mochi-0.0.6.1.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "dfe37c2b3661a86042a9d8a92a788f2d", "sha256": "a6ab438dbad0674a552f2327bad091e9db1c2035ced2beea6afaad06277d427a" }, "downloads": -1, "filename": "mochi-0.0.7.tar.gz", "has_sig": false, "md5_digest": "dfe37c2b3661a86042a9d8a92a788f2d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32934, "upload_time": "2014-12-07T19:32:42", "url": "https://files.pythonhosted.org/packages/89/e0/e37c8b17151c2817ef1abbab7880411373dacd58306e030bb16579b80f34/mochi-0.0.7.tar.gz" } ], "0.0.7.1": [ { "comment_text": "", "digests": { "md5": "3d115e3562a43c7a935bf102b71856dc", "sha256": "4d9fb9d7070504561c71fcad6e48b287dd5fe7530cfd1581dbf2b8b652d00c79" }, "downloads": -1, "filename": "mochi-0.0.7.1.tar.gz", "has_sig": false, "md5_digest": "3d115e3562a43c7a935bf102b71856dc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33110, "upload_time": "2014-12-07T19:52:17", "url": "https://files.pythonhosted.org/packages/b6/fe/f708e35fc1b385eb47f618a820fae15ea3c557a3c1ee88c45fb258bec289/mochi-0.0.7.1.tar.gz" } ], "0.0.7.2": [ { "comment_text": "", "digests": { "md5": "3da69664280f6d46580a945fa43eaf71", "sha256": "2dd176a891e83bf1160b5af4a8b3deab4b3a97103a75dc535fd06c5c9e1841b6" }, "downloads": -1, "filename": "mochi-0.0.7.2.tar.gz", "has_sig": false, "md5_digest": "3da69664280f6d46580a945fa43eaf71", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33106, "upload_time": "2014-12-07T20:08:50", "url": "https://files.pythonhosted.org/packages/09/f8/966db8a3f8e4b413026bfe18311db6ca06bdb3939f6cd1807eec886ad0d7/mochi-0.0.7.2.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "8801bdb3fab9cd713160be9fb9ab7499", "sha256": "c162cb9dcd200c2cff390b988d1f08b7c3c1e369cebd280217ec77439677f610" }, "downloads": -1, "filename": "mochi-0.0.8.tar.gz", "has_sig": false, "md5_digest": "8801bdb3fab9cd713160be9fb9ab7499", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33272, "upload_time": "2014-12-08T15:01:01", "url": "https://files.pythonhosted.org/packages/13/3a/302b04c5ae2c0ad5035ff2294896f1840aa2c51cce46bc61ac0cfccf57bc/mochi-0.0.8.tar.gz" } ], "0.0.8.1": [ { "comment_text": "", "digests": { "md5": "f73de01cbc1f9a070f6f0e273f54db2d", "sha256": "227356cc6ee91ffffeb86ba01be758ff54151137361f25e753eaa192042eff15" }, "downloads": -1, "filename": "mochi-0.0.8.1.tar.gz", "has_sig": false, "md5_digest": "f73de01cbc1f9a070f6f0e273f54db2d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33516, "upload_time": "2014-12-08T22:06:08", "url": "https://files.pythonhosted.org/packages/fa/dd/aa091b50651e00b1041f6df22618eec5eca6ca183722b3b90d665ad0309f/mochi-0.0.8.1.tar.gz" } ], "0.0.8.2": [ { "comment_text": "", "digests": { "md5": "847ef27919f5a5ef874dbdd91ba3b50e", "sha256": "a5c22b5695999ac376505559730b6b0d3f13ab0c75d9aefe37e619bf704082ce" }, "downloads": -1, "filename": "mochi-0.0.8.2.tar.gz", "has_sig": false, "md5_digest": "847ef27919f5a5ef874dbdd91ba3b50e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33480, "upload_time": "2014-12-09T22:48:14", "url": "https://files.pythonhosted.org/packages/3a/db/9af8d40ae5466ca593f1a89235bcca02805ba4ae4bfc1a9c0424ffa3a453/mochi-0.0.8.2.tar.gz" } ], "0.0.8.3": [ { "comment_text": "", "digests": { "md5": "20b3091300577dea4e27f3c5e3f257c4", "sha256": "e911e8030342ec19b18e1d9f255f2944afca0aa8fac4978cfbfbb796305f1b9a" }, "downloads": -1, "filename": "mochi-0.0.8.3.tar.gz", "has_sig": false, "md5_digest": "20b3091300577dea4e27f3c5e3f257c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33798, "upload_time": "2014-12-10T19:44:24", "url": "https://files.pythonhosted.org/packages/ad/ad/5a61b70777c941800fd9829f19a03b539793f76d6ec14dbcefd53912ef87/mochi-0.0.8.3.tar.gz" } ], "0.0.8.4": [ { "comment_text": "", "digests": { "md5": "3cb5513d64dd57188685cbf1eb14d9eb", "sha256": "916f85400d5ce81a6b325b9e1076b59b19470c917e1ab64d51e81f9dd48d8ad2" }, "downloads": -1, "filename": "mochi-0.0.8.4.tar.gz", "has_sig": false, "md5_digest": "3cb5513d64dd57188685cbf1eb14d9eb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33852, "upload_time": "2014-12-10T20:13:18", "url": "https://files.pythonhosted.org/packages/4b/9f/cc40242ad75abf03f51a771bd843ff8c1f8f8a4ecdfe48925ba5b2947872/mochi-0.0.8.4.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "1ed69225c95d1287e8771851b74edaf2", "sha256": "fc09b4edd9cf2530ab2b9d9f4504eaecbfeee842a2c37424eb0caee9949df1a5" }, "downloads": -1, "filename": "mochi-0.0.9.tar.gz", "has_sig": false, "md5_digest": "1ed69225c95d1287e8771851b74edaf2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34005, "upload_time": "2014-12-14T09:35:08", "url": "https://files.pythonhosted.org/packages/fb/29/417546a8fd889553fece64db7ce2da2cc082821de414456a7c8074bb4164/mochi-0.0.9.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "477c182f08b874d8eec71cd9c3ff67dd", "sha256": "03afa25d3f7c898ad9933e32893448819e853e9d26863f32492c67d9a5f55998" }, "downloads": -1, "filename": "mochi-0.1.0.tar.gz", "has_sig": false, "md5_digest": "477c182f08b874d8eec71cd9c3ff67dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34077, "upload_time": "2014-12-17T20:41:42", "url": "https://files.pythonhosted.org/packages/a2/db/dc5ec8d06864d0843afe49bbc9a06b064ce6ac3e5de964e9f00c479ec47a/mochi-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "4697033457ff4a4313c360519a684274", "sha256": "1f90d507a5942b4553f85607fab20e67c4d9da450061df176c1c4f77ccb6a835" }, "downloads": -1, "filename": "mochi-0.1.1.tar.gz", "has_sig": false, "md5_digest": "4697033457ff4a4313c360519a684274", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34315, "upload_time": "2014-12-21T18:56:43", "url": "https://files.pythonhosted.org/packages/b2/73/34c15bee65d59eb27fa36c898386c5d592bec8a1cdddaecf8f0332b1502b/mochi-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "d72275418829b6cfb8643eda47dbdd53", "sha256": "ea5c2836eea5d00fbd47f10bcfce8099831585635d59da9a4cbe1f4c0f9e11cd" }, "downloads": -1, "filename": "mochi-0.1.2.tar.gz", "has_sig": false, "md5_digest": "d72275418829b6cfb8643eda47dbdd53", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34948, "upload_time": "2014-12-24T18:14:47", "url": "https://files.pythonhosted.org/packages/2f/23/98eabbe82e17ade6c17585820443de0e98dad42c96c4a390e9931abba402/mochi-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "fa27d8c82c05313bc8c1c5e47ffa8f78", "sha256": "c982b608864cfdf178923d54f786a9d66b483be56dadbc23f6bff8f0dffc1a88" }, "downloads": -1, "filename": "mochi-0.1.3.tar.gz", "has_sig": false, "md5_digest": "fa27d8c82c05313bc8c1c5e47ffa8f78", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34872, "upload_time": "2014-12-29T00:38:11", "url": "https://files.pythonhosted.org/packages/35/1a/f436beeb1125e9edb733e7763f18e2e96b723a65d30966533ae4605452e1/mochi-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "0f3af847dc5f93157aa47b14fa0452f4", "sha256": "c834385b342e99c457e8e909ffa143a5af25314b27f35a75afe0240ef08eec6c" }, "downloads": -1, "filename": "mochi-0.1.4.tar.gz", "has_sig": false, "md5_digest": "0f3af847dc5f93157aa47b14fa0452f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34938, "upload_time": "2014-12-31T13:47:04", "url": "https://files.pythonhosted.org/packages/b3/86/13e47a323229a3a763d00dc0e6a01a97356b77cc083fa52ea6b139cafda8/mochi-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "197d6c6e87a8bd7f89580194ccd6f8ee", "sha256": "77951dda09cf83286a1ac37231ac3d09506f858ce0e4300e9e471d5e2debb389" }, "downloads": -1, "filename": "mochi-0.1.5.tar.gz", "has_sig": false, "md5_digest": "197d6c6e87a8bd7f89580194ccd6f8ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34991, "upload_time": "2015-01-18T18:02:47", "url": "https://files.pythonhosted.org/packages/0a/ba/280f175adbf3e756624a99d1629afea7b79367da5a2cc03d98b5d0adc5c8/mochi-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "1337431a162fc3031634aa87417cb9bc", "sha256": "bce5f6ba1d560a787251439aea3d2b818b46a13670098ed8348aee68d9afd3ac" }, "downloads": -1, "filename": "mochi-0.1.6.tar.gz", "has_sig": false, "md5_digest": "1337431a162fc3031634aa87417cb9bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35172, "upload_time": "2015-01-22T00:32:52", "url": "https://files.pythonhosted.org/packages/bf/2e/94d68d2a61895afde84a5bdfc62b71ade472c1afa7db742478dd0e1e2da2/mochi-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "fdf79553b7d285948dd6c0441f46bc20", "sha256": "d899e31f3abd79d90255b33c97dd26d9e4f810e60e1dd6e1dfad01bdb598d8f7" }, "downloads": -1, "filename": "mochi-0.1.7.tar.gz", "has_sig": false, "md5_digest": "fdf79553b7d285948dd6c0441f46bc20", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36433, "upload_time": "2015-02-01T03:35:57", "url": "https://files.pythonhosted.org/packages/cf/f7/b2c889e85e352da02f0d4971afc96ca6759395be5ce2993c6fc64f1f8dfc/mochi-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "34016a8fde874a671edf121a0c02fd9b", "sha256": "6cb5f25553cf189f666b0f8f5db73bf86fe8479f8bb359c8a077b7c0cdc31993" }, "downloads": -1, "filename": "mochi-0.1.8.tar.gz", "has_sig": false, "md5_digest": "34016a8fde874a671edf121a0c02fd9b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37464, "upload_time": "2015-02-07T15:42:17", "url": "https://files.pythonhosted.org/packages/08/9b/f110c79a92778df39e88f58a0f60b12e8159ee731b911f5f57d030c78b38/mochi-0.1.8.tar.gz" } ], "0.1.8.1": [ { "comment_text": "", "digests": { "md5": "5045a8c373cdbb51d18a486fcd1472fb", "sha256": "b26691ae9cebf99eb96cf9edd2b9cb3fbbaa408cb50b3ca7ec8952bb71dc513e" }, "downloads": -1, "filename": "mochi-0.1.8.1.tar.gz", "has_sig": false, "md5_digest": "5045a8c373cdbb51d18a486fcd1472fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37497, "upload_time": "2015-02-13T20:03:50", "url": "https://files.pythonhosted.org/packages/82/6a/4a3c91a9ac0dbaebe4135483b4c57f56b7f916a38028ea3e9114b18fa570/mochi-0.1.8.1.tar.gz" } ], "0.1.8.2": [ { "comment_text": "", "digests": { "md5": "0745d9e78e78ff4041209326179460c0", "sha256": "260f43ec76ee6c40c9dc7ea0d1f80d1883fc32d3f9ee406fc239cb176c373766" }, "downloads": -1, "filename": "mochi-0.1.8.2.tar.gz", "has_sig": false, "md5_digest": "0745d9e78e78ff4041209326179460c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37477, "upload_time": "2015-02-25T18:42:27", "url": "https://files.pythonhosted.org/packages/d7/e0/9f1ae8c76dc8d130f1ed42fcd4ce4a67e9df77d51d7c1d930b721adcf5ba/mochi-0.1.8.2.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "8906a3cc6201ca1ff3027a4c0c21222e", "sha256": "8cd2c726a1a1fcc6e58c1260a3fceac39f36b57ee5032f28c72f203183c962a0" }, "downloads": -1, "filename": "mochi-0.1.9.tar.gz", "has_sig": false, "md5_digest": "8906a3cc6201ca1ff3027a4c0c21222e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40991, "upload_time": "2015-03-23T04:03:11", "url": "https://files.pythonhosted.org/packages/db/11/d26511cbe418fd232086c2ac9b4a77a74a391955a4beaa9a869074e4c1e4/mochi-0.1.9.tar.gz" } ], "0.1.9.1": [ { "comment_text": "", "digests": { "md5": "2c5cfd03e1456db4860f47a008b0d0bd", "sha256": "076519fc75d491fa9bcb0ccfa3da4c97b45a8322c4cf87ee7e8e8b4ba86f7dda" }, "downloads": -1, "filename": "mochi-0.1.9.1.tar.gz", "has_sig": false, "md5_digest": "2c5cfd03e1456db4860f47a008b0d0bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40995, "upload_time": "2015-03-23T04:34:40", "url": "https://files.pythonhosted.org/packages/9f/da/7562b7dfff5f026887a6213871c28be7c5e770dae01899985f65ef2b6091/mochi-0.1.9.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "bedebc8c0cff1d0046da757314177d98", "sha256": "6516a6e06d162e3992468637b3afb00bd2fdc88916b66cfb679661b02d665cc4" }, "downloads": -1, "filename": "mochi-0.2.0.tar.gz", "has_sig": false, "md5_digest": "bedebc8c0cff1d0046da757314177d98", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41676, "upload_time": "2015-04-01T20:33:27", "url": "https://files.pythonhosted.org/packages/5f/d5/6956ddd38e555c4796e857bc90d5aac9b9e946230f97d53f7ab1ed022c70/mochi-0.2.0.tar.gz" } ], "0.2.0.1": [ { "comment_text": "", "digests": { "md5": "2b24e5509c51efc95590d424019197c3", "sha256": "1be8b2b69656f375b736c2fe8f12577ff58b6262f36737e6e53b35038e4d56eb" }, "downloads": -1, "filename": "mochi-0.2.0.1.tar.gz", "has_sig": false, "md5_digest": "2b24e5509c51efc95590d424019197c3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41727, "upload_time": "2015-04-01T21:15:58", "url": "https://files.pythonhosted.org/packages/2c/58/8de6ae5ca3bc192478b918288167a451a0fbd9b4945d7a591d8cbaafac0f/mochi-0.2.0.1.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "809e426e332f678505a35a71d2907267", "sha256": "c5bead5276bf7036004df2e2b5510940e3f7ee28524bbe3177b4f2db7d770e82" }, "downloads": -1, "filename": "mochi-0.2.1.tar.gz", "has_sig": false, "md5_digest": "809e426e332f678505a35a71d2907267", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42779, "upload_time": "2015-04-08T22:51:51", "url": "https://files.pythonhosted.org/packages/01/96/f074a16618d85df6580f56afcdf7da8cbbaff84686dadc02cf166fd4c211/mochi-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "3f68b2d36b92fa986baba0985cf1df17", "sha256": "306823df53c7d935cc96725f7f0ea2d5bda33ad7a7a6e09a47606da0055742c7" }, "downloads": -1, "filename": "mochi-0.2.2.tar.gz", "has_sig": false, "md5_digest": "3f68b2d36b92fa986baba0985cf1df17", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43665, "upload_time": "2015-04-26T14:57:32", "url": "https://files.pythonhosted.org/packages/8c/e6/ce558695677f18f25dac191aab2ad48fdc089f8b5c5959b2ff21083d4f2a/mochi-0.2.2.tar.gz" } ], "0.2.2.1": [ { "comment_text": "", "digests": { "md5": "eacebfca1e1e30f7fc5394e08f91911a", "sha256": "60ef48d12b344c1f31293e622a9efae2f2d2ef12b9387886843a52c5f4666826" }, "downloads": -1, "filename": "mochi-0.2.2.1.tar.gz", "has_sig": false, "md5_digest": "eacebfca1e1e30f7fc5394e08f91911a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43900, "upload_time": "2015-04-26T15:28:25", "url": "https://files.pythonhosted.org/packages/3b/fd/a9709bc80132021849746d70a225101ae74850970a38c9130bb9072e52e3/mochi-0.2.2.1.tar.gz" } ], "0.2.2.2": [ { "comment_text": "", "digests": { "md5": "2ee8185266a0f006c3cba2bcf50bf272", "sha256": "2f0142477576dc6aaf2875c6c81b15bdbe5178072f69464b4872ad9f7dd1f86a" }, "downloads": -1, "filename": "mochi-0.2.2.2.tar.gz", "has_sig": false, "md5_digest": "2ee8185266a0f006c3cba2bcf50bf272", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44104, "upload_time": "2015-04-26T21:46:19", "url": "https://files.pythonhosted.org/packages/7b/f9/36730194b5baa155bf48e7cf259ed4c198a675a4a0b09864a8d755787be1/mochi-0.2.2.2.tar.gz" } ], "0.2.2.3": [ { "comment_text": "", "digests": { "md5": "5f90a96764b42ad209a58e306a33b570", "sha256": "e10c2f9d4437b58912c90b59029cad666db084f260e7579cd917ee016eeac350" }, "downloads": -1, "filename": "mochi-0.2.2.3.tar.gz", "has_sig": false, "md5_digest": "5f90a96764b42ad209a58e306a33b570", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44102, "upload_time": "2015-04-26T21:53:34", "url": "https://files.pythonhosted.org/packages/0b/04/d88750a41e0a396733aea22c250f0a824a05cf3867578e46a7a69b7562c4/mochi-0.2.2.3.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "f36dd90b55bf241201d1301e95d0eb43", "sha256": "b7876271063ba91cd6c319e4f74cbab5c66ab1f17a85644c0cdc27227c4a4f96" }, "downloads": -1, "filename": "mochi-0.2.3.tar.gz", "has_sig": false, "md5_digest": "f36dd90b55bf241201d1301e95d0eb43", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44822, "upload_time": "2015-04-29T15:28:15", "url": "https://files.pythonhosted.org/packages/6b/bb/e83cfcf3e929de3eebc8a694f32189a521ffcb606b35c029d0a673c5d138/mochi-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "cae42d02b297338d1c919e79fca4d587", "sha256": "9cf986469b0575fbfa8f9040be083d3420f6f6833ddaf264d99517d214a7148b" }, "downloads": -1, "filename": "mochi-0.2.4.tar.gz", "has_sig": false, "md5_digest": "cae42d02b297338d1c919e79fca4d587", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45655, "upload_time": "2015-05-06T01:58:01", "url": "https://files.pythonhosted.org/packages/4d/a8/3779e8af2eb1ed16d87c7653260d12ac40c093e3284615ff6764b6d6b5c1/mochi-0.2.4.tar.gz" } ], "0.2.4.1": [ { "comment_text": "", "digests": { "md5": "3d221ed08b2b993581362f94b33fa987", "sha256": "98d8da80fbd8360faa8d38b3fd2e320b670f0fd064ac450cd2d309fa5a49470e" }, "downloads": -1, "filename": "mochi-0.2.4.1.tar.gz", "has_sig": false, "md5_digest": "3d221ed08b2b993581362f94b33fa987", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45719, "upload_time": "2015-05-06T04:05:08", "url": "https://files.pythonhosted.org/packages/d4/46/0487e01e69899eeff1a3ed3c955402d2f85d371a6b556dc3333d3e3c303d/mochi-0.2.4.1.tar.gz" } ], "0.2.4.2": [ { "comment_text": "", "digests": { "md5": "34e8e7449b208655339e01b4df0e826d", "sha256": "89de12e19b9dbd8b0c2a00dc8cb93cc0bbfb5de39ee399985ca799c4c510978d" }, "downloads": -1, "filename": "mochi-0.2.4.2.tar.gz", "has_sig": false, "md5_digest": "34e8e7449b208655339e01b4df0e826d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45716, "upload_time": "2015-05-06T06:42:32", "url": "https://files.pythonhosted.org/packages/3e/95/def8fb765e6a90147af57c52471a10c37510980f6ac2a44c60f5b8b48bda/mochi-0.2.4.2.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "a28d30d866eb1d18b66ec490cfe056ce", "sha256": "28a71584769f852727ce1234e9413102794203074a79faab16e1e225a2a25541" }, "downloads": -1, "filename": "mochi-0.2.5.tar.gz", "has_sig": false, "md5_digest": "a28d30d866eb1d18b66ec490cfe056ce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47776, "upload_time": "2015-07-21T15:22:40", "url": "https://files.pythonhosted.org/packages/ac/fb/023cfe4abc3fbbc76e0095b027ed5382cd0a13550c32921acf6c88091c95/mochi-0.2.5.tar.gz" } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "a8dbc017a366a84dbe6165067277f08e", "sha256": "cb55607794de81b4448c485503bd6b1b50247255df7ab632b18ec2c58391ecdd" }, "downloads": -1, "filename": "mochi-0.2.6.tar.gz", "has_sig": false, "md5_digest": "a8dbc017a366a84dbe6165067277f08e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48082, "upload_time": "2015-07-27T00:11:22", "url": "https://files.pythonhosted.org/packages/ce/fe/aaa583c82bcdbf6292ea9b7ad1e43e229db5b12d3d1c53c5d222632cc5b4/mochi-0.2.6.tar.gz" } ], "0.2.7": [ { "comment_text": "", "digests": { "md5": "1eff412d6846b5bd3d8fd30ad189c94b", "sha256": "7fbdea9bef7734527163c7543cf3b89a809aac7cda5010be59c148eb6c23b580" }, "downloads": -1, "filename": "mochi-0.2.7.tar.gz", "has_sig": false, "md5_digest": "1eff412d6846b5bd3d8fd30ad189c94b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46755, "upload_time": "2015-09-22T18:56:45", "url": "https://files.pythonhosted.org/packages/0b/f2/cb667b970bd38ec25639297840cfc4680c68c82593c75a9c6f0a4fbf300e/mochi-0.2.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1eff412d6846b5bd3d8fd30ad189c94b", "sha256": "7fbdea9bef7734527163c7543cf3b89a809aac7cda5010be59c148eb6c23b580" }, "downloads": -1, "filename": "mochi-0.2.7.tar.gz", "has_sig": false, "md5_digest": "1eff412d6846b5bd3d8fd30ad189c94b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46755, "upload_time": "2015-09-22T18:56:45", "url": "https://files.pythonhosted.org/packages/0b/f2/cb667b970bd38ec25639297840cfc4680c68c82593c75a9c6f0a4fbf300e/mochi-0.2.7.tar.gz" } ] }