From: Petteri Aimonen Date: Sat, 26 Sep 2015 09:32:12 +0000 (+0300) Subject: Clean up the python2/python3 string type handling X-Git-Tag: 5.0.2~186^2~109 X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=commitdiff_plain;h=3cb3872a1adc7e8f098595cc64f3c7ac820928d7;p=apps%2Fagl-service-can-low-level.git Clean up the python2/python3 string type handling --- diff --git a/generator/nanopb_generator.py b/generator/nanopb_generator.py index 7fe0db95..37f7beb5 100755 --- a/generator/nanopb_generator.py +++ b/generator/nanopb_generator.py @@ -74,6 +74,12 @@ intsizes = { nanopb_pb2.IS_64: 'int64_t', } +# String types (for python 2 / python 3 compatibility) +try: + strtypes = (unicode, str) +except NameError: + strtypes = (str, ) + class Names: '''Keeps a set of nested names and formats them to C identifier.''' def __init__(self, parts = ()): @@ -85,14 +91,7 @@ class Names: return '_'.join(self.parts) def __add__(self, other): - # The fdesc names are unicode and need to be handled for - # python2 and python3 - try: - realstr = unicode - except NameError: - realstr = str - - if isinstance(other, realstr): + if isinstance(other, strtypes): return Names(self.parts + (other,)) elif isinstance(other, tuple): return Names(self.parts + other) @@ -126,7 +125,7 @@ class EncodedSize: '''Class used to represent the encoded size of a field or a message. Consists of a combination of symbolic sizes and integer sizes.''' def __init__(self, value = 0, symbols = []): - if isinstance(value, (str, Names)): + if isinstance(value, strtypes + (Names,)): symbols = [str(value)] value = 0 self.value = value @@ -135,7 +134,7 @@ class EncodedSize: def __add__(self, other): if isinstance(other, int): return EncodedSize(self.value + other, self.symbols) - elif isinstance(other, (str, Names)): + elif isinstance(other, strtypes + (Names,)): return EncodedSize(self.value, self.symbols + [str(other)]) elif isinstance(other, EncodedSize): return EncodedSize(self.value + other.value, self.symbols + other.symbols)