Linter for Machine Learning projects
Project description
mllint
— Linter for Machine Learning projects
mllint
is a command-line utility to evaluate the quality of Machine Learning (ML) projects by means of static analysis of the project's repository. It measures the project's adherence to ML best practices, as collected and deduced from se4ml.github.io and Google's Rules for ML.
TODO: write overview of linting rules or implement mllint describe <rule>
Getting Started
Installing mllint
mllint
works on Linux, MacOS and Windows, and is published to PyPI, so it can be installed using pip
:
pip install mllint
Running mllint
To run mllint
in its default configuration, use one of the following commands:
# Run `mllint` on the project in the current folder
mllint
# Run `mllint` on the project in projects/my-ml-project
mllint projects/my-ml-project
Linters and rules
To list all available or all enabled linting rules, use one of the following commands:
# List all available (implemented) linting rules
mllint list all
# List only the enabled rules for the project in the current folder.
mllint list enabled
# or for a project in projects/my-ml-project
mllint list enabled projects/my-ml-project
Configuration
YAML
mllint
can be configured using a .mllint.yml
file that should be placed at the root of the project directory. This is a YAML file in which you can disable specific rules / linters, as well as configure specific settings for various linters.
An example .mllint.yml
looks as follows:
rules:
disabled:
- use-git # disables the 'use-git' linter
- use-dependency-manager/single # disables the 'single' rule of the 'use-dependency-manager' linter.
# - use-dependency-manager # this would disable the 'use-dependency-manager' linter and all of its rules entirely.
TOML
Alternatively, if no .mllint.yml
exists, mllint
can be configured from the pyproject.toml
file in the root of the project. This should be done in the [tool.mllint]
section. TOML has a slightly different syntax, but the structure is otherwise the same as the config in the YAML file. The example below is identical to the YAML example above.
[tool.mllint]
[tool.mllint.rules]
disabled = ["use-git", "use-dependency-manager/single"]
Here are some useful commands related to configuration:
# Print the configuration of the project in the current folder
mllint config
# Print the configuration of the project in projects/my-ml-project
mllint config projects/my-ml-project
# Print the default configuration (unless there's a folder called 'default' in the current dir)
mllint config default
# Create a valid `.mllint.yml` file with the default configuration
mllint config default -q > .mllint.yml
Getting Started (development)
Clone this repository and run go run .
in the root of this repository.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Hashes for mllint-0.0.0-pp37-pypy37_pp73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 345fa4306b0d540ab335677d37b2fd49b44e77fe87d89bf50b07c73f59925745 |
|
MD5 | 604aa30b5e6ab3b0dbed02bd2540b193 |
|
BLAKE2b-256 | 4463c677ed6649b555a7e7799ea613d45be01b44ba6a2990ab78b2afc03d315e |
Hashes for mllint-0.0.0-pp37-pypy37_pp73-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc24c01b018c1462256f65f4dd0787c1597d56d2dea8bbada817d37defe50d9c |
|
MD5 | ae64dd3434e648d304e202423dd273a8 |
|
BLAKE2b-256 | ae1b7cf531747a6521bcc67441b2a8447d694a3122ce759df4cb597070eae189 |
Hashes for mllint-0.0.0-pp36-pypy36_pp73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ebaff8dd18e0d487517d3a9134648f4fe111bfa3e307007a66c556bd5315d04a |
|
MD5 | e1a1e15825782339b8ccca2938410570 |
|
BLAKE2b-256 | 371c2a723a789d44acbcf14e140bfbdbb76afce7a4b0b60a4b977e6cbcf3a812 |
Hashes for mllint-0.0.0-pp36-pypy36_pp73-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1a90d9dfcee8685092d21010f38a15cbf75460b5e2be751430c32c5f8ad73857 |
|
MD5 | 89c6f36e4da8cab6995d5a2f90f596c9 |
|
BLAKE2b-256 | b0f6091582bb5ecfe4c9b96a7a8a1f5fe1133ba47b90822c8df161cff8f45f3a |
Hashes for mllint-0.0.0-cp39-cp39-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b541b126573fbb066b7b8754f384c450c27f52b9c9ea14dddb70391ece58a662 |
|
MD5 | 4131beb22a4295cf70322c2c13e610af |
|
BLAKE2b-256 | 1c3282589f575822fe7d6426c76f768e9358b2b7c8afeec260bea611f1df1422 |
Hashes for mllint-0.0.0-cp39-cp39-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 51bedd97308cc4f66948f9f4c78cc7f0563b9464c78845c323b3f376df40f16b |
|
MD5 | f4d274306ef4a5e93a44b5bb821e4d46 |
|
BLAKE2b-256 | 27c27a4cd9663a658435c046c9ed0cbee68f87703110378a473306f1551907c6 |
Hashes for mllint-0.0.0-cp39-cp39-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 612416fbec1662d49ae3bc37270abcdc7cfde3089672c401914cb449edeaa546 |
|
MD5 | bb6de1ec8d985f2d268376411c872792 |
|
BLAKE2b-256 | 27d7368458487e6ad06daddad07abb9fe66b1298b511d7a384472aa40a84279d |
Hashes for mllint-0.0.0-cp39-cp39-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ba0c55f807d0bd6c0ad2c83b61962adcf6024bb78f353349c592186904bcfe7 |
|
MD5 | 79710055be86f3fd5de85676a99509cf |
|
BLAKE2b-256 | d80f4d3235c6efb9a184f2cabf8c39dace21924e487bbf06cef5776569116d75 |
Hashes for mllint-0.0.0-cp38-cp38-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cbdaf9d6b6899a11917333dbaf4413ef10957a614be707c602f2c6b04997d171 |
|
MD5 | 51e5597ea1e30032e78d6e236f8b6d8a |
|
BLAKE2b-256 | 6f02a8b5e991ee3def2d5ab3d8c984f201a6f0e17806768226d1739f2529cb06 |
Hashes for mllint-0.0.0-cp38-cp38-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 90b6a163ef8b85505790e76a8b70e8be7028638cd086c3a9fdf41d269f832fb2 |
|
MD5 | f0fb8da4ed611768c0018666accad3d8 |
|
BLAKE2b-256 | d91d8517957c0b85e4c4a30f8749306562360396ae7216dbdf81fd82dfb15a37 |
Hashes for mllint-0.0.0-cp38-cp38-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82856ac90f19a2dade56259c3c986baaf854b4b255324fe0d0263ab2a96d6951 |
|
MD5 | d523358815d528e94f348cadd8127c3a |
|
BLAKE2b-256 | da20e8e2977d5a1ff9db76c242b6f6f8e3e02444f7572b8023f057d80c1de901 |
Hashes for mllint-0.0.0-cp38-cp38-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5464468f6cc67fe375acd9f8ff5f9cf01d223dc3ee8b30203661e26fecd143d7 |
|
MD5 | 8d5911ddc6444d276ce9c8b266e9a592 |
|
BLAKE2b-256 | 9c41f611f0b37cc445d9bb15a559d8dd9aa6c4f704a4bd206051b3a1acaae46c |
Hashes for mllint-0.0.0-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6faf2ff018aec08a6f905126412e147846cae4bf2d5eb97f3090d013f71ee309 |
|
MD5 | 8614f49d184ee2eccfd6aafa29bb1530 |
|
BLAKE2b-256 | 8934a18abda35de9306246030f685ecd2e959a0a2ad7b7422b07523a8098cd9a |
Hashes for mllint-0.0.0-cp37-cp37m-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | beda8dff4594d54fce8a818d07c79a3baaf6e4211bccfbd7742d6e898b08a5c2 |
|
MD5 | 86c795b91fe33aceb1c35813f0b2dde9 |
|
BLAKE2b-256 | fb07586ac24bd24b7ba645d5fbe568fc61cea93de448db81b377bc804f9ba535 |
Hashes for mllint-0.0.0-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3572727f67a3824ed7702d616c9fce9134b0cbaa28e3016150c189482bc680a8 |
|
MD5 | c325bf075697390bb97f9dec0ae6b51d |
|
BLAKE2b-256 | dfeeedc09fdd3347de2fc44804fdecb4d0059e5f9f261b366755ca53ae42f6ef |
Hashes for mllint-0.0.0-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1772e211695d352c81f075c4c2c0096ea96e234c903d0e47fb036ef7c4c74394 |
|
MD5 | be0c0cd0bc601a75a3834ba5cb688350 |
|
BLAKE2b-256 | bda5e20820bf2b748509be7e61112caa1de968af2a3bd089bd563e850ee1996f |
Hashes for mllint-0.0.0-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dbfdc4c602be862bad77fe473dea41b681794c8078bf9c04ec6daa075f94eb1c |
|
MD5 | d0b92d2fe8e41866ff6b85743d42836f |
|
BLAKE2b-256 | eab5be2b629c7ec7962efb9a60ff29a17097398ffc3484718c4f9f6c0fdf8058 |
Hashes for mllint-0.0.0-cp36-cp36m-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 45fd73478be7d483898e56b6c89774b9464082c0633a7d56470ba5fc6cd91a8e |
|
MD5 | ee3573bf5b657e55a735ebe8bf96bb3c |
|
BLAKE2b-256 | 06c0172be0308c97df0fd2fa6e8d738393059cecd48b38de9672d3d325b77f3b |
Hashes for mllint-0.0.0-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d2a81677cf1496db0311a6560e51b2f7f3ff537301e01f0c2063a582e1ee45b |
|
MD5 | 175d16efe8f1b2b74f03b2032a3c1c04 |
|
BLAKE2b-256 | c163ac839e6c8f1040805a67c80874b5cb88af541abb6d267b712cd4786754dc |
Hashes for mllint-0.0.0-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 908340df7827e8feeb2fe6d77dce6aca9554aa5cc573b8b0555dec89fc921d35 |
|
MD5 | e3a9aea246b392ee2e89459a03ed1d14 |
|
BLAKE2b-256 | d6c48f062ea2ae9d65d878e00a8f6e4a3842043a452b94e7585a5ab95226ede9 |