API Reference

system_design.juryTestTool.cli

Command-line interface for system_design.juryTestTool.

The CLI preserves the original Jury-test workflow while adding a sphinx-skel helper for GitHub Pages friendly Sphinx documentation.

Historical usage is preserved:

python -m system_design.juryTestTool.cli –coeffs “1, -1.2, 0.07” python -m system_design.juryTestTool.cli run –coeffs “1, -1.2, 0.07” python -m system_design.juryTestTool.cli sphinx-skel docs/juryTestTool –force

system_design.juryTestTool.cli.build_parser()[source]

Build the command-line parser.

Return type:

ArgumentParser

system_design.juryTestTool.cli.main(argv=None)[source]

Run the juryTestTool command-line interface.

Parameters:

argv (list[str] | None)

Return type:

int

system_design.juryTestTool.apis

class system_design.juryTestTool.apis.MethodResult(verdict: 'str', details: 'Dict[str, Any]' = <factory>)[source]

Bases: object

Parameters:
  • verdict (str)

  • details (Dict[str, Any])

details: Dict[str, Any]
verdict: str
class system_design.juryTestTool.apis.RunRequest(coeffs: 'Optional[str]' = None, json_in: 'Optional[str]' = None, method: 'Method' = 'jury', solve_range: 'bool' = False, eval_K: 'Optional[float]' = None, T: 'Optional[float]' = None, rational: 'bool' = False, abs_tol: 'float' = 1e-10, rel_tol: 'float' = 1e-09, unit_tol: 'float' = 2e-06, save_table: 'Optional[str]' = None, save_json: 'Optional[str]' = None)[source]

Bases: object

Parameters:
  • coeffs (str | None)

  • json_in (str | None)

  • method (Literal['jury', 'schur', 'bilinear', 'all'])

  • solve_range (bool)

  • eval_K (float | None)

  • T (float | None)

  • rational (bool)

  • abs_tol (float)

  • rel_tol (float)

  • unit_tol (float)

  • save_table (str | None)

  • save_json (str | None)

T: float | None = None
abs_tol: float = 1e-10
coeffs: str | None = None
eval_K: float | None = None
json_in: str | None = None
method: Literal['jury', 'schur', 'bilinear', 'all'] = 'jury'
rational: bool = False
rel_tol: float = 1e-09
save_json: str | None = None
save_table: str | None = None
solve_range: bool = False
unit_tol: float = 2e-06
class system_design.juryTestTool.apis.RunResult(order: 'int', polynomial: 'str', coeffs_high_to_const: 'List[str]', parameter: 'Optional[str]', methods: 'Dict[str, MethodResult]', eval_summary: 'Optional[Dict[str, Any]]' = None)[source]

Bases: object

Parameters:
  • order (int)

  • polynomial (str)

  • coeffs_high_to_const (List[str])

  • parameter (str | None)

  • methods (Dict[str, MethodResult])

  • eval_summary (Dict[str, Any] | None)

coeffs_high_to_const: List[str]
eval_summary: Dict[str, Any] | None = None
methods: Dict[str, MethodResult]
order: int
parameter: str | None
polynomial: str

system_design.juryTestTool.app

class system_design.juryTestTool.app.JuryTestApp[source]

Bases: object

run(req)[source]
Parameters:

req (RunRequest)

Return type:

RunResult

system_design.juryTestTool.core

class system_design.juryTestTool.core.Tolerances(abs_tol: 'float' = 1e-10, rel_tol: 'float' = 1e-09, unit_tol: 'float' = 2e-06)[source]

Bases: object

Parameters:
  • abs_tol (float)

  • rel_tol (float)

  • unit_tol (float)

abs_tol: float = 1e-10
rel_tol: float = 1e-09
unit_tol: float = 2e-06
system_design.juryTestTool.core.any_radius_on_unit_circle(radii, tols)[source]
Parameters:
Return type:

bool

system_design.juryTestTool.core.bilinear_Q_from_coeffs(a_fwd, w)[source]
Parameters:
  • a_fwd (List[sympy.Expr])

  • w (sympy.Symbol)

Return type:

sympy.Expr

system_design.juryTestTool.core.build_next_layer(v_fwd)[source]
Parameters:

v_fwd (List[sympy.Expr])

Return type:

List[sympy.Expr]

system_design.juryTestTool.core.compute_roots(a_fwd, subs)[source]
Parameters:
  • a_fwd (List[sympy.Expr])

  • subs (Dict[sympy.Symbol, float])

Return type:

List[complex]

system_design.juryTestTool.core.jury_inequalities(P, a_fwd, z)[source]
Parameters:
  • P (sympy.Expr)

  • a_fwd (List[sympy.Expr])

  • z (sympy.Symbol)

Return type:

Tuple[List[sympy.core.relational.Relational], List[str]]

system_design.juryTestTool.core.jury_table_vectors(a_fwd)[source]
Parameters:

a_fwd (List[sympy.Expr])

Return type:

List[Tuple[str, List[sympy.Expr], List[sympy.Expr]]]

system_design.juryTestTool.core.poly_coeffs_desc(poly, var)[source]
Parameters:
  • poly (sympy.Expr)

  • var (sympy.Symbol)

Return type:

List[sympy.Expr]

system_design.juryTestTool.core.print_conditions(ineqs, labels, subs, tols)[source]
Parameters:
  • ineqs (List[sympy.core.relational.Relational])

  • labels (List[str])

  • subs (Dict[sympy.Symbol, float] | None)

  • tols (Tolerances)

system_design.juryTestTool.core.reduce_and_solve(ineqs, param)[source]
Parameters:
  • ineqs (List[sympy.core.relational.Relational])

  • param (sympy.Symbol | None)

Return type:

sympy.Set | None

system_design.juryTestTool.core.routh_array(coeffs_desc)[source]
Parameters:

coeffs_desc (List[sympy.Expr])

Return type:

List[List[sympy.Expr]]

system_design.juryTestTool.core.routh_first_column_inequalities(arr)[source]
Parameters:

arr (List[List[sympy.Expr]])

system_design.juryTestTool.core.schur_inequalities(P, a_fwd, z)[source]
Parameters:
  • P (sympy.Expr)

  • a_fwd (List[sympy.Expr])

  • z (sympy.Symbol)

system_design.juryTestTool.core.schur_reflection_coeffs(a_fwd)[source]
Parameters:

a_fwd (List[sympy.Expr])

system_design.juryTestTool.core.verdict_from(all_true, any_equal)[source]
Parameters:
  • all_true (bool | None)

  • any_equal (bool | None)

Return type:

str | None

system_design.juryTestTool.io

system_design.juryTestTool.io.dump_json(obj, name)[source]
Parameters:
  • obj (Dict[str, Any])

  • name (str)

Return type:

str

system_design.juryTestTool.io.dump_table(text, name)[source]
Parameters:
  • text (str)

  • name (str)

Return type:

str

system_design.juryTestTool.io.load_from_json(json_name, rational)[source]
Parameters:
  • json_name (str)

  • rational (bool)

system_design.juryTestTool.io.parse_token(tok, var, K, rational)[source]
Parameters:
  • tok (str)

  • var (sympy.Symbol)

  • K (sympy.Symbol | None)

  • rational (bool)

Return type:

sympy.Expr

system_design.juryTestTool.io.poly_from_coeffs(coeffs, var_name='z', param_name=None, rational=False)[source]

Returns: (z, K, P, a_fwd) where a_fwd are a0..an (high->const)

Parameters:
  • coeffs (List[str])

  • param_name (str | None)

system_design.juryTestTool.utils

system_design.juryTestTool.utils.banner(title)[source]
Parameters:

title (str)

Return type:

str

system_design.juryTestTool.utils.dataclass_repr(cls)[source]

Prettier __repr__ for dataclasses (field=value, …).

system_design.juryTestTool.utils.ensure_numeric_tols(fn)[source]
Parameters:

fn (Callable[[...], Any])

Return type:

Callable[[…], Any]

system_design.juryTestTool.utils.fmt_row(label, vec, width=12)[source]
Parameters:
  • label (str)

  • vec (List[sympy.Expr])

  • width (int)

Return type:

str

system_design.juryTestTool.utils.fmt_vec(vec)[source]
Parameters:

vec (List[sympy.Expr])

Return type:

str

system_design.juryTestTool.utils.in_path(name)[source]
Parameters:

name (str)

Return type:

Path

system_design.juryTestTool.utils.out_path(name)[source]
Parameters:

name (str)

Return type:

Path

system_design.juryTestTool.utils.sstr(x)[source]
Return type:

str

system_design.juryTestTool.design

class system_design.juryTestTool.design.EvalSummary(K: 'float', roots: 'List[List[float]]', radii: 'List[float]', omega_d: 'Optional[float]' = None)[source]

Bases: object

Parameters:
  • K (float)

  • roots (List[List[float]])

  • radii (List[float])

  • omega_d (float | None)

K: float
omega_d: float | None = None
radii: List[float]
roots: List[List[float]]
class system_design.juryTestTool.design.MethodText(ascii: 'str', verdict: 'str')[source]

Bases: object

Parameters:
  • ascii (str)

  • verdict (str)

ascii: str
verdict: str
class system_design.juryTestTool.design.StabilityDesigner(tols)[source]

Bases: object

Parameters:

tols (Tolerances)

run_methods(method, P, a_fwd, z, K, subs_eval, solve_range, T)[source]
Parameters:
  • method (str)

  • solve_range (bool)

  • T (float | None)