{ "info": { "author": "Wille Marcel", "author_email": "wille@wille.blog.br", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Topic :: Scientific/Engineering :: GIS", "Topic :: Utilities" ], "description": "osmcha\n=======\n\nOSM Changeset Analyser, ``osmcha``, is a Python package to detect suspicious OSM changesets.\nIt was designed to be used with `osmcha-django `_,\nbut also can be used standalone or in other projects.\n\nYou can report issues or request new features in the the\n`osmcha-frontend repository `_.\n\n.. image:: https://badge.fury.io/py/osmcha.svg\n :target: http://badge.fury.io/py/osmcha\n\n.. image:: https://travis-ci.org/willemarcel/osmcha.svg\n :target: https://travis-ci.org/willemarcel/osmcha\n\n.. image:: https://coveralls.io/repos/willemarcel/osmcha/badge.svg\n :target: https://coveralls.io/r/willemarcel/osmcha\n\nInstallation\n============\n\n.. code-block:: console\n\n pip install osmcha\n\nUsage\n=====\n\nPython Library\n--------------\n\nYou can read a `replication changeset file `_\ndirectly from the web:\n\n.. code-block:: python\n\n c = ChangesetList('https://planet.openstreetmap.org/replication/changesets/002/236/374.osm.gz')\n\nor from your local filesystem.\n\n.. code-block:: python\n\n c = ChangesetList('tests/245.osm.gz')\n\n\n``c.changesets`` will return a list containing data of all the changesets listed in the file.\n\nYou can filter the changesets passing a `GeoJSON` file with a polygon with your\ninterest area to `ChangesetList` as the second argument.\n\nFinally, to analyse an especific changeset, do:\n\n.. code-block:: python\n\n ch = Analyse(changeset_id)\n ch.full_analysis()\n\nCustomizing Detection Rules\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nYou can customize the detection rules by defining your prefered values when\ninitializing the ``Analyze`` class. See below the default values.\n\n.. code-block:: python\n\n ch = Analyse(changeset_id, create_threshold=200, modify_threshold=200,\n delete_threshold=30, percentage=0.7, top_threshold=1000,\n suspect_words=[...], illegal_sources=[...], excluded_words=[...])\n\nCommand Line Interface\n----------------------\n\nThe command line interface can be used to verify an especific changeset directly\nfrom the terminal.\n\nUsage: ``osmcha ``\n\nDetection Rules\n===============\n\n``osmcha`` works by analysing how many map features the changeset created, modified\nor deleted, and by verifying the presence of some suspect words in the ``comment``,\n``source`` and ``imagery_used`` fields of the changeset. Furthermore, we also\nconsider if the software editor used allows to import data or to do mass edits.\nWe consider ``powerfull editors``: JOSM, Merkaartor, level0, QGIS and ArcGis.\n\nIn the ``Usage`` section, you can see how to customize some of these detection rules.\n\nPossible Import\n---------------\n\nWe tag a changeset as a ``possible import`` if the number of created elements is\ngreater than 70% of the sum of elements created, modified and deleted and if it\ncreates more than 1000 elements or 200 elements case it used one of the ``powerfull editors``.\n\nMass Modification\n-----------------\n\nWe consider a changeset as a ``mass modification`` if the number of modified elements\nis greater than 70% of the sum of elements created, modified and deleted and if it\nmodifies more than 200 elements.\n\nMass Deletion\n-------------\n\nAll changesets that delete more than 1000 elements are considered a ``mass deletion``.\nIf the changeset deletes between 200 and 1000 elements and the number of deleted\nelements is greater than 70% of the sum of elements created, modified and deleted\nit's also tagged as a ``mass deletion``.\n\nSuspect words\n-------------\n\nThe suspect words are loaded from a `yaml file `_.\nYou can customize the words by setting another default file with a environment\nvariable:\n\n.. code-block:: console\n\n export SUSPECT_WORDS=\n\nor pass a list of words to the ``Analyse`` class, more information on the section\n``Customizing Detection Rules``. We use a list of illegal sources to analyse the\n``source`` and ``imagery_used`` fields and another more general list to examine\nthe comment field. We have also a list of excluded words to avoid false positives.\n\n\nNew mapper\n-----------\n\nVerify if the user has less than 5 edits or less than 5 mapping days.\n\n\nUser has multiple blocks\n------------------------\n\nChangesets created by users that has received more than one block will be\nflagged.\n\n\nUnknown iD instance\n-------------------\n\nVerify the changesets created with iD editor to check the host instance. The trusted\niD instances are: `OSM.org `_, `Strava `_,\n`ImproveOSM `_, `iDeditor `_,\n`Hey `_, `Mapcat `_ and\n`iD indoor `_, `Softek `_ and `RapiD `_.\n\nIf you deploy an iD instance for an organization, please let us know so we can whitelist it.\n\n\nTests\n======\n\nTo run the tests on `osmcha`:\n\n.. code-block:: console\n\n git clone https://github.com/willemarcel/osmcha.git\n cd osmcha\n pip install -e .[test]\n py.test -v\n\nChangelog\n=========\n\nCheck `CHANGELOG `_ for the version history.\n\nRelated projects\n================\n\n* `osmcha-django `_ - backend and API\n* `osmcha-frontend `_ - frontend of the `OSMCha `_ application\n* `osm-compare `_ - library that analyse OSM features to input it to OSMCha\n\nLicense\n=======\n\nGPLv3\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/willemarcel/osmcha", "keywords": "openstreetmap", "license": "GPLv3+", "maintainer": "", "maintainer_email": "", "name": "osmcha", "package_url": "https://pypi.org/project/osmcha/", "platform": "", "project_url": "https://pypi.org/project/osmcha/", "project_urls": { "Homepage": "https://github.com/willemarcel/osmcha" }, "release_url": "https://pypi.org/project/osmcha/0.5.1/", "requires_dist": null, "requires_python": "", "summary": "Python package to detect suspicious OpenStreetMap changesets", "version": "0.5.1" }, "last_serial": 5988698, "releases": { "0.2": [ { "comment_text": "", "digests": { "md5": "cedca1a86b58bd8a51366ed6e2745abe", "sha256": "eb89929a2dbb52ca7462b320147a2e4f017520d3b025bb81477be74052a6fdca" }, "downloads": -1, "filename": "osmcha-0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "cedca1a86b58bd8a51366ed6e2745abe", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 6214, "upload_time": "2017-02-13T11:46:42", "url": "https://files.pythonhosted.org/packages/42/e8/c144868956f302dee4f6dcccead0d9fce75dfe3dba01524e7adce3421373/osmcha-0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b1813ebee2fc518eda9c2a37a2653609", "sha256": "fc9c10474ffd358778334c8422c8e7d8d0e378e404d3441610ee25c59577fa3e" }, "downloads": -1, "filename": "osmcha-0.2.tar.gz", "has_sig": false, "md5_digest": "b1813ebee2fc518eda9c2a37a2653609", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4414, "upload_time": "2017-02-13T11:46:59", "url": "https://files.pythonhosted.org/packages/16/8b/bc2937c0b2deb70dfeb31123d3a54813208f75447572a03ec4ec4ad4a63b/osmcha-0.2.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "1dc40a39dc5c1b6257456f3a57047f49", "sha256": "7df8ef41b1b8b1c097bd9faee06cf28cbd042621e13769a59598888b48bcdd13" }, "downloads": -1, "filename": "osmcha-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1dc40a39dc5c1b6257456f3a57047f49", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 10126, "upload_time": "2017-02-22T21:36:23", "url": "https://files.pythonhosted.org/packages/7e/d6/c9c31ae926be928cdbf2418210e0ba5d0eaf238cea09e503df864010f544/osmcha-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6234ce8c0ffe671940137a330c7ad243", "sha256": "205473fa4e7541a0e933e96aa860526e79b67869c1b62347a6b873959335d08e" }, "downloads": -1, "filename": "osmcha-0.2.1.tar.gz", "has_sig": false, "md5_digest": "6234ce8c0ffe671940137a330c7ad243", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6858, "upload_time": "2017-02-22T21:36:19", "url": "https://files.pythonhosted.org/packages/92/46/8a350a26e15769e574f04346c024b89df8e5ea0bedad1ee04977c18269b7/osmcha-0.2.1.tar.gz" } ], "0.2.dev0": [ { "comment_text": "", "digests": { "md5": "b90c8feccbff366af4ac1297e8ca07f8", "sha256": "3242f645fc08f42324f01663300b07280310363c2890054c984df5f177a4d3fc" }, "downloads": -1, "filename": "osmcha-0.2.dev0-py3-none-any.whl", "has_sig": false, "md5_digest": "b90c8feccbff366af4ac1297e8ca07f8", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 6296, "upload_time": "2017-02-13T11:45:13", "url": "https://files.pythonhosted.org/packages/f7/1a/866cc58e908b4e2dd8c7b0fc3e5e700cac897a7b89ce55296666a492c17d/osmcha-0.2.dev0-py3-none-any.whl" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "756f61b91943b491c8d836314eb0bfdc", "sha256": "0ac13845035dd76178cb924dba930e8f909c078e6ec7692d4795703caa5102a5" }, "downloads": -1, "filename": "osmcha-0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "756f61b91943b491c8d836314eb0bfdc", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 10095, "upload_time": "2017-02-22T21:38:46", "url": "https://files.pythonhosted.org/packages/94/f0/b85ed1f7dbf7081315b4c3b46f5aecb0d60c994c261999ec48f3ba7f95fa/osmcha-0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8c8f30bf756520a599928046192d7dfe", "sha256": "1a73ca96501f262e44498918f0908370c477266cc0dcf76bd9062eb6037f4a54" }, "downloads": -1, "filename": "osmcha-0.3.tar.gz", "has_sig": false, "md5_digest": "8c8f30bf756520a599928046192d7dfe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6841, "upload_time": "2017-02-22T21:38:43", "url": "https://files.pythonhosted.org/packages/5e/7e/07f25ec978768ff7fcdca4d051e3d6d55392b7b0f862d1a4ce02c86b7fee/osmcha-0.3.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "8aa2446b620ffbea1c42cf5edb91c6e3", "sha256": "6ef2ee43b34d2d80c02a8eb768c1e09f6e9963734b16b6ca9830f99c1fb48bea" }, "downloads": -1, "filename": "osmcha-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8aa2446b620ffbea1c42cf5edb91c6e3", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 10625, "upload_time": "2017-02-23T14:49:21", "url": "https://files.pythonhosted.org/packages/21/5f/c8eb45da86326573384456d0779443d6148bd6c511770905b899b652335f/osmcha-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1f7fb61da64d6f01060146ae7aea9024", "sha256": "12211efd9b31638e54b0d594451aa0aba4e2fce6bb0c451bc15dbb47e1ecdcf0" }, "downloads": -1, "filename": "osmcha-0.3.1.tar.gz", "has_sig": false, "md5_digest": "1f7fb61da64d6f01060146ae7aea9024", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25643, "upload_time": "2017-02-23T14:49:12", "url": "https://files.pythonhosted.org/packages/d1/ae/ddfcb853885a793f771d50b58eebccfb8ad9171d05ac9a361579b7502e31/osmcha-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "52e1381c6f9f5dd14d650ce274e779b5", "sha256": "2f1350b95775a8366096248d282281f537f005081f34430aac213bbd6873b25b" }, "downloads": -1, "filename": "osmcha-0.3.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "52e1381c6f9f5dd14d650ce274e779b5", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 10669, "upload_time": "2017-03-18T00:28:21", "url": "https://files.pythonhosted.org/packages/44/48/e90b1a6e8e85754af4a70bc765187cf32527df81578ed4a5dfb46c0b01e9/osmcha-0.3.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3febf6a7add5b934542603b55e0d2648", "sha256": "a029e2b77a50d290ee12cde82e7a96a655bcbefbe5fd15e0973232f306bc9bb0" }, "downloads": -1, "filename": "osmcha-0.3.2.tar.gz", "has_sig": false, "md5_digest": "3febf6a7add5b934542603b55e0d2648", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25728, "upload_time": "2017-03-18T00:28:18", "url": "https://files.pythonhosted.org/packages/51/00/2d2a3655b5ec37ee164d8ffaef6efe195ab6d13bcaf73739decd06f93dcf/osmcha-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "0b2ad44ed49a3c5e7ec1f68940be434d", "sha256": "225d5c706a1e6d44c400574c377786b4c02308785d79c6f31de709fcb5ac4609" }, "downloads": -1, "filename": "osmcha-0.3.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0b2ad44ed49a3c5e7ec1f68940be434d", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 10923, "upload_time": "2017-03-21T11:41:31", "url": "https://files.pythonhosted.org/packages/4b/e4/b26dd62a0423a0838b02bd2a653a569de996121f14dba0911a302bb5839b/osmcha-0.3.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eb90bc78eccde6a1259a083e153da115", "sha256": "2fbf8354cbd8ecc99f4663147ffd26b6f372ff7a4a1ed1205311309385af2a84" }, "downloads": -1, "filename": "osmcha-0.3.3.tar.gz", "has_sig": false, "md5_digest": "eb90bc78eccde6a1259a083e153da115", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26106, "upload_time": "2017-03-21T11:41:29", "url": "https://files.pythonhosted.org/packages/35/98/56902feb6c922595de7ebbea531480d0073ff8a77eaac0956669a9273994/osmcha-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "4b53b3f194774ea19424ccbcd6ea3992", "sha256": "45d4ab35d36d2749c8961a87e27a7be1a35c9c6fb4dfa27b2d5ca18560eb6e82" }, "downloads": -1, "filename": "osmcha-0.3.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4b53b3f194774ea19424ccbcd6ea3992", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 10972, "upload_time": "2017-03-22T13:31:47", "url": "https://files.pythonhosted.org/packages/a3/dd/77b17802920efa30c4ff0422c35c391e97e4e430656c777d4c90986c398b/osmcha-0.3.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f32c88ca94379af497ff8618a499b1fc", "sha256": "9e6aef7c0f8d1535a243a000c538e5c0e22e66fd6c67572f4801a267ca94dfac" }, "downloads": -1, "filename": "osmcha-0.3.4.tar.gz", "has_sig": false, "md5_digest": "f32c88ca94379af497ff8618a499b1fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26133, "upload_time": "2017-03-22T13:31:45", "url": "https://files.pythonhosted.org/packages/82/73/69b346f5ed3051b92c184ae51ad19ecd0357a5a7793db424f6f415c750f7/osmcha-0.3.4.tar.gz" } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "87dcba13a2269075f8ca63b9bdd03fda", "sha256": "cc67439ee92daea41b1719ab2cefe175e93c0030c96242ecd5e9abee16b01d3a" }, "downloads": -1, "filename": "osmcha-0.3.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "87dcba13a2269075f8ca63b9bdd03fda", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 11201, "upload_time": "2017-03-24T14:19:09", "url": "https://files.pythonhosted.org/packages/fb/cb/891d5a4b2021139a2d2ebb34ba720acef5286a147e6a371e5c54aa144c8c/osmcha-0.3.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6fafb43842e30ab9010d5f8da6be429c", "sha256": "79a91b6be1290ab7cf77f53a2dc93ffeb84eadcaf81b306018bf70b314c15a1b" }, "downloads": -1, "filename": "osmcha-0.3.5.tar.gz", "has_sig": false, "md5_digest": "6fafb43842e30ab9010d5f8da6be429c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27098, "upload_time": "2017-03-24T14:19:07", "url": "https://files.pythonhosted.org/packages/04/d0/37df75f9d8d06c41acb2b8ed0a7a4517a218e8a760f51694c9804ac4dd35/osmcha-0.3.5.tar.gz" } ], "0.3.6": [ { "comment_text": "", "digests": { "md5": "bb692db998c2a7ef3ead492d8bd0e617", "sha256": "4d2a76d960fa2c3dbfb2b497227a10d52286a473e7107d9eed30b50d1c8d5dd6" }, "downloads": -1, "filename": "osmcha-0.3.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bb692db998c2a7ef3ead492d8bd0e617", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 11214, "upload_time": "2017-04-18T20:45:55", "url": "https://files.pythonhosted.org/packages/18/85/c970d5a7ce004fbe92a01269334c509e613c010924ca7b9d7cf056881617/osmcha-0.3.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e5bb886d344264e4f76d3a394b4e675d", "sha256": "5ba642724747113d17d5d54fa30b05a459693790986fd8e10de94ab37df5b254" }, "downloads": -1, "filename": "osmcha-0.3.6.tar.gz", "has_sig": false, "md5_digest": "e5bb886d344264e4f76d3a394b4e675d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27158, "upload_time": "2017-04-18T20:45:53", "url": "https://files.pythonhosted.org/packages/82/ca/e8cda277173c9cadf6b417aac0f9a6dba115fc4d80876e0e1d42e9ecdf33/osmcha-0.3.6.tar.gz" } ], "0.3.7": [ { "comment_text": "", "digests": { "md5": "9432570b8e166417f6ac40cb2ce716dd", "sha256": "0e31a6c729eed5de5eccf870306705030b3b253cb50008d420703e641b6fad1f" }, "downloads": -1, "filename": "osmcha-0.3.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9432570b8e166417f6ac40cb2ce716dd", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 11201, "upload_time": "2017-04-18T21:57:53", "url": "https://files.pythonhosted.org/packages/58/02/133566130fec2314a9276fa9ea217c3c948d5fec830b5aa852a7e278b143/osmcha-0.3.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dbc394ed9be3dc604745b66687be5e4f", "sha256": "dee547a4c2a9bf9f4fa61fe5b76d2fc9845d9388405ba2dcb46de3a183603fcc" }, "downloads": -1, "filename": "osmcha-0.3.7.tar.gz", "has_sig": false, "md5_digest": "dbc394ed9be3dc604745b66687be5e4f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27100, "upload_time": "2017-04-18T21:57:51", "url": "https://files.pythonhosted.org/packages/8d/89/ffe31e32411f5fdbf1a3c8ee0965e8e5d25ff5f621d9cf7d07661d3802da/osmcha-0.3.7.tar.gz" } ], "0.3.8": [ { "comment_text": "", "digests": { "md5": "e8c9d61317c283d0bf186280a70fb374", "sha256": "8b2fb0c882d7d3572774d6f32ce9754a900a897477bd4441d79b24d2bb5c655d" }, "downloads": -1, "filename": "osmcha-0.3.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e8c9d61317c283d0bf186280a70fb374", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 11215, "upload_time": "2017-05-10T13:43:30", "url": "https://files.pythonhosted.org/packages/e1/30/5e6c03f85e9aa96afb3b3b90978650fada1ee562606a9aa76137e8213f1f/osmcha-0.3.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "96ef30e5aed8b0c8d0507fc9e434d8c6", "sha256": "3ff2f009b81651b93052ad1ef5c3bfa605bb4920efc6c9c267d446887c5ff99a" }, "downloads": -1, "filename": "osmcha-0.3.8.tar.gz", "has_sig": false, "md5_digest": "96ef30e5aed8b0c8d0507fc9e434d8c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27123, "upload_time": "2017-05-10T13:43:27", "url": "https://files.pythonhosted.org/packages/01/70/81fb533cccdfc229291306d9821e8b82cf3be3d2400caea4ea1e1ed56d10/osmcha-0.3.8.tar.gz" } ], "0.3.9": [ { "comment_text": "", "digests": { "md5": "044312bfc21bad7354dfa3f8eac1ad8f", "sha256": "e01a5597952425de136f56b6027348fc0ff1654342a2857c7846d6cd172ca9a9" }, "downloads": -1, "filename": "osmcha-0.3.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "044312bfc21bad7354dfa3f8eac1ad8f", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 11219, "upload_time": "2017-07-14T04:02:08", "url": "https://files.pythonhosted.org/packages/59/23/c4f9877d30c639d9320f60c42940ee4a848ce377ed1109677f301565d5ea/osmcha-0.3.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9d012c8af04a756fb7c14ef00b2da07e", "sha256": "e2d2887c8716768cc786ed1e29f582d87236ba85daefe7c5db8beca814638f3b" }, "downloads": -1, "filename": "osmcha-0.3.9.tar.gz", "has_sig": false, "md5_digest": "9d012c8af04a756fb7c14ef00b2da07e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27111, "upload_time": "2017-07-14T04:02:06", "url": "https://files.pythonhosted.org/packages/81/d6/14ff4fa27eb07b6a1580aecde9eb4b5ce0052df183ce2aa8919ed866ddca/osmcha-0.3.9.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "19f9cecb224390e7afb339d3df7f0ea1", "sha256": "54b9995ee759f9243e7e43d795d03d790e6a5e280a0b7ed4706cb773d6dc8e24" }, "downloads": -1, "filename": "osmcha-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "19f9cecb224390e7afb339d3df7f0ea1", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 11194, "upload_time": "2017-07-28T09:31:18", "url": "https://files.pythonhosted.org/packages/fb/73/93974901fe1e1e47f926a8c8c4679e3a29b034e4ef79a7f483842d70cb6c/osmcha-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2e20b89eac245e071bb5e7bd07efd470", "sha256": "ea0c4a933b425673c3d21415e2fe57c5cc8e21fa59474bfd8879cd3debbb48f5" }, "downloads": -1, "filename": "osmcha-0.4.0.tar.gz", "has_sig": false, "md5_digest": "2e20b89eac245e071bb5e7bd07efd470", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26455, "upload_time": "2017-07-28T09:31:15", "url": "https://files.pythonhosted.org/packages/2b/f2/0b633d991779eca1bde66fe20ae5879f459550420d3c83b34f06c5318f13/osmcha-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "32565eeb7804bad07013becd04a4e054", "sha256": "07a85381941252ee9216473940edbad694b5bbdd6e38c6168bba6b743406538a" }, "downloads": -1, "filename": "osmcha-0.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "32565eeb7804bad07013becd04a4e054", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 11245, "upload_time": "2017-08-18T02:49:32", "url": "https://files.pythonhosted.org/packages/80/61/5ef545cad0dfbe6a8f07813a788c9ccd760998e35bd9eb5ad22fa8328d9d/osmcha-0.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "08aac37d8d97ac74ce9bfd5638b5e6b2", "sha256": "5834d06b747db59341e7af0ef95ee4a0121a88dca310478db28793822fdc3142" }, "downloads": -1, "filename": "osmcha-0.4.1.tar.gz", "has_sig": false, "md5_digest": "08aac37d8d97ac74ce9bfd5638b5e6b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26586, "upload_time": "2017-08-18T02:49:31", "url": "https://files.pythonhosted.org/packages/86/d1/d65d91f19da5a1570be96250eb853d7ab94974e17589343ed4d949c9884a/osmcha-0.4.1.tar.gz" } ], "0.4.10": [ { "comment_text": "", "digests": { "md5": "62700184dc5f5b6c0f810ffa496fbf75", "sha256": "d66210eab0752d4435408342b39ee2df85c896b999c408448b168f4a0011bf56" }, "downloads": -1, "filename": "osmcha-0.4.10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "62700184dc5f5b6c0f810ffa496fbf75", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 9466, "upload_time": "2019-06-21T19:32:23", "url": "https://files.pythonhosted.org/packages/bd/86/e860cdf22fba74bae0552c73fb0be2de61d3bd090528f7ce192e5eee4360/osmcha-0.4.10-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8f8198937ab180aed49d98b01f4c7079", "sha256": "3fbd535c159f2dfc046052bb58be6757caa5454e43131fe6536df2ade4f60ae6" }, "downloads": -1, "filename": "osmcha-0.4.10.tar.gz", "has_sig": false, "md5_digest": "8f8198937ab180aed49d98b01f4c7079", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27983, "upload_time": "2019-06-21T19:32:20", "url": "https://files.pythonhosted.org/packages/c4/c4/5bf7369f810ab437604b72e221d3506837f216b85b0e3f4400f1037f07e0/osmcha-0.4.10.tar.gz" } ], "0.4.11": [ { "comment_text": "", "digests": { "md5": "e6877531ca83ab1a042043462c34c74f", "sha256": "e1bdd8dc37b1a3c756f401f00bb9a0d74740337a261a7147054519d15f7f4b5b" }, "downloads": -1, "filename": "osmcha-0.4.11-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e6877531ca83ab1a042043462c34c74f", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 21802, "upload_time": "2019-07-24T14:05:26", "url": "https://files.pythonhosted.org/packages/1c/53/e39b0f0fd91747ac9c7912bc37a326e3e44efa8038a9e91bdffcda4d4ee6/osmcha-0.4.11-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ddf1fb145fc30079d1b58c86b6ef7c3f", "sha256": "34edfa83e8047816fd56f967abe8f6050db0e064243701176959f5f68b352525" }, "downloads": -1, "filename": "osmcha-0.4.11.tar.gz", "has_sig": false, "md5_digest": "ddf1fb145fc30079d1b58c86b6ef7c3f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28026, "upload_time": "2019-07-24T14:05:23", "url": "https://files.pythonhosted.org/packages/ce/95/410bd28cc1ef68bdab01fe6c15a76a8366920f20212958c77e453ad0ca88/osmcha-0.4.11.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "ecf55bb068ef5225833d17077e0991bb", "sha256": "157321538f1e5a71940b374f9433107c5edac806de1e1222fe1aa458da7d6115" }, "downloads": -1, "filename": "osmcha-0.4.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ecf55bb068ef5225833d17077e0991bb", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 11768, "upload_time": "2017-08-29T17:25:00", "url": "https://files.pythonhosted.org/packages/78/f7/81c300e2588482573f45e6ae96b0ab71b3dce1ed5ea009d112bd6838850a/osmcha-0.4.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4d55fda015295c47d94a729478c615b0", "sha256": "3e57bef965e7704621be34567b847bcdd99c89d5bcfb98445aa72eae91456c4b" }, "downloads": -1, "filename": "osmcha-0.4.2.tar.gz", "has_sig": false, "md5_digest": "4d55fda015295c47d94a729478c615b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27058, "upload_time": "2017-08-29T17:24:58", "url": "https://files.pythonhosted.org/packages/bd/55/a8c13b8320085625581fa57ced166c6d6fb659238a5289bcb0af5d74087c/osmcha-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "7f7c4f6e0d8e2ecd65d6f2be8e1cb980", "sha256": "7afc81a61b3c1ff4b7d00c6d519132a24ab453df540a861ada7d0c51931383e1" }, "downloads": -1, "filename": "osmcha-0.4.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7f7c4f6e0d8e2ecd65d6f2be8e1cb980", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 11918, "upload_time": "2017-09-15T14:41:29", "url": "https://files.pythonhosted.org/packages/85/b2/bff31fed9660cf7c45d474c38de468c990f5d25a67591e3f7e3a1cd87c1c/osmcha-0.4.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2afa42dd6c9e4f74d9d819d616aa5f7b", "sha256": "3e5013e5f3aa9a36e4a019e31a1f957875a2aa468902d965cda4ab221aefc9c4" }, "downloads": -1, "filename": "osmcha-0.4.3.tar.gz", "has_sig": false, "md5_digest": "2afa42dd6c9e4f74d9d819d616aa5f7b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27213, "upload_time": "2017-09-15T14:41:27", "url": "https://files.pythonhosted.org/packages/32/18/ffa3fe8a638e8783b20b222e7fe61692cc8ec464f6f24e63b5059945b574/osmcha-0.4.3.tar.gz" } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "54c5f3c595d7f2bdacffe167f028d866", "sha256": "ae30124c619c7b8df4d8e03329e1a16ed53144dfc6f86c1d1efff7bb3b7294a1" }, "downloads": -1, "filename": "osmcha-0.4.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "54c5f3c595d7f2bdacffe167f028d866", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 11926, "upload_time": "2017-10-10T11:52:34", "url": "https://files.pythonhosted.org/packages/64/cc/f4688879a6859cec545fc75e32137a2d9a143f69f4f7a7d4f1e37149452e/osmcha-0.4.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "63434fb8021360964518434e5ac49289", "sha256": "41b9b6cbad2ef8646ee579345aa6f2e90529f5948419a9cc06f3839853d385b5" }, "downloads": -1, "filename": "osmcha-0.4.4.tar.gz", "has_sig": false, "md5_digest": "63434fb8021360964518434e5ac49289", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27226, "upload_time": "2017-10-10T11:52:31", "url": "https://files.pythonhosted.org/packages/b2/5c/7864445f89969f815cf7b44d275d83c2dbe6549e5d44f7f7ccac48928ff1/osmcha-0.4.4.tar.gz" } ], "0.4.5": [ { "comment_text": "", "digests": { "md5": "58c6c978cf913bc6a76cc96840c8bf51", "sha256": "5c03dc2e62f0c9b4dd515e72c427986d9d27ff053090d627d632038e53d81996" }, "downloads": -1, "filename": "osmcha-0.4.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "58c6c978cf913bc6a76cc96840c8bf51", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 12108, "upload_time": "2018-03-12T23:28:54", "url": "https://files.pythonhosted.org/packages/a7/03/5e5f1462187e6ca42be7442581d417b7b7287c94ee298c74caa6d030d309/osmcha-0.4.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "396e40930195353d2e164a5148449f96", "sha256": "3ada08ec0b931bdb636ad47502c4b8c775cf8fac1faaa8e20ee356a171949d53" }, "downloads": -1, "filename": "osmcha-0.4.5.tar.gz", "has_sig": false, "md5_digest": "396e40930195353d2e164a5148449f96", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27443, "upload_time": "2018-03-12T23:28:52", "url": "https://files.pythonhosted.org/packages/9c/50/dcfd36bfc4bc58b97af36ad249c8190300adef0aea846b73f4cc3433f0bc/osmcha-0.4.5.tar.gz" } ], "0.4.6": [ { "comment_text": "", "digests": { "md5": "b42d8878bd839dd6d805d864112e19a1", "sha256": "64e4635766a0b3684453bdf7d84001ffc715f308f43161fc3c85c8a7ea285acc" }, "downloads": -1, "filename": "osmcha-0.4.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b42d8878bd839dd6d805d864112e19a1", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 12375, "upload_time": "2018-03-12T23:55:42", "url": "https://files.pythonhosted.org/packages/f6/6b/12cae44d8d4cf78df5bac7761cfb248302dd8f60aedb9475f0c80ca5f6e4/osmcha-0.4.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bb010d6f041ef8d3ff511565f50f96e4", "sha256": "92a7119e78dafc5cef499691b899c6b2685f8ab4188507a830885745f6f9a9d1" }, "downloads": -1, "filename": "osmcha-0.4.6.tar.gz", "has_sig": false, "md5_digest": "bb010d6f041ef8d3ff511565f50f96e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27644, "upload_time": "2018-03-12T23:55:39", "url": "https://files.pythonhosted.org/packages/9b/2e/1c8ce0437b04a12423dbdcbe912b1beabac4f992669ee12213533134eb8d/osmcha-0.4.6.tar.gz" } ], "0.4.7": [ { "comment_text": "", "digests": { "md5": "c9ec263f6a0ee644a3abb7040068af1d", "sha256": "1c336f0b2d5082073fbcb78d3dddf3a2baf2f56557d253424114619e7a3ffae3" }, "downloads": -1, "filename": "osmcha-0.4.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c9ec263f6a0ee644a3abb7040068af1d", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 12371, "upload_time": "2018-04-02T17:27:53", "url": "https://files.pythonhosted.org/packages/6e/f3/f3428e041f74ded681aa7067801293531e4e9259b0724a02231a6d57fb77/osmcha-0.4.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6d5f82499d75b59ef23e48084aa72caf", "sha256": "2556c13d2c6a518c606f9d3f1a0cbb4e25c4b5037b890ba952f9992b93af628e" }, "downloads": -1, "filename": "osmcha-0.4.7.tar.gz", "has_sig": false, "md5_digest": "6d5f82499d75b59ef23e48084aa72caf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27653, "upload_time": "2018-04-02T17:27:51", "url": "https://files.pythonhosted.org/packages/c4/fa/6048de2d3a32e5221a5354b927675d69041e3a8c5e37e3b337063ea86090/osmcha-0.4.7.tar.gz" } ], "0.4.8": [ { "comment_text": "", "digests": { "md5": "dbbf296aa3fa07aa37320a8025a018cf", "sha256": "2101e8f42a27a0d184c1bafd61cfd953dd5586adf7d62a072155c5f0320884c8" }, "downloads": -1, "filename": "osmcha-0.4.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "dbbf296aa3fa07aa37320a8025a018cf", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 12479, "upload_time": "2018-06-18T14:45:01", "url": "https://files.pythonhosted.org/packages/ec/b4/b9df22e38b617e4ef2d39273b75bb7bd7a059dc9e8b4615298e64b1b6006/osmcha-0.4.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7d1489e98f6ba9ea13c17d929f4ad1e6", "sha256": "81b76b1ed93e00810a7804f54366ce812cdbdf285d99e1d06e7e17bd650e7b62" }, "downloads": -1, "filename": "osmcha-0.4.8.tar.gz", "has_sig": false, "md5_digest": "7d1489e98f6ba9ea13c17d929f4ad1e6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27717, "upload_time": "2018-06-18T14:45:00", "url": "https://files.pythonhosted.org/packages/09/1d/2e32c75a933076d500378710932368e2cfd5e51a9e2edaaffd877a9a8eac/osmcha-0.4.8.tar.gz" } ], "0.4.9": [ { "comment_text": "", "digests": { "md5": "1c16cc7edbb688c78d395c451c3002ff", "sha256": "775d50e0297a72ed19a1078cdc4ed01af8ac2a8ec33995fb8800f1a3fab6a16a" }, "downloads": -1, "filename": "osmcha-0.4.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1c16cc7edbb688c78d395c451c3002ff", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 9449, "upload_time": "2019-06-03T11:22:24", "url": "https://files.pythonhosted.org/packages/29/24/4a611dbf488214240074d670acd4d92a310292ed3aba7220a21022f675db/osmcha-0.4.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f33116380c4b93e1029f6cca25a6de41", "sha256": "1b5107244f1bc80f46023d1e00a1343b846470a727f265a05b020b251fd208c2" }, "downloads": -1, "filename": "osmcha-0.4.9.tar.gz", "has_sig": false, "md5_digest": "f33116380c4b93e1029f6cca25a6de41", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27961, "upload_time": "2019-06-03T11:22:21", "url": "https://files.pythonhosted.org/packages/4e/81/cdf51279573ef23fb03ee0f65a688ec74ae877bddb1d48f492138b9cd322/osmcha-0.4.9.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "9025dd312ac5ffd5cfc71af76502dc55", "sha256": "4696d03e98c7ba85c6b4d9b08d453370096889cd33b4fd77ad2c7c274e5f542d" }, "downloads": -1, "filename": "osmcha-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9025dd312ac5ffd5cfc71af76502dc55", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 22120, "upload_time": "2019-08-19T14:34:24", "url": "https://files.pythonhosted.org/packages/59/1f/fe85ca19ecffd879fbdd2b256eb4e8e6d6a6995800b8825ffe9ee1d994c1/osmcha-0.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8a13ca234e22f03b4ffb9b45603476e7", "sha256": "89c244589d6a411fbc5da437b84e4db65f24989a7e93d56fc617e17460ed3ce2" }, "downloads": -1, "filename": "osmcha-0.5.0.tar.gz", "has_sig": false, "md5_digest": "8a13ca234e22f03b4ffb9b45603476e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28748, "upload_time": "2019-08-19T14:34:05", "url": "https://files.pythonhosted.org/packages/5c/9b/ab90b6af2dd7b30ad0cb8702f173da1a7a420a46a9eb92de2ab526dcd82f/osmcha-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "e7fadc44300a392ee179d5eb38737166", "sha256": "06ba11e519c3f7f224ece20ac790bce486bfcc10e4fb19ca48418028789a47dc" }, "downloads": -1, "filename": "osmcha-0.5.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e7fadc44300a392ee179d5eb38737166", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 22071, "upload_time": "2019-10-17T09:35:58", "url": "https://files.pythonhosted.org/packages/4a/60/7bd47af6530c7122f7a3e0adccc2cbe239f6ebd31d536db6c12dcd760451/osmcha-0.5.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "67a2e11f743c8a10071594fd2afe00f3", "sha256": "811aeff685f2fd1e01635526a163496adc094f259456f0e717685ebf97501533" }, "downloads": -1, "filename": "osmcha-0.5.1.tar.gz", "has_sig": false, "md5_digest": "67a2e11f743c8a10071594fd2afe00f3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28772, "upload_time": "2019-10-17T09:35:55", "url": "https://files.pythonhosted.org/packages/db/f4/b85ffa110fd014b77aa81a9441772dfd303264bbf782ae81ef7d2c7e9b0c/osmcha-0.5.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e7fadc44300a392ee179d5eb38737166", "sha256": "06ba11e519c3f7f224ece20ac790bce486bfcc10e4fb19ca48418028789a47dc" }, "downloads": -1, "filename": "osmcha-0.5.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e7fadc44300a392ee179d5eb38737166", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 22071, "upload_time": "2019-10-17T09:35:58", "url": "https://files.pythonhosted.org/packages/4a/60/7bd47af6530c7122f7a3e0adccc2cbe239f6ebd31d536db6c12dcd760451/osmcha-0.5.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "67a2e11f743c8a10071594fd2afe00f3", "sha256": "811aeff685f2fd1e01635526a163496adc094f259456f0e717685ebf97501533" }, "downloads": -1, "filename": "osmcha-0.5.1.tar.gz", "has_sig": false, "md5_digest": "67a2e11f743c8a10071594fd2afe00f3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28772, "upload_time": "2019-10-17T09:35:55", "url": "https://files.pythonhosted.org/packages/db/f4/b85ffa110fd014b77aa81a9441772dfd303264bbf782ae81ef7d2c7e9b0c/osmcha-0.5.1.tar.gz" } ] }