{ "info": { "author": "the-lay", "author_email": "ilja.gubin@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3 :: Only", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "## voltools\n[![TraviCI build status](https://travis-ci.com/the-lay/voltools.svg?branch=master)](https://travis-ci.com/the-lay/voltools)\n[![PyPI latest version](https://badge.fury.io/py/voltools.svg)](https://pypi.org/project/voltools/)\n\n##### CUDA-accelerated numpy/cupy texture memory 3D affine transformations\n\n#### Features\n1. `transforms` module that offers CUDA-accelerated affine transforms for 3D numpy arrays:\n```python\nimport numpy as np\nfrom voltools import transform\n\nvolume = np.random.random((200, 200, 200)).astype(np.float32)\ntransformed_volume = transform(volume, interpolation='filt_bspline', device='cpu',\n translation=(10, 0, -10),\n rotation=(0, 45, 0), rotation_units='deg', rotation_order='rzxz')\n```\n\n2. `StaticVolume` class optimized for multiple transformations of the same data.\nThe data transfer is minimized (especially for GPU devices) to just the transformation matrix for each transformation.\n```python\nimport numpy as np\nfrom voltools import StaticVolume\n\nvolume = StaticVolume(np.random.random((200, 200, 200)).astype(np.float32), interpolation='filt_bspline', device='gpu:0')\nfor i in range(0, 180):\n rotated_vol = volume.rotate(rotation=(0, i, 0), rotation_units='deg', rotation_order='rzxz', profile=True)\n```\n\n3. If you don't need to move data back from GPU to CPU, you can specify `output=some_cupy_array` keyword\nand the result of transformation will be saved there. Works for both `transforms` and `StaticVolume`. If output is not\nspecified, methods will return a numpy array.\n\n4. Support for different devices. Each method accepts `device` keyword with option `cpu` (default).\nHowever, if cupy is present, additional options include `gpu` (cupy auto-selects gpu) and `gpu:X`\nfor each GPU (X is ID of GPU).\n\n5. Various interpolations currently supported:\n- `linear`, tri-linear interpolation\n- `bspline`, cubic b-spline interpolation (optimized, 8 texture lookups)\n- `bspline_simple`, cubic b-spline interpolation (simple implementation, 27 texture lookups)\n- `filt_bspline`, prefiltered cubic b-spline interpolation (8 texture lookups) \n- `filt_bspline_simple`, prefiltered cubic b-spline interpolation (27 texture lookups)\n\n#### Installation\n\nPIP: `pip install voltools` \nSource: `pip install git+https://github.com/the-lay/voltools`\n\nIf you want to use use GPUs, please install cupy >= 7.0.0b4\n([cupy installation guide](https://docs-cupy.chainer.org/en/stable/install.html#install-cupy)).\n\n\n#### TODO\n- Tests\n- Travis? Other CI?\n- Visualizations? Some kind of easy to launch volume viewer.\n- Return scripts back: projections\n- Develop branch for cleaner separation of code\n\n#### Notes\n- CUDA cubic b-spline interpolation is based on [Danny Ruijters's implementation](https://github.com/DannyRuijters/CubicInterpolationCUDA/)\n- Transformation matrices are based on [Christoph Gohlike's transformations.py](https://www.lfd.uci.edu/~gohlke/code/transformations.py.html)\n\n\n#### Benchmark\nSource: combination of different runs (`device='cpu' and 'gpu'`, `order=1 or 3`, `interpolation='linear' or 'filt_bspline_simple' or 'filt_bspline'`) of `tests/benchmark.py` \nResults on laptop GTX1050Ti, i7-7700HQ CPU @ 2.80GHz, timings are in ms, first column is the size of volume\n\n##### Linear interpolation (`interpolation='linear'`)\nScipy.affine_transform was run with `order=1`\n```\n scipy np_transform np_transform_out cp_transform cp_transform_out static_vol static_vol_out\n5, 5, 5 0.099339 1.707743 0.198648 0.178715 0.149916 0.096302 0.057303\n25, 25, 25 1.317875 0.355751 0.226222 0.193489 0.162452 0.113279 0.057102\n50, 50, 50 9.752507 0.490053 0.290321 0.230922 0.198530 0.151064 0.092354\n100, 100, 100 86.330383 1.569304 1.426492 0.835178 0.773746 0.494033 0.403363\n250, 250, 250 1732.845833 22.273793 21.761067 13.274235 12.677875 9.971454 8.768116\n```\n\n##### Cubic b-spline interpolation optimized lookup (`interpolation='bspline' or interpolation='filt_bspline'`)\nScipy.affine_transform was run with `order=3`\n```\n scipy np_transform np_transform_out cp_transform cp_transform_out static_vol static_vol_out\n5, 5, 5 0.185161 1.467492 0.191925 0.176825 0.147542 0.095937 0.055644\n25, 25, 25 5.506060 0.336234 0.208039 0.187378 0.155858 0.112726 0.061163\n50, 50, 50 45.34205 0.571488 0.392732 0.329547 0.290759 0.242434 0.181332\n100, 100, 100 368.032446 2.488342 2.331586 1.689142 1.627921 1.345535 1.250627\n250, 250, 250 6003.420537 48.115719 47.672480 39.183325 38.772662 35.991094 34.685690\n```\n\n##### Cubic b-spline interpolation (`interpolation='bspline_simple' or interpolation='filt_bspline_simple'`)\nScipy.affine_transform was run with `order=3`\n```\n scipy np_transform np_transform_out cp_transform cp_transform_out static_vol static_vol_out\n5, 5, 5 0.201232 4.528787 0.207631 0.195885 0.163193 0.109361 0.059611\n25, 25, 25 5.240529 0.332447 0.238356 0.217309 0.194111 0.138756 0.09321\n50, 50, 50 43.515086 0.804508 0.632981 0.560689 0.527334 0.474820 0.416062\n100, 100, 100 375.886700 4.232868 4.114524 3.454444 3.390018 3.091396 2.999451\n250, 250, 250 6189.052927 95.083083 94.479406 85.200392 84.435548 81.808363 80.959284\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/the-lay/voltools", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "voltools", "package_url": "https://pypi.org/project/voltools/", "platform": "any", "project_url": "https://pypi.org/project/voltools/", "project_urls": { "Homepage": "https://github.com/the-lay/voltools" }, "release_url": "https://pypi.org/project/voltools/0.4.6/", "requires_dist": [ "numpy", "scipy", "gputil" ], "requires_python": "", "summary": "CUDA-accelerated 3D affine transformations for NumPy and CuPy", "version": "0.4.6", "yanked": false, "yanked_reason": null }, "last_serial": 10610179, "releases": { "0.0.3": [ { "comment_text": "", "digests": { "md5": "f7aa452f584bd3375bcdcce554d664f4", "sha256": "cef37943361577a1368ad05cf4a3aadf24795c4ab13c821152c97bf9ad4bf34d" }, "downloads": -1, "filename": "voltools-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "f7aa452f584bd3375bcdcce554d664f4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13803, "upload_time": "2019-01-20T14:02:23", "upload_time_iso_8601": "2019-01-20T14:02:23.061554Z", "url": "https://files.pythonhosted.org/packages/66/31/17e1628ed8835efcda8626338596c5f9ef3c3b1b9e2cdec4a03ee58b83c5/voltools-0.0.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "27c34b690f963d445c8ed5904ab96f88", "sha256": "0a9922b5e048dfdd7c90882808c1653a9e6d014c144fc93173515557f029facb" }, "downloads": -1, "filename": "voltools-0.0.3.tar.gz", "has_sig": false, "md5_digest": "27c34b690f963d445c8ed5904ab96f88", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13663, "upload_time": "2019-01-20T14:02:24", "upload_time_iso_8601": "2019-01-20T14:02:24.766975Z", "url": "https://files.pythonhosted.org/packages/76/93/081bcff9cce20a4fe7851c324cb320f0975c58259c16acf2e5b6c687accd/voltools-0.0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "5091d7d82bc3c12cb38ff6718d7905b2", "sha256": "e0ea050d644bb12c4bfe92b7ef86f7b2291fdc23b794c761736f22d7e941cdf4" }, "downloads": -1, "filename": "voltools-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "5091d7d82bc3c12cb38ff6718d7905b2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14480, "upload_time": "2019-01-31T14:06:23", "upload_time_iso_8601": "2019-01-31T14:06:23.190056Z", "url": "https://files.pythonhosted.org/packages/ee/8d/8ddb0c6b2e9f2ef05e47dc0d2b006425e720d2313cbd3d64efc871398650/voltools-0.0.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b6b35947a2ffe9aa3d84fc4519f14750", "sha256": "966a9735a8497a1df947b1602a4801addb23b4112cba4d56ac3ef252356ca873" }, "downloads": -1, "filename": "voltools-0.0.4.tar.gz", "has_sig": false, "md5_digest": "b6b35947a2ffe9aa3d84fc4519f14750", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14015, "upload_time": "2019-01-31T14:06:24", "upload_time_iso_8601": "2019-01-31T14:06:24.531281Z", "url": "https://files.pythonhosted.org/packages/8e/04/74eaa062e720f4c909ae56f0a6880155d165002c165229bb7a2deb70ad24/voltools-0.0.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "aa095bf82abfa5d5505a4f6ac52316fd", "sha256": "d84fb5af88a2a22fe7faccb7779b8c1ea29ab7f0e7ed2b7afad2e95378cad915" }, "downloads": -1, "filename": "voltools-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "aa095bf82abfa5d5505a4f6ac52316fd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14527, "upload_time": "2019-01-31T14:26:00", "upload_time_iso_8601": "2019-01-31T14:26:00.905469Z", "url": "https://files.pythonhosted.org/packages/71/cf/40e8edddabd24d7016425ad65d5a720c5adbbe22e63fe0a2da8bb016dee6/voltools-0.0.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "aa739ad4e624e1deeba5501701abc85f", "sha256": "fd6be8d6b9b205457f59fa8fced0877929221b3e18e68c52291da986ad94d14b" }, "downloads": -1, "filename": "voltools-0.0.5.tar.gz", "has_sig": false, "md5_digest": "aa739ad4e624e1deeba5501701abc85f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14041, "upload_time": "2019-01-31T14:26:03", "upload_time_iso_8601": "2019-01-31T14:26:03.100527Z", "url": "https://files.pythonhosted.org/packages/bb/0f/4859ebfb8f0ab79a4a22f493e3e713789d7533c62b51007d67d73cba411c/voltools-0.0.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "6729b2c7932b78274c227f83ef0c0922", "sha256": "4d4f34262b5813a4011ea72db6d95555723121193ac4dec401ffa5e4b3200c39" }, "downloads": -1, "filename": "voltools-0.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "6729b2c7932b78274c227f83ef0c0922", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14781, "upload_time": "2019-02-07T22:10:05", "upload_time_iso_8601": "2019-02-07T22:10:05.398184Z", "url": "https://files.pythonhosted.org/packages/e1/36/aded007a4cfaff17f9f6c618d590e29a1e9866697eb361d28dcc2d756738/voltools-0.0.6-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "81d3c83e38648ecf2d821c12f302c7b8", "sha256": "79a9316ca679dc6afa9d29c1c9a14e031dafaf41efd63f6b8f62deb9c31bcfce" }, "downloads": -1, "filename": "voltools-0.0.6.tar.gz", "has_sig": false, "md5_digest": "81d3c83e38648ecf2d821c12f302c7b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14563, "upload_time": "2019-02-07T22:10:06", "upload_time_iso_8601": "2019-02-07T22:10:06.959761Z", "url": "https://files.pythonhosted.org/packages/12/cc/7a492668c3d901ed955793264300739a68301221910efe2835d5b9b894b4/voltools-0.0.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "46f6b4fcf46937a11d3d918a0097f185", "sha256": "250439f58657734dc7b44216f9cc322ee8dd593f4a81a2f776be2b8031675721" }, "downloads": -1, "filename": "voltools-0.1.0.tar.gz", "has_sig": false, "md5_digest": "46f6b4fcf46937a11d3d918a0097f185", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10662, "upload_time": "2019-10-23T12:16:39", "upload_time_iso_8601": "2019-10-23T12:16:39.616249Z", "url": "https://files.pythonhosted.org/packages/a9/6c/05280261a24099afa6160fa3a234bac6b5c93a4e5fd6b555c1c8ca841208/voltools-0.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "9f8bb7d3060795a185279f3ce2719b8a", "sha256": "704be89cf5d80a164946fccd5d524697ceb56cc336b84beccdcc49b6c253ad1f" }, "downloads": -1, "filename": "voltools-0.1.1-py3.7.egg", "has_sig": false, "md5_digest": "9f8bb7d3060795a185279f3ce2719b8a", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 27726, "upload_time": "2019-10-24T10:04:36", "upload_time_iso_8601": "2019-10-24T10:04:36.089462Z", "url": "https://files.pythonhosted.org/packages/35/7a/b9bb1c22719a84241debf7079918a2d4ee306ae62c22f4d17b7b0842dddc/voltools-0.1.1-py3.7.egg", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "cb8b3ac62ddb63af733f63d57c4a57bf", "sha256": "7b2415aae3ce3dc647474e8fcacd8ccf550a4b564fdd008fd1923515ce04e227" }, "downloads": -1, "filename": "voltools-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "cb8b3ac62ddb63af733f63d57c4a57bf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14027, "upload_time": "2019-10-24T09:01:07", "upload_time_iso_8601": "2019-10-24T09:01:07.268586Z", "url": "https://files.pythonhosted.org/packages/79/3e/34a77cf53bd7c8cdc9001733990807f3cfe53f39dbbb9f915de3cbe895b1/voltools-0.1.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "95abe9ffdbcd5ce5991e1dc9c56700d0", "sha256": "5c579b3c9996fe440a5235805ba072ea1c34998b9dcd63cf45f718b4e2c171d6" }, "downloads": -1, "filename": "voltools-0.1.1.win-amd64.zip", "has_sig": false, "md5_digest": "95abe9ffdbcd5ce5991e1dc9c56700d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23494, "upload_time": "2019-10-24T09:01:10", "upload_time_iso_8601": "2019-10-24T09:01:10.157651Z", "url": "https://files.pythonhosted.org/packages/0f/c3/fa8dd59dc1efe6559089c5bf1f4ffd2ac020debcd5ae4fa6f3dcf456b835/voltools-0.1.1.win-amd64.zip", "yanked": false, "yanked_reason": null } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "f5219476c69dc0f824208d7d00f54d39", "sha256": "fdddec7c5b69f3d5fbac6ede6546e4231a3cc4ead0b31cbef837d189b566ae12" }, "downloads": -1, "filename": "voltools-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "f5219476c69dc0f824208d7d00f54d39", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17538, "upload_time": "2019-10-24T10:04:34", "upload_time_iso_8601": "2019-10-24T10:04:34.102742Z", "url": "https://files.pythonhosted.org/packages/d9/0a/beaaab29bf65d97eaee093dd5ebf30f73d1d634a81747375af3343d5f906/voltools-0.1.2-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "40c0852ba46bac1e28ec2218ee01ccaa", "sha256": "96582d210f8498c49e1715ac0b7ac7526b3fe9885863931d8d8d5ad7125f342b" }, "downloads": -1, "filename": "voltools-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "40c0852ba46bac1e28ec2218ee01ccaa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17142, "upload_time": "2019-10-24T13:01:49", "upload_time_iso_8601": "2019-10-24T13:01:49.210338Z", "url": "https://files.pythonhosted.org/packages/8f/44/a65e399b510365ffeeb0b28f7441219876db421dc71ccd1e8610a53f9001/voltools-0.1.3-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "a1c1020430debf01050215b964545dad", "sha256": "582312de5bca3f90444a3ef627b972f971544662802f5c8b528dd74b2e2ce2de" }, "downloads": -1, "filename": "voltools-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "a1c1020430debf01050215b964545dad", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16974, "upload_time": "2019-10-25T13:54:30", "upload_time_iso_8601": "2019-10-25T13:54:30.954787Z", "url": "https://files.pythonhosted.org/packages/fb/7e/15884936140d663304abfb208e107a946630697ab196257b310705ed7a23/voltools-0.1.4-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "d3cf09211323778b7a8f2fd4ac7321b5", "sha256": "22698857903b4a1655b26f49d0ecbd38414a5a5d12ad7dd6882feb3872f9dc57" }, "downloads": -1, "filename": "voltools-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d3cf09211323778b7a8f2fd4ac7321b5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18064, "upload_time": "2019-11-20T20:07:15", "upload_time_iso_8601": "2019-11-20T20:07:15.066722Z", "url": "https://files.pythonhosted.org/packages/c3/cc/85f9df9c6c0c7d7387add90e49303c8d6a3896a6ae58ed08743029924000/voltools-0.2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "313dac24fc141b26f9fb6021602b4e97", "sha256": "cc39b2b79ebdae932ee01cf9bdeed37069ac3e67d20ebf5346e7326228eb59e2" }, "downloads": -1, "filename": "voltools-0.2.0.tar.gz", "has_sig": false, "md5_digest": "313dac24fc141b26f9fb6021602b4e97", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15921, "upload_time": "2019-11-20T20:07:16", "upload_time_iso_8601": "2019-11-20T20:07:16.888004Z", "url": "https://files.pythonhosted.org/packages/d5/a1/daa5f668afb687396a45b3c29138330ffb2be91df8cc599a5ecf885a3ce2/voltools-0.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "3e79e0e71b96ee3c370838902d585b73", "sha256": "e924a9a277dd1aab40248c874104d94b6e2508208a775a1efaff87457b48a949" }, "downloads": -1, "filename": "voltools-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "3e79e0e71b96ee3c370838902d585b73", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18187, "upload_time": "2019-11-20T20:26:16", "upload_time_iso_8601": "2019-11-20T20:26:16.180111Z", "url": "https://files.pythonhosted.org/packages/d6/f7/1503273e0604b07eb472c78284251e31c96a9f8944b169bc5c96efb06023/voltools-0.2.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b7be31c8ede22766e7beb887fe11fca9", "sha256": "ba938763399cf9cb04a69f053327ebef6d4a24fc9ffb4085d18fb7522d04167d" }, "downloads": -1, "filename": "voltools-0.2.1.tar.gz", "has_sig": false, "md5_digest": "b7be31c8ede22766e7beb887fe11fca9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15988, "upload_time": "2019-11-20T20:26:18", "upload_time_iso_8601": "2019-11-20T20:26:18.656184Z", "url": "https://files.pythonhosted.org/packages/8f/eb/ede1591f71b66166e2366ca27e2fdeaf94e8b499ef7efef440155dda10c9/voltools-0.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "cd0f96dea28f14a956fb1392bee701fa", "sha256": "5a4c78c752966e309bfb5573ede26055ec260e7d75fbe0deab98d45a0089ca1b" }, "downloads": -1, "filename": "voltools-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "cd0f96dea28f14a956fb1392bee701fa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18190, "upload_time": "2019-11-20T20:41:40", "upload_time_iso_8601": "2019-11-20T20:41:40.856495Z", "url": "https://files.pythonhosted.org/packages/95/c6/942f3324f93dfa88b53fd1c5d85245be92bea36232b5564efbd42693af98/voltools-0.2.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ed199300dc188516033c96340cd2cbe6", "sha256": "c9dcc6994593dba48b6702966dbb41557389e59d5240c1135c9454ef109d6e5b" }, "downloads": -1, "filename": "voltools-0.2.2.tar.gz", "has_sig": false, "md5_digest": "ed199300dc188516033c96340cd2cbe6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16001, "upload_time": "2019-11-20T20:41:42", "upload_time_iso_8601": "2019-11-20T20:41:42.949262Z", "url": "https://files.pythonhosted.org/packages/e9/8c/bd21543f10651a85404f754e2b06877624bc1953e4430bba81f7c3e92f3c/voltools-0.2.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "513bb0b3f231c762c98f4efd853fe18e", "sha256": "be517c1387980c6840a5910793bdd991126207bce0ddb91cc9331295fcf81fdf" }, "downloads": -1, "filename": "voltools-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "513bb0b3f231c762c98f4efd853fe18e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19205, "upload_time": "2020-02-11T13:50:38", "upload_time_iso_8601": "2020-02-11T13:50:38.442115Z", "url": "https://files.pythonhosted.org/packages/8e/d0/d3e1c795ac7a0d6ba89c723e763942332c12fec5af9b90cdc088564fb2c7/voltools-0.3.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "2daffdf8c74555714d154029e1c5b13b", "sha256": "7b6d3ca3db43a39e33e6e69ffa6c88324a93c5e4eeff1c7cb88011656da2d6a5" }, "downloads": -1, "filename": "voltools-0.3.0.tar.gz", "has_sig": false, "md5_digest": "2daffdf8c74555714d154029e1c5b13b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17290, "upload_time": "2020-02-11T13:50:39", "upload_time_iso_8601": "2020-02-11T13:50:39.986786Z", "url": "https://files.pythonhosted.org/packages/17/de/f5f92939b342d512ed3f97276aea2f4e0312e7c0d135b4779424414fc475/voltools-0.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "d8a9ec15c1fabcf977b1f2745d232a70", "sha256": "e49ea327398430b98d992603e914a184345d8bd458058fefd119d52c2cbcf4b2" }, "downloads": -1, "filename": "voltools-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "d8a9ec15c1fabcf977b1f2745d232a70", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19264, "upload_time": "2020-02-13T23:38:02", "upload_time_iso_8601": "2020-02-13T23:38:02.907012Z", "url": "https://files.pythonhosted.org/packages/ad/cf/f81996d1f6285c531373cb3890d2d784df2c40a1cbee9006c866ef904303/voltools-0.3.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9d02c1b31a89d89a6792d803add0e624", "sha256": "3ef068c0a919486542666aac5b9e040f2cbdc4afff680402d7947ae0f35b4bf3" }, "downloads": -1, "filename": "voltools-0.3.2.tar.gz", "has_sig": false, "md5_digest": "9d02c1b31a89d89a6792d803add0e624", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20365, "upload_time": "2020-02-13T23:38:04", "upload_time_iso_8601": "2020-02-13T23:38:04.161842Z", "url": "https://files.pythonhosted.org/packages/27/8a/21b2f0c4737df5920172bb3d4f8cd5bfb9c86a31a5863fd5c6af74099df2/voltools-0.3.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "2ad659a16995ed87f930c50b33bcd650", "sha256": "b249c4df91a976f6fb48328dc8f5b6be708491cf2bae1b9aca0460480a7e5852" }, "downloads": -1, "filename": "voltools-0.3.3-py3-none-any.whl", "has_sig": false, "md5_digest": "2ad659a16995ed87f930c50b33bcd650", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19264, "upload_time": "2020-02-18T11:15:51", "upload_time_iso_8601": "2020-02-18T11:15:51.297223Z", "url": "https://files.pythonhosted.org/packages/25/63/a914e089869724908c698e22f5d0b4845e7dd09e9f0e3417311b975c8142/voltools-0.3.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "85e0b5fae0f6e0f4f2e8089ebe8ef9ff", "sha256": "002274e30d01fb5b6409a7c6bc292519d5f2258ff1d286c1c0b51be60edf7ccd" }, "downloads": -1, "filename": "voltools-0.3.3.tar.gz", "has_sig": false, "md5_digest": "85e0b5fae0f6e0f4f2e8089ebe8ef9ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20501, "upload_time": "2020-02-18T11:15:52", "upload_time_iso_8601": "2020-02-18T11:15:52.902719Z", "url": "https://files.pythonhosted.org/packages/87/45/d4fa2d8a919bb750c4e37f754039b85a20dd31a7f8ecb1321fce884688bb/voltools-0.3.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "e4e64c2668a3df1a206f3b3068fb145b", "sha256": "3a658fafd1c61f678398cef994ae0679e3de3ca2be2d3950366833316ae5fe82" }, "downloads": -1, "filename": "voltools-0.3.4-py3-none-any.whl", "has_sig": false, "md5_digest": "e4e64c2668a3df1a206f3b3068fb145b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19127, "upload_time": "2020-02-20T11:04:23", "upload_time_iso_8601": "2020-02-20T11:04:23.783952Z", "url": "https://files.pythonhosted.org/packages/45/1f/2206cfc1b9dcdd33a0fb720e84a4d5e0e68d21e6f697a3fced7226e111a4/voltools-0.3.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "7378facc1262d224fd69ac8258c78424", "sha256": "d8c7a4cc07b7c6e674b7f32050f6eca367ea3d8cf55bf08433d19bd51b0d6878" }, "downloads": -1, "filename": "voltools-0.3.4.tar.gz", "has_sig": false, "md5_digest": "7378facc1262d224fd69ac8258c78424", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17375, "upload_time": "2020-02-20T11:04:25", "upload_time_iso_8601": "2020-02-20T11:04:25.202629Z", "url": "https://files.pythonhosted.org/packages/ca/43/217ccd72a3dd3eb9237efc759097d63d35ae9326f1fe6f55b264ba8097e6/voltools-0.3.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.4b0": [ { "comment_text": "", "digests": { "md5": "d5b4df32ccc17cdb2e35d2fbc0a0e16a", "sha256": "cdb124c3645359b98a86fadaf0f3d25aa02f700b59d09cc55e06366c4ce8c14b" }, "downloads": -1, "filename": "voltools-0.3.4b0.tar.gz", "has_sig": false, "md5_digest": "d5b4df32ccc17cdb2e35d2fbc0a0e16a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19662, "upload_time": "2020-02-20T12:57:36", "upload_time_iso_8601": "2020-02-20T12:57:36.683922Z", "url": "https://files.pythonhosted.org/packages/10/85/de0ba60b9bdebd2a03ebf0856aa490e1899b5dfd97a3b415245246a14c3c/voltools-0.3.4b0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.4rc0": [ { "comment_text": "", "digests": { "md5": "c7990f49bb4f1b2c827911214c5cf87f", "sha256": "2bb727d8af68b9a0831f4358b04923149c1999349f0de4054aac62808c123f0c" }, "downloads": -1, "filename": "voltools-0.3.4rc0-py3-none-any.whl", "has_sig": false, "md5_digest": "c7990f49bb4f1b2c827911214c5cf87f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19253, "upload_time": "2020-02-20T14:11:15", "upload_time_iso_8601": "2020-02-20T14:11:15.773599Z", "url": "https://files.pythonhosted.org/packages/06/80/1ee2bd825f0294c5687a68605b44a90d6f952d87ee82a0058c4fab93e20c/voltools-0.3.4rc0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "486aae78e9698c0e47ffc0a20154b508", "sha256": "2b3b7d17ed48f9aec154de448508a1b7919ec2fa1a17f9e333ea39d9973a2329" }, "downloads": -1, "filename": "voltools-0.3.4rc0.tar.gz", "has_sig": false, "md5_digest": "486aae78e9698c0e47ffc0a20154b508", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19850, "upload_time": "2020-02-20T14:11:17", "upload_time_iso_8601": "2020-02-20T14:11:17.136854Z", "url": "https://files.pythonhosted.org/packages/03/57/6d19f241719ebb9e8b921377b4ba3c9b56992b8a854ef654261ad320bfa4/voltools-0.3.4rc0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "b0bc5b0f8848aac7e6208c13e855ff83", "sha256": "7f24b0c2069eca74923fd368e437579ee344378598d3e3cc8aba37f0e879e6c8" }, "downloads": -1, "filename": "voltools-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b0bc5b0f8848aac7e6208c13e855ff83", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19915, "upload_time": "2020-03-21T06:42:07", "upload_time_iso_8601": "2020-03-21T06:42:07.561515Z", "url": "https://files.pythonhosted.org/packages/ce/92/e78617fbebd46999f282872570b22670bc99f8009b8bc6f9a4693391622f/voltools-0.4.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "70e3abbd12e9d8367d5c431d6e2a68ea", "sha256": "bece0b095c45db6d650d44a9811bbc7271e5276af16d81a0c9558f5d889799b1" }, "downloads": -1, "filename": "voltools-0.4.0.tar.gz", "has_sig": false, "md5_digest": "70e3abbd12e9d8367d5c431d6e2a68ea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20519, "upload_time": "2020-03-21T06:42:08", "upload_time_iso_8601": "2020-03-21T06:42:08.887264Z", "url": "https://files.pythonhosted.org/packages/1e/97/34f29587bf0e7be43fae3d9c310d47df3cfdeb860f447932707830728bc1/voltools-0.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "1676973270c5b21ccd704cd31bb0e8f9", "sha256": "bfb5b74c2fe226cfa22672f08077d69800b4677706c0cafba5f74314bd986252" }, "downloads": -1, "filename": "voltools-0.4.2-py3-none-any.whl", "has_sig": false, "md5_digest": "1676973270c5b21ccd704cd31bb0e8f9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20156, "upload_time": "2020-04-30T13:47:53", "upload_time_iso_8601": "2020-04-30T13:47:53.112094Z", "url": "https://files.pythonhosted.org/packages/6b/c5/b126f42784e77374327d9252de727037d4f9bddbb294fa68b2b0632c5bdb/voltools-0.4.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "febf432e91701c5826a0edcb0c931621", "sha256": "4a5382e194a2769676e7ec67143055444072d140c19d9b24dbb5ce014ee7a603" }, "downloads": -1, "filename": "voltools-0.4.2.tar.gz", "has_sig": false, "md5_digest": "febf432e91701c5826a0edcb0c931621", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20678, "upload_time": "2020-04-30T13:47:54", "upload_time_iso_8601": "2020-04-30T13:47:54.009569Z", "url": "https://files.pythonhosted.org/packages/b9/a8/3b1b52277688d0451da965aa4f7ccfbd9bc5abd550dd97e4f716b577d550/voltools-0.4.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "d1ef66124b9d0f11c5cdc23083ba0a2c", "sha256": "0ac7bd86baa8442c8b8b51c694480cd7670fa3ad0ab17c5395e95443cfa1e6a7" }, "downloads": -1, "filename": "voltools-0.4.3-py3-none-any.whl", "has_sig": false, "md5_digest": "d1ef66124b9d0f11c5cdc23083ba0a2c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20170, "upload_time": "2021-05-03T18:47:05", "upload_time_iso_8601": "2021-05-03T18:47:05.941205Z", "url": "https://files.pythonhosted.org/packages/81/a7/6709d5c420e95617e87644016d6be07efae83072667f9e152f9a4d3cfbd1/voltools-0.4.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "93a00edcba318d85f1e6562c0ed35030", "sha256": "82b642eb28e4b889fd750a06d92323a31172eae3eb550e54bb0eb8635cf651a8" }, "downloads": -1, "filename": "voltools-0.4.3.tar.gz", "has_sig": false, "md5_digest": "93a00edcba318d85f1e6562c0ed35030", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21365, "upload_time": "2021-05-03T18:47:07", "upload_time_iso_8601": "2021-05-03T18:47:07.058972Z", "url": "https://files.pythonhosted.org/packages/4a/22/b542cb2c9a00b74e4471e8be68b959ceb23268e9b82f9c871bbd552b0f91/voltools-0.4.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.5": [ { "comment_text": "", "digests": { "md5": "cd35e81a5da43791d4e8c3a2715d5f00", "sha256": "10fe9b37dcf4602438cab70022a007eab5fbb9b6888a2a021b0cd06c2cd9d559" }, "downloads": -1, "filename": "voltools-0.4.5-py3-none-any.whl", "has_sig": false, "md5_digest": "cd35e81a5da43791d4e8c3a2715d5f00", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19817, "upload_time": "2021-06-10T09:00:46", "upload_time_iso_8601": "2021-06-10T09:00:46.220450Z", "url": "https://files.pythonhosted.org/packages/ca/9b/d9992665ac93cbda46eac0db63566ae062a614e7ee9cca91ca25b254a0ee/voltools-0.4.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "4f8df3de5abd181424f1cdbad7c29def", "sha256": "067a1eb3d74e2c190b50bccee9981035091ab3b0a9dd9822b365dd554a90bdc5" }, "downloads": -1, "filename": "voltools-0.4.5.tar.gz", "has_sig": false, "md5_digest": "4f8df3de5abd181424f1cdbad7c29def", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20746, "upload_time": "2021-06-10T09:00:47", "upload_time_iso_8601": "2021-06-10T09:00:47.437925Z", "url": "https://files.pythonhosted.org/packages/2d/5e/82c296150167a0684cab33880964e12b1fe9cab5b8c508700c1e9e6a43f5/voltools-0.4.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.6": [ { "comment_text": "", "digests": { "md5": "935cbf50595215da14f7039851ec182c", "sha256": "11ea453913f4bea14b65228f55dbaf3f714a2f40644642dc00ea5d2e399bf8f5" }, "downloads": -1, "filename": "voltools-0.4.6-py3-none-any.whl", "has_sig": false, "md5_digest": "935cbf50595215da14f7039851ec182c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19819, "upload_time": "2021-06-10T10:03:32", "upload_time_iso_8601": "2021-06-10T10:03:32.310140Z", "url": "https://files.pythonhosted.org/packages/46/94/c0d12a3de1c2ffb24a9a89b89eddde225be655e9fab8f91aed2df196b939/voltools-0.4.6-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "529ea60ff3b4646b98fee7bcaea55a1d", "sha256": "72614339795a8286aea9ee07c2b0d10e7cca148eca7694f34e3f823b152b7074" }, "downloads": -1, "filename": "voltools-0.4.6.tar.gz", "has_sig": false, "md5_digest": "529ea60ff3b4646b98fee7bcaea55a1d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20750, "upload_time": "2021-06-10T10:03:33", "upload_time_iso_8601": "2021-06-10T10:03:33.609716Z", "url": "https://files.pythonhosted.org/packages/6f/b5/f7aca43bdcf4f1dcd03d121e3a65e34c47e12c07a5a16da1d95094ddbbe9/voltools-0.4.6.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "935cbf50595215da14f7039851ec182c", "sha256": "11ea453913f4bea14b65228f55dbaf3f714a2f40644642dc00ea5d2e399bf8f5" }, "downloads": -1, "filename": "voltools-0.4.6-py3-none-any.whl", "has_sig": false, "md5_digest": "935cbf50595215da14f7039851ec182c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19819, "upload_time": "2021-06-10T10:03:32", "upload_time_iso_8601": "2021-06-10T10:03:32.310140Z", "url": "https://files.pythonhosted.org/packages/46/94/c0d12a3de1c2ffb24a9a89b89eddde225be655e9fab8f91aed2df196b939/voltools-0.4.6-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "529ea60ff3b4646b98fee7bcaea55a1d", "sha256": "72614339795a8286aea9ee07c2b0d10e7cca148eca7694f34e3f823b152b7074" }, "downloads": -1, "filename": "voltools-0.4.6.tar.gz", "has_sig": false, "md5_digest": "529ea60ff3b4646b98fee7bcaea55a1d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20750, "upload_time": "2021-06-10T10:03:33", "upload_time_iso_8601": "2021-06-10T10:03:33.609716Z", "url": "https://files.pythonhosted.org/packages/6f/b5/f7aca43bdcf4f1dcd03d121e3a65e34c47e12c07a5a16da1d95094ddbbe9/voltools-0.4.6.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }