Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 33.9k
gh-106948: Add Doc/nitpick_ignore.yml config file#107278
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Uh oh!
There was an error while loading. Please reload this page.
Conversation
vstinner commented Jul 25, 2023 • edited by github-actions bot
Loading Uh oh!
There was an error while loading. Please reload this page.
edited by github-actions bot
Uh oh!
There was an error while loading. Please reload this page.
vstinner commented Jul 25, 2023
I prefer YAML over TOML to write a list of strings with bare minimum formating: no quote, no |
vstinner commented Jul 25, 2023
Maintaining nitpick_ignore Python list in conf.py is a burden. Add a YAML configuration file which is easier to maintain. Ignore also standard C types in the "c:identifier" domain. Update Doc/requirements-oldest-sphinx.txt.
AA-Turner commented Jul 26, 2023
Cross-posting from discord: I’d prefer not to create an additional (CPython-custom) YAML file here if possible, perhaps instead we could have a A |
vstinner commented Jul 26, 2023
I would like to add a configuration file since writing a long list of strings in Python if annoying. The YAML file is less verbose. Also, Standard C types ( Compare: to: |
vstinner commented Jul 26, 2023
Hum, shown diferently, I have a local branch to complete these nitpick ignore list. I added many functions, macros, etc. and the list is now quite big: nitpick_ignore= [ # Standard C macros ('c:macro', 'EDOM'), ('c:macro', 'EINTR'), ('c:macro', 'LLONG_MAX'), ('c:macro', 'LLONG_MIN'), ('c:macro', 'LONG_MAX'), ('c:macro', 'LONG_MIN'), ('c:macro', 'SIGINT'), # Standard C variables ('c:data', 'errno'), # Standard environment variables ('envvar', 'BROWSER'), ('envvar', 'COLUMNS'), ('envvar', 'COMSPEC'), ('envvar', 'DISPLAY'), ('envvar', 'HOME'), ('envvar', 'HOMEDRIVE'), ('envvar', 'HOMEPATH'), ('envvar', 'IDLESTARTUP'), ('envvar', 'LANG'), ('envvar', 'LANGUAGE'), ('envvar', 'LC_ALL'), ('envvar', 'LC_CTYPE'), ('envvar', 'LC_COLLATE'), ('envvar', 'LC_MESSAGES'), ('envvar', 'LC_MONETARY'), ('envvar', 'LC_NUMERIC'), ('envvar', 'LC_TIME'), ('envvar', 'LINES'), ('envvar', 'LOGNAME'), ('envvar', 'PAGER'), ('envvar', 'PATH'), ('envvar', 'PATHEXT'), ('envvar', 'SOURCE_DATE_EPOCH'), ('envvar', 'TEMP'), ('envvar', 'TERM'), ('envvar', 'TMP'), ('envvar', 'TMPDIR'), ('envvar', 'TZ'), ('envvar', 'USER'), ('envvar', 'USERNAME'), ('envvar', 'USERPROFILE'), # Win32 API ('c:func', 'FormatMessage'), ('c:func', 'GetFileInformationByHandle'), ('c:func', 'GetLastError'), ('c:func', 'GetVersionEx'), ('c:func', 'MessageBeep'), ('c:func', 'PlaySound'), ('c:func', 'ShellExecute'), ('c:func', 'TerminateProcess'), ('c:func', 'VirtualAlloc'), ('c:func', 'VirtualFree'), ('c:func', 'WSAIoctl'), # Win32 macros ('c:macro', 'CP_ACP'), # Do not error nit-picky mode builds when _SubParsersAction.add_parser cannot# be resolved, as the method is currently undocumented. For context, see# https://github.com/python/cpython/pull/103289. ('py:meth', '_SubParsersAction.add_parser'), ] # Standard C typesc_std_types="""FILE__int64int64_tintmax_toff_tptrdiff_tsiginfo_tsize_tssize_ttime_tuint64_tuintmax_tuintptr_tva_listwcharwchar_t""".strip().split() fornameinc_std_types: nitpick_ignore.append(('c:type', name)) # "c:identifier" domain is used by types in ".. c:function:" definitionsnitpick_ignore.append(('c:identifier', name)) # Standard C functionsc_std_funcs="""_exit_stricmpabortatofcallocclosectimedlopenexecexitfcntlflockforkfreefstatfsyncgettimeofdaygetsidgmtimeinet_atoninet_ptonioctllocaleconvlocaltimelockflstatmainmallocmemmovememcpymktimemmapmunmapopenperrorposix_spawnposix_spawn_file_actions_addcloseposix_spawn_file_actions_adddup2posix_spawn_file_actions_addopenposix_spawnpprintfputenvqsortreallocselectsetenvsetpgidsetpgrpsetsidsetsockoptsigactionsigaltstacksiginterruptsignalsnprintfsplicesprintfstatstatvfsstrcasecmpstrcmpstrerrorstrlenstrncmpsystemunsetenvvsnprintfvsprintf""".strip().split() fornameinc_std_funcs: nitpick_ignore.append(('c:func', name))Note: this list is incomplete :-) |
vstinner commented Jul 26, 2023
This PR fix warnigs like: I get this warning more and more on PR changing the C API. Example in a PR changing the C API doc: https://github.com/python/cpython/pull/107274/files Even if |
hugovk commented Jul 26, 2023
I've a slight (non-blocking) preference to avoid adding more code that needs maintaining, and having Sphinx deal with reading config. Using standard Sphinx things also makes things more familiar for new contributors. And we're also cautious about adding new dependencies (PyYAML) in case downstream redistributors haven't installed them, for example, see I don't mind the existing But it's more important to me to improve the docs, including fixing/ignoring warnings, so if others also like this approach, it's fine by me too. |
serhiy-storchaka commented Jul 26, 2023
It is a shame that Spjinx requires duplicating It can be fixed by a simple code: forrole, nameinnitpick_ignore: ifrole=='c:type': nitpick_ignore.append(('c:identifier', name)) delname, roleWould not it enough? For now there is no significant difference between Python and YAML. Inany case we will add only few lines at once and not going to grow the |
vstinner commented Jul 26, 2023
I wrote PR #107295 to implement exactly that (I made minor changes in your proposed code). |
Maintaining nitpick_ignore Python list in conf.py is a burden. Add a YAML configuration file which is easier to maintain.
📚 Documentation preview 📚: https://cpython-previews--107278.org.readthedocs.build/