diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..081b2f4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,174 @@ +config.cnf +*.pyc +*.iml +*/*.pytest* +.rnd +### Python template +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +.hypothesis/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +.static_storage/ +.media/ +local_settings.py + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# pyenv +.python-version + +# celery beat schedule file +celerybeat-schedule + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +### VirtualEnv template +# Virtualenv +# http://iamzed.com/2009/05/07/a-primer-on-virtualenv/ +.Python +[Bb]in +[Ii]nclude +[Ll]ib +[Ll]ib64 +[Ll]ocal +pyvenv.cfg +.venv +pip-selfcheck.json +### JetBrains template +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff: +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/dictionaries + +# Sensitive or high-churn files: +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.xml +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml + +# Gradle: +.idea/**/gradle.xml +.idea/**/libraries + +# CMake +cmake-build-debug/ +cmake-build-release/ + +# Mongo Explorer plugin: +.idea/**/mongoSettings.xml + +## File-based project format: +*.iws + +## Plugin-specific files: + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..e97f183 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,10 @@ +repos: +- repo: https://github.com/ambv/black + rev: stable + hooks: + - id: black + language_version: python3.7 +- repo: https://github.com/pre-commit/pre-commit-hooks + rev: v1.2.3 + hooks: + - id: flake8 \ No newline at end of file diff --git a/.pre-commit-hooks.yaml b/.pre-commit-hooks.yaml new file mode 100644 index 0000000..ef1f246 --- /dev/null +++ b/.pre-commit-hooks.yaml @@ -0,0 +1,195 @@ +- id: autopep8-wrapper + name: autopep8 wrapper + description: "Runs autopep8 over python source. If you configure additional arguments you'll want to at least include -i." + entry: autopep8-wrapper + language: python + types: [python] + args: [-i --max-line-length 120] + minimum_pre_commit_version: 0.15.0 + +- id: check-added-large-files + name: Check for added large files + description: Prevent giant files from being committed + entry: check-added-large-files + language: python + minimum_pre_commit_version: 0.15.0 + +- id: check-ast + name: Check python ast + description: Simply check whether the files parse as valid python. + entry: check-ast + language: python + types: [python] + minimum_pre_commit_version: 0.15.0 + +- id: check-byte-order-marker + name: Check for byte-order marker + description: Forbid files which have a UTF-8 byte-order marker + entry: check-byte-order-marker + language: python + types: [python] + minimum_pre_commit_version: 0.15.0 + +- id: check-builtin-literals + name: Check builtin type constructor use + description: Require literal syntax when initializing empty or zero Python builtin types. + entry: check-builtin-literals + language: python + types: [python] + minimum_pre_commit_version: 0.15.0 + +- id: check-case-conflict + name: Check for case conflicts + description: Check for files that would conflict in case-insensitive filesystems + entry: check-case-conflict + language: python + minimum_pre_commit_version: 0.15.0 + +- id: check-docstring-first + name: Check docstring is first + description: Checks a common error of defining a docstring after code. + entry: check-docstring-first + language: python + types: [python] + minimum_pre_commit_version: 0.15.0 + +- id: check-executables-have-shebangs + name: Check that executables have shebangs + description: Ensures that (non-binary) executables have a shebang. + entry: check-executables-have-shebangs + language: python + types: [text, executable] + minimum_pre_commit_version: 0.15.0 + +- id: check-json + name: Check JSON + description: This hook checks json files for parseable syntax. + entry: check-json + language: python + types: [json] + minimum_pre_commit_version: 0.15.0 + +- id: pretty-format-json + name: Pretty format JSON + description: This hook sets a standard for formatting JSON files. + entry: pretty-format-json + language: python + types: [json] + minimum_pre_commit_version: 0.15.0 + +- id: check-merge-conflict + name: Check for merge conflicts + description: Check for files that contain merge conflict strings. + entry: check-merge-conflict + language: python + types: [text] + minimum_pre_commit_version: 0.15.0 + +- id: check-symlinks + name: Check for broken symlinks + description: Checks for symlinks which do not point to anything. + entry: check-symlinks + language: python + types: [symlink] + minimum_pre_commit_version: 0.15.0 + +- id: check-vcs-permalinks + name: Check vcs permalinks + description: Ensures that links to vcs websites are permalinks. + entry: check-vcs-permalinks + language: python + types: [text] + minimum_pre_commit_version: 0.15.0 + +- id: check-xml + name: Check Xml + description: This hook checks xml files for parseable syntax. + entry: check-xml + language: python + types: [xml] + minimum_pre_commit_version: 0.15.0 + +- id: check-yaml + name: Check Yaml + description: This hook checks yaml files for parseable syntax. + entry: check-yaml + language: python + types: [yaml] + minimum_pre_commit_version: 0.15.0 + +- id: debug-statements + name: Debug Statements (Python) + description: Check for debugger imports and py37+ `breakpoint()` calls in python source. + entry: debug-statement-hook + language: python + types: [python] + minimum_pre_commit_version: 0.15.0 + +- id: detect-aws-credentials + name: Detect AWS Credentials + description: Detects *your* aws credentials from the aws cli credentials file + entry: detect-aws-credentials + language: python + types: [text] + minimum_pre_commit_version: 0.15.0 + +- id: detect-private-key + name: Detect Private Key + description: Detects the presence of private keys + entry: detect-private-key + language: python + types: [text] + minimum_pre_commit_version: 0.15.0 + +- id: double-quote-string-fixer + name: Fix double quoted strings + description: This hook replaces double quoted strings with single quoted strings + entry: double-quote-string-fixer + language: python + types: [python] + minimum_pre_commit_version: 0.15.0 + +- id: end-of-file-fixer + name: Fix End of Files + description: Ensures that a file is either empty, or ends with one newline. + entry: end-of-file-fixer + language: python + types: [text] + minimum_pre_commit_version: 0.15.0 +- id: flake8 + name: Flake8 + description: This hook runs flake8. + entry: flake8 + language: python + types: [python] + minimum_pre_commit_version: 0.15.0 + +- id: forbid-new-submodules + name: Forbid new submodules + language: python + entry: forbid-new-submodules + description: Prevent addition of new git submodules + minimum_pre_commit_version: 0.15.0 + +- id: mixed-line-ending + name: Mixed line ending + description: Replaces or checks mixed line ending + entry: mixed-line-ending + language: python + types: [text] + minimum_pre_commit_version: 0.15.0 + +- id: requirements-txt-fixer + name: Fix requirements.txt + description: Sorts entries in requirements.txt + entry: requirements-txt-fixer + language: python + files: requirements.*\.txt$ + +- id: trailing-whitespace + name: Trim Trailing Whitespace + description: This hook trims trailing whitespace. + entry: trailing-whitespace-fixer + language: python + types: [text] + minimum_pre_commit_version: 0.15.0