caronashow-api
Python client for CaronaShow APIs.
Installation
pip install caronashow-api
Usage
The code below is a minimal version and not comprehensive of all APIs.
To view the API definitions and types, consult the
.protobuf files or generated code.
Pooler API client
import asyncio
from caronashow.pooler.v1.pooler_connect import PoolerServiceClient
from caronashow.pooler.v1.pooler_pb2 import (
MATCHING_ALGORITHM_RANDOM,
ExecuteMatchingAlgorithmOnDatasetRequest,
)
async def main():
# Create a client
client = PoolerServiceClient("http://localhost:8080")
# Make a request
request = ExecuteMatchingAlgorithmOnDatasetRequest(
dataset_id="dataset-123",
algorithm=MATCHING_ALGORITHM_RANDOM,
)
# Call the service
response = await client.execute_matching_algorithm_on_dataset(request)
print(response.operation)
if __name__ == "__main__":
asyncio.run(main())
Pooler API server
from caronashow.pooler.v1.pooler_connect import (
PoolerService,
PoolerServiceASGIApplication,
)
from caronashow.pooler.v1.pooler_pb2 import (
ExecuteMatchingAlgorithmOnDatasetResponse,
Operation,
OperationState,
)
class Pooler(PoolerService):
async def execute_matching_algorithm_on_dataset(self, request, ctx):
print("Request headers:", ctx.request_headers())
response = ExecuteMatchingAlgorithmOnDatasetResponse(
operation=Operation(
operation_id="op-123",
dataset_id=request.dataset_id,
state=OperationState.OPERATION_STATE_SUCCEEDED,
)
)
return response
app = PoolerServiceASGIApplication(Pooler())
Onboarding API client
import asyncio
from caronashow.service.v1.onboarding_connect import OnboardingServiceClient
from caronashow.service.v1.onboarding_pb2 import (
CompleteOnboardingRequest,
DriverOfferSetup,
GetOnboardingStatusRequest,
)
from caronashow.types.v1.address_pb2 import FullAddress
from caronashow.types.v1.user_pb2 import PARTICIPATION_MODE_OFFER
async def main():
client = OnboardingServiceClient("http://localhost:8080")
status = await client.get_onboarding_status(GetOnboardingStatusRequest())
if not status.onboarding_completed:
response = await client.complete_onboarding(
CompleteOnboardingRequest(
enrolled_in_vulnerability_filter=False,
terms_accepted=True,
participation_mode=PARTICIPATION_MODE_OFFER,
offer=DriverOfferSetup(
vehicle_model="Honda Fit 2019",
vehicle_color="Prata",
vehicle_plate="ABC-1234",
offered_seats=4,
origin_address=FullAddress(
formatted_address="Avenida Paulista, 1000 - Bela Vista, Sao Paulo - SP, 01310-100, Brasil",
street="Avenida Paulista",
number="1000",
neighborhood="Bela Vista",
city="Sao Paulo",
state="SP",
postal_code="01310-100",
country="BR",
),
schedule={"organization_shift_id": "morning-shift"},
accepting_requests=True,
),
)
)
if __name__ == "__main__":
asyncio.run(main())
Types
from caronashow.types.v1 import user_pb2, common_pb2
# Create user objects
user = user_pb2.User(...)
# Common types
time = common_pb2.TimeOfDay(hours=7, minutes=30)
chat_pref = common_pb2.CHAT_PREFERENCE_OPEN
License
MIT License - see LICENSE file for details.
Metadata
Release files for caronashow-api 0.33.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| caronashow_api-0.33.0.tar.gz | 61.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| caronashow_api-0.33.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 150.7 kB
Release files / caronashow_api-0.33.0.tar.gz
| Download URL | caronashow_api-0.33.0.tar.gz |
|---|---|
| Size | 61.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b6041af044c26d73853de238b60517f334a03646d14f2c351b1570a4e67c730c
|
|
BLAKE2b-256 checksum How to use checksums |
fbbd089c6e41fc9355e89ba23a9a2c38f55baa74918119ee308bc539801736dc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / caronashow_api-0.33.0-py3-none-any.whl
| Download URL | caronashow_api-0.33.0-py3-none-any.whl |
|---|---|
| Size | 88.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
dffc88025463ce758c8064f7ffbaf26fc23ef401e9b5ae6f979f219793be6792
|
|
BLAKE2b-256 checksum How to use checksums |
798fea36a9214c72f05ccf7f33ba5f485119c2448ee45cd2c8fee9523487b3e7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|