bw-essentials-core 0.1.16__tar.gz → 0.1.18__tar.gz

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.

Files changed (36) hide show
  1. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/PKG-INFO +1 -1
  2. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/bw_essentials/services/job_scheduler.py +3 -3
  3. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/bw_essentials/services/model_portfolio_reporting.py +30 -1
  4. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/bw_essentials_core.egg-info/PKG-INFO +1 -1
  5. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/setup.py +1 -1
  6. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/README.md +0 -0
  7. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/bw_essentials/__init__.py +0 -0
  8. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/bw_essentials/constants/__init__.py +0 -0
  9. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/bw_essentials/constants/services.py +0 -0
  10. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/bw_essentials/data_loch/__init__.py +0 -0
  11. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/bw_essentials/data_loch/data_loch.py +0 -0
  12. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/bw_essentials/email_client/__init__.py +0 -0
  13. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/bw_essentials/email_client/email_client.py +0 -0
  14. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/bw_essentials/notifications/__init__.py +0 -0
  15. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/bw_essentials/notifications/teams_notification_schemas.py +0 -0
  16. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/bw_essentials/notifications/teams_notifications.py +0 -0
  17. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/bw_essentials/s3_utils/__init__.py +0 -0
  18. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/bw_essentials/s3_utils/s3_utils.py +0 -0
  19. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/bw_essentials/services/__init__.py +0 -0
  20. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/bw_essentials/services/api_client.py +0 -0
  21. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/bw_essentials/services/broker.py +0 -0
  22. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/bw_essentials/services/market_pricer.py +0 -0
  23. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/bw_essentials/services/master_data.py +0 -0
  24. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/bw_essentials/services/notification.py +0 -0
  25. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/bw_essentials/services/payment.py +0 -0
  26. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/bw_essentials/services/portfolio_catalogue.py +0 -0
  27. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/bw_essentials/services/portfolio_content.py +0 -0
  28. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/bw_essentials/services/trade_placement.py +0 -0
  29. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/bw_essentials/services/user_app.py +0 -0
  30. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/bw_essentials/services/user_portfolio.py +0 -0
  31. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/bw_essentials/services/user_portfolio_reporting.py +0 -0
  32. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/bw_essentials_core.egg-info/SOURCES.txt +0 -0
  33. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/bw_essentials_core.egg-info/dependency_links.txt +0 -0
  34. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/bw_essentials_core.egg-info/requires.txt +0 -0
  35. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/bw_essentials_core.egg-info/top_level.txt +0 -0
  36. {bw_essentials_core-0.1.16 → bw_essentials_core-0.1.18}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bw-essentials-core
3
- Version: 0.1.16
3
+ Version: 0.1.18
4
4
  Summary: Reusable utilities for S3, email, Data Loch, Microsoft Teams Notifications and more.
5
5
  Author: InvestorAI
6
6
  Author-email: support+tech@investorai.in
@@ -36,11 +36,11 @@ class JobScheduler(ApiClient):
36
36
  Returns:
37
37
  dict: Headers
38
38
  """
39
- return {
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.headers = self._headers()
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")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bw-essentials-core
3
- Version: 0.1.16
3
+ Version: 0.1.18
4
4
  Summary: Reusable utilities for S3, email, Data Loch, Microsoft Teams Notifications and more.
5
5
  Author: InvestorAI
6
6
  Author-email: support+tech@investorai.in
@@ -10,7 +10,7 @@ from setuptools import setup, find_packages
10
10
 
11
11
  setup(
12
12
  name="bw-essentials-core",
13
- version="0.1.16",
13
+ version="0.1.18",
14
14
  author="InvestorAI",
15
15
  author_email="support+tech@investorai.in",
16
16
  description="Reusable utilities for S3, email, Data Loch, Microsoft Teams Notifications and more.",