Spaces:
Runtime error
Runtime error
Update utils.py
Browse files
utils.py
CHANGED
@@ -756,25 +756,29 @@ def create_picture(history, prompt):
|
|
756 |
# Ausgabe in PDF des Chathistory
|
757 |
########################################
|
758 |
#Aufzählungen in der History erkennen und auch als Auflistung darstellen
|
759 |
-
def
|
760 |
"""
|
761 |
Erkennt Aufzählungen im Text und gibt eine entsprechend formatierte ListFlowable oder Paragraph zurück.
|
762 |
"""
|
763 |
# Aufzählungszeichen oder Nummerierungen erkennen
|
764 |
aufzaehlungszeichen = ['-', '*', '•']
|
765 |
nummerierung = [f'{i}.' for i in range(1, 11)] # Beispiel für einfache Nummerierungserkennung
|
766 |
-
|
|
|
767 |
zeilen = text.split('\n')
|
768 |
list_items = []
|
769 |
|
770 |
for zeile in zeilen:
|
771 |
# Prüft, ob die Zeile mit einem Aufzählungszeichen oder einer Nummerierung beginnt
|
772 |
-
if any(zeile.lstrip().startswith(zeichen) for zeichen in aufzaehlungszeichen + nummerierung):
|
773 |
# Entfernt das Aufzählungszeichen/Nummerierung für die Darstellung
|
774 |
-
|
775 |
-
|
776 |
-
|
777 |
-
|
|
|
|
|
|
|
778 |
list_items.append(ListItem(Paragraph(zeile, styles['BodyText'])))
|
779 |
else:
|
780 |
# Wenn die Zeile nicht als Teil einer Aufzählung erkannt wird, breche die Schleife ab
|
@@ -789,7 +793,7 @@ def erkennen_und_formatieren_von_aufzaehlungen_backup(text, styles):
|
|
789 |
|
790 |
|
791 |
#Aufzählungen in der History erkennen und auch als Auflistung darstellen
|
792 |
-
def
|
793 |
"""
|
794 |
Erkennt Aufzählungen im Text und gibt eine entsprechend formatierte ListFlowable oder Paragraph zurück.
|
795 |
"""
|
|
|
756 |
# Ausgabe in PDF des Chathistory
|
757 |
########################################
|
758 |
#Aufzählungen in der History erkennen und auch als Auflistung darstellen
|
759 |
+
def erkennen_und_formatieren_von_aufzaehlungen(text, styles):
|
760 |
"""
|
761 |
Erkennt Aufzählungen im Text und gibt eine entsprechend formatierte ListFlowable oder Paragraph zurück.
|
762 |
"""
|
763 |
# Aufzählungszeichen oder Nummerierungen erkennen
|
764 |
aufzaehlungszeichen = ['-', '*', '•']
|
765 |
nummerierung = [f'{i}.' for i in range(1, 11)] # Beispiel für einfache Nummerierungserkennung
|
766 |
+
nummerierung_regex = r"^\s*\d+\.\s*" # Optional Leerzeichen, gefolgt von Ziffern und einem Punkt, dann Leerzeichen
|
767 |
+
|
768 |
zeilen = text.split('\n')
|
769 |
list_items = []
|
770 |
|
771 |
for zeile in zeilen:
|
772 |
# Prüft, ob die Zeile mit einem Aufzählungszeichen oder einer Nummerierung beginnt
|
773 |
+
if any(zeile.lstrip().startswith(zeichen) for zeichen in aufzaehlungszeichen + nummerierung) or re.match(nummerierung_regex, zeile.lstrip()):
|
774 |
# Entfernt das Aufzählungszeichen/Nummerierung für die Darstellung
|
775 |
+
if re.match(nummerierung_regex, zeile.lstrip()):
|
776 |
+
zeile = re.sub(nummerierung_regex, '', zeile.lstrip(), 1).lstrip() # Entfernt nummerierte Aufzählungszeichen
|
777 |
+
else:
|
778 |
+
for zeichen in aufzaehlungszeichen + nummerierung:
|
779 |
+
if zeile.lstrip().startswith(zeichen):
|
780 |
+
zeile = zeile.lstrip()[len(zeichen):].lstrip()
|
781 |
+
break
|
782 |
list_items.append(ListItem(Paragraph(zeile, styles['BodyText'])))
|
783 |
else:
|
784 |
# Wenn die Zeile nicht als Teil einer Aufzählung erkannt wird, breche die Schleife ab
|
|
|
793 |
|
794 |
|
795 |
#Aufzählungen in der History erkennen und auch als Auflistung darstellen
|
796 |
+
def erkennen_und_formatieren_von_aufzaehlungen_backup(text, styles):
|
797 |
"""
|
798 |
Erkennt Aufzählungen im Text und gibt eine entsprechend formatierte ListFlowable oder Paragraph zurück.
|
799 |
"""
|