{ "info": { "author": "Morten Kristensen", "author_email": "me@mortens.dev", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Topic :: Software Development", "Topic :: Utilities" ], "description": "|PyPI version| |Test Status| |Analyze Status| |CodeQL Status| |Coverage| |Commits since last|\n\n.. |PyPI version| image:: https://badge.fury.io/py/vermin.svg\n :target: https://pypi.python.org/pypi/vermin/\n\n.. |Test Status| image:: https://github.com/netromdk/vermin/workflows/Test/badge.svg?branch=master\n :target: https://github.com/netromdk/vermin/actions\n\n.. |Analyze Status| image:: https://github.com/netromdk/vermin/workflows/Analyze/badge.svg?branch=master\n :target: https://github.com/netromdk/vermin/actions\n\n.. |CodeQL Status| image:: https://github.com/netromdk/vermin/workflows/CodeQL/badge.svg?branch=master\n :target: https://github.com/netromdk/vermin/security/code-scanning\n\n.. |Coverage| image:: https://coveralls.io/repos/github/netromdk/vermin/badge.svg?branch=master\n :target: https://coveralls.io/github/netromdk/vermin?branch=master\n\n.. |Commits since last| image:: https://img.shields.io/github/commits-since/netromdk/vermin/latest.svg\n\nVermin\n******\n\nConcurrently detect the minimum Python versions needed to run code. Additionally, since the code is\nvanilla Python, and it doesn't have any external dependencies, it works with v2.7+ and v3+.\n\nIt functions by parsing Python code into an abstract syntax tree (AST), which it traverses and\nmatches against internal dictionaries with **3427** rules, covering v2.0-2.7 and v3.0-3.10, divided\ninto **144** modules, **2356** classes/functions/constants members of modules, **801** kwargs of\nfunctions, **4** strftime directives, **3** bytes format directives, **2** array typecodes, **3**\ncodecs error handler names, **20** codecs encodings, **75** builtin generic annotation types, **9**\nbuiltin dict union (``|``) types, **8** builtin dict union merge (``|=``) types, and **2** user\nfunction decorators.\n\nBackports of the standard library, like ``typing``, can be enabled for better results.\n\nThe project is fairly well-tested with **3601** unit and integration tests that are executed on\nLinux, macOS, and Windows.\n\nIt is recommended to use the most recent Python version to run Vermin on projects since Python's own\nlanguage parser is used to detect language features, like f-strings since Python 3.6 etc.\n\nUsage\n=====\n\nIt is fairly straightforward to use Vermin::\n\n ./vermin.py /path/to/your/project\n\nOr via `PyPi `__::\n\n % pip install vermin\n % vermin /path/to/your/project\n\n`Arch Linux (AUR) `__::\n\n % yay -S python-vermin\n\n`Spack `__ (`pkg `__)::\n\n % git clone https://github.com/spack/spack.git\n % . spack/share/spack/setup-env.sh # depending on shell\n % spack install py-vermin\n % spack load py-vermin\n\nWhen using continuous integration (CI) tools, like `Travis CI `_, Vermin can\nbe used to check that the minimum required versions didn't change. The following is an excerpt::\n\n install:\n - ./setup_virtual_env.sh\n - pip install vermin\n script:\n - vermin -t=2.7 -t=3 project_package otherfile.py\n\nFeatures\n========\n\nFeatures detected include v2/v3 ``print expr`` and ``print(expr)``, ``long``, f-strings, coroutines\n(``async`` and ``await``), asynchronous generators (``await`` and ``yield`` in same function),\nasynchronous comprehensions, ``await`` in comprehensions, asynchronous ``for``-loops, boolean\nconstants, named expressions, keyword-only parameters, positional-only parameters, ``nonlocal``,\n``yield from``, exception context cause (``raise .. from ..``), ``set`` literals, ``set``\ncomprehensions, ``dict`` comprehensions, infix matrix multiplication, ``\"..\".format(..)``, imports\n(``import X``, ``from X import Y``, ``from X import *``), function calls wrt. name and kwargs,\n``strftime`` + ``strptime`` directives used, function and variable annotations (also ``Final`` and\n``Literal``), ``continue`` in ``finally`` block, modular inverse ``pow()``, array typecodes, codecs\nerror handler names, encodings, ``%`` formatting and directives for bytes and bytearray, ``with``\nstatement, multiple context expressions in a ``with`` statement, unpacking assignment, generalized\nunpacking, ellipsis literal (`...`) out of slices, dictionary union (``{..} | {..}``), dictionary\nunion merge (``a = {..}; a |= {..}``), builtin generic type annotations (``list[str]``), function\ndecorators, class decorators, relaxed decorators, pattern matching with ``match``, and union types\nwritten as ``X | Y``. It tries to detect and ignore user-defined functions, classes, arguments, and\nvariables with names that clash with library-defined symbols.\n\nCaveats\n=======\n\nSelf-documenting fstrings detection has been disabled by default because the built-in AST cannot\ndistinguish ``f'{a=}'`` from ``f'a={a}'``, for instance, since it optimizes some information away\n(`#39 `__). And this incorrectly marks some source\ncode as using fstring self-doc when only using general fstring. To enable (unstable) fstring\nself-doc detection, use ``--feature fstring-self-doc``.\n\nFunction and variable annotations aren't evaluated at definition time when ``from __future__ import\nannotations`` is used (`PEP 563 `__). This is why\n``--no-eval-annotations`` is on by default (since v1.1.1, `#66\n`__). If annotations are being evaluated at runtime,\nlike using ``typing.get_type_hints`` or evaluating ``__annotations__`` of an object,\n``--eval-annotations`` should be used for best results.\n\nConfiguration file\n==================\n\nVermin automatically tries to detect a config file, starting in the current working directory where\nit is run, following parent folders until either the root or project boundary files/folders are\nreached. However, if ``--config-file`` is specified, no config is auto-detected and loaded.\n\nConfig file names being looked for: ``vermin.ini``, ``vermin.conf``, ``.vermin``, ``setup.cfg``\n\nProject boundary files/folders: ``.git``, ``.svn``, ``.hg``, ``.bzr``, ``_darcs``, ``.fslckout``\n\nA sample config file can be found `here `__.\n\nNote that Vermin config can be in the same INI file as other configs, like the commonly used\n``setup.cfg``:\n\n.. code-block:: ini\n\n [vermin]\n verbose = 1\n processes = 4\n\n [flake8]\n ignore = E111,F821\n\nExamples\n========\n\n.. code-block:: console\n\n % ./vermin.py -q vermin\n Minimum required versions: 2.7, 3.0\n\n % ./vermin.py -q -t=3.3 vermin\n Minimum required versions: 2.7, 3.0\n Target versions not met: 3.3\n % echo $?\n 1\n\n % ./vermin.py -q --versions vermin\n Minimum required versions: 2.7, 3.0\n Version range: 2.0, 2.6, 2.7, 3.0\n\n % ./vermin.py -v examples\n Detecting python files..\n Analyzing 6 files using 8 processes..\n /path/to/examples/formatv2.py\n 2.7, 3.2 /path/to/examples/argparse.py\n 2.7, 3.0 /path/to/examples/formatv3.py\n 2.0, 3.0 /path/to/examples/printv3.py\n !2, 3.4 /path/to/examples/abc.py\n /path/to/examples/unknown.py\n Minimum required versions: 3.4\n Incompatible versions: 2\n\n % ./vermin.py -vv /path/to/examples/abc.py\n Detecting python files..\n Analyzing using 8 processes..\n !2, 3.4 /path/to/examples/abc.py\n 'abc' requires 2.6, 3.0\n 'abc.ABC' requires !2, 3.4\n\n Minimum required versions: 3.4\n Incompatible versions: 2\n\n % ./vermin.py -vvv /path/to/examples/abc.py\n Detecting python files..\n Analyzing using 8 processes..\n !2, 3.4 /path/to/examples/abc.py\n L1 C7: 'abc' requires 2.6, 3.0\n L2: 'abc.ABC' requires !2, 3.4\n\n Minimum required versions: 3.4\n Incompatible versions: 2\n\n % ./vermin.py -f parsable /path/to/examples/abc.py\n /path/to/examples/abc.py:1:7:2.6:3.0:'abc' module\n /path/to/examples/abc.py:2::!2:3.4:'abc.ABC' member\n /path/to/examples/abc.py:::!2:3.4:\n :::!2:3.4:\n\nLinting: Showing only target versions violations\n================================================\n\nVermin shows lots of useful minimum version results when run normally, but it can also be used as a\nlinter to show only rules violating specified target versions by using ``--violations`` and one or\ntwo ``--target`` values. Verbosity level 2 is automatically set when showing only violations, but\ncan be increased if necessary. The final versions verdict is still calculated and printed at the end\nand the program exit code signifies whether the specified targets were met (``0``) or violated\n(``1``). However, if no rules are triggered the exit code will be ``0`` due to inconclusivity.\n\n.. code-block:: console\n\n % cat test.py\n import argparse # 2.7, 3.2\n all() # 2.5, 3.0\n enumerate() # 2.3, 3.0\n\n % ./vermin.py -t=2.4- -t=3 --violations test.py ; echo $?\n Detecting python files..\n Analyzing using 8 processes..\n 2.7, 3.2 test.py\n 'all' member requires 2.5, 3.0\n 'argparse' module requires 2.7, 3.2\n\n Minimum required versions: 2.7, 3.2\n Target versions not met: 2.4-, 3.0\n 1\n\nThe two first lines violate the targets but the third line matches and is therefore not shown.\n\nAPI (experimental)\n==================\n\nInformation such as minimum versions, used functionality constructs etc. can also be accessed\nprogrammatically via the ``vermin`` Python module, though it's an experimental feature. It is still\nrecommended to use the command-line interface.\n\n.. code-block:: python\n\n >>> import vermin as V\n >>> V.version_strings(V.detect(\"a = long(1)\"))\n '2.0, !3'\n\n >>> config = V.Config()\n >>> config.add_exclusion(\"long\")\n >>> V.version_strings(V.detect(\"a = long(1)\", config))\n '~2, ~3'\n\n >>> config.set_verbose(3)\n >>> v = V.visit(\"\"\"from argparse import ArgumentParser\n ... ap = ArgumentParser(allow_abbrev=True)\n ... \"\"\", config)\n >>> print(v.output_text(), end=\"\")\n L1 C5: 'argparse' module requires 2.7, 3.2\n L2: 'argparse.ArgumentParser(allow_abbrev)' requires !2, 3.5\n >>> V.version_strings(v.minimum_versions())\n '!2, 3.5'\n\nLax Mode (deprecated)\n=====================\n\n*Deprecated as of v. 1.3. Will be removed in v. 1.4. It is recommended to use specific analysis\nexclusions instead.*\n\nVermin parses Python source code into abstract syntax trees (ASTs) which it traverses to do\nanalysis. However, it doesn't do conditional logic, i.e. deciding which branches will be taken at\nruntime, since it can cause unexpected side-effects to actually evaluate code. As an example,\nanalysis of the following:\n\n.. code-block:: python\n\n if False:\n print(f\"..but I won't be evaluated\")\n\nWill yield \"f-strings require 3.6+\" even though the branch will not be evaluated at runtime.\n\nThe lax mode, via argument ``--lax``, was created to circumvent cases like this. *But it's not a\nperfect solution* since it will skip all ``if``, ternarys, ``for``, ``async for``, ``while``,\n``with``, ``try``, boolean operations, and ``match``. Therefore it is recommended to run with and\nwithout lax mode to get a better understanding of individual cases.\n\nAnalysis Exclusions\n===================\n\nAnother approach to conditional logic than lax mode, is to exclude modules, members, kwargs, codecs\nerror handler names, or codecs encodings by name from being analysed via argument ``--exclude\n`` (multiple can be specified). Consider the following code block that checks if\n``PROTOCOL_TLS`` is an attribute of ``ssl``:\n\n.. code-block:: python\n\n import ssl\n tls_version = ssl.PROTOCOL_TLSv1\n if hasattr(ssl, \"PROTOCOL_TLS\"):\n tls_version = ssl.PROTOCOL_TLS\n\nIt will state that \"'ssl.PROTOCOL_TLS' requires 2.7, 3.6\" but to exclude that from the results, use\n``--exclude 'ssl.PROTOCOL_TLS'``. Afterwards, only \"'ssl' requires 2.6, 3.0\" will be shown and the\nfinal minimum required versions are v2.6 and v3.0 instead of v2.7 and v3.6.\n\nCode can even be excluded on a more fine grained level using the ``# novermin`` or ``# novm``\ncomments at line level. The following yields the same behavior as the previous code block, but only\nfor that particular ``if`` and its body:\n\n.. code-block:: python\n\n import ssl\n tls_version = ssl.PROTOCOL_TLSv1\n if hasattr(ssl, \"PROTOCOL_TLS\"): # novermin\n tls_version = ssl.PROTOCOL_TLS\n\nIn scenarios where multiple tools are employed that use comments for various features, exclusions\ncan be defined by having ``#`` for each comment \"segment\":\n\n.. code-block:: python\n\n if hasattr(ssl, \"PROTOCOL_TLS\"): # noqa # novermin # pylint: disable=no-member\n tls_version = ssl.PROTOCOL_TLS\n\nNote that if a code base does not have any occurrences of ``# novermin`` or ``# novm``, speedups up\nto 30-40%+ can be achieved by using the ``--no-parse-comments`` argument or ``parse_comments = no``\nconfig setting.\n\nContributing\n============\n\nContributions are very welcome, especially adding and updating detection rules of modules,\nfunctions, classes etc. to cover as many Python versions as possible. For PRs, make sure to keep the\ncode vanilla Python and run ``make test`` first. Note that code must remain valid and working on\nPython v2.7+ and v3+.\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/netromdk/vermin", "keywords": "version detection analysis ast development", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "vermin", "package_url": "https://pypi.org/project/vermin/", "platform": "", "project_url": "https://pypi.org/project/vermin/", "project_urls": { "Bug Reports": "https://github.com/netromdk/vermin/issues", "Homepage": "https://github.com/netromdk/vermin", "Source": "https://github.com/netromdk/vermin/" }, "release_url": "https://pypi.org/project/vermin/1.3.3/", "requires_dist": null, "requires_python": ">=2.7", "summary": "Concurrently detect the minimum Python versions needed to run code", "version": "1.3.3", "yanked": false, "yanked_reason": null }, "last_serial": 12410097, "releases": { "0.10.0": [ { "comment_text": "", "digests": { "md5": "c20bc2d74366c39e617b83ae0db903b5", "sha256": "d5ef8d0861193965d25b59a640eb08e573b24bec207136b931b93ce161d52e7e" }, "downloads": -1, "filename": "vermin-0.10.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c20bc2d74366c39e617b83ae0db903b5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 55902, "upload_time": "2020-01-26T19:45:13", "upload_time_iso_8601": "2020-01-26T19:45:13.514588Z", "url": "https://files.pythonhosted.org/packages/1b/39/43794d1a6162cd7bc8a0c3c77b49b65e5a487aac7a160d5380e6fd6dc562/vermin-0.10.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.10.1": [ { "comment_text": "", "digests": { "md5": "ed1d708c75d7f4d90ceceee29b09be25", "sha256": "81efe71a44ef0751234b4a1fe8265231babb65ae051d78f46a0b6829974d756b" }, "downloads": -1, "filename": "vermin-0.10.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ed1d708c75d7f4d90ceceee29b09be25", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 56253, "upload_time": "2020-03-09T18:48:50", "upload_time_iso_8601": "2020-03-09T18:48:50.669598Z", "url": "https://files.pythonhosted.org/packages/05/0e/ab45f410ab3e65415340ad3f981ef29edd6c0e3431bd7e148c112d4d4fdb/vermin-0.10.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.10.2": [ { "comment_text": "", "digests": { "md5": "fbc30d118eac243010812054bf9b7ccc", "sha256": "85f6ec60c1a5c9b7fefdd575b66a5f6c92a77cbda7de370555c1314ebd8d20b1" }, "downloads": -1, "filename": "vermin-0.10.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fbc30d118eac243010812054bf9b7ccc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 57359, "upload_time": "2020-08-15T12:49:44", "upload_time_iso_8601": "2020-08-15T12:49:44.130785Z", "url": "https://files.pythonhosted.org/packages/f7/71/3c6c1aca1a7437ec5024658d370d9481e1f2e64d2fb8a634d580ca7bc8f0/vermin-0.10.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.10.3": [ { "comment_text": "", "digests": { "md5": "90e263daae53f06c25b3b61fd7e88dd5", "sha256": "239c9c2919e8bd1aab9f093ca86c3d59ac1477f83127e456775930a53a8331ea" }, "downloads": -1, "filename": "vermin-0.10.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "90e263daae53f06c25b3b61fd7e88dd5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 57456, "upload_time": "2020-09-06T09:23:48", "upload_time_iso_8601": "2020-09-06T09:23:48.223208Z", "url": "https://files.pythonhosted.org/packages/76/8d/725f6e80b621c9f6454565c71976d7c178ae9d3aba367ecd3d6ca1355a44/vermin-0.10.3-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.10.4": [ { "comment_text": "", "digests": { "md5": "bcda0f0dc2a05f9c448a91b8f9634d55", "sha256": "32d5ae48d3104e402db4297da23e877c01af793897396930ff9573c27a5cd17f" }, "downloads": -1, "filename": "vermin-0.10.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bcda0f0dc2a05f9c448a91b8f9634d55", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 57943, "upload_time": "2020-09-25T20:41:42", "upload_time_iso_8601": "2020-09-25T20:41:42.657620Z", "url": "https://files.pythonhosted.org/packages/9b/95/0284010434b7d848f422d1506b1e9b5ff514ca94ed4e4c88e0e6f643ff49/vermin-0.10.4-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.10.5": [ { "comment_text": "", "digests": { "md5": "a90ae8d105b3d397e750039a7a79e34f", "sha256": "c66ae418e4030915de4cdc53f26fe375fea9b51c17fa04bae2cc63efc0b780b3" }, "downloads": -1, "filename": "vermin-0.10.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a90ae8d105b3d397e750039a7a79e34f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 58335, "upload_time": "2020-09-28T18:48:07", "upload_time_iso_8601": "2020-09-28T18:48:07.766779Z", "url": "https://files.pythonhosted.org/packages/7a/ce/e96f49f4957cd6cc14f7924f2960f27d947a9ffdebc0b0a2cbaab3f30c1f/vermin-0.10.5-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "d10bc6a57bf597528b73dbb187991eba", "sha256": "9127e349a2534f79c5a0c7ac5f2a61caa8aa339eb6f416c50f6669db04b881b9" }, "downloads": -1, "filename": "vermin-0.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d10bc6a57bf597528b73dbb187991eba", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, >=3", "size": 12757, "upload_time": "2018-03-06T20:39:46", "upload_time_iso_8601": "2018-03-06T20:39:46.767530Z", "url": "https://files.pythonhosted.org/packages/ba/40/75747303731b1447ea8b84691af2e0fe254b2e350ffdfdaa38b1c01a9791/vermin-0.2.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "d5848ed9a2b58fb30a7a2ac6c224f1d6", "sha256": "b24e11c3f916cd59fc44dee82dd139c4a8126b4e303b7189493217ddef24092c" }, "downloads": -1, "filename": "vermin-0.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d5848ed9a2b58fb30a7a2ac6c224f1d6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 15202, "upload_time": "2018-03-08T21:31:57", "upload_time_iso_8601": "2018-03-08T21:31:57.495047Z", "url": "https://files.pythonhosted.org/packages/c1/b5/954dd1f3187291bad32e9939f8caac9c749716e2dd9a9c02848b6485c94a/vermin-0.2.3-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "5ca474f7171e6354c9fc9e7af781bc4b", "sha256": "4d5a67685eced5261c43963d65dbb0819e38f0bed98c8ef8d379f2b1468e4336" }, "downloads": -1, "filename": "vermin-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5ca474f7171e6354c9fc9e7af781bc4b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 19418, "upload_time": "2018-03-11T22:03:48", "upload_time_iso_8601": "2018-03-11T22:03:48.865759Z", "url": "https://files.pythonhosted.org/packages/47/ac/4fc586958bb1bacefd08e40250766a3785d326dab295a67b914268c77602/vermin-0.3.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "18d1950f3962c1d293a593829945d3dc", "sha256": "2be97ddc60b13ea911d7cc5e5ded3e89230e164de2f714c2dd09efcc54d762f7" }, "downloads": -1, "filename": "vermin-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "18d1950f3962c1d293a593829945d3dc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 20623, "upload_time": "2018-03-14T21:33:36", "upload_time_iso_8601": "2018-03-14T21:33:36.742977Z", "url": "https://files.pythonhosted.org/packages/1c/cb/d61840c3c98205779e5eb66e5f4917aed587bfd22dfc562814570c72e51e/vermin-0.3.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "3f0235415c236bca96d7a131d7be191e", "sha256": "8eb50cc36ba5456244810a825b4b38d5957c1d11fcda3b79a987060fe0f1e8bd" }, "downloads": -1, "filename": "vermin-0.3.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3f0235415c236bca96d7a131d7be191e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 20625, "upload_time": "2018-03-14T21:59:04", "upload_time_iso_8601": "2018-03-14T21:59:04.459747Z", "url": "https://files.pythonhosted.org/packages/31/ef/859766a1bf89f325c66fe8d2b69a99e73043ed40d934820c152f5abfbafe/vermin-0.3.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "e02f8955b0935c8a7bfa474308083a58", "sha256": "9e7a5f6a519ef97febc0418d0b4eecfde748de5ad3e91c6c99e0b537644b1fa9" }, "downloads": -1, "filename": "vermin-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e02f8955b0935c8a7bfa474308083a58", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 20066, "upload_time": "2018-03-15T20:29:14", "upload_time_iso_8601": "2018-03-15T20:29:14.475346Z", "url": "https://files.pythonhosted.org/packages/4a/22/91a1a0505def500e4216c7b6524119bb32e92718cfc839da9b9b77c7a3f9/vermin-0.4.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "c9790904e3ac4889230b419bf7b2c02e", "sha256": "2f715c625ca147dedf8dae17104254fd73d997584d3b55dd75cf7e0abd0c2135" }, "downloads": -1, "filename": "vermin-0.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c9790904e3ac4889230b419bf7b2c02e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 20636, "upload_time": "2018-03-24T21:18:56", "upload_time_iso_8601": "2018-03-24T21:18:56.484446Z", "url": "https://files.pythonhosted.org/packages/42/9e/c3d152fd446633c99a65b644e56ad355057c817ea7eb5a3176a845f5c1c9/vermin-0.4.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.4.10": [ { "comment_text": "", "digests": { "md5": "35a5cc80be6f677872c82c03b30d5428", "sha256": "028f85a280d1db03b8746086d7b0b9d3867ef843aa60cc64faec6605319d7ac7" }, "downloads": -1, "filename": "vermin-0.4.10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "35a5cc80be6f677872c82c03b30d5428", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 21490, "upload_time": "2019-01-01T16:33:52", "upload_time_iso_8601": "2019-01-01T16:33:52.231444Z", "url": "https://files.pythonhosted.org/packages/9c/61/de8c77284cc1b3f47ef33d78c174bfc0feb04e20c6782556db1187fd8be8/vermin-0.4.10-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.4.11": [ { "comment_text": "", "digests": { "md5": "2f582dab407e310e55bba6fd09aa0165", "sha256": "422ff2c0796b85c4a01258f125f6277294750b568a053a900f6af77b4669442a" }, "downloads": -1, "filename": "vermin-0.4.11-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2f582dab407e310e55bba6fd09aa0165", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 21489, "upload_time": "2019-03-02T21:29:34", "upload_time_iso_8601": "2019-03-02T21:29:34.145659Z", "url": "https://files.pythonhosted.org/packages/fc/dc/3627973c2998c22d486d0a98b354a9668740bf0015db3e599aec0edc5d68/vermin-0.4.11-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "434caa60633809ae9bf5004ef3d3d5d4", "sha256": "065e719e3cd3f3a90fc86c4986097d4ed51955f9788bf851d1fdf760a83ee19c" }, "downloads": -1, "filename": "vermin-0.4.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "434caa60633809ae9bf5004ef3d3d5d4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 22244, "upload_time": "2018-03-25T20:48:23", "upload_time_iso_8601": "2018-03-25T20:48:23.089674Z", "url": "https://files.pythonhosted.org/packages/a8/78/7c327c1f60dd028c329e7ab7d4d0b7e679302640366fae22771e9914eb7e/vermin-0.4.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "5285fc14656afee4a9909aa38ebde2a6", "sha256": "3d013ae5a69790d3a54ee673547b28f1b08f7fc1501a6e06a5bf684a7108178b" }, "downloads": -1, "filename": "vermin-0.4.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5285fc14656afee4a9909aa38ebde2a6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 20260, "upload_time": "2018-04-10T20:00:03", "upload_time_iso_8601": "2018-04-10T20:00:03.924178Z", "url": "https://files.pythonhosted.org/packages/2d/4a/38183d352028fd1a28a313819bf2c6fed239d8586ba510d8691515ebc73f/vermin-0.4.3-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "e2773d369ce83e511152c12c7f1e01f8", "sha256": "d31a93aeb0bc2cbba61f78af8f541d69a8baf547d853d665af4800cd2a8b0c5d" }, "downloads": -1, "filename": "vermin-0.4.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e2773d369ce83e511152c12c7f1e01f8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 20352, "upload_time": "2018-04-11T17:11:51", "upload_time_iso_8601": "2018-04-11T17:11:51.265586Z", "url": "https://files.pythonhosted.org/packages/e4/16/b8220b7b619ac5d24221a824acdae88f5308d66a820bd44c2094f5db1f3e/vermin-0.4.4-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.4.5": [ { "comment_text": "", "digests": { "md5": "c628479f979a906da9d231539b60d40b", "sha256": "18fc284cf09582dbaa42240a8068b252bc1f9f8369ea9e8c8d6559ba2377c4a3" }, "downloads": -1, "filename": "vermin-0.4.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c628479f979a906da9d231539b60d40b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 20360, "upload_time": "2018-07-13T19:14:39", "upload_time_iso_8601": "2018-07-13T19:14:39.414245Z", "url": "https://files.pythonhosted.org/packages/3a/b3/e6fc94d7ceb1526416c823a680378d6f34e87a2affa4434f3bd191db9323/vermin-0.4.5-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.4.6": [ { "comment_text": "", "digests": { "md5": "4981a8b8491543aa7079cc3050763438", "sha256": "950eefc86b1e6869d026d8ef9841180bd2366800728262a72a27dee29c5a3afb" }, "downloads": -1, "filename": "vermin-0.4.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4981a8b8491543aa7079cc3050763438", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 20448, "upload_time": "2018-07-19T06:45:11", "upload_time_iso_8601": "2018-07-19T06:45:11.483365Z", "url": "https://files.pythonhosted.org/packages/bf/18/db5043e8fede0e386500c133aa8447c75f8322e9db008e4949a55f6481ca/vermin-0.4.6-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.4.7": [ { "comment_text": "", "digests": { "md5": "74b7300321d71cfdd9c3f0d2577c879a", "sha256": "3968a485bea1287b985b62c6801e4d3f7f3aa7683a620f59d7444333f73b5ab9" }, "downloads": -1, "filename": "vermin-0.4.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "74b7300321d71cfdd9c3f0d2577c879a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 20644, "upload_time": "2018-07-20T15:14:38", "upload_time_iso_8601": "2018-07-20T15:14:38.325235Z", "url": "https://files.pythonhosted.org/packages/15/9d/b88beea336bcef4fb1785c25a352aec6d468d0840442ab1e2301ed9c757c/vermin-0.4.7-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.4.8": [ { "comment_text": "", "digests": { "md5": "435fe49127018dae3779dc12b5bc0cf1", "sha256": "f46872379b91a9586a399e38210d48a5b435dc993e07847eaeb03252f5870ea0" }, "downloads": -1, "filename": "vermin-0.4.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "435fe49127018dae3779dc12b5bc0cf1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 21464, "upload_time": "2018-10-31T17:01:09", "upload_time_iso_8601": "2018-10-31T17:01:09.079457Z", "url": "https://files.pythonhosted.org/packages/70/8b/59994a023a48fc32af119ea4ab003093f540be50451f8ec378c2c875fed5/vermin-0.4.8-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.4.9": [ { "comment_text": "", "digests": { "md5": "170ad62f840e9023c65dd792e4ccf51d", "sha256": "54fdadb6846a6ba94016c9223844b7e36e1fb63e94955576f7c06a2d319c14e7" }, "downloads": -1, "filename": "vermin-0.4.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "170ad62f840e9023c65dd792e4ccf51d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 21465, "upload_time": "2018-12-12T19:53:14", "upload_time_iso_8601": "2018-12-12T19:53:14.003657Z", "url": "https://files.pythonhosted.org/packages/fb/77/e25e9c836e930586c9d337f17e29cbfb9c05bc4d24e8c812292f15e13494/vermin-0.4.9-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "0e760db712799e42402f6d100e2d8fe3", "sha256": "c3c3069d2570b04254cd40fa1b210f655a314f9ef06eda1f137689503912ebf7" }, "downloads": -1, "filename": "vermin-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0e760db712799e42402f6d100e2d8fe3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 22046, "upload_time": "2019-04-24T17:58:08", "upload_time_iso_8601": "2019-04-24T17:58:08.673518Z", "url": "https://files.pythonhosted.org/packages/a6/1b/85fb9f9449b2bd88dfe6a1736a2e4e90702a2720463dfd9621d42852b410/vermin-0.5.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "ba5e761f28dec5211433cd554122cdee", "sha256": "a92cf390d3acd3ef80dceb737cccd63b01718598e59cbd2d4c4e4c29615ce2fb" }, "downloads": -1, "filename": "vermin-0.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ba5e761f28dec5211433cd554122cdee", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 25192, "upload_time": "2019-06-04T17:32:31", "upload_time_iso_8601": "2019-06-04T17:32:31.151823Z", "url": "https://files.pythonhosted.org/packages/56/65/6230f77f683377fd06d0ee7478f9edbf94944d0841e3c48f52a18a290ef3/vermin-0.6.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "fa7be9de57319014c4530f7972405326", "sha256": "e8cbc843eddfc3e9ba7c621249bd395cb621b268f3ce70e2f6d1833e2e7144ef" }, "downloads": -1, "filename": "vermin-0.6.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fa7be9de57319014c4530f7972405326", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 25267, "upload_time": "2019-08-24T15:06:43", "upload_time_iso_8601": "2019-08-24T15:06:43.888513Z", "url": "https://files.pythonhosted.org/packages/67/6b/62887b6d8255419c4920094083599c6390d6cb692fc63f3699d86da1ac35/vermin-0.6.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "8a200631e7d76828db543aa7440d737f", "sha256": "e8df1d30eef943beb1fcc47b85c1e1e969b180d5f7df714f4246279c1e10732a" }, "downloads": -1, "filename": "vermin-0.6.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8a200631e7d76828db543aa7440d737f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 26176, "upload_time": "2019-08-29T17:08:24", "upload_time_iso_8601": "2019-08-29T17:08:24.852373Z", "url": "https://files.pythonhosted.org/packages/0a/d2/77ef106fad2dafdf19971d54c01f96e57c92ca4d732a8561908c73bfae46/vermin-0.6.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "3e27dae32254b7842a53eed30e83a0f2", "sha256": "2d30809b59482a1a254ca0468d6b56f6a62de9c95ca1432628bf79c6752d27d1" }, "downloads": -1, "filename": "vermin-0.6.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3e27dae32254b7842a53eed30e83a0f2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 26802, "upload_time": "2019-08-31T07:30:15", "upload_time_iso_8601": "2019-08-31T07:30:15.502371Z", "url": "https://files.pythonhosted.org/packages/20/3b/39f51edf831ff0715123168b328795a8cde77df964d2ae3b26c6c881bba5/vermin-0.6.3-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "b944726eace7a2fb1b09c2c170ee1cac", "sha256": "243639253a01742d68469393a094e11d3bc87036756206a5c69715f67385978b" }, "downloads": -1, "filename": "vermin-0.7.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b944726eace7a2fb1b09c2c170ee1cac", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 31113, "upload_time": "2019-09-07T17:32:08", "upload_time_iso_8601": "2019-09-07T17:32:08.677279Z", "url": "https://files.pythonhosted.org/packages/80/24/ca42099a23c501eb6add2ae8f2f8b6509f1a4cd5a433ee5051e370099c7f/vermin-0.7.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "71e5aa537e1cb9e54f92bcd84f7008cc", "sha256": "86bef26f42b7677b7ece5e294b0a9768d76646507a831b814cdc14ccf2f0b029" }, "downloads": -1, "filename": "vermin-0.8.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "71e5aa537e1cb9e54f92bcd84f7008cc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 32689, "upload_time": "2019-10-01T19:45:24", "upload_time_iso_8601": "2019-10-01T19:45:24.401811Z", "url": "https://files.pythonhosted.org/packages/83/cc/f08d2217c140b5695b2954e8bb42ef9f426b1baafb163c611e07004cb746/vermin-0.8.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "1b13c0fc3a524cd6a04e505c6585ea50", "sha256": "aeb635560c0806c672f99e2471421d32043baf45d57518676de028ca99c7a631" }, "downloads": -1, "filename": "vermin-0.8.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1b13c0fc3a524cd6a04e505c6585ea50", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 33390, "upload_time": "2019-10-17T06:03:37", "upload_time_iso_8601": "2019-10-17T06:03:37.691441Z", "url": "https://files.pythonhosted.org/packages/24/87/1767460f23bbeca97483e9c0b4a7af99db355ed2793c453cae2771e60505/vermin-0.8.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "c6e435c5c13223fa5f0cced58ae80712", "sha256": "6af67d13ebaac43b5a91d94457ac3237ac022261a83ae08f9b29a4b04e814067" }, "downloads": -1, "filename": "vermin-0.8.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c6e435c5c13223fa5f0cced58ae80712", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 34401, "upload_time": "2019-10-27T09:00:14", "upload_time_iso_8601": "2019-10-27T09:00:14.013862Z", "url": "https://files.pythonhosted.org/packages/c7/6c/86fa03009d330bb2a5e937a71e9eddb38439647b9cfed12f2f222b49d2bf/vermin-0.8.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "79b0b9bcbc25c2dfeffd47b491519900", "sha256": "3fb3372346a2dbe93928c2f1e4d6c3b95a2be33f27b21dda8e446448bf4a2bc6" }, "downloads": -1, "filename": "vermin-0.9.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "79b0b9bcbc25c2dfeffd47b491519900", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 36738, "upload_time": "2019-12-17T21:34:26", "upload_time_iso_8601": "2019-12-17T21:34:26.726508Z", "url": "https://files.pythonhosted.org/packages/4e/f8/9427ab4bb1d6733c216148495bc53f2248a1c559005accd3afdb2adff1d9/vermin-0.9.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "a15f1ea5211beb3546f2928dede27da4", "sha256": "274c5efcf37d8a7674a2421a5e45f427b481d3ab7a41e1244ed0b59dcdf19eea" }, "downloads": -1, "filename": "vermin-0.9.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a15f1ea5211beb3546f2928dede27da4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 35732, "upload_time": "2019-12-30T10:46:12", "upload_time_iso_8601": "2019-12-30T10:46:12.058800Z", "url": "https://files.pythonhosted.org/packages/39/1d/51036e69a624b6829c6eeb7df0e3c957965448a1daac7554498d90d717e6/vermin-0.9.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "030fcd5ee4704c2a5e6fafb34bd0e06a", "sha256": "bebe31ce1faff1c4f9b1d20949cca777bd54e4fbb7b8020656146b34c3ccc90f" }, "downloads": -1, "filename": "vermin-0.9.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "030fcd5ee4704c2a5e6fafb34bd0e06a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 36689, "upload_time": "2020-01-07T19:28:40", "upload_time_iso_8601": "2020-01-07T19:28:40.234249Z", "url": "https://files.pythonhosted.org/packages/7b/42/ad345d9302ec5c0a52b5ad35340174720c98833cb0b512e659ba28f3c20b/vermin-0.9.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "5ba2235559360165017c3a0cc439fa40", "sha256": "11d2f8c4183f78fb4338af3c23f6d77d1d1c60e4bea6446491bf077fc92954c7" }, "downloads": -1, "filename": "vermin-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5ba2235559360165017c3a0cc439fa40", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 68415, "upload_time": "2020-10-29T23:24:05", "upload_time_iso_8601": "2020-10-29T23:24:05.678100Z", "url": "https://files.pythonhosted.org/packages/71/e6/a472c8e947038907df721dd9d0118f65ebfbad74e371684e1bf4ab4c3d9a/vermin-1.0.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "b8d1e967dadb41ab29bf5b7bb5c0968c", "sha256": "01ac8c033d2884f6b640a2669defea314a3c9929ea1a0a6a1b693adbaf4f25f0" }, "downloads": -1, "filename": "vermin-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b8d1e967dadb41ab29bf5b7bb5c0968c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 68412, "upload_time": "2020-10-31T13:08:32", "upload_time_iso_8601": "2020-10-31T13:08:32.902405Z", "url": "https://files.pythonhosted.org/packages/71/0b/cbd0d72498077a38f4e756aed615ee3380e2440b92a292cd684478053dc3/vermin-1.0.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "3b41e557ac64eb7d91d8fb119a6c2cc8", "sha256": "153c9c7e8a9c3fa28214fe1eb6b81e2da5bae5bf14c9dd1e99dd6a036676d506" }, "downloads": -1, "filename": "vermin-1.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3b41e557ac64eb7d91d8fb119a6c2cc8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 68505, "upload_time": "2020-11-09T19:22:19", "upload_time_iso_8601": "2020-11-09T19:22:19.950218Z", "url": "https://files.pythonhosted.org/packages/5f/ba/2402ea5d22120fe76e5cf566499dd3f8843c09b06c9d5b505c586bcb3299/vermin-1.0.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "f3f433e51bfabc0b490ecaf85300cf28", "sha256": "1670633084e337e7912c2ea1fbba241efd191d0f88bf1132131d15f827f6b637" }, "downloads": -1, "filename": "vermin-1.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f3f433e51bfabc0b490ecaf85300cf28", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 68528, "upload_time": "2020-11-12T18:38:54", "upload_time_iso_8601": "2020-11-12T18:38:54.890837Z", "url": "https://files.pythonhosted.org/packages/9f/82/94b13803bc7ac5d3311ea00033d0e4c8c2c1a3f8817def380c50d76964eb/vermin-1.0.3-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "1e8959d60eafdac86601cee6fb2e9901", "sha256": "ab0c03ec1199c477ea49196355e2320934bfedc64605186c40850df36f5c64a0" }, "downloads": -1, "filename": "vermin-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1e8959d60eafdac86601cee6fb2e9901", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 73612, "upload_time": "2020-12-27T15:08:25", "upload_time_iso_8601": "2020-12-27T15:08:25.110210Z", "url": "https://files.pythonhosted.org/packages/f7/98/9bce73e146b4e796ecc46fece22f168e987ad9e4d22c4e09b384169dbbd5/vermin-1.1.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "9147346698608083c1cbc1dc56f8e4ac", "sha256": "2866f2d3ec3a67a9249f6491e66af10be01931a91376f55ef2cb5e2915779e13" }, "downloads": -1, "filename": "vermin-1.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9147346698608083c1cbc1dc56f8e4ac", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 74602, "upload_time": "2021-04-18T18:36:32", "upload_time_iso_8601": "2021-04-18T18:36:32.058721Z", "url": "https://files.pythonhosted.org/packages/a0/56/dd3f0316e0b84f33675274bafa3def4d760b955421d011f286144098e709/vermin-1.1.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "f120311c13b768c01452230d399ffe63", "sha256": "f014273dca89e0a9bb8c6bc79cd616c67fc4f0957232ed1a979dfd66e4ec53f4" }, "downloads": -1, "filename": "vermin-1.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f120311c13b768c01452230d399ffe63", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 77473, "upload_time": "2021-05-08T11:12:48", "upload_time_iso_8601": "2021-05-08T11:12:48.396201Z", "url": "https://files.pythonhosted.org/packages/a4/f8/c5bd6de611f1d4d45c963f6d9a594aa7062e4b2241e0789d7c764184ea85/vermin-1.2.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "7fb2575eca146ff4a4bd71692d3aee78", "sha256": "301b2a1f781d1a94e253fd0106560ab187cc869a32db27e0d95d32ae2ab70b3a" }, "downloads": -1, "filename": "vermin-1.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7fb2575eca146ff4a4bd71692d3aee78", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 77623, "upload_time": "2021-06-30T06:04:24", "upload_time_iso_8601": "2021-06-30T06:04:24.731358Z", "url": "https://files.pythonhosted.org/packages/b0/a1/799e6e3a1355c518c86520674557d38bc2f91c8b706a78e8cf82bd5dca35/vermin-1.2.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "744039b70421d8561a2829cfbc0ab4a8", "sha256": "5dfa0a36bdd6a73a925e417a452df5b0c7afcebc01362439409b5cf56ee8a6f2" }, "downloads": -1, "filename": "vermin-1.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "744039b70421d8561a2829cfbc0ab4a8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 77944, "upload_time": "2021-08-26T18:49:59", "upload_time_iso_8601": "2021-08-26T18:49:59.122801Z", "url": "https://files.pythonhosted.org/packages/b9/d1/ab60cf1e3cecd8fcc65ca24fc6755ef30517b477df7d8157fc165a9e4175/vermin-1.2.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "e88f814d71fa31c4aeed5bcf76a12b48", "sha256": "7fe5ab707e06f61d094e7afcaf1ec5f334fbcddb65c2b326c150a9b0b2bad525" }, "downloads": -1, "filename": "vermin-1.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e88f814d71fa31c4aeed5bcf76a12b48", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 80498, "upload_time": "2021-10-17T15:11:25", "upload_time_iso_8601": "2021-10-17T15:11:25.641310Z", "url": "https://files.pythonhosted.org/packages/a1/56/95a2f0c3cc69ddec48295a81477a8710bf27e21c429e65e5cc1cdc9cbd75/vermin-1.3.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "4c7416f32110831647dd0d4129372dc9", "sha256": "ef38dedab8cf7b68f8037f531b82222153ab21d3c54b91dd80776bbf95637ae5" }, "downloads": -1, "filename": "vermin-1.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4c7416f32110831647dd0d4129372dc9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 81934, "upload_time": "2021-10-24T13:01:47", "upload_time_iso_8601": "2021-10-24T13:01:47.345245Z", "url": "https://files.pythonhosted.org/packages/a0/7c/a08694e3993d5eda15432687de32a23922c5cedcd3690b85174651d961b2/vermin-1.3.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.3.2": [ { "comment_text": "", "digests": { "md5": "efb7c4af32b2e72bc6de1162b9d6e085", "sha256": "07fd72e7ec9649e255485948995c6f03fd7a0a7bcd3acb982f14faeb83d168c5" }, "downloads": -1, "filename": "vermin-1.3.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "efb7c4af32b2e72bc6de1162b9d6e085", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 82014, "upload_time": "2021-12-18T16:22:22", "upload_time_iso_8601": "2021-12-18T16:22:22.801299Z", "url": "https://files.pythonhosted.org/packages/4a/67/ec4280afe00af77fa8a0ebf9d57e7b1f75f2526b2c7bbbe1ea5ed5f5d411/vermin-1.3.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.3.3": [ { "comment_text": "", "digests": { "md5": "d39e607a4750da505657cf3dc4ac3dfd", "sha256": "c5bd8bf2026d87563332293a0479606954bd973d8cf72ab370e1164a019c0524" }, "downloads": -1, "filename": "vermin-1.3.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d39e607a4750da505657cf3dc4ac3dfd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 82040, "upload_time": "2021-12-26T21:28:57", "upload_time_iso_8601": "2021-12-26T21:28:57.880269Z", "url": "https://files.pythonhosted.org/packages/8c/90/789eec4298bc14b22aac16d27c4741ca50e22c4a0a7eccfd3e17687825a8/vermin-1.3.3-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d39e607a4750da505657cf3dc4ac3dfd", "sha256": "c5bd8bf2026d87563332293a0479606954bd973d8cf72ab370e1164a019c0524" }, "downloads": -1, "filename": "vermin-1.3.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d39e607a4750da505657cf3dc4ac3dfd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 82040, "upload_time": "2021-12-26T21:28:57", "upload_time_iso_8601": "2021-12-26T21:28:57.880269Z", "url": "https://files.pythonhosted.org/packages/8c/90/789eec4298bc14b22aac16d27c4741ca50e22c4a0a7eccfd3e17687825a8/vermin-1.3.3-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }