Python tools to get species data from various API.
Project description
spsearch
Python tools to get species data from various API, including IUCN Red List and Encyclopedia of Life.
What is spsearch?
This is a collection of CLI tools which enable you to use various API with ease.
Why spsearch?
-
Using asyncio.
Unfortunately, some of the APIs are far from fastest (e.g. IUCN Red List API), so asynchronous retrieval will help you getting various info at once. -
For easier search.
Some of the APIs accept the only one certain scientific name of the species to search. For example, when you search Asian small-clawed otter withAonyx cinerea
via 'Individual species by name' method, Red List API returns no result, as it is only referable inAonyx cinereus
.spsearch.RedListApiHandler.species_from_name()
both acceptsAonyx cinerea
andAonyx cinereus
.
How to use
translator.ja2sci (translate Japanese name into scientific name)
from spsearch.translator import ja2sci
print(ja2sci.convert('ユーラシアカワウソ')) # Lutra lutra
Red List API
You have to generate your own token here.
from pprint import pprint
import asyncio
from spsearch.redlist import RedListApiHandler
handler = RedListApiHandler(token=YOUR_REDLIST_API_TOKEN)
async def main():
# Get the info of Eurasian otter (Lutra lutra)
otter = await handler.species_from_name('Lutra lutra')
print(otter) # [NT]Lutra lutra
# Print some information about this species
print(otter.category) # NT
print(otter.order) # MUSTELIDAE
print(otter.assessment_date) # 2014-06-20
# Get the list of the threats
threats = await otter.get_threats()
# Threats are returned in a container class with some convenient method
print(threats)
# -> CodeHierarchySeq([
# <Threat 1.1: Housing & urban areas>,
# <Threat 1.2: Commercial & industrial areas>,
# <Threat 1.3: Tourism & recreation areas>,
# <Threat 2.4: Marine & freshwater aquaculture>,
# <Threat 2.4.3: Scale Unknown/Unrecorded>,
# <Threat 4.1: Roads & railroads>,
# ...
# ])
print(threats[2][4])
# -> CodeHierarchySeq([
# <Threat 2.4: Marine & freshwater aquaculture>,
# <Threat 2.4.3: Scale Unknown/Unrecorded>
# ])
print(threats.codes()) # [1, 2, 4, 5, 6, 7, 9]
# Use .slice() to slice the container
print(threats.slice(0)) # 1.1: Housing & urban areas
# Print some data for each threats
print(threats.code) # 1.1
print(threats.title) # Housing & urban areas
# The same methods are available for the habitats, conservation measures
pprint(await otter.get_habitats())
pprint(await otter.get_conservation_measures())
# Print the list of the countries in which they live
pprint(await otter.get_country_occurrence())
asyncio.run(main())
EOL API
If you want to use the cypher API, you need a token. Follow the guide here to get yours. Classical API doesn't need it.
Not yet prepared
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file spsearch-0.1.0.tar.gz
.
File metadata
- Download URL: spsearch-0.1.0.tar.gz
- Upload date:
- Size: 3.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 05d1d360db2ba9a904de42b6bbeaa4721b24bdfdb93eaf696b73b104ec8665b3 |
|
MD5 | a2359c52ccc83e4e22c1d6d12fbf9474 |
|
BLAKE2b-256 | dfd0f6b5199d2ed1b9b982f410a346a82e8b86c4c312811f3eacf8e7d73afd4a |