Skip to main content

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.15.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for caronashow-api 0.15.0
File Size Uploaded
caronashow_api-0.15.0.tar.gz 24.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for caronashow-api 0.15.0
File Interpreter ABI Platform
caronashow_api-0.15.0-py3-none-any.whl Python 3 none any Details

Total release size: 66.7 kB

Release files / caronashow_api-0.15.0.tar.gz

Download URL caronashow_api-0.15.0.tar.gz
Size 24.7 kB
Tags Source
SHA-256 checksum
How to use checksums
cdad8c25d1d78de187aac8de49628cf58a2e1c1cf0b3739fe9d3b6d2792c1622
BLAKE2b-256 checksum
How to use checksums
7231bf3596aef58ba67b01e460c8d45f827f0b2b8651682eea0a544c161e7b8a
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.15.0-py3-none-any.whl

Download URL caronashow_api-0.15.0-py3-none-any.whl
Size 42.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ac37a3fdd18ad3f007836876621e41888a1bc3c30d9f0e36967b9ede608708b4
BLAKE2b-256 checksum
How to use checksums
9c2b232476a751d2b7c8cc08d5b2e88226018f80165546b5fe6de51d5509fc3c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.12.14

Release history Release notifications | RSS feed

0.33.0

2 release files

0.32.0

2 release files

0.31.0

2 release files

0.30.0

2 release files

0.29.1

2 release files

0.29.0

2 release files

0.28.0

2 release files

0.27.0

2 release files

0.26.0

2 release files

0.25.0

2 release files

0.24.0

2 release files

0.23.0

2 release files

0.22.0

2 release files

0.21.0

2 release files

0.20.1

2 release files

0.20.0

2 release files

0.19.0

2 release files

0.18.0

2 release files

0.17.0

2 release files

This release

0.15.0 This release

2 release files

0.13.0

2 release files

0.12.0

2 release files

0.11.0

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.5

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.5

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page