CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-google-maps-routeoptimization

Google Maps Route Optimization API client library for assigning tasks and routes to vehicle fleets while optimizing against custom objectives and constraints.

Pending
Overview
Eval results
Files

client-configuration.mddocs/

Client Configuration

Client instantiation, authentication, and configuration options for both synchronous and asynchronous operation modes. This covers how to create and configure Route Optimization clients with various authentication methods and settings.

Capabilities

Client Classes

RouteOptimizationClient

Synchronous client for Route Optimization API interactions.

class RouteOptimizationClient:
    def __init__(
        self,
        *,
        credentials: Optional[ga_credentials.Credentials] = None,
        transport: Optional[Union[str, RouteOptimizationTransport, Callable[..., RouteOptimizationTransport]]] = None,
        client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None,
        client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO
    ): ...
    
    @classmethod
    def from_service_account_info(
        cls, 
        info: dict, 
        *args, 
        **kwargs
    ) -> "RouteOptimizationClient": ...
    
    @classmethod
    def from_service_account_file(
        cls, 
        filename: str, 
        *args, 
        **kwargs
    ) -> "RouteOptimizationClient": ...
    
    @property
    def transport(self) -> RouteOptimizationTransport: ...
    
    @staticmethod
    def common_billing_account_path(billing_account: str) -> str: ...
    
    @staticmethod
    def parse_common_billing_account_path(path: str) -> Dict[str, str]: ...
    
    @staticmethod
    def common_folder_path(folder: str) -> str: ...
    
    @staticmethod
    def parse_common_folder_path(path: str) -> Dict[str, str]: ...
    
    @staticmethod
    def common_organization_path(organization: str) -> str: ...
    
    @staticmethod
    def parse_common_organization_path(path: str) -> Dict[str, str]: ...
    
    @staticmethod
    def common_project_path(project: str) -> str: ...
    
    @staticmethod
    def parse_common_project_path(path: str) -> Dict[str, str]: ...
    
    @staticmethod
    def common_location_path(project: str, location: str) -> str: ...
    
    @staticmethod
    def parse_common_location_path(path: str) -> Dict[str, str]: ...

RouteOptimizationAsyncClient

Asynchronous client for non-blocking Route Optimization API interactions.

class RouteOptimizationAsyncClient:
    def __init__(
        self,
        *,
        credentials: Optional[ga_credentials.Credentials] = None,
        transport: Optional[Union[str, RouteOptimizationAsyncTransport, Callable[..., RouteOptimizationAsyncTransport]]] = None,
        client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None,
        client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO
    ): ...
    
    @classmethod
    def from_service_account_info(
        cls, 
        info: dict, 
        *args, 
        **kwargs
    ) -> "RouteOptimizationAsyncClient": ...
    
    @classmethod
    def from_service_account_file(
        cls, 
        filename: str, 
        *args, 
        **kwargs
    ) -> "RouteOptimizationAsyncClient": ...
    
    @property
    def transport(self) -> RouteOptimizationAsyncTransport: ...
    
    # Same path helper methods as sync client

Authentication Methods

Application Default Credentials

from google.maps import routeoptimization_v1

# Use Application Default Credentials (recommended)
client = routeoptimization_v1.RouteOptimizationClient()

Service Account File

from google.maps import routeoptimization_v1

# From service account file
client = routeoptimization_v1.RouteOptimizationClient.from_service_account_file(
    "path/to/service-account-key.json"
)

# Async client from service account file
async_client = routeoptimization_v1.RouteOptimizationAsyncClient.from_service_account_file(
    "path/to/service-account-key.json"
)

Service Account Info

from google.maps import routeoptimization_v1

# From service account info dictionary
service_account_info = {
    "type": "service_account",
    "project_id": "your-project-id",
    "private_key_id": "key-id",
    "private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n",
    "client_email": "service-account@your-project.iam.gserviceaccount.com",
    "client_id": "client-id",
    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
    "token_uri": "https://oauth2.googleapis.com/token"
}

client = routeoptimization_v1.RouteOptimizationClient.from_service_account_info(
    service_account_info
)

Custom Credentials

from google.maps import routeoptimization_v1
from google.oauth2 import service_account

# Create credentials manually
credentials = service_account.Credentials.from_service_account_file(
    "path/to/service-account-key.json",
    scopes=["https://www.googleapis.com/auth/cloud-platform"]
)

client = routeoptimization_v1.RouteOptimizationClient(credentials=credentials)

Client Options

Regional Endpoints

from google.maps import routeoptimization_v1
from google.api_core import client_options

# Use regional endpoint
options = client_options.ClientOptions(
    api_endpoint="us-central1-routeoptimization.googleapis.com"
)

client = routeoptimization_v1.RouteOptimizationClient(client_options=options)

Custom Transport

from google.maps import routeoptimization_v1

# Use specific transport (grpc, rest)
client = routeoptimization_v1.RouteOptimizationClient(transport="grpc")

# For async client
async_client = routeoptimization_v1.RouteOptimizationAsyncClient(transport="grpc_asyncio")

Client Info

from google.maps import routeoptimization_v1
from google.api_core import gapic_v1

# Custom client info
client_info = gapic_v1.client_info.ClientInfo(
    client_library_version="1.0.0",
    user_agent="MyApp/1.0.0"
)

client = routeoptimization_v1.RouteOptimizationClient(client_info=client_info)

Path Helper Methods

Utility methods for constructing and parsing Google Cloud resource paths.

Project Paths

from google.maps import routeoptimization_v1

client = routeoptimization_v1.RouteOptimizationClient()

# Create project path
project_path = client.common_project_path("my-project-id")
# Returns: "projects/my-project-id"

# Parse project path
parsed = client.parse_common_project_path("projects/my-project-id")
# Returns: {"project": "my-project-id"}

Location Paths

from google.maps import routeoptimization_v1

client = routeoptimization_v1.RouteOptimizationClient()

# Create location path
location_path = client.common_location_path("my-project-id", "us-central1")
# Returns: "projects/my-project-id/locations/us-central1"

# Parse location path
parsed = client.parse_common_location_path("projects/my-project-id/locations/us-central1")
# Returns: {"project": "my-project-id", "location": "us-central1"}

Usage Examples

Basic Client Setup

from google.maps import routeoptimization_v1

# Simple client with default credentials
client = routeoptimization_v1.RouteOptimizationClient()

# Test connection with a simple request
request = routeoptimization_v1.OptimizeToursRequest(
    parent=client.common_project_path("my-project-id")
)

Production Configuration

from google.maps import routeoptimization_v1
from google.api_core import client_options, retry
import google.auth

# Production setup with custom configuration
credentials, project_id = google.auth.default(
    scopes=["https://www.googleapis.com/auth/cloud-platform"]
)

options = client_options.ClientOptions(
    api_endpoint="us-central1-routeoptimization.googleapis.com",
    quota_project_id=project_id
)

client = routeoptimization_v1.RouteOptimizationClient(
    credentials=credentials,
    client_options=options
)

# Use with custom retry configuration
custom_retry = retry.Retry(
    initial=1.0,
    maximum=60.0,
    multiplier=2.0,
    predicate=retry.if_exception_type(Exception)
)

response = client.optimize_tours(
    request=request,
    retry=custom_retry,
    timeout=300.0  # 5 minutes
)

Async Client Usage

import asyncio
from google.maps import routeoptimization_v1

async def optimize_routes():
    # Create async client
    async_client = routeoptimization_v1.RouteOptimizationAsyncClient()
    
    # Create request
    request = routeoptimization_v1.OptimizeToursRequest(
        parent="projects/my-project-id",
        model=your_shipment_model
    )
    
    # Make async request
    response = await async_client.optimize_tours(request=request)
    
    # Process response
    print(f"Optimized {len(response.routes)} routes")
    
    # Close client
    await async_client.close()

# Run async function
asyncio.run(optimize_routes())

Environment-Based Configuration

import os
from google.maps import routeoptimization_v1
from google.api_core import client_options

# Configure based on environment
def create_client():
    if os.getenv("ENVIRONMENT") == "production":
        # Production configuration
        options = client_options.ClientOptions(
            api_endpoint="us-central1-routeoptimization.googleapis.com"
        )
        return routeoptimization_v1.RouteOptimizationClient(
            client_options=options
        )
    else:
        # Development configuration
        return routeoptimization_v1.RouteOptimizationClient()

client = create_client()

Error Handling

from google.maps import routeoptimization_v1
from google.api_core import exceptions
import logging

client = routeoptimization_v1.RouteOptimizationClient()

try:
    response = client.optimize_tours(request=request)
except exceptions.PermissionDenied as e:
    logging.error(f"Permission denied: {e}")
except exceptions.NotFound as e:
    logging.error(f"Resource not found: {e}")
except exceptions.DeadlineExceeded as e:
    logging.error(f"Request timeout: {e}")
except Exception as e:
    logging.error(f"Unexpected error: {e}")

Install with Tessl CLI

npx tessl i tessl/pypi-google-maps-routeoptimization

docs

batch-operations.md

client-configuration.md

data-model.md

index.md

route-optimization.md

tile.json