API Reference

This document provides detailed API reference for all server endpoints.

Application Factory

FastAPI application factory and middleware configuration.

This module provides: - create_app(): Factory function to create configured FastAPI application - Default app instance for direct usage

Examples

Basic usage with default configuration:

>>> from analytic_continuation_server import app
>>> # Use with uvicorn: uvicorn analytic_continuation_server:app

Custom configuration:

>>> from analytic_continuation_server import create_app, ServerConfig
>>> config = ServerConfig(cors_origins=["https://myapp.com"])
>>> app = create_app(config)

Using configuration dict:

>>> app = create_app({"cors_origins": ["https://myapp.com"], "debug": True})
analytic_continuation_server.app.create_app(config=None)[source]

Create and configure the FastAPI application.

Parameters:

config (ServerConfig, dict, or None) – Server configuration. Can be: - ServerConfig instance - dict with configuration options (will be converted to ServerConfig) - None (uses environment variables or defaults)

Returns:

Configured FastAPI application instance.

Return type:

FastAPI

Examples

Default configuration (from environment or defaults):

>>> app = create_app()

Using ServerConfig:

>>> from analytic_continuation_server import ServerConfig
>>> config = ServerConfig(
...     cors_origins=["https://myapp.com"],
...     enable_domaincolor=True,
...     log_level="debug",
... )
>>> app = create_app(config)

Using dict:

>>> app = create_app({
...     "cors_origins": ["https://myapp.com"],
...     "debug": True,
... })

Disable optional features:

>>> app = create_app(ServerConfig(
...     enable_domaincolor=False,
...     enable_laurent=False,
... ))

Routes

Health Routes

Health check and root API endpoints.

async analytic_continuation_server.routes.health.health_check()[source]

Health check endpoint.

async analytic_continuation_server.routes.health.root()[source]

Root endpoint with API information.

Transform Routes

Coordinate transformation API endpoints.

Provides routes for: - Single point transformation - Batch point transformation - Spline export transformation - Transform parameter creation from view bounds - Zoom and pan operations

async analytic_continuation_server.routes.transform.transform_point(request)[source]

Transform a single point between screen and logical space.

Return type:

PointModel

Parameters:

request (TransformPointRequest)

async analytic_continuation_server.routes.transform.transform_points(request)[source]

Transform multiple points between screen and logical space.

Return type:

List[PointModel]

Parameters:

request (TransformPointsRequest)

async analytic_continuation_server.routes.transform.transform_spline_export(request)[source]

Transform a full SplineExport between screen and logical space.

Return type:

SplineExportModel

Parameters:

request (TransformSplineExportRequest)

async analytic_continuation_server.routes.transform.params_from_bounds(bounds)[source]

Create transform parameters from screen dimensions and logical view bounds.

Return type:

TransformParamsModel

Parameters:

bounds (ViewBoundsModel)

async analytic_continuation_server.routes.transform.zoom(request)[source]

Apply zoom to transform parameters.

Return type:

TransformParamsModel

Parameters:

request (ZoomRequest)

async analytic_continuation_server.routes.transform.pan(request)[source]

Apply pan to transform parameters.

Return type:

TransformParamsModel

Parameters:

request (PanRequest)

Meromorphic Routes

Meromorphic function building API endpoints.

Provides routes for: - Building meromorphic expressions from zeros and poles - Combined meromorphic + domain coloring generation

async analytic_continuation_server.routes.meromorphic.build_meromorphic(request)[source]

Build a meromorphic function expression from zeros and poles.

Accepts points in either screen or logical coordinates. Returns the sympy-compatible expression and points in logical coords.

Return type:

MeromorphicResponse

Parameters:

request (MeromorphicRequest)

Example request: {

“zeros”: [{“x”: 1, “y”: 0}, {“x”: -1, “y”: 0}], “poles”: [{“x”: 0, “y”: 1}, {“x”: 0, “y”: -1}], “coords”: “logical”

}

Returns: {

“expression”: “(z-1)*(z+1)/((z-i)*(z+i))”, “zeros”: […], “poles”: […]

}

async analytic_continuation_server.routes.meromorphic.meromorphic_domain_color(request, x_range=(-2.0, 2.0), y_range=None, resolution=800)[source]

Build a meromorphic function from zeros/poles and generate domain coloring.

Combines /api/meromorphic/build and /api/domaincolor into one call.

Parameters:

Domain Coloring Routes

Domain coloring API endpoints.

Provides routes for: - Domain coloring image generation - Expression validation - Validation renders with overlays

async analytic_continuation_server.routes.domaincolor.generate_domain_color(request)[source]

Generate a domain coloring image.

Returns a PNG image as a streaming response.

Parameters:

request (DomainColorRequest)

async analytic_continuation_server.routes.domaincolor.validate_expression(expression)[source]

Validate a complex function expression without generating an image.

Parameters:

expression (str)

async analytic_continuation_server.routes.domaincolor.validation_render(request)[source]

Generate a Python-rendered domain coloring with zeros/poles overlay.

This serves as ground truth for validating the WebGL renderer. Returns a PNG image with: - Domain coloring of the meromorphic function - Zero markers (green circles) - Pole markers (red X’s) - Optional curve overlay - Axis tick marks on border

Parameters:

request (ValidationRenderRequest)

Laurent Routes

Laurent series fitting and inversion API endpoints.

Provides routes for: - Contour pre-checking (topology validation) - Laurent map fitting - Holomorphic region checking - Point inversion through Laurent maps - Composition computation - Intrinsic curve analysis - WebGL render data generation

async analytic_continuation_server.routes.laurent.laurent_precheck(request)[source]

Quick pre-check on a raw user-drawn contour (Stage 1 Gate).

This is a fast “fail early” check before expensive Laurent fitting.

Return type:

ContourPreCheckResponse

Parameters:

request (ContourPreCheckRequest)

async analytic_continuation_server.routes.laurent.laurent_fit(request)[source]

Fit a Laurent map to a Jordan curve (Stage 3).

The Laurent map z(zeta) maps the unit circle to approximate the input curve.

Return type:

LaurentFitResponse

Parameters:

request (LaurentFitRequest)

async analytic_continuation_server.routes.laurent.laurent_check_holomorphic(request)[source]

Check that f’s poles are outside the annulus image (Stage 4).

Return type:

HolomorphicCheckResponse

Parameters:

request (HolomorphicCheckRequest)

async analytic_continuation_server.routes.laurent.laurent_invert(request)[source]

Invert z(zeta) = z_query to find zeta (Stage 5).

Return type:

InvertResponse

Parameters:

request (InvertRequest)

async analytic_continuation_server.routes.laurent.laurent_compose(request)[source]

Compute the analytic continuation A(f(B(z))) (Stage 6).

Uses the shared-parameter identity shortcut: A(f(B(z(zeta)))) = f(z(zeta)).

Return type:

CompositionResponse

Parameters:

request (CompositionRequest)

async analytic_continuation_server.routes.laurent.laurent_intrinsic_curve(request, include_raw_data=False)[source]

Analyze the intrinsic curve properties of a Laurent bijection.

Computes Cesaro and Whewell representations with complexity estimates.

Return type:

IntrinsicCurveResponse

Parameters:
async analytic_continuation_server.routes.laurent.get_webgl_render_data(request)[source]

Fit Laurent map and return all data needed for WebGL rendering.

This endpoint combines Laurent fitting and coefficient extraction.

Return type:

WebGLRenderDataResponse

Parameters:

request (WebGLRenderDataRequest)

async analytic_continuation_server.routes.laurent.get_webgl_render_data_tracked(request, background_tasks)[source]

Fit Laurent map and return WebGL data with full progress tracking.

Progress updates can be monitored via /api/session/{id}/progress/stream.

Return type:

WebGLRenderDataResponse

Parameters:

Session Routes

Session management and progress tracking API endpoints.

Provides routes for: - Session lifecycle management (start, get, end) - Progress tracking and streaming (SSE) - Session recovery and resumption - Continuation export/import

async analytic_continuation_server.routes.session.start_session(request)[source]

Start a new pipeline session.

Creates a session ID for tracking progress and recovery.

Return type:

SessionResponse

Parameters:

request (SessionStartRequest)

async analytic_continuation_server.routes.session.get_session(session_id)[source]

Get session details and current progress.

Parameters:

session_id (str)

async analytic_continuation_server.routes.session.get_session_progress(session_id)[source]

Get current progress state for a session.

Parameters:

session_id (str)

async analytic_continuation_server.routes.session.stream_session_progress(session_id, request)[source]

Stream progress updates via Server-Sent Events (SSE).

Parameters:
async analytic_continuation_server.routes.session.get_cli_progress(session_id)[source]

Get CLI-formatted progress output (checklist style).

Parameters:

session_id (str)

async analytic_continuation_server.routes.session.list_sessions(limit=20)[source]

List recent sessions.

Parameters:

limit (int)

async analytic_continuation_server.routes.session.end_session(session_id, success=True, error=None)[source]

End a session and clean up resources.

Parameters:
  • session_id (str)

  • success (bool)

  • error (str | None)

async analytic_continuation_server.routes.session.get_cached_data(session_id, cache_key)[source]

Retrieve cached computation data from a session.

Parameters:
  • session_id (str)

  • cache_key (str)

async analytic_continuation_server.routes.session.recover_session(session_id)[source]

Attempt to recover a session’s results.

Parameters:

session_id (str)

async analytic_continuation_server.routes.session.resume_session(session_id)[source]

Resume a failed or interrupted session.

Parameters:

session_id (str)

async analytic_continuation_server.routes.session.check_resumable(request)[source]

Check if there’s a previous session with matching inputs that can be resumed.

Parameters:

request (CheckResumableRequest)

async analytic_continuation_server.routes.session.resume_with_cached_data(session_id)[source]

Resume a session and return the cached result directly.

Return type:

WebGLRenderDataResponse

Parameters:

session_id (str)

async analytic_continuation_server.routes.session.get_continuation(session_id)[source]

Get the complete continuation definition for a session.

Return type:

ContinuationDefinition

Parameters:

session_id (str)

async analytic_continuation_server.routes.session.export_continuation(session_id, format='json')[source]

Export the continuation definition in various formats.

Parameters:
  • session_id (str)

  • format (str)

async analytic_continuation_server.routes.session.import_continuation(continuation)[source]

Import a continuation definition and create a new session for it.

Parameters:

continuation (ContinuationDefinition)

Converters

Model conversion utilities.

Functions to convert between Pydantic models and analytic_continuation types.

analytic_continuation_server.converters.point_model_to_point(pm)[source]

Convert PointModel to Point.

Return type:

Point

Parameters:

pm (PointModel)

analytic_continuation_server.converters.point_to_point_model(p)[source]

Convert Point to PointModel.

Return type:

PointModel

Parameters:

p (Point)

analytic_continuation_server.converters.params_model_to_params(pm)[source]

Convert TransformParamsModel to TransformParams.

Return type:

TransformParams

Parameters:

pm (TransformParamsModel)

analytic_continuation_server.converters.params_to_params_model(p)[source]

Convert TransformParams to TransformParamsModel.

Return type:

TransformParamsModel

Parameters:

p (TransformParams)

analytic_continuation_server.converters.spline_export_model_to_export(sem)[source]

Convert SplineExportModel to SplineExport.

Return type:

SplineExport

Parameters:

sem (SplineExportModel)

analytic_continuation_server.converters.spline_export_to_model(se)[source]

Convert SplineExport to SplineExportModel.

Return type:

SplineExportModel

Parameters:

se (SplineExport)

analytic_continuation_server.converters.laurent_map_model_to_result(lmm)[source]

Convert Pydantic model to LaurentMapResult.

Return type:

LaurentMapResult

Parameters:

lmm (LaurentMapModel)

analytic_continuation_server.converters.laurent_map_result_to_model(lmr)[source]

Convert LaurentMapResult to Pydantic model.

Return type:

LaurentMapModel

Parameters:

lmr (LaurentMapResult)

Code Generation

Code generation utilities.

Generates standalone Python code for evaluating analytic continuations.

analytic_continuation_server.codegen.generate_python_continuation_code(cont)[source]

Generate standalone Python code to evaluate the continuation.

Return type:

str

Parameters:

cont (ContinuationDefinition)

CLI

CLI entry point for the Analytic Continuation Server.

Provides the serve-analytic-continuation command.

Usage

Basic usage:

serve-analytic-continuation –port 8000

With custom CORS:

serve-analytic-continuation –cors-origin https://myapp.com –cors-origin https://api.myapp.com

Disable optional features:

serve-analytic-continuation –disable-domaincolor

Using a config file:

serve-analytic-continuation –config /path/to/config.json

analytic_continuation_server.cli.load_config_file(path)[source]

Load configuration from a JSON file.

Return type:

dict

Parameters:

path (str)

analytic_continuation_server.cli.main(args=None)[source]

Main entry point for the CLI.

Parameters:

args (list[str] | None)