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.common_pb2 import TimeOfDay
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",
),
departure_from_origin=TimeOfDay(hours=7, minutes=30),
arrival_shift_id="morning-shift",
departure_shift_id="evening-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.14.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.14.0.tar.gz | 24.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| caronashow_api-0.14.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 66.6 kB
Release files / caronashow_api-0.14.0.tar.gz
| Download URL | caronashow_api-0.14.0.tar.gz |
|---|---|
| Size | 24.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e17ec04501b57eba41598cdf8bec37fce3f83b66f5edf7bed538bb628b599388
|
|
BLAKE2b-256 checksum How to use checksums |
ff0397635e84b1056b04be079437c3d7897bc203d3605989dc10603f8e177ee5
|
| 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.14.0-py3-none-any.whl
| Download URL | caronashow_api-0.14.0-py3-none-any.whl |
|---|---|
| Size | 42.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
886121bf694fd7b2bf3475b61e87dce7a2ee4e170ff98d4216277d5d3fc1df6a
|
|
BLAKE2b-256 checksum How to use checksums |
f17e439330fb9e0db705188593c6fe5392f67c75a877111e4a5d8c7c6be18d23
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|