Em Thu, 11 Feb 2021 18:10:36 +0000 Nícolas F. R. A. Prado <nfraprado@xxxxxxxxxxxxxx> escreveu: > Print warning when automarkup fails to cross-reference to another > document, so that it doesn't fail silently. > > Signed-off-by: Nícolas F. R. A. Prado <nfraprado@xxxxxxxxxxxxxx> > --- > > This patch is marked as RFC because it causes a lot of new warnings currently. > So the patch should only be applied after we reduce this to zero. The warnings > are listed at the end. Maybe it could be enabled if W=2? > > From this list of warnings, a few are paths that are wrong either due to not > starting with "Documentation/" or because the document was already converted > from .txt to .rst but the path wasn't updated. These should be fixed. > > One question that I have about this though, is: would it be better to have a > single commit fixing all of those documentation-wide or have a separate commit > for the docs of each subsystem sent to that subsystem's maintainer? > > In any case, a lot of the warnings come from .txt files that aren't part of the > documentation, and sometimes are only used as examples. This confirms the > problem of trying to cross-reference to .txt files, as already discussed in [1]. > > Looking for which .rst files include .txt files, I ended with the following > list: > > staging/index.rst:25:.. include:: ../atomic_t.txt > staging/index.rst:39:.. include:: ../atomic_bitops.txt > staging/index.rst:53:.. include:: ../memory-barriers.txt > admin-guide/devices.rst:60:.. include:: devices.txt > admin-guide/kernel-parameters.rst:208:.. include:: kernel-parameters.txt > admin-guide/aoe/examples.rst:4: .. include:: udev.txt > admin-guide/kdump/kdump.rst:544:.. include:: gdbmacros.txt > translations/ko_KR/index.rst:22:.. include:: ./memory-barriers.txt > netlabel/draft_ietf.rst:4: .. include:: draft-ietf-cipso-ipsecurity-01.txt > sparc/oradax/oracle-dax.rst:444: .. include:: dax-hv-api.txt > > Since it is a quite short list, it seems that having a .txt file inside a .rst > is the exception rather than the norm. So, in order to continue to have links > to, for example, kernel-parameters.txt pointing to kernel-parameters.rst without > changing the documentation, I propose for us to have a mapping inside > automarkup.py. This would map the .txt to the .rst files and link to them > instead. If the .txt isn't present in the mapping, it would simply be ignored, > not even a warning would be printed. > > With this mapping, the links to these special .txt documents would continue to > work without us trying to link to any other .txt file, which is great since most > of the time it doesn't make sense. And since these .txt files are there for > established purposes, I don't think new ones will be created, so there won't be > a burden in maintaining this mapping updated. > > Thoughts? > > Thanks, > Nícolas > > [1] https://lore.kernel.org/linux-doc/C91700MG55NC.EQS8AQE2J1DB@ArchWay/ > > Warnings generated: > > WARNING: PCI/pci-error-recovery: Failed to cross-reference to document powerpc/eeh-pci-error-recovery.txt > WARNING: RCU/Design/Data-Structures/Data-Structures: Failed to cross-reference to document timers/NO_HZ.txt > WARNING: RCU/rcu: Failed to cross-reference to document Documentation/RCU/RTFP.txt > WARNING: RCU/rcu: Failed to cross-reference to document Documentation/RCU/RTFP.txt > WARNING: RCU/rcu_dereference: Failed to cross-reference to document Documentation/memory-barriers.txt > WARNING: RCU/torture: Failed to cross-reference to document testid.txt > WARNING: admin-guide/abi-stable: Failed to cross-reference to document spkguide.txt > WARNING: admin-guide/abi-testing: Failed to cross-reference to document Documentation/devicetree/bindings/mfd/bd9571mwv.txt > WARNING: admin-guide/abi-testing: Failed to cross-reference to document Documentation/devicetree/bindings/leds/leds-trigger-pattern.txt > WARNING: admin-guide/abi-testing: Failed to cross-reference to document docs/specs/fw_cfg.txt > WARNING: admin-guide/aoe/aoe: Failed to cross-reference to document com/documents/AoEr11.txt > WARNING: admin-guide/aoe/aoe: Failed to cross-reference to document udev.txt > WARNING: admin-guide/bug-hunting: Failed to cross-reference to document Documentation/admin-guide/kdump/gdbmacros.txt > WARNING: admin-guide/cputopology: Failed to cross-reference to document cpu-hotplug.txt > WARNING: admin-guide/cputopology: Failed to cross-reference to document cpu-hotplug.txt > WARNING: admin-guide/ext4: Failed to cross-reference to document Documentation/filesystems/dax.txt > WARNING: admin-guide/hw-vuln/l1tf: Failed to cross-reference to document org/doc/Documentation/admin-guide/cgroup-v1/cpusets.rst > WARNING: admin-guide/hw-vuln/l1tf: Failed to cross-reference to document org/doc/Documentation/core-api/irq/irq-affinity.rst > WARNING: admin-guide/java: Failed to cross-reference to document binfmt_misc.txt > WARNING: admin-guide/reporting-issues: Failed to cross-reference to document admin-guide/bug-hunting.rst > WARNING: admin-guide/sysctl/fs: Failed to cross-reference to document intro.rst > WARNING: admin-guide/unicode: Failed to cross-reference to document org/docs/unicode/admin-guide/unicode.rst > WARNING: arm/keystone/knav-qmss: Failed to cross-reference to document Documentation/devicetree/bindings/soc/ti/keystone-navigator-qmss.txt > WARNING: arm/keystone/overview: Failed to cross-reference to document Documentation/devicetree/bindings/arm/keystone/keystone.txt > WARNING: arm/samsung-s3c24xx/overview: Failed to cross-reference to document EB2410ITX.txt > WARNING: arm/samsung-s3c24xx/overview: Failed to cross-reference to document GPIO.txt > WARNING: arm/samsung-s3c24xx/overview: Failed to cross-reference to document Suspend.txt > WARNING: core-api/circular-buffers: Failed to cross-reference to document Documentation/memory-barriers.txt > WARNING: core-api/debugging-via-ohci1394: Failed to cross-reference to document README.txt > WARNING: core-api/dma-api-howto: Failed to cross-reference to document DMA-API.txt > WARNING: core-api/kernel-api: Failed to cross-reference to document c.txt > WARNING: core-api/kernel-api: Failed to cross-reference to document Documentation/core-api/atomic_ops.rst > WARNING: core-api/refcount-vs-atomic: Failed to cross-reference to document tools/memory-model/Documentation/explanation.txt > WARNING: core-api/refcount-vs-atomic: Failed to cross-reference to document memory-barriers.txt > WARNING: core-api/refcount-vs-atomic: Failed to cross-reference to document atomic_t.txt > WARNING: core-api/refcount-vs-atomic: Failed to cross-reference to document memory-barriers.txt > WARNING: dev-tools/coccinelle: Failed to cross-reference to document com/coccinelle/coccinelle/blob/master/install.txt > WARNING: devicetree/bindings/submitting-patches: Failed to cross-reference to document bindings/ABI.txt > WARNING: devicetree/bindings/writing-bindings: Failed to cross-reference to document property-units.txt > WARNING: driver-api/console: Failed to cross-reference to document fbcon.txt > WARNING: driver-api/fpga/fpga-region: Failed to cross-reference to document ../devicetree/bindings/fpga/fpga-region.txt > WARNING: driver-api/gpio/board: Failed to cross-reference to document gpio-legacy.txt > WARNING: driver-api/gpio/consumer: Failed to cross-reference to document gpio-legacy.txt > WARNING: driver-api/gpio/index: Failed to cross-reference to document Documentation/devicetree/bindings/gpio/gpio.txt > WARNING: driver-api/gpio/index: Failed to cross-reference to document Documentation/devicetree/bindings/gpio/gpio.txt > WARNING: driver-api/gpio/intro: Failed to cross-reference to document gpio-legacy.txt > WARNING: driver-api/gpio/intro: Failed to cross-reference to document gpio-legacy.txt > WARNING: driver-api/gpio/intro: Failed to cross-reference to document gpio-legacy.txt > WARNING: driver-api/gpio/legacy: Failed to cross-reference to document Documentation/devicetree/bindings/gpio/gpio.txt > WARNING: driver-api/isapnp: Failed to cross-reference to document pnp.txt > WARNING: driver-api/media/drivers/cx88-devel: Failed to cross-reference to document edu/circuit_archive/text/ir_decode.txt > WARNING: driver-api/media/drivers/dvb-usb: Failed to cross-reference to document vp7041.txt > WARNING: driver-api/miscellaneous: Failed to cross-reference to document Documentation/devicetree/bindings/serial/rs485.txt > WARNING: driver-api/nvmem: Failed to cross-reference to document Documentation/devicetree/bindings/nvmem/nvmem.txt > WARNING: driver-api/phy/phy: Failed to cross-reference to document Documentation/devicetree/bindings/phy/phy-bindings.txt > WARNING: driver-api/pinctl: Failed to cross-reference to document Documentation/devicetree/bindings/gpio/gpio.txt > WARNING: driver-api/rfkill: Failed to cross-reference to document admin-guide/kernel-parameters.rst > WARNING: driver-api/serial/serial-rs485: Failed to cross-reference to document Documentation/devicetree/bindings/serial/rs485.txt > WARNING: fb/cmap_xfbdev: Failed to cross-reference to document rgb.txt > WARNING: fb/framebuffer: Failed to cross-reference to document xc/programs/Xserver/hw/xfree86/doc/modeDB.txt > WARNING: filesystems/ext2: Failed to cross-reference to document Documentation/filesystems/dax.txt > WARNING: filesystems/nfs/rpc-server-gss: Failed to cross-reference to document org/rfc/rfc2203.txt > WARNING: filesystems/nfs/rpc-server-gss: Failed to cross-reference to document org/rfc/rfc5403.txt > WARNING: filesystems/nfs/rpc-server-gss: Failed to cross-reference to document org/rfc/rfc7861.txt > WARNING: filesystems/ramfs-rootfs-initramfs: Failed to cross-reference to document buffer-format.txt > WARNING: filesystems/sysfs: Failed to cross-reference to document /fuse.txt > WARNING: filesystems/ubifs-authentication: Failed to cross-reference to document org/doc/Documentation/device-mapper/dm-integrity.rst > WARNING: filesystems/ubifs-authentication: Failed to cross-reference to document org/doc/Documentation/device-mapper/verity.rst > WARNING: filesystems/vfat: Failed to cross-reference to document longfilename.txt > WARNING: filesystems/vfat: Failed to cross-reference to document longfile.txt > WARNING: filesystems/vfat: Failed to cross-reference to document longfile.txt > WARNING: filesystems/vfat: Failed to cross-reference to document 1.txt > WARNING: firmware-guide/acpi/dsd/graph: Failed to cross-reference to document Documentation/devicetree/bindings/graph.txt > WARNING: firmware-guide/acpi/dsd/leds: Failed to cross-reference to document Documentation/devicetree/bindings/leds/common.txt > WARNING: firmware-guide/acpi/dsd/leds: Failed to cross-reference to document Documentation/devicetree/bindings/media/video-interfaces.txt > WARNING: firmware-guide/acpi/gpio-properties: Failed to cross-reference to document Documentation/devicetree/bindings/gpio/gpio.txt > WARNING: firmware-guide/acpi/video_extension: Failed to cross-reference to document admin-guide/kernel-parameters.rst > WARNING: gpu/drm-kms-helpers: Failed to cross-reference to document Documentation/devicetree/bindings/graph.txt > WARNING: gpu/drm-kms-helpers: Failed to cross-reference to document Documentation/devicetree/bindings/graph.txt > WARNING: hwmon/g762: Failed to cross-reference to document Documentation/devicetree/bindings/hwmon/g762.txt > WARNING: hwmon/ina2xx: Failed to cross-reference to document Documentation/devicetree/bindings/hwmon/ina2xx.txt > WARNING: hwmon/scpi-hwmon: Failed to cross-reference to document scpi.txt > WARNING: hwmon/vexpress: Failed to cross-reference to document Documentation/devicetree/bindings/hwmon/vexpress.txt > WARNING: infiniband/ipoib: Failed to cross-reference to document org/rfc/rfc4391.txt > WARNING: infiniband/ipoib: Failed to cross-reference to document org/rfc/rfc4392.txt > WARNING: infiniband/ipoib: Failed to cross-reference to document org/rfc/rfc4755.txt > WARNING: input/ff: Failed to cross-reference to document joystick.txt > WARNING: input/ff: Failed to cross-reference to document joystick.txt > WARNING: leds/leds-class-multicolor: Failed to cross-reference to document led-class.rst > WARNING: locking/futex-requeue-pi: Failed to cross-reference to document rt-mutex-desgin.txt > WARNING: locking/spinlocks: Failed to cross-reference to document Documentation/memory-barriers.txt > WARNING: misc-devices/xilinx_sdfec: Failed to cross-reference to document sd-fec.txt > WARNING: netlabel/cipso_ipv4: Failed to cross-reference to document draft-ietf-cipso-ipsecurity-01.txt > WARNING: networking/device_drivers/ethernet/altera/altera_tse: Failed to cross-reference to document org/rfc/rfc2863.txt > WARNING: networking/device_drivers/ethernet/altera/altera_tse: Failed to cross-reference to document org/rfc/rfc2819.txt > WARNING: networking/device_drivers/ethernet/cirrus/cs89x0: Failed to cross-reference to document readme.txt > WARNING: networking/device_drivers/ethernet/freescale/dpaa2/overview: Failed to cross-reference to document qoriq-mc.txt > WARNING: networking/device_drivers/ethernet/intel/e100: Failed to cross-reference to document /Documentation/networking/bonding.rst > WARNING: networking/device_drivers/ethernet/intel/e1000: Failed to cross-reference to document networking/ip-sysctl.txt > WARNING: networking/device_drivers/ethernet/intel/ixgb: Failed to cross-reference to document /Documentation/networking/bonding.rst > WARNING: networking/device_drivers/ethernet/intel/ixgb: Failed to cross-reference to document networking/ip-sysctl.txt > WARNING: networking/filter: Failed to cross-reference to document test_in.txt > WARNING: networking/filter: Failed to cross-reference to document test_out.txt > WARNING: networking/ip-sysctl: Failed to cross-reference to document org/id/draft-nishida-tsvwg-sctp-failover-05.txt > WARNING: networking/kapi: Failed to cross-reference to document phy_driver.txt > WARNING: networking/mac80211-injection: Failed to cross-reference to document /Documentation/networking/radiotap-headers.rst > WARNING: networking/sctp: Failed to cross-reference to document org/rfc/rfc2960.txt > WARNING: networking/timestamping: Failed to cross-reference to document Documentation/devicetree/bindings/ptp/timestamper.txt > WARNING: networking/udplite: Failed to cross-reference to document uk/users/gerrit/udp-lite/files/UDP-Lite-HOWTO.txt > WARNING: networking/udplite: Failed to cross-reference to document org/rfc/rfc3828.txt > WARNING: power/power_supply_class: Failed to cross-reference to document Documentation/devicetree/bindings/power/supply/battery.txt > WARNING: process/8.Conclusion: Failed to cross-reference to document process/howto.rst > WARNING: process/8.Conclusion: Failed to cross-reference to document process/submitting-patches.rst > WARNING: process/8.Conclusion: Failed to cross-reference to document process/submitting-drivers.rst > WARNING: process/coding-style: Failed to cross-reference to document process/coding-style.rst > WARNING: process/howto: Failed to cross-reference to document akpm/stuff/tpp.txt > WARNING: process/howto: Failed to cross-reference to document akpm/stuff/tpp.txt > WARNING: process/management-style: Failed to cross-reference to document process/coding-style.rst > WARNING: process/submitting-patches: Failed to cross-reference to document akpm/stuff/tpp.txt > WARNING: scheduler/sched-bwc: Failed to cross-reference to document Documentation/admin-guide/cgroupv2.rst > WARNING: scheduler/sched-capacity: Failed to cross-reference to document Documentation/devicetree/bindings/arm/cpu-capacity.txt > WARNING: scsi/scsi-generic: Failed to cross-reference to document cz/sg/p/scsi-generic_long.txt > WARNING: scsi/scsi-generic: Failed to cross-reference to document net/sg/p/original/SCSI-Programming-HOWTO.txt > WARNING: security/tpm/xen-tpmfront: Failed to cross-reference to document docs/misc/vtpm.txt > WARNING: sound/alsa-configuration: Failed to cross-reference to document powersave.rst > WARNING: sound/alsa-configuration: Failed to cross-reference to document hdspm.rst > WARNING: sound/alsa-configuration: Failed to cross-reference to document MIXART.txt > WARNING: sound/cards/bt87x: Failed to cross-reference to document btaudio.txt > WARNING: sound/designs/procfile: Failed to cross-reference to document OSS-Emulation.txt > WARNING: sound/hd-audio/controls: Failed to cross-reference to document HD-Audio.txt > WARNING: sound/soc/platform: Failed to cross-reference to document DPCM.txt > WARNING: sparc/oradax/oracle-dax: Failed to cross-reference to document dax-hv-api.txt > WARNING: sparc/oradax/oracle-dax: Failed to cross-reference to document dax-hv-api.txt > WARNING: trace/coresight/coresight: Failed to cross-reference to document Documentation/devicetree/bindings/arm/coresight.txt > WARNING: trace/coresight/coresight-cpu-debug: Failed to cross-reference to document Documentation/devicetree/bindings/arm/coresight-cpu-debug.txt > WARNING: trace/ftrace: Failed to cross-reference to document uprobetrace.txt > WARNING: trace/kprobes: Failed to cross-reference to document tools/perf/Documentation/perf-probe.txt > WARNING: translations/it_IT/process/1.Intro: Failed to cross-reference to document Intro.rst > WARNING: translations/it_IT/process/2.Process: Failed to cross-reference to document Process.rst > WARNING: translations/it_IT/process/3.Early-stage: Failed to cross-reference to document Early-stage.rst > WARNING: translations/it_IT/process/4.Coding: Failed to cross-reference to document Coding.rst > WARNING: translations/it_IT/process/5.Posting: Failed to cross-reference to document Posting.rst > WARNING: translations/it_IT/process/5.Posting: Failed to cross-reference to document translations/it_IT/process/submitting-patches.rst > WARNING: translations/it_IT/process/5.Posting: Failed to cross-reference to document translations/it_IT/process/submitting-drivers.rst > WARNING: translations/it_IT/process/5.Posting: Failed to cross-reference to document translations/it_IT/process/submit-checklist.rst > WARNING: translations/it_IT/process/5.Posting: Failed to cross-reference to document translations/it_IT/process/submitting-patches.rst > WARNING: translations/it_IT/process/6.Followthrough: Failed to cross-reference to document Followthrough.rst > WARNING: translations/it_IT/process/7.AdvancedTopics: Failed to cross-reference to document AdvancedTopics.rst > WARNING: translations/it_IT/process/8.Conclusion: Failed to cross-reference to document Conclusion.rst > WARNING: translations/it_IT/process/8.Conclusion: Failed to cross-reference to document process/howto.rst > WARNING: translations/it_IT/process/8.Conclusion: Failed to cross-reference to document process/submitting-patches.rst > WARNING: translations/it_IT/process/8.Conclusion: Failed to cross-reference to document process/submitting-drivers.rst > WARNING: translations/it_IT/process/coding-style: Failed to cross-reference to document process/coding-style.rst > WARNING: translations/it_IT/process/howto: Failed to cross-reference to document akpm/stuff/tpp.txt > WARNING: translations/it_IT/process/howto: Failed to cross-reference to document admin-guide/reporting-bugs.rst > WARNING: translations/it_IT/process/howto: Failed to cross-reference to document akpm/stuff/tpp.txt > WARNING: translations/it_IT/process/management-style: Failed to cross-reference to document translations/it_IT/process/coding-style.rst > WARNING: translations/it_IT/process/submitting-patches: Failed to cross-reference to document akpm/stuff/tpp.txt > WARNING: translations/ja_JP/howto: Failed to cross-reference to document akpm/stuff/tpp.txt > WARNING: translations/ja_JP/howto: Failed to cross-reference to document admin-guide/reporting-bugs.rst > WARNING: translations/ja_JP/howto: Failed to cross-reference to document akpm/stuff/tpp.txt > WARNING: translations/ko_KR/howto: Failed to cross-reference to document akpm/stuff/tpp.txt > WARNING: translations/ko_KR/howto: Failed to cross-reference to document akpm/stuff/tpp.txt > WARNING: translations/zh_CN/filesystems/tmpfs: Failed to cross-reference to document 请参见Documentation/admin-guide/cgroup-v1/cpusets.rst > WARNING: translations/zh_CN/iio/iio_configfs: Failed to cross-reference to document 请查阅Documentation/filesystems/configfs.rst > WARNING: translations/zh_CN/process/1.Intro: Failed to cross-reference to document Intro.rst > WARNING: translations/zh_CN/process/2.Process: Failed to cross-reference to document Process.rst > WARNING: translations/zh_CN/process/3.Early-stage: Failed to cross-reference to document Early-stage.rst > WARNING: translations/zh_CN/process/4.Coding: Failed to cross-reference to document Coding.rst > WARNING: translations/zh_CN/process/5.Posting: Failed to cross-reference to document Posting.rst > WARNING: translations/zh_CN/process/6.Followthrough: Failed to cross-reference to document Followthrough.rst > WARNING: translations/zh_CN/process/7.AdvancedTopics: Failed to cross-reference to document AdvancedTopics.rst > WARNING: translations/zh_CN/process/8.Conclusion: Failed to cross-reference to document Conclusion.rst > WARNING: translations/zh_CN/process/8.Conclusion: Failed to cross-reference to document process/submitting-drivers.rst > WARNING: translations/zh_CN/process/coding-style: Failed to cross-reference to document process/coding-style.rst > WARNING: translations/zh_CN/process/howto: Failed to cross-reference to document akpm/stuff/tpp.txt > WARNING: translations/zh_CN/process/howto: Failed to cross-reference to document admin-guide/reporting-bugs.rst > WARNING: translations/zh_CN/process/howto: Failed to cross-reference to document akpm/stuff/tpp.txt > WARNING: translations/zh_CN/process/management-style: Failed to cross-reference to document process/coding-style.rst > WARNING: translations/zh_CN/process/stable-kernel-rules: Failed to cross-reference to document 必须遵循Documentation/translations/zh_CN/process/submitting-patches.rst > WARNING: translations/zh_CN/process/submitting-patches: Failed to cross-reference to document akpm/stuff/tpp.txt > WARNING: userspace-api/media/v4l/ext-ctrls-camera: Failed to cross-reference to document video-interfaces.txt > WARNING: virt/kvm/vcpu-requests: Failed to cross-reference to document Documentation/core-api/atomic_ops.rst > WARNING: virt/kvm/vcpu-requests: Failed to cross-reference to document Documentation/memory-barriers.txt > WARNING: vm/hwpoison: Failed to cross-reference to document sysctl.txt > WARNING: w1/masters/omap-hdq: Failed to cross-reference to document Documentation/devicetree/bindings/w1/omap-hdq.txt > WARNING: w1/masters/w1-gpio: Failed to cross-reference to document Documentation/devicetree/bindings/w1/w1-gpio.txt > WARNING: watchdog/hpwdt: Failed to cross-reference to document Documentation/IPMI.txt > WARNING: x86/intel_txt: Failed to cross-reference to document SINIT-guide.txt > WARNING: x86/orc-unwinder: Failed to cross-reference to document tools/objtool/Documentation/stack-validation.txt > WARNING: x86/pti: Failed to cross-reference to document kernel-parameters.txt > > > Documentation/sphinx/automarkup.py | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/Documentation/sphinx/automarkup.py b/Documentation/sphinx/automarkup.py > index acf5473002f3..5a03c5080ebe 100644 > --- a/Documentation/sphinx/automarkup.py > +++ b/Documentation/sphinx/automarkup.py > @@ -7,6 +7,7 @@ > from docutils import nodes > import sphinx > from sphinx import addnodes > +from sphinx.util import logging > if sphinx.version_info[0] < 2 or \ > sphinx.version_info[0] == 2 and sphinx.version_info[1] < 1: > from sphinx.environment import NoUri > @@ -74,6 +75,8 @@ Skipfuncs = [ 'open', 'close', 'read', 'write', 'fcntl', 'mmap', > > c_namespace = '' > > +logger = None > + > def markup_refs(docname, app, node): > t = node.astext() > done = 0 > @@ -257,6 +260,8 @@ def markup_doc_ref(docname, app, match): > if xref: > return xref > else: > + logger.warning('{}: Failed to cross-reference to document ' > + '{}'.format(docname, match.group(0))) > return nodes.Text(match.group(0)) > > def get_c_namespace(app, docname): > @@ -270,7 +275,9 @@ def get_c_namespace(app, docname): > > def auto_markup(app, doctree, name): > global c_namespace > + global logger > c_namespace = get_c_namespace(app, name) > + logger = logging.getLogger(__name__) > # > # This loop could eventually be improved on. Someday maybe we > # want a proper tree traversal with a lot of awareness of which Thanks, Mauro