Skip to main content

Google/Excel Sheets API Python.

Project description

brunette

🟤 A best practice Python code formatter

PyPI version

This is the "black" formatter but with some improvements:

  1. --config option supports setup.cfg format.
    • Where a single-quotes option enables single quotes as the preferred.
  2. --single-quotes option to make single quotes the preferred.

Installation

pip install brunette

Usage

Use in the same way you would the 'black' formatter.

brunette *.py --config=setup.cfg
brunette *.py --line-length=79 --single-quotes

Example setup.cfg:

[tool:brunette]
line-length = 79
verbose = true
single-quotes = false
# etc, etc...

This can also be combined with Flake8's configuration:

[flake8]
# This section configures `flake8`, the python linting utility.
# See also https://flake8.pycqa.org/en/latest/user/configuration.html
ignore = E201,E202,E203
# E201 - whitespace after ‘(‘
# E202 - whitespace before ‘)’
# E203 - whitespace before ‘:’

# Exclude the git directory and virtualenv directory (as `.env`)
exclude = .git,.env

[tool:brunette]
line-length = 79
# etc, etc...

Why does this need to exist?

  • The current maintainer of Black, refuses to allow a single-quotes option. Due to his own personal preference (a preference which most of the Python community do not share).

  • The current maintainer of Black, refuses to add setup.cfg support. Setup.cfg is the most widely used configuration file for Python projects. The maintainer of that library prefers "pyproject.toml" few people use at this time due to it's inflexibility and it requiring you to use Poetry, whatever that is.

  • The current configuration file format as adopted by Black may conflict with the new build isolation context with pip. To avoid this, the use of a setup.cfg file is preferred but the policy is under review by the maintainers (https://github.com/pypa/pip/issues/8437#issuecomment-644196428).

How to configure in VSCode

  1. Get the full path to your brunette installation. In your terminal type:
  • which brunette (Linux)
  • where brunette (Windows)

In my case this looks like /home/work/.pyenv/shims/brunette. On Windows thats more like C:\Python39\Scripts\brunette.exe. Now copy whatever that value is.\

  1. Open the setttings UI.

  2. Search for black.

  • Paste that path into Black Path.
  • Set black as the Python Formatting Provider.
  • Add arguments as --single-quotes you like to the Black Args

https://i.imgur.com/6EXoamM.png

  1. That's it! Now whenever you format your Python code brunette will be used.

How to configure with Pre-Commit (https://pre-commit.com)

  1. Run pip install pre-commit to install

  2. Add a local repo option for brunette in .pre-commit-config.yaml

# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
repos:
  - repo: https://github.com/odwyersoftware/brunette
    rev: b8fc75f460885f986a01842664e0571769b2cc12
    hooks:
      - id: brunette
  # Drop-in replacement for black with brunette
  # - repo: https://github.com/psf/black
  #   rev: stable
  #   hooks:
  #     - id: black
  #       language_version: python3.6
  - repo: https://gitlab.com/pycqa/flake8
    rev: 3.8.1
    hooks:
      - id: flake8
  1. Run pre-commit install to install the Git pre-commit hook

  2. Run pre-commit run to validate all files

Release History

0.2.7 (2022-05-30)

  • Fix black version to black==21.12b0, versions above do not function.

0.2.6 (2022-05-26)

  • Fix black version to black<22.0.0, versions above do not function.

0.2.5 (2022-03-30)

  • Fix for black version 22.1.0+.

0.2.4 (2022-03-09)

  • Fix for black breaking change black.find_project_root.

0.2.3 (2022-03-01)

  • Bugfix, require black>=21.5b1

0.2.2 (2021-10-26)

  • Bugfix, support for "black" version >=21.

0.2.1 (2021-10-01)

  • Loosen requirements pin on "black" version.

0.2.0 (2020-12-18)

  • Adds --single-quotes CLI option.

0.1.9 (2020-12-16)

  • Bugfixes, fix black version to black==20.8b1.

0.1.8 (2020-12-16)

  • Bugfix for single-quote formatting not working.

0.1.7 (2020-06-26)

  • Fix configuration file reading when multiple option variable.
  • Update normalize_string_quotes from black.

0.1.6 (2020-06-26)

  • Documentation updates.

0.1.5 (2020-06-18)

  • Documentation updates.

0.1.4 (2020-06-16)

  • Handle when setup.cfg is missing.

0.1.3 (2020-06-16)

  • Handle when setup.cfg is missing.

0.1.2 (2020-06-16)

  • Added __main__ for CLI exec.

0.1.1 (2020-06-15)

  • Adds wheels.

0.1.0 (2020-06-15)

  • Initial release.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

brunette-0.2.7.tar.gz (11.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

brunette-0.2.7-py2.py3-none-any.whl (8.9 kB view details)

Uploaded Python 2Python 3

File details

Details for the file brunette-0.2.7.tar.gz.

File metadata

  • Download URL: brunette-0.2.7.tar.gz
  • Upload date:
  • Size: 11.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.9

File hashes

Hashes for brunette-0.2.7.tar.gz
Algorithm Hash digest
SHA256 033ff84366b171e3c19b4aff2704b0e6e6b6aa1b55c1a6b06133e0d4b2d793f8
MD5 efd8623a8882f1a4b87315e16249e194
BLAKE2b-256 0c11c2e7ebed6a05c0e7c12651095ad65884395696c789998c2ec75be548ad98

See more details on using hashes here.

File details

Details for the file brunette-0.2.7-py2.py3-none-any.whl.

File metadata

  • Download URL: brunette-0.2.7-py2.py3-none-any.whl
  • Upload date:
  • Size: 8.9 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.9

File hashes

Hashes for brunette-0.2.7-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 95f98f7fc39bd4db69d18f919cc5ab498401633cce0ad31f4728a6cc9f965663
MD5 37b11a5c210c3369eda64620377bd40f
BLAKE2b-256 c28e203fd4f8f67cd7aa23c9a0786883ab33ab0c0df91bb425e75584c159a003

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page