{ "info": { "author": "Qian Fu", "author_email": "qian.fu@outlook.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: Microsoft :: Windows", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only" ], "description": "# pydriosm\n\n**Author**: Qian Fu [![Twitter URL](https://img.shields.io/twitter/url/https/twitter.com/Qian_Fu?label=Follow&style=social)](https://twitter.com/Qian_Fu)\n\n[![PyPI](https://img.shields.io/pypi/v/pydriosm?label=PyPI&color=important)](https://pypi.org/project/pydriosm/)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pydriosm?label=Python)](https://www.python.org/downloads/windows/)\n[![PyPI - License](https://img.shields.io/pypi/l/pydriosm?color=green&label=License)](https://github.com/mikeqfu/pydriosm/blob/master/LICENSE)\n![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/mikeqfu/pydriosm?color=yellowgreen&label=Code%20size)\n[![PyPI - Downloads](https://img.shields.io/pypi/dm/pydriosm?color=yellow&label=Downloads)](https://pypistats.org/packages/pydriosm)\n\nThis package provides helpful utilities for researchers to easily download and read/parse the OpenStreetMap data extracts (in **.pbf** and **.shp.zip**) which are available at the free download servers: [Geofabrik](https://download.geofabrik.de/) and [BBBike](https://www.bbbike.org/). In addition, it also provides a convenient way to import/dump the parsed data to, and retrieve it from, a [PostgreSQL](https://www.postgresql.org/) sever. \n\n\n\n## Installation\n\nWindows OS users may the \"pip install\" command in Command Prompt:\n\n```\npip install --upgrade pydriosm\n```\n\nIf you are using some IDE, such as PyCharm, you should be able to find **pydriosm** in the PyPI repository. (In PyCharm, go to \"Settings\" and find **pydriosm** in \"Project Interpreter\"; to install it, select **pydriosm** and then click \"Install Package\".)\n\n##### Note:\n\n- Successful installation of `pydriosm` (and ensuring its full functionality) requires a few dependencies. On Windows OS, however, `pip install` may fail to go through the installation of some supporting packages, such as [python-Levenshtein](https://pypi.org/project/python-Levenshtein/), [Fiona](https://pypi.org/project/Fiona/), [GDAL](https://pypi.org/project/GDAL/) and [Shapely](https://pypi.org/project/Shapely/). In that case, you might have to resort to installing their **.whl** files, which can be downloaded from the [Unofficial Windows Binaries for Python Extension Packages](https://www.lfd.uci.edu/~gohlke/pythonlibs/). Once those packages are all ready, we could go ahead with the `pip` command. \n\n\n\n## Quick start \n\nFirstly, we import the package: \n\n```python\nimport pydriosm as dri\n```\n\nThe current version of the package deals only with subregion data files provided on the free server. To get a full list of subregion names that are available, you can use\n\n```python\nsubregion_list = dri.fetch_subregion_info_catalogue(\"GeoFabrik-subregion-name-list\")\nprint(subregion_list)\n```\n\nBelow is an example of using **.pbf** data of the \"Greater London\" area to demonstrate briefly some main functions this package can do. \n\n\n\n### Download data \n\nTo download the OSM data for a region (or rather, a subregion) of which the data extract is available, you need to specify the name of the region (e.g. \"Greater London\"):\n\n```python\nsubregion_name = 'Greater London'\n# or, subregion_name = 'london'; case-insensitive and fuzzy (but not toooo... fuzzy)\n```\n\nDownload **.pbf** data of \"Greater London\":\n\n```python\ndri.download_subregion_osm_file(subregion_name, osm_file_format=\".osm.pbf\", \n download_dir=None, update=False,\n download_confirmation_required=True)\n```\n\nNote that `download_dir` is `None` by default. In that case, a default file path will be created and the downloaded file will be saved there. \n\nCheck the default file path and name:\n\n```python\ndefault_fn, default_fp = dri.get_default_path_to_osm_file(subregion_name, \n osm_file_format=\".osm.pbf\", \n mkdir=False, update=False)\nprint(\"Default filename: {}\".format(default_fn))\nprint(\"Default file path: {}\".format(default_fp))\n```\n\nHowever, you may also set `download_dir` to be any other valid directory, especially when downloading data of multiple subregions. For example, \n\n```python\n# Specify the our own data directory\ncustomised_data_dir = \"test_data\"\n# So \"test_data\" folder will be created in our current working directory\n\n# Alternatively, we could specify a full path \n# import os\n# customised_data_dir = os.path.join(os.getcwd(), \"test_data\")\n\n# Download .pbf data of both 'London' and 'Kent' to the `customised_data_dir`\ndri.download_subregion_osm_file('London', 'Kent', \n osm_file_format=\".osm.pbf\", update=False,\n download_dir=customised_data_dir, \n download_confirmation_required=True)\n```\n\nThe **.pbf** data file will then be saved to the `download_dir` as specified.\n\n\n\n### Read/parse data \n\nParsing the **.pbf** data relies mainly on [GDAL/OGR](https://pypi.org/project/GDAL/), using `read_osm_pbf()` function.\n\n```python\ngreater_london = dri.read_osm_pbf(subregion_name, data_dir=None, parsed=True, \n file_size_limit=50, fmt_other_tags=True, \n fmt_single_geom=True, fmt_multi_geom=True, \n update=False, download_confirmation_required=True, \n pickle_it=True, rm_raw_file=False)\n```\n\nThe parsing process may take a few minutes or even longer if the data file is too large. If the file size is greater than the given `file_size_limit` (default: 50 MB), the data will be parsed in a chunk-wise manner. \n\nNote that `greater_london` is a `dict` with its keys being the name of five different layers: \"points\", \"lines\", \"multilinestrings\", \"multipolygons\" and \"other_relations\". \n\nIf only the name of a subregion is given, i.e. `read_osm_pbf(subregion_name, ...)`, the function will go to look for the data file from the default file path. Otherwise, the function requires a specific data directory. For example, to read/parse the data in `customised_data_dir`, i.e. \"test_data\" folder, you need to set `data_dir=customised_data_dir` as follows:\n\n```python\ngreater_london_test = dri.read_osm_pbf(subregion_name, data_dir=customised_data_dir)\n```\n\n`greater_london` and `greater_london_test` should be the same. \n\nTo make life easier, you can simply skip the download step and use `read_osm_pbf()` directly. That is, if the targeted data is not available, `read_osm_pbf()` will download the data file first. By default, a confirmation of downloading the data will be prompted, given that `download_confirmation_required=True`. \n\nSetting `pickle_it=True` is to save a local copy of the parsed data as a `pickle` file. If `update=False`, when you run `read_osm_pbf(subregion_name)` again, the function will load the `pickle` file directly. If `update=True`, the function will try to download the latest version of the data file and parse it again.\n\n\n\nIn comparison, you can use `read_shp_zip()`, which relies mainly on [GeoPandas](http://geopandas.org/), to read **.shp.zip** data files:\n\n```python\n# We need to specify a layer, e.g. 'railways'\nlayer_name = 'railways'\n\ngreater_london_shp = dri.read_shp_zip(subregion_name, layer=layer_name, \n feature=None, data_dir=None, update=False,\n download_confirmation_required=True, \n pickle_it=True, rm_extracts=False)\n```\n\nNote that `greater_london_shp` and `greater_london` are different. \n\n\n\nTo get information about more than one subregion, you can also merge **.shp** files of specific layers from those subregions. For example, to merge the \"railways\" layer of two subregions: \"Greater London\" and \"Essex\", we could do as follows.\n\n```python\nsubregion_names=['Greater London', 'Kent']\n# layer_name = 'railways'\ndri.merge_multi_shp(subregion_names, layer=layer_name, update_shp_zip=False, \n download_confirmation_required=True, output_dir=None)\n```\n\nYou could also set `data_dir=customised_data_dir` to save the downloaded **.shp.zip** files; or `output_dir=customised_data_dir` to make the merged **.shp** file available into `customised_data_dir`.\n\n\n\n### Import and retrieve data with a PostgreSQL server \n\n**Pydriosm** also provides a class, named \"OSM\", which communicates with [PostgreSQL](https://www.postgresql.org/) server. \n\n```python\nosmdb = dri.OSM()\n```\n\nTo establish a connection with the server, you will be asked to type in your username, password, host name/address and name of the database you intend to connect. \n\nFor example, you may type in \"postgres\" to connect the default database. (Note that the quotation marks should be removed when typing in the name.)\n\nIf you would like to connect to another database (instead of the default \"postgres\"), run \n\n```python\nosmdb.connect_db(database_name='osm_pbf_data_extracts')\n```\n\nThen, a database named \"**osm_pbf_data_extracts**\" will be created automatically if it does not exist before the connection is established.\n\n\n\n#### (1) Import the data to the database \n\nTo import `greater_london` (i.e. the parsed **.pbf** data of \"Greater London\") to the database, \"**osm_pbf_data_extracts**\":\n\n```python\nosmdb.dump_osm_pbf_data(greater_london, table_name=subregion_name, parsed=True, \n if_exists='replace', chunk_size=None,\n subregion_name_as_table_name=True)\n```\n\nEach element (i.e. layer) of `greater_london` data will be stored in a different schema. The schema is named as the name of each layer.\n\n\n\n#### (2) Retrieve data from the database \n\nTo retrieve the dumped data:\n\n```python\ngreater_london_retrieval = osmdb.read_osm_pbf_data(table_name=subregion_name, \n parsed=True, \n subregion_name_as_table_name=True,\n chunk_size=None, id_sorted=True)\n```\n\nNote that `greater_london_retrieval` may not be exactly the same as `greater_london`. This is because the keys of the elements in `greater_london` are in the following order: 'points', 'lines', 'multilinestrings', 'multipolygons' and 'other_relations'; whereas when dumping `greater_london` to the database, the five different schemas are sorted alphabetically as follows: 'lines', 'multilinestrings', 'multipolygons', 'other_relations', and 'points', and so retrieving data from the server will be in the latter order. Despite that, the data contained in both `greater_london` and `greater_london_retrieval` is consistent. \n\nIf you need to query data of a specific layer (or several layers), or in a specific order of layers (schemas): \n\n```python\nlondon_points_lines = osmdb.read_osm_pbf_data(subregion_name, 'points', 'lines')\n# Another example:\n# london_lines_mul = osmdb.read_osm_pbf_data('london', 'lines', 'multilinestrings')\n```\n\n\n\n#### (3) Import data of all subregions of a given (sub)region to the database \n\n```python\n# Find all subregions (without smaller subregions) of a subregion.\n# Take for example, to find all subregions of 'England':\nsubregions = dri.retrieve_subregion_names_from('England')\n\n# Import data of all contained in `subregions`\ndri.psql_osm_pbf_data_extracts(subregions, database_name='osm_pbf_data_extracts', \n data_dir=None, update_osm_pbf=False, \n if_table_exists='replace', file_size_limit=50,\n parsed=True, fmt_other_tags=True, \n fmt_single_geom=True, fmt_multi_geom=True, \n rm_raw_file=False)\n```\n\nSetting `rm_raw_file=False` and `data_dir=None` will keep all raw **.pbf** data files in the default data folder.\n\nIf you would like to import all subregion data of \"Great Britain\":\n\n```python\ngb_subregions = dri.retrieve_subregion_names_from('Great Britain')\n```\n\nInstead of returning `['England', 'Scotland', 'Wales']`, the list `gb_subregions` will include all subregions of \"England\" (rather than \"England\" as a single element), \"Scotland\" and \"Wales\". \n\n\n\n---\n\n[![Website](https://img.shields.io/website/https/download.geofabrik.de?label=Data%20source&up_color=9cf&up_message=http%3A%2F%2Fdownload.geofabrik.de)](https://download.geofabrik.de/)\n[![Website](https://img.shields.io/website/https/download.bbbike.org/osm?label=Data%20source&up_color=9cf&up_message=http%3A%2F%2Fdownload.bbbike.org%2Fosm)](https://download.bbbike.org/osm/)\n\nData/Map data © [Geofabrik GmbH](http://www.geofabrik.de/) and [OpenStreetMap Contributors](http://www.openstreetmap.org/) \n\nAll data from the [OpenStreetMap](https://www.openstreetmap.org) is licensed under the [OpenStreetMap License](https://www.openstreetmap.org/copyright). \n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/mikeqfu/pydriosm", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "pydriosm", "package_url": "https://pypi.org/project/pydriosm/", "platform": "", "project_url": "https://pypi.org/project/pydriosm/", "project_urls": { "Homepage": "https://github.com/mikeqfu/pydriosm" }, "release_url": "https://pypi.org/project/pydriosm/1.0.16/", "requires_dist": [ "beautifulsoup4 (>=4.7.1)", "Fiona (>=1.7.0)", "fuzzywuzzy (>=0.17.0)", "GDAL (<3.0,>=2.4.0)", "geopandas (>=0.5.0)", "humanfriendly (>=4.18)", "html5lib (>=1.0)", "lxml (>=4.0)", "more-itertools (>=7.0)", "numpy (>=1.16.0)", "openpyxl (>=2.6.2)", "pandas (>=0.25.0)", "psycopg2 (>=2.8.0)", "pyhelpers (>=1.0.17)", "pyproj (>=2.0)", "pyshp (>=2.1.0)", "python-Levenshtein (>=0.12.0)", "python-rapidjson (>=0.7.2)", "requests (>=2.22.0)", "Shapely (>=1.6.0)", "SQLAlchemy (>=1.3.5)", "SQLAlchemy-Utils (>=0.34.1)", "tqdm (>=4.32.2)", "xlrd (>=1.2.0)", "XlsxWriter (>=1.1.8)" ], "requires_python": "", "summary": "Download, read/parse and import/export OpenStreetMap data extracts", "version": "1.0.16" }, "last_serial": 5936147, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "0f3b0e8123436d10655f5e6969ecb984", "sha256": "f583bcf1c00da6603ef4e1543ca8bb8f3c666b1ebabda4c391c8241554682b38" }, "downloads": -1, "filename": "pydriosm-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0f3b0e8123436d10655f5e6969ecb984", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 250895, "upload_time": "2019-03-03T23:33:49", "url": "https://files.pythonhosted.org/packages/4b/f6/79df9eca6e41c5230ba1be879a5af25af5b0a5d923252953b8ff2331a534/pydriosm-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7c7d9bed50df00fd39451089788fced2", "sha256": "a66559f81ebe97574c4c77c5f3562ef74582a4b0965e4ab38b6eaf4157780c41" }, "downloads": -1, "filename": "pydriosm-1.0.0.tar.gz", "has_sig": false, "md5_digest": "7c7d9bed50df00fd39451089788fced2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20649, "upload_time": "2019-03-03T23:33:51", "url": "https://files.pythonhosted.org/packages/2f/2d/1dfdfbf80ba2e952a67c974e81a4383be78de60044dccb3bc234779c35b1/pydriosm-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "aaa3ed92cb85f9ee9853830d30e0c740", "sha256": "69ca4fb1c3138a8c6c07d478222be98e2e193f5e9cb92ca75d38b2e61abba672" }, "downloads": -1, "filename": "pydriosm-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "aaa3ed92cb85f9ee9853830d30e0c740", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 250906, "upload_time": "2019-03-07T15:21:00", "url": "https://files.pythonhosted.org/packages/01/bc/9db79a4595fcac38bf3bbd94208ec989a423113268947df77b22fb57a38c/pydriosm-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "529b2e75defa88457e2a0973ab78afb4", "sha256": "5ce1b71e4b642e4cbcd50e8320a74a9e8b609592fb2aa39525f7d315617c7a0e" }, "downloads": -1, "filename": "pydriosm-1.0.1.tar.gz", "has_sig": false, "md5_digest": "529b2e75defa88457e2a0973ab78afb4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20676, "upload_time": "2019-03-07T15:21:02", "url": "https://files.pythonhosted.org/packages/aa/4e/2c98b4ab6714aac64bbc0b1097b1303e2c7cd9acd4565793e4a73206036c/pydriosm-1.0.1.tar.gz" } ], "1.0.10": [ { "comment_text": "", "digests": { "md5": "f43e9f64fe2b98d667e4a116375e844e", "sha256": "0ce631b82e8f386f8a50d1869f9065c524a9ea3bdfc7fc0a56ab7af8e56ea625" }, "downloads": -1, "filename": "pydriosm-1.0.10-py3-none-any.whl", "has_sig": false, "md5_digest": "f43e9f64fe2b98d667e4a116375e844e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 286653, "upload_time": "2019-03-18T22:13:06", "url": "https://files.pythonhosted.org/packages/6e/57/2df36a7d8c02425f54f9547d3fdbca1b8bb66da5255a533d9a2f37f6d798/pydriosm-1.0.10-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7c850b45c9978e0348f436df9568589c", "sha256": "b65ba234a7bddab7a6798e4615fed083cc394814a938e2152eb53c1b6f91d14a" }, "downloads": -1, "filename": "pydriosm-1.0.10.tar.gz", "has_sig": false, "md5_digest": "7c850b45c9978e0348f436df9568589c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28882, "upload_time": "2019-03-18T22:13:07", "url": "https://files.pythonhosted.org/packages/2e/32/918da383db4a90abaa5979339d808e7d2037007c2c7805e4ec8aa25d2ea7/pydriosm-1.0.10.tar.gz" } ], "1.0.11": [ { "comment_text": "", "digests": { "md5": "3559cfa132bc8a4266eaab5db05d96b5", "sha256": "a514c99f27c821fce8dd2f043582e8805dcab4c06591ac708cd686a03cce8a36" }, "downloads": -1, "filename": "pydriosm-1.0.11-py3-none-any.whl", "has_sig": false, "md5_digest": "3559cfa132bc8a4266eaab5db05d96b5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 286801, "upload_time": "2019-04-04T12:14:13", "url": "https://files.pythonhosted.org/packages/d5/b5/d2cd6c0f67bdf5befe7f1ce3c9a36198ad608d994331d67b3a4ddd60231b/pydriosm-1.0.11-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9219c41ec4a9ba7aecf8b531f0fc8da7", "sha256": "9e571822e573b24489b128dbb4527eb71f5f9e45824937f267dcb0b9b5ef1b96" }, "downloads": -1, "filename": "pydriosm-1.0.11.tar.gz", "has_sig": false, "md5_digest": "9219c41ec4a9ba7aecf8b531f0fc8da7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29192, "upload_time": "2019-04-04T12:14:14", "url": "https://files.pythonhosted.org/packages/da/09/6d391658ec4e5e1371bf36cc0bde1461469dc92f9260ae30792413ee4c19/pydriosm-1.0.11.tar.gz" } ], "1.0.12": [ { "comment_text": "", "digests": { "md5": "bde1b7172f2d64fe2b6665b3c9680235", "sha256": "8dab88e61bbe9a852294329438222d791766c3402aa9899c525cfd9276f4ed48" }, "downloads": -1, "filename": "pydriosm-1.0.12-py3-none-any.whl", "has_sig": false, "md5_digest": "bde1b7172f2d64fe2b6665b3c9680235", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 298108, "upload_time": "2019-07-11T16:46:16", "url": "https://files.pythonhosted.org/packages/a6/06/1873027e726cb45ec1c1b453b474053e99b37d272dd0bc3ae090eef45cc0/pydriosm-1.0.12-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "690c90e581f4eb0f42c201c3ac62ca8b", "sha256": "436907c5df9e339bd1708eddd7de18b2f0fef029e9d5d1b273604ad704c6496e" }, "downloads": -1, "filename": "pydriosm-1.0.12.tar.gz", "has_sig": false, "md5_digest": "690c90e581f4eb0f42c201c3ac62ca8b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28065, "upload_time": "2019-07-11T16:46:18", "url": "https://files.pythonhosted.org/packages/1e/80/c3d0211d9da8411eda8b0e997baafdcaccb9c3c40ada5a206c473e18d074/pydriosm-1.0.12.tar.gz" } ], "1.0.13": [ { "comment_text": "", "digests": { "md5": "dbdfe1ffa4bbdbb0ea204bebb6e2e37b", "sha256": "c7f1e64a2217fd54a7881196c62a91712e6ac85bef2d38988fab4c677f08d880" }, "downloads": -1, "filename": "pydriosm-1.0.13-py3-none-any.whl", "has_sig": false, "md5_digest": "dbdfe1ffa4bbdbb0ea204bebb6e2e37b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 298159, "upload_time": "2019-07-15T00:38:21", "url": "https://files.pythonhosted.org/packages/0a/cd/bbf6bc026da989f5ff76dd25a9dfac6569d78b5b69f2512d5cc361b062bb/pydriosm-1.0.13-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "be91f24001fd9d0c1c1681f1b74c725f", "sha256": "a0b64b356d78b978438fc9ef8e49b3908a5bdc012b2ab64f4acccc55d9c853b8" }, "downloads": -1, "filename": "pydriosm-1.0.13.tar.gz", "has_sig": false, "md5_digest": "be91f24001fd9d0c1c1681f1b74c725f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28116, "upload_time": "2019-07-15T00:38:23", "url": "https://files.pythonhosted.org/packages/48/f5/7dac7a1665658eeb6ca45ee3a24b51f3ffb137e7b7317d48d50fd748f0df/pydriosm-1.0.13.tar.gz" } ], "1.0.14": [ { "comment_text": "", "digests": { "md5": "da7bb2a9c8b9a9fdd082a21fe731e721", "sha256": "aaf220c9c717339f6e9777c3375b602e24545395147b0b817225b213cf29a1a8" }, "downloads": -1, "filename": "pydriosm-1.0.14-py3-none-any.whl", "has_sig": false, "md5_digest": "da7bb2a9c8b9a9fdd082a21fe731e721", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 298510, "upload_time": "2019-07-16T20:50:16", "url": "https://files.pythonhosted.org/packages/ab/ec/615a8873bb38153b64abe2ea93e962ab53a15b12134b2b82a04881fb21f0/pydriosm-1.0.14-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "70fb1b95b2f7b76389fda2d113aa9551", "sha256": "da9fa6cf79eed762870985aa714856d87f07c5cafcdf3bde7e33886117c454a4" }, "downloads": -1, "filename": "pydriosm-1.0.14.tar.gz", "has_sig": false, "md5_digest": "70fb1b95b2f7b76389fda2d113aa9551", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28560, "upload_time": "2019-07-16T20:50:18", "url": "https://files.pythonhosted.org/packages/14/84/af16706c7787df8ce44a8ec1f3bcf0c709c93c17585a7781cca8cd723a76/pydriosm-1.0.14.tar.gz" } ], "1.0.15": [ { "comment_text": "", "digests": { "md5": "fddc8d86199d7dc45c883629394144de", "sha256": "79f8ed44b3b99b852c7fbad67433e9b91463e62efc6225a20dc4f59c1ca4ae2e" }, "downloads": -1, "filename": "pydriosm-1.0.15-py3-none-any.whl", "has_sig": false, "md5_digest": "fddc8d86199d7dc45c883629394144de", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 298861, "upload_time": "2019-08-29T20:50:41", "url": "https://files.pythonhosted.org/packages/bd/85/e0a491e1fc303c3e49c9e8a6683a145e547ba70b269253b3c52965c90c52/pydriosm-1.0.15-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "44d6e1072f56e8f2ee8dfd0ed1622c18", "sha256": "45722f42bcb40f3f4731b68a4f93709e96557fb0f989da7e6256bfbf97a53aca" }, "downloads": -1, "filename": "pydriosm-1.0.15.tar.gz", "has_sig": false, "md5_digest": "44d6e1072f56e8f2ee8dfd0ed1622c18", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29327, "upload_time": "2019-08-29T20:50:43", "url": "https://files.pythonhosted.org/packages/f2/1d/8df5aafe466f4bc2d2bffd5b1698d1ec09848cdf5f6f19611d2f3a8a7e05/pydriosm-1.0.15.tar.gz" } ], "1.0.16": [ { "comment_text": "", "digests": { "md5": "e7d948b7fb3c172241439311f737fe59", "sha256": "31d17368bb2d781de8184eab2a1cc6138305bff797ea887ca7575bbb0fe54001" }, "downloads": -1, "filename": "pydriosm-1.0.16-py3-none-any.whl", "has_sig": false, "md5_digest": "e7d948b7fb3c172241439311f737fe59", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 328990, "upload_time": "2019-10-06T21:55:43", "url": "https://files.pythonhosted.org/packages/88/d5/6d7f8c5e349571f8df7010276ed7a0a2d68eff7c76d51ccc2efdfc105c42/pydriosm-1.0.16-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "02c656cf81747c99b3001c5c125ef1ff", "sha256": "0ddd0697066eb1d64a9291cc03cced13995b3f46dc6572d64c14849b1496a00c" }, "downloads": -1, "filename": "pydriosm-1.0.16.tar.gz", "has_sig": false, "md5_digest": "02c656cf81747c99b3001c5c125ef1ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30898, "upload_time": "2019-10-06T21:55:45", "url": "https://files.pythonhosted.org/packages/fd/cd/89a50db3c701de6b08ae3b609908eb9c7352feb05847d21c6206c6ac93c4/pydriosm-1.0.16.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "f66b017f5412dfdc56cf7f952d32a536", "sha256": "e78b216d9d96d00cb5212943a961cdd9949cc6a7ff1626fd3f796e32642ff7dc" }, "downloads": -1, "filename": "pydriosm-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "f66b017f5412dfdc56cf7f952d32a536", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 252036, "upload_time": "2019-03-07T20:03:49", "url": "https://files.pythonhosted.org/packages/1d/28/8d0e98a9d78bdd1e391dc9043e45eaf20ae5f795d16b4239abc2d3fbf220/pydriosm-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6947112c03dcbbddbd9a2c123ea04045", "sha256": "b8a570a7a5f8edbabb73e2d7dbc5babc508a3a9f104dfe8923159ebc5fb08e1e" }, "downloads": -1, "filename": "pydriosm-1.0.2.tar.gz", "has_sig": false, "md5_digest": "6947112c03dcbbddbd9a2c123ea04045", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23032, "upload_time": "2019-03-07T20:03:52", "url": "https://files.pythonhosted.org/packages/42/52/9fe0cfb7dc1e75844b4b9b3e415164483be41787c979336f0cb17852868b/pydriosm-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "2f45be13c401a94a9ed68aa3678baddf", "sha256": "7d7c7cf342e29e6b0bba0752d4aa3d83ecda011988e1af153c728fc40ab2a4fd" }, "downloads": -1, "filename": "pydriosm-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "2f45be13c401a94a9ed68aa3678baddf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 252336, "upload_time": "2019-03-08T23:24:04", "url": "https://files.pythonhosted.org/packages/bc/ba/00ed2874ec7c3e9e4141fa48f009b6d7453c9378785c3be1cdb19e5e88de/pydriosm-1.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b83a2f6d9c165d01a684c07af94ce18c", "sha256": "0c4bb3c4ba150ed0c4b862f90edacbcfb962cc1933e4bd7ee23992906a38138c" }, "downloads": -1, "filename": "pydriosm-1.0.3.tar.gz", "has_sig": false, "md5_digest": "b83a2f6d9c165d01a684c07af94ce18c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23409, "upload_time": "2019-03-08T23:24:08", "url": "https://files.pythonhosted.org/packages/ed/3f/1f458278c262e1ce4907b26defe6db94796750136e2c77c6dd414973da65/pydriosm-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "2a641ffd3172883e3fabde10f09e2ceb", "sha256": "49071169203195c9b746c401ff7cef49c7101d389a4f17de380591107869c809" }, "downloads": -1, "filename": "pydriosm-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "2a641ffd3172883e3fabde10f09e2ceb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 254009, "upload_time": "2019-03-11T15:06:26", "url": "https://files.pythonhosted.org/packages/6a/a7/b066f85cbf3a9e4296601e0c74b44851c007baeea93d42e704e846da8afe/pydriosm-1.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "001d374e2f4ee58d870ac69180367f90", "sha256": "152f6cf9d414d64ebf8c7ae994765a47331eda206272547069ab016bc6f29624" }, "downloads": -1, "filename": "pydriosm-1.0.4.tar.gz", "has_sig": false, "md5_digest": "001d374e2f4ee58d870ac69180367f90", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25174, "upload_time": "2019-03-11T15:06:30", "url": "https://files.pythonhosted.org/packages/eb/be/d0226033d767d5a424acdec39a5ecfaf114bc7308a244737430094eeadf0/pydriosm-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "4f47d907ad0f061e89c21f0c4ff6b444", "sha256": "c29bf1226ef83c6d9ce776e42579a417ac4d48909b89f84bf11b35185bcaf36f" }, "downloads": -1, "filename": "pydriosm-1.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "4f47d907ad0f061e89c21f0c4ff6b444", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 254096, "upload_time": "2019-03-11T22:04:26", "url": "https://files.pythonhosted.org/packages/89/9a/81a60b68c240a491e5c6317759d4029530159b45e65ec679cf2c6bfda21a/pydriosm-1.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ba577df0ad5195b66920a98ccb909eac", "sha256": "842ad3814ef0ee2ce04bdf98cba6d79cc123462255dc4a1c02cbebd5d51f9995" }, "downloads": -1, "filename": "pydriosm-1.0.5.tar.gz", "has_sig": false, "md5_digest": "ba577df0ad5195b66920a98ccb909eac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25265, "upload_time": "2019-03-11T22:04:32", "url": "https://files.pythonhosted.org/packages/eb/7c/64c233532aaa83f58907550f664afbee06a98ccc508dbf08807035c0b85b/pydriosm-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "490be16e8e8b675224a55a4118e2163b", "sha256": "1ae17f4d193db847aa633675acfdb6e3dfb3fc932bf447c4e91fa4e93ade92c8" }, "downloads": -1, "filename": "pydriosm-1.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "490be16e8e8b675224a55a4118e2163b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 254224, "upload_time": "2019-03-12T13:12:57", "url": "https://files.pythonhosted.org/packages/33/71/3d83f871699036335ee0ca1cd079da95170ae9d625678a5357f988a5180f/pydriosm-1.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f90f9c480c6441ad78a36b0c9299b6b3", "sha256": "65627745325247d42e0ace77c46a4abae757eb4560067e49f14516cace39b495" }, "downloads": -1, "filename": "pydriosm-1.0.6.tar.gz", "has_sig": false, "md5_digest": "f90f9c480c6441ad78a36b0c9299b6b3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25514, "upload_time": "2019-03-12T13:13:04", "url": "https://files.pythonhosted.org/packages/17/c1/337890e19f752aefdc10e62cf53b9738a2b211dad506b4b6917a0059ac24/pydriosm-1.0.6.tar.gz" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "7694483dc6ea24adca4158ecc6e12b62", "sha256": "66a51b45ec8b12363c40330d9febd6c0faf9c2ad88f19e83b96a2dd9abddd2b9" }, "downloads": -1, "filename": "pydriosm-1.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "7694483dc6ea24adca4158ecc6e12b62", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 254246, "upload_time": "2019-03-12T17:11:13", "url": "https://files.pythonhosted.org/packages/1b/bb/8022eb906c7e647f3109bf20d865b0a4c8f07b4f3e6b142d9292b5beb4c8/pydriosm-1.0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8537f66eb59bb218368fbf72b6c0fac1", "sha256": "948edaeb08ddd4acd8103c57d7af28734c07bf3679e3aef140a470887c0db7e5" }, "downloads": -1, "filename": "pydriosm-1.0.7.tar.gz", "has_sig": false, "md5_digest": "8537f66eb59bb218368fbf72b6c0fac1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25539, "upload_time": "2019-03-12T17:11:20", "url": "https://files.pythonhosted.org/packages/a2/01/d0196611a9ad1595ef1dad56e34e2f69665884dc26c4352669ffd600b386/pydriosm-1.0.7.tar.gz" } ], "1.0.8": [ { "comment_text": "", "digests": { "md5": "cd9b5c189d64ababcd7796091f81c5ff", "sha256": "4a7254c2c01fa074a5ff3abcb6a74063ef6d6692e55d3b788b9256bb573012e2" }, "downloads": -1, "filename": "pydriosm-1.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "cd9b5c189d64ababcd7796091f81c5ff", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 286292, "upload_time": "2019-03-18T15:38:55", "url": "https://files.pythonhosted.org/packages/30/be/d1e667301d15ad97b8586fd027976f5443c5276dc2c576e8e616354c43c4/pydriosm-1.0.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5aeb1994f94c0e13c0068dc925071cb1", "sha256": "da4a941558f2b9d8907d767e59a48e36d1505c56c2c035fb88ff1f8fee933810" }, "downloads": -1, "filename": "pydriosm-1.0.8.tar.gz", "has_sig": false, "md5_digest": "5aeb1994f94c0e13c0068dc925071cb1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28177, "upload_time": "2019-03-18T15:38:57", "url": "https://files.pythonhosted.org/packages/7a/74/d0ca114d09444efd1c74903e91a9b4a6f2a20395a8ec770a81b08bc2edd4/pydriosm-1.0.8.tar.gz" } ], "1.0.9": [ { "comment_text": "", "digests": { "md5": "e302cae146c411ee168c539d596a80fb", "sha256": "4926b62c6f4cbeeb846992b189d3714fce7009a8b9ec8d770e7c10f3c1c489a8" }, "downloads": -1, "filename": "pydriosm-1.0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "e302cae146c411ee168c539d596a80fb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 286557, "upload_time": "2019-03-18T20:14:22", "url": "https://files.pythonhosted.org/packages/98/b5/81bf1fa6d1c5cb2616566256e8552a4eac3e12ef91e2485be3fc3603c2ac/pydriosm-1.0.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "35a47d038ea1ab6986f41d7c98aa3d14", "sha256": "1f93f9ef25fcb2d959cd47c779ece523f405e087da10739a1380ab58a502dad7" }, "downloads": -1, "filename": "pydriosm-1.0.9.tar.gz", "has_sig": false, "md5_digest": "35a47d038ea1ab6986f41d7c98aa3d14", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28809, "upload_time": "2019-03-18T20:14:24", "url": "https://files.pythonhosted.org/packages/be/8e/36d1a7e253af8f73727d7865907d49091aaf17101841bccfef3a101c880c/pydriosm-1.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e7d948b7fb3c172241439311f737fe59", "sha256": "31d17368bb2d781de8184eab2a1cc6138305bff797ea887ca7575bbb0fe54001" }, "downloads": -1, "filename": "pydriosm-1.0.16-py3-none-any.whl", "has_sig": false, "md5_digest": "e7d948b7fb3c172241439311f737fe59", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 328990, "upload_time": "2019-10-06T21:55:43", "url": "https://files.pythonhosted.org/packages/88/d5/6d7f8c5e349571f8df7010276ed7a0a2d68eff7c76d51ccc2efdfc105c42/pydriosm-1.0.16-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "02c656cf81747c99b3001c5c125ef1ff", "sha256": "0ddd0697066eb1d64a9291cc03cced13995b3f46dc6572d64c14849b1496a00c" }, "downloads": -1, "filename": "pydriosm-1.0.16.tar.gz", "has_sig": false, "md5_digest": "02c656cf81747c99b3001c5c125ef1ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30898, "upload_time": "2019-10-06T21:55:45", "url": "https://files.pythonhosted.org/packages/fd/cd/89a50db3c701de6b08ae3b609908eb9c7352feb05847d21c6206c6ac93c4/pydriosm-1.0.16.tar.gz" } ] }