[Python-Dev] Problems with unicode_literals

Barry Warsaw barry at python.org
Sat Jan 17 04:45:28 CET 2009


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Jan 16, 2009, at 10:26 PM, Guido van Rossum wrote:

> Is the issue that in foo(**{'a': 1, 'b': 1}) the 'a' and 'b' are
> unicode and not acceptable as keyword arguments? I agree that should
> be fixed, though I'm not sure it'll be easy.
>
> I'm not sure you're saying that the optparse case shouldn't be fixed
> in 2.6. or the foo(**{...}) shouldn't be fixed in 2.6, though I think
> the latter.

Yep, sorry, it's been a long week. ;)

The optparse one could easily be fixed for 2.6, if we agree it should  
be fixed.  This untested patch should do it I think:

Index: Lib/optparse.py
===================================================================
- --- Lib/optparse.py	(revision 68465)
+++ Lib/optparse.py	(working copy)
@@ -994,7 +994,7 @@
          """add_option(Option)
             add_option(opt_str, ..., kwarg=val, ...)
          """
- -        if type(args[0]) is types.StringType:
+        if type(args[0]) in types.StringTypes:
              option = self.option_class(*args, **kwargs)
          elif len(args) == 1 and not kwargs:
              option = args[0]

Should this be fixed, or wait for 2.7?

The fact that 'a' and 'b' are unicodes and not accepted as keyword  
arguments is probably the tougher problem.  I haven't yet looked at  
what it might take to fix.  Is it worth fixing in 2.6 or is this a  
wait-for-2.7 thing?

- -Barry

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Darwin)

iQCVAwUBSXFUWHEjvBPtnXfVAQK0cgQAt5CqfAYmDCCaN7XkplrYg1mr2B6SBj5Q
oPGxuYaQAu5k4iEcicl27JFElbzzAqMtJ/bpRPVajQlagZt8s7o+dbn/dhHvIBpQ
u2nPUAtBcfoqvfMvoaCmA9xixI/N4z1dAJjkifwG9n2Dh/PhDzc6KuFFXthh6Euy
KnguC64McvE=
=U2B+
-----END PGP SIGNATURE-----


More information about the Python-Dev mailing list