bw-essentials-core 0.1.16__py3-none-any.whl → 0.1.18__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of bw-essentials-core might be problematic. Click here for more details.
- bw_essentials/services/job_scheduler.py +3 -3
- bw_essentials/services/model_portfolio_reporting.py +30 -1
- {bw_essentials_core-0.1.16.dist-info → bw_essentials_core-0.1.18.dist-info}/METADATA +1 -1
- {bw_essentials_core-0.1.16.dist-info → bw_essentials_core-0.1.18.dist-info}/RECORD +6 -6
- {bw_essentials_core-0.1.16.dist-info → bw_essentials_core-0.1.18.dist-info}/WHEEL +0 -0
- {bw_essentials_core-0.1.16.dist-info → bw_essentials_core-0.1.18.dist-info}/top_level.txt +0 -0
|
@@ -36,11 +36,11 @@ class JobScheduler(ApiClient):
|
|
|
36
36
|
Returns:
|
|
37
37
|
dict: Headers
|
|
38
38
|
"""
|
|
39
|
-
|
|
39
|
+
self.headers.update({
|
|
40
40
|
'Content-Type': 'application/json',
|
|
41
41
|
**({'X-Tenant-ID': self.tenant_id} if self.tenant_id else {}),
|
|
42
42
|
'x-api-key': self.api_key
|
|
43
|
-
}
|
|
43
|
+
})
|
|
44
44
|
|
|
45
45
|
def process_user_profile(self, data):
|
|
46
46
|
"""
|
|
@@ -57,6 +57,6 @@ class JobScheduler(ApiClient):
|
|
|
57
57
|
None: The method does not return a value.
|
|
58
58
|
"""
|
|
59
59
|
logger.info(f"In - process_user_profile {self.user =}")
|
|
60
|
-
self.
|
|
60
|
+
self._headers()
|
|
61
61
|
self._post(url=self.base_url, endpoint=self.urls.get('process_user_profile'), json=data)
|
|
62
62
|
logger.info(f"Out - process_user_profile")
|
|
@@ -33,7 +33,8 @@ class ModelPortfolioReporting(ApiClient):
|
|
|
33
33
|
self.object = None
|
|
34
34
|
self.urls = {
|
|
35
35
|
"portfolio": "portfolio",
|
|
36
|
-
"portfolio_performance": "portfolio/%s/performance"
|
|
36
|
+
"portfolio_performance": "portfolio/%s/performance",
|
|
37
|
+
"index_performance": "index/%s/performance/"
|
|
37
38
|
}
|
|
38
39
|
self.name = Services.MODEL_PORTFOLIO.value
|
|
39
40
|
self.base_url = self.get_base_url(Services.MODEL_PORTFOLIO.value)
|
|
@@ -79,3 +80,31 @@ class ModelPortfolioReporting(ApiClient):
|
|
|
79
80
|
)
|
|
80
81
|
logger.info(f"Received response from get_portfolio_performance_by_dates: {performance}")
|
|
81
82
|
return performance.get("data")
|
|
83
|
+
|
|
84
|
+
def get_index_performance_by_dates(
|
|
85
|
+
self,
|
|
86
|
+
index: str,
|
|
87
|
+
start_date: str,
|
|
88
|
+
end_date: str
|
|
89
|
+
) -> Optional[Dict[str, Any]]:
|
|
90
|
+
"""
|
|
91
|
+
Fetch Index performance for a given date range.
|
|
92
|
+
|
|
93
|
+
Args:
|
|
94
|
+
index (str): The index identifier.
|
|
95
|
+
start_date (str): The start date for performance metrics (format: YYYY-MM-DD).
|
|
96
|
+
end_date (str): The end date for performance metrics (format: YYYY-MM-DD).
|
|
97
|
+
|
|
98
|
+
Returns:
|
|
99
|
+
dict | None: The performance data within the date range.
|
|
100
|
+
"""
|
|
101
|
+
logger.info(f"In - get_index_performance_by_dates with index={index}, start_date={start_date}, end_date={end_date}")
|
|
102
|
+
endpoint = self.urls['index_performance'] % index
|
|
103
|
+
params = {"start_date": start_date, "end_date": end_date}
|
|
104
|
+
performance = self._get(
|
|
105
|
+
url=self.base_url,
|
|
106
|
+
endpoint=endpoint,
|
|
107
|
+
params=params
|
|
108
|
+
)
|
|
109
|
+
logger.info(f"Received response from get_index_performance_by_dates: {performance}")
|
|
110
|
+
return performance.get("data")
|
|
@@ -13,10 +13,10 @@ bw_essentials/s3_utils/s3_utils.py,sha256=wzjVrTX22_8PMX86svKFYGMZwgjBHbOaeEsxO-
|
|
|
13
13
|
bw_essentials/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
14
14
|
bw_essentials/services/api_client.py,sha256=5XFbdw5gfxXz7mQlLWNC8efDrvZgAztM-Oo0Dp1jDF8,8215
|
|
15
15
|
bw_essentials/services/broker.py,sha256=W4y31K7dF4LHfQSvnAwVWfGoYKkdz-W2TXqTLhkUxn8,9348
|
|
16
|
-
bw_essentials/services/job_scheduler.py,sha256=
|
|
16
|
+
bw_essentials/services/job_scheduler.py,sha256=1fQDWBvNa3bMCm3YzlJehoS-HONUSu4_oquuBv6t0Lg,1966
|
|
17
17
|
bw_essentials/services/market_pricer.py,sha256=Qc9lxzAjhefAvjyEKsBPDu60bF6_61cnSpZNfjGMyDg,11755
|
|
18
18
|
bw_essentials/services/master_data.py,sha256=2o_r2gdhIKBeTFgn5IIY-becgCEpYBymO4BKmixdV1g,11987
|
|
19
|
-
bw_essentials/services/model_portfolio_reporting.py,sha256=
|
|
19
|
+
bw_essentials/services/model_portfolio_reporting.py,sha256=VLSvfRZOdn-nI3MtgfcqP0ZE3aTqBU0NcncLffPVtD8,4407
|
|
20
20
|
bw_essentials/services/notification.py,sha256=q4jIZzIWIHvn-XaIIbkEjjhkYUV8ZGQWUXaY4NNRFgI,5078
|
|
21
21
|
bw_essentials/services/payment.py,sha256=Em8Lvg7aX1Ga4CJDpJimyE_ByZhJZKM6W6rw2cUUIvw,1479
|
|
22
22
|
bw_essentials/services/portfolio_catalogue.py,sha256=Eal2wJd2qQB_qk2B_7u0-SwsZTN9nMsSxwgoIud845Y,7201
|
|
@@ -25,7 +25,7 @@ bw_essentials/services/trade_placement.py,sha256=PrzeU2XXC9HF1IQ1dMDM_ZHxmC491sO
|
|
|
25
25
|
bw_essentials/services/user_app.py,sha256=1z73G91TygW_MgHjkUVA2WIdN4CQjx_oSZWW6NqFit8,11774
|
|
26
26
|
bw_essentials/services/user_portfolio.py,sha256=uUQUCG8Av8eKBIw-TlNtOPpQluO9HjAkxMzzO5jfzbo,22179
|
|
27
27
|
bw_essentials/services/user_portfolio_reporting.py,sha256=pwqfW95LTiGOGufcTphljFxPlOd-G4Q263UtoQURPxM,6772
|
|
28
|
-
bw_essentials_core-0.1.
|
|
29
|
-
bw_essentials_core-0.1.
|
|
30
|
-
bw_essentials_core-0.1.
|
|
31
|
-
bw_essentials_core-0.1.
|
|
28
|
+
bw_essentials_core-0.1.18.dist-info/METADATA,sha256=7Jbm6MRXIKxsoPYYas102hfzY8VeeoueNg6Cc5ppDZ0,7502
|
|
29
|
+
bw_essentials_core-0.1.18.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
30
|
+
bw_essentials_core-0.1.18.dist-info/top_level.txt,sha256=gDc5T_y5snwKGXDQUusEus-FEt0RFwG644Yn_58wQOQ,14
|
|
31
|
+
bw_essentials_core-0.1.18.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|