[PATCH] hgweb: fix the MRO in Python 3

Pulkit Goyal 7895pulkit at gmail.com
Sat Oct 8 13:18:56 EDT 2016


On Sat, Oct 8, 2016 at 7:12 PM, Martijn Pieters <mj at zopatista.com> wrote:
> # HG changeset patch
> # User Martijn Pieters <mjpieters at fb.com>
> # Date 1475946679 -7200
> #      Sat Oct 08 19:11:19 2016 +0200
> # Node ID 8475a954a40385035b57abe05af31308597a0b3c
> # Parent  2c8ec8c2ddfeb2d229b81eb5b11e3639fb34b0a0
> hgweb: fix the MRO in Python 3
>
> object should appear at the end, otherwise it tries to pre-empt the other
> new-style classes in the MRO, resulting in an unresolvable MRO in Py3. We still
> need to include object because otherwise in 2.7 we end up with an old-style
> class if threading is not supported, new-style if it is.
>
> diff --git a/mercurial/hgweb/server.py b/mercurial/hgweb/server.py
> --- a/mercurial/hgweb/server.py
> +++ b/mercurial/hgweb/server.py
> @@ -263,7 +263,7 @@
>          return open(opt, 'a')
>      return default
>
> -class MercurialHTTPServer(object, _mixin, httpservermod.httpserver):
> +class MercurialHTTPServer(_mixin, httpservermod.httpserver, object):

It's an excellent one :D

>
>      # SO_REUSEADDR has broken semantics on windows
>      if os.name == 'nt':
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


More information about the Mercurial-devel mailing list