Skip to content

Commit

Permalink
Support set hidden tags
Browse files Browse the repository at this point in the history
  • Loading branch information
foolcage committed Feb 20, 2025
1 parent 5263fd2 commit c91999a
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 6 deletions.
1 change: 1 addition & 0 deletions docs/source/api/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ API
:template: custom-module-template.rst
:recursive:

zvt
zvt.api
zvt.autocode
zvt.consts
Expand Down
2 changes: 2 additions & 0 deletions src/zvt/tag/tag_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,8 @@ class TagParameter(CustomModel):
class StockTagOptions(CustomModel):
main_tag: Optional[str] = Field(default=None)
sub_tag: Optional[str] = Field(default=None)
# hidden_tags: Optional[List[str]] = Field(default=None)
active_hidden_tags: Optional[Dict[str, str]] = Field(default=None)
main_tag_options: List[CreateTagInfoModel]
sub_tag_options: List[CreateTagInfoModel]
hidden_tag_options: List[CreateTagInfoModel]
Expand Down
14 changes: 10 additions & 4 deletions src/zvt/tag/tag_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ def get_stock_tag_options(entity_id):

main_tag = None
sub_tag = None
active_hidden_tags = None
stock_tags = None
if datas:
stock_tags = datas[0]
Expand All @@ -87,6 +88,10 @@ def get_stock_tag_options(entity_id):
CreateTagInfoModel(tag=tag, tag_reason=tag_reason)
for tag, tag_reason in stock_tags.sub_tags.items()
]

if stock_tags.active_hidden_tags:
active_hidden_tags = stock_tags.active_hidden_tags

if stock_tags.hidden_tags:
hidden_tag_options = [
CreateTagInfoModel(tag=tag, tag_reason=tag_reason)
Expand Down Expand Up @@ -122,6 +127,7 @@ def get_stock_tag_options(entity_id):
return StockTagOptions(
main_tag=main_tag,
sub_tag=sub_tag,
active_hidden_tags=active_hidden_tags,
main_tag_options=main_tag_options,
sub_tag_options=sub_tag_options,
hidden_tag_options=hidden_tag_options,
Expand All @@ -147,8 +153,8 @@ def build_stock_tags(
build_tag_info(tag_info=sub_tag_info, tag_type=TagType.sub_tag)

if set_stock_tags_model.active_hidden_tags:
for tag, reason in set_stock_tags_model.active_hidden_tags:
hidden_tag_info = CreateTagInfoModel(tag=tag, tag_reason=reason)
for tag in set_stock_tags_model.active_hidden_tags:
hidden_tag_info = CreateTagInfoModel(tag=tag, tag_reason=set_stock_tags_model.active_hidden_tags.get(tag))
if not is_tag_info_existed(tag_info=hidden_tag_info, tag_type=TagType.hidden_tag):
build_tag_info(tag_info=hidden_tag_info, tag_type=TagType.hidden_tag)

Expand Down Expand Up @@ -196,8 +202,8 @@ def build_stock_tags(
current_stock_tags.sub_tag = set_stock_tags_model.sub_tag
if set_stock_tags_model.sub_tag_reason:
current_stock_tags.sub_tag_reason = set_stock_tags_model.sub_tag_reason
if set_stock_tags_model.active_hidden_tags:
current_stock_tags.active_hidden_tags = set_stock_tags_model.active_hidden_tags
# could update to None
current_stock_tags.active_hidden_tags = set_stock_tags_model.active_hidden_tags
# update tags
main_tags[set_stock_tags_model.main_tag] = set_stock_tags_model.main_tag_reason
if set_stock_tags_model.sub_tag:
Expand Down
9 changes: 7 additions & 2 deletions src/zvt/trading/trading_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -313,9 +313,14 @@ def set_tags(quote):
entity_id = quote["entity_id"]
main_tag = entity_tags_map.get(entity_id, {}).get("main_tag", None)
sub_tag = entity_tags_map.get(entity_id, {}).get("sub_tag", None)
return pd.Series({"main_tag": main_tag, "sub_tag": sub_tag})
active_hidden_tags = entity_tags_map.get(entity_id, {}).get("active_hidden_tags", None)
if active_hidden_tags:
hidden_tags = list(active_hidden_tags.keys())
else:
hidden_tags = None
return pd.Series({"main_tag": main_tag, "sub_tag": sub_tag, "hidden_tags": hidden_tags})

df[["main_tag", "sub_tag"]] = df.apply(set_tags, axis=1)
df[["main_tag", "sub_tag", "hidden_tags"]] = df.apply(set_tags, axis=1)

up_count = (df["change_pct"] > 0).sum()
down_count = (df["change_pct"] < 0).sum()
Expand Down

0 comments on commit c91999a

Please sign in to comment.