Weighted scoring from JSON participation data, configurable via config.yaml. Includes living architecture docs and ADRs from day one so the reasoning behind every direction is traceable from the first commit. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
24 lines
666 B
Python
24 lines
666 B
Python
import argparse
|
|
import yaml
|
|
from src.scoring.aggregate import compute_agency
|
|
from src.outputs.table import print_table
|
|
|
|
|
|
def load_config(path):
|
|
with open(path) as f:
|
|
return yaml.safe_load(f)
|
|
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser(description="Agency Signal System")
|
|
parser.add_argument("--data", default="data/sample.json", help="Path to participation data")
|
|
parser.add_argument("--config", default="config.yaml", help="Path to config file")
|
|
args = parser.parse_args()
|
|
|
|
config = load_config(args.config)
|
|
scores = compute_agency(args.data, config["weights"])
|
|
print_table(scores)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|