diff options
author | Alexander Sulfrian <alexander.sulfrian@fu-berlin.de> | 2015-07-22 16:23:07 +0200 |
---|---|---|
committer | Alexander Sulfrian <alexander.sulfrian@fu-berlin.de> | 2015-07-22 17:14:45 +0200 |
commit | 06a6fce3f2f5c78a12937d4e52de3d824e3dd5e0 (patch) | |
tree | 137450fe991e4b774efce3ea613dceed42a8099b /src/lib/Bcfg2/Utils.py | |
parent | 0bd8cd384bbbb2062d2850923dfb33dc9c25a0b9 (diff) | |
download | bcfg2-06a6fce3f2f5c78a12937d4e52de3d824e3dd5e0.tar.gz bcfg2-06a6fce3f2f5c78a12937d4e52de3d824e3dd5e0.tar.bz2 bcfg2-06a6fce3f2f5c78a12937d4e52de3d824e3dd5e0.zip |
Utils: Generalize is_string from POSIX/File
is_string from POSIX/File could be used in other situations, too.
So we move it to Utils, use it from Lint/MergeFiles and replace a
custom is_binary function.
Diffstat (limited to 'src/lib/Bcfg2/Utils.py')
-rw-r--r-- | src/lib/Bcfg2/Utils.py | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/lib/Bcfg2/Utils.py b/src/lib/Bcfg2/Utils.py index 10057b63e..64d0d8b93 100644 --- a/src/lib/Bcfg2/Utils.py +++ b/src/lib/Bcfg2/Utils.py @@ -330,3 +330,19 @@ class classproperty(object): # pylint: disable=C0103 def __get__(self, instance, owner): return self.getter(owner) + + +def is_string(strng, encoding): + """ Returns true if the string contains no ASCII control + characters and can be decoded from the specified encoding. """ + for char in strng: + if ord(char) < 9 or ord(char) > 13 and ord(char) < 32: + return False + if not hasattr(strng, "decode"): + # py3k + return True + try: + strng.decode(encoding) + return True + except: # pylint: disable=W0702 + return False |