This library uses Joshua Project's APIv2.
You'll need an api_key
to use API and the library.
For details, see Documentation.
Install¶
pip install joshuaproject
How to use¶
Get your API key and set it in a variable or pass to functions.
Country Codes¶
Joshua Project uses FIPS codes (US Federal Information Processing Standard) for countries.
FIPS 10-4 (April 1995) -- Countries, Dependencies, Areas of Special Sovereignty, and TheirPrincipal Administrative Divisions.
However, FIPS 10-4 was withdrawn by NIST on September 2, 2008 in favor of the international ISO 3166 standard.
In the meantime, as of Jan 2020 Joshua Project has no plans to switch onto ISO codes, I was notified. sigh
Sadly, FIPS in 60% cases differs from the ISO.
cc = CountryCodes()
diff = cc.data[cc.data.FIPS != cc.data.ISO]
len(diff)/len(cc)
diff.head()
Solution: The library provides a CountryCodes()
class to workaround this discrepancy.
Missing FIPS codes¶
Missing FIPS values:
cc.data[cc.data.FIPS.isna()]
cc.like('United')
For more details, see the Country Codes page.
URL Constructing Functions¶
There are a few functions to easily construct URLs to query then for the info required.
Get all people groups in a specific country¶
Build an URL to query all people groups in India:
url_pgs_cntry('IN',api_key=api_key)
For more details, see the URL Functions page.
Development¶
Testing¶
Tests are incorporated into the Jupyter Notebooks and are also a neat way to learn the function's expected behavior, since in case of incorrect behavior test_*
functions will return an AssertionError.
Tests can also be launched from the console with nbdev_test_nbs
.
Contributing¶
Ideas, issues and pull-requests are welcome! Please submit via GitHub.
Please share, like and upvote, too.
Copyright¶
Copyright 2020 onwards, Konstantin Dorichev. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this project's files except in compliance with the License. A copy of the License is provided in the LICENSE file in this repository.