PyQuantimClient 2.0.22__tar.gz → 2.0.24__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.22 → pyquantimclient-2.0.24}/PKG-INFO +1 -1
  2. {pyquantimclient-2.0.22 → pyquantimclient-2.0.24}/PyQuantimClient.egg-info/PKG-INFO +1 -1
  3. {pyquantimclient-2.0.22 → pyquantimclient-2.0.24}/setup.py +1 -1
  4. {pyquantimclient-2.0.22 → pyquantimclient-2.0.24}/src/risk.py +33 -6
  5. {pyquantimclient-2.0.22 → pyquantimclient-2.0.24}/PyQuantimClient.egg-info/SOURCES.txt +0 -0
  6. {pyquantimclient-2.0.22 → pyquantimclient-2.0.24}/PyQuantimClient.egg-info/dependency_links.txt +0 -0
  7. {pyquantimclient-2.0.22 → pyquantimclient-2.0.24}/PyQuantimClient.egg-info/top_level.txt +0 -0
  8. {pyquantimclient-2.0.22 → pyquantimclient-2.0.24}/README.md +0 -0
  9. {pyquantimclient-2.0.22 → pyquantimclient-2.0.24}/setup.cfg +0 -0
  10. {pyquantimclient-2.0.22 → pyquantimclient-2.0.24}/src/__init__.py +0 -0
  11. {pyquantimclient-2.0.22 → pyquantimclient-2.0.24}/src/alm.py +0 -0
  12. {pyquantimclient-2.0.22 → pyquantimclient-2.0.24}/src/api.py +0 -0
  13. {pyquantimclient-2.0.22 → pyquantimclient-2.0.24}/src/benchmarks.py +0 -0
  14. {pyquantimclient-2.0.22 → pyquantimclient-2.0.24}/src/bi.py +0 -0
  15. {pyquantimclient-2.0.22 → pyquantimclient-2.0.24}/src/credit.py +0 -0
  16. {pyquantimclient-2.0.22 → pyquantimclient-2.0.24}/src/data.py +0 -0
  17. {pyquantimclient-2.0.22 → pyquantimclient-2.0.24}/src/energy.py +0 -0
  18. {pyquantimclient-2.0.22 → pyquantimclient-2.0.24}/src/performance.py +0 -0
  19. {pyquantimclient-2.0.22 → pyquantimclient-2.0.24}/src/portfolios.py +0 -0
  20. {pyquantimclient-2.0.22 → pyquantimclient-2.0.24}/src/preprocess_co.py +0 -0
  21. {pyquantimclient-2.0.22 → pyquantimclient-2.0.24}/src/returns.py +0 -0
  22. {pyquantimclient-2.0.22 → pyquantimclient-2.0.24}/src/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: PyQuantimClient
3
- Version: 2.0.22
3
+ Version: 2.0.24
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.22
3
+ Version: 2.0.24
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.22',
7
+ version='2.0.24',
8
8
  description='Python client to access quantIM services',
9
9
  author='Daniel Velasquez',
10
10
  author_email='daniel.velasquez@sura-im.com',
@@ -80,7 +80,7 @@ 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
86
  else:
@@ -100,6 +100,30 @@ class risk_data(quantim):
100
100
  limites_detalle = pd.DataFrame(resp['detail'])
101
101
  return limites_resumen, portfolio, limites_detalle
102
102
  return limites_resumen, portfolio
103
+
104
+ def pretrade_register_ops(self, portfolioName, new_data, subgroup=False, sep= '|'):
105
+ '''
106
+ Append new opers to pretrade
107
+
108
+ '''
109
+ if not subgroup:
110
+ subgroup = portfolioName
111
+ cols=['type', 'secDesc1', 'counterparty', 'isin', 'assetId', 'issuerId', 'issuerLongName', 'ccy', 'duration', 'avgRating', 'ratingType', 'SIM_SECTOR', 'linkedEntity', 'quantity', 'mktValue', 'maturity']
112
+ missing_cols = set(cols) - set(new_data.columns)
113
+ if missing_cols:
114
+ raise ValueError(f"Las nuevas operaciones deben contener las siguientes columnas faltantes: {missing_cols}. Por favor revisar.")
115
+ if not set(new_data["type"].unique()).issubset({"BUY", "SELL"}):
116
+ raise ValueError("La columna type unicamente recibe los valores 'BUY' o 'SELL'.")
117
+ if not set(["portfolioName","subGroup"]).issubset(new_data.columns):
118
+ new_data["portfolioName"],new_data["subGroup"]=portfolioName,subgroup
119
+ new_data = new_data[["portfolioName","subGroup"]+cols]
120
+ new_data["registered"]=True
121
+ new_data=new_data.to_dict(orient="records")
122
+ fecha=dt.date.today().strftime("%Y/%m/%d")
123
+ data = {'bucket': 'condor-sura', 'key': f'output/pretrade/CO/trades/{fecha}/trades.csv', 'sep': sep, 'new_data': new_data}
124
+ resp = self.api_call('append_data', method="post", data=data, verify=False)
125
+ msg=resp["msg"]
126
+ return msg
103
127
 
104
128
  def get_cashflows(self, client_id=None, port_type=None):
105
129
  '''
@@ -157,16 +181,19 @@ class risk_data(quantim):
157
181
  resp = self.upload_with_presigned_url(file_path, "condor-sura", f"inputs/risk/static/{filename}")
158
182
  return resp
159
183
 
160
- def load_vu_pas(self, file_path):
184
+ def load_pretrade_inputs(self, file_path):
161
185
  '''
162
- Load PAs prices to s3.
186
+ Load pretrade inputs prices to s3.
163
187
  '''
164
188
  # Validate filename:
165
189
  filename = file_path.split('/')[-1]
166
- if filename != 'BD_PAS.csv':
167
- raise ValueError('You can only load a file named BD_PAS.csv. Please check file name and extension.')
190
+ if filename.split('.')[-1]!='csv':
191
+ raise ValueError('Extension must be csv. Please check file.')
192
+ if not np.any(np.in1d(filename.split('.')[-2], ['cupos_contrapartes', 'emisores', 'liq_min'])):
193
+ raise ValueError('You can only load cupos_contrapartes.csv, emisores.csv or liq_min.csv. Please check file name.')
194
+
168
195
 
169
- resp = self.upload_with_presigned_url(file_path, "condor-sura", f"inputs/portfolios/nav/CO/{filename}")
196
+ resp = self.upload_with_presigned_url(file_path, "condor-sura", f"inputs/pretrade/CO/{filename}")
170
197
  return resp
171
198
 
172
199
  def get_irl(self, ref_date=None, return_cfs=False):