A lint framework that writes better Python code for you.
Project description
A lint framework that writes better Python code for you.
Fixit is a lint framework that complements Flake8. It’s based on LibCST which makes it possible to provide auto-fixes. Lint rules are made easy to build through pattern matching, a test toolkit, and utility helpers (e.g. scope analysis) for non-trivial boilerplate. It is optimized for efficiency, easy to customize and comes with many builtin lint rules.
Getting Started
To install Fixit:
pip install fixit
Fixit provides CLI commands. To run built-in Fixit rules on existing code to get code quality suggestions:
python -m fixit.cli.run_rules
To apply autofix on existing code:
python -m fixit.cli.apply_fix
You can learn more about how to configure Fixit, build a lint rule, test a lint rule from our tutorials. Try it out with our notebook examples.
Further Reading
Development
Start by setting up and activating a virtualenv:
git clone git@github.com:Instagram/Fixit.git fixit
cd fixit
python3 -m venv ../fixit-env/ # just an example, put this wherever you want
source ../fixit-env/bin/activate
pip install --upgrade pip # optional, if you have an old system version of pip
pip install -r requirements.txt -r requirements-dev.txt
# If you're done with the virtualenv, you can leave it by running:
deactivate
We use isort and black to format code. To format changes to be conformant, run the following in the root:
tox -e autofix
To run all tests, you’ll need to install tox and do the following in the root: (use py37, py38 to choose from Python version 3.7 or 3.8):
tox -e py38
You can also run individual unit tests by specifying a module like this:
tox -e py38 -- fixit.common.tests.test_report
To run all test cases of a specific rule (e.g. NoInheritFromObjectRule):
tox -e py38 -- fixit.tests.NoInheritFromObjectRule
See the unittest documentation for more examples of how to run tests.
We use Pyre for type-checking. To verify types for the library, do the following in the root:
pyre --preserve-pythonpath check
To generate documentation, do the following in the root:
tox -e docs
License
Fixit is MIT licensed, as found in the LICENSE file.
Privacy Policy and Terms of Use
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 Distribution
Built Distribution
File details
Details for the file fixit-0.1.3.tar.gz
.
File metadata
- Download URL: fixit-0.1.3.tar.gz
- Upload date:
- Size: 95.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 48944e7f5f1717476a8a2b6a052ad18613ba2adfe865fd3ac8bafacba1e436b4 |
|
MD5 | 50ed64bb244c262d9e5fe8faa0c5ccf2 |
|
BLAKE2b-256 | 901c3150d393b23c690ad537ce3d04d4d6548e19d5dcdbfec34c29e6357c3366 |
File details
Details for the file fixit-0.1.3-py3-none-any.whl
.
File metadata
- Download URL: fixit-0.1.3-py3-none-any.whl
- Upload date:
- Size: 140.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c6584ddbfd3883b9c19592c8deb0a0e272f024341f8e7aa801d9410f1374d5f1 |
|
MD5 | 59aa9d3f404887543f8c38002d40543c |
|
BLAKE2b-256 | ff7708e8af7e740f0f9df67d2699f32106d791dffe4e53d7a4378406978ac3c4 |