The `pytoml` library is abandoned, and does not support TOML v0.5.0,
which Cargo uses. This prevents mach from properly parsing many
Cargo.toml files.
Include the `toml` library as a slightly more modern and currently-
maintained alternative for use in mach.
Supply-chain notes:
- toml v0.10.2 is MIT-licensed, which is an approved MPL-compatible
license.
- I have personally audited this version of `toml` and consider it
"safe-to-run", as much as any Python code can be: other than opening
and reading/writing a file when specifically requested via `load`/
`dump` respectively, it performs only string manipulation and
ordinary object creation.
Differential Revision: https://phabricator.services.mozilla.com/D164150
This is largely only an issue when running with `--target-kind`, although it's theoretically possible to hit without it depending on the order in which the tasks end up getting generated.
In any case, the current behaviour is a mysterious exception when `self.tasks[task_label]` throws. This isn't perfect, but it's at least something to go on.
Differential Revision: https://phabricator.services.mozilla.com/D164920