PyQuantimClient 2.0.23__tar.gz → 2.0.25__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.
Files changed (22) hide show
  1. {pyquantimclient-2.0.23 → pyquantimclient-2.0.25}/PKG-INFO +1 -1
  2. {pyquantimclient-2.0.23 → pyquantimclient-2.0.25}/PyQuantimClient.egg-info/PKG-INFO +1 -1
  3. {pyquantimclient-2.0.23 → pyquantimclient-2.0.25}/setup.py +1 -1
  4. {pyquantimclient-2.0.23 → pyquantimclient-2.0.25}/src/risk.py +25 -3
  5. {pyquantimclient-2.0.23 → pyquantimclient-2.0.25}/PyQuantimClient.egg-info/SOURCES.txt +0 -0
  6. {pyquantimclient-2.0.23 → pyquantimclient-2.0.25}/PyQuantimClient.egg-info/dependency_links.txt +0 -0
  7. {pyquantimclient-2.0.23 → pyquantimclient-2.0.25}/PyQuantimClient.egg-info/top_level.txt +0 -0
  8. {pyquantimclient-2.0.23 → pyquantimclient-2.0.25}/README.md +0 -0
  9. {pyquantimclient-2.0.23 → pyquantimclient-2.0.25}/setup.cfg +0 -0
  10. {pyquantimclient-2.0.23 → pyquantimclient-2.0.25}/src/__init__.py +0 -0
  11. {pyquantimclient-2.0.23 → pyquantimclient-2.0.25}/src/alm.py +0 -0
  12. {pyquantimclient-2.0.23 → pyquantimclient-2.0.25}/src/api.py +0 -0
  13. {pyquantimclient-2.0.23 → pyquantimclient-2.0.25}/src/benchmarks.py +0 -0
  14. {pyquantimclient-2.0.23 → pyquantimclient-2.0.25}/src/bi.py +0 -0
  15. {pyquantimclient-2.0.23 → pyquantimclient-2.0.25}/src/credit.py +0 -0
  16. {pyquantimclient-2.0.23 → pyquantimclient-2.0.25}/src/data.py +0 -0
  17. {pyquantimclient-2.0.23 → pyquantimclient-2.0.25}/src/energy.py +0 -0
  18. {pyquantimclient-2.0.23 → pyquantimclient-2.0.25}/src/performance.py +0 -0
  19. {pyquantimclient-2.0.23 → pyquantimclient-2.0.25}/src/portfolios.py +0 -0
  20. {pyquantimclient-2.0.23 → pyquantimclient-2.0.25}/src/preprocess_co.py +0 -0
  21. {pyquantimclient-2.0.23 → pyquantimclient-2.0.25}/src/returns.py +0 -0
  22. {pyquantimclient-2.0.23 → pyquantimclient-2.0.25}/src/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: PyQuantimClient
3
- Version: 2.0.23
3
+ Version: 2.0.25
4
4
  Summary: Python client to access quantIM services
5
5
  Author: Daniel Velasquez
6
6
  Author-email: daniel.velasquez@sura-im.com
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: PyQuantimClient
3
- Version: 2.0.23
3
+ Version: 2.0.25
4
4
  Summary: Python client to access quantIM services
5
5
  Author: Daniel Velasquez
6
6
  Author-email: daniel.velasquez@sura-im.com
@@ -4,7 +4,7 @@ setup(
4
4
  name='PyQuantimClient',
5
5
  packages=['PyQuantimClient'],
6
6
  package_dir={'PyQuantimClient': 'src'},
7
- version='2.0.23',
7
+ version='2.0.25',
8
8
  description='Python client to access quantIM services',
9
9
  author='Daniel Velasquez',
10
10
  author_email='daniel.velasquez@sura-im.com',
@@ -80,11 +80,9 @@ class risk_data(quantim):
80
80
 
81
81
  '''
82
82
  if new_oper is not False:
83
- cols=['type', 'secDesc1', 'isin', 'assetId', 'issuerId', 'issuerLongName', 'ccy', 'duration', 'avgRating', 'ratingType', 'SIM_SECTOR', 'linkedEntity', 'quantity', 'mktValue', 'maturity']
83
+ cols=['type', 'secDesc1', 'counterparty', 'isin', 'assetId', 'issuerId', 'issuerLongName', 'ccy', 'duration', 'avgRating', 'ratingType', 'SIM_SECTOR', 'linkedEntity', 'quantity', 'mktValue', 'maturity']
84
84
  if not set(cols).issubset(new_oper.columns):
85
85
  raise ValueError(f"Las nuevas operaciones deben contener la siguiente informacion: {cols}. Por favor revisar")
86
- else:
87
- new_oper = new_oper[cols]
88
86
  if not set(new_oper["type"].unique()).issubset({"BUY", "SELL"}):
89
87
  raise ValueError("La columna type unicamente recibe los valores 'BUY' o 'SELL'.")
90
88
  new_oper=new_oper.to_dict(orient="records")
@@ -100,6 +98,30 @@ class risk_data(quantim):
100
98
  limites_detalle = pd.DataFrame(resp['detail'])
101
99
  return limites_resumen, portfolio, limites_detalle
102
100
  return limites_resumen, portfolio
101
+
102
+ def pretrade_register_ops(self, portfolioName, new_data, subgroup=False, sep= '|'):
103
+ '''
104
+ Append new opers to pretrade
105
+
106
+ '''
107
+ if not subgroup:
108
+ subgroup = portfolioName
109
+ cols=['type', 'secDesc1', 'counterparty', 'isin', 'assetId', 'issuerId', 'issuerLongName', 'ccy', 'duration', 'avgRating', 'ratingType', 'SIM_SECTOR', 'linkedEntity', 'quantity', 'mktValue', 'maturity']
110
+ missing_cols = set(cols) - set(new_data.columns)
111
+ if missing_cols:
112
+ raise ValueError(f"Las nuevas operaciones deben contener las siguientes columnas faltantes: {missing_cols}. Por favor revisar.")
113
+ if not set(new_data["type"].unique()).issubset({"BUY", "SELL"}):
114
+ raise ValueError("La columna type unicamente recibe los valores 'BUY' o 'SELL'.")
115
+ if not set(["portfolioName","subGroup"]).issubset(new_data.columns):
116
+ new_data["portfolioName"],new_data["subGroup"]=portfolioName,subgroup
117
+ new_data = new_data[["portfolioName","subGroup"]+cols]
118
+ new_data["registered"]=True
119
+ new_data=new_data.to_dict(orient="records")
120
+ fecha=dt.date.today().strftime("%Y/%m/%d")
121
+ data = {'bucket': 'condor-sura', 'key': f'output/pretrade/CO/trades/{fecha}/trades.csv', 'sep': sep, 'new_data': new_data}
122
+ resp = self.api_call('append_data', method="post", data=data, verify=False)
123
+ msg=resp["msg"]
124
+ return msg
103
125
 
104
126
  def get_cashflows(self, client_id=None, port_type=None):
105
127
  '''