Locust: Track changes to Python code across git refs
Project description
locust
"It's git diff --stat
on steroids!" - @scottmilliken
What is Locust?
Locust reduces turnaround time on code reviews.
It can take a lot of effort for a reviewer to relate the line-by-line changes in a patch to their mental model of the code base. This is a consistent impediment to fast responses on code reviews.
Locust provides a semantic layer on top of git diff
. Where git diff
describes changes in terms
of the lines in the code base, Locust summarizes changes by the effect on modules, classes, and
functions.
How does it work?
Locust is a command line tool, and you can invoke it as:
locust 22dd7fd6adf392bb29d13d10f10e7dbb1d97bfce c9813bd5871a9919551ccd917712135c40367c5c --format yaml
This produces the following output:
locust:
- file: locust/ci_helpers/github.py
changes:
- name: generate_argument_parser
type: function
line: 11
changed_lines: 9
total_lines: 9
children: []
- name: helper_push
type: function
line: 22
changed_lines: 13
total_lines: 13
children: []
- name: helper_pr
type: function
line: 37
changed_lines: 14
total_lines: 14
children: []
- name: main
type: function
line: 53
changed_lines: 29
total_lines: 29
children: []
refs:
initial: 22dd7fd
terminal: c9813bd
CI/CD
Locust is easy to use in CI/CD pipelines:
Installation
Locust requires Python3 (specifically, it was written in Python3.8).
Install from PyPI
pip install bugout-locust
Install from source
Clone this repository and run from the project root:
python setup.py install
Docker
You can also use the Locust docker image:
docker pull bugout/locust
To run Locust using docker:
docker run -v $ABSOLUTE_PATH_TO_GIT_REPO:/usr/src/app bugout/locust -r /usr/src/app \
$INITIAL_REVISION \
$TERMINAL_REVISION \
--format yaml
Output formats
Locust can produce output in many formats. The currently supported formats are:
-
JSON (
--format json
) -
YAML (
--format yaml
) -
HTML (
--format html
) -
GitHub-flavored HTML, meant to be used with GitHub styles (
--format html-github
)
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
Hashes for bugout_locust-0.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 41131d8e09296df4665507d3109c40fc6972a6a40629e2eb50130c5edcbf0e65 |
|
MD5 | e5a35e483024f53abb7aa3fcf8e5b774 |
|
BLAKE2b-256 | d539817deac63a08064505311f729edc8fb3cc8dfd983662a7a764b30cd5bfc8 |