{ "info": { "author": "Simon Norris", "author_email": "snorris@hillcrestgeo.ca", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "Operating System :: OS Independent", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Scientific/Engineering :: GIS", "Topic :: Utilities" ], "description": "# bcdata\n\nPython and command line tools for quick access to DataBC geo-data available via WFS/WCS.\n\n[![Build Status](https://travis-ci.org/smnorris/bcdata.svg?branch=master)](https://travis-ci.org/smnorris/bcdata)\n[![Coverage Status](https://coveralls.io/repos/github/smnorris/bcdata/badge.svg?branch=master)](https://coveralls.io/github/smnorris/bcdata?branch=master)\n\nThere is a [wealth of British Columbia geographic information available as open\ndata](https://catalogue.data.gov.bc.ca/dataset?download_audience=Public),\nbut direct file download urls are not available and the syntax to accesss WFS via `ogr2ogr` and/or `curl/wget` can be awkward.\n\nThis Python module and CLI attempts to simplify downloads of BC geographic data and smoothly integrate with existing Python GIS tools like `fiona` and `rasterio`.\n\n\n**Note**\n\n- it is the user's responsibility to check the licensing for any downloads, data are generally licensed as [OGL-BC](http://www2.gov.bc.ca/gov/content/governments/about-the-bc-government/databc/open-data/open-government-license-bc)\n- this is not specifically endorsed by the Province of Britsh Columbia or DataBC\n- use with care, please don't overload the service\n\n\n## Installation\n\n $ pip install bcdata\n\nTo enable autocomplete of dataset names (full object names only) with the command line tools, add this line to your `.bashrc` as per this [guide](https://click.palletsprojects.com/en/7.x/bashcomplete/?highlight=autocomplete#activation).\n\n eval \"$(_BCDATA_COMPLETE=source bcdata)\"\n\n## Usage\n\nTypical usage will involve a manual search of the [DataBC Catalogue](https://catalogue.data.gov.bc.ca/dataset?download_audience=Public) to find a layer of interest. Once a dataset of interest is found, note the key with which to retreive it. This can be either the `id`/`package name` (the last portion of the url) or the `Object Name` (Under `Object Description`).\n\nFor example, for [BC Airports]( https://catalogue.data.gov.bc.ca/dataset/bc-airports), either of these keys will work:\n\n- id/package name: `bc-airports`\n- object name: `WHSE_IMAGERY_AND_BASE_MAPS.GSR_AIRPORTS_SVW`\n\n### Python module\n\n >>> import bcdata\n >>> geojson = bcdata.get_data('bc-airports', query=\"AIRPORT_NAME='Terrace (Northwest Regional) Airport'\")\n >>> geojson\n {'type': 'FeatureCollection', 'features': [{'type': 'Feature', 'id': 'WHSE_IMAGERY_AND_BASE_MAPS.GSR_AIRPORTS_SVW.fid-f0cdbe4_16811fe142b_-6f34', 'geometry': {'type': 'Point', ...\n\n### CLI\n\nThere are several commands available:\n\n $ bcdata --help\n Usage: bcdata [OPTIONS] COMMAND [ARGS]...\n\n Options:\n --help Show this message and exit.\n\n Commands:\n bc2pg Download a DataBC WFS layer to postgres - an ogr2ogr wrapper.\n cat Write DataBC features to stdout as GeoJSON feature objects.\n dem Dump BC DEM to TIFF\n dump Write DataBC features to stdout as GeoJSON feature collection.\n info Print basic metadata about a DataBC WFS layer as JSON.\n list List DataBC layers available via WFS\n\n\n#### `list`\n\n $ bcdata list --help\n Usage: bcdata list [OPTIONS]\n\n List DataBC layers available via WFS\n\n Options:\n -r, --refresh Refresh the cached list\n --help Show this message and exit.\n\n\n#### `info`\n\n $ bcdata info --help\n Usage: bcdata info [OPTIONS] DATASET\n\n Print basic metadata about a DataBC WFS layer as JSON.\n\n Optionally print a single metadata item as a string.\n\n Options:\n --indent INTEGER Indentation level for JSON output\n --count Print the count of features.\n --name Print the datasource's name.\n --help Show this message and exit.\n\n\n#### `dump`\n\n $ bcdata dump --help\n Usage: bcdata dump [OPTIONS] DATASET\n\n Write DataBC features to stdout as GeoJSON feature collection.\n\n $ bcdata dump bc-airports\n $ bcdata dump bc-airports --query \"AIRPORT_NAME='Victoria Harbour (Shoal Point) Heliport'\"\n $ bcdata dump bc-airports --bounds xmin ymin xmax ymax\n\n It can also be combined to read bounds of a feature dataset using Fiona:\n $ bcdata dump bc-airports --bounds $(fio info aoi.shp --bounds)\n\n Options:\n --query TEXT A valid CQL or ECQL query, quote enclosed (h\n ttps://docs.geoserver.org/stable/en/user/tut\n orials/cql/cql_tutorial.html)\n -o, --out_file TEXT Output file\n --bounds TEXT Bounds: \"left bottom right top\" or \"[left,\n bottom, right, top]\". Coordinates are BC\n Albers (default) or --bounds_crs\n --bounds-crs, --bounds_crs TEXT\n CRS of provided bounds\n --help Show this message and exit.\n\n#### `cat`\n\n $ bcdata cat --help\n Usage: bcdata cat [OPTIONS] DATASET\n\n Write DataBC features to stdout as GeoJSON feature objects.\n\n Options:\n --query TEXT A valid `CQL` or `ECQL` query (https://docs.\n geoserver.org/stable/en/user/tutorials/cql/c\n ql_tutorial.html)\n --bounds TEXT Bounds: \"left bottom right top\" or \"[left,\n bottom, right, top]\". Coordinates are BC\n Albers (default) or --bounds_crs\n --indent INTEGER Indentation level for JSON output\n --compact / --not-compact Use compact separators (',', ':').\n --dst-crs, --dst_crs TEXT Destination CRS.\n -p, --pagesize INTEGER Max number of records to request\n -s, --sortby TEXT Name of sort field\n --bounds-crs, --bounds_crs TEXT\n CRS of provided bounds\n --help Show this message and exit.\n\n\n#### `dem`\n\n $ bcdata dem --help\n Usage: bcdata dem [OPTIONS]\n\n Dump BC DEM to TIFF\n\n Options:\n -o, --out_file TEXT Output file\n --bounds TEXT Bounds: \"left bottom right top\" or \"[left,\n bottom, right, top]\". Coordinates are BC\n Albers (default) or --bounds_crs [required]\n --dst-crs, --dst_crs TEXT Destination CRS.\n --bounds-crs, --bounds_crs TEXT\n CRS of provided bounds\n -r, --resolution INTEGER\n --help Show this message and exit.\n\n\n#### `bc2pg`\n\n $ bcdata bc2pg --help\n Usage: bcdata bc2pg [OPTIONS] DATASET\n\n Download a DataBC WFS layer to postgres - an ogr2ogr wrapper.\n\n $ bcdata bc2pg bc-airports --db_url postgresql://postgres:postgres@localhost:5432/postgis\n\n The default target database can be specified by setting the $DATABASE_URL\n environment variable.\n https://docs.sqlalchemy.org/en/latest/core/engines.html#database-urls\n\n Options:\n -db, --db_url TEXT SQLAlchemy database url\n --table TEXT Destination table name\n --schema TEXT Destination schema name\n --query TEXT A valid `CQL` or `ECQL` query (https://docs.geose\n rver.org/stable/en/user/tutorials/cql/cql_tutoria\n l.html)\n -p, --pagesize INTEGER Max number of records to request\n -w, --max_workers INTEGER Max number of concurrent requests\n --dim TEXT Force the coordinate dimension to val (valid\n values are XY, XYZ)\n --fid TEXT Primary key of dataset\n --help Show this message and exit.\n\n#### CLI examples\n\nSearch the data listing for airports:\n\n $ bcdata list | grep AIRPORTS\n WHSE_IMAGERY_AND_BASE_MAPS.GSR_AIRPORTS_SVW\n\nDescribe a dataset. Note that if we know the id of a dataset, we can use that rather than the object name:\n\n $ bcdata info bc-airports --indent 2\n {\n \"name\": \"WHSE_IMAGERY_AND_BASE_MAPS.GSR_AIRPORTS_SVW\",\n \"count\": 455,\n \"schema\": {\n \"properties\": {\n \"CUSTODIAN_ORG_DESCRIPTION\": \"string\",\n \"BUSINESS_CATEGORY_CLASS\": \"string\",\n \"BUSINESS_CATEGORY_DESCRIPTION\": \"string\",\n \"OCCUPANT_TYPE_DESCRIPTION\": \"string\",\n ...etc...\n },\n \"geometry\": \"GeometryCollection\",\n \"geometry_column\": \"SHAPE\"\n }\n }\n\nThe JSON output can be manipulated with [jq](https://stedolan.github.io/jq/). For example, to show only the fields available in the dataset:\n\n $ bcdata info bc-airports | jq '.schema.properties'\n {\n \"CUSTODIAN_ORG_DESCRIPTION\": \"string\",\n \"BUSINESS_CATEGORY_CLASS\": \"string\",\n \"BUSINESS_CATEGORY_DESCRIPTION\": \"string\",\n \"OCCUPANT_TYPE_DESCRIPTION\": \"string\",\n etc...\n }\n\nDump data to geojson ([`EPSG:4326` only](https://tools.ietf.org/html/rfc7946#section-4)):\n\n $ bcdata dump bc-airports > bc-airports.geojson\n\nGet a single feature and send it to geojsonio (requires [geojson-cli](https://github.com/mapbox/geojsonio-cli)). Note the double quotes required around a CQL FILTER provided to the `--query` option.\n\n $ bcdata dump \\\n WHSE_IMAGERY_AND_BASE_MAPS.GSR_AIRPORTS_SVW \\\n --query \"AIRPORT_NAME='Terrace (Northwest Regional) Airport'\" \\\n | geojsonio\n\nSave a layer to a geopackage in BC Albers:\n\n $ bcdata cat bc-airports --dst-crs EPSG:3005 \\\n | fio collect \\\n | fio load -f GPKG --dst-crs EPSG:3005 airports.gpkg\n\nLoad a layer to postgres:\n\n $ bcdata bc2pg \\\n bc-airports \\\n --db_url postgresql://postgres:postgres@localhost:5432/postgis\n\n\n## Projections / CRS\n\n**CLI**\n\n`bcdata dump` returns GeoJSON in WGS84 (`EPSG:4326`).\n\n`bcdata cat` provides the `--dst-crs` option, use any CRS the WFS server supports.\n\n`bcdata bc2pg` loads data to PostgreSQL in BC Albers (`EPSG:3005`).\n\n\n**Python module**\n\n`bcdata.get_data()` defaults to `EPSG:4236` but any CRS can be specified (that the server will accept).\n\n\n## Development and testing\n\n $ mkdir bcdata_env\n $ virtualenv bcdata_env\n $ source bcdata_env/bin/activate\n (bcdata_env)$ git clone git@github.com:smnorris/bcdata.git\n (bcdata_env)$ cd bcdata\n (bcdata_env)$ pip install -e .[test]\n (bcdata_env)$ py.test\n\n\n## Other implementations\n- [bcdata R package](https://github.com/bcgov/bcdata)\n- [OWSLib](https://github.com/geopython/OWSLib) has basic WFS capabilities\n- GDAL / curl / wget:\n\n # list all layers\n # querying the endpoint this way doesn't seem to work with `VERSION=2.0.0`\n ogrinfo WFS:http://openmaps.gov.bc.ca/geo/ows?VERSION=1.1.0\n\n # define a request url for airports\n airports_url=\"https://openmaps.gov.bc.ca/geo/pub/WHSE_IMAGERY_AND_BASE_MAPS.GSR_AIRPORTS_SVW/wfs?service=WFS&version=2.0.0&request=GetFeature&typeName=WHSE_IMAGERY_AND_BASE_MAPS.GSR_AIRPORTS_SVW&outputFormat=json&SRSNAME=epsg%3A3005\"\n\n # describe airports\n ogrinfo -so $airports_url OGRGeoJSON\n\n # dump airports to geojson\n ogr2ogr \\\n -f GeoJSON \\\n airports.geojson \\\n $airports_url\n\n # load airports to postgres\n ogr2ogr \\\n -f PostgreSQL \\\n PG:\"host=localhost user=postgres dbname=postgis password=postgres\" \\\n -lco SCHEMA=whse_imagery_and_base_maps \\\n -lco GEOMETRY_NAME=geom \\\n -nln gsr_airports_svw \\\n $airports_url\n\n # Try requesting a larger dataset - ungulate winter range\n uwr_url=\"https://openmaps.gov.bc.ca/geo/pub/WHSE_WILDLIFE_MANAGEMENT.WCP_UNGULATE_WINTER_RANGE_SP/wfs?service=WFS&version=2.0.0&request=GetFeature&typeName=WHSE_WILDLIFE_MANAGEMENT.WCP_UNGULATE_WINTER_RANGE_SP&outputFormat=json&SRSNAME=epsg%3A3005\"\n\n # The request only returns the first 10,000 records\n ogr2ogr \\\n uwr.shp \\\n -dsco OGR_WFS_PAGING_ALLOWED=ON \\\n $uwr_url\n\n # wget works too, but still only 10k records\n wget -O uwr.geojson $uwr_url\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/smnorris/bcdata", "keywords": "gis geospatial data BC DataBC download \"Britsh Columbia\"", "license": "Apache", "maintainer": "", "maintainer_email": "", "name": "bcdata", "package_url": "https://pypi.org/project/bcdata/", "platform": "", "project_url": "https://pypi.org/project/bcdata/", "project_urls": { "Homepage": "https://github.com/smnorris/bcdata" }, "release_url": "https://pypi.org/project/bcdata/0.3.5/", "requires_dist": [ "requests", "click", "cligj", "owslib", "pgdata", "rasterio", "pytest (>=3) ; extra == 'test'", "rasterio ; extra == 'test'" ], "requires_python": "", "summary": "Python tools for quick access to DataBC geo-data available via WFS", "version": "0.3.5" }, "last_serial": 5945453, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "9b50847efb06e207fb11d2970ed8f791", "sha256": "5e154e54f983271b09739e4c84077e7454f311f0295416373e393c6d4766ea9a" }, "downloads": -1, "filename": "bcdata-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9b50847efb06e207fb11d2970ed8f791", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10155, "upload_time": "2018-01-17T18:22:45", "url": "https://files.pythonhosted.org/packages/56/f5/74907816fe3629e3299297f2fdcb944b7959b9c81996d7824f07475cd793/bcdata-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "46c537ddb4c42ab25fb9851caffea494", "sha256": "55a8a66854484ea34e7b3b96aafdeacc585fffdc6e4a603c33c3eb68f0ae5125" }, "downloads": -1, "filename": "bcdata-0.1.0.tar.gz", "has_sig": false, "md5_digest": "46c537ddb4c42ab25fb9851caffea494", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8501, "upload_time": "2018-01-17T18:22:46", "url": "https://files.pythonhosted.org/packages/3d/c8/2ff70f6ae9f3622bd572511590d82cc24768bc92e52bfb90b16ef7c702fc/bcdata-0.1.0.tar.gz" } ], "0.1.0.post1": [ { "comment_text": "", "digests": { "md5": "dd47e8d7d17e4bf8daee969981ed6ebe", "sha256": "0fa1eebc9814ca4c11f054874220fbe5fd11c5c76fd55b871c94e99f53657f8d" }, "downloads": -1, "filename": "bcdata-0.1.0.post1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "dd47e8d7d17e4bf8daee969981ed6ebe", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10252, "upload_time": "2018-01-17T18:39:52", "url": "https://files.pythonhosted.org/packages/de/56/a93c272eb720ea514edf2081f5c2caf1683baebd2b60b6bb260e7c091169/bcdata-0.1.0.post1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "860b25fd06cd95e5e2b071727b69c580", "sha256": "9528aeeeb02c8f28de50b943dfd2f6d8465f715e611d5aa90b82b27f34cd8715" }, "downloads": -1, "filename": "bcdata-0.1.0.post1.tar.gz", "has_sig": false, "md5_digest": "860b25fd06cd95e5e2b071727b69c580", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8543, "upload_time": "2018-01-17T18:39:53", "url": "https://files.pythonhosted.org/packages/b1/75/dfb303b3e823da17a812f29c33cdfa083f6f5e809b5d4143c07d0050dc6b/bcdata-0.1.0.post1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "34786607414061d081a5f98c4b04afc2", "sha256": "fab28f0b2157a7b1e17d64a8f7e405a4afc74c7ebfeff4f798355d101763a27f" }, "downloads": -1, "filename": "bcdata-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "34786607414061d081a5f98c4b04afc2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10422, "upload_time": "2018-01-22T19:39:12", "url": "https://files.pythonhosted.org/packages/5f/68/6f724d11b373be3d46385cb4189953a4b59055fa3d473e0bb928c9299902/bcdata-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "393a3b1547b56bad8823ca65096a7a85", "sha256": "2bf5fd5a3f5ff603b89533806b760cda91b70be2d827afd3566a4c4db5240503" }, "downloads": -1, "filename": "bcdata-0.2.0.tar.gz", "has_sig": false, "md5_digest": "393a3b1547b56bad8823ca65096a7a85", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8561, "upload_time": "2018-01-22T19:39:14", "url": "https://files.pythonhosted.org/packages/ac/81/49f208d2b3aaaeff66c7bdb52d79ac0ef3bc7030da867eec76dc84794955/bcdata-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "0c619bc371d168ac37e8a6e8643d7ef6", "sha256": "b68a2f774824f8a538a6b3bb2b6fdba2c0f992915104e1e938b424adb88b7a5d" }, "downloads": -1, "filename": "bcdata-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0c619bc371d168ac37e8a6e8643d7ef6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14436, "upload_time": "2019-01-08T22:02:53", "url": "https://files.pythonhosted.org/packages/03/cb/c19c7146fcf08c2e9c871407dcfa011cd4da86762d75e8d2f9592f947b87/bcdata-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f480dcac02c77ca9bf33dd56b3434394", "sha256": "307498a9aa4d3b04b2e2e2b6b8670af59c67f31b51f83ea36730c8a9dc308fcc" }, "downloads": -1, "filename": "bcdata-0.3.0.tar.gz", "has_sig": false, "md5_digest": "f480dcac02c77ca9bf33dd56b3434394", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13590, "upload_time": "2019-01-08T22:02:57", "url": "https://files.pythonhosted.org/packages/4c/5b/82b6087d9b026558501302fa7a998a333680030e5e66c3ef32c1f596c56c/bcdata-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "0a48bee7c685181ca84721ebec9354dd", "sha256": "bfe30645d2614ac0b31cfd3b81d696a0896225237ca0dcfa9455bbae19dbcdd8" }, "downloads": -1, "filename": "bcdata-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "0a48bee7c685181ca84721ebec9354dd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17812, "upload_time": "2019-01-28T23:44:37", "url": "https://files.pythonhosted.org/packages/0c/61/f87f1c0fe10bcf80e59a92e1441ae6d05471029e6efdbf3fbbd84cdb5913/bcdata-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e9e51190fc44857b94708a2af539b446", "sha256": "57c17f776b003486b9d8e879814b8eeae589ff55407b6238db3c0dda9537e0cb" }, "downloads": -1, "filename": "bcdata-0.3.1.tar.gz", "has_sig": false, "md5_digest": "e9e51190fc44857b94708a2af539b446", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16251, "upload_time": "2019-01-28T23:45:08", "url": "https://files.pythonhosted.org/packages/e7/21/938ae8ebd0a937e12ea1c129da94548dbdd9ba3cccc9b2161c238930b707/bcdata-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "681843d62ceeaea6f3b57ba6398c0837", "sha256": "5506fff6d77c11ad984e1fa993fbe55ca5e35ff7644bbee0187bd629247442b6" }, "downloads": -1, "filename": "bcdata-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "681843d62ceeaea6f3b57ba6398c0837", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18067, "upload_time": "2019-03-22T23:02:20", "url": "https://files.pythonhosted.org/packages/b2/01/7ad49b16ac46bca9553f029987558851dcbadf6a0ba3718c51795073aa8a/bcdata-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d4157750111a087d1f53d1e70bd55e94", "sha256": "ef630a06002b3d0865d173b918ebea6991e818e218ebbb5e4588562a7cbd7c8f" }, "downloads": -1, "filename": "bcdata-0.3.2.tar.gz", "has_sig": false, "md5_digest": "d4157750111a087d1f53d1e70bd55e94", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16748, "upload_time": "2019-03-22T23:02:24", "url": "https://files.pythonhosted.org/packages/66/6c/1c467b0f3897518d315e4fd5b2b21eee56dfbb084c9ce26608058163b851/bcdata-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "c027ef618ccbb7d7eee94d3033f99a87", "sha256": "ef43ba1af792e2b20607816d37733f8a6323b2a2968df61e0ff161d23c0d71e3" }, "downloads": -1, "filename": "bcdata-0.3.3-py3-none-any.whl", "has_sig": false, "md5_digest": "c027ef618ccbb7d7eee94d3033f99a87", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19345, "upload_time": "2019-05-16T17:57:36", "url": "https://files.pythonhosted.org/packages/42/7c/0434ddf64a08c6ac1188b67e99e477afc64c623c9103c5a6bc67221c6a62/bcdata-0.3.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "89c3cb8770965c45c4da4b745eee99b5", "sha256": "ee1a8ad2ae2fe4be8dda0a7c45da3023cd88820e6a1835017f5c9d46b7dcb0be" }, "downloads": -1, "filename": "bcdata-0.3.3.tar.gz", "has_sig": false, "md5_digest": "89c3cb8770965c45c4da4b745eee99b5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17883, "upload_time": "2019-05-16T17:57:37", "url": "https://files.pythonhosted.org/packages/3c/51/7aedeb7c4e44e2f6d363e8b80fcc19152a2ce1e5d3ab0ca8b9d090d53847/bcdata-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "53beda46d0b4eaf386f4b67c57f541ff", "sha256": "fe6aee89caf04a3327327579cba679f2e8a3d6ac64fd66cb3600dc742f70fd04" }, "downloads": -1, "filename": "bcdata-0.3.4-py3-none-any.whl", "has_sig": false, "md5_digest": "53beda46d0b4eaf386f4b67c57f541ff", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19647, "upload_time": "2019-09-30T21:41:31", "url": "https://files.pythonhosted.org/packages/8a/99/bb2238097a797097d2c45624d1ef13d1628447c367ddcadb2f9cb219d78d/bcdata-0.3.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1d14ee324d6b1c220b43b87146774174", "sha256": "edf92aefc88da1fc5f3559b2228873fe207a8ccc7172abb73ace7389d447bf7e" }, "downloads": -1, "filename": "bcdata-0.3.4.tar.gz", "has_sig": false, "md5_digest": "1d14ee324d6b1c220b43b87146774174", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18419, "upload_time": "2019-09-30T21:41:34", "url": "https://files.pythonhosted.org/packages/21/46/7d53afa7dadf0e868ab2efbefca51889f47b31defcb435e57d593b499604/bcdata-0.3.4.tar.gz" } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "78c1982eb26813bd9371a4890c4940ee", "sha256": "63c2f3472a682ff642bf2f9675603d4dc8ad2218e299d049e8adbc38e40642e4" }, "downloads": -1, "filename": "bcdata-0.3.5-py3-none-any.whl", "has_sig": false, "md5_digest": "78c1982eb26813bd9371a4890c4940ee", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19604, "upload_time": "2019-10-08T15:53:05", "url": "https://files.pythonhosted.org/packages/aa/bb/fc81e91b23480f306af62eebd0cda2937424574a5a739b1a32082c206ef5/bcdata-0.3.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "83860b4a2400e1b78a70357266550154", "sha256": "4a15efcf24888cc4d382836618a9361ba3bfdd75ce5d48b19608e156ae07f951" }, "downloads": -1, "filename": "bcdata-0.3.5.tar.gz", "has_sig": false, "md5_digest": "83860b4a2400e1b78a70357266550154", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18405, "upload_time": "2019-10-08T15:53:09", "url": "https://files.pythonhosted.org/packages/90/7d/d38b508de6f8874e42862080b2232b5b98d5ed5f7aa9bcf4a7cbb17be5e9/bcdata-0.3.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "78c1982eb26813bd9371a4890c4940ee", "sha256": "63c2f3472a682ff642bf2f9675603d4dc8ad2218e299d049e8adbc38e40642e4" }, "downloads": -1, "filename": "bcdata-0.3.5-py3-none-any.whl", "has_sig": false, "md5_digest": "78c1982eb26813bd9371a4890c4940ee", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19604, "upload_time": "2019-10-08T15:53:05", "url": "https://files.pythonhosted.org/packages/aa/bb/fc81e91b23480f306af62eebd0cda2937424574a5a739b1a32082c206ef5/bcdata-0.3.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "83860b4a2400e1b78a70357266550154", "sha256": "4a15efcf24888cc4d382836618a9361ba3bfdd75ce5d48b19608e156ae07f951" }, "downloads": -1, "filename": "bcdata-0.3.5.tar.gz", "has_sig": false, "md5_digest": "83860b4a2400e1b78a70357266550154", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18405, "upload_time": "2019-10-08T15:53:09", "url": "https://files.pythonhosted.org/packages/90/7d/d38b508de6f8874e42862080b2232b5b98d5ed5f7aa9bcf4a7cbb17be5e9/bcdata-0.3.5.tar.gz" } ] }