{ "info": { "author": "Danilo de Jesus da Silva Bellini", "author_email": "danilo.bellini@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: MacOS X", "Environment :: Win32 (MS Windows)", "Environment :: X11 Applications", "Intended Audience :: Developers", "Intended Audience :: Education", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Education", "Topic :: Education :: Testing", "Topic :: Software Development", "Topic :: Software Development :: Testing" ], "description": "====\nDose\n====\n\n\n.. list-table::\n\n * + .. image:: https://github.com/danilobellini/dose/raw/1.2.1/images/screenshot_linux.png\n + - Language: Haskell\n - Testing with Hspec\n - Arch Linux\n - Dose running on Python 2.7.12\n - wxPython Phoenix 3.0.3.dev2472+78ae39a (gtk2)\n\n * + .. image:: https://github.com/danilobellini/dose/raw/1.2.1/images/screenshot_osx.png\n + - Language: Shell script\n - Testing with roundup\n - Mac OS X 10.11.6 (El Capitan)\n - Dose running on Python 3.5.2\n - wxPython Phoenix 3.0.3.dev2487+3b85464 (osx-cocoa)\n\n * + .. image:: https://github.com/danilobellini/dose/raw/1.2.1/images/screenshot_windows.png\n + - Language: Python\n - Testing with py.test\n - Windows 7 Home Premium SP1\n - Dose running on Python 2.7.12\n - wxPython Classic 2.8.12.1 (msw-unicode)\n\n * + .. image:: https://github.com/danilobellini/dose/raw/1.2.1/images/screenshot_cygwin.png\n + - Language: C\n - Testing with a custom tester\n - Cygwin 2.876 (Windows)\n - Dose running on Python 2.7.10\n - wxPython Classic 3.0.2.0 (gtk2)\n\n\nWhat does it do?\n================\n\nRuns a test command when some file is created/modified/deleted,\nshowing the returned value in a GUI.\n\nThere are 3 states:\n\n- *Red*: Last test job failed/errored (it didn't return zero)\n- *Yellow*: Running a test job\n- *Green*: Last test job passed (it returned zero)\n\nThe test job output is written on the standard output, so it should\nappear in the console/terminal whereby Dose was called. The same\napplies to the standard error, whose text should appear in red.\n\n\nSyntax / Example\n----------------\n\nJust call ``dose TEST_COMMAND``, where ``TEST_COMMAND`` is what you\nwould call to run your test suite in a terminal/console/shell. Dose is\nwritten in Python but the test command can be any shell command.\n\n*Hint (color)*: Any ANSI escaping code from the test command (e.g.\ncolors) is also sent to the standard streams in the underlying\nconsole (Linux, Mac OS X and Cygwin) or converted by colorama_ to\nWindows Console Handles API calls (Windows). In other words, colors\nare enabled. For example, in a tox + py.test Python project whose\n``tox.ini`` has ``commands = py.test {posargs}``, you can force the\npy.test coloring with ``dose tox -- --color=yes``.\n\n*Hint (shell)*: You can use shell pipes in your test command by\nquoting the whole command, e.g. ``dose \"cat tests.txt | verify.sh\"``.\n\n\nWhat does it watch?\n-------------------\n\nUsing the watchdog_ package, Dose recursively watches a working\ndirectory for file creation/modification/deletion events.\n\nThe watched directory is the current working directory whence\nDose was called. You can change it from the GUI. The test\ncommand is called in the same directory.\n\nThere's a customizable ignore pattern to avoid undesired detections on\ntemporary/compiled files.\n\nValid events during a test would kill (SIGTERM) a test job to restart\nit. There's a 10ms delay before starting/spawning a test job\nsubprocess, which is kept alive for at least 50ms before being able to\nbe killed. Multiple events are handled as a single event to avoid\nspawning/killing more than required.\n\nThere's a cycle/repeat detection in the watcher: repeating an event\nwon't kill the test job. Modifying the same file twice will have the\nsecond modification ignored, unless it happens after finishing a test\njob.\n\n*Hint (change directory)*: You can watch a directory and call a\ncommand in another directory by using ``cd PATH && TEST_COMMAND`` as\nyour test command, e.g. ``dose \"cd toxinidir && tox\"``.\n\n\nGUI Controls\n------------\n\n**On Linux / Windows**\n\n- *Dragging*\\ : Move\n- *Dragging holding Ctrl*\\ : Resize\n- *Dragging holding Shift*\\ : Controls the transparency\n- *Double click*\\ : start or stop the watcher (can kill the test job)\n\nA right click shows more options.\n\n\n**On Mac OS X**\n\n- *Dragging*\\ : Move\n- *Dragging holding \u2318*\\ : Resize\n- *Dragging holding \u21e7*\\ : Controls the transparency\n- *Double click*\\ : start or stop the watcher (can kill the test job)\n\nA right click (or Ctrl + mouse click) shows more options.\n\n\nInstallation\n============\n\nDose has few requirements:\n\n- Linux, OS X, Windows or Cygwin (Windows)\n- Python (2 or 3) with pip/wheel/setuptools\n- PyPI packages (auto-installed):\n\n - watchdog\n - docutils\n - colorama\n - wxPython 2.8, 3.0 (either Classic or Phoenix) or 4+ (Phoenix)\n\nAll the packages are installed with `pip`, including wxPython,\nbut this last one you might need/want to install by using a build\npackaged in your operating system repository, so the following\ndocumentation, once created for older versions of wxPython (before its\n4.0 release), was kept here as part of the documentation.\n\nOn Python 3, wxPython Phoenix is required (since wxPython Classic\nrequires Python 2, modus tollens). Even on Python 2, Phoenix is\nusually easier to install, as it can be installed directly via pip\nno matter the platform or Python version::\n\n pip install wxPython\n\nThe wxPyWiki have a detailed page on `how to install wxPython`_\\ ,\nwhence that Phoenix install command came. The link includes some\ndetailed information on how to install wxPython Classic.\n\nIf that's not enough, below are some detailed information on how to\ninstall Dose and its requirements on each platform/environment/system\nit supports.\n\n\nInstalling Dose with pip/wheel/setuptools\n-----------------------------------------\n\nYou should install with pip, which gets the Dose wheel from PyPI_\n(recommended)::\n\n pip install dose\n\nTo install from the source distribution (e.g. after cloning this\nrepository), you can either use pip (recommended)::\n\n pip install .\n\nWheel::\n\n python setup.py bdist_wheel\n wheel install dist/*.whl\n\nOr setuptools directly (not recommended)::\n\n python setup.py install\n\nTo uninstall Dose with pip while keeping its requirements installed::\n\n pip uninstall dose\n\nOther useful and self-explanatory commands are::\n\n pip install --upgrade dose\n pip install --force-reinstall dose\n\nDose should be kept upgraded. To check which Dose version is\ninstalled, you can use ``pip list`` or ``pip freeze``\\ . Without pip,\nyou can check the version from the ``dose.__version__`` variable::\n\n python -c \"import dose ; print(dose.__version__)\"\n\n\nPython virtualenv\n-----------------\n\nIf you wish to install Dose in a Python virtualenv instead of a system\ninstallation, you should either:\n\n- Install wxPython Phoenix via pip (recommended);\n- Create a virtualenv with the ``--system-site-packages``\n option in a system that already has some wxPython version\n installed.\n\nOn Linux / Mac OS X / Cygwin, this creates a ``venv27`` directory with\na new virtualenv that can access the system ``site-packages`` library\ndirectory, i.e., the installed packages::\n\n virtualenv --system-site-packages -p python2.7 venv27\n\nOn Windows, you should just replace ``python2.7`` by your\n``python.exe`` file. You should remove the ``--system-site-packages``\nfor a virtualenv with independent libraries.\n\nTo activate it (Linux / Mac OS X / Cygwin)::\n\n source venv27/bin/activate\n\nTo activate it (Windows)::\n\n venv27/Scripts/activate.bat\n\nAfterwards, you should install Dose with pip/wheel/setuptools in the\nactivated virtual environment.\n\nIf virtualenv isn't available in your Python distribution, it can be\ninstalled with::\n\n pip install virtualenv\n\n\nRequirements on Arch Linux\n--------------------------\n\nFor a simple installation, it's available in AUR_\\ .\n\nThis distro doesn't include a ``/usr/bin/pip`` script, so you should\nuse ``python2 -m pip`` (Python 2) or ``python -m pip`` (Python 3)\ninstead of just ``pip``\\ . By the way, in this Linux distribution\n``python`` means Python 3, only ``python2`` means Python 2, unless\nyou're in a virtualenv. The commands below should be called with\n``sudo``.\n\nWhen installing pip, you don't need to worry if the Python interpreter\nitself is installed in your system, as the package manager would\ninstall python for you as a dependency if it's not installed. To\ninstall pip and wxPython Phoenix 4 on Python 3::\n\n pacman -Sy python-pip python-wxpython\n\nThe wxPython Phoenix snapshot can be installed via pip. On the other\nhand, to install pip and wxPython Classic 3.0 on Python 2::\n\n pacman -Sy python2-pip python2-wxpython3\n\nIf you wish to install Dose in a virtualenv, you should install the\n``python-virtualenv`` (Python 3) or the ``python2-virtualenv``\n(Python 2) package with pacman, following the virtualenv instructions\nafterwards.\n\n\nRequirements on Ubuntu/Debian/MINT Linux\n----------------------------------------\n\nYou should use ``pip3`` instead of ``pip`` on Python 3, unless you're\nin a virtualenv. The commands below should be called with ``sudo``\\ .\nYou can also install the described packages (names after\n\"\\ *install*\\ \") with an APT GUI like ``synaptic``\\ . These\ndistros usually come with Python, nevertheless Python itself is\ninstalled as a dependency when installing pip. Before calling the\ninstall commands, remember to::\n\n apt-get update\n\nInstalling pip on Python 3::\n\n apt-get install python3-pip\n\nThe wxPython Phoenix snapshot can be installed via pip. To install pip\nand wxPython Classic 2.8 on Python 2::\n\n apt-get install python-pip python-wxgtk2.8\n\nIf you wish to install Dose in a virtualenv, you should install the\n``python-virtualenv`` (Python 2) or the ``python3-virtualenv``\n(Python 3) package from APT, following the virtualenv instructions\nafterwards. If these aren't available, you should install the\nvirtualenv package from PyPI with pip.\n\n\nRequirements on Mac OS X\n------------------------\n\nEverything discussed here happens in a console, you can open one with\nSpotlight by pressing Command (\u2318) + Space and typing ``Terminal``\\ .\nThe recommended (and easier) way to install the requirements is via\nHomebrew_\\ , even in Mac OS X 10.11 (El Capitan). Another option\nwould be installing Python directly from the `Python official site`_\npackages, but that installation procedure isn't described here.\n\n**Python from Mac OS X 10.11 (El Capitan)**\n\nThis is an installation procedure without Homebrew_\\ , using the\nPython interpreter that comes with Mac OS X 10.11 (El Capitan).\nIt comes with Python 2.7, but not with pip. You can install pip\nusing the command::\n\n curl https://bootstrap.pypa.io/get-pip.py | sudo python\n\nIf you wish to install wxPython Phoenix via pip without receiving an\n``OSError: [Errno 1] Operation not permitted: ...``\\ , you have to\ntemporarily disable the *System Integrity Protection*, but that's\nsomething you probably don't want to do. The same happens with Dose,\nbut to avoid that issue you can install Dose directly from its\n``setup.py`` instead of using pip/wheel.\n\nOn the other hand, if you wish to install wxPython Classic 3.0,\nyou should get the \"Cocoa\" Mac OS X binary packages directly from the\n`wxPython official site`_\\ . But that's not enough, as the package\nstructure isn't supported by this OS X version. Following the\ninstructions from `the DaviXX' Blog post about wxPython on OS X`_\\ ,\nyou should:\n\n- In Finder, open (double click) the downloaded dmg file;\n\n- Click with the right mouse button (or Ctrl + click) on the\n ``wxPython3.0-osx-cocoa-py2.7.pkg`` file, and click on\n *Show Package Contents*\\ ;\n\n- Drag the ``Contents`` directory to your Desktop and, on the same\n Finder window, eject the \"wxPython\"-prefixed device;\n\n- Open ``Contents``\\ , then open ``Resources``\\ , there you should\n rename:\n\n - ``preflight`` to ``preinstall``\n - ``postflight`` to ``postinstall``\n\n- Open (double click) ``wxPython3.0-osx-cocoa-py2.7.pax.gz``\\ , there\n should appear an ``usr`` directory;\n\n- Create two directories in that very same ``Resources`` directory,\n with the names:\n\n - ``pkg_root``\n - ``scripts``\n\n- Move (drag):\n\n - ``usr`` to ``pkg_root``\n - ``preinstall`` to ``scripts``\n - ``postinstall`` to ``scripts``\n\n- In a Terminal, type these 2 commands (be careful, you should use the\n ``~`` symbol, not the ``\u02dc`` symbol)::\n\n cd ~/Desktop/Contents/Resources\n pkgbuild --root ./pkg_root --scripts ./scripts \\\n --identifier com.wxwidgets.wxpython \\\n ~/Desktop/wxPython3.0-osx-cocoa-py2.7-repackaged.pkg\n\nWait until the Terminal gives you the *Wrote package* message. You can\nnow delete the Contents directory and the downloaded dmg, just open\n(double click) the ``wxPython3.0-osx-cocoa-py2.7-repackaged.pkg`` file\nin your desktop and wxPython Classic 3.0 is installed. The\naforementioned blog post does the same procedure, but in a command\nline approach.\n\n**Homebrew**\n\nA single command in a Terminal is enough to install Homebrew_\\ ::\n\n /usr/bin/ruby -e \"$(curl -fsSL \\\n https://raw.githubusercontent.com/Homebrew/install/master/install)\"\n\nIn a terminal, before calling the install commands, remember to::\n\n brew update\n\nTo install Python 3 (already comes with pip, henceforth called\n``pip3`` for this Python version)::\n\n brew install python3\n\nThere you can install wxPython Phoenix via pip (replacing ``pip``\nby ``pip3`` in the install command).\n\nTo install Python 2 (already comes with pip) and wxPython Classic 3.0::\n\n brew install python wxpython\n\n\nRequirements on Windows\n-----------------------\n\nOn Windows, you can install Python from some distribution or directly\nfrom the `Python official site`_ binary packages, the procedure\ndescribed here uses the latter approach.\n\nThe installation asks for adding Python to the path, you should add it\nto use ``python``\\ , ``pip`` (and ``dose`` afterwards) on any path.\nIt's recommended that you keep the installation directory simple (e.g.\nthe paths where tox_ looks for Python interpreters: ``C:\\Python27``\nfor Python 2.7 and ``C:\\Python35`` for Python 3.5), as the\n``python.exe`` isn't renamed nor copied to version-specific filenames\nand that becomes an issue if you wish to keep more than one Python\nversion installed. The suggested path is the default for Python 2.7,\nbut for Python 3.5 you have to choose *Customize installation* to\nchange the path.\n\nThe Python binary packages for Windows already comes with pip as 3\nexecutable files in the ``Scripts`` subdirectory on the path where\nPython was installed: ``pip.exe``\\ , ``pipA.exe`` and\n``pipA.B.exe``\\ , where ``A.B`` is the Python version (e.g. ``2.7``\nor ``3.5``\\ ).\n\nA terminal is required for installing Dose and its requirements, as\nwell as for using Dose afterwards. You can use either the\n*Windows PowerShell* (\\ ``powershell.exe``\\ ) or the *Command Prompt*\n(\\ ``cmd.exe``\\ ), they can be called by pressing *Windows + R* and\ntyping the executable filename (without the ``.exe``\nsuffix/extension).\n\nIf you wish to install wxPython Phoenix, it can be easily installed\nvia pip using the formerly described command, you just have to care\nabout the path: you can see if pip is in the path by trying to call\nit or by seeing in the PowerShell if ``$env:path`` includes the\nPython scripts directory (e.g. ``C:\\Python27\\Scripts``\\ ). If not,\nyou should go to that directory before calling pip, e.g.::\n\n cd \\Python27\\Scripts\n pip install dose\n\nOn Python 2.7, you can install wxPython Classic from the package in\nthe `wxPython official site`_\\ . If you've installed Python in the\nrecommended path, the installer should detect the installation path.\nIf you installed Python on ``C:\\Python27`` (the Python installation\npath and also the directory where the ``python.exe`` lies), then\nyou should install wxPython on ``C:\\Python27\\Lib\\site-packages``.\nIf Python was installed otherwhere, the ``\\Lib\\site-packages``\nsuffix should be added accordingly. When asked, use the full\ninstallation (i.e., everything checked).\n\n\nRequirements on Cygwin (Windows)\n--------------------------------\n\nIf you just wish to run Dose on Windows, you should read the previous\nsection instead. Cygwin_ is another platform, one that runs on Windows\nand has many resources from Linux. On Cygwin, even the Python\nresources are the ones documented as available in POSIX systems.\n\nTo install Python 2 and wxPython Classic 3.0 on Cygwin, you\nhave to install these packages from the Cygwin installer (as well\nas their dependencies detected by the installer):\n\n- ``Net/curl``\n- ``Python/python``\n- ``Libs/python-wx3.0``\n- ``X11/xinit``\n- ``X11/xorg-server``\n\nOpen the *Start Menu -> Cygwin-X -> XWin Server*\\ , it will just flash\nand disappear, but its X and C icons should appear in the taskbar.\nClick on the *C icon -> System -> Cygwin Terminal* to open a terminal\nthat can display a X GUI in Windows.\n\nTo install pip, you should use this command in the Cygwin Terminal::\n\n curl https://bootstrap.pypa.io/get-pip.py | python\n\nTo activate wxPython Classic 3.0 (i.e., to make it the default\nwxPython installation)::\n\n cd /lib/python2.7/site-packages\n echo wx-3.0* > wx.pth\n\n\n----\n\nPlease see the `CHANGES.rst`_ file for more information.\n\n.. _`CHANGES.rst`: https://github.com/danilobellini/dose/CHANGES.rst\n\n----\n\n.. _colorama: https://pypi.python.org/pypi/colorama\n.. _watchdog: https://pypi.python.org/pypi/watchdog\n\n.. _`how to install wxPython`:\n https://wiki.wxpython.org/How%20to%20install%20wxPython\n\n.. _PyPI: http://pypi.python.org/pypi/dose\n.. _AUR: https://aur.archlinux.org/packages/dose\n.. _Homebrew: http://brew.sh\n.. _`Python official site`: https://www.python.org\n.. _`wxPython official site`: https://www.wxpython.org\n\n.. _`the DaviXX' Blog post about wxPython on OS X`:\n http://davixx.fr/blog/2016/01/25/wxpython-on-os-x-el-capitan/\n\n.. _tox: https://tox.readthedocs.io\n.. _Cygwin: https://www.cygwin.com\n\n\nCopyright (C) 2012-2016 Danilo de Jesus da Silva Bellini\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/danilobellini/dose", "keywords": "", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "dose", "package_url": "https://pypi.org/project/dose/", "platform": "", "project_url": "https://pypi.org/project/dose/", "project_urls": { "Homepage": "https://github.com/danilobellini/dose" }, "release_url": "https://pypi.org/project/dose/1.2.1/", "requires_dist": [ "watchdog (>=0.9.0)", "colorama (>=0.3.7)", "docutils (>=0.12)", "wxPython" ], "requires_python": "", "summary": "Automated traffic light/signal/semaphore GUI showing the state during test driven development (TDD), mainly written for coding dojos.", "version": "1.2.1" }, "last_serial": 4482986, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "a7db0d8ae84f28eee34d1703cd636498", "sha256": "308db5117887237392d5170838811b7521fc031c7f08f68336ba6082432047e4" }, "downloads": -1, "filename": "dose-1.0.0.tar.gz", "has_sig": false, "md5_digest": "a7db0d8ae84f28eee34d1703cd636498", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22478, "upload_time": "2013-07-05T11:40:18", "url": "https://files.pythonhosted.org/packages/f3/8e/0dc8b81de98e28e280e16b91afd6880f29c034e2189e0a2660c18c16f79f/dose-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "539c5fd26d6cb17123d7f62f4799da79", "sha256": "e7d5ed9dbc1c4b77cb22fd97d42c99b4659847a8a9163224744a1a07e969d0af" }, "downloads": -1, "filename": "dose-1.0.1.tar.gz", "has_sig": false, "md5_digest": "539c5fd26d6cb17123d7f62f4799da79", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21816, "upload_time": "2014-01-17T23:18:06", "url": "https://files.pythonhosted.org/packages/4e/c3/d3667ca6d7f54effa525e0142fc3f1f52077a50123ac3c15ad313854dfd0/dose-1.0.1.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "40987489d94d12189e3f5dbad64d8fcc", "sha256": "1752ec8d217aa2ca4fbabefb29cbf56b034abd0e2a52366da31e524597110e23" }, "downloads": -1, "filename": "dose-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "40987489d94d12189e3f5dbad64d8fcc", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 14448, "upload_time": "2016-08-09T15:26:56", "url": "https://files.pythonhosted.org/packages/09/c9/e160a4b485c3a82b1fa327271ed6305db4e4e0093db287ef93257c4b3256/dose-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "32117f3349da789a693d37c7f43cc63a", "sha256": "dfd148d6c4945d8e81d346f81f3d4183109a62368546816616492c721cd3b207" }, "downloads": -1, "filename": "dose-1.1.0.tar.gz", "has_sig": false, "md5_digest": "32117f3349da789a693d37c7f43cc63a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28652, "upload_time": "2016-08-09T15:26:50", "url": "https://files.pythonhosted.org/packages/4c/ac/8656088f22ff330162afe70c44297aa5a442551eed6faff088812713ea32/dose-1.1.0.tar.gz" }, { "comment_text": "", "digests": { "md5": "0e019ba44983ed20768124596a97a833", "sha256": "cd371209c75bcbda6bed1c5fa3c0f1d988ca7268da668286576c328514c83c2e" }, "downloads": -1, "filename": "dose-1.1.0.zip", "has_sig": false, "md5_digest": "0e019ba44983ed20768124596a97a833", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32891, "upload_time": "2016-08-09T15:26:53", "url": "https://files.pythonhosted.org/packages/22/bb/99336ed851ed9c649454a0bd4ae608c81f2e65cd5f1707d62883bfbe046c/dose-1.1.0.zip" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "326d7202d99c373a3d44cb60a4b43c1d", "sha256": "544c6f0c0474c16d9c64e316f0b6d96741328370b102a1a8c62fa2e4fb8494c5" }, "downloads": -1, "filename": "dose-1.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "326d7202d99c373a3d44cb60a4b43c1d", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 39658, "upload_time": "2016-08-19T13:59:18", "url": "https://files.pythonhosted.org/packages/39/a6/8cc89a4a994c88787ae68084029727d4c804412ad70f914cec5c79fd1721/dose-1.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a86300f00a3679d4a0f7e657cc6dad3f", "sha256": "852de030d7f8baf9542c4661c4d88692eeeb9687e694337e812e4d9bfee6d7f3" }, "downloads": -1, "filename": "dose-1.1.1.tar.gz", "has_sig": false, "md5_digest": "a86300f00a3679d4a0f7e657cc6dad3f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33680, "upload_time": "2016-08-19T13:59:13", "url": "https://files.pythonhosted.org/packages/ae/33/9eccc06906745f6a425189727819e2b1bd04fd1908bee23f181743f0bbb8/dose-1.1.1.tar.gz" }, { "comment_text": "", "digests": { "md5": "6d94f3a291426e473a91fbf3ffff2b85", "sha256": "8967bd94ad464d5f055ce3732e3a802cd5d69246aac7d8d7375b42927b807113" }, "downloads": -1, "filename": "dose-1.1.1.zip", "has_sig": false, "md5_digest": "6d94f3a291426e473a91fbf3ffff2b85", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39917, "upload_time": "2016-08-19T13:59:16", "url": "https://files.pythonhosted.org/packages/34/42/8ece541e6734bb30b6a5dc619d3722b8e78866b0b2f4f02b9a8808edf763/dose-1.1.1.zip" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "de8b3f96ffdbdf573c54d1202e786ad7", "sha256": "2392c3b7be780df24e006c3539602af58a27d211312a0f0e30fd6437b712dc62" }, "downloads": -1, "filename": "dose-1.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "de8b3f96ffdbdf573c54d1202e786ad7", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 370891, "upload_time": "2016-09-19T12:02:14", "url": "https://files.pythonhosted.org/packages/96/38/d27a456eb7e5063aad5feabe4104df242a270bdd24cdb30ff00739910685/dose-1.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a45e00fb1be154af7d3f8091bb57b49d", "sha256": "e2a594a3af7919aa7e80f33e17773fba1c888dbf3b159201386c3b71f345a4e8" }, "downloads": -1, "filename": "dose-1.2.0.tar.gz", "has_sig": false, "md5_digest": "a45e00fb1be154af7d3f8091bb57b49d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 361078, "upload_time": "2016-09-19T12:02:06", "url": "https://files.pythonhosted.org/packages/7c/f1/531bf6f13d360107a7223d240da690e6ff7c059eeac94fe9b4eb5469a8bc/dose-1.2.0.tar.gz" }, { "comment_text": "", "digests": { "md5": "65f5615a92b6e3fc902fb2ab163593c6", "sha256": "240628d7349753cc1dfdf9092157a58c6004bc543c2dca3f10e9b3768b781b0a" }, "downloads": -1, "filename": "dose-1.2.0.zip", "has_sig": false, "md5_digest": "65f5615a92b6e3fc902fb2ab163593c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 371333, "upload_time": "2016-09-19T12:02:10", "url": "https://files.pythonhosted.org/packages/a2/10/567e861c4e392a77eaa8a2abaaed8cd32a15cb82fe5524bc6aeac656b1bd/dose-1.2.0.zip" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "e74d88c685749de7d2990f9b70d20ff6", "sha256": "ae80b26a460696a2129c5939d96477554e2cccbb4283ac9b533fc40eaed82faa" }, "downloads": -1, "filename": "dose-1.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e74d88c685749de7d2990f9b70d20ff6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 376293, "upload_time": "2018-11-13T20:03:26", "url": "https://files.pythonhosted.org/packages/02/50/8facdde73237f6f0c12376cd2f1d69243df9c8f0ab195252ef32c92ff37a/dose-1.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fe6731542a27d8945e734abc10e1721d", "sha256": "49ca085451324d524177c5c188f95bccd3ef8d96b64ce1094b285b733150e38f" }, "downloads": -1, "filename": "dose-1.2.1.tar.gz", "has_sig": false, "md5_digest": "fe6731542a27d8945e734abc10e1721d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 360669, "upload_time": "2018-11-13T20:03:30", "url": "https://files.pythonhosted.org/packages/9c/36/7ba8941145fa661f530e81ecf3a0c166139cbd05d288d88443ebc252a571/dose-1.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e74d88c685749de7d2990f9b70d20ff6", "sha256": "ae80b26a460696a2129c5939d96477554e2cccbb4283ac9b533fc40eaed82faa" }, "downloads": -1, "filename": "dose-1.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e74d88c685749de7d2990f9b70d20ff6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 376293, "upload_time": "2018-11-13T20:03:26", "url": "https://files.pythonhosted.org/packages/02/50/8facdde73237f6f0c12376cd2f1d69243df9c8f0ab195252ef32c92ff37a/dose-1.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fe6731542a27d8945e734abc10e1721d", "sha256": "49ca085451324d524177c5c188f95bccd3ef8d96b64ce1094b285b733150e38f" }, "downloads": -1, "filename": "dose-1.2.1.tar.gz", "has_sig": false, "md5_digest": "fe6731542a27d8945e734abc10e1721d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 360669, "upload_time": "2018-11-13T20:03:30", "url": "https://files.pythonhosted.org/packages/9c/36/7ba8941145fa661f530e81ecf3a0c166139cbd05d288d88443ebc252a571/dose-1.2.1.tar.gz" } ] }