funkybob은 다음과 같이 Docker 스타일의 임의 이름을 생성하기 위한 Python 라이브러리입니다.
ecstatic_ritchie, kind_beaver, sharp_heisenberg, angry_nightingale, ...
funkybob은 생성할 수 있는 고유 이름의 수를 늘리기 위해 임의의 수의 형용사가 앞에 오는 이름 생성을 지원합니다.
Random names with no adjectives:
swirles, khorana, blackwell, ...
Random names preceeded by an adjective:
ecstatic_ritchie, kind_beaver, sharp_heisenberg, ...
Random names preceeded by two adjectives:
admiring_dazzling_noether, thirsty_wonderful_agnesi, silly_wizardly_feynman, ...
Random names preceeded by three adjectives:
cranky_goofy_hopeful_wright, competent_jolly_suspicious_kare, cocky_competent_gifted_yalow, ...
둘 이상의 형용사를 사용할 때 funkybob은 순서가 다르더라도 동일한 형용사 세트를 가진 두 개의 이름이 발생할 수 없도록 보장합니다. 예를 들어, inspiring_stupefied_payne
이라는 이름이 생성된 경우 나중에 stupefied_inspiring_payne
이라는 이름이 생성되지 않을 것임을 확신할 수 있습니다. 이렇게 하면 이름을 훨씬 더 쉽게 구별할 수 있고 혼동을 일으킬 가능성이 줄어듭니다.
패키지는 PyPI에서 호스팅되며 설치를 위해 다음을 사용합니다.
$ pip install funkybob
funkybob은 세 가지 이름 생성기를 제공합니다.
SimpleNameGenerator : 이는 무작위성을 포함하지 않고 결정적인 이름 순서를 제공합니다. 모든 조합이 생성되면 중복된 이름이 반환됩니다. 관심이 성능뿐인 경우에 유용합니다.
RandomNameGenerator : 무작위로 생성된 이름을 반환합니다. 언제든지 중복된 이름이 반환될 수 있습니다.
UniqueRandomNameGenerator : 무작위로 생성된 이름을 반환하지만 RandomNameGenerator와 달리 중복된 이름은 반환되지 않습니다. 다른 두 생성기와 달리 이 생성기는 크기가 제한되어 있으며 모든 고유 이름이 반환되면 값 생성이 중지됩니다.
이 표에는 세 가지 생성기의 기능이 요약되어 있습니다.
발전기 | 무한 | 무작위의 | 중복 |
---|---|---|---|
SimpleNameGenerator | 예 | 아니요 | 예 |
RandomNameGenerator | 예 | 예 | 예 |
UniqueRandomNameGenerator | 아니요 | 예 | 아니요 |
세 생성기는 모두 반복 가능합니다. 즉, 이름을 검색하려면 iter()
및 next()
사용하면 됩니다.
>> > import funkybob
>> > generator = funkybob . RandomNameGenerator ()
>> > it = iter ( generator )
>> > next ( it )
'practical_hoover'
>> > next ( it )
'stupefied_ramanujan'
>> > next ( it )
'zealous_aryabhata'
members
및 separator
매개변수를 전달하여 형용사의 수나 이름 형식을 변경할 수 있습니다.
>> > # This will generate names with 3 members (2 adjectives + 1 last name),
>> > # separated by a colon
>> > generator = funkybob . RandomNameGenerator ( members = 3 , separator = ':' )
>> > it = iter ( generator )
>> > next ( it )
'friendly:hopeful:neumann'
>> > next ( it )
'admiring:trusting:montalcini'
>> > next ( it )
'practical:suspicious:blackwell'
생성기에는 생성할 수 있는 고유 이름 수를 확인하는 데 사용할 수 있는 unique_count
속성이 있습니다.
>> > generator . unique_count
740094
위의 모든 것 외에도 UniqueRandomNameGenerator는 시퀀스와 유사한 인터페이스를 제공합니다. 이는 예를 들어 인덱싱 또는 len()
메서드( unique_count
속성에 액세스하는 것과 동일)를 사용할 수 있음을 의미합니다.
>> > generator = funkybob . UniqueRandomNameGenerator ()
>> > generator [ 0 ]
'xenodochial_yalow'
>> > generator [ 1 ]
'kind_mccarthy'
>> > generator [ 2 ]
'happy_hawking'
>> > len ( generator )
16089
이름이 길어지는 대신 크기를 늘리기 위해 members
수를 늘릴 수 있습니다.
UniqueRandomNameGenerator는 추가 매개변수인 seed
도 지원합니다. 이는 의사 난수 생성기를 초기화하는 데 사용할 수 있습니다. 항상 동일한 값을 전달하면 동일한 이름 순서가 생성됩니다. 이는 예측 가능한 이름이 필요한 테스트에서 유용할 수 있습니다.