PyQuantimClient 2.0.45__tar.gz → 2.0.47__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 (23) hide show
  1. {pyquantimclient-2.0.45 → pyquantimclient-2.0.47}/PKG-INFO +1 -1
  2. {pyquantimclient-2.0.45 → pyquantimclient-2.0.47}/PyQuantimClient.egg-info/PKG-INFO +1 -1
  3. {pyquantimclient-2.0.45 → pyquantimclient-2.0.47}/setup.py +1 -1
  4. {pyquantimclient-2.0.45 → pyquantimclient-2.0.47}/src/risk.py +37 -10
  5. {pyquantimclient-2.0.45 → pyquantimclient-2.0.47}/PyQuantimClient.egg-info/SOURCES.txt +0 -0
  6. {pyquantimclient-2.0.45 → pyquantimclient-2.0.47}/PyQuantimClient.egg-info/dependency_links.txt +0 -0
  7. {pyquantimclient-2.0.45 → pyquantimclient-2.0.47}/PyQuantimClient.egg-info/top_level.txt +0 -0
  8. {pyquantimclient-2.0.45 → pyquantimclient-2.0.47}/README.md +0 -0
  9. {pyquantimclient-2.0.45 → pyquantimclient-2.0.47}/setup.cfg +0 -0
  10. {pyquantimclient-2.0.45 → pyquantimclient-2.0.47}/src/__init__.py +0 -0
  11. {pyquantimclient-2.0.45 → pyquantimclient-2.0.47}/src/alm.py +0 -0
  12. {pyquantimclient-2.0.45 → pyquantimclient-2.0.47}/src/api.py +0 -0
  13. {pyquantimclient-2.0.45 → pyquantimclient-2.0.47}/src/benchmarks.py +0 -0
  14. {pyquantimclient-2.0.45 → pyquantimclient-2.0.47}/src/bi.py +0 -0
  15. {pyquantimclient-2.0.45 → pyquantimclient-2.0.47}/src/credit.py +0 -0
  16. {pyquantimclient-2.0.45 → pyquantimclient-2.0.47}/src/data.py +0 -0
  17. {pyquantimclient-2.0.45 → pyquantimclient-2.0.47}/src/energy.py +0 -0
  18. {pyquantimclient-2.0.45 → pyquantimclient-2.0.47}/src/performance.py +0 -0
  19. {pyquantimclient-2.0.45 → pyquantimclient-2.0.47}/src/portfolios.py +0 -0
  20. {pyquantimclient-2.0.45 → pyquantimclient-2.0.47}/src/preprocess_co.py +0 -0
  21. {pyquantimclient-2.0.45 → pyquantimclient-2.0.47}/src/private_debt.py +0 -0
  22. {pyquantimclient-2.0.45 → pyquantimclient-2.0.47}/src/returns.py +0 -0
  23. {pyquantimclient-2.0.45 → pyquantimclient-2.0.47}/src/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyQuantimClient
3
- Version: 2.0.45
3
+ Version: 2.0.47
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.4
2
2
  Name: PyQuantimClient
3
- Version: 2.0.45
3
+ Version: 2.0.47
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.45',
7
+ version='2.0.47',
8
8
  description='Python client to access quantIM services',
9
9
  author='Daniel Velasquez',
10
10
  author_email='daniel.velasquez@sura-im.com',
@@ -61,6 +61,32 @@ class risk_data(quantim):
61
61
  except:
62
62
  raise ValueError("Error: No se ha podido iniciar el proceso de límites o ya existe una ejecución en curso. Intente de nuevo en algunos minutos.")
63
63
  return resp
64
+
65
+ def run_var(self):
66
+ '''
67
+ Run var colombia.
68
+ '''
69
+ data = {'jobname':'job_var_co'}
70
+ try:
71
+ resp = self.api_call('run_glue_job', method="post", data=data, verify=False)
72
+ msg = "La ejecucion del var formato 438 se ha activado exitosamente!" if resp['status']=='RUNNING' else "Error: No se ha podido iniciar el proceso de var formato 438 o ya existe una ejecución en curso. Intente de nuevo en algunos minutos."
73
+ print(msg)
74
+ except:
75
+ raise ValueError("Error: No se ha podido iniciar el proceso de var formato 438 o ya existe una ejecución en curso. Intente de nuevo en algunos minutos.")
76
+ return None
77
+
78
+ def run_var_386(self):
79
+ '''
80
+ Run var colombia.
81
+ '''
82
+ data = {'jobname':'job_var_386_co'}
83
+ try:
84
+ resp = self.api_call('run_glue_job', method="post", data=data, verify=False)
85
+ msg = "La ejecucion del var formato 386 se ha activado exitosamente!" if resp['status']=='RUNNING' else "Error: No se ha podido iniciar el proceso de var formato 386 o ya existe una ejecución en curso. Intente de nuevo en algunos minutos."
86
+ print(msg)
87
+ except:
88
+ raise ValueError("Error: No se ha podido iniciar el proceso de var formato 386 o ya existe una ejecución en curso. Intente de nuevo en algunos minutos.")
89
+ return None
64
90
 
65
91
  def get_portfolio(self, client_id=None, port_type=None, ref_date=None):
66
92
  '''
@@ -74,21 +100,22 @@ class risk_data(quantim):
74
100
  limits_summ = pd.DataFrame(limits['summ'])
75
101
  return portfolio, port_dur, port_per_msg, limits_summ
76
102
 
77
- def pretrade(self, portfolioName, subgroup=False, new_oper=False, cash=False, return_detail=False, res_url=False, return_portfolio= True):
103
+ def pretrade(self, portfolioName, subgroup=False, cash=True, return_detail=False, res_url=False):
78
104
  '''
79
105
  Run limits lambda
80
106
 
81
107
  '''
82
- if new_oper is not False and new_oper is not None:
83
- cols=['type', 'secDesc1', 'counterparty', 'isin', 'assetId', 'issuerId', 'issuerLongName', 'ccy', 'duration', 'avgRating', 'ratingType', 'SIM_SECTOR', 'linkedEntity', 'quantity', 'mktValue', 'maturity', 'indexRate', 'cpn', 'modDur', 'yieldToMaturity']
84
- if not set(cols).issubset(new_oper.columns):
85
- raise ValueError(f"Las nuevas operaciones deben contener la siguiente informacion: {cols}. Por favor revisar")
86
- if not set(new_oper["type"].unique()).issubset({"BUY", "SELL"}):
87
- raise ValueError("La columna type unicamente recibe los valores 'BUY' o 'SELL'.")
88
- new_oper["issuerId"] = pd.to_numeric(new_oper["issuerId"], errors="coerce")
89
- new_oper=new_oper.to_dict(orient="records")
108
+ # if new_oper:
109
+ # cols=['type', 'secDesc1', 'counterparty', 'isin', 'assetId', 'issuerId', 'issuerLongName', 'ccy', 'duration', 'avgRating',
110
+ # 'ratingType', 'SIM_SECTOR', 'linkedEntity', 'quantity', 'mktValue', 'maturity', 'indexRate', 'cpn', 'modDur', 'yieldToMaturity']
111
+ # if not set(cols).issubset(new_oper.columns):
112
+ # raise ValueError(f"Las nuevas operaciones deben contener la siguiente informacion: {cols}. Por favor revisar")
113
+ # if not set(new_oper["type"].unique()).issubset({"BUY", "SELL"}):
114
+ # raise ValueError("La columna type unicamente recibe los valores 'BUY' o 'SELL'.")
115
+ # new_oper["issuerId"] = pd.to_numeric(new_oper["issuerId"], errors="coerce")
116
+ # new_oper=new_oper.to_dict(orient="records")
90
117
  print("Ejecutando límites...")
91
- data = {'portfolioName':portfolioName, 'subgroup':subgroup, 'cash':cash, 'new_oper':new_oper, 'return_detail':return_detail, 'res_url':res_url, 'return_portfolio': return_portfolio}
118
+ data = {'portfolioName':portfolioName, 'subgroup':subgroup, 'cash':cash, 'new_oper':None, 'return_detail':return_detail, 'res_url':res_url, 'return_portfolio': True}
92
119
  resp = self.api_call('limits', method="post", data=data, verify=False)
93
120
  if resp["status"]=="error":
94
121
  print(resp["msg"])