Hi Collin, > > You can now submit the two configuration files in the pygnulib/ directory. > > That's the proper place, not the root directory of gnulib. > > Done.
Thanks; I applied both patches. But now we have the desired configurations of pycodestyle and pylint in two places: in comments and in the config files. With the promise that they will get out of sync in the future. To avoid this, let me update the comments... > I've confirmed that pylint recognizes .pylintrc so I've used > that file name instead. One thing to note is that you must run pylint > from the pygnulib/ subdirectory. Pycodestyle doesn't have this > restriction. For example: > > # Works > [collin@debian pygnulib]$ pylint main.py > # Doesn't work, doesn't pick up configuration file. > [collin@debian pygnulib]$ cd ../ > [collin@debian gnulib]$ pylint pygnulib/main.py Interesting. Also worth documenting. Done through the patch below. > That file should probably be > cleaned up at a later date. For some reason all of the fields in the > object returned by argparse are used before being assigned to local > variables and then used again. I don't see a problem here, or anything to "clean up". It is on purpose that these fields are stored in different objects: - in the cmdargs, to satisfy the requirements of the argparser, - in a GLConfig object, for the tool's logic. For example, the way argparser works, 'mode_list', 'mode_find' etc. need to be different booleans in cmdargs; however in GLConfig, we don't want to obey a dictate from argparser; instead it should be a single field 'mode', with several possible values. Bruno 2024-02-26 Bruno Haible <br...@clisp.org> gnulib-tool.py: Add more comments. * pygnulib/main.py: Add comments regarding code style. Mention the pycodestyle and pylint configurations. diff --git a/pygnulib/main.py b/pygnulib/main.py index cfa59c6562..443300c439 100644 --- a/pygnulib/main.py +++ b/pygnulib/main.py @@ -24,11 +24,28 @@ # - Place line breaks to help reading the code: # Avoid line breaks inside expressions, if they can be avoided. # Do use line breaks to separate the parts of [ ... for ... ] iterations. +# - String literals: Use 'single-quotes'. +# Rationale: <https://lists.gnu.org/archive/html/bug-gnulib/2024-02/msg00226.html> +# - Comparison operators: +# Use == and != for variables which can contain only strings, numbers, lists, +# and None. +# Use 'is' and 'is not' for variables which can contain only class instances +# (e.g. GLModule instances) and None. +# Rationale: <https://lists.gnu.org/archive/html/bug-gnulib/2024-02/msg00225.html> + # You can use this command to check the style: -# $ pycodestyle --max-line-length=136 --ignore=E265,W503,E241,E711,E712,E201,E202,E221 pygnulib/*.py +# $ pycodestyle *.py +# The pycodestyle configuration is found in the file setup.cfg. +# Documentation: +# <https://pycodestyle.pycqa.org/en/latest/intro.html#error-codes> # You can use this command to check for mistakes: -# $ pylint --disable=C0103,C0114,C0121,C0209,C0301,C0302,R0902,R0912,R0913,R0914,R0915,R1705,R1702,R1720 pygnulib/*.py +# $ pylint *.py +# The pylint configuration is found in the file .pylintrc. +# Note: This configuration is only effective when you invoke pylint from this +# directory. +# Documentation: +# <https://pylint.readthedocs.io/en/latest/user_guide/messages/messages_overview.html> #===============================================================================