Skip to main content

utility for python additional_dependencies updates in pre-commit

Project description

upadup!

upadup -- Utility for Python additional_dependencies Updates in Pre-Commit

Why?

pre-commit is great, and pre-commit autoupdate is also great. However, what's not great is that pre-commit autoupdate cannot update your additional_dependencies lists.

upadup is a supplemental tool which knows how to handle specific common cases.

Usage

upadup will only update additional_dependencies items which are pinned to specific versions, and only for known python hooks and their dependencies.

Simply cd myrepo; upadup!

upadup can also be configured with information about hooks which are unknown to it. More on this below.

Config Loading and Format

If you have hooks outside of the defaults which you want upadup to examine, drop a .upadup.yaml file into your repo to configure which hooks to update.

upadup takes no arguments and automatically reads .upadup.yaml from the current directory if available. Otherwise, it uses its default configuration.

upadup needs to know what hook repos you want it to examine, and within those which dependencies you want it to keep updated. The config format intentionally mirrors your pre-commit config. Specify a list of repos, and in each repo, specify a list of hooks to update. Hooks are a combination of id (the hook ID) and additional_dependencies.

For example:

# .upadup.yaml
repos:
  - repo: https://github.com/pycqa/flake8
    hooks:
      - id: flake8
        additional_dependencies:
          - flake8_bugbear

This configuration would match the following pre-commit config:

# .pre-commit-config.yaml
repos:
  - repo: https://github.com/PyCQA/flake8
    rev: 5.0.4
    hooks:
      - id: flake8
        additional_dependencies:
          - 'flake8-bugbear==22.7.1'

Note that matching is case insensitive for repo names and additional_dependencies, and that we normalize - and _ to match, as pypi.org does. But the overall structure of the config is intended to be a mirror image.

Default Config

The following config is the upadup default. Note that missing dependencies are ignored.

repos:
  - repo: https://github.com/pycqa/flake8
    hooks:
      - id: flake8
        additional_dependencies:
          - flake8-bandit
          - flake8-bugbear
          - flake8-builtins
          - flake8-comprehensions
          - flake8-docstrings
          - flake8-implicit-str-concat
          - flake8-logging-format
          - flake8-pyi
          - flake8-typing-as-t
          - flake8-typing-imports
  - repo: https://github.com/asottile/blacken-docs
    hooks:
      - id: blacken-docs
        additional_dependencies:
          - black

extends_default

Unless otherwise specified, the default config will be merged with your .upadup.yaml configuration, effectively a union.

You can disable this behavior by setting extends_default: false, as in

extends_default: false
repos:
  - repo: https://github.com/pycqa/flake8
    hooks:
      - id: flake8
        additional_dependencies:
          - flake8-bugbear

The Meaning of "upadup"

Update python additional depenedencies uh... pre-commit!

Unacceptable puns accosting durable urban pachyderms

Unbelievably playful, awesome, deterministic update program

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

upadup-0.0.8.tar.gz (309.9 kB view details)

Uploaded Source

Built Distribution

upadup-0.0.8-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

File details

Details for the file upadup-0.0.8.tar.gz.

File metadata

  • Download URL: upadup-0.0.8.tar.gz
  • Upload date:
  • Size: 309.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.23.0

File hashes

Hashes for upadup-0.0.8.tar.gz
Algorithm Hash digest
SHA256 fdca0b1071f566e323ed7f8e3372ed0348572ae9705276a3b580e6bb2c86d6ba
MD5 33692932d704cd3c33f28f02f48a5f78
BLAKE2b-256 ecffab80beb82f6dfb4c86dc34d978d5101ec4ebd34c831368d931bf9b661047

See more details on using hashes here.

Provenance

File details

Details for the file upadup-0.0.8-py3-none-any.whl.

File metadata

  • Download URL: upadup-0.0.8-py3-none-any.whl
  • Upload date:
  • Size: 7.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.23.0

File hashes

Hashes for upadup-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 9ceb164f31405ee43aa4cbaaafd89eb8b5409d6b767a654984fc13ebcc74906f
MD5 4f070fcad32205368b0c22c40ad7f9c8
BLAKE2b-256 3941c54ce9847c4c6a1d5502d78ccbc648a42960a78673d5d8e4231c9d20842b

See more details on using hashes here.

Provenance

Supported by

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