{ "info": { "author": "Factual Driver Team", "author_email": "UNKNOWN", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Internet :: WWW/HTTP", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# About\n\nThis is the Factual-supported Python driver for [Factual's public API](http://developer.factual.com).\n\n# Install\n\n```bash\npip install factual-api\n```\n\n# Get Started\n\nInclude this driver in your project:\n```python\nfrom factual import Factual\nfactual = Factual('YOUR_KEY', 'YOUR_SECRET')\n```\nIf you don't have a Factual API key yet, [it's free and easy to get one](https://www.factual.com/api-keys/request).\n\n## Schema\nUse the schema API call to determine which fields are available, the datatypes of those fields, and which operations (sorting, searching, writing, facetting) can be performed on each field.\n\nFull documentation: http://developer.factual.com/api-docs/#Schema\n```python\ns = factual.table('places').schema()\nprint(s)\n```\n\n## Read\nUse the read API call to query data in Factual tables with any combination of full-text search, parametric filtering, and geo-location filtering.\n\nFull documentation: http://developer.factual.com/api-docs/#Read\n\nRelated place-specific documentation:\n* Categories: http://developer.factual.com/working-with-categories/\n* Placerank, Sorting: http://developer.factual.com/search-placerank-and-boost/\n\n```python\nplaces = factual.table('places')\n\n# Full-text search:\nplaces_with_count = places.search('century city mall').include_count(True)\ndata = places_with_count.data()\nprint('showing {}/{} rows: {}'.format(places_with_count.included_rows(), places_with_count.total_row_count(), data))\n\n# Row filters:\n# search restaurants (http://developer.factual.com/working-with-categories/)\n# note that this will return all sub-categories of 347 as well.\ndata = places.filters({'category_ids':{'$includes':347}}).data()\nprint(data)\n\n# search restaurants or bars\ndata = places.filters({'category_ids':{'$includes_any':[312,347]}}).data()\nprint(data)\n\n# search entertainment venues but NOT adult entertainment\ndata = places.filters({'$and':[{'category_ids':{'$includes':317}},{'category_ids':{'$excludes':318}}]}).data()\nprint(data)\n\n# search for Starbucks in Los Angeles\ndata = places.search('starbucks').filters({'locality':'los angeles'}).data()\nprint(data)\n\n# search for starbucks in Los Angeles or Santa Monica\ndata = places.search('starbucks').filters({'$or':[{'locality':{'$eq':'los angeles'}},{'locality':{'$eq':'santa monica'}}]}).data()\nprint(data)\n\n# Paging:\n# search for starbucks in Los Angeles or Santa Monica (second page of results):\ndata = places.search('starbucks').filters({'$or':[{'locality':{'$eq':'los angeles'}},{'locality':{'$eq':'santa monica'}}]}).offset(20).limit(20).data()\nprint(data)\n\n# Geo filter:\n# coffee near the Factual office\nfrom factual.utils import circle\ndata = places.search('coffee').geo(circle(34.058583, -118.416582, 1000)).data()\nprint(data)\n\n# Existence threshold:\n# prefer precision over recall:\ndata = places.threshold('confident').data()\nprint(data)\n\n# Get a row by factual id:\ndata = factual.get_row('places', '03c26917-5d66-4de9-96bc-b13066173c65')\nprint(data)\n```\n\n## Facets\nUse the facets call to get summarized counts, grouped by specified fields.\n\nFull documentation: http://developer.factual.com/api-docs/#Facets\n```python\n# show top 5 cities that have more than 20 Starbucks in California\ndata = factual.facets('places').search('starbucks').filters({'region':'CA'}).select('locality').min_count(20).limit(5).data()\nprint(data)\n```\n\n## Resolve\nUse resolve to generate a confidence-based match to an existing set of place attributes.\n\nFull documentation: http://developer.factual.com/api-docs/#Resolve\n```python\n# resovle from name and address info\ndata = factual.resolve('places', {'name':'McDonalds','address':'10451 Santa Monica Blvd','region':'CA','postcode':'90025'}).data()\nprint(data)\n\n# resolve from name and geo location\ndata = factual.resolve('places', {'name':'McDonalds','latitude':34.05671,'longitude':-118.42586}).data()\nprint(data)\n```\n\n## Match\nMatch is similar to resolve, but returns only the Factual ID and is intended for high volume mapping.\n\nFull documentation: http://developer.factual.com/api-docs/#Match\n```python\ndata = factual.match('places', {'name':'McDonalds','address':'10451 Santa Monica Blvd','region':'CA','postcode':'90025','country':'US'}).data()\nprint(data)\n```\n\n## Crosswalk\nCrosswalk contains third party mappings between entities.\n\nFull documentation: http://developer.factual.com/places-crosswalk/\n\n```python\n# Query with factual id, and only show entites from Yelp:\ndata = factual.crosswalk().filters({'factual_id':'3b9e2b46-4961-4a31-b90a-b5e0aed2a45e','namespace':'yelp'}).data()\nprint(data)\n```\n\n```python\n# query with an entity from Foursquare:\ndata = factual.crosswalk().filters({'namespace':'foursquare','namespace_id':'4ae4df6df964a520019f21e3'}).data()\nprint(data)\n```\n\n## World Geographies\nWorld Geographies contains administrative geographies (states, counties, countries), natural geographies (rivers, oceans, continents), and assorted geographic miscallaney. This resource is intended to complement the Global Places and add utility to any geo-related content.\n\n```python\n# find California, USA\ndata = factual.table('world-geographies').filters({'$and':[{'name':{'$eq':'California'}},{'country':{'$eq':'US'}},{'placetype':{'$eq':'region'}}]}).select('contextname,factual_id').data()\nprint(data)\n# returns 08649c86-8f76-11e1-848f-cfd5bf3ef515 as the Factual Id of \"California, US\"\n```\n\n```python\n# find cities and town in California (first 20 rows)\ndata = factual.table('world-geographies').filters({'$and':[{'ancestors':{'$includes':'08649c86-8f76-11e1-848f-cfd5bf3ef515'}},{'country':{'$eq':'US'}},{'placetype':{'$eq':'locality'}}]}).select('contextname,factual_id').data()\nprint(data)\n```\n\n## Submit\nSubmit new data, or update existing data. Submit behaves as an \"upsert\", meaning that Factual will attempt to match the provided data against any existing places first. Note: you should ALWAYS store the *commit ID* returned from the response for any future support requests.\n\nFull documentation: http://developer.factual.com/api-docs/#Submit\n\nPlace-specific Write API documentation: http://developer.factual.com/write-api/\n\n```python\nvalues = {\n 'name': 'Factual',\n 'address': '1999 Avenue of the Stars',\n 'address_extended': '34th floor',\n 'locality': 'Los Angeles',\n 'region': 'CA',\n 'postcode': '90067',\n 'country': 'us',\n 'latitude': 34.058743,\n 'longitude': -118.41694,\n 'category_ids': [209,213],\n 'hours': 'Mon 11:30am-2pm Tue-Fri 11:30am-2pm, 5:30pm-9pm Sat-Sun closed',\n}\nresp = factual.submit('us-sandbox', values=values).user('a_user_id').write()\nprint(resp)\n```\n\nEdit an existing row:\n```python\nresp = factual.submit('us-sandbox', '4e4a14fe-988c-4f03-a8e7-0efc806d0a7f', {'address_extended':'35th floor'}).user('a_user_id').write()\nprint(resp)\n```\n\n\n## Flag\nUse the flag API to flag problems in existing data.\n\nFull documentation: http://developer.factual.com/api-docs/#Flag\n\nFlag a place that is a duplicate of another. The *preferred* entity that should persist is passed as a GET parameter.\n```python\nresp = factual.flag('us-sandbox', '4e4a14fe-988c-4f03-a8e7-0efc806d0a7f').duplicate(preferred='9d676355-6c74-4cf6-8c4a-03fdaaa2d66a').user('a_user_id').write()\nprint(resp)\n```\n\nFlag a place that is closed.\n```python\nresp = factual.flag('us-sandbox', '4e4a14fe-988c-4f03-a8e7-0efc806d0a7f').problem('closed').comment('was shut down when I went there yesterday.').user('a_user_id').write()\nprint(resp)\n```\n\nFlag a place that has been relocated, so that it will redirect to the new location. The *preferred* entity (the current location) is passed as a GET parameter. The old location is identified in the URL.\n```python\nresp = factual.flag('us-sandbox', '4e4a14fe-988c-4f03-a8e7-0efc806d0a7f').relocated(preferred='9d676355-6c74-4cf6-8c4a-03fdaaa2d66a').user('a_user_id').write()\nprint(resp)\n```\n\n## Clear\nThe clear API is used to signal that an existing attribute's value should be reset.\n\nFull documentation: http://developer.factual.com/api-docs/#Clear\n```python\nresp = factual.clear('us-sandbox', '4e4a14fe-988c-4f03-a8e7-0efc806d0a7f', fields='latitude,longitude').user('a_user_id').write()\nprint(resp)\n```\n\n## Boost\nThe boost API is used to signal rows that should appear higher in search results.\n\nFull documentation: http://developer.factual.com/api-docs/#Boost\n```python\nresp = factual.boost('us-sandbox', '4e4a14fe-988c-4f03-a8e7-0efc806d0a7f', q='local business data').user('a_user_id').write()\nprint(resp)\n```\n\n## Multi\nMake up to three simultaneous requests over a single HTTP connection. Note: while the requests are performed in parallel, the final response is not returned until all contained requests are complete. As such, you shouldn't use multi if you want non-blocking behavior. Also note that a contained response may include an API error message, if appropriate.\n\nFull documentation: http://developer.factual.com/api-docs/#Multi\n\n```python\n# Query read and facets in one request:\nimport json\nread_query = factual.table('places').search('starbucks').geo(circle(34.041195,-118.331518,1000))\nfacets_query = factual.facets('places').search('starbucks').filters({'region':'CA'}).select('locality').min_count(20).limit(5)\nraw_resp = factual.multi({'read':read_query,'facets':facets_query})\nquery_results = json.loads(raw_resp)\nprint(query_results['read'])\nprint(query_results['facets'])\n```\n\n\n## Error Handling\nThe driver may throw a `factual.api.APIException` exception for invalid requests or a more generic exception for network errors or other problems.\n\n## Debug Mode\nTo see debug information about the requests being sent to Factual, you can get the url created by a query:\n```python\nq = factual.table('places').search('starbucks').filters({'region':'CA'}).limit(10)\nprint(q.get_url())\n```\n\n\n## Custom timeouts\nYou can set the request timeout (in seconds):\n```python\n# set the timeout as 1 second\nfactual = Factual('YOUR_KEY', 'YOUR_SECRET', timeout=1.0)\n```\n`Timeout` exceptions are raised when the server does not issue a response within the specified time.\n\n\n# Where to Get Help\n\nIf you think you've identified a specific bug in this driver, please file an issue in the github repo. Please be as specific as you can, including:\n\n * What you did to surface the bug\n * What you expected to happen\n * What actually happened\n * Detailed stack trace and/or line numbers\n\nIf you are having any other kind of issue, such as unexpected data or strange behaviour from Factual's API (or you're just not sure WHAT'S going on), please contact us through the [Factual support site](http://support.factual.com/factual).", "description_content_type": null, "docs_url": null, "download_url": null, "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/Factual/factual-python-driver", "keywords": "factual", "license": "Apache License", "maintainer": null, "maintainer_email": null, "name": "factual-api", "package_url": "https://pypi.org/project/factual-api/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/factual-api/", "project_urls": { "Homepage": "http://github.com/Factual/factual-python-driver" }, "release_url": "https://pypi.org/project/factual-api/1.7.0/", "requires_dist": null, "requires_python": null, "summary": "Official Python driver for the Factual public API", "version": "1.7.0" }, "last_serial": 1769543, "releases": { "0.9.0": [ { "comment_text": "", "digests": { "md5": "d6b6bc09fcb390b906713c882a102e1e", "sha256": "441b4ae25df57b477192d7e84f45e9c4acbcec418de7981cbf8a3553e7edc77f" }, "downloads": -1, "filename": "factual-api-0.9.0.tar.gz", "has_sig": false, "md5_digest": "d6b6bc09fcb390b906713c882a102e1e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9644, "upload_time": "2012-03-27T11:22:25", "url": "https://files.pythonhosted.org/packages/99/6d/fb77c3428e5f90a64bd8ec0bfa6fefa31faa19ff6ff176ce81dc3f8e6561/factual-api-0.9.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "9502e3b89b260df5b7f1406597001991", "sha256": "28d56fb049c109925a44ec32302b136ee34c146ebecea8c85025959d4e5cb594" }, "downloads": -1, "filename": "factual-api-1.0.0.tar.gz", "has_sig": false, "md5_digest": "9502e3b89b260df5b7f1406597001991", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11376, "upload_time": "2012-03-27T23:29:14", "url": "https://files.pythonhosted.org/packages/4f/c7/c584b5451739162ea392714ab9891551406f6ccf3e5adba69542cba9062e/factual-api-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "5422ff9e574417566aa03b0cf9dc6b1a", "sha256": "1ebb5d1e9e62c36d7e408f9ee469f669963f3bc1d12e977a10c65d204fec4c40" }, "downloads": -1, "filename": "factual-api-1.1.0.tar.gz", "has_sig": false, "md5_digest": "5422ff9e574417566aa03b0cf9dc6b1a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12807, "upload_time": "2012-04-17T02:33:09", "url": "https://files.pythonhosted.org/packages/45/f4/a36875a89475f53b0214dca72be21361c40786c5c68a3be84f22a0e7f594/factual-api-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "7dbc1a57fda15619bb7352d2a629a1aa", "sha256": "fcadf34e1031efc5f3b1245b595ef25d42bb9378e331725886a5c5e05f09a1ec" }, "downloads": -1, "filename": "factual-api-1.1.1.tar.gz", "has_sig": false, "md5_digest": "7dbc1a57fda15619bb7352d2a629a1aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12781, "upload_time": "2012-04-19T23:56:58", "url": "https://files.pythonhosted.org/packages/37/4a/6a3e80a9085e61574291924464834ab05a12bfbba86372aee5acaa4ade1f/factual-api-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "59a446e2a90652d6719e463d7d36ec48", "sha256": "13d9fc4db0a35506fc989d8c4f50e481ad0dd3db67f442240a531d2346449f52" }, "downloads": -1, "filename": "factual-api-1.1.2.tar.gz", "has_sig": false, "md5_digest": "59a446e2a90652d6719e463d7d36ec48", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13941, "upload_time": "2012-05-12T11:13:48", "url": "https://files.pythonhosted.org/packages/c1/af/db94a8e6565b6d6067646af1a1452af0aab73e330b8405df97ab744173dc/factual-api-1.1.2.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "b125547a905d1aa63d3b0cac41cd9b3c", "sha256": "92e4362c200726baef2ac0506d97b6363a13525ab5c1d4ef81e2a967fe2b30fc" }, "downloads": -1, "filename": "factual-api-1.2.0.tar.gz", "has_sig": false, "md5_digest": "b125547a905d1aa63d3b0cac41cd9b3c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19747, "upload_time": "2012-06-20T19:49:51", "url": "https://files.pythonhosted.org/packages/d6/f6/2567ebceab3b448d9388e66804b49336b5c15d4e43039061ae0823c533c6/factual-api-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "4eb2410ea2654e12258c53972beed9d7", "sha256": "e1acad6a160da1a1417a2b767a1ea0ee26bffed4267f07f2ff4f489abfeed2f1" }, "downloads": -1, "filename": "factual-api-1.2.1.tar.gz", "has_sig": false, "md5_digest": "4eb2410ea2654e12258c53972beed9d7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20236, "upload_time": "2012-07-03T01:13:35", "url": "https://files.pythonhosted.org/packages/5c/d0/64139761ce32f9542d95e061325e19023859765f298960a869eadc01afc1/factual-api-1.2.1.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "21d280b34b46c8a61918e19ac575bda2", "sha256": "5bbb39befd216acbddd7242b4b2d648a1dead9e354b51aecb1afbacd678ccda2" }, "downloads": -1, "filename": "factual-api-1.2.2.tar.gz", "has_sig": false, "md5_digest": "21d280b34b46c8a61918e19ac575bda2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20234, "upload_time": "2012-07-11T20:31:21", "url": "https://files.pythonhosted.org/packages/96/72/f93d2c10b4eb40b2aa49a0ed6f05522bdf3548febcda12ba84df3c5227bc/factual-api-1.2.2.tar.gz" } ], "1.2.3": [ { "comment_text": "", "digests": { "md5": "e36d525c220fae301b3d75d499d4080d", "sha256": "5f02f6c43f0f87638e48bed2110d7c4301094a3afb324b1b498cd46d8c04ea54" }, "downloads": -1, "filename": "factual-api-1.2.3.tar.gz", "has_sig": false, "md5_digest": "e36d525c220fae301b3d75d499d4080d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19854, "upload_time": "2012-07-13T03:35:37", "url": "https://files.pythonhosted.org/packages/34/10/8767f1061423e6472b3d0a77b0de38e24a76efd833dc08ce42589642a872/factual-api-1.2.3.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "c68edb9f1e7c394bf58c5b112c2a48ea", "sha256": "1537d1b0a92cf09b8dd41a0bf22cfd4804d159167c183d78b0b42241efb5f96c" }, "downloads": -1, "filename": "factual-api-1.3.0.tar.gz", "has_sig": false, "md5_digest": "c68edb9f1e7c394bf58c5b112c2a48ea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21159, "upload_time": "2012-08-08T20:18:03", "url": "https://files.pythonhosted.org/packages/a7/0f/23c289b3e886c32275a32191c7314cc9699c1ddf1c59a603a363ea6688d3/factual-api-1.3.0.tar.gz" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "ea8b1c6bb02f2558943ae714540298fb", "sha256": "c3f4333bb0ddf62914504d87b908857936fa3ddccc5b303019806c337fb2072f" }, "downloads": -1, "filename": "factual-api-1.3.1.tar.gz", "has_sig": false, "md5_digest": "ea8b1c6bb02f2558943ae714540298fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21317, "upload_time": "2012-10-24T22:11:34", "url": "https://files.pythonhosted.org/packages/95/27/558a40b32bbdc3a641eeaf50c5c97404af5c11431a1efd11b39cbdab2b0a/factual-api-1.3.1.tar.gz" } ], "1.3.2": [ { "comment_text": "", "digests": { "md5": "8c2b6f3258bd535f9d6ea2a1ba8ea9a3", "sha256": "baf74f6929edf8542f2ee44ab87ac87981fabcc11974ca34ea3fb3173c15a3df" }, "downloads": -1, "filename": "factual-api-1.3.2.tar.gz", "has_sig": false, "md5_digest": "8c2b6f3258bd535f9d6ea2a1ba8ea9a3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21486, "upload_time": "2013-01-16T00:46:15", "url": "https://files.pythonhosted.org/packages/0e/f5/c08b7e031b1568ca26e9f50b82afe672cd4a0795c9ff7e003a9a548ac4a7/factual-api-1.3.2.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "ee1e77b0e26e33ea94711b60cd172f6f", "sha256": "ccab27e8301f772ec2fe7e97e125a7bc2a4c8a55f11a13c4a83b3eda8850787c" }, "downloads": -1, "filename": "factual-api-1.4.0.tar.gz", "has_sig": false, "md5_digest": "ee1e77b0e26e33ea94711b60cd172f6f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21510, "upload_time": "2013-02-04T21:23:59", "url": "https://files.pythonhosted.org/packages/c9/b1/bc12efb05ca1b074f9211b2b9febb6c657d31e267fabf3fdc9ad9a9cbe21/factual-api-1.4.0.tar.gz" } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "a9a4113accc9e956894dc277a41b3799", "sha256": "d852181e777f5fd1a25d0ec9357dd5f1b54bb2cc6f48157d15d6737f7e53e6c1" }, "downloads": -1, "filename": "factual-api-1.4.1.tar.gz", "has_sig": false, "md5_digest": "a9a4113accc9e956894dc277a41b3799", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22188, "upload_time": "2013-04-09T22:13:24", "url": "https://files.pythonhosted.org/packages/f4/48/b60a84a5d68aba6d9553d4baf2236c80d180bbc8bdb718d00d50c9adf23d/factual-api-1.4.1.tar.gz" } ], "1.4.2": [ { "comment_text": "", "digests": { "md5": "b2be62d545fd641f5cdd9a7818580270", "sha256": "66adae7e304c9e898f975f62a31e858cc0efbc93dd6cdb65b7328077b1b89720" }, "downloads": -1, "filename": "factual-api-1.4.2.tar.gz", "has_sig": false, "md5_digest": "b2be62d545fd641f5cdd9a7818580270", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22035, "upload_time": "2013-05-02T21:18:43", "url": "https://files.pythonhosted.org/packages/ec/2d/fe9770ebb8ea55b9fa9efe64c85c5b437ae4edf44826e97e7950d3a0ea46/factual-api-1.4.2.tar.gz" } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "d82ce8c5a221c2171fec36845ea0bc20", "sha256": "4a134dbe1bb167294b0ce66755b6d2b3fc2d79dd68761559c98c276e95a90ed4" }, "downloads": -1, "filename": "factual-api-1.5.0.tar.gz", "has_sig": false, "md5_digest": "d82ce8c5a221c2171fec36845ea0bc20", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21695, "upload_time": "2014-01-08T18:45:28", "url": "https://files.pythonhosted.org/packages/e6/d2/6e146c8d805cbb76c9ffe4d35642e59291804b026393c5328498d96f6e97/factual-api-1.5.0.tar.gz" } ], "1.5.1": [ { "comment_text": "", "digests": { "md5": "24b8610ed4c0b3b68e0a7e267b211d92", "sha256": "8b72587c5e01efa973255bb7a9c8e4bcdd70f4d6f054cf561752718dd22cf944" }, "downloads": -1, "filename": "factual-api-1.5.1.tar.gz", "has_sig": false, "md5_digest": "24b8610ed4c0b3b68e0a7e267b211d92", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21826, "upload_time": "2014-02-17T21:15:35", "url": "https://files.pythonhosted.org/packages/66/fd/33b12cee3d0ef34dac809c6701b9a552928b3f97bbfbd38a7f81f1498801/factual-api-1.5.1.tar.gz" } ], "1.6.0": [ { "comment_text": "", "digests": { "md5": "fee7e13f8378d538ad4fd54172e878c2", "sha256": "61606bb6beaedd3466a9c7b42c22cfe0848a82f7cfed1a24b560d342d9d661e8" }, "downloads": -1, "filename": "factual-api-1.6.0.tar.gz", "has_sig": false, "md5_digest": "fee7e13f8378d538ad4fd54172e878c2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18581, "upload_time": "2014-06-02T23:04:28", "url": "https://files.pythonhosted.org/packages/37/dd/b8a0a55ec16da9d742262552bc8398be3abfd06ce6e7fdc51905ffa21418/factual-api-1.6.0.tar.gz" } ], "1.6.1": [ { "comment_text": "", "digests": { "md5": "b415104a2610b197f6c457465147c57e", "sha256": "7cd467ce936e69d9964646d6b9123258f6afa2e8dfcbfa6f2f4cea729bd38f8a" }, "downloads": -1, "filename": "factual-api-1.6.1.tar.gz", "has_sig": false, "md5_digest": "b415104a2610b197f6c457465147c57e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17227, "upload_time": "2015-04-22T18:27:21", "url": "https://files.pythonhosted.org/packages/c7/b1/5538c9cb30e9401396f8147bcc5e5f243a7d382a3eb7eaa50cbf9e6c1f43/factual-api-1.6.1.tar.gz" } ], "1.7.0": [ { "comment_text": "", "digests": { "md5": "b095f72b443501d42cdcdd93eb426027", "sha256": "7197558d9d3a47b775512ee394a5b5547af6bff782471c8f26a79195872bf397" }, "downloads": -1, "filename": "factual-api-1.7.0.tar.gz", "has_sig": false, "md5_digest": "b095f72b443501d42cdcdd93eb426027", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17274, "upload_time": "2015-10-15T04:39:16", "url": "https://files.pythonhosted.org/packages/d5/ac/7878bd08691cc23540ff46d9cdb27d2f5d1c8ad2e402849244633973f511/factual-api-1.7.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b095f72b443501d42cdcdd93eb426027", "sha256": "7197558d9d3a47b775512ee394a5b5547af6bff782471c8f26a79195872bf397" }, "downloads": -1, "filename": "factual-api-1.7.0.tar.gz", "has_sig": false, "md5_digest": "b095f72b443501d42cdcdd93eb426027", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17274, "upload_time": "2015-10-15T04:39:16", "url": "https://files.pythonhosted.org/packages/d5/ac/7878bd08691cc23540ff46d9cdb27d2f5d1c8ad2e402849244633973f511/factual-api-1.7.0.tar.gz" } ] }