Python paser zu verwandeln txt zu kanban

stimmen
-2
  • Thema1:

    • Dinge blabla # Todo zu tun [20/02/2020]
    • Dinge getan blabla # Fertig [15/01/2020]
  • Topi2:

    • ....

Was wäre der einfachste Weg, einen Python-Parser TRANSFOR diese Zeichenfolge in einer KANBAN-Liste zu erstellen: Todo: - Action1 Datum ... Fertig: - Action2

Nicht sicher ist dies eine stockoverflow Frage, aber nicht wissen, wo es zu veröffentlichen.

Veröffentlicht am 13/02/2020 um 21:54
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
0

Schließlich machte ich dies:

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

Und verwenden Sie es wie folgt aus:

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

Ziemlich sicher ist es nicht die Art und Weise pythonic aber es macht den Job. Der nächste Schritt wäre, eine Live-Web-Editor zu haben, der den PDCA kanban tranform würde, wie Sie Notizen nehmen .... mich gefragt, ob ich flexx oder Remi verwenden würde, aber das ist eine andere Geschichte

Beantwortet am 24/02/2020 um 21:45
quelle vom benutzer

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