Combonation of sensitivity run

from absbox import API,EnginePath
from absbox import Generic
from absbox.examples import test01
localAPI = API(EnginePath.DEV, lang='english', check=False)
Connecting engine server -> https://absbox.org/api/dev
/home/docs/checkouts/readthedocs.org/user_builds/absbox-doc/envs/stable/lib/python3.11/site-packages/urllib3/connectionpool.py:1097: InsecureRequestWarning: Unverified HTTPS request is being made to host 'absbox.org'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#tls-warnings
  warnings.warn(
✅Connected, local lib:0.52.3, server:0.52.3

Passing 3 maps to the runByCombo()

runAssumptionMap = {
    "DealRunA":[("call",("poolBalance",200))]
    ,"DealRunB":[("call",("poolBalance",500))]
}

poolAssumpMap = {
    "poolA": ("Pool",("Mortgage",{"CDR":0.01},None,None,None)
                                    ,None
                                    ,None),
    "poolB":  ("Pool",("Mortgage",{"CDR":0.03},None,None,None)
                                    ,None
                                    ,None)
}

r = localAPI.runByCombo({"A":test01,"B":test01}
                        ,runAssump= runAssumptionMap
                        ,poolAssump = poolAssumpMap
                        ,read=True
                        )
/home/docs/checkouts/readthedocs.org/user_builds/absbox-doc/envs/stable/lib/python3.11/site-packages/urllib3/connectionpool.py:1097: InsecureRequestWarning: Unverified HTTPS request is being made to host 'absbox.org'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#tls-warnings
  warnings.warn(
Warning Message from server for ('A', 'poolA', 'DealRunA'):Account acc01 has cash to be distributed
Outstanding pool cashflow hasn't been collected yetfromList [(PoolConsol,1)]
Warning Message from server for ('A', 'poolA', 'DealRunB'):Bond B is not paid off
Account acc01 has cash to be distributed
Outstanding pool cashflow hasn't been collected yetfromList [(PoolConsol,4)]
Warning Message from server for ('A', 'poolB', 'DealRunA'):Account acc01 has cash to be distributed
Outstanding pool cashflow hasn't been collected yetfromList [(PoolConsol,1)]
Warning Message from server for ('A', 'poolB', 'DealRunB'):Bond B is not paid off
Account acc01 has cash to be distributed
Outstanding pool cashflow hasn't been collected yetfromList [(PoolConsol,4)]
Warning Message from server for ('B', 'poolA', 'DealRunA'):Account acc01 has cash to be distributed
Outstanding pool cashflow hasn't been collected yetfromList [(PoolConsol,1)]
Warning Message from server for ('B', 'poolA', 'DealRunB'):Bond B is not paid off
Account acc01 has cash to be distributed
Outstanding pool cashflow hasn't been collected yetfromList [(PoolConsol,4)]
Warning Message from server for ('B', 'poolB', 'DealRunA'):Account acc01 has cash to be distributed
Outstanding pool cashflow hasn't been collected yetfromList [(PoolConsol,1)]
Warning Message from server for ('B', 'poolB', 'DealRunB'):Bond B is not paid off
Account acc01 has cash to be distributed
Outstanding pool cashflow hasn't been collected yetfromList [(PoolConsol,4)]

access result via a tuple

r.keys()
dict_keys([('A', 'poolA', 'DealRunA'), ('A', 'poolA', 'DealRunB'), ('A', 'poolB', 'DealRunA'), ('A', 'poolB', 'DealRunB'), ('B', 'poolA', 'DealRunA'), ('B', 'poolA', 'DealRunB'), ('B', 'poolB', 'DealRunA'), ('B', 'poolB', 'DealRunB')])
r[('A', 'poolB', 'DealRunB')]['result']['status']
Date From To Comment
0 2021-04-01 PreClosing Amortizing By Deal Close
1 2022-06-20 Amortizing Called Call by triggers before waterfall distribution
2 2022-06-20 DealEnd Clean Up
r[('A', 'poolB', 'DealRunA')]['result']['status']
Date From To Comment
0 2021-04-01 PreClosing Amortizing By Deal Close
1 2022-09-20 Amortizing Called Call by triggers before waterfall distribution
2 2022-09-20 DealEnd Clean Up