Re: [PATCH 1/2] docs: cdomain.py: add support for two new Sphinx 3.1+ tags
From: Mauro Carvalho Chehab
Date: Thu Sep 24 2020 - 12:14:01 EST
Em Thu, 24 Sep 2020 09:43:35 -0600
Jonathan Corbet <corbet@xxxxxxx> escreveu:
> So I'm just getting into this and trying to understand what's really going
> on, but one thing jumped at me:
>
> On Thu, 24 Sep 2020 13:22:04 +0200
> Mauro Carvalho Chehab <mchehab+huawei@xxxxxxxxxx> wrote:
>
> > +# Namespace to be prepended to the full name
> > +namespace = None
^^^ See here....
> > +
> > +#
> > +# Handle trivial newer c domain tags that are part of Sphinx 3.1 c domain tags
> > +# - Convert :c:expr:`foo` into ``foo``
> > +# - Store the namespace if ".. c:namespace::" tag is found
> > +
> > +RE_namespace = re.compile(r'^\s*..\s*c:namespace::\s*(\S+)\s*$')
> > +RE_expr = re.compile(r':c:expr:`([^\`]+)`')
> > +
> > +def markup_namespace(match):
> > + namespace = match.group(1)
> > +
> > + return ""
> > +
>
> How can this possibly work without a "global namespace" declaration in
> markup_namespace()?
... While I'm not a python expert, the namespace variable is global
because it was defined outside the "markup_namespace" function.
-
On a quick check at the internet, this is supposed to work properly:
https://www.programiz.com/python-programming/global-local-nonlocal-variables
-
In any cases, on my tests, this is working properly.
Anyway, I'm sending a version 2 of the series, addressing the
namespace for the remaining files under userspace-api/media.
You can try building the media books without and with the
patch series, in order to see the differences.
There are still ~200 warnings produced after that, but it
sounds that the remaining issues will require changes at
kernel-doc.
Thanks,
Mauro