Messages in this thread | | | Date | Thu, 24 Sep 2020 18:13:54 +0200 | From | Mauro Carvalho Chehab <> | Subject | Re: [PATCH 1/2] docs: cdomain.py: add support for two new Sphinx 3.1+ tags |
| |
Em Thu, 24 Sep 2020 09:43:35 -0600 Jonathan Corbet <corbet@lwn.net> 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@kernel.org> 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
| |