Source code for py_utilities.text.string_utilities

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from __future__ import absolute_import
import array
import random
import string


[docs]def random_string(length=16, chars=string.letters+string.digits): """ Returns a random string of size length >>> test = random_string() >>> len(test) 16 """ return ''.join(random.choice(chars) for x in range(length))
[docs]def strip_punctuations(str): """ Returns string stripped of punctuations >>> strip_punctuations("asdfs. asdfasdf. asdfsaf? sadfasf!") 'asdfs asdfasdf asdfsaf sadfasf' >>> strip_punctuations("asdfs.....asdfasdf. asdfsaf? sadfasf!") 'asdfsasdfasdf asdfsaf sadfasf' >>> strip_punctuations("") '' """ return str.translate(string.maketrans("", ""), string.punctuation)
[docs]def ascii_to_str(ascii_list): """ Returns a string from a list of ascii values >>> ascii_to_str([104, 101, 108, 108, 111]) 'hello' >>> ascii_to_str([82, 121, 97, 110]) 'Ryan' """ return array.array('B', ascii_list).tostring()
[docs]def str_to_ascii(str): """ Returns a list of ascii values from a string >>> str_to_ascii('hello, world') [104, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100] >>> str_to_ascii('Ryan') [82, 121, 97, 110] """ return array.array('B', str).tolist()
[docs]def str_to_bool(str_val): """ Returns True if str_val is in ("yes", "y", "true", "t", "1"), False if str_val is in ("no", "n", "false", "f", "0", "0.0", "", "none", "[]", "{}"), and ValueError otherwise. """ if str(str_val).lower() in ("yes", "y", "true", "t", "1"): return True if str(str_val).lower() in ("no", "n", "false", "f", "0", "0.0", "", "none", "[]", "{}"): return False raise ValueError
[docs]def truncate(str, length, trailing_chars='...'): """ Returns a truncated str of length with a trailing '...' >>> truncate('foobar', 3) 'foo...' >>> truncate('foobar', 1) 'f...' >>> truncate('', 1) '' >>> truncate('hello', 100) 'hello' """ return (str[:length] + trailing_chars) if len(str) > length else str # vim: filetype=python