10/29/2012

RandomWords

Ostatnio potrzebne było mi wypełnić bazę testowymi danymi. Byle jakimi. Oczywiście pierwsze co to wszedłem na pierwszą lepszą stronę generującą lorem ipsum i jazda z ctrl+c, ctrl+v. Można, owszem, ale tylko wtedy gdy masz do wypełnienia mało komórek w bazie. Problem jest gdy tych komórek musisz wypełnić 100-1000. Metoda ctrl+c, ctrl+v nie jest wtedy fajna ;)
Oczywiście od razu poszperałem po sieci w celu znalezienia jakiegoś ciekawego generatora słów, zdań, etc. Ale nic co spełniałoby moje oczekiwania nie znalazłem. No trudno, to zrobię swoje narzędzie.

Główne założenia były takie:
  • losowanie słowa z jakiegoś zakresu
  • losowanie słowa zaczynającego się na pewną literę
  • losowanie pewnej ilości słów i zwracanie ich w postaci listy
  • losowanie pewnej ilości słów rozpoczynających się od pewnej litery
Z racji tego, że chcę to wykorzystywać w różnych projektach stworzyłem paczkę oraz udostępniłem to na githubie.

Instalowanie:
pip install RandomWords
lub:
git clone https://github.com/tomislater/RandomWords.git
cd RandomWords
python setup.py install

Przykłady użycia:
>>> from random_words import RandomWords
>>> rw = RandomWords()
>>> word = rw.random_word()
>>> print word
factors

>>> word = rw.random_word('y')
>>> print word
yards

>>> words = rw.random_words(count=10)
>>> print words
['runs', 'experience', 'comments', 'freedom', 'permit', 'honks', 'pins', 'texts', 'grant', 'fathers']

>>> words = rw.random_words(letter='r', count=5)
>>> print words
['raincoat', 'reactance', 'room', 'relocation', 'rudders']

>>> words = rw.random_words(letter=None, count=2)
>>> print words
['tides', 'eights']

Co dalej? Co jest jeszcze do zrobienia?
Oj, bardzo dużo. Pierwsze co dodam w następnej poprawce to generowanie nicków. Później zajmę się generowaniem lorem ipsum i jakimiś prostymi zdaniami. Wszystko po to, aby wygenerowane dane przypominały te, które wprowadzają użytkownicy do baz danych.

Dzięki temu nie dostaniesz oczopląsu od kolejnego rekordu w stylu  "asdhiofuqpfnasduixczvlbzxch" :)