femic.fansier_workflow

The femic.fansier_workflow module composes FEMIC’s tracked FAN$IER seams into higher-level one-command workflows.

Current responsibilities include:

This is the convenience composition layer over the two proven primitive seams:

  • batch extraction; then

  • normalization/parsing.

It should stay thin. If behavior changes are needed at the GUI-driving or report-parsing boundaries, those belong in the runtime or reporting modules, not in this wrapper.

Primary entry point

  • run_fansier_batch_and_parse()

See also:

Higher-level FAN$IER extraction workflows built from tracked seams.

class femic.fansier_workflow.FansierBatchParseWorkflowResult(batch_result, parse_result)[source]

Bases: object

Outputs from one FAN$IER batch-run plus parse workflow.

Parameters:
batch_result: FansierBatchRunResult
parse_result: FansierBatchParseResult
exception femic.fansier_workflow.FansierWorkflowError[source]

Bases: RuntimeError

Raised when a composed FAN$IER workflow cannot be completed.

femic.fansier_workflow.run_fansier_batch_and_parse(*, rgm_path, out_dir, log_dir, run_id, parsed_out_dir=PosixPath('tipsy_io/logs/fansier_parsed'), fansier_exe_path, discount_name, discount_dis_path, report_type, long_report, product_cols, activity_cols, select_all_products, select_all_ages, product_name, age_name)[source]

Run unattended FAN$IER extraction, then normalize the resulting text reports.

Parameters:
  • rgm_path (Path)

  • out_dir (Path)

  • log_dir (Path)

  • run_id (str)

  • parsed_out_dir (Path)

  • fansier_exe_path (Path)

  • discount_name (str)

  • discount_dis_path (Path | None)

  • report_type (str)

  • long_report (bool)

  • product_cols (bool)

  • activity_cols (bool)

  • select_all_products (bool)

  • select_all_ages (bool)

  • product_name (str)

  • age_name (str)

Return type:

FansierBatchParseWorkflowResult