Python Paser преобразовать TXT в канбан

голоса
-2
  • Topic1:

    • вещи, чтобы сделать BlaBla # Todo [20/02/2020]
    • Things Done блабла # Done [15/01/2020]
  • Topi2:

    • ....

Что было бы самым простым способом, чтобы построить питон анализатору Transfor этой строки в канбане списка: Todo: - дата ДЕЙСТВИЙ1 ... Done: - Мотор2

Не уверен, что это stockoverflow вопрос, но не знаю, где разместить его.

Задан 13/02/2020 в 21:54
источник пользователем
На других языках...                            


1 ответов

голоса
0

В конце концов я сделал это:

import re
import collections
import yaml

def t2k(file):
    with open(file)as f:
        txt=f.read()

    regex=r"(?sm)\* (.*?) :(\s+-.*?)(?=^\*|\Z)"
    regactions=r'  - ([^\#]*)(?P<status>#.) (\[.*])'

    # list of topics with action and status    
    topics=re.finditer(regex,txt,re.MULTILINE)


    # Initiate kanban liste
    list_kanban=[]


    for topic in topics:
        #parse action in topics
        actions=re.finditer(regactions,topic[2])
        for action in actions:
            # create a kanban for each action
            kanban={'topic':topic[1], 'actions':action[1]}
            list_kanban.append({action['status'][-1:]:kanban})


    # group list kanban by status    
    dict_kanban = collections.defaultdict(list)  
    for d in list_kanban:
        for k, v in d.items():
            dict_kanban[k].append(v)

    result=[]
    for statut in dict_kanban.keys():
        single_topic=[]
        topi_dict={}
        for d in dict_kanban[statut]:
            if d['topic'] not in single_topic:
                single_topic.append(d['topic'])
                topi_dict[d['topic']]=[d['actions']]
            else:
                topi_dict[d['topic']].append(d['actions']) 
        result.append({statut:topi_dict})
    #%%

    ff = open('PDCA.yaml', 'w+')
    yaml.dump(result, ff, allow_unicode=True, default_flow_style=False,sort_keys=False)
    print('-')
    print(result)
    return result

И использовать его как это:

import PDCA
PDCA.t2k('txt.md')
with open('PDCA.yaml') as f:
    print(f.read())

Уверен, что это не самый вещий путь, но это делает работу. Следующий шаг должен был бы иметь живой веб-редактор, который будет tranform в PDCA канбан, как вы заметок .... Было интересно, если я буду использовать Flexx или Remi, но это другая история

Ответил 24/02/2020 в 21:45
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more