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.
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:
- Parameters:
request (TransformPointRequest)
- async analytic_continuation_server.routes.transform.transform_points(request)[source]
Transform multiple points between screen and logical space.
- Return type:
- 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:
- 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:
- Parameters:
bounds (ViewBoundsModel)
- async analytic_continuation_server.routes.transform.zoom(request)[source]
Apply zoom to transform parameters.
- Return type:
- Parameters:
request (ZoomRequest)
- async analytic_continuation_server.routes.transform.pan(request)[source]
Apply pan to transform parameters.
- Return type:
- 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:
- 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”: […]
}
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:
- 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:
- 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:
- 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:
- 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:
- 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:
- Parameters:
request (IntrinsicCurveRequest)
include_raw_data (bool)
- 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:
- 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:
- Parameters:
request (WebGLRenderWithProgressRequest)
background_tasks (BackgroundTasks)
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:
- 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).
- 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.
- async analytic_continuation_server.routes.session.get_cached_data(session_id, cache_key)[source]
Retrieve cached computation data from a session.
- 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:
- 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:
- Parameters:
session_id (str)
- async analytic_continuation_server.routes.session.export_continuation(session_id, format='json')[source]
Export the continuation definition in various formats.
- 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:
- 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:
- 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:
- 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)
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:
- 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