* First pass at autodoc support * Add mkautodoc requirement for docs builds * Linting * pip install httpx when building docs, to make it available to mkautodoc * Fix code example in docstring slightly * Use latest mkautodoc to resolve rendering of code snippets in docstrings * Fill in 'Helper functions' API docs * First pass at documenting Client * Add autodoc for Client * Update to mkautodoc 0.1 * Fix typos
63 lines
1.6 KiB
Python
63 lines
1.6 KiB
Python
import nox
|
|
|
|
nox.options.stop_on_first_error = True
|
|
nox.options.reuse_existing_virtualenvs = True
|
|
nox.options.keywords = "not serve"
|
|
|
|
source_files = ("httpx", "tools", "tests", "setup.py", "noxfile.py")
|
|
|
|
|
|
@nox.session
|
|
def lint(session):
|
|
session.install(
|
|
"--upgrade", "autoflake", "black", "flake8", "isort", "seed-isort-config"
|
|
)
|
|
|
|
session.run("autoflake", "--in-place", "--recursive", *source_files)
|
|
session.run("seed-isort-config", "--application-directories=httpx")
|
|
session.run("isort", "--project=httpx", "--recursive", "--apply", *source_files)
|
|
session.run("black", "--target-version=py36", *source_files)
|
|
|
|
check(session)
|
|
|
|
|
|
@nox.session
|
|
def check(session):
|
|
session.install(
|
|
"--upgrade",
|
|
"black",
|
|
"flake8",
|
|
"flake8-bugbear",
|
|
"flake8-comprehensions",
|
|
"flake8-pie",
|
|
"isort",
|
|
"mypy",
|
|
)
|
|
|
|
session.run("black", "--check", "--diff", "--target-version=py36", *source_files)
|
|
session.run("flake8", *source_files)
|
|
session.run("mypy", "httpx")
|
|
session.run(
|
|
"isort", "--check", "--diff", "--project=httpx", "--recursive", *source_files
|
|
)
|
|
|
|
|
|
@nox.session
|
|
def docs(session):
|
|
session.install("--upgrade", "mkdocs", "mkdocs-material", "mkautodoc>=0.1.0")
|
|
session.install("-e", ".")
|
|
session.run("mkdocs", "build")
|
|
|
|
|
|
@nox.session(reuse_venv=True)
|
|
def serve(session):
|
|
session.install("--upgrade", "mkdocs", "mkdocs-material")
|
|
|
|
session.run("mkdocs", "serve")
|
|
|
|
|
|
@nox.session(python=["3.6", "3.7", "3.8"])
|
|
def test(session):
|
|
session.install("--upgrade", "-r", "test-requirements.txt")
|
|
session.run("python", "-m", "pytest", *session.posargs)
|