petname

package
v0.0.0-...-addb04b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 15, 2015 License: Apache-2.0, Apache-2.0 Imports: 2 Imported by: 0

README

PetName

This utility will generate "pet names", consisting of a random combination of an adverb, adjective, and proper name. These are useful for unique hostnames, for instance.

As such, PetName tries to follow the tenets of Zooko's triangle. Names are:

  • human meaningful
  • decentralized
  • secure

The default packaging includes:

  • 5,931 names
  • 37,389 adjectives
  • 12,814 adverbs

A 1-word PetName consists of one random name. A 2-word Petname consists of a random adjective and a random name. A 3-word (or more than 3 word) PetName consists of random adverb(s) and an adjective and a name.

  • 2-word PetNames yield 5,931 x 37,389 = 221,754,159 unique combinations
  • 3-word PetNames yield 5,931 x 37,389 x 12,814 = 2.8415578x10^12 unique combinations

Command Line Usage

Command line help:

usage: petname [--words INT] [--separator STR]

optional arguments:
    -w|--words            number of words in the name, default is 2
    -s|--separator        string used to separate name words, default is '-'
    -d|--dir              directory containing adverbs.txt, adjectives.txt, names.txt, default is \fI/usr/share/petname/\fP

Command Line Examples

$ petname
wiggly-Anna

$ petname --words 1
Marco

$ petname --words 3
quickly-scornful-Johnathan

$ petname --words 4
dolorously-leisurely-wee-Susan

$ petname --separator ":"
hospitable:Isla

$ petname --separator "" --words 3
adeptlystaticNicole

Golang Examples

package main

import (
        "flag"
        "fmt"
        "github.com/dustinkirkland/golang-petname"
)

var (
        words = flag.Int("words", 2, "The number of words in the pet name")
        separator = flag.String("separator", "-", "The separator between words in the pet name")
)

func main() {
        flag.Parse()
        fmt.Println(petname.Generate(*words, *separator))
}

Python Examples

See: https://pypi.python.org/pypi/petname

$ pip install petname
$ sudo apt-get install python-petname
import argparse
import petname

parser = argparse.ArgumentParser(description='Generate human readable random names')
parser.add_argument('-w', '--words', help='Number of words in name, default=2', default=2)
parser.add_argument('-s', '--separator', help='Separator between words, default="-"', default="-")
parser.options = parser.parse_args()

print petname.Generate(int(parser.options.words), parser.options.separator)

Credits

This project is authored and maintained by Dustin Kirkland.

Documentation

Overview

Package petname is a library for generating human-readable, random names for objects (e.g. hostnames, containers, blobs).

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Adjective

func Adjective() string

Adjective returns a random adjective from a list of petname adjectives.

func Adverb

func Adverb() string

Adverb returns a random adverb from a list of petname adverbs.

func Generate

func Generate(words int, separator string) string

Generate generates and returns a random pet name. It takes two parameters: the number of words in the name, and a separator token. If a single word is requested, simply a Name() is returned. If two words are requested, a Adjective() and a Name() are returned. If three or more words are requested, a variable number of Adverb() and a Adjective and a Name() is returned. The separator can be any charater, string, or the empty string.

func Name

func Name() string

Name returns a random name from a list of petname names.

Types

This section is empty.

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL