Package: rubric
Rubric>>Linter Config Initializer for Python<<PrefaceRubric initializes the configuration files of a few Python linters and formatters. Also,
it adds a README.md boilerplate and a simple Makefile with the commands to apply the
tools. This helps you maintain an isomorphic workflow across multiple projects. It
assumes that, in all of your Python projects, you'll use—Blackas the primary code formatter.EditorConfigto enforce consistent style across different editors.Ruffto ensure style guide conformance and sort the imports.Mypyto check the type hints.Pip-toolsto manage the dependencies.[Hatch][hatch] to generate build artifacts for reusable libraries.Pre-commitfor managing and maintaining the pre-commit hooks.Following is a list of config files that Rubric is going to add to your target
directory:root
├── .editorconfig           # Config file for Editorconfig
├── .gitignore              # Python specific .gitignore file
├── .pre-commit-config.yaml # Config to manage pre-commit hooks.
├── Makefile                # Makefile containing the commands to lint your code
├── pyproject.toml          # Toml file to with the configs for black, ruff, and mypy
├── README.md               # A readme boilerplate
├── requirements-dev.txt    # File to specify the dev requirements
└── requirements.txt        # File to specify the pinned app requirementsThe files will contain minimal but sensible default configurations for the respective
tools. You're free to change them as you like.InstallationRubric requires Python 3.8 and up.Make a virtual environment in your project's root directory.Activate the environment and run:pip install rubricUsageTo inspect all the CLI options, run:rubric --helpYou should see the following output:$ rubric --help
               >> Config Initializer for Python Projects <<

Usage: rubric [OPTIONS]

Options:
-h, --help                      Display help message.
-v, --version                   Display the version number.
-s, --show                      Show the contents of the config files.
-a, --append                    Append to existing config files.
-o, --overwrite                 Overwrite existing config files.
-c, --create                    Create the config files in the current
                                directory.
-f, --filename [.editorconfig|.gitignore|.pre-commit-config.yaml|README.md|
        Makefile|pyproject.toml|requirements-dev.in|requirements-dev.txt|
        requirements.in|requirements.txt]
                                Target file names.
-d, --dirname PATH              Target directory name.
-l, --list                      List the config files that are about to be
                                generated.Display a list of config files that are going to be created:rubric --listConfig files that are about to be generated:

=> .editorconfig
=> .gitignore
=> .pre-commit-config.yaml
=> README.md
=> Makefile
=> pyproject.toml
=> requirements-dev.txt
=> requirements.txtTake a peek into the content of any config file(s):rubric--show-frequirements.txt-f.editorconfigThis will print:============================ requirements.txt ============================

#
# This file is autogenerated by pip-compile with python 3.11
# To update, run:
#
#    pip-compile --output-file=requirements.txt requirements.in
#

============================ .editorconfig ============================

# https://editorconfig.org

root = true

[*]
indent_style = space
indent_size = 2
trim_trailing_whitespace = true
insert_final_newline = true
charset = utf-8
end_of_line = lf

[*.{py,md}]
indent_size = 4

[Makefile]
indent_size = 4
indent_style = tabInitialize a project with the following command:rubric--createThis will run the tool in a non-destructive way—that means it won't overwrite any of
the configuration files that you might already have in the directory.If you only want to create a selected list of config files, then run:rubric--create-frequirements.txt-frequirements-dev.txtIf you want to overwrite any of the existing config files that you might have in the
directory, then run:rubric--overwrite-ffilename1-ffilename2If you want to append the configs to an existing file, then run:rubric--append-ffilename1-ffilename2You can also point Rubric to a directory.rubric--create--directory"some/custom/directory"If you want to check and update the configs across multiple repositories in a single
sweep, use the following command:s="dir1 dir2 dir3";echo$s|xargs-n1-P$(echo$s|wc-w)rubric-c-dThis command will spawn 3 processes to create the config files indir1,dir2,
anddir3in parallel.You can run the entire linter suite with this command:make lint✨ 🍰 ✨