[metadata]
name = FlaskBB
version = attr: flaskbb.__version__
url = https://flaskbb.org
project_urls =
    Documentation = https://flaskbb.readthedocs.io/en/latest/
    Code = https://github.com/flaskbb/flaskbb
    Issue Tracker = https://github.com/flaskbb/flaskbb
license = BSD-3-Clause
license_file = LICENSE
author = Peter Justin
author_email = peter.justin@outlook.com
description = A classic Forum Software in Python using Flask.
long_description = file: README.md
long_description_content_type = text/markdown
platforms = any
classifiers =
    Development Status :: 5 - Production/Stable
    Framework :: Flask
    Environment :: Web Environment
    Intended Audience :: Developers
    Intended Audience :: End Users/Desktop
    License :: OSI Approved :: BSD License
    Operating System :: OS Independent
    Programming Language :: Python :: 3.6
    Programming Language :: Python :: 3.7
    Programming Language :: Python :: 3.8
    Programming Language :: Python :: 3.9
    Topic :: Internet :: WWW/HTTP :: Dynamic Content
    Topic :: Software Development :: Libraries :: Python Modules

[options]
packages = find:
include_package_data = True
zip_safe = False
python_requires = >= 3.6
# Dependencies are in setup.py for GitHub's dependency graph.

[options.entry_points]
console_scripts =
    flaskbb=flaskbb.cli:flaskbb

[tool:pytest]
addopts =
    -vvl
    --strict-markers
    --capture fd
    --tb short
    --pythonwarnings error::flaskbb.deprecation.FlaskBBDeprecation
    --cov flaskbb
    --cov-config setup.cfg
    --cov-append
    --numprocesses auto
    --dist load
norecursedirs = node_modules

[tool:isort]
lines_after_imports=2
skip_glob=20??????????_*_*.py, node_modules, .tox, docs, build, dist
not_skip=__init__.py
known_first_party=flaskbb
use_parentheses=true

[flake8]
# B = bugbear
# E = pycodestyle errors
# F = flake8 pyflakes
# W = pycodestyle warnings
# B9 = bugbear opinions
ignore = E203, E712, E711, W503
select = C,E,F,W,B,B9
max-complexity = 10
max-line-length = 88
exclude =
    # allowed to break the rules
    flaskbb/configs/default.py,
    flaskbb/_compat.py,
    # migrations are autogenerated
    migrations,
    # stuff to not inspect at all
    node_modules,
    .git,
    .tox,
    *.pyc,
    __pycache__,
    instance,
    dist,
    build,
    docs

# .coveragerc to control coverage.py
[coverage:run]
branch = true
source = flaskbb
omit =
    flaskbb/configs/*
    flaskbb/migrations/*
parallel = true

[coverage:paths]
source =
    flaskbb/
    .tox/*/lib/*/site-packages/flaskbb/

[coverage:report]
# Regexes for lines to exclude from consideration
exclude_lines =
    # Have to re-enable the standard pragma
    pragma: no cover

    # Don't complain about missing debug-only code:
    def __repr__
    if self\.debug

    # Don't complain if tests don't hit defensive assertion code:
    raise AssertionError
    raise NotImplementedError

    # Don't complain if non-runnable code isn't run:
    if 0:
    if __name__ == .__main__.:

    @abstractmethod

ignore_errors = True
precision = 2
show_missing = true

[coverage:html]
directory = tests/htmlcov
