Search.setIndex({"docnames": ["api-collections", "api-exceptions", "api-i18n", "api-iterutils", "api-overview", "api-text", "api-text-converters", "api-text-display", "api-text-misc", "api-text-utf8", "api-versioning", "designing-unicode-apis", "glossary", "hacking", "index", "porting-guide-0.3", "tutorial", "unicode-frustrations"], "filenames": ["api-collections.rst", "api-exceptions.rst", "api-i18n.rst", "api-iterutils.rst", "api-overview.rst", "api-text.rst", "api-text-converters.rst", "api-text-display.rst", "api-text-misc.rst", "api-text-utf8.rst", "api-versioning.rst", "designing-unicode-apis.rst", "glossary.rst", "hacking.rst", "index.rst", "porting-guide-0.3.rst", "tutorial.rst", "unicode-frustrations.rst"], "titles": ["Kitchen.collections", "Exceptions", "Kitchen.i18n Module", "Kitchen.iterutils Module", "Kitchen API", "Kitchen.text: unicode and utf8 and xml oh my!", "Kitchen.text.converters", "Format Text for Display", "Miscellaneous functions for manipulating text", "UTF-8", "Helpers for versioning software", "Designing Unicode Aware APIs", "Glossary", "Conventions for contributing to kitchen", "Kitchen, everything but the sink", "1.0.0 Porting Guide", "Using kitchen to write good code", "Overcoming frustration: Correctly using unicode in python2"], "terms": {"provid": [0, 2, 6, 7, 11, 13, 14, 15, 17], "dictionari": [0, 6, 14], "treat": [0, 3, 6, 7, 11], "byte": [0, 2, 3, 5, 7, 8, 9, 12, 13, 14, 15, 16], "str": [0, 2, 3, 5, 7, 8, 9, 13, 15, 16], "distinct": 0, "kei": [0, 5, 11, 13, 17], "valu": [0, 2, 3, 6, 7, 8, 9, 10, 13, 15, 16], "alia": 0, "defaultdict": [0, 13, 14], "project": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17], "webpag": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "document": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17], "page": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17], "download": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "python": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 17], "standard": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "librari": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17], "ha": [1, 2, 6, 7, 9, 11, 13, 14, 15, 17], "hierarchi": 1, "should": [1, 2, 6, 7, 11, 13, 15, 17], "make": [1, 2, 3, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17], "easi": [1, 10, 11, 12], "catch": [1, 11], "mani": [1, 6, 7, 9, 11, 12, 14, 15, 17], "error": [1, 2, 6, 7, 8, 10, 11, 13, 16], "emit": 1, "itself": [1, 6, 7, 9, 11, 13, 15], "class": [1, 2, 6, 11, 17], "root": 1, "all": [1, 2, 6, 7, 9, 11, 12, 13, 14], "modul": [1, 4, 5, 6, 7, 9, 10, 14, 17], "kitchenerror": [1, 4], "ani": [1, 2, 3, 6, 7, 11, 13, 17], "thrown": [1, 8, 17], "directli": [1, 2, 6, 11], "": [1, 2, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17], "process": [1, 2, 6, 7, 11, 14], "routin": 1, "controlcharerror": [1, 4, 7, 8], "when": [1, 2, 5, 7, 8, 12, 13, 15, 16], "an": [1, 2, 3, 5, 7, 8, 10, 11, 12, 13, 14, 15, 17], "ascii": [1, 2, 6, 8, 12, 13], "control": [1, 2, 6, 7, 8, 9, 11, 12, 17], "charact": [1, 2, 6, 7, 8, 9, 11, 12, 13, 17], "i": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17], "encount": [1, 6, 7, 8, 11, 17], "xmlencodeerror": [1, 4, 6], "condit": [1, 13], "encod": [1, 2, 5, 6, 7, 8, 9, 12, 13, 14, 15, 17], "xml": [1, 4, 8, 14, 15], "string": [1, 2, 3, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15], "import": [2, 6, 7, 9, 10, 11, 13, 14, 15, 17], "piec": [2, 12, 13, 15, 17], "modern": [2, 6], "program": [2, 6, 10, 11, 12, 13, 17], "unfortun": [2, 6, 17], "set": [2, 3, 6, 7, 10, 11, 12, 13, 14, 15, 17], "up": [2, 6, 7, 9, 10, 11, 12, 13, 14, 16, 17], "your": [2, 6, 10, 12, 13, 14, 15, 16, 17], "often": [2, 6, 7, 9, 10, 11, 12, 17], "confus": [2, 17], "The": [2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "here": [2, 6, 7, 11, 13, 14, 15, 17], "aim": [2, 14], "side": [2, 7], "littl": [2, 11, 14], "easier": [2, 13, 17], "most": [2, 6, 7, 9, 11, 13, 14, 17], "abl": [2, 6, 11, 13, 15, 17], "do": [2, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17], "someth": [2, 6, 8, 11, 12, 13, 14, 15, 16, 17], "like": [2, 6, 7, 10, 11, 13, 14, 15, 17], "thi": [2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16], "thei": [2, 6, 8, 11, 12, 13, 14, 15, 17], "startup": 2, "myprogram": 2, "__init__": [2, 6, 13], "py": [2, 6, 7, 14, 15, 17], "o": [2, 11, 17], "sy": [2, 6, 17], "from": [2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17], "easy_gettext_setup": [2, 15], "_": [2, 6, 11, 13, 15, 17], "n_": 2, "localedir": 2, "path": [2, 6, 13, 17], "join": [2, 11], "realpath": 2, "dirnam": 2, "__file__": 2, "local": [2, 6, 11, 15, 17], "prefix": [2, 7, 9, 17], "lib": 2, "Then": [2, 6], "other": [2, 4, 6, 7, 8, 10, 12, 13, 16], "file": [2, 6, 7, 8, 11, 14, 15, 17], "have": [2, 3, 6, 7, 8, 9, 11, 12, 13, 14, 16, 17], "need": [2, 6, 7, 8, 10, 12, 13, 14, 15], "command": [2, 6, 7, 13], "def": [2, 6, 11, 13, 15], "print_usag": 2, "print": [2, 5, 7, 10, 11, 13, 17], "u": [2, 6, 7, 11, 13, 15, 17], "avail": [2, 6, 10, 13, 15, 17], "ar": [2, 3, 6, 7, 8, 9, 11, 12, 13, 14, 15, 17], "help": [2, 8, 11, 14, 16, 17], "displai": [2, 4, 5, 6, 9, 12, 15, 17], "version": [2, 3, 4, 6, 7, 8, 11, 12, 14, 15, 17], "bake": 2, "me": 2, "cake": 2, "fast": 2, "you": [2, 3, 6, 7, 8, 10, 12, 13, 14, 15, 16, 17], "can": [2, 3, 4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17], "print_invit": 2, "ag": 2, "pleas": [2, 15], "come": [2, 11, 13, 17], "my": [2, 4, 14], "parti": [2, 6, 14], "turn": [2, 6, 17], "year": 2, "old": [2, 9, 13, 15], "see": [2, 6, 8, 10, 11, 15, 17], "get_translation_object": [2, 17], "more": [2, 4, 6, 7, 11, 13, 14, 15, 17], "detail": [2, 12], "gettext": [2, 6, 12, 14, 15, 17], "how": [2, 5, 7, 11, 12, 13, 15, 16, 17], "facil": [2, 17], "work": [2, 5, 7, 8, 11, 12, 13, 14, 17], "babel": [2, 12, 13], "depth": 2, "inform": [2, 6, 10, 11, 12, 13, 14, 16, 17], "messag": [2, 5, 11, 12, 13, 15, 17], "catalog": [2, 12], "app": [2, 6], "some": [2, 6, 7, 8, 11, 13, 14, 15, 16, 17], "nice": [2, 14], "featur": [2, 13, 14], "top": [2, 13], "satisfi": [2, 10], "user": [2, 6, 11, 12, 13, 17], "design": [2, 6, 14, 16], "eas": 2, "wai": [2, 6, 7, 9, 11, 12, 13, 14, 15, 16, 17], "anyon": [2, 11], "domain": [2, 15], "use_unicod": [2, 15], "true": [2, 3, 6, 7, 8, 9, 11, 15], "setup": [2, 14, 15, 17], "applic": [2, 6, 14], "paramet": [2, 3, 6, 7, 8, 10, 11, 13, 15], "name": [2, 6, 11, 13, 14], "uniqu": 2, "us": [2, 3, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15], "lookup": [2, 7, 14], "iter": [2, 3, 4, 14], "directori": [2, 11], "look": [2, 6, 8, 10, 11, 12, 13, 15, 16], "under": [2, 14, 17], "first": [2, 6, 7, 8, 11, 13, 17], "exist": [2, 11, 14], "regardless": 2, "whether": [2, 3, 6, 7, 8, 10, 12, 15, 16, 17], "present": [2, 6, 7, 8, 10, 11, 12, 13, 14, 15, 17], "If": [2, 3, 6, 7, 8, 10, 11, 13, 14, 15, 17], "none": [2, 3, 6, 7, 9, 11], "fallback": [2, 6, 15], "share": 2, "default": [2, 3, 6, 7, 8, 11, 13, 15, 17], "No": [2, 13, 14, 17], "search": [2, 7, 8, 11, 13, 14], "so": [2, 6, 7, 9, 11, 12, 13, 14, 15, 17], "we": [2, 6, 7, 8, 10, 11, 12, 13, 14, 15, 17], "just": [2, 6, 7, 8, 10, 11, 13, 14, 15, 17], "return": [2, 3, 6, 7, 8, 9, 10, 13, 15, 16, 17], "els": [2, 6, 7, 8, 11, 14, 17], "tupl": [2, 6, 7, 10, 13], "plural": 2, "tricki": 2, "becaus": [2, 6, 7, 8, 11, 13, 17], "lack": 2, "base": [2, 4, 6, 11, 12], "api": [2, 6, 7, 8, 12, 14, 15, 16], "For": [2, 6, 7, 9, 10, 11, 12, 13, 14, 17], "simpl": [2, 6, 11, 14, 17], "case": [2, 6, 7, 8, 9, 11, 13, 15, 17], "argument": [2, 6, 8, 11, 13], "call": [2, 6, 11, 13, 15, 17], "get": [2, 6, 7, 9, 10, 11, 14, 15, 17], "two": [2, 6, 7, 8, 11, 12, 13, 15, 17], "mark": [2, 12, 13, 17], "code": [2, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17], "don": [2, 5, 6, 7, 8, 11, 13, 14, 15, 17], "t": [2, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16], "worri": [2, 12, 14], "about": [2, 6, 11, 12, 13, 14], "form": [2, 10, 14], "matter": [2, 6, 11], "what": [2, 6, 7, 8, 11, 13, 15, 16, 17], "variabl": [2, 6, 7, 12, 13, 17], "differ": [2, 5, 6, 7, 8, 11, 13, 14, 17], "exampl": [2, 3, 6, 7, 8, 10, 11, 13, 14], "proper": [2, 6, 7, 17], "both": [2, 6, 7, 10, 13], "develop": [2, 13, 14], "instal": [2, 8, 13, 14], "fh": 2, "compliant": [2, 4, 13], "linux": [2, 12], "superior": 2, "ones": [2, 6, 11], "trait": 2, "them": [2, 3, 5, 7, 8, 9, 11, 12, 14, 16, 17], "better": [2, 9, 11, 13, 14, 16, 17], "describ": [2, 10, 11, 13], "dummytransl": [2, 15], "newgnutransl": 2, "chang": [2, 6, 7, 8, 11, 13, 15], "0": [2, 3, 6, 7, 8, 10, 11, 13, 14, 17], "2": [2, 3, 6, 7, 8, 10, 11, 14, 15, 16], "4": [2, 8, 11, 14, 15, 16], "lgettext": [2, 17], "instead": [2, 6, 7, 8, 9, 11, 13, 14, 15, 17], "fals": [2, 3, 6, 7, 8, 11, 15], "languag": [2, 12, 13, 17], "class_": 2, "codeset": 2, "python2_api": 2, "bound": 2, "order": [2, 7, 8, 11, 14, 17], "each": [2, 6, 7, 8, 11, 13, 14, 15, 17], "check": [2, 3, 7, 8, 10, 11, 13, 15, 17], "specifi": [2, 6, 7, 8, 9, 11, 13, 15], "attr": 2, "creat": [2, 3, 10, 11, 13, 14, 17], "attempt": [2, 6, 7, 8, 11, 17], "msgid": 2, "found": [2, 4, 6, 7, 10, 11, 14], "go": [2, 6, 7, 11, 12, 17], "through": [2, 6, 11, 15, 17], "subsequ": [2, 7], "match": [2, 6, 11, 17], "reason": [2, 6, 7, 11, 15, 17], "which": [2, 6, 7, 8, 11, 12, 13, 14, 17], "mai": [2, 4, 6, 7, 8, 11, 13, 14, 15, 16, 17], "either": [2, 6, 15, 16, 17], "rais": [2, 6, 7, 8, 13, 17], "ioerror": 2, "depend": [2, 4, 6, 7, 10, 11, 13, 14, 15, 17], "rhe": 2, "unix": [2, 6], "implicitli": [2, 17], "append": [2, 7, 8, 11], "last": [2, 6, 7, 11, 13, 14, 17], "unspecifi": 2, "find": [2, 6, 7, 10, 11, 12, 13, 14, 15, 17], "environ": [2, 6, 11], "extract": [2, 6, 12, 13], "data": [2, 4, 5, 6, 9, 12, 16], "equival": [2, 6, 8, 11, 17], "output_charset": 2, "python2": [2, 5, 8, 11, 14, 15, 16], "ugettext": [2, 15, 17], "python3": [2, 8, 11, 17], "doe": [2, 6, 7, 8, 10, 11, 13, 17], "method": [2, 6, 11, 12, 13, 15], "flexibl": [2, 11], "than": [2, 6, 7, 8, 10, 11, 12, 13, 14, 17], "It": [2, 3, 6, 7, 8, 10, 11, 12, 13, 14, 15, 17], "access": [2, 14, 17], "instanc": [2, 6, 8, 9, 11, 13, 17], "specif": [2, 8, 11, 17], "foo": 2, "similar": [2, 6, 9, 11, 13, 17], "These": [2, 6, 11, 13, 14, 15, 17], "gnutransl": 2, "nulltransl": 2, "consist": [2, 6, 17], "type": [2, 6, 7, 8, 9, 15, 16], "fix": [2, 6, 7, 12, 13, 17], "sever": [2, 6, 11, 12, 13, 15, 17], "issu": [2, 5, 6, 11, 16, 17], "causeth": 2, "throw": [2, 6, 11, 17], "unicodeerror": [2, 6, 8, 11, 13, 17], "take": [2, 6, 7, 10, 12, 16], "multipl": [2, 6, 11, 13], "latter": 2, "portabl": 2, "manner": [2, 12, 14, 17], "There": [2, 6, 7, 11, 13, 17], "common": [2, 6, 7, 13], "across": [2, 11], "oper": [2, 3, 6, 7, 9, 17], "system": [2, 6, 8, 11, 13, 17], "one": [2, 6, 7, 8, 11, 12, 13, 15, 17], "handl": [2, 6, 7, 9, 11, 14, 15, 17], "give": [2, 6, 7, 11, 13, 16, 17], "list": [2, 3, 6, 7, 9, 11, 13, 14, 15], "A": [2, 3, 6, 11, 12, 16], "same": [2, 6, 7, 13, 14, 15, 16], "In": [2, 4, 6, 7, 8, 9, 11, 14, 15, 17], "usr": [2, 6, 17], "allow": [2, 6, 7, 8, 11, 12, 13, 14], "window": 2, "where": [2, 6, 7, 11, 15, 16, 17], "typic": 2, "toplevel": [2, 13, 15], "also": [2, 6, 11, 13, 17], "packag": [2, 14], "remov": [2, 6, 8, 9, 13, 17], "ie": [2, 6], "With": [2, 7, 11, 14, 15, 17], "below": [2, 10], "e": [2, 6, 15], "lc_messag": 2, "mo": 2, "7": [2, 6, 11, 14, 15, 17], "site": [2, 13], "mean": [2, 6, 8, 11, 12, 13, 15, 17], "sure": [2, 6, 8, 10, 11, 13, 15, 17], "newer": [2, 6, 14], "contain": [2, 5, 6, 7, 8, 10, 11, 12, 13, 14, 17], "older": [2, 6, 14], "1": [2, 3, 6, 7, 8, 10, 11, 13, 14, 16], "add": [2, 6, 13, 14, 17], "easili": [2, 6, 11, 13], "replac": [2, 6, 7, 8, 9, 11, 13, 15, 17], "cycl": [2, 13], "until": [2, 6, 7, 11, 13, 17], "suitabl": [2, 6], "rather": [2, 7, 8, 13, 14], "simpli": [2, 6, 11, 14, 15], "new": [2, 3, 6, 7, 8, 9, 11, 14, 15], "heavili": [2, 17], "suffer": 2, "problem": [2, 6, 11, 16, 17], "non": [2, 6, 7, 8, 11, 13], "unicod": [2, 4, 7, 8, 9, 12, 13, 14, 15, 16], "even": [2, 6, 11, 13, 17], "though": [2, 11, 14, 17], "sai": [2, 11, 17], "onli": [2, 6, 7, 12, 13, 14, 15, 16, 17], "were": [2, 6, 11, 13, 14], "written": [2, 6, 11, 13, 14, 15], "fp": 2, "safer": [2, 15], "doesn": [2, 6, 8, 9, 10, 11, 13], "intend": [2, 6, 11, 16], "real": [2, 13], "its": [2, 4, 6, 10, 13, 14, 15, 17], "v": [2, 11], "unlik": 2, "never": [2, 6, 8, 11], "around": [2, 6, 7, 17], "might": [2, 6, 8, 11, 12, 13, 16, 17], "least": [2, 6, 10, 11, 13, 17], "guarante": [2, 6, 7, 13], "except": [2, 4, 5, 7, 8, 11, 13, 14, 15, 17], "ungettext": [2, 15, 17], "accord": 2, "algorithm": [2, 7], "been": [2, 7, 9, 17], "ad": [2, 6, 7, 8, 13, 15], "ll": [2, 6, 8, 10, 11, 14, 15, 17], "consult": 2, "perform": [2, 6, 11, 12, 15, 17], "wa": [2, 6, 7, 8, 11, 14, 15, 17], "given": [2, 3, 6, 7, 8, 9, 11, 15, 17], "set_output_charset": 2, "ngettext": [2, 17], "_charset": 2, "output": [2, 6, 8, 13, 16], "charset": [2, 6], "utf": [2, 4, 5, 6, 7, 8, 11, 12, 17], "8": [2, 4, 5, 6, 7, 8, 11, 12, 13, 15, 17], "lngettext": [2, 17], "getpreferredencod": [2, 11, 17], "step": [2, 6, 13], "follow": [2, 4, 6, 7, 8, 11, 13, 14, 17], "transform": [2, 3, 5, 8, 10, 11, 14, 17], "decod": [2, 6, 7, 8, 11, 17], "taken": [2, 6], "input_charset": 2, "otherwis": [2, 3, 7, 8], "extens": [2, 13], "purpos": [2, 6, 11, 12, 13, 17], "befor": [2, 3, 6, 7, 10, 11, 13, 14, 16, 17], "untransl": 2, "load": [2, 11, 17], "sourc": [2, 11, 12, 17], "while": [2, 6, 7, 13], "aren": [2, 6, 11, 13, 17], "vice": [2, 6, 11], "versa": [2, 6, 11], "compat": [2, 6, 12, 14], "although": [2, 6, 8, 11, 17], "had": [2, 15, 17], "adapt": 2, "alwai": [2, 6, 7, 11, 15, 17], "hadn": 2, "forc": 2, "those": [2, 6, 8, 9, 11, 12, 14, 15, 17], "now": [2, 6, 11, 13, 14], "neither": 2, "attribut": [2, 6, 14, 15], "3": [2, 3, 6, 7, 10, 11, 14, 15, 16], "serv": [2, 7, 12, 13], "normal": [2, 6, 7, 8, 11, 12, 14, 17], "On": [2, 6, 11], "being": [2, 6, 11, 14, 15, 17], "wrong": [2, 6, 7, 11, 12, 15, 17], "detect": [2, 8, 9, 11], "pars": [2, 11, 13], "hi": 2, "function": [3, 4, 5, 7, 9, 10, 12, 13, 14, 15, 16, 17], "manipul": [3, 4, 5, 14, 17], "1a1": 3, "author": [3, 14], "toshio": [3, 6, 14], "kuratomi": [3, 14], "fedoraproject": 3, "org": [3, 12, 13], "luke": 3, "macken": 3, "lmacken": 3, "redhat": 3, "com": [3, 13], "isiter": [3, 4, 15], "obj": [3, 5, 8], "include_str": [3, 15], "object": [3, 4, 6, 8, 15, 17], "test": [3, 6, 8, 11, 13, 14, 17], "caus": [3, 6, 7, 8, 11, 17], "gener": [3, 6, 7, 8, 10, 11, 13, 14], "over": [3, 6, 11, 13, 14, 17], "anyth": [3, 6, 7, 11, 12], "singl": [3, 7, 13, 17], "scalar": 3, "out": [3, 6, 7, 8, 11, 13, 15, 17], "item": [3, 6, 14], "unless": [3, 17], "usag": [3, 6, 7, 11], "dict": [3, 5, 13, 14, 17], "b": [3, 10, 11], "abc": [3, 13], "c": [3, 6, 10, 15, 17], "structur": [4, 13, 14], "collect": [4, 8, 14], "current": [4, 6, 7, 10, 13, 14], "configur": [4, 6, 13], "ship": [4, 13], "addon": [4, 14], "drag": 4, "i18n": [4, 12, 14, 17], "translat": [4, 6, 11, 12, 13, 15, 17], "text": [4, 9, 11, 12, 13, 14, 15], "utf8": [4, 6, 9, 11, 13, 14, 15, 17], "oh": [4, 14], "convert": [4, 5, 7, 8, 9, 11, 13, 14, 15], "format": [4, 5, 6, 10, 11, 12, 13, 17], "textual_width": [4, 5, 7, 9, 13, 15], "textual_width_chop": [4, 5, 7, 9, 13, 15], "textual_width_fil": [4, 5, 7], "wrap": [4, 5, 6, 7, 9, 12, 15, 17], "fill": [4, 5, 7, 9, 15], "byte_string_textual_width_fil": [4, 5, 7, 9], "intern": [4, 5, 11], "miscellan": [4, 5], "byte_string_valid_encod": [4, 5, 8, 9, 15], "byte_string_valid_xml": [4, 5, 8], "guess_encod": [4, 5, 8, 14], "html_entities_unescap": [4, 5, 8], "isbasestr": [4, 5, 8], "isbytestr": [4, 5, 8], "isunicodestr": [4, 5, 8], "process_control_char": [4, 5, 8], "str_eq": [4, 5, 8, 15], "utf8_text_fil": [4, 5, 9, 15], "utf8_text_wrap": [4, 5, 9, 15], "utf8_valid": [4, 5, 9, 15], "utf8_width": [4, 5, 9, 15], "utf8_width_chop": [4, 5, 9, 15], "utf8_width_fil": [4, 5, 9], "strictdict": [4, 6], "iterutil": [4, 14, 15], "helper": [4, 7, 14], "softwar": [4, 12, 14, 17], "pep": [4, 11, 13, 14], "386": [4, 14], "version_tuple_to_str": [4, 10, 13], "deal": [5, 6, 7, 11, 17], "strategi": [5, 8, 11, 17], "explicit": 5, "convers": [5, 8, 17], "altern": [5, 11, 17], "gotcha": [5, 17], "avoid": [5, 16], "to_unicod": [5, 6, 7, 11, 13, 15, 17], "to_byt": [5, 6, 8, 9, 11, 13, 15, 17], "getwrit": [5, 6, 17], "to_str": [5, 6, 15], "to_utf8": [5, 6, 15], "unicode_to_xml": [5, 6, 15], "xml_to_unicod": [5, 6], "byte_string_to_xml": [5, 6, 15], "xml_to_byte_str": [5, 6], "bytes_to_xml": [5, 6], "xml_to_byt": [5, 6], "guess_encoding_to_xml": [5, 6, 14], "to_xml": [5, 6, 15], "exception_convert": [5, 6, 15], "byte_exception_convert": [5, 6, 15], "exception_to_unicod": [5, 6, 15], "exception_to_byt": [5, 6, 15], "_combin": [5, 7], "_generate_combining_t": [5, 7], "_print_combining_t": [5, 7], "_interval_bisearch": [5, 7], "_ucp_width": [5, 7], "_textual_width_l": [5, 7], "screen": [5, 6, 12, 17], "misc": [5, 8, 9, 13, 15], "catchal": 5, "seem": [5, 11, 14, 17], "fit": [5, 7, 8, 15], "elsewher": 5, "deprec": [5, 6, 9, 10, 13], "2a2": 6, "ve": [6, 7, 11, 14, 17], "simplifi": 6, "unnecessari": 6, "repres": [6, 7, 11, 17], "abstract": [6, 12, 17], "sequenc": [6, 7, 11, 12, 17], "hold": 6, "togeth": 6, "keep": [6, 10, 11, 13, 14, 15, 17], "mind": [6, 11], "realli": [6, 7], "interchang": [6, 11, 17], "larg": 6, "amount": [6, 7, 12], "time": [6, 11, 13, 14, 17], "few": [6, 7, 11, 14, 16], "pair": [6, 17], "automat": [6, 16, 17], "equal": [6, 7, 11], "compar": [6, 7, 8, 10, 12], "am": [6, 17], "int": [6, 11], "special": [6, 13, 17], "treatment": [6, 16], "5": [6, 8, 9, 11, 14, 15, 16], "howev": [6, 7, 11, 13, 17], "tend": 6, "lull": 6, "peopl": [6, 7, 11, 12, 13, 14, 17], "sens": [6, 10, 11, 17], "secur": [6, 14], "As": [6, 11], "long": [6, 7, 13], "re": [6, 7, 8, 11, 13, 14, 17], "save": 6, "onc": [6, 10, 11, 17], "start": [6, 7, 8, 10, 11, 17], "unicodewarn": [6, 8], "between": [6, 7, 10, 11, 17], "fail": [6, 15, 17], "\u00f1": 6, "__main__": [6, 17], "comparison": 6, "interpret": [6, 11], "unequ": 6, "why": [6, 10, 17], "known": [6, 11, 14, 17], "point": [6, 7, 11, 12, 13, 17], "hand": [6, 11], "appear": 6, "particular": [6, 7, 11, 12, 13, 17], "usual": [6, 11, 13, 17], "defin": [6, 7, 10, 11, 12, 15, 17], "customiz": 6, "individu": 6, "fairli": 6, "outsid": [6, 7, 11, 13, 14, 17], "rang": [6, 17], "map": [6, 11, 12, 17], "face": 6, "refus": 6, "guess": [6, 7, 8, 11, 14], "warn": [6, 13], "overcom": [6, 14, 15, 16], "frustrat": [6, 14, 15, 16], "correctli": [6, 11, 14, 15, 16], "longer": [6, 7, 14], "introduct": 6, "subject": 6, "best": [6, 17], "welter": 6, "babbl": 6, "incoher": 6, "basic": 6, "explicitli": [6, 13, 17], "everyth": [6, 11, 12, 13, 17], "enter": [6, 11, 17], "send": [6, 11, 17], "back": [6, 8, 9, 11], "traceback": [6, 13, 17], "due": [6, 7, 11], "raw_input": [6, 17], "\u304f\u3089\u3068\u307f": [6, 11], "xe3": 6, "x81": 6, "x8f": 6, "x82": 6, "x89": 6, "xa8": 6, "xbf": 6, "unicode_nam": 6, "u304f": [6, 11], "u3089": [6, 11], "u3068": [6, 11, 17], "u307f": [6, 11], "lot": [6, 13], "thing": [6, 7, 11, 13, 14, 15, 17], "again": [6, 13, 17], "open": [6, 11, 17], "datafil": [6, 17], "w": [6, 11, 17], "write": [6, 12, 14], "n": [6, 7, 10, 17], "note": [6, 8, 11, 13, 17], "line": [6, 7, 13, 17], "6": [6, 14, 15, 17], "notic": [6, 11], "input": [6, 11, 13, 15], "took": 6, "anytim": [6, 11, 13, 17], "filesystem": [6, 11, 17], "read": [6, 11, 12, 17], "network": [6, 11, 17], "interact": [6, 11], "extern": [6, 14, 17], "want": [6, 7, 8, 11, 13, 14, 15, 17], "third": [6, 14], "boon": 6, "curs": 6, "without": [6, 8, 11, 12, 17], "end": [6, 7, 11, 14, 17], "garbl": 6, "after": [6, 17], "won": [6, 7, 11, 13, 16, 17], "expect": [6, 11, 13, 17], "hardest": 6, "debug": [6, 11, 17], "occur": [6, 11, 13], "own": [6, 13, 14, 17], "try": [6, 8, 11, 13, 14, 15, 17], "bug": [6, 11], "against": [6, 7, 8, 11], "upstream": 6, "awar": [6, 13, 14, 16, 17], "properli": [6, 7, 11, 13, 17], "sane": 6, "nicer": 6, "american": [6, 12], "english": [6, 12, 17], "cannot": [6, 7, 8, 11, 13], "symbol": [6, 17], "happen": [6, 11, 17], "empti": [6, 11], "three": [6, 11, 13], "overridden": 6, "keyword": [6, 11, 13], "15": 6, "push": [6, 14], "instant": 6, "sometim": [6, 7, 11, 13, 17], "troubl": 6, "mix": [6, 17], "stage": [6, 13], "revers": 6, "nonstr": [6, 15], "yield": 6, "overrid": 6, "great": 6, "shouldn": [6, 7], "meant": [6, 12], "databas": [6, 7, 11, 17], "filenam": [6, 11, 17], "transfer": 6, "hint": 6, "saniti": 6, "situat": [6, 11], "separ": [6, 7, 14, 16, 17], "pain": [6, 17], "someon": [6, 11, 14, 17], "yourself": [6, 11, 12], "could": [6, 7, 11, 13, 15], "tell": [6, 7, 8, 11, 12, 15], "store": [6, 12, 17], "One": [6, 11, 17], "determin": [6, 7, 8, 11], "suppos": [6, 12, 17], "initi": [6, 11, 14], "isinst": [6, 8, 11, 13], "sinc": [6, 8, 11, 12, 14, 17], "modif": 6, "alreadi": [6, 7, 11, 17], "b_input": 6, "input_should_be_bytes_alreadi": 6, "strict": [6, 7, 8, 11], "handle_errors_somehow": 6, "illeg": 6, "chosen": 6, "exact": [6, 17], "rase": 6, "red": 6, "flag": 6, "opportun": [6, 11], "gracefulli": 6, "combin": [6, 7, 13, 15, 17], "includ": [6, 11, 12, 13], "usernam": [6, 13], "b_usernam": 6, "good": [6, 11, 13, 14, 17], "conceptu": 6, "understand": [6, 9, 13, 16, 17], "still": [6, 11, 13, 14, 17], "surpris": [6, 11], "earlier": [6, 11], "appropri": [6, 8, 15, 17], "place": [6, 11, 12, 13, 15, 17], "solv": [6, 11, 17], "idiom": [6, 12], "represent": [6, 7, 11, 15, 17], "safe": [6, 11, 17], "To": [6, 11, 17], "decid": [6, 7, 12, 13, 16, 17], "u_represent": 6, "simplerepr": [6, 15], "b_represent": 6, "builtin": 6, "statement": 6, "termin": [6, 17], "origin": 6, "dealt": 6, "came": 6, "enhanc": 6, "made": [6, 13], "well": [6, 7, 11, 12, 13, 14, 16, 17], "cryptic": 6, "figur": [6, 11], "attach": [6, 7], "run": [6, 11, 12, 13, 14, 15, 17], "script": [6, 17], "lc_all": [6, 17], "lc_ctype": 6, "accept": [6, 8, 11, 17], "valid": [6, 8, 9, 11, 15, 17], "ufffd": 6, "recent": [6, 17], "stdin": [6, 17], "unicodeencodeerror": [6, 17], "codec": [6, 11, 17], "posit": [6, 7, 11, 17], "ordin": [6, 17], "128": [6, 12, 17], "autom": [6, 12], "cron": 6, "releas": [6, 10, 12, 13, 14, 15, 17], "consumpt": [6, 12], "internet": [6, 12], "inevit": 6, "report": [6, 11], "redirect": [6, 17], "isn": [6, 11], "uncondition": 6, "effect": [6, 15], "At": [6, 13, 14], "lead": [6, 11, 17], "short": [6, 13, 17], "bin": [6, 17], "tt": [6, 17], "And": [6, 11, 14, 16, 17], "answer": [6, 11, 17], "u_str": [6, 11], "stdout": [6, 17], "stderr": 6, "streamwrit": [6, 17], "conveni": [6, 11], "assign": [6, 7], "drawback": [6, 7], "writer": [6, 17], "possibl": [6, 7, 8, 11, 17], "codepoint": [6, 17], "retriev": 6, "hash": [6, 14], "evalu": [6, 11, 17], "slot": 6, "b_string": 6, "12416037344": 6, "d": 6, "content": 6, "xf1": 6, "xc3": [6, 17], "xb1": 6, "b_string2": 6, "30848092528": 6, "rememb": [6, 7, 11, 13, 17], "rule": 6, "That": [6, 8, 11, 17], "goe": [6, 14], "preserv": 6, "recommend": [6, 10, 13], "appli": [6, 13, 16], "mixtur": 6, "standardis": 6, "absolut": [6, 13], "entri": [6, 13], "non_str": 6, "action": [6, 15], "invalid": [6, 8, 11, 17], "unabl": [6, 11], "scheme": 6, "ignor": [6, 7, 8], "omit": [6, 11], "__unicode__": 6, "__str__": 6, "usabl": [6, 11], "typeerror": [6, 8, 11], "passthru": [6, 15], "unchang": 6, "repr": 6, "basestr": [6, 8], "pass": [6, 7, 8, 11, 13, 15, 17], "unknown": [6, 14, 17], "unicodedecodeerror": [6, 8, 17], "intellig": 6, "validli": 6, "Be": [6, 13], "requir": [6, 11, 13], "1a2": 6, "favor": 6, "unmodifi": 6, "easiest": [6, 11], "achiev": [6, 11], "ensur": 6, "resist": [6, 11], "trace": 6, "instanti": 6, "stream": 6, "reimplemet": 6, "departur": 6, "handler": [6, 7, 11, 17], "wherea": [6, 17], "new_handler_nam": 6, "utf8writ": [6, 17], "unwrapped_stdout": 6, "caf": [6, 17], "xa9": [6, 17], "caf\u00e9": [6, 7, 13, 17], "xe9": [6, 17], "asciiwrit": 6, "doc": [6, 16], "wiki": [6, 12], "danger": [6, 11], "attrib": 6, "control_char": [6, 7], "refer": [6, 10], "quot": 6, "field": [6, 7, 11, 13, 17], "know": [6, 7, 8, 15, 16, 17], "option": [6, 8, 11, 13], "altogeth": [6, 8], "valueerror": [6, 8, 11], "mainli": 6, "deni": 6, "certain": [6, 11, 13], "null": [6, 11, 17], "must": [6, 7, 11, 17], "escap": [6, 7], "care": [6, 11, 13], "simplest": 6, "invoc": 6, "\u00e1": 6, "lt": 6, "gt": 6, "pretti": [6, 17], "straightforward": [6, 11], "latin": [6, 8], "let": [6, 8, 11, 14, 17], "12392": 6, "our": [6, 10, 11, 13, 17], "quirk": 6, "fidel": 6, "gui": [6, 13], "later": [6, 7, 14, 17], "disallow": 6, "char": [6, 7, 11], "u0000": 6, "u0007": 6, "reproduc": [6, 8], "date": [6, 12, 14], "choic": [6, 11], "reli": 6, "verbos": 6, "within": [6, 7, 8, 13, 14, 17], "printabl": [6, 7], "utf7": 6, "mgg": 6, "aac": 6, "would": [6, 8, 11, 15, 17], "readabl": [6, 10], "increas": 6, "complex": 6, "write_tag": 6, "mytag": 6, "tag": 6, "goal": [6, 16], "entir": [6, 11], "parser": [6, 10], "level": [6, 11, 13, 17], "byte_str": [6, 8], "everi": [6, 7, 8, 11, 13, 17], "legal": [6, 7, 17], "presum": 6, "expand": [6, 7], "html": [6, 8, 13], "entiti": [6, 8], "restor": 6, "prior": [6, 13], "insert": 6, "input_encod": 6, "output_encod": 6, "begin": [6, 13], "utf8_str": 6, "latin1_str": 6, "cleaned_str": 6, "idea": [6, 13], "docstr": [6, 14], "arg": [6, 7, 9, 13, 15], "kwarg": [6, 7, 9, 13], "insid": [6, 7, 11, 13], "extra": [6, 17], "actual": [6, 8, 11, 17], "implement": [6, 10, 12, 14, 17], "tweak": 6, "underli": 6, "remain": [6, 11, 13], "base64": 6, "especi": 6, "put": [6, 7, 10, 11, 13, 15], "binari": [6, 7, 11], "lose": 6, "probabl": [6, 8, 11], "b64encod": 6, "plan": 6, "got": [6, 17], "undecod": [6, 7, 11], "b64decod": 6, "inclus": [6, 11], "node": 6, "lambda": [6, 15], "Its": 6, "main": [6, 11, 13], "roughli": 6, "wish": 6, "anoth": [6, 8, 11, 12, 17], "myerror": 6, "self": [6, 17], "extend": [6, 13, 15], "choos": [6, 11, 15], "euc_jp": [6, 11], "do_someth": 6, "log": [6, 17], "logfil": 6, "close": [6, 11, 17], "sole": [6, 17], "trust": 6, "decent": 6, "ideal": 6, "result": [6, 11, 15], "simplif": 6, "exc": 6, "tri": [6, 14, 17], "switch": [6, 13, 15], "relat": [7, 12], "width": [7, 9, 12, 15], "kitchen": [7, 8, 9, 10, 11, 12, 15], "msg": [7, 9, 11, 13, 15], "textual": [7, 9, 11, 12, 17], "zero": [7, 13], "backspac": 7, "delet": 7, "clear": [7, 11], "correct": [7, 11, 17], "space": [7, 11, 12], "consum": [7, 11, 17], "monospac": [7, 12], "measur": 7, "number": [7, 11, 12, 13, 17], "cell": [7, 12], "column": [7, 12], "glyph": [7, 12], "tamil": 7, "four": [7, 11, 12], "lesser": [7, 14], "chop": [7, 9], "exce": [7, 11], "right": [7, 10, 11, 17], "regard": 7, "eg": 7, "10": 7, "\u00f1unru": [7, 13], "\u00f1un": 7, "graphem": [7, 12, 17], "too": [7, 14], "kanji": 7, "1234567890": 7, "\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d\u5341": 7, "\u4e00\u4e8c\u4e09\u56db\u4e94": 7, "left": [7, 9], "suffix": [7, 9], "pad": [7, 9], "length": [7, 9, 17], "justifi": 7, "complet": 7, "invis": 7, "highlight": 7, "color": 7, "etc": [7, 9, 10, 11, 13, 17], "element": [7, 11], "9": [7, 15], "\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d": 7, "align": 7, "20": 7, "7m": 7, "0m": 7, "7m\u4e00\u4e8c\u4e09\u56db\u4e94": 7, "70": [7, 9], "initial_ind": [7, 9], "subsequent_ind": [7, 9], "textwrap": [7, 9], "indent": 7, "inadequ": 7, "multi": [7, 11, 12], "doubl": 7, "malform": 7, "block": [7, 9, 11], "newlin": 7, "light": 7, "wrapper": [7, 15], "arbitrari": 7, "768": 7, "879": 7, "1155": 7, "1161": 7, "1425": 7, "1469": 7, "1471": 7, "1473": 7, "1474": 7, "1476": 7, "1477": 7, "1479": 7, "1536": 7, "1539": 7, "1552": 7, "1562": 7, "1611": 7, "1631": 7, "1648": 7, "1750": 7, "1764": 7, "1767": 7, "1768": 7, "1770": 7, "1773": 7, "1807": 7, "1809": 7, "1840": 7, "1866": 7, "1958": 7, "1968": 7, "2027": 7, "2035": 7, "2045": 7, "2070": 7, "2073": 7, "2075": 7, "2083": 7, "2085": 7, "2087": 7, "2089": 7, "2093": 7, "2137": 7, "2139": 7, "2259": 7, "2273": 7, "2275": 7, "2303": 7, "2305": 7, "2306": 7, "2364": 7, "2369": 7, "2376": 7, "2381": 7, "2385": 7, "2388": 7, "2402": 7, "2403": 7, "2433": 7, "2492": 7, "2497": 7, "2500": 7, "2509": 7, "2530": 7, "2531": 7, "2558": 7, "2561": 7, "2562": 7, "2620": 7, "2625": 7, "2626": 7, "2631": 7, "2632": 7, "2635": 7, "2637": 7, "2672": 7, "2673": 7, "2689": 7, "2690": 7, "2748": 7, "2753": 7, "2757": 7, "2759": 7, "2760": 7, "2765": 7, "2786": 7, "2787": 7, "2817": 7, "2876": 7, "2879": 7, "2881": 7, "2883": 7, "2893": 7, "2902": 7, "2946": 7, "3008": 7, "3021": 7, "3134": 7, "3136": 7, "3142": 7, "3144": 7, "3146": 7, "3149": 7, "3157": 7, "3158": 7, "3260": 7, "3263": 7, "3270": 7, "3276": 7, "3277": 7, "3298": 7, "3299": 7, "3387": 7, "3388": 7, "3393": 7, "3395": 7, "3405": 7, "3530": 7, "3538": 7, "3540": 7, "3542": 7, "3633": 7, "3636": 7, "3642": 7, "3655": 7, "3662": 7, "3761": 7, "3764": 7, "3772": 7, "3784": 7, "3789": 7, "3864": 7, "3865": 7, "3893": 7, "3895": 7, "3897": 7, "3953": 7, "3966": 7, "3968": 7, "3972": 7, "3974": 7, "3975": 7, "3984": 7, "3991": 7, "3993": 7, "4028": 7, "4038": 7, "4141": 7, "4144": 7, "4146": 7, "4150": 7, "4151": 7, "4153": 7, "4154": 7, "4184": 7, "4185": 7, "4237": 7, "4448": 7, "4607": 7, "4957": 7, "4959": 7, "5906": 7, "5908": 7, "5938": 7, "5940": 7, "5970": 7, "5971": 7, "6002": 7, "6003": 7, "6068": 7, "6069": 7, "6071": 7, "6077": 7, "6086": 7, "6089": 7, "6099": 7, "6109": 7, "6155": 7, "6157": 7, "6313": 7, "6432": 7, "6434": 7, "6439": 7, "6440": 7, "6450": 7, "6457": 7, "6459": 7, "6679": 7, "6680": 7, "6752": 7, "6773": 7, "6780": 7, "6783": 7, "6832": 7, "6845": 7, "6912": 7, "6915": 7, "6964": 7, "6966": 7, "6970": 7, "6972": 7, "6978": 7, "6980": 7, "7019": 7, "7027": 7, "7082": 7, "7083": 7, "7142": 7, "7154": 7, "7155": 7, "7223": 7, "7376": 7, "7378": 7, "7380": 7, "7392": 7, "7394": 7, "7400": 7, "7405": 7, "7412": 7, "7416": 7, "7417": 7, "7616": 7, "7673": 7, "7675": 7, "7679": 7, "8203": 7, "8207": 7, "8234": 7, "8238": 7, "8288": 7, "8291": 7, "8298": 7, "8303": 7, "8400": 7, "8432": 7, "11503": 7, "11505": 7, "11647": 7, "11744": 7, "11775": 7, "12330": 7, "12335": 7, "12441": 7, "12442": 7, "42607": 7, "42612": 7, "42621": 7, "42654": 7, "42655": 7, "42736": 7, "42737": 7, "43014": 7, "43019": 7, "43045": 7, "43046": 7, "43204": 7, "43232": 7, "43249": 7, "43307": 7, "43309": 7, "43347": 7, "43443": 7, "43456": 7, "43696": 7, "43698": 7, "43700": 7, "43703": 7, "43704": 7, "43710": 7, "43711": 7, "43713": 7, "43766": 7, "44013": 7, "64286": 7, "65024": 7, "65039": 7, "65056": 7, "65071": 7, "65279": 7, "65529": 7, "65531": 7, "66045": 7, "66272": 7, "66422": 7, "66426": 7, "68097": 7, "68099": 7, "68101": 7, "68102": 7, "68108": 7, "68111": 7, "68152": 7, "68154": 7, "68159": 7, "68325": 7, "68326": 7, "68900": 7, "68903": 7, "69446": 7, "69456": 7, "69702": 7, "69759": 7, "69817": 7, "69818": 7, "69888": 7, "69890": 7, "69939": 7, "69940": 7, "70003": 7, "70080": 7, "70090": 7, "70197": 7, "70198": 7, "70377": 7, "70378": 7, "70459": 7, "70460": 7, "70477": 7, "70502": 7, "70508": 7, "70512": 7, "70516": 7, "70722": 7, "70726": 7, "70750": 7, "70850": 7, "70851": 7, "71103": 7, "71104": 7, "71231": 7, "71350": 7, "71351": 7, "71467": 7, "71737": 7, "71738": 7, "72160": 7, "72244": 7, "72263": 7, "72345": 7, "72767": 7, "73026": 7, "73028": 7, "73029": 7, "73111": 7, "92912": 7, "92916": 7, "92976": 7, "92982": 7, "113822": 7, "119141": 7, "119145": 7, "119149": 7, "119170": 7, "119173": 7, "119179": 7, "119210": 7, "119213": 7, "119362": 7, "119364": 7, "122880": 7, "122886": 7, "122888": 7, "122904": 7, "122907": 7, "122913": 7, "122915": 7, "122916": 7, "122918": 7, "122922": 7, "123184": 7, "123190": 7, "123628": 7, "123631": 7, "125136": 7, "125142": 7, "125252": 7, "125258": 7, "917505": 7, "917536": 7, "917631": 7, "917760": 7, "917999": 7, "tabl": [7, 11], "therefor": 7, "sort": [7, 8, 17], "overlap": 7, "interv": 7, "regener": 7, "0a3": 7, "unicodedata": [7, 11, 17], "unidata_vers": 7, "12": 7, "marku": 7, "kuhn": 7, "speed": 7, "static": 7, "sync": [7, 13], "updat": [7, 14], "numer": 7, "divid": 7, "half": 7, "uc": 7, "integ": [7, 11], "optim": 7, "larger": [7, 14], "total": [7, 11], "less": [7, 8, 10, 11, 13, 14, 15], "x": [7, 13, 14, 17], "y": 7, "calcul": [7, 9], "canon": 7, "compos": 7, "per": [7, 11], "shortcut": 7, "ok": 7, "greater": 7, "ask": [7, 11], "immedi": [7, 11, 17], "full": [7, 11], "categori": 8, "whole": [8, 14], "bunch": [8, 14], "construct": [8, 11], "array_of_mostly_utf8_str": 8, "processed_arrai": 8, "guess_bytes_to_xml": 8, "output_xml": 8, "disable_chardet": 8, "chardet": [8, 14], "succe": 8, "world": [8, 17], "high": 8, "enough": [8, 10, 11, 14, 16, 17], "confid": [8, 13], "arbitrarili": 8, "claim": 8, "mangl": [8, 17], "substitut": [8, 11, 13], "plain": 8, "eqiuval": 8, "bytearrai": 8, "aid": [8, 15], "port": [8, 14], "deriv": 8, "commonli": [8, 14], "strip": [8, 17], "c1": 8, "addit": 8, "c0": 8, "str1": 8, "str2": 8, "second": [8, 11, 13, 15], "prevent": [8, 17], "higher": 8, "aris": 8, "done": [8, 14], "faster": 8, "limit": [8, 11, 17], "Will": [8, 11], "simpler": [9, 11], "screw": 9, "ku": [9, 15], "ra": 9, "mi": 9, "version_info": 10, "style": [10, 14], "nest": [10, 14], "merg": 10, "becom": [10, 17], "normalizedvers": 10, "from_part": 10, "major": [10, 13], "minor": [10, 13], "micro": [10, 13], "alpha": 10, "beta": 10, "rc": 10, "marker": 10, "post": 10, "dev": 10, "ex": 10, "3456": 10, "postn": 10, "devn": 10, "0a2": 10, "dev3456": 10, "next": [10, 11, 13, 14, 16, 17], "person": [10, 11], "soon": 10, "__version_info__": [10, 13], "__version__": [10, 13], "human": [10, 12], "locat": 10, "announc": 10, "tarbal": [10, 13], "meanwhil": 10, "veri": [10, 11, 13, 17], "comput": [10, 12], "okai": [10, 11, 17], "difficult": 11, "pro": 11, "con": 11, "novic": 11, "endus": 11, "feed": 11, "wors": [11, 17], "truncat": 11, "max_length": 11, "essenti": [11, 12], "task": 11, "vari": 11, "raisng": 11, "clue": 11, "target": 11, "abov": [11, 13], "surrogateescap": 11, "16": [11, 17], "32": [11, 17], "unhelp": 11, "383": 11, "mention": [11, 14, 15], "seen": 11, "inescap": 11, "lone": 11, "surrog": 11, "question": [11, 17], "bad": [11, 17], "who": [11, 12], "miss": 11, "fact": 11, "backtrac": 11, "think": [11, 12, 15, 17], "harder": [11, 17], "abil": 11, "themselv": 11, "new_msg": 11, "polymorph": 11, "receiv": 11, "concept": 11, "desir": [11, 15], "blissfulli": 11, "far": 11, "concern": 11, "discov": [11, 14], "coupl": 11, "index": [11, 14], "enumer": 11, "respons": 11, "term": [11, 14], "gave": 11, "arrai": [11, 17], "json": 11, "first_field_from_json_data": 11, "json_str": 11, "x00": 11, "json_data": 11, "elif": 11, "le": 11, "section": [11, 13, 16, 17], "portion": [11, 15, 17], "didn": 11, "wouldn": 11, "luckili": 11, "state": [11, 13], "utf32b": 11, "utf32l": 11, "utf16b": 11, "utf16l": 11, "further": 11, "final": [11, 13], "But": [11, 17], "first_char": 11, "latin1": [11, 13, 14], "nfc": [11, 17], "fragil": 11, "prone": 11, "break": [11, 13], "suspici": 11, "robust": 11, "number_of_char": 11, "len": [11, 17], "failur": 11, "listdir": 11, "new_fil": 11, "continu": 11, "appen": 11, "illustr": 11, "mode": 11, "involv": [11, 17], "pursu": 11, "accur": 11, "necessarili": 11, "skip": 11, "placehold": 11, "nondisplay": 11, "leav": [11, 13], "first_field": 11, "csv_string": 11, "comma": 11, "hidden": 11, "liter": 11, "inappropri": 11, "trail": 11, "garbag": 11, "Of": 11, "clearli": [11, 13], "reus": [11, 12], "subset": 11, "improv": 11, "is_unicod": 11, "adopt": 11, "convent": [11, 14], "show": [11, 16, 17], "translate_b": 11, "str_tabl": 11, "chr": 11, "xrang": 11, "256": 11, "delete_char": 11, "chr_val": 11, "k": 11, "255": 11, "behaviour": [11, 13, 15], "Not": 11, "disk": [11, 12, 17], "chat": 11, "client": 11, "lower": 11, "socket": 11, "anywher": 11, "eventu": 11, "caller": 11, "natur": [11, 17], "thought": 11, "raw": 11, "mkdir": 11, "tmp": [11, 17], "mine": 11, "chdir": 11, "nonsense_char_": 11, "xff": [11, 17], "all_ascii": 11, "hard": [11, 13], "normalize_filenam": 11, "dash": 11, "underscor": 11, "ord": 11, "prefer": 11, "machin": 11, "suddenli": [11, 17], "obviou": [11, 15], "fault": 11, "earli": [11, 13], "silent": 11, "unnot": 11, "product": 11, "believ": 11, "imposs": 11, "programm": [11, 16, 17], "smart": 11, "did": 11, "select": 11, "dure": 11, "rethink": 11, "down": [11, 17], "admonit": 11, "affect": 11, "viabil": 11, "variou": [11, 12], "consid": [11, 17], "much": [11, 15, 17], "area": 11, "wire": 11, "potenti": 11, "gain": 11, "popular": 11, "corner": [11, 17], "realiz": [11, 13], "properti": 11, "notabl": [11, 12], "ebdic": [11, 12], "famili": 11, "express": [11, 13], "pick": [11, 16, 17], "odd": 11, "euc": 11, "adher": 11, "principl": 11, "bye": 11, "japanes": 11, "me8witbomh8": 11, "transport": 11, "medium": 11, "part": [11, 12, 13, 14, 16], "plu": 11, "sign": 11, "shift": 11, "ji": 11, "neg": 11, "sink": 12, "nearli": [12, 17], "parsabl": 12, "7bit": 12, "http": [12, 13], "en": 12, "wikipedia": 12, "exclud": 12, "width_encod": 12, "explan": 12, "possibli": [12, 14], "incompat": [12, 13], "memori": 12, "control_charact": 12, "word": [12, 13, 17], "sentenc": 12, "abbrevi": 12, "internation": 12, "signifi": 12, "speak": 12, "visibl": [12, 13], "tool": [12, 13, 14], "murphi": [12, 17], "law": [12, 17], "27s_law": 12, "horizont": 12, "unit": 12, "widespread": 12, "strive": 13, "pylint": 13, "resolv": 13, "nitpick": 13, "moment": [13, 14], "support": [13, 14, 15], "trunk": 13, "maintain": [13, 14], "copi": [13, 14], "rel": 13, "decor": 13, "candid": 13, "smoketest": 13, "100": 13, "coverag": 13, "room": 13, "ok_": 13, "cover": 13, "permut": 13, "along": [13, 16], "assert_rais": 13, "caf\u00e8": 13, "nose": [13, 14], "unittest2": [13, 14], "sphinx": 13, "build": 13, "autodoc": 13, "pull": [13, 14], "pattern": 13, "introductori": 13, "materi": 13, "titl": 13, "overbar": 13, "underbar": 13, "summari": [13, 17], "blank": 13, "pocoo": 13, "markup": 13, "desc": [13, 17], "info": 13, "signatur": 13, "rtype": 13, "declar": 13, "backward": 13, "increment": 13, "reset": 13, "pure": [13, 17], "bugfix": 13, "sdist": 13, "upload": 13, "By": [13, 15, 17], "contrast": [13, 15, 17], "doubt": 13, "feedback": 13, "shown": 13, "via": 13, "b_": [13, 15, 17], "print_messag": 13, "dai": 13, "xgettext": 13, "runtim": 13, "friendli": 13, "reorder": 13, "paver": 13, "www": 13, "blueskyonmar": 13, "edgewal": 13, "awai": 13, "discard": 13, "deprecationwarn": 13, "interfac": 13, "new_modul": 13, "new_funct": 13, "old_funct": 13, "param": 13, "func": 13, "strng": 13, "stacklevel": 13, "as_unicod": 13, "intrus": 13, "changelog": 13, "relicens": 13, "lgplv2": [13, 14], "renam": 13, "util": 13, "pycompat24": 13, "namespac": [13, 14], "distribut": [13, 14], "independ": 13, "mandatori": 13, "whenev": [13, 17], "introduc": 13, "beyond": 13, "semant": 13, "chanc": [13, 17], "forget": 13, "supackag": 13, "meet": 13, "somewhat": 13, "stabl": 13, "integr": 13, "watch": 13, "suggest": [13, 15], "dot": 13, "findabl": 13, "pypi": 13, "config": 13, "live": 13, "readm": 13, "boilerpl": 13, "pkgutil": 13, "__path__": 13, "extend_path": 13, "__name__": [13, 17], "pythonpath": 13, "submodul": 13, "similarli": [13, 17], "expos": 13, "methodologi": 13, "19": 14, "march": 14, "2011": 14, "brand": 14, "bit": [14, 17], "invent": 14, "perhap": 14, "whatev": 14, "tini": 14, "small": 14, "sit": 14, "wait": [14, 17], "cut": [14, 17], "past": 14, "bittybit": 14, "prove": 14, "highli": [14, 17], "snippet": 14, "life": [14, 16], "core": 14, "drop": [14, 17], "dep": 14, "lightweight": 14, "enabl": 14, "everyon": 14, "reinvent": 14, "wheel": 14, "link": [14, 17], "bracket": 14, "notat": 14, "apart": 14, "homebrew": 14, "bunchifi": 14, "descend": 14, "hashlib": 14, "forward": 14, "standalon": 14, "itertool": 14, "built": 14, "recip": 14, "ordereddict": 14, "whose": [14, 17], "unittest": 14, "framework": 14, "discoveri": 14, "nosetest": 14, "gnu": 14, "public": 14, "restrict": 14, "_subprocess": 14, "test_subprocess": 14, "test_defaultdict": 14, "_base64": 14, "test_base64": 14, "guid": [14, 17], "fedora": 14, "yum": 14, "contribut": 14, "subpackag": 14, "glossari": 14, "latest": 14, "publish": [14, 16], "focus": 15, "bring": 15, "textutil": 15, "slightli": 15, "abcdef": 15, "dummy_wrapp": 15, "dummyp_wrapp": 15, "dummytansl": 15, "to_unicode_mayb": 15, "p_": 15, "exception2msg": 15, "gaftonmod": 15, "fulfil": 15, "role": 15, "buggi": 15, "intent": 15, "exception2umsg": 15, "exception2bmsg": 15, "examin": 15, "previous": 15, "went": 15, "dummi": 15, "orient": 15, "bp_": 15, "yumbas": 15, "_getconfig": 15, "__init_": 15, "startupconf": 15, "global": 15, "learn": 16, "arisen": 16, "knack": 16, "identifi": [16, 17], "coder": 16, "inconsist": 16, "shoe": 16, "deux": 16, "solut": 16, "dicken": 17, "mistak": 17, "boundari": 17, "letter": 17, "devic": 17, "concret": 17, "quick": 17, "brown": 17, "fox": 17, "jump": 17, "lazi": 17, "dog": 17, "wild": 17, "sat": 17, "coffe": 17, "mechan": 17, "manual": 17, "quit": 17, "Or": 17, "thu": 17, "proactiv": 17, "track": 17, "my_sent": 17, "hurt": 17, "mitig": 17, "factor": 17, "commun": 17, "ubiquit": 17, "alright": 17, "move": 17, "everywher": 17, "sound": 17, "huge": 17, "caveat": 17, "var": 17, "string_for_output": 17, "everytim": 17, "fine": 17, "recogn": 17, "cat": 17, "luxuri": 17, "event": 17, "afraid": 17, "pai": 17, "attent": 17, "blow": 17, "lib64": 17, "351": 17, "0xc3": 17, "glare": 17, "nativ": 17, "afterward": 17, "comprehens": 17, "direct": 17, "opposit": 17, "stick": 17, "throughout": 17, "promin": 17, "low": 17, "implicit": 17, "verbatim": 17, "resourc": 17, "utf8_": 17, "u_": 17, "bet": 17, "couldn": 17, "advis": 17, "accent": 17, "roman": 17, "asian": 17, "alphabet": 17, "mask": 17, "variat": 17, "wide": 17, "driven": 17, "mismatch": 17, "0descript": 17, "descript": 17, "sampl": 17, "txt": 17, "shell": 17, "x00shell": 17, "lan": 17, "x00file": 17, "bash": 17, "zsh": 17, "echo": 17, "377": 17, "r": 17, "posix": 17, "b_filenam": 17, "split": 17, "problemat": 17, "onto": 17, "files": 17, "haven": 17, "free": 17, "newdatafil": 17, "denot": 17, "f_ok": 17, "size": 17, "getsiz": 17, "correspond": 17, "implici": 17, "explictli": 17, "b_line": 17, "demonstr": 17, "wrote": 17, "sincer": 17, "u3057": 17, "u304a": 17}, "objects": {"kitchen.collections": [[0, 0, 0, "-", "strictdict"]], "kitchen.collections.strictdict": [[0, 1, 1, "", "StrictDict"]], "kitchen": [[1, 0, 0, "-", "exceptions"], [2, 0, 0, "-", "i18n"], [3, 0, 0, "-", "iterutils"], [10, 0, 0, "-", "versioning"]], "kitchen.exceptions": [[1, 2, 1, "", "KitchenError"]], "kitchen.i18n": [[2, 3, 1, "", "DummyTranslations"], [2, 3, 1, "", "NewGNUTranslations"], [2, 5, 1, "", "easy_gettext_setup"], [2, 5, 1, "", "get_translation_object"]], "kitchen.i18n.DummyTranslations": [[2, 1, 1, "", "input_charset"], [2, 4, 1, "", "output_charset"], [2, 4, 1, "", "set_output_charset"]], "kitchen.i18n.NewGNUTranslations": [[2, 1, 1, "", "input_charset"]], "kitchen.iterutils": [[3, 5, 1, "", "isiterable"], [3, 5, 1, "", "iterate"]], "kitchen.text": [[6, 0, 0, "-", "converters"], [7, 0, 0, "-", "display"], [1, 0, 0, "-", "exceptions"], [8, 0, 0, "-", "misc"], [9, 0, 0, "-", "utf8"]], "kitchen.text.converters": [[6, 6, 1, "", "BYTE_EXCEPTION_CONVERTERS"], [6, 6, 1, "", "EXCEPTION_CONVERTERS"], [6, 5, 1, "", "byte_string_to_xml"], [6, 5, 1, "", "bytes_to_xml"], [6, 5, 1, "", "exception_to_bytes"], [6, 5, 1, "", "exception_to_unicode"], [6, 5, 1, "", "getwriter"], [6, 5, 1, "", "guess_encoding_to_xml"], [6, 5, 1, "", "to_bytes"], [6, 5, 1, "", "to_str"], [6, 5, 1, "", "to_unicode"], [6, 5, 1, "", "to_utf8"], [6, 5, 1, "", "to_xml"], [6, 5, 1, "", "unicode_to_xml"], [6, 5, 1, "", "xml_to_byte_string"], [6, 5, 1, "", "xml_to_bytes"], [6, 5, 1, "", "xml_to_unicode"]], "kitchen.text.display": [[7, 6, 1, "", "_COMBINING"], [7, 5, 1, "", "_generate_combining_table"], [7, 5, 1, "", "_interval_bisearch"], [7, 5, 1, "", "_print_combining_table"], [7, 5, 1, "", "_textual_width_le"], [7, 5, 1, "", "_ucp_width"], [7, 5, 1, "", "byte_string_textual_width_fill"], [7, 5, 1, "", "fill"], [7, 5, 1, "", "textual_width"], [7, 5, 1, "", "textual_width_chop"], [7, 5, 1, "", "textual_width_fill"], [7, 5, 1, "", "wrap"]], "kitchen.text.exceptions": [[1, 2, 1, "", "ControlCharError"], [1, 2, 1, "", "XmlEncodeError"]], "kitchen.text.misc": [[8, 5, 1, "", "byte_string_valid_encoding"], [8, 5, 1, "", "byte_string_valid_xml"], [8, 5, 1, "", "guess_encoding"], [8, 5, 1, "", "html_entities_unescape"], [8, 5, 1, "", "isbasestring"], [8, 5, 1, "", "isbytestring"], [8, 5, 1, "", "isunicodestring"], [8, 5, 1, "", "process_control_chars"], [8, 5, 1, "", "str_eq"]], "kitchen.text.utf8": [[9, 5, 1, "", "utf8_text_fill"], [9, 5, 1, "", "utf8_text_wrap"], [9, 5, 1, "", "utf8_valid"], [9, 5, 1, "", "utf8_width"], [9, 5, 1, "", "utf8_width_chop"], [9, 5, 1, "", "utf8_width_fill"]], "kitchen.versioning": [[10, 5, 1, "", "version_tuple_to_string"]]}, "objtypes": {"0": "py:module", "1": "py:attribute", "2": "py:exception", "3": "py:class", "4": "py:method", "5": "py:function", "6": "py:data"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "attribute", "Python attribute"], "2": ["py", "exception", "Python exception"], "3": ["py", "class", "Python class"], "4": ["py", "method", "Python method"], "5": ["py", "function", "Python function"], "6": ["py", "data", "Python data"]}, "titleterms": {"kitchen": [0, 1, 2, 3, 4, 5, 6, 13, 14, 16, 17], "collect": 0, "strictdict": 0, "except": [1, 6], "base": 1, "text": [1, 5, 6, 7, 8, 17], "i18n": [2, 13, 15], "modul": [2, 3, 13], "function": [2, 6, 8, 11], "translat": 2, "object": 2, "iterutil": 3, "api": [4, 11, 13, 17], "unicod": [5, 6, 11, 17], "utf8": 5, "xml": [5, 6], "oh": 5, "my": 5, "convert": [6, 17], "byte": [6, 11, 17], "string": [6, 17], "python2": [6, 17], "strategi": 6, "explicit": 6, "convers": [6, 11], "when": [6, 11, 17], "us": [6, 16, 17], "an": 6, "altern": 6, "gotcha": 6, "how": 6, "avoid": [6, 11], "them": 6, "str": [6, 11, 17], "obj": 6, "print": 6, "dict": 6, "kei": 6, "transform": 6, "work": 6, "messag": 6, "format": 7, "displai": 7, "intern": 7, "data": [7, 11, 17], "miscellan": 8, "manipul": 8, "utf": 9, "8": 9, "helper": 10, "version": [10, 13], "softwar": 10, "pep": 10, "386": 10, "compliant": 10, "design": 11, "awar": 11, "content": [11, 14], "take": [11, 17], "either": 11, "output": [11, 17], "onli": 11, "same": 11, "type": [11, 17], "separ": 11, "decid": 11, "whether": 11, "valu": [11, 17], "i": 11, "return": 11, "write": [11, 16, 17], "extern": 11, "updat": [11, 13], "structur": 11, "unless": 11, "fail": 11, "ignor": 11, "chanc": 11, "recoveri": 11, "rais": 11, "unicodeexcept": 11, "know": 11, "your": 11, "do": 11, "you": 11, "need": [11, 17], "oper": 11, "both": [11, 17], "can": 11, "restrict": 11, "encod": 11, "singl": 11, "multibyt": 11, "fix": 11, "width": 11, "variabl": 11, "ascii": [11, 17], "compat": [11, 13], "escap": 11, "other": [11, 14, 17], "glossari": 12, "convent": [13, 17], "contribut": 13, "style": 13, "python": [13, 15], "2": [13, 17], "4": [13, 17], "unittest": [13, 17], "docstr": 13, "document": 13, "new": 13, "file": 13, "subpackag": 13, "criteria": 13, "addon": 13, "packag": 13, "setup": 13, "py": 13, "directori": 13, "layout": 13, "fake": 13, "everyth": 14, "sink": 14, "requir": 14, "soft": 14, "recommend": 14, "librari": 14, "licens": 14, "indic": 14, "tabl": 14, "project": 14, "page": 14, "1": [15, 17], "0": 15, "port": 15, "guid": 15, "fedora": 15, "yum": 15, "initi": 15, "good": 16, "code": 16, "overcom": 17, "frustrat": 17, "correctli": 17, "inconsist": 17, "error": 17, "3": 17, "treatment": 17, "5": 17, "The": 17, "shoe": 17, "now": 17, "doesn": 17, "t": 17, "part": 17, "deux": 17, "A": 17, "few": 17, "solut": 17, "border": 17, "treat": 17, "name": 17, "back": 17, "includ": 17, "non": 17, "Be": 17, "vigil": 17, "about": 17, "spot": 17, "poor": 17, "exampl": 17, "put": 17, "thi": 17, "all": 17, "togeth": 17}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 57}, "alltitles": {"Kitchen.collections": [[0, "module-kitchen.collections.strictdict"]], "StrictDict": [[0, "strictdict"]], "Exceptions": [[1, "exceptions"]], "Base kitchen exceptions": [[1, "base-kitchen-exceptions"]], "Kitchen.text exceptions": [[1, "kitchen-text-exceptions"]], "Kitchen.i18n Module": [[2, "module-kitchen.i18n"]], "Functions": [[2, "functions"], [6, "functions"]], "Translation Objects": [[2, "translation-objects"]], "Kitchen.iterutils Module": [[3, "module-kitchen.iterutils"]], "Kitchen API": [[4, "kitchen-api"]], "Kitchen.text: unicode and utf8 and xml oh my!": [[5, "kitchen-text-unicode-and-utf8-and-xml-oh-my"]], "Kitchen.text.converters": [[6, "module-kitchen.text.converters"]], "Byte Strings and Unicode in Python2": [[6, "byte-strings-and-unicode-in-python2"]], "Strategy for Explicit Conversion": [[6, "strategy-for-explicit-conversion"]], "When to use an alternate strategy": [[6, "when-to-use-an-alternate-strategy"]], "Gotchas and how to avoid them": [[6, "gotchas-and-how-to-avoid-them"]], "str(obj)": [[6, "str-obj"]], "print": [[6, "print"]], "Unicode, str, and dict keys": [[6, "unicode-str-and-dict-keys"]], "Unicode and byte str conversion": [[6, "unicode-and-byte-str-conversion"]], "Transformation to XML": [[6, "transformation-to-xml"]], "Working with exception messages": [[6, "working-with-exception-messages"]], "Format Text for Display": [[7, "format-text-for-display"]], "Internal Data": [[7, "internal-data"]], "Miscellaneous functions for manipulating text": [[8, "miscellaneous-functions-for-manipulating-text"]], "UTF-8": [[9, "utf-8"]], "Helpers for versioning software": [[10, "module-kitchen.versioning"]], "PEP-386 compliant versioning": [[10, "pep-386-compliant-versioning"]], "Designing Unicode Aware APIs": [[11, "designing-unicode-aware-apis"]], "Contents": [[11, "contents"], [14, "contents"]], "Take either bytes or unicode, output only unicode": [[11, "take-either-bytes-or-unicode-output-only-unicode"]], "Take either bytes or unicode, output the same type": [[11, "take-either-bytes-or-unicode-output-the-same-type"]], "Separate functions": [[11, "separate-functions"]], "Deciding whether to take str or unicode when no value is returned": [[11, "deciding-whether-to-take-str-or-unicode-when-no-value-is-returned"]], "Writing to external data": [[11, "writing-to-external-data"]], "Updating data structures": [[11, "updating-data-structures"]], "APIs to Avoid": [[11, "apis-to-avoid"]], "Returning unicode unless a conversion fails": [[11, "returning-unicode-unless-a-conversion-fails"]], "Ignoring values with no chance of recovery": [[11, "ignoring-values-with-no-chance-of-recovery"]], "Raising a UnicodeException with no chance of recovery": [[11, "raising-a-unicodeexception-with-no-chance-of-recovery"]], "Knowing your data": [[11, "knowing-your-data"]], "Do you need to operate on both bytes and unicode?": [[11, "do-you-need-to-operate-on-both-bytes-and-unicode"]], "Can you restrict the encodings?": [[11, "can-you-restrict-the-encodings"]], "Single byte encodings": [[11, "single-byte-encodings"]], "Multibyte encodings": [[11, "multibyte-encodings"]], "Fixed width": [[11, "fixed-width"]], "Variable Width": [[11, "variable-width"]], "ASCII compatible": [[11, "ascii-compatible"]], "Escaped": [[11, "escaped"]], "Other": [[11, "other"]], "Glossary": [[12, "glossary"]], "Conventions for contributing to kitchen": [[13, "conventions-for-contributing-to-kitchen"]], "Style": [[13, "style"]], "Python 2.4 compatibility": [[13, "python-2-4-compatibility"]], "Unittests": [[13, "unittests"]], "Docstrings and documentation": [[13, "docstrings-and-documentation"]], "Kitchen versioning": [[13, "kitchen-versioning"]], "I18N": [[13, "i18n"]], "API updates": [[13, "api-updates"]], "NEWS file": [[13, "news-file"]], "Kitchen subpackages": [[13, "kitchen-subpackages"]], "Versioning": [[13, "versioning"], [13, "id2"]], "Criteria for subpackages in kitchen": [[13, "criteria-for-subpackages-in-kitchen"]], "Kitchen addon packages": [[13, "kitchen-addon-packages"]], "setup.py": [[13, "setup-py"]], "Package directory layout": [[13, "package-directory-layout"]], "Fake kitchen module": [[13, "fake-kitchen-module"]], "Kitchen, everything but the sink": [[14, "kitchen-everything-but-the-sink"]], "Requirements": [[14, "requirements"]], "Soft Requirements": [[14, "soft-requirements"]], "Other Recommended Libraries": [[14, "other-recommended-libraries"]], "License": [[14, "license"]], "Indices and tables": [[14, "indices-and-tables"]], "Project Pages": [[14, "project-pages"]], "1.0.0 Porting Guide": [[15, "porting-guide"]], "python-fedora": [[15, "python-fedora"]], "yum": [[15, "yum"]], "Initializing Yum i18n": [[15, "initializing-yum-i18n"]], "Using kitchen to write good code": [[16, "using-kitchen-to-write-good-code"]], "Overcoming frustration: Correctly using unicode in python2": [[17, "overcoming-frustration-correctly-using-unicode-in-python2"]], "Frustration #1: Inconsistent Errors": [[17, "frustration-1-inconsistent-errors"]], "Frustration #2: Inconsistent APIs": [[17, "frustration-2-inconsistent-apis"]], "Frustration #3: Inconsistent treatment of output": [[17, "frustration-3-inconsistent-treatment-of-output"]], "Frustrations #4 and #5 \u2013 The other shoes": [[17, "frustrations-4-and-5-the-other-shoes"]], "Frustration #4: Now it doesn\u2019t take byte strings?!": [[17, "frustration-4-now-it-doesn-t-take-byte-strings"]], "Frustration #5: Inconsistent APIs Part deux": [[17, "frustration-5-inconsistent-apis-part-deux"]], "A few solutions": [[17, "a-few-solutions"]], "Convert text at the border": [[17, "convert-text-at-the-border"]], "When the data needs to be treated as bytes (or unicode) use a naming convention": [[17, "when-the-data-needs-to-be-treated-as-bytes-or-unicode-use-a-naming-convention"]], "When outputting data, convert back into bytes": [[17, "when-outputting-data-convert-back-into-bytes"]], "When writing unittests, include non-ASCII values and both unicode and str type": [[17, "when-writing-unittests-include-non-ascii-values-and-both-unicode-and-str-type"]], "Be vigilant about spotting poor APIs": [[17, "be-vigilant-about-spotting-poor-apis"]], "Example: Putting this all together with kitchen": [[17, "example-putting-this-all-together-with-kitchen"]]}, "indexentries": {"strictdict (in module kitchen.collections.strictdict)": [[0, "kitchen.collections.strictdict.StrictDict"]], "kitchen.collections.strictdict": [[0, "module-kitchen.collections.strictdict"]], "module": [[0, "module-kitchen.collections.strictdict"], [1, "module-kitchen.exceptions"], [1, "module-kitchen.text.exceptions"], [2, "module-kitchen.i18n"], [3, "module-kitchen.iterutils"], [6, "module-kitchen.text.converters"], [7, "module-kitchen.text.display"], [8, "module-kitchen.text.misc"], [9, "module-kitchen.text.utf8"], [10, "module-kitchen.versioning"]], "controlcharerror": [[1, "kitchen.text.exceptions.ControlCharError"]], "kitchenerror": [[1, "kitchen.exceptions.KitchenError"]], "xmlencodeerror": [[1, "kitchen.text.exceptions.XmlEncodeError"]], "kitchen.exceptions": [[1, "module-kitchen.exceptions"]], "kitchen.text.exceptions": [[1, "module-kitchen.text.exceptions"]], "dummytranslations (class in kitchen.i18n)": [[2, "kitchen.i18n.DummyTranslations"]], "newgnutranslations (class in kitchen.i18n)": [[2, "kitchen.i18n.NewGNUTranslations"]], "easy_gettext_setup() (in module kitchen.i18n)": [[2, "kitchen.i18n.easy_gettext_setup"]], "get_translation_object() (in module kitchen.i18n)": [[2, "kitchen.i18n.get_translation_object"]], "input_charset (kitchen.i18n.dummytranslations attribute)": [[2, "kitchen.i18n.DummyTranslations.input_charset"]], "input_charset (kitchen.i18n.newgnutranslations attribute)": [[2, "kitchen.i18n.NewGNUTranslations.input_charset"]], "kitchen.i18n": [[2, "module-kitchen.i18n"]], "output_charset() (kitchen.i18n.dummytranslations method)": [[2, "kitchen.i18n.DummyTranslations.output_charset"]], "set_output_charset() (kitchen.i18n.dummytranslations method)": [[2, "kitchen.i18n.DummyTranslations.set_output_charset"]], "isiterable() (in module kitchen.iterutils)": [[3, "kitchen.iterutils.isiterable"]], "iterate() (in module kitchen.iterutils)": [[3, "kitchen.iterutils.iterate"]], "kitchen.iterutils": [[3, "module-kitchen.iterutils"]], "byte_exception_converters (in module kitchen.text.converters)": [[6, "kitchen.text.converters.BYTE_EXCEPTION_CONVERTERS"]], "exception_converters (in module kitchen.text.converters)": [[6, "kitchen.text.converters.EXCEPTION_CONVERTERS"]], "lc_all": [[6, "index-0"], [6, "index-2"], [6, "index-3"], [6, "index-4"]], "lc_ctype": [[6, "index-1"]], "byte_string_to_xml() (in module kitchen.text.converters)": [[6, "kitchen.text.converters.byte_string_to_xml"]], "bytes_to_xml() (in module kitchen.text.converters)": [[6, "kitchen.text.converters.bytes_to_xml"]], "environment variable": [[6, "index-0"], [6, "index-1"], [6, "index-2"], [6, "index-3"], [6, "index-4"], [13, "index-1"]], "exception_to_bytes() (in module kitchen.text.converters)": [[6, "kitchen.text.converters.exception_to_bytes"]], "exception_to_unicode() (in module kitchen.text.converters)": [[6, "kitchen.text.converters.exception_to_unicode"]], "getwriter() (in module kitchen.text.converters)": [[6, "kitchen.text.converters.getwriter"]], "guess_encoding_to_xml() (in module kitchen.text.converters)": [[6, "kitchen.text.converters.guess_encoding_to_xml"]], "kitchen.text.converters": [[6, "module-kitchen.text.converters"]], "to_bytes() (in module kitchen.text.converters)": [[6, "kitchen.text.converters.to_bytes"]], "to_str() (in module kitchen.text.converters)": [[6, "kitchen.text.converters.to_str"]], "to_unicode() (in module kitchen.text.converters)": [[6, "kitchen.text.converters.to_unicode"]], "to_utf8() (in module kitchen.text.converters)": [[6, "kitchen.text.converters.to_utf8"]], "to_xml() (in module kitchen.text.converters)": [[6, "kitchen.text.converters.to_xml"]], "unicode_to_xml() (in module kitchen.text.converters)": [[6, "kitchen.text.converters.unicode_to_xml"]], "xml_to_byte_string() (in module kitchen.text.converters)": [[6, "kitchen.text.converters.xml_to_byte_string"]], "xml_to_bytes() (in module kitchen.text.converters)": [[6, "kitchen.text.converters.xml_to_bytes"]], "xml_to_unicode() (in module kitchen.text.converters)": [[6, "kitchen.text.converters.xml_to_unicode"]], "_combining (in module kitchen.text.display)": [[7, "kitchen.text.display._COMBINING"]], "_generate_combining_table() (in module kitchen.text.display)": [[7, "kitchen.text.display._generate_combining_table"]], "_interval_bisearch() (in module kitchen.text.display)": [[7, "kitchen.text.display._interval_bisearch"]], "_print_combining_table() (in module kitchen.text.display)": [[7, "kitchen.text.display._print_combining_table"]], "_textual_width_le() (in module kitchen.text.display)": [[7, "kitchen.text.display._textual_width_le"]], "_ucp_width() (in module kitchen.text.display)": [[7, "kitchen.text.display._ucp_width"]], "byte_string_textual_width_fill() (in module kitchen.text.display)": [[7, "kitchen.text.display.byte_string_textual_width_fill"]], "fill() (in module kitchen.text.display)": [[7, "kitchen.text.display.fill"]], "kitchen.text.display": [[7, "module-kitchen.text.display"]], "textual_width() (in module kitchen.text.display)": [[7, "kitchen.text.display.textual_width"]], "textual_width_chop() (in module kitchen.text.display)": [[7, "kitchen.text.display.textual_width_chop"]], "textual_width_fill() (in module kitchen.text.display)": [[7, "kitchen.text.display.textual_width_fill"]], "wrap() (in module kitchen.text.display)": [[7, "kitchen.text.display.wrap"]], "byte_string_valid_encoding() (in module kitchen.text.misc)": [[8, "kitchen.text.misc.byte_string_valid_encoding"]], "byte_string_valid_xml() (in module kitchen.text.misc)": [[8, "kitchen.text.misc.byte_string_valid_xml"]], "guess_encoding() (in module kitchen.text.misc)": [[8, "kitchen.text.misc.guess_encoding"]], "html_entities_unescape() (in module kitchen.text.misc)": [[8, "kitchen.text.misc.html_entities_unescape"]], "isbasestring() (in module kitchen.text.misc)": [[8, "kitchen.text.misc.isbasestring"]], "isbytestring() (in module kitchen.text.misc)": [[8, "kitchen.text.misc.isbytestring"]], "isunicodestring() (in module kitchen.text.misc)": [[8, "kitchen.text.misc.isunicodestring"]], "kitchen.text.misc": [[8, "module-kitchen.text.misc"]], "process_control_chars() (in module kitchen.text.misc)": [[8, "kitchen.text.misc.process_control_chars"]], "str_eq() (in module kitchen.text.misc)": [[8, "kitchen.text.misc.str_eq"]], "kitchen.text.utf8": [[9, "module-kitchen.text.utf8"]], "utf8_text_fill() (in module kitchen.text.utf8)": [[9, "kitchen.text.utf8.utf8_text_fill"]], "utf8_text_wrap() (in module kitchen.text.utf8)": [[9, "kitchen.text.utf8.utf8_text_wrap"]], "utf8_valid() (in module kitchen.text.utf8)": [[9, "kitchen.text.utf8.utf8_valid"]], "utf8_width() (in module kitchen.text.utf8)": [[9, "kitchen.text.utf8.utf8_width"]], "utf8_width_chop() (in module kitchen.text.utf8)": [[9, "kitchen.text.utf8.utf8_width_chop"]], "utf8_width_fill() (in module kitchen.text.utf8)": [[9, "kitchen.text.utf8.utf8_width_fill"]], "pep 386": [[10, "index-0"], [10, "index-1"], [10, "index-2"], [10, "index-3"], [10, "index-4"], [10, "index-5"], [10, "index-6"], [10, "index-7"], [14, "index-0"]], "python enhancement proposals": [[10, "index-0"], [10, "index-1"], [10, "index-2"], [10, "index-3"], [10, "index-4"], [10, "index-5"], [10, "index-6"], [10, "index-7"], [11, "index-0"], [13, "index-0"], [14, "index-0"]], "kitchen.versioning": [[10, "module-kitchen.versioning"]], "version_tuple_to_string() (in module kitchen.versioning)": [[10, "kitchen.versioning.version_tuple_to_string"]], "pep 383": [[11, "index-0"]], "\"everything but the kitchen sink\"": [[12, "term-Everything-but-the-kitchen-sink"]], "api version": [[12, "term-API-version"]], "ascii": [[12, "term-ASCII"]], "ascii compatible": [[12, "term-ASCII-compatible"]], "i18n": [[12, "term-I18N"]], "murphy's law": [[12, "term-Murphy-s-Law"]], "utf-8": [[12, "term-UTF-8"]], "code point": [[12, "term-code-point"]], "code points": [[12, "term-code-points"]], "control character": [[12, "term-control-character"]], "control characters": [[12, "term-control-characters"]], "grapheme": [[12, "term-grapheme"]], "message catalog": [[12, "term-message-catalog"]], "message catalogs": [[12, "term-message-catalogs"]], "release version": [[12, "term-release-version"]], "textual width": [[12, "term-textual-width"]], "pep 8": [[13, "index-0"]], "pythonpath": [[13, "index-1"]]}})