{ "info": { "author": "Fabio Falcinelli", "author_email": "fabio.falcinelli@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Win32 (MS Windows)", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "Intended Audience :: Telecommunications Industry", "License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)", "Operating System :: Microsoft :: Windows :: Windows 7", "Operating System :: Microsoft :: Windows :: Windows Server 2008", "Operating System :: Microsoft :: Windows :: Windows Vista", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: System :: Networking :: Firewalls", "Topic :: System :: Networking :: Monitoring", "Topic :: Utilities" ], "description": "pydivert\r\n^^^^^^^^\r\n\r\n|appveyor| |codecov| |latest_release| |python_versions|\r\n\r\nPython bindings for WinDivert_, a Windows driver that allows user-mode applications to\r\ncapture/modify/drop network packets sent to/from the Windows network stack.\r\n\r\nRequirements\r\n------------\r\n\r\n- Python 2.7 or Python 3.4+ (32 or 64 bit)\r\n- Windows Vista/7/8/10 or Windows Server 2008 (32 or 64 bit)\r\n- Administrator Privileges\r\n\r\nInstallation\r\n------------\r\n\r\nYou can install PyDivert by running\r\n\r\n.. code-block:: text\r\n\r\n $ pip install pydivert\r\n\r\nStarting with PyDivert 1.0.2, WinDivert_ is bundled with\r\nPyDivert and does not need to be installed separately.\r\n\r\n\r\n**WinDivert Version Compatibility**\r\n\r\n================================= ===============\r\nPyDivert WinDivert\r\n--------------------------------- ---------------\r\n0.0.7 1.0.x or 1.1.x\r\n1.0.x (API-compatible with 0.0.7) 1.1.8 (bundled)\r\n2.0.x 1.1.8 (bundled)\r\n2.1.x 1.3 (bundled)\r\n================================= ===============\r\n\r\nGetting Started\r\n---------------\r\n\r\nPyDivert consists of two main classes: ``pydivert.WinDivert`` and ``pydivert.Packet``.\r\nFirst, you usually want to create a ``WinDivert`` object to start capturing network traffic and then\r\ncall ``.recv()`` to receive the first ``Packet`` that was captured. By receiving packets, they are taken\r\nout of the Windows network stack and will not be sent out unless you take action.\r\nYou can re-inject packets by calling ``.send(packet)``.\r\nThe following example opens a WinDivert handle, receives a single packet, prints it, re-injects it,\r\nand then exits:\r\n\r\n.. code-block:: python\r\n\r\n import pydivert\r\n\r\n # Capture only TCP packets to port 80, i.e. HTTP requests.\r\n w = pydivert.WinDivert(\"tcp.DstPort == 80 and tcp.PayloadLength > 0\")\r\n\r\n w.open() # packets will be captured from now on\r\n\r\n packet = w.recv() # read a single packet\r\n print(packet)\r\n w.send(packet) # re-inject the packet into the network stack\r\n\r\n w.close() # stop capturing packets\r\n\r\nPackets that are not matched by the ``\"tcp.DstPort == 80 and tcp.PayloadLength > 0\"`` filter will not be handled by WinDivert\r\nand continue as usual. The syntax for the filter language is described in the `WinDivert documentation `_.\r\n\r\nPython Idioms\r\n-------------\r\n\r\n``pydivert.WinDivert`` instances can be used as *context managers* for capturing traffic and as (infinite) *iterators* over\r\npackets. The following code is equivalent to the example above:\r\n\r\n.. code-block:: python\r\n\r\n import pydivert\r\n\r\n with pydivert.WinDivert(\"tcp.DstPort == 80 and tcp.PayloadLength > 0\") as w:\r\n for packet in w:\r\n print(packet)\r\n w.send(packet)\r\n break\r\n\r\nPacket Modification\r\n-------------------\r\n\r\n``pydivert.Packet`` provides a variety of properties that can be used to access and modify the\r\npacket's headers or payload. For example, you can browse the web on port 1234 with PyDivert:\r\n\r\n.. code-block:: python\r\n\r\n import pydivert\r\n\r\n with pydivert.WinDivert(\"tcp.DstPort == 1234 or tcp.SrcPort == 80\") as w:\r\n for packet in w:\r\n if packet.dst_port == 1234:\r\n print(\">\") # packet to the server\r\n packet.dst_port = 80\r\n if packet.src_port == 80:\r\n print(\"<\") # reply from the server\r\n packet.src_port = 1234\r\n w.send(packet)\r\n\r\nTry opening http://example.com:1234/ in your browser!\r\n\r\nWinDivert supports access and modification of a variety of TCP/UDP/ICMP attributes out of the box.\r\n\r\n.. code-block:: python\r\n\r\n >>> print(packet)\r\n Packet({'direction': ,\r\n 'dst_addr': '93.184.216.34',\r\n 'dst_port': 443,\r\n 'icmpv4': None,\r\n 'icmpv6': None,\r\n 'interface': (23, 0),\r\n 'ipv4': {'src_addr': '192.168.86.169',\r\n 'dst_addr': '93.184.216.34',\r\n 'packet_len': 81},\r\n 'ipv6': None,\r\n 'is_inbound': False,\r\n 'is_loopback': False,\r\n 'is_outbound': True,\r\n 'payload': '\\x17\\x03\\x03\\x00$\\x00\\x00\\x00\\x00\\x00\\x00\\x02\\x05\\x19q\\xbd\\xcfD\\x8a\\xe3...',\r\n 'raw': ,\r\n 'src_addr': '192.168.86.169',\r\n 'src_port': 52387,\r\n 'tcp': {'src_port': 52387,\r\n 'dst_port': 443,\r\n 'syn': False,\r\n 'ack': True,\r\n 'fin': False,\r\n 'rst': False,\r\n 'psh': True,\r\n 'urg': False,\r\n 'header_len': 20,\r\n 'payload': '\\x17\\x03\\x03\\x00$\\x00\\x00\\x00\\x00\\x00\\x00\\x02\\x05\\x19q\\xbd\\xcfD\\x8a\\xe3...'},\r\n 'udp': None})\r\n\r\nUninstalling PyDivert\r\n---------------------\r\n\r\nYou can uninstall PyDivert by running\r\n\r\n.. code-block:: text\r\n\r\n $ pip uninstall pydivert\r\n\r\nIf the WinDivert driver is still running at that time, it will remove itself on the next reboot.\r\n\r\nAPI Reference Documentation\r\n---------------------------\r\n\r\nThe API Reference Documentation for PyDivert can be found `here `_.\r\n\r\n.. |appveyor| image:: https://img.shields.io/appveyor/ci/ffalcinelli/pydivert/master.svg\r\n :target: https://ci.appveyor.com/project/ffalcinelli/pydivert\r\n :alt: Appveyor Build Status\r\n\r\n.. |codecov| image:: https://img.shields.io/codecov/c/github/ffalcinelli/pydivert/master.svg\r\n :target: https://codecov.io/gh/ffalcinelli/pydivert\r\n :alt: Coverage Status\r\n\r\n.. |latest_release| image:: https://img.shields.io/pypi/v/pydivert.svg\r\n :target: https://pypi.python.org/pypi/pydivert\r\n :alt: Latest Version\r\n\r\n.. |python_versions| image:: https://img.shields.io/pypi/pyversions/pydivert.svg\r\n :target: https://pypi.python.org/pypi/pydivert\r\n :alt: Supported Python versions\r\n\r\n.. _WinDivert: https://reqrypt.org/windivert.html\r\n\r\n\r\n", "description_content_type": null, "docs_url": "https://pythonhosted.org/pydivert/", "download_url": "https://github.com/ffalcinelli/pydivert/releases/2.1.0", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ffalcinelli/pydivert", "keywords": "windivert,network,tcp/ip", "license": "LGPLv3", "maintainer": "", "maintainer_email": "", "name": "pydivert", "package_url": "https://pypi.org/project/pydivert/", "platform": "", "project_url": "https://pypi.org/project/pydivert/", "project_urls": { "Download": "https://github.com/ffalcinelli/pydivert/releases/2.1.0", "Homepage": "https://github.com/ffalcinelli/pydivert" }, "release_url": "https://pypi.org/project/pydivert/2.1.0/", "requires_dist": [ "win-inet-pton (>=1.0.1); python_version == \"2.7\" or python_version == \"3.3\"", "enum34 (>=1.1.6); python_version == \"2.7\" or python_version == \"3.3\"", "sphinx (>=1.4.8); extra == 'docs'", "mock (>=1.0.1); extra == 'test'", "hypothesis (>=3.5.3); extra == 'test'", "pytest (>=3.0.3); extra == 'test'", "pytest-cov (>=2.2.1); extra == 'test'", "pytest-timeout (<2,>=1.0.0); extra == 'test'", "pytest-faulthandler (<2,>=1.3.0); extra == 'test'", "codecov (>=2.0.5); extra == 'test'", "wheel (>=0.29); extra == 'test'" ], "requires_python": "", "summary": "Python binding to windivert driver", "version": "2.1.0" }, "last_serial": 3267114, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "85d99d1db2524c3f12fadd9676a63889", "sha256": "8bb21a0ddb32edf48a35af351c9ab802b18733eaf9f104d0982ae2462b8864ba" }, "downloads": -1, "filename": "pydivert-0.0.1.zip", "has_sig": false, "md5_digest": "85d99d1db2524c3f12fadd9676a63889", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22042, "upload_time": "2013-07-28T09:46:47", "url": "https://files.pythonhosted.org/packages/50/fa/43910054b547735a236ad0f31a91c4b9723398b730247cbef16cce5f6869/pydivert-0.0.1.zip" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "350467eec0f8668608695300f083f0b8", "sha256": "b635192ba640e5767da2c358a67d956e4c01148b460875f4581f0b3988e026a6" }, "downloads": -1, "filename": "pydivert-0.0.2.zip", "has_sig": false, "md5_digest": "350467eec0f8668608695300f083f0b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26433, "upload_time": "2014-05-19T13:15:33", "url": "https://files.pythonhosted.org/packages/62/d2/4daa1ffb2ccd011e58cf93f0e1991c574b2b55ad36f275ebf573b83ecfbe/pydivert-0.0.2.zip" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "475bb326b3d4505c61c0b0d66c42d2f2", "sha256": "447e47d36b1d25e98bb84c1ff1bdb746501394de8518e773c0da2397c93b3924" }, "downloads": -1, "filename": "pydivert-0.0.3.zip", "has_sig": false, "md5_digest": "475bb326b3d4505c61c0b0d66c42d2f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32013, "upload_time": "2014-08-09T13:43:04", "url": "https://files.pythonhosted.org/packages/c4/d1/0078e7da30d89806e20172e45a6c430fed4e96f1c753d1d0c715100ff51c/pydivert-0.0.3.zip" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "906ec8aabe878c74cee2a6b312e3c72a", "sha256": "8ee4dd8c3a74f69d57955538043e4fa0efaa530da4c8f2bcb8a5d19757b5f44f" }, "downloads": -1, "filename": "pydivert-0.0.4.zip", "has_sig": false, "md5_digest": "906ec8aabe878c74cee2a6b312e3c72a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31761, "upload_time": "2014-08-09T14:20:25", "url": "https://files.pythonhosted.org/packages/6c/db/a41836cf323e8bca04838f669af3a63128ea156b408d4183378352467e57/pydivert-0.0.4.zip" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "2a8575b5ae34036d0f836a86828cc37d", "sha256": "6e1906826db275aaa62d2fefaf48892ba03853d9e141ff33350dccd2ba662fba" }, "downloads": -1, "filename": "pydivert-0.0.5.zip", "has_sig": false, "md5_digest": "2a8575b5ae34036d0f836a86828cc37d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32349, "upload_time": "2014-09-24T07:39:50", "url": "https://files.pythonhosted.org/packages/2e/18/2851f5d4caa9b9542b0e20863db6f73ef599e31cb711c18934a0e8f1bba6/pydivert-0.0.5.zip" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "0b797f09b68a3e17f2eab39a5a7730d0", "sha256": "8b5b1537441bdf574532cc760f923352ace813049ca593b1547f965d937a9c3d" }, "downloads": -1, "filename": "pydivert-0.0.6.zip", "has_sig": false, "md5_digest": "0b797f09b68a3e17f2eab39a5a7730d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32566, "upload_time": "2014-10-06T19:01:23", "url": "https://files.pythonhosted.org/packages/83/43/969e9ed803c35b07f3331310dc6e71dd37439d685334f04956010024917e/pydivert-0.0.6.zip" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "faedc137dadcc102dcfca1a4cbfe0686", "sha256": "e6f116f1200922b6bbce8588789dc26d41f97f4045af2ee68408801031d58d96" }, "downloads": -1, "filename": "pydivert-0.0.7.zip", "has_sig": false, "md5_digest": "faedc137dadcc102dcfca1a4cbfe0686", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32564, "upload_time": "2014-11-26T10:16:25", "url": "https://files.pythonhosted.org/packages/f8/b3/4f59b80b84b3a3f6d9409e10a09d888fb21415282dc96f9d87ffd8ee2b86/pydivert-0.0.7.zip" } ], "0.1": [], "1.0.1": [ { "comment_text": "", "digests": { "md5": "537d1247dd7bb764adf4464395ede361", "sha256": "5e4803c2953e00bb58d310e90cb0a8574725f0e3d3c67642c33a9b021f69369f" }, "downloads": -1, "filename": "pydivert-1.0.1.zip", "has_sig": false, "md5_digest": "537d1247dd7bb764adf4464395ede361", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 77633, "upload_time": "2016-10-09T09:08:14", "url": "https://files.pythonhosted.org/packages/ef/82/101f3cc6048bb75cf9d652307aad7f652d5df0c0e869abd3d17f7a493d84/pydivert-1.0.1.zip" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "42d8b8e0c193c20490bf3258ddea54f3", "sha256": "9914939df62fee44af053b9119adfd50c8da8e8e1c40a5667a70cf53177c3bb2" }, "downloads": -1, "filename": "pydivert-1.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "42d8b8e0c193c20490bf3258ddea54f3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 79217, "upload_time": "2016-10-09T20:11:52", "url": "https://files.pythonhosted.org/packages/02/d8/0b53b358dcb103f83bfaba7b9c9d205c772a6f38efdc311c4384e5a3a5d0/pydivert-1.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f59294327da08db78ab5c431e2f0c85b", "sha256": "e5384c8b5a768bc1d640a8950c66299e35ce93993d49e8b12a66fcca0e05ceba" }, "downloads": -1, "filename": "pydivert-1.0.2.tar.gz", "has_sig": false, "md5_digest": "f59294327da08db78ab5c431e2f0c85b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68744, "upload_time": "2016-10-09T20:13:29", "url": "https://files.pythonhosted.org/packages/e4/7e/e96f06608009913c565549686ac03d0bf6478e6e5bcf336edb7f6d684ca7/pydivert-1.0.2.tar.gz" }, { "comment_text": "", "digests": { "md5": "8697a20915af58b34a01f22da26ae4bd", "sha256": "f92476e524f4ede857aa50ef2e6c7880afbbe1dc674ed131c853b9e579743d49" }, "downloads": -1, "filename": "pydivert-1.0.2.zip", "has_sig": false, "md5_digest": "8697a20915af58b34a01f22da26ae4bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 77635, "upload_time": "2016-10-09T09:15:10", "url": "https://files.pythonhosted.org/packages/b7/96/c8ccf2336eeb56dad203b457b7e0b68f0f51b2111909ca84c71785092b28/pydivert-1.0.2.zip" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "abae9ecd2489cf60e2d72849493925ee", "sha256": "1fb72840b329b1f6fb1162b929501aa767b086ef6dc4f3ab32dd40a0d13af8cf" }, "downloads": -1, "filename": "pydivert-2.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "abae9ecd2489cf60e2d72849493925ee", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 146636, "upload_time": "2016-10-19T08:29:02", "url": "https://files.pythonhosted.org/packages/26/36/ecd9078553a750fdd50b91576a9495413fcbb5b3e752c4fc0c1442bc9920/pydivert-2.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3420bdbab25929128540c0a723363925", "sha256": "1443d7db04197aed13dcc89b62dc49c01e6be6571ff4ee2d66028f736f2ca6bd" }, "downloads": -1, "filename": "pydivert-2.0.0.tar.gz", "has_sig": false, "md5_digest": "3420bdbab25929128540c0a723363925", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 70848, "upload_time": "2016-10-19T08:29:07", "url": "https://files.pythonhosted.org/packages/d5/3d/60fdd954e3fb7f90472f675ad19e67ad2e7fbf6431d9f47a81f11805aad4/pydivert-2.0.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "84034585543962dc4f450200e1fd6db7", "sha256": "83ea2a4346d6e1a94cf1a5b239b313ceff27a8abcf4965148cbdb7dba4cd8659" }, "downloads": -1, "filename": "pydivert-2.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "84034585543962dc4f450200e1fd6db7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 79916, "upload_time": "2016-10-19T09:19:37", "url": "https://files.pythonhosted.org/packages/49/12/3d576e5744d0676018a399cdb52e968d583e3d294fbfaeefefb68bfac6d3/pydivert-2.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a1c0173436792a51829ac12b628e5714", "sha256": "64b369d6846868230ec8cb7ec0e1ba8712156dd1e44f445b02155a23eac2d68e" }, "downloads": -1, "filename": "pydivert-2.0.1.tar.gz", "has_sig": false, "md5_digest": "a1c0173436792a51829ac12b628e5714", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 70856, "upload_time": "2016-10-19T09:19:40", "url": "https://files.pythonhosted.org/packages/b3/cb/762eea17d5cba7e75b75a91b4ca9b46be129578950cd3dbe691c0da06eff/pydivert-2.0.1.tar.gz" } ], "2.0.3": [ { "comment_text": "", "digests": { "md5": "e6fee3a1dfc4cb7628cebdc323fb0574", "sha256": "aae3ab7f4357c5e27c3833472cce9e70148e59479e80effe28a9354da9dfc8f1" }, "downloads": -1, "filename": "pydivert-2.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e6fee3a1dfc4cb7628cebdc323fb0574", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 84427, "upload_time": "2016-11-02T13:01:41", "url": "https://files.pythonhosted.org/packages/52/70/ff6c08efd44501faa80239d7ca929effb8b4e8c6a669908e48f7a17f3f2c/pydivert-2.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f19b7f2885c1e3b117edd6b549d15127", "sha256": "b7d1b00c87b3cd913b4f538d7c12d9d06a403a13db0bd4570c3089ca4faef83f" }, "downloads": -1, "filename": "pydivert-2.0.3.zip", "has_sig": false, "md5_digest": "f19b7f2885c1e3b117edd6b549d15127", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 85221, "upload_time": "2016-11-02T13:01:48", "url": "https://files.pythonhosted.org/packages/99/f7/10665a69efcb3af4adbb3e782db392ef15b5a9325b2081ec69db50a03de7/pydivert-2.0.3.zip" } ], "2.0.4": [ { "comment_text": "", "digests": { "md5": "f5176ee23853753e21eb8627c410d8cc", "sha256": "9630090eecfef3feb6e5bde8dda4c1bce1eb74f547201cad1a0b3155114976ff" }, "downloads": -1, "filename": "pydivert-2.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f5176ee23853753e21eb8627c410d8cc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 84438, "upload_time": "2016-11-21T13:30:39", "url": "https://files.pythonhosted.org/packages/3b/7a/ba7340f4b1fb06b3f80510b86727adb7cb393d6c1f13e7a4e293ae9238e7/pydivert-2.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0374e255837b0e230dc00a0168199379", "sha256": "5c17045628a6279acfba2045acf340613c91d6856291883e450c50d246c8873e" }, "downloads": -1, "filename": "pydivert-2.0.4.zip", "has_sig": false, "md5_digest": "0374e255837b0e230dc00a0168199379", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 85235, "upload_time": "2016-11-21T13:30:42", "url": "https://files.pythonhosted.org/packages/0c/47/f8f07596d6454c501e03e2572328f27075733dfc7c39b7f4b03ca183cd5a/pydivert-2.0.4.zip" } ], "2.0.5": [ { "comment_text": "", "digests": { "md5": "0fc90895b50a9814ef927180da8019e8", "sha256": "5d7b55e4173eaed4a76405de34480e0c79dc7a260be299e0a9ff07150f1fcd90" }, "downloads": -1, "filename": "pydivert-2.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0fc90895b50a9814ef927180da8019e8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 86671, "upload_time": "2017-02-16T13:20:21", "url": "https://files.pythonhosted.org/packages/da/e4/c3493f432421cd8eefcb52583f4370b2ac2ca53efb664aa00ec669b243e7/pydivert-2.0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8da1fe1d30d9b562f26fe13c9fa2fa6a", "sha256": "65178f28f03375294192158c6fd7088a1e8bc89a1ea6917618e75db80e9bde36" }, "downloads": -1, "filename": "pydivert-2.0.5.tar.gz", "has_sig": false, "md5_digest": "8da1fe1d30d9b562f26fe13c9fa2fa6a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 72755, "upload_time": "2017-02-16T13:20:22", "url": "https://files.pythonhosted.org/packages/a7/66/a3cef6a6172cf6c10d5950aed7aff115844451301d5f58dff5fe71d5bcff/pydivert-2.0.5.tar.gz" } ], "2.0.6": [ { "comment_text": "", "digests": { "md5": "f2282f061fc00fdd8361218bdccfcbf8", "sha256": "0ec4bb15cddba162eb7fff80afb35a57473096b9583a9b2a75d83a74e3a62301" }, "downloads": -1, "filename": "pydivert-2.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f2282f061fc00fdd8361218bdccfcbf8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 82392, "upload_time": "2017-02-17T15:08:36", "url": "https://files.pythonhosted.org/packages/18/5e/5de35340a309a80d383785dc6fb37628b90647c8c313fa95b36a3aef617d/pydivert-2.0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e7681c18e75f48345e2a230430b1ac4b", "sha256": "249356e0a434a387883f30eb8bddfbafbe07a0e9af4717a187b94151148bbaee" }, "downloads": -1, "filename": "pydivert-2.0.6.tar.gz", "has_sig": false, "md5_digest": "e7681c18e75f48345e2a230430b1ac4b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 73206, "upload_time": "2017-02-17T15:08:39", "url": "https://files.pythonhosted.org/packages/ba/48/e9da4a268c3537316fc248dd7f9725d5ba6b919db26bd1f728e4a0408e74/pydivert-2.0.6.tar.gz" } ], "2.0.7": [ { "comment_text": "", "digests": { "md5": "82b04997e933d5de21caac5453f16899", "sha256": "a9438a20e754644c2e87e6824d6969904b71fad50ba445ebd3a9762297e89d90" }, "downloads": -1, "filename": "pydivert-2.0.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "82b04997e933d5de21caac5453f16899", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 82386, "upload_time": "2017-02-17T15:56:59", "url": "https://files.pythonhosted.org/packages/0e/bc/130be825c1399e5c031fc142d86ff16061b809f27a810442bc750bf48a73/pydivert-2.0.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0b6913a6b9c22f22c4cf64be48d34bf5", "sha256": "8a82c88e226a6c29a6c52d033731b9b97ae8672d8fa69d159239af27899687cd" }, "downloads": -1, "filename": "pydivert-2.0.7.tar.gz", "has_sig": false, "md5_digest": "0b6913a6b9c22f22c4cf64be48d34bf5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 73202, "upload_time": "2017-02-17T15:56:50", "url": "https://files.pythonhosted.org/packages/d0/ca/c4d9ef0241d4b34c484fdb07e8e5f021586abe2dd5884ba7d48431985278/pydivert-2.0.7.tar.gz" } ], "2.0.9": [ { "comment_text": "", "digests": { "md5": "6709540e221e77551a09da58a7bbe3a2", "sha256": "c6428112eb2f12d5e828ec30f658c8f1ffd230ae33f4b98b07e857033f1573f2" }, "downloads": -1, "filename": "pydivert-2.0.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6709540e221e77551a09da58a7bbe3a2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 86811, "upload_time": "2017-02-17T16:53:42", "url": "https://files.pythonhosted.org/packages/5a/52/78f00a4cd4c14e169649fd2afde8addaa25dec4846524aadc7deffa1762c/pydivert-2.0.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4237e743b70708ebaad31b4f9d13d08b", "sha256": "c96d66677fb1426b2c6e75774fcacb06df8bd10ec083fec2f6452a0bebd8dd32" }, "downloads": -1, "filename": "pydivert-2.0.9.tar.gz", "has_sig": false, "md5_digest": "4237e743b70708ebaad31b4f9d13d08b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 72872, "upload_time": "2017-02-17T16:53:44", "url": "https://files.pythonhosted.org/packages/5a/9f/f5df1116d16f6325f0b9088d953ac8149b5dd006afd9c4b17a42dbee9bf7/pydivert-2.0.9.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "118132dac6ab092b33401fd34daba0f2", "sha256": "382db488e3c37c03ec9ec94e061a0b24334d78dbaeebb7d4e4d32ce4355d9da1" }, "downloads": -1, "filename": "pydivert-2.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "118132dac6ab092b33401fd34daba0f2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 104718, "upload_time": "2017-10-20T21:36:56", "url": "https://files.pythonhosted.org/packages/ca/8f/86d7931c62013a5a7ebf4e1642a87d4a6050c0f570e714f61b0df1984c62/pydivert-2.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "890d4fdc18c0a1684826f4803d3b001d", "sha256": "f0e150f4ff591b78e35f514e319561dadff7f24a82186a171dd4d465483de5b4" }, "downloads": -1, "filename": "pydivert-2.1.0.tar.gz", "has_sig": false, "md5_digest": "890d4fdc18c0a1684826f4803d3b001d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 91057, "upload_time": "2017-10-20T21:36:58", "url": "https://files.pythonhosted.org/packages/cf/71/2da9bcf742df3ab23f75f10fedca074951dd13a84bda8dea3077f68ae9a6/pydivert-2.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "118132dac6ab092b33401fd34daba0f2", "sha256": "382db488e3c37c03ec9ec94e061a0b24334d78dbaeebb7d4e4d32ce4355d9da1" }, "downloads": -1, "filename": "pydivert-2.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "118132dac6ab092b33401fd34daba0f2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 104718, "upload_time": "2017-10-20T21:36:56", "url": "https://files.pythonhosted.org/packages/ca/8f/86d7931c62013a5a7ebf4e1642a87d4a6050c0f570e714f61b0df1984c62/pydivert-2.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "890d4fdc18c0a1684826f4803d3b001d", "sha256": "f0e150f4ff591b78e35f514e319561dadff7f24a82186a171dd4d465483de5b4" }, "downloads": -1, "filename": "pydivert-2.1.0.tar.gz", "has_sig": false, "md5_digest": "890d4fdc18c0a1684826f4803d3b001d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 91057, "upload_time": "2017-10-20T21:36:58", "url": "https://files.pythonhosted.org/packages/cf/71/2da9bcf742df3ab23f75f10fedca074951dd13a84bda8dea3077f68ae9a6/pydivert-2.1.0.tar.gz" } ] }