diff -r f4dec0cca9a1 -r 84468b90e9c1 predicates.py --- a/predicates.py Wed Sep 16 11:23:51 2015 +0200 +++ b/predicates.py Mon Sep 14 16:03:07 2015 +0200 @@ -24,6 +24,7 @@ from warnings import warn from operator import eq +from six import string_types from six.moves import range from logilab.common.deprecation import deprecated @@ -613,7 +614,7 @@ super(is_instance, self).__init__(**kwargs) self.expected_etypes = expected_etypes for etype in self.expected_etypes: - assert isinstance(etype, basestring), etype + assert isinstance(etype, string_types), etype def __str__(self): return '%s(%s)' % (self.__class__.__name__, @@ -1093,7 +1094,7 @@ """ if from_state_name is not None: warn("on_fire_transition's from_state_name argument is unused", DeprecationWarning) - if isinstance(tr_names, basestring): + if isinstance(tr_names, string_types): tr_names = set((tr_names,)) def match_etype_and_transition(trinfo): # take care trinfo.transition is None when calling change_state @@ -1293,7 +1294,7 @@ raise ValueError("match_form_params() can't be called with both " "positional and named arguments") if expected: - if len(expected) == 1 and not isinstance(expected[0], basestring): + if len(expected) == 1 and not isinstance(expected[0], string_types): raise ValueError("match_form_params() positional arguments " "must be strings") super(match_form_params, self).__init__(*expected)