summaryrefslogtreecommitdiff
path: root/run_mypy.py
AgeCommit message (Collapse)Author
2022-05-23modules/icestorm: use type checkingDylan Baker
2022-05-23modules: add typing to the modtest moduleDylan Baker
2022-03-01use a more sane check instead of run_custom_lintEli Schwartz
Unfortunately, checking for strings without context is exceedingly prone to false positives, while missing anything that indirectly opens a file. Python 3.10 has a feature to warn about this though -- and it uses a runtime check which runs at the same time that the code fails to open files in the broken Windows locale. Set this up automatically when running the testsuite. Sadly, Python's builtin feature to change the warning level, e.g. by setting EncodingWarning to error at startup, is utterly broken if you want to limit it to only certain modules. This is tracked in order to be more efficiently ignored at https://bugs.python.org/issue34624 and https://github.com/python/cpython/pull/9358 It is also very trigger happy and passing stuff around via environment variable either messes with the testsuite, or with thirdparty programs which are implemented in python *such as lots of gnome*, or perhaps both. Instead, add runtime code to meson itself, to add a hidden "feature". In the application source code, running the 'warnings' module, you can actually get the expected behavior that $PYTHONWARNINGS doesn't have. So check for a magic testsuite variable every time meson starts up, and if it does, then go ahead and initialize a warnings filter that makes EncodingWarning fatal, but *only* when triggered via Meson and not arbitrary subprocess scripts.
2022-02-23run_mypy: add sourceset moduleDylan Baker
2022-01-18run_mypy: add gnome moduleDylan Baker
2022-01-10depfile: type annotateDylan Baker
2021-11-28Merge pull request #9623 from dcbaker/submit/keyval-typeingJussi Pakkanen
Add type annotations and typed_pos_args to the keyval module
2021-11-28Add typing to msubprojects.pyTristan Partin
2021-11-23run_mypy: add modules/keyvalDylan Baker
2021-10-09modules/windows: use typed_kwargsDylan Baker
2021-10-04run_mypy: Add the external_project_moduleDylan Baker
2021-10-03docs: Initial reference manual generatorDaniel Mensinger
2021-09-30modules/i18n: Fix remaining mypy spotted issuesDylan Baker
2021-09-24interpreter/mesonmain: Fix remaining typing problems and add to run_mypyDylan Baker
2021-08-31interpreter: Add IntegerHolderDaniel Mensinger
2021-08-22Add Java moduleTristan Partin
The Java module will serve as a source for easing Java development within Meson. Currently it only supports generating native header files.
2021-08-20run_mypy: add backends/backendsDylan Baker
2021-08-16run_mypy: add interpreter/compiler.pyDylan Baker
2021-08-04run_mypy: Add interpreter/type_checking to the list of checked modulesDylan Baker
2021-06-29tests: test that we always set encodingDaniel Mensinger
2021-06-29fix: Always explicitly set encoding for text files (fixes #8263)Daniel Mensinger
2021-06-25linkers: move linkers.py into the linkers packageDaniel Mensinger
2021-06-18holders: Fix the remaining code to respect the holder changesDaniel Mensinger
2021-06-16Merge pull request #8822 from dcbaker/submit/annotate-and-check-qt-moduleJussi Pakkanen
Rewrite the Qt module for type safety!
2021-06-15modules/qt: fix remaining typing issues and add to run_mypyDylan Baker
This just ignores the fact taht Generator is unchecked. Generator needs some real love in terms of type checking.
2021-06-13run_mypy: lower required version to 0.812Dylan Baker
I've run this against Meson and it has no spurious errors. I suspect that all versions >= .8 are fine, but I didn't test those.
2021-06-11run_mypy: Check mypy version to avoid spurious errorsXavier Claessens
2021-06-11interpreter: Move interpreterbase.py into a new packageDaniel Mensinger
2021-06-09typing: Fully annotate run_project_tests.pyDaniel Mensinger
2021-06-09typing: Fully annotate dependenciesDaniel Mensinger
2021-06-06typing: Fully annotate dependencies.frameworkDaniel Mensinger
2021-06-06typing: Fully annotate dependencies.{detect,factory} + some other fixesDaniel Mensinger
2021-06-06typing: Fully annotate dependencies.cmakeDaniel Mensinger
2021-06-06typing: Fully annotate dependencies.platformDaniel Mensinger
2021-06-06typing: Fully annotate dependencies.dubDaniel Mensinger
2021-06-06typing: Fully annotate dependencies.pkgconfigDaniel Mensinger
2021-06-05typing: Fully annotate dependencies.cudaDaniel Mensinger
2021-06-05typing: Fully annotate dependencies.configtoolDaniel Mensinger
2021-06-05typing: Fully annotate dependencies.coarraysDaniel Mensinger
2021-06-03typing: Fully annotate dependencies.baseDaniel Mensinger
2021-03-22dependencies/qt: Add type annotationsDylan Baker
And fix some style and correctness issues
2021-03-19programs: add type annotationsDylan Baker
2021-03-16Add `meson devenv` command and meson.add_devenv()Xavier Claessens
2021-02-23add a script to run a single testDylan Baker
As a Meson developer it's often frustrating to have a single functional test with a regression. These tests can be awkward to reproduce, especially when they make use of a test.json file. This script provides a simmple interface to call functional tests 1 at a time, regardless of whether they use a test.json or not. If they do use a test.json, and have a matrix, then the `--subtest` option can be used to select spcific combinations, for example: ```sh ./run_single_test.py "test cases/frameworks/15 llvm" --subtest 1 ``` will run only the second (zero indexed of course) subtest from the llvm test cases. This is not a super elegent script, but this is super useful.
2021-01-23split mesonlib into a packageDylan Baker
Currently mesonlib does some import tricks to figure out whether it needs to use windows or posix specific functions. This is a little hacky, but works fine. However, the way the typing stubs are implemented for the msvcrt and fnctl modules will cause mypy to fail on the other platform, since the functions are not implemented. To aleviate this (and for slightly cleaner design), I've split mesonlib into a pacakge with three modules. A universal module contains all of the platform agnositc code, a win32 module contains window specific code, a posix module contains the posix specific code, and a platform module contains no-op implementations. Then the package's __init__ file imports all of the universal functions and all of the functions from the approriate platform module, or the no-op versions as fallbacks. This makes mypy happy, and avoids `if`ing all over the code to switch between the platform specific code.
2021-01-13run_mypy: add minstallDylan Baker
2021-01-05modules: Add an unstable-rust moduleDylan Baker
Like other language specific modules this module is module for holding rust specific helpers. This commit adds a test() function, which simplifies using rust's internal unittest mechanism. Rust tests are generally placed in the same code files as they are testing, in contrast to languages like C/C++ and python which generally place the tests in separate translation units. For meson this is somewhat problematic from a repetition point of view, as the only changes are generally adding --test, and possibly some dependencies. The rustmod.test() method provides a mechanism to remove the repatition: it takes a rust target, copies it, and then addes the `--test` option, then creates a Test() target with the `rust` protocol. You can pass additional dependencies via the `dependencies` keyword. This all makes for a nice, DRY, test definition.
2020-11-22Merge pull request #8010 from dcbaker/submit/optinterpreter-cleanupsJussi Pakkanen
Opt Interpreter cleanups and type annotations
2020-11-20use real pathlib moduleDylan Baker
We added the _pathlib module to work around defeciencies in python 3.5's implementation, since we now rely on 3.6 lets drop this
2020-11-20Add type annotations to optinterpreterDylan Baker