Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #89713

Re: Rewriting to Python 3

References <87egn0rcc1.fsf@Equus.decebal.nl>
Date 2015-05-01 18:13 +1000
Subject Re: Rewriting to Python 3
From Chris Angelico <rosuav@gmail.com>
Newsgroups comp.lang.python
Message-ID <mailman.4.1430468012.3347.python-list@python.org> (permalink)

Show all headers | View raw


On Fri, May 1, 2015 at 5:22 PM, Cecil Westerhof <Cecil@decebal.nl> wrote:
> On my system I have:
>     PARSER_RE_STR = '/(%s)=' % '|'.join(DN_LUT.keys() + DN_LUT.values())
> in:
>     /usr/lib/python3.4/site-packages/ndg/httpsclient/ssl_peer_verification.py
>
> In Python 3 that gives:
>     TypeError: unsupported operand type(s) for +: 'dict_keys' and 'dict_values'
>
> How should I rewrite this?

The keys() and values() methods used to return lists, now they return
views. If you explicitly listify them, it should work; alternatively,
pipe-join each one separately and then pipe-join the result:

PARSER_RE_STR = '/(%s|%s)=' % ('|'.join(DN_LUT.keys()),
'|'.join(DN_LUT.values()))

Note that this is slightly different from the above; in the case of an
empty dict, the original produces empty parentheses, but my
alternative will place a junk pipe in there.

ChrisA

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Rewriting to Python 3 Cecil Westerhof <Cecil@decebal.nl> - 2015-05-01 09:22 +0200
  Re: Rewriting to Python 3 Ben Finney <ben+python@benfinney.id.au> - 2015-05-01 17:56 +1000
  Re: Rewriting to Python 3 Peter Otten <__peter__@web.de> - 2015-05-01 10:09 +0200
  Re: Rewriting to Python 3 Chris Angelico <rosuav@gmail.com> - 2015-05-01 18:13 +1000
  Re: Rewriting to Python 3 Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-05-01 09:10 +0100
  Re: Rewriting to Python 3 Cecil Westerhof <Cecil@decebal.nl> - 2015-05-01 16:41 +0200
    Re: Rewriting to Python 3 Cecil Westerhof <Cecil@decebal.nl> - 2015-05-01 16:52 +0200

csiph-web