from functools import _Wrapped
from typing import Any
from sympy.printing.str import StrPrinter

class requires:
    def __init__(self, **kwargs) -> None:
        ...
    
    def __call__(self, method) -> _Wrapped[..., Any, ..., Any]:
        ...
    


class AssignmentError(Exception):
    ...


class CodePrinter(StrPrinter):
    _operators = ...
    _default_settings: dict[str, Any] = ...
    _rewriteable_functions = ...
    def __init__(self, settings=...) -> None:
        ...
    
    def doprint(self, expr, assign_to=...) -> str | tuple[set[tuple[Any, str]], set[Any], str]:
        ...
    
    _print_Expr = ...
    _print_Heaviside = ...
    _print_Basic = ...
    _print_ComplexInfinity = ...
    _print_Derivative = ...
    _print_ExprCondPair = ...
    _print_GeometryEntity = ...
    _print_Infinity = ...
    _print_Integral = ...
    _print_Interval = ...
    _print_AccumulationBounds = ...
    _print_Limit = ...
    _print_MatrixBase = ...
    _print_DeferredVector = ...
    _print_NaN = ...
    _print_NegativeInfinity = ...
    _print_Order = ...
    _print_RootOf = ...
    _print_RootsOf = ...
    _print_RootSum = ...
    _print_Uniform = ...
    _print_Unit = ...
    _print_Wild = ...
    _print_WildFunction = ...
    _print_Relational = ...


def ccode(expr, assign_to=..., standard=..., **settings):
    ...

def print_ccode(expr, **settings) -> None:
    ...

def fcode(expr, assign_to=..., **settings) -> str | tuple[set[tuple[Any, str]], set[Any], str]:
    ...

def print_fcode(expr, **settings) -> None:
    ...

def cxxcode(expr, assign_to=..., standard=..., **settings):
    ...

