P2PySonar2demo_project/pysonar_demo/service.pyView source
pysonar_demo/service.pyStatic analysis
Orchestration, branching, and collection inference.26 definitions54 references
   1 """Application service connecting models and scoring functions."""
   2
   3 from .models import Market, Prediction, Report
   4 from .scoring import confidence_band, score_market
   5 from .strategies import AuditedMarketStrategy
   6
   7
   8 class DemoApp:
   9     def __init__(self, name: str):
  10         self.name = name
  11         self.strategy = AuditedMarketStrategy()
  12
  13     @staticmethod
  14     def build_market(payload: dict) -> Market:
  15         return Market(
  16             payload["question"],
  17             payload["yes_price"],
  18             payload["volume"],
  19         )
  20
  21     def predict(self, market: Market) -> Prediction:
  22         score = self.strategy.adjust(score_market(market))
  23         confidence = confidence_band(score)
  24         return Prediction(market, score, confidence)
  25
  26     def build_report(self, payloads: list[dict]) -> Report:
  27         predictions: list[Prediction] = []
  28         for payload in payloads:
  29             market = self.build_market(payload)
  30             predictions.append(self.predict(market))
  31
  32         title = self.name + " · " + str(len(predictions)) + " analyzed markets"
  33         return Report(title, predictions)