GeoLibs-CARTOasync
Asynchronous Python client for CARTO.
Features
- SQL API
- Batch API
- COPY queries
- Import API
- Read and write Panda's DataFrames
- Maps API?
- Tests
Installation
pip install geolibs-cartoasync
Usage
SQL API example
from cartoasync import Auth, SQLClient
auth = Auth(username='username', api_key='api_key')
sql_client = SQLClient(auth)
result = await sql_client.send('SELECT 1 AS one;')
print(result)
>>> {
>>> "rows": [
>>> {
>>> "one": 1
>>> }
>>> ],
>>> "time": 0.002,
>>> "fields": {
>>> "one": {
>>> "type": "number"
>>> }
>>> },
>>> "total_rows": 1
>>> }
SQL API example, step by step
Auth
object:
1. Instantiate an 1.1. CARTO cloud:
auth = Auth(username='username', api_key='api_key')
1.2. CARTO OnPremises or cloud organization with an implict user:
auth = Auth(base_url='https://myapp.com/user/username/', api_key='api_key')
1.3. CARTO OnPremises or cloud organization without an implicit user:
auth = Auth(base_url='https://myapp.com/', username='username', api_key='api_key')
1.4. SSL:
The Auth
constructor has and ssl
attribute. You can use it for handle to the library a Python's SSL context, or set it to False
for relaxing certification checks. More info on AIOHTTP doc.
2. Instantiate the SQLClient and send queries:
2.1. SQLClient's own AIOHTTP session:
sql_client = SQLClient(auth)
result = await sql_client.send('SELECT 1 AS one;')
2.2. External AIOHTTP session you need to care until the end of its days:
import aiohttp
sql_client = SQLClient(auth)
result = await sql_client.send('SELECT 1 AS one;', aiohttp.ClientSession())