This commit enables a bunch of unrelated ruff rules, which only require
minimal changes to the code base to enable them.
The rules enabled by this commit are:
- check the use of datetime objects without timezone (DTZ005)
- check the performance of try-except in loops (PERF203)
- check the number of function arguments (PLR0913)
- check for mutable class defaults (RUF012)
- check for the use of secure hashing algorithms (S324)
- check for raising base exceptions (TRY002)
- check for raising other exceptions where TypeErrors should be raised
(TRY004)
This enables some ruff rules for docstrings and comments. The idea is to
not enforce the presence of docstrings, but to ensure they are properly
formatted if they're present.
For comments this adds checks that they don't contain code and verify
the formatting of comments with "TODO" tags.
As part of this, some commented out code which hasn't been touch in the
past 10 years gets removed as well.
The rules enabled enabled by this are:
- check formatting of existing docstrings (D200-)
- check comments for code (ERA)
- check formatting of TODO tags (TD001, TD004-)
This enables some ruff rules to check for ambiguous and dead Python
code, which might cause unintended side-effects.
The enabled rules are:
- a bunch of rules related to shadowing of builtin structures (A)
- a bunch of rules checking for unused arguments (ARG)
- a rule checking for useless expressions (B018)
- a rule checking for unbound loop variables (B023)
- a rule checking redefined function parameters (PLR1704)
In the ruff config file added in #6954 explicitly selecting the ruff
rules to check was missed, resulting in ruff only checking a very small
subset of its available rules. That hasn't been desired, so this is the
first of a series of commits enabling more rules. In this PR all rules
whose violations can be either automatically fixed by ruff or are
trivial to fix manually get enabled. For the follow up PRs it's intended
to focus on one area of rules per PR to gradually improve the Python
code quality.
- Add support for tips
- Fix other scripts not writing to the correct output (they were writing
info messages to stderr)
Based on a patch by: @mammadori and @cyrille
Differential Revision: https://code.wildfiregames.com/D3213
This was SVN commit r26350.
(Follows 76acc4e146 where I deleted actor.rnc)
This deletes the .rnc validation files, upgrading the .rng files to
being the source of truth.
- The engine uses, via LibXML2, .rng files to validate XML schemas, to
the .rnc files are redundant.
- The RelaxNG "Compact" format is a DSL for the RelaxNG XML format. Its
syntax is unique, unlike .rng files which are XML.
- Some errors are likely - I'm not sure anyone has converted the compact
files in years.
- The tool to generate .rng from .rnc files is trang
(https://github.com/relaxng/jing-trang), which runs on the JVM and is
quite annoying to install compared to "your usual text editor".
- The JS components use the full .rng format in XML, so editing this
format is already familiar to most people that mod the game.
The .rnc files were added in 2c9939ac74 along the .rng files.
Refs #413, #245
Differential Revision: https://code.wildfiregames.com/D3824
This was SVN commit r25258.
Fixes D11 / 1c9efa6fb5.
The problem is that some GUI pages were simply named "page.xml" which
the regex didn't like.
Accepted By: Nescio
Differential Revision: https://code.wildfiregames.com/D3644
This was SVN commit r25022.
Thus fix lineendings in files that were missed in bcbf25bfbd, as
reported by Imarok.
(SVN throws an error when trying to set the native filending property on
a file with mixed fileendings. However when recursing it hides this
error).
This was SVN commit r18561.
Adds converted Relax NG XML grammars for each (Note: don't edit these
directly, modify the compact syntax .rnc files instead, then use a
conversion tool http://relaxng.org/#conversion to generate the .rng
files).
Adds Perl script to validate the XML files using the new grammars
This was SVN commit r15377.