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.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="Rua Exemplo, 100",
departure_time=TimeOfDay(hours=7, minutes=30),
return_time=TimeOfDay(hours=18, minutes=0),
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.9.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.9.0.tar.gz | 20.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| caronashow_api-0.9.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 57.4 kB
Release files / caronashow_api-0.9.0.tar.gz
| Download URL | caronashow_api-0.9.0.tar.gz |
|---|---|
| Size | 20.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
146e57cb52fb124bd504fe32f0e604a84abf7687f19be195f75e30a6aff6ae8e
|
|
BLAKE2b-256 checksum How to use checksums |
88f14a58d67ba1340c043e41f550facbbd85be4bd725fa222d55b766ede53e30
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|
Release files / caronashow_api-0.9.0-py3-none-any.whl
| Download URL | caronashow_api-0.9.0-py3-none-any.whl |
|---|---|
| Size | 36.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7eadbb1edd4abb2e37350713f44684e6de965b76632b22c40e95cc644cea2740
|
|
BLAKE2b-256 checksum How to use checksums |
1259a326fad215511ac15aa8ce5ad02aeedbda8d88cad60a9bd3410422c07cfd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|