Only utf-8 encode unicode parameters in binder.
authorJosh Roesslein <jroesslein@gmail.com>
Wed, 14 Oct 2009 22:18:05 +0000 (17:18 -0500)
committerJosh Roesslein <jroesslein@gmail.com>
Wed, 14 Oct 2009 22:18:05 +0000 (17:18 -0500)
tweepy/binder.py

index 8000c32cbfa7e728ebbe0b9881ee425dd7f7f670..5728962c1b4b99866da2628d31b0e23eaf8ab74a 100644 (file)
@@ -44,9 +44,10 @@ def bind_api(path, parser, allowed_param=[], method='GET', require_auth=False,
         if allowed_param:
             parameters = {}
             for idx, arg in enumerate(args):
-                encoded_arg = arg.encode('utf-8')  # must encode parameters to utf-8
+                if isinstance(arg, unicode):
+                    arg = arg.encode('utf-8')
                 try:
-                    parameters[allowed_param[idx]] = encoded_arg
+                    parameters[allowed_param[idx]] = arg
                 except IndexError:
                     raise TweepError('Too many parameters supplied!')
             for k, arg in kargs.items():
@@ -56,7 +57,9 @@ def bind_api(path, parser, allowed_param=[], method='GET', require_auth=False,
                     raise TweepError('Multiple values for parameter %s supplied!' % k)
                 if k not in allowed_param:
                     raise TweepError('Invalid parameter %s supplied!' % k)
-                parameters[k] = arg.encode('utf-8')
+                if isinstance(arg, unicode):
+                    arg = arg.encode('utf-8')
+                parameters[k] = arg
         else:
             if len(args) > 0 or len(kargs) > 0:
                 raise TweepError('This method takes no parameters!')