Some out-of-the-box hooks for pre-commit

Build Status Azure DevOps coverage pre-commit.ci status

pre-commit-hooks

Some out-of-the-box hooks for pre-commit.

See also: https://github.com/pre-commit/pre-commit

Using pre-commit-hooks with pre-commit

Add this to your .pre-commit-config.yaml

-   repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v4.0.1  # Use the ref you want to point at
    hooks:
    -   id: trailing-whitespace
    # -   id: ...

Hooks available

check-added-large-files

Prevent giant files from being committed.

  • Specify what is "too large" with args: ['--maxkb=123'] (default=500kB).
  • Limits checked files to those indicated as staged for addition by git.
  • If git-lfs is installed, lfs files will be skipped (requires git-lfs>=2.2.1)
  • --enforce-all - Check all listed files not just those staged for addition.

check-ast

Simply check whether files parse as valid python.

check-builtin-literals

Require literal syntax when initializing empty or zero Python builtin types.

  • Allows calling constructors with positional arguments (e.g., list('abc')).
  • Allows calling constructors from the builtins (__builtin__) namespace (builtins.list()).
  • Ignore this requirement for specific builtin types with --ignore=type1,type2,….
  • Forbid dict keyword syntax with --no-allow-dict-kwargs.

check-case-conflict

Check for files with names that would conflict on a case-insensitive filesystem like MacOS HFS+ or Windows FAT.

check-docstring-first

Checks for a common error of placing code before the docstring.

check-executables-have-shebangs

Checks that non-binary executables have a proper shebang.

check-json

Attempts to load all json files to verify syntax.

check-merge-conflict

Check for files that contain merge conflict strings.

check-shebang-scripts-are-executable

Checks that scripts with shebangs are executable.

check-symlinks

Checks for symlinks which do not point to anything.

check-toml

Attempts to load all TOML files to verify syntax.

check-vcs-permalinks

Ensures that links to vcs websites are permalinks.

  • --additional-github-domain DOMAIN - Add check for specified domain. Can be repeated multiple times. for example, if your company uses GitHub Enterprise you may use something like --additional-github-domain github.example.com

check-xml

Attempts to load all xml files to verify syntax.

check-yaml

Attempts to load all yaml files to verify syntax.

  • --allow-multiple-documents - allow yaml files which use the multi-document syntax
  • --unsafe - Instead of loading the files, simply parse them for syntax. A syntax-only check enables extensions and unsafe constructs which would otherwise be forbidden. Using this option removes all guarantees of portability to other yaml implementations. Implies --allow-multiple-documents.

debug-statements

Check for debugger imports and py37+ breakpoint() calls in python source.

destroyed-symlinks

Detects symlinks which are changed to regular files with a content of a path which that symlink was pointing to. This usually happens on Windows when a user clones a repository that has symlinks but they do not have the permission to create symlinks.

detect-aws-credentials

Checks for the existence of AWS secrets that you have set up with the AWS CLI. The following arguments are available:

  • --credentials-file CREDENTIALS_FILE - additional AWS CLI style configuration file in a non-standard location to fetch configured credentials from. Can be repeated multiple times.
  • --allow-missing-credentials - Allow hook to pass when no credentials are detected.

detect-private-key

Checks for the existence of private keys.

double-quote-string-fixer

This hook replaces double quoted strings with single quoted strings.

end-of-file-fixer

Makes sure files end in a newline and only a newline.

fix-byte-order-marker

removes UTF-8 byte order marker

fix-encoding-pragma

Add # -*- coding: utf-8 -*- to the top of python files.

  • To remove the coding pragma pass --remove (useful in a python3-only codebase)

file-contents-sorter

Sort the lines in specified files (defaults to alphabetical). You must provide list of target files as input to it. Note that this hook WILL remove blank lines and does NOT respect any comments.

forbid-new-submodules

Prevent addition of new git submodules.

mixed-line-ending

Replaces or checks mixed line ending.

  • --fix={auto,crlf,lf,no}
    • auto - Replaces automatically the most frequent line ending. This is the default argument.
    • crlf, lf - Forces to replace line ending by respectively CRLF and LF.
      • This option isn't compatible with git setup check-in LF check-out CRLF as git smudge this later than the hook is invoked.
    • no - Checks if there is any mixed line ending without modifying any file.

name-tests-test

Assert that files in tests/ end in _test.py.

  • Use args: ['--django'] to match test*.py instead.

no-commit-to-branch

Protect specific branches from direct checkins.

  • Use args: [--branch, staging, --branch, master] to set the branch. Both master and main are protected by default if no branch argument is set.
  • -b / --branch may be specified multiple times to protect multiple branches.
  • -p / --pattern can be used to protect branches that match a supplied regex (e.g. --pattern, release/.*). May be specified multiple times.

Note that no-commit-to-branch is configured by default to always_run. As a result, it will ignore any setting of files, exclude, types or exclude_types. Set always_run: false to allow this hook to be skipped according to these file filters. Caveat: In this configuration, empty commits (git commit --allow-empty) would always be allowed by this hook.

pretty-format-json

Checks that all your JSON files are pretty. "Pretty" here means that keys are sorted and indented. You can configure this with the following commandline options:

  • --autofix - automatically format json files
  • --indent ... - Control the indentation (either a number for a number of spaces or a string of whitespace). Defaults to 2 spaces.
  • --no-ensure-ascii preserve unicode characters instead of converting to escape sequences
  • --no-sort-keys - when autofixing, retain the original key ordering (instead of sorting the keys)
  • --top-keys comma,separated,keys - Keys to keep at the top of mappings.

requirements-txt-fixer

Sorts entries in requirements.txt and removes incorrect entry for pkg-resources==0.0.0

sort-simple-yaml

Sorts simple YAML files which consist only of top-level keys, preserving comments and blocks.

Note that sort-simple-yaml by default matches no files as it enforces a very specific format. You must opt in to this by setting files, for example:

    -   id: sort-simple-yaml
        files: ^config/simple/

trailing-whitespace

Trims trailing whitespace.

  • To preserve Markdown hard linebreaks use args: [--markdown-linebreak-ext=md] (or other extensions used by your markdownfiles). If for some reason you want to treat all files as markdown, use --markdown-linebreak-ext=*.
  • By default, this hook trims all whitespace from the ends of lines. To specify a custom set of characters to trim instead, use args: [--chars,"<chars to trim>"].

Deprecated / replaced hooks

  • check-byte-order-marker: instead use fix-byte-order-marker

As a standalone package

If you'd like to use these hooks, they're also available as a standalone package.

Simply pip install pre-commit-hooks

Owner
pre-commit
A framework for managing and maintaining multi-language pre-commit hooks.
pre-commit
Comments
  • No support for pycodestyle

    No support for pycodestyle

    flake8 was officialy deprecated and mostly replaced by pycodestyle which is currently does not have a pre-commit-hook.

    Initially I was considering repurposing the flake8 hook but I think it will be better to have a new one as doing the swap may also involve renaming its section inside setup.cfg or tox.ini.

  • Pin down flake8 version

    Pin down flake8 version

    Dear authors of pre-commit,

    I've been using this for quite some time in CI and everything worked nicely. However, today, new version of flake8 came out and as I install pre-commit for every CI RUN new errors started to pop-out (W605 specifically).

    Would it be possible to pin down the flake8 version in setup.py? And increase the version as versions of pre-commit-hooks increase? I'm willing to make the PR.

    With regards Krystof

  • UnicodeDecodeError in detect-aws-credentials is unreadable

    UnicodeDecodeError in detect-aws-credentials is unreadable

    Detect AWS Credentials...................................................Failed
    hookid: detect-aws-credentials
    
    Traceback (most recent call last):
      File "/home/ryan/.cache/pre-commit/repo8jj7q4iz/py_env-python3.7/bin/detect-aws-credentials", line 11, in <module>
        sys.exit(main())
      File "/home/ryan/.cache/pre-commit/repo8jj7q4iz/py_env-python3.7/lib/python3.7/site-packages/pre_commit_hooks/detect_aws_credentials.py", line 133, in main
        bad_filenames = check_file_for_aws_keys(args.filenames, keys)
      File "/home/ryan/.cache/pre-commit/repo8jj7q4iz/py_env-python3.7/lib/python3.7/site-packages/pre_commit_hooks/detect_aws_credentials.py", line 74, in check_file_for_aws_keys
        text_body = content.read()
      File "/home/ryan/.cache/pre-commit/repo8jj7q4iz/py_env-python3.7/lib/python3.7/codecs.py", line 322, in decode
        (result, consumed) = self._buffer_decode(data, self.errors, final)
    UnicodeDecodeError: 'utf-8' codec can't decode byte 0xeb in position 103: invalid continuation byte
    Traceback (most recent call last):
      File "/home/ryan/.cache/pre-commit/repo8jj7q4iz/py_env-python3.7/bin/detect-aws-credentials", line 11, in <module>
        sys.exit(main())
      File "/home/ryan/.cache/pre-commit/repo8jj7q4iz/py_env-python3.7/lib/python3.7/site-packages/pre_commit_hooks/detect_aws_credentials.py", line 133, in main
        bad_filenames = check_file_for_aws_keys(args.filenames, keys)
      File "/home/ryan/.cache/pre-commit/repo8jj7q4iz/py_env-python3.7/lib/python3.7/site-packages/pre_commit_hooks/detect_aws_credentials.py", line 74, in check_file_for_aws_keys
        text_body = content.read()
      File "/home/ryan/.cache/pre-commit/repo8jj7q4iz/py_env-python3.7/lib/python3.7/codecs.py", line 322, in decode
        (result, consumed) = self._buffer_decode(data, self.errors, final)
    UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc0 in position 2346: invalid start byte
    Traceback (most recent call last):
      File "/home/ryan/.cache/pre-commit/repo8jj7q4iz/py_env-python3.7/bin/detect-aws-credentials", line 11, in <module>
        sys.exit(main())
      File "/home/ryan/.cache/pre-commit/repo8jj7q4iz/py_env-python3.7/lib/python3.7/site-packages/pre_commit_hooks/detect_aws_credentials.py", line 133, in main
        bad_filenames = check_file_for_aws_keys(args.filenames, keys)
      File "/home/ryan/.cache/pre-commit/repo8jj7q4iz/py_env-python3.7/lib/python3.7/site-packages/pre_commit_hooks/detect_aws_credentials.py", line 74, in check_file_for_aws_keys
        text_body = content.read()
      File "/home/ryan/.cache/pre-commit/repo8jj7q4iz/py_env-python3.7/lib/python3.7/codecs.py", line 322, in decode
        (result, consumed) = self._buffer_decode(data, self.errors, final)
    UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 187: invalid continuation byte
    Traceback (most recent call last):
      File "/home/ryan/.cache/pre-commit/repo8jj7q4iz/py_env-python3.7/bin/detect-aws-credentials", line 11, in <module>
        sys.exit(main())
      File "/home/ryan/.cache/pre-commit/repo8jj7q4iz/py_env-python3.7/lib/python3.7/site-packages/pre_commit_hooks/detect_aws_credentials.py", line 133, in main
        bad_filenames = check_file_for_aws_keys(args.filenames, keys)
      File "/home/ryan/.cache/pre-commit/repo8jj7q4iz/py_env-python3.7/lib/python3.7/site-packages/pre_commit_hooks/detect_aws_credentials.py", line 74, in check_file_for_aws_keys
        text_body = content.read()
      File "/home/ryan/.cache/pre-commit/repo8jj7q4iz/py_env-python3.7/lib/python3.7/codecs.py", line 322, in decode
        (result, consumed) = self._buffer_decode(data, self.errors, final)
    UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 167: invalid continuation byte
    

    It rejected the commit, so that's good. And I'm not sure if I can recommend any improvements to the handling of invalid unicode since I haven't looked at the code in this module.

    But for sure this error message could be more useful. There are 773 files in this commit and it would sure be nice to know which one(s) have this problem.

    Edit: Ideally if there's an exception it would continue to the next file so all the files that couldn't be processed can be listed to the user before the commit is rejected. I'm not looking forward to fixing one file, doing git commit, fixing another... 500 times. ;)

  • yapf hook

    yapf hook

    https://github.com/google/yapf looks like a neat tool to potentially replace autopep8. It does appear to be a bit immature, but once it stabilizes I think it could make for a good hook.

  • check-executables-have-shebangs not correct on windows

    check-executables-have-shebangs not correct on windows

    does not seem to work right on windows

    i am dealing with a primarily linux / python project but on a windows machine.

    i have set git config core.filemode false

    i created a new file and stage and i verify that filemode is 644:

    >git ls-files -s newfile.py
    100644 3edd36f71bf2081c70a0eaf39dec6980d0a9f791 0       newfile.py
    

    but hook still fails

    hookid: check-executables-have-shebangs
    
    newfile.py: marked executable but has no (or invalid) shebang!
      If it isn't supposed to be executable, try: chmod -x newfile.py
      If it is supposed to be executable, double-check its shebang.
    

    why is this file causing error?

  • end-of-file-fixer fails against a

    end-of-file-fixer fails against a ".git/MERGE_MSG" file

    I'm running git merge --no-ff release-7.1.2 -m "Merge branch 'release-7.1.2' into master" and it fails because it's incorrectly checking files inside the .git directory:

    Fix End of Files.........................................................Failed
    hookid: end-of-file-fixer
    
    Fixing .git/MERGE_MSG
    
    pre-commit 1.11.1
    git version 2.19.0
    macOS 10.14 (18A391)
    
  • Add hook for appending newline to end of files

    Add hook for appending newline to end of files

    A hook I have use for, and which I've mostly already written (should write up some more tests), is to ensure that files end with a blank newline - i.e. a add-trailing-newline hook. This is necessary for certain shells where there are issues reading the last line of includes.

    I can't see any material here about contribution, but I did have a brief look through older closed MRs and found that you appreciated issues before opening any MRs.

  • Eventual deprecation of flake8

    Eventual deprecation of flake8

    More of a heads up than anything -- not that many will see this 😆

    Now that I've added a .pre-commit-hooks.yaml to the flake8 repository, we'll eventually be deprecating the flake8 hook defined here.

    The rough ordering for that:

    • [x] flake8 makes its next tagged release (probably 3.7.0) -- I'm not sure on the timeline for this yet, we have to fix some new parsing of per_file_ignores and then probably will wait until pycodestyle / pyflakes make a new release(s) and then go go go?
    • [x] the flake8 hook will be "soft" deprecated. Probably nothing more than some messaging in the README. This will probably be pre-commit-hooks==2.X where X is some minor release greater than the current release
    • [x] Further after, (pre-commit-hooks==3) flake8 will be removed as a dependency in this repository and the flake8 executable will be replaced with a stub similar to the one added when autopep8-wrapper was deprecated

    The rationale for this change:

    • Direct access to the flake8 git repository better funnels people to raise issues in the correct place
    • It is easier to pin the exact version of flake8 you are using (and leverage pre-commit autoupdate to get to a newer version)
    • pre-commit-hooks is no longer plagued by spurious VersionConflict errors

    This issue is mostly a FYI / tracking issue for those events

  • Trailing whitespace not working

    Trailing whitespace not working

    I just installed pre-commit, added this .pre-commit-config.yaml file:

    # See http://pre-commit.com for more information
    # See http://pre-commit.com/hooks.html for more hooks
    repos:
    -   repo: https://github.com/pre-commit/pre-commit-hooks
        sha: v1.1.1
        hooks:
        -   id: trailing-whitespace
    

    and added a trailing space to a line in a file in the project, staged it, and when I commit it, it commits with the space, instead of removing it.

  • pre-commit flake8 check fails with no error message

    pre-commit flake8 check fails with no error message

    The pre-commit flake8 check is failing without any error message for me. It just says Failed.

    pre-commit runtests: commands[1] | pre-commit run --all-files
    Trim Trailing Whitespace.................................................Passed
    Fix End of Files.........................................................Passed
    Check docstring is first.................................................Passed
    Check that executables have shebangs.................(no files to check)Skipped
    Check for merge conflicts................................................Passed
    Check Yaml...............................................................Passed
    Debug Statements (Python)................................................Passed
    Fix double quoted strings................................................Passed
    Flake8...................................................................Failed
    Check for added large files..............................................Passed
    Check for byte-order marker..............................................Passed
    Fix python encoding pragma...............................................Passed
    Fix requirements.txt.....................................................Passed
    Reorder python imports...................................................Passed
    autopep8.................................................................Passed
    pyupgrade................................................................Passed
    ERROR: InvocationError: '/nail/home/drolando/pg/python/yelp_zipkin_utils/.tox/pre-commit/bin/pre-commit
     run --all-files'
    _______________________________________________ summary _______________________________________________
      py27: commands succeeded
      py36: commands succeeded
      py37: commands succeeded
    ERROR:   pre-commit: commands failed
    Makefile:4: recipe for target 'test' failed
    make: *** [test] Error 1
    

    If I source the virtualenv and run flake8 everything works though, so there seems to be something special with the way pre-commit runs it.

    [email protected] yelp_zipkin_utils (git master) ✓
    ~>  source .tox/pre-commit/bin/activate
    [email protected] yelp_zipkin_utils (git master) ✓
    ~>  flake8
    [email protected] yelp_zipkin_utils (git master) ✓
    ~>  
    
    ~>  cat .pre-commit-config.yaml
    repos:
    -   repo: [email protected]:mirrors/pre-commit/pre-commit-hooks
        rev: v2.4.0
        hooks:
        -   id: trailing-whitespace
        -   id: end-of-file-fixer
        -   id: check-docstring-first
        -   id: check-executables-have-shebangs
        -   id: check-merge-conflict
        -   id: check-yaml
        -   id: debug-statements
        -   id: double-quote-string-fixer
        -   id: flake8
        -   id: check-added-large-files
        -   id: check-byte-order-marker
        -   id: fix-encoding-pragma
        -   id: requirements-txt-fixer
    
    ~>  cat tox.ini | grep -A 3 flake8
    [flake8]
    ignore =
    exclude = .git,.tox,docs,virtualenv_run
    filename = *.py
    (pre-commit)
    

    The interesting thing is that it works fine if I use python3.6, it only seems to fail if I use python3.7 (3.7.5). @asottile have you seen this issue before? Any suggestion on how to debug it otherwise? Adding -v doesn't print anything useful...

  • Detect mixed line endings

    Detect mixed line endings

    It would be great if pre-commit-hooks could detect mixed line endings.

    In Atom ("Mixed"): image

    Keywords for future searches: newline, new line, end of line, end-of-line, EOL, line terminator, linebreak, line-break, line break, line-ending, linefeed, line feed, line-feed, LF, carriage return, carriage-return, CR, CRLF, CR-LF

  • `file-contents-sorter` Not working same way everytime

    `file-contents-sorter` Not working same way everytime

    I get strange issue that file-contents-sorter hook does not work same way everytime. I made little test case which trickers the issue. If i run this 10 times it will sometimes pass and sometimes not. I did not have time to look what problem might be.

    Add this to file_contents_sorter_test.py

    (
        b'pre\nPre\n',
        ['--unique', '--ignore-case'],
        PASS,
        b'pre\nPre\n',
    ),
    

    And run it with for run in {1..10}; do pytest tests/file_contents_sorter_test.py; done This gives me that about 30% pass and 70% fails

  • `pretty-format-json` modifies floating point numbers that have too many digits of precision

    `pretty-format-json` modifies floating point numbers that have too many digits of precision

    pretty-format-json modifies floating point numbers that have too many digits of precision.

    Background

    I have to work with JSON files that may be generated by non-python programs. These files, for whatever reason, have numbers that have up to 16 digits after the decimal place.

    (It's absurd, really. The people taking these measurements are somehow able to measure 0.1μHz on a 10GHz scale?? Yeah, they're saving values like 5.9257052820783001 GHz. Someone needs to teach them about significant figures... but that's beside the point. The point is I have to deal with this data :unamused:)

    Steps to Reproduce

    1. Create the following json file:
      {"foo": 4.4257052820783003}
      
    2. Run pretty-format-json on it.

    Expected Output:

    {
      "foo": 4.4257052820783003
    }
    

    Actual Output:

    {
      "foo": 4.4257052820783
    }
    

    The diff from expected is:

     {
    -  "foo": 4.4257052820783003
    +  "foo": 4.4257052820783
     }
    

    Version Info

    • pre-commit: 2.19.0
    • pre-commit-hooks: v4.2.0
    • Python: 3.8.8
    • OS: Debian 11

    Discussion

    This might be something that has to be fixed within the python builtin json package. A custom JSON encoder/decoder that wraps things using decimal.Decimal might work too.

    I've created a test case for this. See my high-precision-numbers branch or the diff.

    I'll see if I have time to actually fix this, but I don't expect to :frowning_face:.

  • check for long file paths

    check for long file paths

    Depending on what you're doing, Windows can have a path length limit of 260 characters. It's kind of complicated and there are a number of workarounds but this limit is true in many cases.

    In editions of Windows before Windows 10 version 1607, the maximum length for a path is MAX_PATH, which is defined as 260 characters. In later versions of Windows, changing a registry key or using the Group Policy tool is required to remove the limit. See Maximum Path Length Limitation for full details.

    My proposal is to write a simple hook that checks each path for its length as an absolute path and errors if the path exceeds a configurable value that defaults to 260 chars.

    This might make the most sense as part of the Windows illegal filenames check - if so I'm happy to just copy this request into that issue. https://github.com/pre-commit/pre-commit-hooks/issues/589

    References

    • https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file
    • https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=cmd

    (I did search for dupes and didn't find any similar proposals or requests, but of course if this has come up before and I missed it, please forgive me :) )

  • Support checking executable bit without Git.

    Support checking executable bit without Git.

    The check-shebang-scripts-are-executable hook already avoided false negatives in a Git repository by looking up the Git file mode rather than relying on the file mode in the file system. Git already automatically probes the file system for executable bit support. Use the file mode in the file system when we are not in a Git clone or it is trusted by Git according to its core.fileMode config variable.

    Also, fix previously asymptomatic copy/paste bug in check_shebang_scripts_are_executable_test.test_git_executable_shebang exposed by the other commit. This test manually filtered executable files out before calling check_shebang_scripts_are_executable. This makes sense in the test it was copied from, check_executables_have_shebangs.test_git_executable_shebang, because the check-executables-have-shebangs hook only runs on executable files. However, check-shebang-scripts-are-executable correctly runs on all text files, so the test shouldn't filter executable files out. The test still passed because when git ls-files is passed no files in particular, it lists all files in the Git repository that satisfy the given filters.

    Closes #749.

  • `check-shebang-scripts-are-executable` Assumes Git Repo

    `check-shebang-scripts-are-executable` Assumes Git Repo

    check-executables-have-shebangs supports being run on files outside of a Git repository, so it seems natural for check-shebang-scripts-are-executable to do the same. I would guess it's also slightly faster to check executable bits through the file system when it can be trusted to track them properly.

Cross-platform .NET Core pre-commit hooks

dotnet-core-pre-commit Cross-platform .NET Core pre-commit hooks How to use Add this to your .pre-commit-config.yaml - repo: https://github.com/juan

Jul 20, 2021
Provides guideline on how to configure pre-commit hooks in your own python project
Provides guideline on how to configure pre-commit hooks in your own python project

Pre-commit Configuration Guide The main aim of this repository is to act as a guide on how to configure the pre-commit hooks in your existing python p

Mar 31, 2022
Template for pre-commit hooks

Pre-commit hook template This repo is a template for a pre-commit hook. Try it out by running: pre-commit try-repo https://github.com/stefsmeets/pre-c

Dec 9, 2021
Cairo hooks for pre-commit
Cairo hooks for pre-commit

pre-commit-cairo Cairo hooks for pre-commit. See pre-commit for more details Using pre-commit-cairo with pre-commit Add this to your .pre-commit-confi

Sep 21, 2022
Python script to commit to your github for a perfect commit streak. This is purely for education purposes, please don't use this script to do bad stuff.

Daily-Git-Commit Commit to repo every day for the perfect commit streak Requirments pip install -r requirements.txt Setup Download this repository. Cr

Sep 20, 2022
Pre-commit hook for upgrading type hints

This is a pre-commit hook configured to automatically upgrade your type hints to the new native types implemented in PEP 585.

Sep 16, 2022
validation for pre-commit.ci configuration

pre-commit-ci-config validation for pre-commit.ci configuration installation pip install pre-commit-ci-config api pre_commit_ci_config.SCHEMA a cfgv s

Jul 11, 2022
Apache Superset out of box version(Windows 64-bit)

superset_app Apache Superset out of box version (Windows 64bit) prepare job download 3 files python-3.8.10-embed-amd64.zip get-pip.py python_geohash‑0

Aug 30, 2022
Git Hooks Tutorial.

Git Hooks Tutorial My public talk about this project at Sberloga: Git Hooks Is All You Need 1. Git Hooks 101 Init git repo: mkdir git_repo cd git_repo

Sep 6, 2022
Library for managing git hooks
Library for managing git hooks

Autohooks Library for managing and writing git hooks in Python. Looking for automatic formatting or linting, e.g., with black and pylint, while creati

Sep 7, 2022
Today I Commit (1일 1커밋) 챌린지 알림 봇

Today I Commit Challenge 1일1커밋 챌린지를 위한 알림 봇 config.py github_token = "github private access key" slack_token = "slack authorization token" channel = "

Nov 8, 2021
a bit of my project :) and I use some of them for my school lesson or study for an exam! but some of them just for myself.
a bit of my project :) and I use some of them for my school lesson or study for an exam! but some of them just for myself.

Handy Project a bit of my project :) and I use some of them for my school lesson or study for an exam! but some of them just for myself. the handy pro

Jul 5, 2021
Extend the maya channel box with searchability and colour
Extend the maya channel box with searchability and colour

channel-box-plus will add search-ability over its attributes, and it will colour user defined attributes, making them easier to distinguish.

Jun 8, 2022
Is a polybar module that will show you your progress in Hack The Box
Is a polybar module that will show you your progress in Hack The Box

HTB-Status for Polybar Is a polybar module that will show you your progress in Hack The Box indicating your current rank, global rank, points and resp

Jan 14, 2022
My tools box script for sigma

sigma_python_toolbox My tools box script for sigma purpose My goal is not to replace sigma but to put at disposal the scripts that I think to help me

Jun 20, 2022
A webdav demo using a virtual filesystem that serves a random status of whether a cat in a box is dead or alive.

A webdav demo using a virtual filesystem that serves a random status of whether a cat in a box is dead or alive.

Jan 12, 2022
Box CRUD API With Python
Box CRUD API With Python

Box CRUD API: Consider a store which has an inventory of boxes which are all cuboid(which have length breadth and height). Each Cuboid has been added

Feb 17, 2022
It was created to conveniently respond to events such as donation, follow, and hosting using the Alert Box provided by twip to streamers

This library is not an official library of twip. It was created to conveniently respond to events such as donation, follow, and hosting using the Alert Box provided by twip to streamers.

Jul 29, 2022
a pull switch (or BYO button) that gets you out of video calls, quick
a pull switch (or BYO button) that gets you out of video calls, quick

zoomout a pull switch (or BYO button) that gets you out of video calls, quick. As seen on Twitter System compatibility Tested on macOS Catalina (10.15

Jun 26, 2022