Commit a47e90a4 authored by Dr.李's avatar Dr.李

using pyfin formula expression as default factor name in transformer

parent 56a7e393
...@@ -12,9 +12,6 @@ from PyFin.Analysis.SecurityValueHolders import SecurityValueHolder ...@@ -12,9 +12,6 @@ from PyFin.Analysis.SecurityValueHolders import SecurityValueHolder
from PyFin.api import transform as transform_impl from PyFin.api import transform as transform_impl
DEFAULT_FACTOR_NAME = 'user_factor'
def factor_translator(factor_pool): def factor_translator(factor_pool):
if not factor_pool: if not factor_pool:
...@@ -23,7 +20,7 @@ def factor_translator(factor_pool): ...@@ -23,7 +20,7 @@ def factor_translator(factor_pool):
if isinstance(factor_pool, str): if isinstance(factor_pool, str):
return {factor_pool: factor_pool}, [factor_pool] return {factor_pool: factor_pool}, [factor_pool]
elif isinstance(factor_pool, SecurityValueHolder): elif isinstance(factor_pool, SecurityValueHolder):
return {DEFAULT_FACTOR_NAME: factor_pool}, sorted(factor_pool.fields) return {str(factor_pool): factor_pool}, sorted(factor_pool.fields)
elif isinstance(factor_pool, dict): elif isinstance(factor_pool, dict):
dependency = set() dependency = set()
for k, v in factor_pool.items(): for k, v in factor_pool.items():
...@@ -46,7 +43,7 @@ def factor_translator(factor_pool): ...@@ -46,7 +43,7 @@ def factor_translator(factor_pool):
factor_dict[f] = f factor_dict[f] = f
dependency = dependency.union([f]) dependency = dependency.union([f])
elif isinstance(f, SecurityValueHolder): elif isinstance(f, SecurityValueHolder):
factor_dict[DEFAULT_FACTOR_NAME + '_' + str(k).zfill(3)] = f factor_dict[str(f)] = f
dependency = dependency.union(f.fields) dependency = dependency.union(f.fields)
k += 1 k += 1
return factor_dict, sorted(dependency) return factor_dict, sorted(dependency)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment