Two places in this code Python 3 changed from raising ValueError
to TypeError. So catch the addition exceptions.
IMO this code might be better off performing type sniffing. But
I'm not sure the implications of changing that.
| pulkit | |
| durin42 |
| hg-reviewers |
Two places in this code Python 3 changed from raising ValueError
to TypeError. So catch the addition exceptions.
IMO this code might be better off performing type sniffing. But
I'm not sure the implications of changing that.
| Automatic diff as part of commit; lint not applicable. |
| Automatic diff as part of commit; unit tests not applicable. |
| Path | Packages | |||
|---|---|---|---|---|
| M | mercurial/templatekw.py (8 lines) |
| Status | Author | Revision | |
|---|---|---|---|
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Needs Revision | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg | ||
| Closed | indygreg |
| return | return | ||||
| startname = 'start_' + plural | startname = 'start_' + plural | ||||
| if startname in templ: | if startname in templ: | ||||
| yield templ(startname, **strmapping) | yield templ(startname, **strmapping) | ||||
| vmapping = mapping.copy() | vmapping = mapping.copy() | ||||
| def one(v, tag=name): | def one(v, tag=name): | ||||
| try: | try: | ||||
| vmapping.update(v) | vmapping.update(v) | ||||
| except (AttributeError, ValueError): | # Python 2 raises ValueError if the type of v is wrong. Python | ||||
| # 3 raises TypeError. | |||||
| except (AttributeError, TypeError, ValueError): | |||||
| try: | try: | ||||
| # Python 2 raises ValueError trying to destructure an e.g. | |||||
| # bytes. Python 3 raises TypeError. | |||||
| for a, b in v: | for a, b in v: | ||||
| vmapping[a] = b | vmapping[a] = b | ||||
| except ValueError: | except (TypeError, ValueError): | ||||
| vmapping[name] = v | vmapping[name] = v | ||||
| return templ(tag, **pycompat.strkwargs(vmapping)) | return templ(tag, **pycompat.strkwargs(vmapping)) | ||||
| lastname = 'last_' + name | lastname = 'last_' + name | ||||
| if lastname in templ: | if lastname in templ: | ||||
| last = values.pop() | last = values.pop() | ||||
| else: | else: | ||||
| last = None | last = None | ||||
| for v in values: | for v in values: | ||||