mirror of
https://github.com/jazzband/django-categories.git
synced 2026-03-16 22:30:24 +00:00
Added pre-commit configuration and configuration for the tools.
This commit is contained in:
parent
571623598f
commit
3bfe1ad131
6 changed files with 218 additions and 26 deletions
51
.pre-commit-config.yaml
Normal file
51
.pre-commit-config.yaml
Normal file
|
|
@ -0,0 +1,51 @@
|
||||||
|
repos:
|
||||||
|
- repo: https://github.com/timothycrosley/isort
|
||||||
|
rev: 5.10.1
|
||||||
|
hooks:
|
||||||
|
- id: isort
|
||||||
|
additional_dependencies: [toml]
|
||||||
|
- repo: https://github.com/python/black
|
||||||
|
rev: 21.11b1
|
||||||
|
hooks:
|
||||||
|
- id: black
|
||||||
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||||
|
rev: v4.0.1
|
||||||
|
hooks:
|
||||||
|
- id: check-added-large-files
|
||||||
|
- id: check-case-conflict
|
||||||
|
- id: check-executables-have-shebangs
|
||||||
|
- id: check-json
|
||||||
|
- id: check-merge-conflict
|
||||||
|
- id: check-shebang-scripts-are-executable
|
||||||
|
- id: check-symlinks
|
||||||
|
- id: check-toml
|
||||||
|
- id: check-yaml
|
||||||
|
- id: debug-statements
|
||||||
|
- id: end-of-file-fixer
|
||||||
|
exclude: "^tests/resources/"
|
||||||
|
- id: fix-byte-order-marker
|
||||||
|
- id: fix-encoding-pragma
|
||||||
|
args: ["--remove"]
|
||||||
|
- id: requirements-txt-fixer
|
||||||
|
- repo: https://gitlab.com/pycqa/flake8
|
||||||
|
rev: 3.9.2
|
||||||
|
hooks:
|
||||||
|
- id: flake8
|
||||||
|
- repo: https://github.com/pycqa/pydocstyle
|
||||||
|
rev: 6.1.1
|
||||||
|
hooks:
|
||||||
|
- id: pydocstyle
|
||||||
|
exclude: test.*
|
||||||
|
additional_dependencies: [toml]
|
||||||
|
- repo: https://github.com/terrencepreilly/darglint
|
||||||
|
rev: v1.8.1
|
||||||
|
hooks:
|
||||||
|
- id: darglint
|
||||||
|
args:
|
||||||
|
- -v 2
|
||||||
|
- "--message-template={path}:{line} in `{obj}`:\n {msg_id}: {msg}"
|
||||||
|
- --strictness=short
|
||||||
|
- repo: https://github.com/econchick/interrogate
|
||||||
|
rev: 1.5.0 # or master if you're bold
|
||||||
|
hooks:
|
||||||
|
- id: interrogate
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
# Django Categories
|
# Django Categories
|
||||||
|
|
||||||
[](https://jazzband.co/)
|
[](https://jazzband.co/)
|
||||||
|
[](https://codecov.io/gh/jazzband/django-categories)
|
||||||
|
|
||||||
Django Categories grew out of our need to provide a basic hierarchical taxonomy management system that multiple applications could use independently or in concert.
|
Django Categories grew out of our need to provide a basic hierarchical taxonomy management system that multiple applications could use independently or in concert.
|
||||||
|
|
||||||
|
|
|
||||||
82
pyproject.toml
Normal file
82
pyproject.toml
Normal file
|
|
@ -0,0 +1,82 @@
|
||||||
|
[build-system]
|
||||||
|
requires = [
|
||||||
|
"setuptools >= 40.9.0",
|
||||||
|
"wheel",
|
||||||
|
]
|
||||||
|
build-backend = "setuptools.build_meta"
|
||||||
|
|
||||||
|
[tool.coverage.run]
|
||||||
|
branch = true
|
||||||
|
omit = ["**/test_*.py"]
|
||||||
|
|
||||||
|
[tool.coverage.report]
|
||||||
|
omit = [
|
||||||
|
"*site-packages*",
|
||||||
|
"*tests*",
|
||||||
|
"*.tox*",
|
||||||
|
]
|
||||||
|
show_missing = true
|
||||||
|
exclude_lines = [
|
||||||
|
"raise NotImplementedError",
|
||||||
|
"pragma: no-coverage",
|
||||||
|
]
|
||||||
|
|
||||||
|
[tool.interrogate]
|
||||||
|
ignore-init-method = true
|
||||||
|
ignore-init-module = false
|
||||||
|
ignore-magic = true
|
||||||
|
ignore-semiprivate = false
|
||||||
|
ignore-private = false
|
||||||
|
ignore-property-decorators = false
|
||||||
|
ignore-module = false
|
||||||
|
ignore-nested-functions = true
|
||||||
|
ignore-nested-classes = true
|
||||||
|
ignore-setters = false
|
||||||
|
fail-under = 95
|
||||||
|
exclude = ["setup.py", "docs", "build", "test"]
|
||||||
|
ignore-regex = ["^get$", "^mock_.*", ".*BaseClass.*"]
|
||||||
|
verbose = 0
|
||||||
|
quiet = false
|
||||||
|
whitelist-regex = []
|
||||||
|
color = true
|
||||||
|
|
||||||
|
[tool.isort]
|
||||||
|
py_version = "38"
|
||||||
|
force_grid_wrap = 0
|
||||||
|
use_parentheses = true
|
||||||
|
line_length = 88
|
||||||
|
known_typing = ["typing", "types", "typing_extensions", "mypy", "mypy_extensions"]
|
||||||
|
sections = ["FUTURE", "TYPING", "STDLIB", "THIRDPARTY", "FIRSTPARTY", "LOCALFOLDER"]
|
||||||
|
include_trailing_comma = true
|
||||||
|
profile = "black"
|
||||||
|
multi_line_output = 3
|
||||||
|
indent = 4
|
||||||
|
color_output = true
|
||||||
|
|
||||||
|
[tool.pydocstyle]
|
||||||
|
convention = "google"
|
||||||
|
add-ignore = ["D107", "D200", "D212"]
|
||||||
|
match = "(?!test_).*\\.py"
|
||||||
|
|
||||||
|
[tool.black]
|
||||||
|
line-length = 119
|
||||||
|
target-version = ['py38', 'py39']
|
||||||
|
include = '\.pyi?$'
|
||||||
|
exclude = '''
|
||||||
|
/(
|
||||||
|
\.eggs
|
||||||
|
| \.git
|
||||||
|
| \.hg
|
||||||
|
| \.mypy_cache
|
||||||
|
| \.tox
|
||||||
|
| \.venv
|
||||||
|
| _build
|
||||||
|
| buck-out
|
||||||
|
| build
|
||||||
|
| dist
|
||||||
|
# The following are specific to Black, you probably don't want those.
|
||||||
|
| blib2to3
|
||||||
|
| tests/data
|
||||||
|
| profiling
|
||||||
|
)/
|
||||||
|
'''
|
||||||
|
|
@ -1,2 +1,2 @@
|
||||||
django-mptt==0.11.0
|
django-mptt
|
||||||
unicode-slugify==0.1.3
|
unicode-slugify
|
||||||
|
|
|
||||||
36
setup.cfg
36
setup.cfg
|
|
@ -1,2 +1,38 @@
|
||||||
|
[metadata]
|
||||||
|
name = django-categories
|
||||||
|
description = A way to handle one or more hierarchical category trees in django.
|
||||||
|
long_description = file:README.md
|
||||||
|
long_description_content_type = "text/markdown"
|
||||||
|
author = Corey Oordt
|
||||||
|
author_email = coreyoordt@gmail.com
|
||||||
|
url = http://github.com/jazzband/django-categories
|
||||||
|
classifiers =
|
||||||
|
Framework :: Django
|
||||||
|
|
||||||
|
[options]
|
||||||
|
zip_safe=False
|
||||||
|
include_package_data=True
|
||||||
|
|
||||||
|
[options.packages.find]
|
||||||
|
exclude =
|
||||||
|
example*
|
||||||
|
docs
|
||||||
|
build
|
||||||
|
include = categories
|
||||||
|
|
||||||
|
[flake8]
|
||||||
|
ignore = D203,W503,E501
|
||||||
|
exclude =
|
||||||
|
.git
|
||||||
|
.tox
|
||||||
|
docs
|
||||||
|
build
|
||||||
|
dist
|
||||||
|
doc_src
|
||||||
|
max-line-length = 119
|
||||||
|
|
||||||
|
[darglint]
|
||||||
|
ignore=DAR402
|
||||||
|
|
||||||
[bdist_wheel]
|
[bdist_wheel]
|
||||||
universal = 1
|
universal = 1
|
||||||
|
|
|
||||||
70
setup.py
70
setup.py
|
|
@ -1,31 +1,53 @@
|
||||||
from setuptools import setup, find_packages
|
"""The setup script."""
|
||||||
|
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
from setuptools import setup
|
||||||
|
|
||||||
import categories
|
import categories
|
||||||
import os
|
|
||||||
|
|
||||||
try:
|
|
||||||
long_description = open('README.md').read()
|
|
||||||
except IOError:
|
|
||||||
long_description = ''
|
|
||||||
|
|
||||||
try:
|
def parse_reqs(filepath: str) -> list:
|
||||||
reqs = open(os.path.join(os.path.dirname(__file__), 'requirements.txt')).read()
|
"""
|
||||||
except (IOError, OSError):
|
Parse a file path containing requirements and return a list of requirements.
|
||||||
reqs = ''
|
|
||||||
|
Will properly follow ``-r`` and ``--requirements`` links like ``pip``. This
|
||||||
|
means nested requirements will be returned as one list.
|
||||||
|
|
||||||
|
Other ``pip``-specific lines are excluded.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
filepath: The path to the requirements file
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
All the requirements as a list.
|
||||||
|
"""
|
||||||
|
path = Path(filepath)
|
||||||
|
reqstr = path.read_text()
|
||||||
|
reqs = []
|
||||||
|
for line in reqstr.splitlines():
|
||||||
|
line = line.strip()
|
||||||
|
if line == "":
|
||||||
|
continue
|
||||||
|
elif not line or line.startswith("#"):
|
||||||
|
# comments are lines that start with # only
|
||||||
|
continue
|
||||||
|
elif line.startswith("-r") or line.startswith("--requirement"):
|
||||||
|
_, new_filename = line.split()
|
||||||
|
new_file_path = path.parent / new_filename
|
||||||
|
reqs.extend(parse_reqs(new_file_path))
|
||||||
|
elif line.startswith("-f") or line.startswith("-i") or line.startswith("--"):
|
||||||
|
continue
|
||||||
|
elif line.startswith("-Z") or line.startswith("--always-unzip"):
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
reqs.append(line)
|
||||||
|
return reqs
|
||||||
|
|
||||||
|
|
||||||
|
requirements = parse_reqs("requirements.txt")
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name='django-categories',
|
|
||||||
version=categories.get_version(),
|
version=categories.get_version(),
|
||||||
description='A way to handle one or more hierarchical category trees in django.',
|
install_requires=requirements,
|
||||||
long_description=long_description,
|
|
||||||
long_description_content_type="text/markdown",
|
|
||||||
author='Corey Oordt',
|
|
||||||
author_email='coreyoordt@gmail.com',
|
|
||||||
include_package_data=True,
|
|
||||||
url='http://github.com/jazzband/django-categories',
|
|
||||||
packages=find_packages(exclude=['example*', ]),
|
|
||||||
classifiers=[
|
|
||||||
'Framework :: Django',
|
|
||||||
],
|
|
||||||
install_requires=reqs,
|
|
||||||
dependency_links=[]
|
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue