Add filter tag
This commit is contained in:
parent
e2ed91c217
commit
64b7916a1b
@ -12,6 +12,11 @@ doc.
|
||||
import sys
|
||||
from timewreport.parser import TimeWarriorParser
|
||||
import pandas as pd
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
||||
FILTER_FILE = '~/.timewarrior/tag_filter.json'
|
||||
# ["tag1", "tag2"]
|
||||
|
||||
|
||||
def filter_tag(df, tag):
|
||||
@ -28,8 +33,8 @@ def get_tag_summary(df, tags):
|
||||
return summary
|
||||
|
||||
|
||||
def get_top_tag_summary(tag_summary):
|
||||
tags_top = set([t.split()[0] for t in tag_summary.tag])
|
||||
def get_top_tag_summary(tag_summary, tags=None):
|
||||
tags_top = tags if tags else set([t.split()[0] for t in tag_summary.tag])
|
||||
|
||||
top_data = []
|
||||
for tag in tags_top:
|
||||
@ -54,6 +59,7 @@ def get_timew_df():
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
print(sys.stdin)
|
||||
df = get_timew_df()
|
||||
|
||||
tags = set([t for tl in df.tags for t in tl])
|
||||
@ -61,7 +67,15 @@ if __name__ == '__main__':
|
||||
summary = get_tag_summary(df, tags)
|
||||
top_summary = get_top_tag_summary(summary)
|
||||
|
||||
for k, s in (('Detailed summary', summary), ('Top level summary', top_summary)):
|
||||
with Path(FILTER_FILE).expanduser().open() as ff:
|
||||
tag_filter = json.load(ff)
|
||||
|
||||
filtered_summary = get_top_tag_summary(summary, tag_filter)
|
||||
|
||||
|
||||
for k, s in (('Detailed summary', summary),
|
||||
('Top level summary', top_summary),
|
||||
('Filtered summary', filtered_summary)):
|
||||
print()
|
||||
print(f'--- {k} ---')
|
||||
print(s.to_string(formatters={'ratio': '{:,.2%}'.format}))
|
||||
print(s.sort_values(by=['ratio']).to_string(formatters={'ratio': '{:,.2%}'.format}))
|
||||
|
Loading…
Reference in New Issue
Block a user