Quellcode für pyzufall.helfer

#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
pyzufall.helfer
---------------

Stellt diverse Hilfsfunktionen bereit.
"""

import os
import random as r

# Regex Pattern
re_wort = r'^[A-Za-zäÄöÖüÜß-]+$'
re_worte = r'^[A-Za-zäÄöÖüÜß -]+$'
re_liste = r'^[A-Za-zäÄöÖüÜß -]+,[A-Za-zäÄöÖüÜß, -]+'
re_datum = r'^(0[1-9]|[12][0-9]|3[01]).(0[1-9]|1[0-2]).(19|20)[0-9]{2}$'
re_satz = r'^[A-ZÄÖÜ]{1}[a-zA-Z0-9éäÄöÖüÜß ,-/.?"()]+[.!?]{1}$'
re_frage = r'^[A-ZÄÖÜ]{1}[a-zA-Z0-9éäÄöÖüÜß ,-/"()]+[?]{1}$'


[Doku]def lese(dateiname): """ Liest die Textdatei mit dem übergebenen Namen aus data/ zeilenweise ein und gib eine Liste zurück. Beispiel: >>> liste = lese('baeume.txt') `<http://stackoverflow.com/questions/10174211/make-an-always-relative-to-current-module-file-path>`_ :param dateiname: Dateiname inklusive Endung, z.B. *vornamen.txt* :type dateiname: string :rtype: list .. only:: doctest # überprüfe ob liste eine liste ist >>> assert isinstance(liste, list) """ dateipfad = os.path.join(os.path.dirname(__file__), 'data/' + dateiname) return open(dateipfad, 'r').read().splitlines()
[Doku]def chance(wahrscheinlichkeit, wert): """ Der übergebene Wert wird mit der gewählten Wahrscheinlichkeit zurückgegeben. .. versionadded:: 0.11 :param wahrscheinlichkeit: int zwischen 1 und 100 :param wert: string """ if r.randint(0,99) < wahrscheinlichkeit: return wert else: return ''
[Doku]def erste_gross(s): """ Macht den ersten Buchstaben gross. Beispiele: >>> erste_gross('das ist ein Beispiel?') 'Das ist ein Beispiel?' >>> erste_gross('über Stock und Stein.') 'Über Stock und Stein.' >>> erste_gross('älter als das Internet!') 'Älter als das Internet!' """ return s[0].upper() + s[1:]
[Doku]def str_add(wort, string): """ Fügt einen String ans Ende eines Wortes an, ohne doppelte Buchstaben zu erzeugen. Beispiele: >>> str_add('feige', 'er') 'feiger' >>> str_add('feige', 'e') 'feige' >>> str_add('blöd', 'e') 'blöde' .. versionadded:: 0.11 """ # wenn der letzte Buchstabe des wortes ist gleich der erste des strings if wort[-1] == string[0]: # gebe wort + alles ohne den ersten des strings zurück return wort + string[1:] else: return wort + string
[Doku]def aufzaehlung(liste): """ Erzeugt eine grammatikalisch korrekte Aufzählung aus einer Liste. Beispiel: >>> a = ['lesen', 'reiten', 'Freunde treffen'] >>> aufzaehlung(a) 'lesen, reiten und Freunde treffen' >>> b = ['Überwachen', 'Strafen'] >>> aufzaehlung(b) 'Überwachen und Strafen' >>> c = ['schlafen'] >>> aufzaehlung(c) 'schlafen' :param liste: Eine Liste von Strings. :type liste: list :rtype: string .. versionadded:: 0.12 """ return "{}{}".format(', '.join(liste[:-2]) + ', ' if len(liste) > 2 else '', ' und '.join(liste[-2:]))
[Doku]def e16(wert): """ Der übergebene Wert wird mit einer Wahrscheinlichkeit von 16% zurückgegeben. .. deprecated:: 0.11 Wird durch :func:`pyzufall.helfer.chance` ersetzt. """ if r.randint(0,5) == 1: return wert else: return ''
[Doku]def e25(wert): """ Der übergebene Wert wird mit einer Wahrscheinlichkeit von 25% zurückgegeben. .. deprecated:: 0.11 Wird durch :func:`pyzufall.helfer.chance` ersetzt. """ if r.randint(1,4) == 1: return wert else: return ''
[Doku]def e50(wert): """ Der übergebene Wert wird mit einer Wahrscheinlichkeit von 50% zurückgegeben. .. deprecated:: 0.11 Wird durch :func:`pyzufall.helfer.chance` ersetzt. """ if r.randint(0,1): return wert else: return ''
[Doku]def e75(wert): """ Der übergebene Wert wird mit einer Wahrscheinlichkeit von 75% zurückgegeben. .. deprecated:: 0.11 Wird durch :func:`pyzufall.helfer.chance` ersetzt. """ if r.randint(0,3): return wert else: return ''