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.19.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.19.0.tar.gz | 38.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| caronashow_api-0.19.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 99.6 kB
Release files / caronashow_api-0.19.0.tar.gz
| Download URL | caronashow_api-0.19.0.tar.gz |
|---|---|
| Size | 38.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2f0643e69942b7940e19ff50604e493359995165efb4e9d898e2e4d979d8dcde
|
|
BLAKE2b-256 checksum How to use checksums |
fb24ff657c5726c89bf66336c76b390fdd732aad873a1ff5154656e8db6021b8
|
| 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.19.0-py3-none-any.whl
| Download URL | caronashow_api-0.19.0-py3-none-any.whl |
|---|---|
| Size | 61.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
748496af83364b9628cefa9635dc7456871b7e58892b01ffeebca3022a1a4f0f
|
|
BLAKE2b-256 checksum How to use checksums |
a91de14c75afa97a9f49a01e715cda98b344cdbbe5e0c0e7d261474c15388900
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|