112 references to WriteLine
Aspire.Hosting.CodeGeneration.Python (112)
AtsPythonCodeGenerator.cs (112)
94WriteLine("# aspire.py - Capability-based Aspire SDK"); 95WriteLine("# GENERATED CODE - DO NOT EDIT"); 96WriteLine(); 97WriteLine("from __future__ import annotations"); 98WriteLine(); 99WriteLine("import os"); 100WriteLine("import sys"); 101WriteLine("from dataclasses import dataclass"); 102WriteLine("from enum import Enum"); 103WriteLine("from typing import Any, Callable, Dict, List"); 104WriteLine(); 105WriteLine("from transport import AspireClient, Handle, CapabilityError, register_callback, register_handle_wrapper, register_cancellation"); 106WriteLine("from base import AspireDict, AspireList, ReferenceExpression, ref_expr, HandleWrapperBase, ResourceBuilderBase, serialize_value"); 107WriteLine(); 117WriteLine("# ============================================================================"); 118WriteLine("# Enums"); 119WriteLine("# ============================================================================"); 120WriteLine(); 130WriteLine($"class {enumName}(str, Enum):"); 135WriteLine($" {memberName} = \"{member}\""); 137WriteLine(); 148WriteLine("# ============================================================================"); 149WriteLine("# DTOs"); 150WriteLine("# ============================================================================"); 151WriteLine(); 156WriteLine("@dataclass"); 157WriteLine($"class {dtoName}:"); 160WriteLine(" pass"); 161WriteLine(); 172WriteLine($" {propertyName}: {propertyType}{optionalSuffix}{defaultValue}"); 175WriteLine(); 176WriteLine(" def to_dict(self) -> Dict[str, Any]:"); 177WriteLine(" return {"); 182WriteLine($" \"{property.Name}\": serialize_value(self.{propertyName}),"); 184WriteLine(" }"); 185WriteLine(); 198WriteLine("# ============================================================================"); 199WriteLine("# Handle Wrappers"); 200WriteLine("# ============================================================================"); 201WriteLine(); 206WriteLine($"class {handleType.ClassName}({baseClass}):"); 207WriteLine(" def __init__(self, handle: Handle, client: AspireClient):"); 208WriteLine(" super().__init__(handle, client)"); 209WriteLine(); 220WriteLine(" pass"); 223WriteLine(); 249WriteLine($" def {methodName}({signature}) -> {returnType}:"); 252WriteLine($" \"\"\"{capability.Description}\"\"\""); 256WriteLine($" args: Dict[str, Any] = {{ \"{targetParamName}\": serialize_value(self._handle) }}"); 264WriteLine($" {parameterName}_id = register_callback({parameterName}) if {parameterName} is not None else None"); 265WriteLine($" if {parameterName}_id is not None:"); 266WriteLine($" args[\"{parameter.Name}\"] = {parameterName}_id"); 272WriteLine($" {parameterName}_id = register_cancellation({parameterName}, self._client) if {parameterName} is not None else None"); 273WriteLine($" if {parameterName}_id is not None:"); 274WriteLine($" args[\"{parameter.Name}\"] = {parameterName}_id"); 280WriteLine($" if {parameterName} is not None:"); 281WriteLine($" args[\"{parameter.Name}\"] = serialize_value({parameterName})"); 285WriteLine($" args[\"{parameter.Name}\"] = serialize_value({parameterName})"); 291WriteLine($" self._client.invoke_capability(\"{capability.CapabilityId}\", args)"); 292WriteLine(" return None"); 296WriteLine($" return self._client.invoke_capability(\"{capability.CapabilityId}\", args)"); 298WriteLine(); 332WriteLine($" @property"); 333WriteLine($" def {methodName}(self) -> {typeHint}:"); 336WriteLine($" \"\"\"{capability.Description}\"\"\""); 338WriteLine($" if not hasattr(self, '_{methodName}'):"); 339WriteLine($" self._{methodName} = {wrapperType}("); 340WriteLine($" self._handle,"); 341WriteLine($" self._client,"); 342WriteLine($" \"{capability.CapabilityId}\""); 343WriteLine($" )"); 344WriteLine($" return self._{methodName}"); 345WriteLine(); 352WriteLine("# ============================================================================"); 353WriteLine("# Handle wrapper registrations"); 354WriteLine("# ============================================================================"); 355WriteLine(); 359WriteLine($"register_handle_wrapper(\"{handleType.TypeId}\", lambda handle, client: {handleType.ClassName}(handle, client))"); 365WriteLine($"register_handle_wrapper(\"{typeId}\", lambda handle, client: {wrapperType}(handle, client))"); 368WriteLine(); 377WriteLine("# ============================================================================"); 378WriteLine("# Connection Helpers"); 379WriteLine("# ============================================================================"); 380WriteLine(); 381WriteLine("def connect() -> AspireClient:"); 382WriteLine(" socket_path = os.environ.get(\"REMOTE_APP_HOST_SOCKET_PATH\")"); 383WriteLine(" if not socket_path:"); 384WriteLine(" raise RuntimeError(\"REMOTE_APP_HOST_SOCKET_PATH environment variable not set. Run this application using `aspire run`.\")"); 385WriteLine(" client = AspireClient(socket_path)"); 386WriteLine(" client.connect()"); 387WriteLine(" client.on_disconnect(lambda: sys.exit(1))"); 388WriteLine(" return client"); 389WriteLine(); 390WriteLine($"def create_builder(options: Any | None = None) -> {builderClassName}:"); 391WriteLine(" client = connect()"); 392WriteLine(" resolved_options: Dict[str, Any] = {}"); 393WriteLine(" if options is not None:"); 394WriteLine(" if hasattr(options, \"to_dict\"):"); 395WriteLine(" resolved_options.update(options.to_dict())"); 396WriteLine(" elif isinstance(options, dict):"); 397WriteLine(" resolved_options.update(options)"); 398WriteLine(" resolved_options.setdefault(\"Args\", sys.argv[1:])"); 399WriteLine(" resolved_options.setdefault(\"ProjectDirectory\", os.environ.get(\"ASPIRE_PROJECT_DIRECTORY\", os.getcwd()))"); 400WriteLine(" result = client.invoke_capability(\"Aspire.Hosting/createBuilderWithOptions\", {\"options\": resolved_options})"); 401WriteLine(" return result"); 402WriteLine(); 403WriteLine("# Re-export commonly used types"); 404WriteLine("CapabilityError = CapabilityError"); 405WriteLine("Handle = Handle"); 406WriteLine("ReferenceExpression = ReferenceExpression"); 407WriteLine("ref_expr = ref_expr"); 408WriteLine();