{ "info": { "author": "Tristan Glatard, Gregory Kiar", "author_email": "tristan.glatard@concordia.ca, gkiar07@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Boutiques\n=========\n\n.. image:: https://zenodo.org/badge/32616811.svg\n :target: https://zenodo.org/badge/latestdoi/32616811\n.. image:: https://img.shields.io/pypi/v/boutiques.svg\n :target: https://pypi.python.org/pypi/boutiques\n.. image:: https://img.shields.io/pypi/pyversions/boutiques.svg\n :target: https://pypi.python.org/pypi/boutiques\n.. image:: https://travis-ci.org/boutiques/boutiques.svg?branch=develop \n :target: https://travis-ci.org/boutiques/boutiques\n.. image:: https://coveralls.io/repos/github/boutiques/boutiques/badge.svg?branch=develop\n :target: https://coveralls.io/github/boutiques/boutiques?branch=develop\n\nBoutiques is a cross-platform descriptive command-line framework for\napplications.\n\nThe Power of Boutiques Tools\n============================\n\nWhile the Boutiques framework enables a descriptive representation of\ncommand-line utilities and informs users of their usage, the Boutiques\nPython tool provides users with functionality to perform a variety of\noperations on these descriptors.\n\nInstallation\n------------\n\nSimple! Just open your favourite terminal and type:\n\n::\n\n $ pip install boutiques\n\nAlongside installing the Boutiques package, this will also ensure the\ndependencies are installed: ``simplejson``, ``jsonschema``,\n``requests``, ``pytest``, ``termcolor``, ``pyyaml``, ``tabulate`` and\n``mock``.\n\nIf you want the latest changes that aren\u2019t officially released yet, you\ncan also install directly from GitHub:\n\n::\n\n $ pip install \"git+https://github.com/boutiques/boutiques@develop#egg=boutiques&subdirectory=tools/python\"\n\nCommand-Line API\n----------------\n\nThe command-line API for Boutiques can be accessed through your new\nfavourite command, **``bosh``**. The Boutiques Shell (``bosh``) provides\nan access point to all of the tools wrapped within Boutiques and has\nsome ``--help`` text to keep you moving forward if you feel like you\u2019re\ngetting stuck. Let\u2019s consider a few common use-cases\u2026\n\nSearch For Tools\n~~~~~~~~~~~~~~~~\n\nPerhaps someone has already described the tool you are looking for and\nyou could reuse their work. For instance, if you are looking for a tool\nfrom the FSL suite, try:\n\n::\n\n $ bosh search fsl\n\nSearch returns a list of identifiers for tools matching your query. You\ncan use these identifiers in any ``bosh`` command transparently. Even\nbetter, these identifiers are `Digital Object\nIdentifiers `__ hosted on\n`Zenodo `__, they will never change and can\u2019t be\ndeleted!\n\nImport Your Tool\n~~~~~~~~~~~~~~~~\n\nIf you\u2019re in the lucky set of people with a Boutiques descriptor from a\nprevious schema iteration (such as ``0.4``), or you have a `BIDS\napp `__, you can easily make yourself\na descriptor from the command-line. For instance, let\u2019s say you have a\nBIDS app at ``/awesome/app/``, you would run:\n\n::\n\n $ bosh import bids descriptor.json /awesome/app/\n\nVery exciting, you now have a Boutiques descriptor for your app! If you\naren\u2019t in one of those unique cases, unfortunately you\u2019ll still need to\ngenerate your descriptor by hand according to the\n`schema <./tools/python/boutiques/schema/descriptor.schema.json>`__.\n\nCreate a New Descriptor\n~~~~~~~~~~~~~~~~~~~~~~~\n\nThere are two additional ways to get you started with creating Boutiques\ndescriptors, both wrapped up in the \u201ccreate\u201d module of Boutiques. First,\nif you just want an example descriptor that shows many of the properties\nyou can later set in Boutiques, you should use the command line\ninterface:\n\n::\n\n $ bosh create my-new-descriptor.json\n\nHowever, if you want a bit more of a head start and your tool is built\nin Python using the ``argparse`` library, we can help more! In the\nPython script with your argparser defined, simply add the following\nlines to get yourself a minimal corresponding descriptor:\n\n::\n\n import boutiques.creator as bc\n newDescriptor = bc.CreateDescriptor(myparser, execname=\"/command/to/run/exec\")\n newDescriptor.save(\"my-new-descriptor.json\")\n\nThere are additional custom arguments which can be supplied to this\nscript, such as tags for your tool. It is also worth noting that no\ninterpretation of output files is attempted by this tool, so your\ndescriptor could certainly be enhanced by addind these and other\nfeatures available through Boutiques, such as tests, tags, error codes,\ngroups, and container images.\n\nOnce you\u2019ve created your descriptor this way you can translate your\narguments to a Boutiques-style invocation using the following code block\non runtime:\n\n::\n\n args = myparser.parse_args()\n invoc = newDescriptor.createInvocation(args)\n\n # Then, if you want to save them to a file...\n import json\n with open('my-inputs.json', 'w') as fhandle:\n fhandle.write(json.dumps(invoc, indent=4))\n\nValidation\n~~~~~~~~~~\n\nYou just created a Boutiques descriptor (compliant with the\n`schema <./tools/python/boutiques/schema/descriptor.schema.json>`__, of\ncourse) named ``descriptor.json`` - Congratulations! Now, you need to\nquickly validate it to make sure that you didn\u2019t accidentally break any\nrules in this definition (like requiring a \u201cflag\u201d input). You can\nvalidate your schema like this:\n\n::\n\n $ bosh validate descriptor.json\n\nDepending on the status of your descriptor, ``bosh`` will either tell\nyou it\u2019s A-OK or tell you where the problems are and what you should\nfix. If you want to know more about some extra options packed into this\nvalidator, you can check them with ``bosh validate -h``, as one may\nexpect.\n\nSimulate Execution\n~~~~~~~~~~~~~~~~~~\n\nNow that you\u2019ve got a valid descriptor, you need to make sure it is\nactually describing *your* tool and command-line. One of the easiest\nways to do this is by simulating inputs for fake executions of your\ntool. You can do this using the ``exec`` function in ``bosh``:\n\n::\n\n $ bosh exec simulate descriptor.json -r -n 5\n\nYou just simulated 5 sets of random inputs which were dumped to our\nterminal for you to validate. If anything seems fishy, you can update\nyour descriptor and ensure you\u2019re describing the command-line you want.\nIf you had a particular set of inputs in mind, you could pass them in\nwith the ``-i`` flag rather than using the ``-r`` and ``-n`` flags.\nAgain, as I\u2019m sure you\u2019ve guessed, you can learn more here with\n``bosh exec simulate -h``.\n\nLaunch Your Tool\n~~~~~~~~~~~~~~~~\n\nYour descriptor has now been vetted both by the validator and simulation\nto describe meaningful command-lines for your tool - now it\u2019s time to\nput it to work! You can also use the ``exec`` function to launch an\nanalysis, provided you\u2019ve described your inputs in ``invocation.json``\nwith the matching key-value pairs as in your descriptor (this is called\nthe ``invocationSchema``, which you can also generate and learn about\nwith ``bosh invocation``). One catch: we assume you have\n`Docker `__ or\n`Singularity `__ installed. A fair\nassumption, nowadays? We hope so:\n\n::\n\n $ bosh exec launch descriptor.json invocation.json\n\nYou just launched your tool! You should be seeing outputs to your\nterminal, and by default your current working directory will be mounted\nto the container. You can mount more volumes with ``-v`` (consistent\nwith Docker), and see what other options are available, such as\nswitching users in the container, through the usual help menu,\n``bosh exec launch -h``.\n\nTest Your Tool\n~~~~~~~~~~~~~~\n\nYou may now want to write a test for your descriptor, so that everyone\nusing it could check that it produces correct results. This can be done\nby extending the tool descriptor with a ``tests`` property. For\ninstance, the description below would test if the execution of the\nspecified invocation returns with exit code 0 and produces a file in\noutput ``logfile`` with the right MD5 hash.\n\n::\n\n \"tests\": [\n {\n \"name\": \"test1\",\n \"invocation\": {\n \"config_num\": 4,\n \"enum_input\": \"val1\",\n \"file_input\": \"/tests/image.nii.gz\",\n \"list_int_input\": [\n 1,\n 2,\n 3\n ],\n \"str_input\": [\n \"foo\",\n \"bar\"\n ]\n },\n \"assertions\": {\n \"exit-code\": 0,\n \"output-files\": [\n {\n \"id\": \"logfile\",\n \"md5-reference\": \"0868f0b9bf25d4e6a611be8f02a880b5\"\n }\n ]\n }\n }\n ]\n\nYou can then test your descriptor by simply typing:\n\n::\n\n $ bosh test descriptor.json\n\nEvaluate Your Usage\n~~~~~~~~~~~~~~~~~~~\n\nIf you\u2019ve been using your tool and forget what exactly that output file\nwill be named, or if it\u2019s optional, but find re-reading the descriptor a\nbit cumbersome, you should just evaluate your invocation! If we wanted\nto check the location of our output corresponding to the id\n``my_batmobile``, or which of our inputs are numbers and optional, we\ncould do the following two queries, respectively:\n\n::\n\n $ bosh evaluate descriptor.json invocation.json output-files/id=my_batmobile inputs/type=Number,optional=True\n [{\"my_batmobile\": \"/the/batcave/batmobile.car\"}, {\"bad_guys\": \"0\", \"times_saved_gotham\": \"5000\"}]\n\nPublish Your Tool\n~~~~~~~~~~~~~~~~~\n\nCongratulations on successfully running your analysis! So excited about\nyour tool, you now want to share this descriptor with the world. Use the\n``publish`` function in ``bosh`` - it will push your tool on the\n`Zenodo `__\nresource-sharing portal allowing other to use it:\n\n::\n\n $ bosh publish descriptor.json\n\nYour tool is now being shared in a packaged and fully described fashion,\nmaking it easier than ever to reproduce and extend your work! As always,\nlearn more about this feature with ``bosh publish -h``.\n\nExecution Records\n~~~~~~~~~~~~~~~~~\n\nWant to check up on what happened during a previous analysis? The\ndetails of each execution are captured and recorded in a publicly safe\nformat so that you can review past analysis runs. These records are\nstored in the Boutiques cache and capture each executions\u2019 descriptor,\ninvocation and output results. Input and output file hashes are included\nto easily compare results between different analyses.\n\nPython API\n----------\n\nNow that you\u2019ve spent all that time learning the command-line API, we\u2019ve\ngot some good news for you: you already know the Python API, too. The\ninterfaces are entirely consistent with those exposed on the\ncommand-line, so you just need to do the following, to say, validate\nyour schema:\n\n::\n\n > import boutiques\n > boutiques.validate('descriptor.json')\n\nWhether you\u2019re working from the shell or a Python script, ``bosh`` will\ntreat you exactly the same.\n\nAnd if it\u2019s easier for you, you can even generate Python functions that\nlaunch your tools directly! For instance, this will launch FSL\u2019s mcflirt\nfrom your Python program:\n\n::\n\n > from boutiques.descriptor2func import function\n > mcflirt = function('zenodo.2602109')\n > mcflirt(in_file='/home/glatard/data/test.nii.gz')\n\nContributing\n============\n\nExcited by the project and want to get involved?! *Please* check out our\n`contributing guide <./CONTRIBUTING.md>`__, and look through the\n`issues `__ (in\nparticular, those tagged with\n\u201c`beginner `__\u201d)\nto start seeing where you can lend a hand. We look forward to approving\nyour amazing contributions!\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/boutiques/boutiques", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "boutiques", "package_url": "https://pypi.org/project/boutiques/", "platform": "", "project_url": "https://pypi.org/project/boutiques/", "project_urls": { "Homepage": "http://github.com/boutiques/boutiques" }, "release_url": "https://pypi.org/project/boutiques/0.5.21/", "requires_dist": [ "simplejson", "requests", "pytest", "termcolor", "pyyaml", "jsonschema", "tabulate", "mock", "docopt", "nexus-sdk" ], "requires_python": "", "summary": "Schema for describing bash command-line tools", "version": "0.5.21" }, "last_serial": 5923605, "releases": { "0.4.1": [ { "comment_text": "", "digests": { "md5": "8e30d112d5a2ee98a8d917cc33f9a6cd", "sha256": "a5bf0eb11d174af0cabd86cd3cea67a69cde35bbf78c90f56f37a30f898c5f32" }, "downloads": -1, "filename": "boutiques-0.4.1.tar.gz", "has_sig": false, "md5_digest": "8e30d112d5a2ee98a8d917cc33f9a6cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21163, "upload_time": "2017-07-28T00:06:27", "url": "https://files.pythonhosted.org/packages/73/24/af927e2bd6ddaaec09854130ee11eca423f59e279926ebee96d20cd437ed/boutiques-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "577d984ced02d5c143fd9d45c516da19", "sha256": "034637adcc63bdc2b9756a8a4f0ee0af27e0364295d83c31d2e49e0c8f7d76ac" }, "downloads": -1, "filename": "boutiques-0.4.2.tar.gz", "has_sig": false, "md5_digest": "577d984ced02d5c143fd9d45c516da19", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21211, "upload_time": "2017-07-28T00:09:17", "url": "https://files.pythonhosted.org/packages/ba/25/fc8273c0c13f6f5a5dba7f13592cf3f060036e456bbf205ce078bbc3e024/boutiques-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "3290ae4bfe80aa448d629a5a71e9f262", "sha256": "7b499f4feed5b8a4834f3b50d685ba3737db7e36dca60ff6b74013b0c49b9652" }, "downloads": -1, "filename": "boutiques-0.4.3.tar.gz", "has_sig": false, "md5_digest": "3290ae4bfe80aa448d629a5a71e9f262", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21361, "upload_time": "2017-07-31T22:02:37", "url": "https://files.pythonhosted.org/packages/01/a0/cefffcf88d6174969461cd53b3942ae611a1a296669006ee3f252695054f/boutiques-0.4.3.tar.gz" } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "f4b2b0af692736f63e30bc49cd3d57cc", "sha256": "78fa591158d906b28350fc6a23c3c038f3dd4d54f9e45a1c08024dc268eb8a76" }, "downloads": -1, "filename": "boutiques-0.4.4-corrected.tar.gz", "has_sig": false, "md5_digest": "f4b2b0af692736f63e30bc49cd3d57cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23203, "upload_time": "2017-08-15T20:43:41", "url": "https://files.pythonhosted.org/packages/cd/27/4a5a133476a6d286f0a773b42fb2bed0f7fa3294002435d2d8b2d615ed17/boutiques-0.4.4-corrected.tar.gz" } ], "0.4.4.0": [ { "comment_text": "", "digests": { "md5": "f7e70333a88345b2402f4a74299f671a", "sha256": "1c280ee579d0ebbf7bdaf4a918da6ca868dc26e4322a9cbb255dd277fa9539e2" }, "downloads": -1, "filename": "boutiques-0.4.4.0.tar.gz", "has_sig": false, "md5_digest": "f7e70333a88345b2402f4a74299f671a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23195, "upload_time": "2017-08-15T20:53:40", "url": "https://files.pythonhosted.org/packages/1d/f5/cbed1fa3eb0a43c6a394b9f13a14d8d0bc604f45b309183323b8c7089644/boutiques-0.4.4.0.tar.gz" } ], "0.4.5": [ { "comment_text": "", "digests": { "md5": "1c70ab70ca73cbdeab4bab0bd9c265f3", "sha256": "5dfe801ea76dc07a92de6c2a4f403babce0638334e2cd17d8f770db39965a21b" }, "downloads": -1, "filename": "boutiques-0.4.5.tar.gz", "has_sig": false, "md5_digest": "1c70ab70ca73cbdeab4bab0bd9c265f3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24116, "upload_time": "2017-08-31T00:29:07", "url": "https://files.pythonhosted.org/packages/dc/2c/9f231a0ea3a9439f80675e80494dad267f925ce7f022a3fc57f911a6ce46/boutiques-0.4.5.tar.gz" } ], "0.4.5.post1": [ { "comment_text": "", "digests": { "md5": "ef4df0896afeb2e00589fffd343bfffa", "sha256": "0d8c1c5c1e43895dbb1448e108798c02e348c4249aa262719a06fde34d512152" }, "downloads": -1, "filename": "boutiques-0.4.5.post1.tar.gz", "has_sig": false, "md5_digest": "ef4df0896afeb2e00589fffd343bfffa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24183, "upload_time": "2017-08-31T00:38:20", "url": "https://files.pythonhosted.org/packages/dc/2c/a1242922b06e802b0eeaa8ae412213d059a9687fd08d5fe22cca6a9de548/boutiques-0.4.5.post1.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "c43231d3e7ab367e53e3cdf5a98ccc0e", "sha256": "f2c7e0437e4d999fc4593e771fbf0487e063552cc395af85ce0c58eb313e85e5" }, "downloads": -1, "filename": "boutiques-0.5.tar.gz", "has_sig": false, "md5_digest": "c43231d3e7ab367e53e3cdf5a98ccc0e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28998, "upload_time": "2017-09-01T01:42:51", "url": "https://files.pythonhosted.org/packages/5b/7a/20f1149fc85827f3c617136966e64abbb373e3da16ce7721432a13e18812/boutiques-0.5.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "714ea58588073c92b0d3e7f423d5be62", "sha256": "85b65740c80f8eb16e83a7e466536281e9b5bfe04810241a740261db2d177379" }, "downloads": -1, "filename": "boutiques-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "714ea58588073c92b0d3e7f423d5be62", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 48256, "upload_time": "2017-09-01T03:33:31", "url": "https://files.pythonhosted.org/packages/b0/67/ef9d7893dbc20376b35809e68b238c5b41b57e20bcb0fa8125050f819b50/boutiques-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0f066527207a86ac088f7cf4a6888317", "sha256": "73fcf21ab04e6993c194fdab9b86ac7fdf20ce7be4b1bd047fc2f2a49938fdb8" }, "downloads": -1, "filename": "boutiques-0.5.0.tar.gz", "has_sig": false, "md5_digest": "0f066527207a86ac088f7cf4a6888317", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29208, "upload_time": "2017-09-01T03:29:09", "url": "https://files.pythonhosted.org/packages/65/fb/09c7aa807dcc077ccbd8faa61fa4c03638193cc0e8c0092789f5d9988f7b/boutiques-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "9f07c834bf298d93c889c376cd1e27c1", "sha256": "2d5c7fb2b46214b5449d2e5935c1c4af514e4a4aa15c6bf70754efc7cf400058" }, "downloads": -1, "filename": "boutiques-0.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "9f07c834bf298d93c889c376cd1e27c1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 48265, "upload_time": "2017-09-01T20:40:03", "url": "https://files.pythonhosted.org/packages/76/ee/f658c114c1fd5825b253adc191c390e7096a3c883f6499eea0dea877bb00/boutiques-0.5.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6c7d2012269a3238b26abe5e1eb10339", "sha256": "68e472d0f7cd31c7e5bb25e00713a12d73a58a3322aa78939e217905c89cfe8e" }, "downloads": -1, "filename": "boutiques-0.5.1.tar.gz", "has_sig": false, "md5_digest": "6c7d2012269a3238b26abe5e1eb10339", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29214, "upload_time": "2017-09-01T20:39:51", "url": "https://files.pythonhosted.org/packages/29/80/7f014f3e3275b604a6a5b2f2307ae9db657b697d0817e4bf1961fd8d4fb0/boutiques-0.5.1.tar.gz" } ], "0.5.10": [ { "comment_text": "", "digests": { "md5": "bfa143613980fe49e979d772ae69ba8e", "sha256": "6b8631f79c89c8dc640873768ece94a73335db4aa5c2d71144fb7908a52a47f1" }, "downloads": -1, "filename": "boutiques-0.5.10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bfa143613980fe49e979d772ae69ba8e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 81673, "upload_time": "2018-04-26T14:38:43", "url": "https://files.pythonhosted.org/packages/7c/0d/a49094f2f7c1f30012ea52fffb396c141f592ae988e6d1577625864ee709/boutiques-0.5.10-py2.py3-none-any.whl" } ], "0.5.11": [ { "comment_text": "", "digests": { "md5": "64c24053c653a47e9d590a77e60528a2", "sha256": "38ce9f1b6eda20148bc2d823e0c3b52db3028a86af8e396823be5ba3b13e0575" }, "downloads": -1, "filename": "boutiques-0.5.11-py3-none-any.whl", "has_sig": false, "md5_digest": "64c24053c653a47e9d590a77e60528a2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 84475, "upload_time": "2018-05-10T13:59:17", "url": "https://files.pythonhosted.org/packages/8d/a7/30959789a98da108c68f0548a9b86ae810d73c4f9c76d7c5ed7c56a84595/boutiques-0.5.11-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e4f38d6fa5ab3428c0b1e87af83b50ae", "sha256": "59a74b2bc6f52c2422c996a126424255ed3a0bf27d743715ad172e26e9d2ce93" }, "downloads": -1, "filename": "boutiques-0.5.11.tar.gz", "has_sig": false, "md5_digest": "e4f38d6fa5ab3428c0b1e87af83b50ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48727, "upload_time": "2018-05-10T13:59:18", "url": "https://files.pythonhosted.org/packages/fb/3d/774962511339243b201fd3c998ea149484649991d29d67f7a297b3579291/boutiques-0.5.11.tar.gz" } ], "0.5.11.post1": [ { "comment_text": "", "digests": { "md5": "d4d109f47c06677b2a9981a2718894e5", "sha256": "8eb88364643585bb2ebebc22a47cb3ed815323c8941d097621818382a51ec11d" }, "downloads": -1, "filename": "boutiques-0.5.11.post1-py3-none-any.whl", "has_sig": false, "md5_digest": "d4d109f47c06677b2a9981a2718894e5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 92629, "upload_time": "2018-05-10T14:17:01", "url": "https://files.pythonhosted.org/packages/8a/be/7cd06165088241e52b92950ab896955d7a23977083668b22182f1c9c9958/boutiques-0.5.11.post1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "91d371cebcb01f1629270e6306b1c905", "sha256": "ca7ab887a45b4d5c776f45920b1c4f8fa502e2849d937eb500167d40ff680d2e" }, "downloads": -1, "filename": "boutiques-0.5.11.post1.tar.gz", "has_sig": false, "md5_digest": "91d371cebcb01f1629270e6306b1c905", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52915, "upload_time": "2018-05-10T14:17:03", "url": "https://files.pythonhosted.org/packages/e1/7e/b57158c9a2f66ec3cacccd49c54bd5f6217a9e4b389f285a741bb3281ace/boutiques-0.5.11.post1.tar.gz" } ], "0.5.11.post2": [ { "comment_text": "", "digests": { "md5": "f95c687b3850cc57d2d4ceea6b0cc7d5", "sha256": "55e278a2aafd7085b08fadc133a10fb5b5b8bdde712191a87b6080b41fdc865a" }, "downloads": -1, "filename": "boutiques-0.5.11.post2-py3-none-any.whl", "has_sig": false, "md5_digest": "f95c687b3850cc57d2d4ceea6b0cc7d5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 92783, "upload_time": "2018-05-10T15:17:59", "url": "https://files.pythonhosted.org/packages/a4/4c/51628bafd6cf2a411df583280bedd371bb6cdc3f660171f7f4f5694445ad/boutiques-0.5.11.post2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "42914bc95b0e0f5e1c0378748d7b29cd", "sha256": "edb295b4d200567ca139a2f0bccd5c36c81259ceea6c98b0b9d9446df4b78744" }, "downloads": -1, "filename": "boutiques-0.5.11.post2.tar.gz", "has_sig": false, "md5_digest": "42914bc95b0e0f5e1c0378748d7b29cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53772, "upload_time": "2018-05-10T15:18:01", "url": "https://files.pythonhosted.org/packages/cd/04/885072c7cc60b238d2e47472a3a30fe0a199d178dfa2c6661e45baa54c5c/boutiques-0.5.11.post2.tar.gz" } ], "0.5.12": [ { "comment_text": "", "digests": { "md5": "4421cb7937e1bb2026b974dc7b090ad0", "sha256": "9c4ed76b7016dd9fa99b659c986c2643cb1140f340a796be85634e1295f247b5" }, "downloads": -1, "filename": "boutiques-0.5.12-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4421cb7937e1bb2026b974dc7b090ad0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 85279, "upload_time": "2018-05-24T01:57:51", "url": "https://files.pythonhosted.org/packages/18/23/b486f7a1b7a9de5cdb40ccacafbcf885c8826c025103be99660048f7803d/boutiques-0.5.12-py2.py3-none-any.whl" } ], "0.5.13": [ { "comment_text": "", "digests": { "md5": "f1a1c60a8b125978aa972439cd59999f", "sha256": "c828b566112035368ec0db1179ba031e6648d998c0a6551180b51ca50eaa3745" }, "downloads": -1, "filename": "boutiques-0.5.13-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f1a1c60a8b125978aa972439cd59999f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 89863, "upload_time": "2018-09-05T15:20:37", "url": "https://files.pythonhosted.org/packages/92/55/06741b779f49b88ff83fd146b1a09ad6e9e6aa6f9dfdcdd44b47bf665642/boutiques-0.5.13-py2.py3-none-any.whl" } ], "0.5.14": [ { "comment_text": "", "digests": { "md5": "44534e62f1663169442f3e8d04591458", "sha256": "68044561b6907aa087ee711bcf505aa3bbdbeac9a73ab996a500761c92b94642" }, "downloads": -1, "filename": "boutiques-0.5.14-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "44534e62f1663169442f3e8d04591458", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 92856, "upload_time": "2018-10-29T21:08:23", "url": "https://files.pythonhosted.org/packages/21/95/f06f405eee464718fa8ac78e708060261009081b68134b07cafee40a5651/boutiques-0.5.14-py2.py3-none-any.whl" } ], "0.5.15": [ { "comment_text": "", "digests": { "md5": "f32cf544a10fbd6625690471742924f8", "sha256": "63b424c1db25998b0bce84588861cd9871c35242c6a43782e9d71a27e1f83009" }, "downloads": -1, "filename": "boutiques-0.5.15-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f32cf544a10fbd6625690471742924f8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 101337, "upload_time": "2018-11-15T22:42:45", "url": "https://files.pythonhosted.org/packages/e9/58/c6fe8c8f4fd10e9c157ac3722a3a48c7ebef572dafca1e4438f1bd4b97d2/boutiques-0.5.15-py2.py3-none-any.whl" } ], "0.5.16": [ { "comment_text": "", "digests": { "md5": "480820d1f90bd277f83f2a19533c670f", "sha256": "e485f17f22c6e6b0ed698a856c2162e3e863bd70a8b25eab917690286e6bdd38" }, "downloads": -1, "filename": "boutiques-0.5.16-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "480820d1f90bd277f83f2a19533c670f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 101962, "upload_time": "2018-11-28T04:07:24", "url": "https://files.pythonhosted.org/packages/82/e4/9a8ae13178382130483a3d539605902f8dbaf9fa2788fa3f5ca4319d004c/boutiques-0.5.16-py2.py3-none-any.whl" } ], "0.5.17": [ { "comment_text": "", "digests": { "md5": "def093ba49632d2092916834545abec0", "sha256": "908a96f08e662c209e32142053ddfcb4d01c394992e2f7940cef6ff1e063449b" }, "downloads": -1, "filename": "boutiques-0.5.17-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "def093ba49632d2092916834545abec0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 108530, "upload_time": "2018-12-07T03:33:54", "url": "https://files.pythonhosted.org/packages/ce/89/3c5dc6ab48805b996f0445958954e751a1663ed37e558283eef8df442674/boutiques-0.5.17-py2.py3-none-any.whl" } ], "0.5.18": [ { "comment_text": "", "digests": { "md5": "d3be2560409b62f001e89731de9880d6", "sha256": "eb40bbfe631a43024264c5550f2e7f60841e771a829ed33fb312a025f9674b6f" }, "downloads": -1, "filename": "boutiques-0.5.18-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d3be2560409b62f001e89731de9880d6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 108866, "upload_time": "2019-01-09T22:16:52", "url": "https://files.pythonhosted.org/packages/56/d3/4952a1b2831ed9263b538eccc13603e90c66d4e9a5d7ddbde1eed8158131/boutiques-0.5.18-py2.py3-none-any.whl" } ], "0.5.19": [ { "comment_text": "", "digests": { "md5": "48c65c71586e90de03fa0e51c936e1cd", "sha256": "65f19d39f18765540c7c7e6c100a6a8540188bcced3b08606a3035f2a63527a8" }, "downloads": -1, "filename": "boutiques-0.5.19-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "48c65c71586e90de03fa0e51c936e1cd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 114271, "upload_time": "2019-02-20T22:08:23", "url": "https://files.pythonhosted.org/packages/45/b0/439e4a0635e51ec8959df974cf9b4c1c35052c36a38f4722780a814ce5ad/boutiques-0.5.19-py2.py3-none-any.whl" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "ae02812d85eea22faa1482a31f43f465", "sha256": "3cfe4eaff81849de588301947966c247bf42e8a931dad655fd4cbf3e2f1a3e00" }, "downloads": -1, "filename": "boutiques-0.5.2-py3-none-any.whl", "has_sig": false, "md5_digest": "ae02812d85eea22faa1482a31f43f465", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 49000, "upload_time": "2017-09-15T19:05:51", "url": "https://files.pythonhosted.org/packages/99/35/a208fb01a90c367c8402eaa34091141f3a2b17c22e16889d92885d2a4296/boutiques-0.5.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "778b3093130f25d38f9356fa8fbbf4db", "sha256": "c8f2edfef0db8e7b47d49fee21bd89fa7236fffdd4e925b32722541de8074d6e" }, "downloads": -1, "filename": "boutiques-0.5.2.tar.gz", "has_sig": false, "md5_digest": "778b3093130f25d38f9356fa8fbbf4db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29919, "upload_time": "2017-09-15T19:05:40", "url": "https://files.pythonhosted.org/packages/9e/dc/190db03355abab0a63547a185eacc5bc36a7b70549af7ae0a6c869c74088/boutiques-0.5.2.tar.gz" } ], "0.5.2.1": [ { "comment_text": "", "digests": { "md5": "1fac13e88da4f9d30b0d4ff14dc9de37", "sha256": "dee16097aa4a8b113b431e089563a4809e4933f6d374747e1f8e38a50c3fc6b0" }, "downloads": -1, "filename": "boutiques-0.5.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "1fac13e88da4f9d30b0d4ff14dc9de37", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 49082, "upload_time": "2017-09-15T19:19:21", "url": "https://files.pythonhosted.org/packages/78/44/8f11384920fccf95fb8851840c93cef3f82ca5ef01d5d00bd5d1339c6e7e/boutiques-0.5.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3e4461c753028727025018865ffb456f", "sha256": "c44d1c8fb61431daee049694dc291e96b4effa24ab891cf7bab470bb2eea7678" }, "downloads": -1, "filename": "boutiques-0.5.2.1.tar.gz", "has_sig": false, "md5_digest": "3e4461c753028727025018865ffb456f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29944, "upload_time": "2017-09-15T19:19:08", "url": "https://files.pythonhosted.org/packages/9d/43/9900cfd24e5ab8335d342120e098e5d676ca170e684f2b6062344de7b55e/boutiques-0.5.2.1.tar.gz" } ], "0.5.2.2": [ { "comment_text": "", "digests": { "md5": "8259594ce507a4151d110a25ba5ecf9e", "sha256": "0689cae53c55b801214bc8ddffd053d36efeeaf7f159a93c2a146c3a6c8bfd7f" }, "downloads": -1, "filename": "boutiques-0.5.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "8259594ce507a4151d110a25ba5ecf9e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 49098, "upload_time": "2017-09-19T14:17:55", "url": "https://files.pythonhosted.org/packages/e5/c8/366ad229f72f8d5174e721025e93db2f80bd56125dc543ff2ae919f14609/boutiques-0.5.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0d53b5eabbcea83e8c4844fa29db637d", "sha256": "866ae4910890ce452ea3a22965f7b044f8d9e00bc658ee07fe866404351ade4a" }, "downloads": -1, "filename": "boutiques-0.5.2.2.tar.gz", "has_sig": false, "md5_digest": "0d53b5eabbcea83e8c4844fa29db637d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29931, "upload_time": "2017-09-19T14:18:11", "url": "https://files.pythonhosted.org/packages/1f/93/d05647f07ff33d045e0bc6926c9ab5c72b1c34fdff0eb510bd2e437b4005/boutiques-0.5.2.2.tar.gz" } ], "0.5.20": [ { "comment_text": "", "digests": { "md5": "3d27f4d5661c9098eb99c896a76c85ca", "sha256": "6150bb4e557a211b8a49bf3c1e1368de4c998e130cf8fe32c565333609f6a850" }, "downloads": -1, "filename": "boutiques-0.5.20-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3d27f4d5661c9098eb99c896a76c85ca", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 127182, "upload_time": "2019-06-03T21:46:50", "url": "https://files.pythonhosted.org/packages/6a/cc/9259734004594cdb7db105b5fa7115ffb588acf22c57da1ad6f7ce180a25/boutiques-0.5.20-py2.py3-none-any.whl" } ], "0.5.20.post1": [ { "comment_text": "", "digests": { "md5": "e3b8c99910f89cab7d29a4a7199f3fdc", "sha256": "0ffa21d06311335028118fc4bad1efd5879022c09e07a5ad7c46fb04536616a8" }, "downloads": -1, "filename": "boutiques-0.5.20.post1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e3b8c99910f89cab7d29a4a7199f3fdc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 133288, "upload_time": "2019-06-03T21:55:56", "url": "https://files.pythonhosted.org/packages/36/38/b7717fa885e1c001ae2ff2e63dac869c6016895251ff18fdd2a2b68319f3/boutiques-0.5.20.post1-py2.py3-none-any.whl" } ], "0.5.21": [ { "comment_text": "", "digests": { "md5": "db6f914f24477b92399c0734922bc7b2", "sha256": "0014c257e2b6c5fd922156ac6d522e0d867c998a8113c269d8123739482588e7" }, "downloads": -1, "filename": "boutiques-0.5.21-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "db6f914f24477b92399c0734922bc7b2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 144236, "upload_time": "2019-10-03T13:54:25", "url": "https://files.pythonhosted.org/packages/b1/5f/03cfec56c13a59a6d3151f286620235debda68bddcf0d2ab9115ab420816/boutiques-0.5.21-py2.py3-none-any.whl" } ], "0.5.3": [ { "comment_text": "", "digests": { "md5": "66e611632f6896481b47416a97d65804", "sha256": "0abd9c6ca26a0161f3c6f8be84dd04362e12af5b62c985e324da19b9498eae1c" }, "downloads": -1, "filename": "boutiques-0.5.3-py3-none-any.whl", "has_sig": false, "md5_digest": "66e611632f6896481b47416a97d65804", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 52913, "upload_time": "2017-09-27T19:29:57", "url": "https://files.pythonhosted.org/packages/2f/00/e6a3f4aab458e227327788db5a8affafc3f9ca40bb49374d32cc78fe4615/boutiques-0.5.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f6a3052d2e894212f437b127532010ff", "sha256": "a3ac91849580e959e256ac69ec46c0b7314744ef9e89911c2fc41b9313cc1ebc" }, "downloads": -1, "filename": "boutiques-0.5.3.tar.gz", "has_sig": false, "md5_digest": "f6a3052d2e894212f437b127532010ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33330, "upload_time": "2017-09-27T19:29:46", "url": "https://files.pythonhosted.org/packages/71/31/8135e05ed4579fa0d1295262559e9abd66d89f2f2d1ad1145a37143856d7/boutiques-0.5.3.tar.gz" } ], "0.5.4": [ { "comment_text": "", "digests": { "md5": "58d14ed41d59d337f4318101f28eba76", "sha256": "a97b3d3f280a428f2077cb49686399070ce6c259df121a0ebcf48ddeefae2bfc" }, "downloads": -1, "filename": "boutiques-0.5.4-py3-none-any.whl", "has_sig": false, "md5_digest": "58d14ed41d59d337f4318101f28eba76", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 53934, "upload_time": "2017-10-04T03:05:37", "url": "https://files.pythonhosted.org/packages/87/10/6b304b1f85f70ca262164bedfdb8648296f98f8906e43a967e4169468ce4/boutiques-0.5.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "61f8224091773b52867fd938839a7925", "sha256": "3e6b6f5fc3859b16f758c33d9f8b8f2e8e8b4868f21d7d140bb85e8de47586b3" }, "downloads": -1, "filename": "boutiques-0.5.4.tar.gz", "has_sig": false, "md5_digest": "61f8224091773b52867fd938839a7925", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33723, "upload_time": "2017-10-04T03:05:20", "url": "https://files.pythonhosted.org/packages/9b/5f/9b6a4254c829e6b69306e1726cf3ee6f3ebd80376856032231ceaf5d7b89/boutiques-0.5.4.tar.gz" } ], "0.5.5": [ { "comment_text": "", "digests": { "md5": "a9406ea3831f42a7b3254210791ea051", "sha256": "fc3c0142f0393f79c8141e5a8842b78154c7c27b7794f55a6931132e6edac9da" }, "downloads": -1, "filename": "boutiques-0.5.5-py2-none-any.whl", "has_sig": false, "md5_digest": "a9406ea3831f42a7b3254210791ea051", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 56740, "upload_time": "2018-02-01T21:51:35", "url": "https://files.pythonhosted.org/packages/26/da/f21a73c22548e6c3a0904e14d46bb39ae5094a89145f5ce333f4ad5c28da/boutiques-0.5.5-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5d347d5de14cfa3ec0b62e2da061e6fd", "sha256": "e198dbf3d0ea3f803ee7be62b9e471bcf839cdca650d904568bba1a488fe9942" }, "downloads": -1, "filename": "boutiques-0.5.5.tar.gz", "has_sig": false, "md5_digest": "5d347d5de14cfa3ec0b62e2da061e6fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34471, "upload_time": "2018-02-01T21:50:56", "url": "https://files.pythonhosted.org/packages/75/4f/b54993ed5e0f5a69df5e91b154669a664f512752688b7b481794a13743d3/boutiques-0.5.5.tar.gz" } ], "0.5.5.dev0": [ { "comment_text": "", "digests": { "md5": "b2d7f74cc0cda2098c3a521c6bceab70", "sha256": "966241b3a8873f682c4163f67ff743f9670daf4ce1eff3057e7b6b7d7fe8c574" }, "downloads": -1, "filename": "boutiques-0.5.5.dev0-py3-none-any.whl", "has_sig": false, "md5_digest": "b2d7f74cc0cda2098c3a521c6bceab70", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 55958, "upload_time": "2017-12-29T05:01:14", "url": "https://files.pythonhosted.org/packages/24/a5/d8d3d7371fc443b1c837ed7295b08e64a1d6d6ca4dde44a80ef85f537985/boutiques-0.5.5.dev0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "afda9c7da2ccfa0f43e1138928a6220d", "sha256": "58bb433deb0495f4da524b4832069d916b75ebe9011c397ad8a29a9e2eb9dd72" }, "downloads": -1, "filename": "boutiques-0.5.5.dev0.tar.gz", "has_sig": false, "md5_digest": "afda9c7da2ccfa0f43e1138928a6220d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34610, "upload_time": "2017-12-29T04:57:49", "url": "https://files.pythonhosted.org/packages/ae/48/dbc954d1995a5e0b111dde3766d71ce690b83415f15f7df2a82a0bef3054/boutiques-0.5.5.dev0.tar.gz" } ], "0.5.5.dev1": [ { "comment_text": "", "digests": { "md5": "5655c93e301ba3c8c0677aec270e29f0", "sha256": "877dc681731b2bc703449e6c970ab34d6850903a7e9f7e3b6cc4b41f13477620" }, "downloads": -1, "filename": "boutiques-0.5.5.dev1-py3-none-any.whl", "has_sig": false, "md5_digest": "5655c93e301ba3c8c0677aec270e29f0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 57241, "upload_time": "2018-01-02T17:30:46", "url": "https://files.pythonhosted.org/packages/4d/ac/c0d4968aba36c617833e908c8dce56f0d5b5c7f3d042016dba778df71f82/boutiques-0.5.5.dev1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "58a1806970839be09b4a579f7ff37103", "sha256": "16f112006a088ba8a195b484dd80e7d16ef58c98fe799b3d6bd7aa8e15304a10" }, "downloads": -1, "filename": "boutiques-0.5.5.dev1.tar.gz", "has_sig": false, "md5_digest": "58a1806970839be09b4a579f7ff37103", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34535, "upload_time": "2018-01-02T17:30:44", "url": "https://files.pythonhosted.org/packages/f5/75/cfe36ec9cb6ce1a3596309daa25272e42f4ec7fa8d6979c7a6e6443938e9/boutiques-0.5.5.dev1.tar.gz" } ], "0.5.5.post1": [ { "comment_text": "", "digests": { "md5": "8886ce9ea0c5f1965b574bb10d81c9bc", "sha256": "f17b263ba28ea1484aa1a7f48a72f22d912de51f91451e060f0f02d6a634d046" }, "downloads": -1, "filename": "boutiques-0.5.5.post1-py3-none-any.whl", "has_sig": false, "md5_digest": "8886ce9ea0c5f1965b574bb10d81c9bc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 49019, "upload_time": "2018-02-02T02:46:53", "url": "https://files.pythonhosted.org/packages/2d/54/aea7eb209fce42bd8ca65ec622b9150e4ad4ea05dd508dc4ac93ae7b21c5/boutiques-0.5.5.post1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "77a2f9fc6aa43433ec236477a23605f5", "sha256": "d45cfa25fc14f26c464993aa7046c57671e339ff9d052759cef35d9259deb720" }, "downloads": -1, "filename": "boutiques-0.5.5.post1.tar.gz", "has_sig": false, "md5_digest": "77a2f9fc6aa43433ec236477a23605f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30881, "upload_time": "2018-02-02T02:46:42", "url": "https://files.pythonhosted.org/packages/d5/88/797cf74a920c80db2e7663d84764dafa53c5e101a63f429e4e72d8374f6b/boutiques-0.5.5.post1.tar.gz" } ], "0.5.6": [ { "comment_text": "", "digests": { "md5": "48123dc757532362a69b04563da72ca2", "sha256": "a734b2736d27105d92dcd46c946d71498f9192dbd18119f39cd58d594a6f89e5" }, "downloads": -1, "filename": "boutiques-0.5.6-py3-none-any.whl", "has_sig": false, "md5_digest": "48123dc757532362a69b04563da72ca2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 54229, "upload_time": "2018-03-14T16:03:07", "url": "https://files.pythonhosted.org/packages/c3/66/79861ffdcc99cb9f53dc82e583a92cb4b1491bac6ef54f1b0975ff0771d7/boutiques-0.5.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4e9109d295c78f495b59291e00fdd008", "sha256": "ec671728e82ee3cedeb8b9c45a42359017b657496c62ba1bf0942376ab3fd44e" }, "downloads": -1, "filename": "boutiques-0.5.6.tar.gz", "has_sig": false, "md5_digest": "4e9109d295c78f495b59291e00fdd008", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39261, "upload_time": "2018-03-14T16:03:09", "url": "https://files.pythonhosted.org/packages/7d/45/74f959981b7e2153c56a466df8f50068f1b9b1bf18f9764f32df6a7aec1f/boutiques-0.5.6.tar.gz" } ], "0.5.6.post1": [ { "comment_text": "", "digests": { "md5": "0b40dc45c2523dd1598f94a2bf3c1d89", "sha256": "b6d5981637e5d189089912cbe684358768e66db7b3a0f29221846445473e09e5" }, "downloads": -1, "filename": "boutiques-0.5.6.post1-py3-none-any.whl", "has_sig": false, "md5_digest": "0b40dc45c2523dd1598f94a2bf3c1d89", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 54523, "upload_time": "2018-03-20T15:03:45", "url": "https://files.pythonhosted.org/packages/70/69/c2f254dd43b4943ad092bf71c0fd0d0cb60f94fb8d83811902411dd54d34/boutiques-0.5.6.post1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2bfc991577b26f5da37174f9e6203350", "sha256": "6b36462eb0cb209c42327bef613093379d0f05e0513b1c69d6f621185b838d4d" }, "downloads": -1, "filename": "boutiques-0.5.6.post1.tar.gz", "has_sig": false, "md5_digest": "2bfc991577b26f5da37174f9e6203350", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39419, "upload_time": "2018-03-20T15:03:47", "url": "https://files.pythonhosted.org/packages/94/a5/a7aa032e542b2c77aa892c5a7f4a7b42b49c1f2e704cbe4f54b27792e347/boutiques-0.5.6.post1.tar.gz" } ], "0.5.7": [ { "comment_text": "", "digests": { "md5": "e580cd4fc8a58d77a477400a6286c386", "sha256": "91101bc778fa242a723c40cb9d58ea9f64bc8c554c859746148bd7e563d6a8a4" }, "downloads": -1, "filename": "boutiques-0.5.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e580cd4fc8a58d77a477400a6286c386", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 66886, "upload_time": "2018-03-30T18:18:33", "url": "https://files.pythonhosted.org/packages/bf/97/45d1a5a439b2febd5b1994f8c0f84e332907f68d8b1577343bcaaa7e0797/boutiques-0.5.7-py2.py3-none-any.whl" } ], "0.5.8": [ { "comment_text": "", "digests": { "md5": "27769c27e4fe41bc79b9deb9e0ab8b79", "sha256": "2ec3605a02f4e0dfad3a78c34fa9d4b78cedf2cfe66338f94a426a89f3638d07" }, "downloads": -1, "filename": "boutiques-0.5.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "27769c27e4fe41bc79b9deb9e0ab8b79", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 69852, "upload_time": "2018-04-18T18:08:47", "url": "https://files.pythonhosted.org/packages/ea/ee/a67516da8f001ace3dc0317be7a6ec68a0bb5b0b049b941112a4efa3420e/boutiques-0.5.8-py2.py3-none-any.whl" } ], "0.5.9": [ { "comment_text": "", "digests": { "md5": "88a76439fc99951869b243d8c1203857", "sha256": "f125082e6c13b9ce3af6f157dea8ff50352da6634ef975a94610b8546c67c4f5" }, "downloads": -1, "filename": "boutiques-0.5.9-py3-none-any.whl", "has_sig": false, "md5_digest": "88a76439fc99951869b243d8c1203857", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 41306, "upload_time": "2018-04-20T00:19:31", "url": "https://files.pythonhosted.org/packages/9b/3d/46e7a2092065b34c4c0d77e43bb3d1574efafdcf92fc8a11a15c981c681c/boutiques-0.5.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "da8c42af81ddb72fd016feba47f98929", "sha256": "77a1385f26b2edd9a61bb8133b2b6cda7f4c61fc34ebf36358df6ed2f26df155" }, "downloads": -1, "filename": "boutiques-0.5.9.tar.gz", "has_sig": false, "md5_digest": "da8c42af81ddb72fd016feba47f98929", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33906, "upload_time": "2018-04-20T00:19:33", "url": "https://files.pythonhosted.org/packages/72/24/059c4dd3707062ccbe4ff821aaa1eeee2fb8303cd84beb7c085f06198e2d/boutiques-0.5.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "db6f914f24477b92399c0734922bc7b2", "sha256": "0014c257e2b6c5fd922156ac6d522e0d867c998a8113c269d8123739482588e7" }, "downloads": -1, "filename": "boutiques-0.5.21-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "db6f914f24477b92399c0734922bc7b2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 144236, "upload_time": "2019-10-03T13:54:25", "url": "https://files.pythonhosted.org/packages/b1/5f/03cfec56c13a59a6d3151f286620235debda68bddcf0d2ab9115ab420816/boutiques-0.5.21-py2.py3-none-any.whl" } ] }