Package: pynames
Pynames intended for generation of all sorts of names. Currently it implements generators for character names of different races and cultures:Scandinavian: traditional names;Russian: pagan names;Mongolian: traditional names;Korean: traditional names;Elven: DnD names;Elven: Warhammer names;Goblins: custom names;Orcs: custom names;Iron Kingdoms: caspian midlunder sulese;Iron Kingdoms: dwarf;Iron Kingdoms: gobber;Iron Kingdoms: iossan nyss;Iron Kingdoms: khadoran;Iron Kingdoms: ogrun;Iron Kingdoms: ryn;Iron Kingdoms: thurian morridane;Iron Kingdoms: tordoran;Iron Kingdoms: trollkin.There are two supported languages : English & Russian. Russian language names are generated with forms for every case of a noun and time.Currently implemented two generation algorithms:pynames.from_list_generator— names are created from list of predefined words;pynames.from_table_generator— names are created using templates, every part of template is gotten from separate table;The library is easily extensible. If you need extra functionality (including new languages), please, contact me, post an issue, or just make a pull request.Installationpip install pynamesUsagefrompynamesimportGENDER,LANGUAGEAll generators are divided by “races”, so that all generators of elven names are placed in the modulepynames.generators.elven, etc.frompynames.generators.elvenimportDnDNamesGeneratorelven_generator=DnDNamesGenerator()Number of different names (male and female) and for each gender separately.In[4]:elven_generator.get_names_number()Out[4]:1952949936In[5]:elven_generator.get_names_number(GENDER.MALE)Out[5]:976474968In[6]:elven_generator.get_names_number(GENDER.FEMALE)Out[6]:976474968Fast random name generation.In[7]:elven_generator.get_name_simple()Out[7]:u'Elineer'In[8]:elven_generator.get_name_simple(GENDER.MALE)Out[8]:u'Caslithdar'In[9]:elven_generator.get_name_simple(GENDER.MALE,LANGUAGE.EN)# EnglishOut[9]:u'Mararon'In[10]:printelven_generator.get_name_simple(GENDER.MALE,LANGUAGE.RU)# RussianТтомусиэлInstead of text, you can get the Name object with additional functionality.In[11]:name=elven_generator.get_name()In[12]:name.translations# all translationsOut[12]:{u'm':{u'en':u"ae'Angaithnyn",u'ru':[u"\u0430\u044d'\u0410\u043d\u0433\u0430\u0438\u0442\u0442\u043d\u0438\u0438\u043d",u"\u0430\u044d'\u0410\u043d\u0433\u0430\u0438\u0442\u0442\u043d\u0438\u0438\u043d\u0430",u"\u0430\u044d'\u0410\u043d\u0433\u0430\u0438\u0442\u0442\u043d\u0438\u0438\u043d\u0443",u"\u0430\u044d'\u0410\u043d\u0433\u0430\u0438\u0442\u0442\u043d\u0438\u0438\u043d\u0430",u"\u0430\u044d'\u0410\u043d\u0433\u0430\u0438\u0442\u0442\u043d\u0438\u0438\u043d\u043e\u043c",u"\u0430\u044d'\u0410\u043d\u0433\u0430\u0438\u0442\u0442\u043d\u0438\u0438\u043d\u0435",u"\u0430\u044d'\u0410\u043d\u0433\u0430\u0438\u0442\u0442\u043d\u0438\u0438\u043d\u044b",u"\u0430\u044d'\u0410\u043d\u0433\u0430\u0438\u0442\u0442\u043d\u0438\u0438\u043d\u043e\u0432",u"\u0430\u044d'\u0410\u043d\u0433\u0430\u0438\u0442\u0442\u043d\u0438\u0438\u043d\u0430\u043c",u"\u0430\u044d'\u0410\u043d\u0433\u0430\u0438\u0442\u0442\u043d\u0438\u0438\u043d\u043e\u0432",u"\u0430\u044d'\u0410\u043d\u0433\u0430\u0438\u0442\u0442\u043d\u0438\u0438\u043d\u0430\u043c\u0438",u"\u0430\u044d'\u0410\u043d\u0433\u0430\u0438\u0442\u0442\u043d\u0438\u0438\u043d\u0430\u0445"]}}In[13]:printu'\n'.join(name.get_forms_for(GENDER.MALE,language=LANGUAGE.RU))аэ'Ангаиттниинаэ'Ангаиттниинааэ'Ангаиттниинуаэ'Ангаиттниинааэ'Ангаиттнииномаэ'Ангаиттниинеаэ'Ангаиттнииныаэ'Ангаиттнииноваэ'Ангаиттниинамаэ'Ангаиттнииноваэ'Ангаиттниинамиаэ'АнгаиттниинахIn[14]:name.gendersOut[14]:frozenset({u'm'})# all genders