Internal Classes

These classes are almost never necessary for users to interact with, but are documented here for completeness.

class starlord.model_builder.DeferredResolver

Resolves the dependencies of variables specified like “d.grid.foo”, including user overrides, indexing (for multiple grid interpolations), and blending. It can optionally generate the required code_generator components and produce a log file of the solution.

__init__(user_map, multiplicity={}, verbose=False, fancy_text=False)
Parameters:
  • user_map (dict[str, str])

  • multiplicity (dict[str, int])

static extract_deferred(source, index='')

Extracts grid names from the source string and replaces them with deferred variables.

Parameters:
  • source (str)

  • index (str)

Return type:

Tuple[List[str], str]

push_components(target)
Parameters:

target (ModelBuilder)

Return type:

None

render_graph(filename)

Render the dependency graph for deferred variables with graphviz.

resolve_all(dvars)
Parameters:

dvars (set[str])

Return type:

None

resolve_recursive(dvar)
Parameters:

dvar (Match[str])

Return type:

str

find_indexed_vars = re.compile('(?<!\\w)([pcl])\\.([a-zA-Z_]\\w*)(?:--(\\w+))?')
find_input_deferred = re.compile('(?<!\\w)d(?:\\.([a-zA-Z_]\\w+))?\\.([a-zA-Z1-9]\\w*)(?:--([a-z\\d]+))?')
find_keys_deferred = re.compile('{(?:(\\w+?)__)?(\\w+)(?:--([a-z\\d]+))?}')
property txt: _TextFormatCodes_
class starlord.CodeGenerator

A class for generated log_likelihood, log_prior, and prior_ppf functions for use in MCMC fitting.

__init__(optional_likelihood_terms=False, verbose=False, fancy_text=False)
Parameters:

verbose (bool)

assign(var, expr)
Parameters:
  • var (str)

  • expr (str)

Return type:

None

compile()
Return type:

ModuleType

constraint(var, dist, params)
Parameters:
  • var (str)

  • dist (str)

  • params (list[str | float])

Return type:

None

expression(expr)

Specify a general expression to add to the code. Assignments and variables used will be automatically detected so long as they are formatted properly (see CodeGenerator doc)

Parameters:

expr (str)

Return type:

None

static fancy_print(source, txt)
generate()
Return type:

str

generate_forward_model()
Return type:

str

generate_log_like()
Return type:

str

generate_log_prior()
Return type:

str

generate_prior_ppf()
Return type:

str

prior(var, dist, params)
Parameters:
  • var (str | Symb)

  • dist (str)

  • params (list[str | float | Symb])

summary(fancy=False)
Return type:

str

property constants: tuple[Symb]
property locals: tuple[Symb]
property mapping: dict[str, str]
property params: tuple[Symb]
property txt: _TextFormatCodes_
property variables: VarCache
class starlord.code_components.Component

Represents a section of code for CodeGenerator.

__init__(requires, provides, code)
Parameters:
  • requires (set[Symb])

  • provides (set[Symb])

  • code (str)

Return type:

None

display()
Return type:

str

generate_code()
Return type:

str

code: str
provides: set[Symb]
requires: set[Symb]
class starlord.code_components.AssignmentComponent

AssignmentComponent(requires: ‘set[Symb]’, provides: ‘set[Symb]’, code: ‘str’)

__init__(requires, provides, code)
Parameters:
  • requires (set[Symb])

  • provides (set[Symb])

  • code (str)

Return type:

None

classmethod create(var, expr, requires)
Parameters:
  • var (Symb)

  • expr (str)

  • requires (set[Symb])

display()
Return type:

str

generate_code()
Return type:

str

class starlord.code_components.DistributionComponent

DistributionComponent(requires: ‘set[Symb]’, provides: ‘set[Symb]’, code: ‘str’, params: ‘list[str]’, var: ‘Symb’)

__init__(requires, provides, code, params, var)
Parameters:
  • requires (set[Symb])

  • provides (set[Symb])

  • code (str)

  • params (list[str])

  • var (Symb)

Return type:

None

classmethod create(var, dist, params)
Parameters:
  • var (str | Symb)

  • dist (str)

  • params (list[str | float | Symb])

display()
Return type:

str

generate_code()
Return type:

str

params: list[str]
var: Symb
class starlord.code_components.Prior

Prior(vars: ‘list[Symb]’, code_ppf: ‘str’, code_pdf: ‘str’, params: ‘list[Symb]’, distribution: ‘str’)

__init__(vars, code_ppf, code_pdf, params, distribution)
Parameters:
  • vars (list[Symb])

  • code_ppf (str)

  • code_pdf (str)

  • params (list[Symb])

  • distribution (str)

Return type:

None

classmethod create(var, dist, params)
Parameters:
  • var (str | Symb)

  • dist (str)

  • params (list[str | float | Symb])

display()
Return type:

str

generate_pdf()
Return type:

str

generate_ppf()
Return type:

str

code_pdf: str
code_ppf: str
distribution: str
params: list[Symb]
property provides: set[Symb]
property requires: set[Symb]
vars: list[Symb]
class starlord.code_components.Symb

Represents a single symbol or constant in the code generator.

static __new__(cls, source)
Parameters:

source (str | float | int)

Return type:

Symb

property bracketed: str
property is_literal: bool
property label: str
property name: str
property var: str