forked from facebookresearch/digit-interface
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnoxfile.py
More file actions
80 lines (58 loc) · 1.94 KB
/
noxfile.py
File metadata and controls
80 lines (58 loc) · 1.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# Copyright (c) Facebook, Inc. and its affiliates. All rights reserved.
import os
import nox
BASE = os.path.abspath(os.path.dirname(__file__))
DEFAULT_PYTHON_VERSIONS = ["3.7"]
LINT_SETUP_DEPS = ["black", "flake8", "flake8-copyright", "isort"]
DEPLOY_SETUP_DEPS = ["twine"]
VERBOSE = os.environ.get("VERBOSE", "0")
SILENT = VERBOSE == "0"
USING_CI = os.environ.get("USING_CI", False)
PYPI_USERNAME = os.environ.get("PYPI_USERNAME", None)
PYPI_PASSWORD = os.environ.get("PYPI_PASSWORD", None)
def _base_install(session):
session.install("--upgrade", "setuptools", "pip", silent=SILENT)
def install_lint_deps(session):
_base_install(session)
session.install(*LINT_SETUP_DEPS, silent=SILENT)
def install_deploy_deps(session):
_base_install(session)
session.install(*DEPLOY_SETUP_DEPS, silent=SILENT)
def install_pytouch(session):
session.chdir(BASE)
session.run("pip", "install", "-e", ".")
@nox.session(python=DEFAULT_PYTHON_VERSIONS)
def lint(session):
install_lint_deps(session)
session.run("black", "--diff", "--check", ".", silent=SILENT)
session.run(
"isort",
"--check",
"--diff",
".",
"--skip=.nox",
silent=SILENT,
)
session.run("flake8", "--config", ".flake8")
@nox.session(python=DEFAULT_PYTHON_VERSIONS)
def tests(session):
_base_install(session)
install_pytouch(session)
session.install("pytest")
session.run("pytest", "tests")
@nox.session(python=DEFAULT_PYTHON_VERSIONS)
def build(session):
_base_install(session)
session.run("rm", "-rf", "dist", external=True)
session.run("python", "setup.py", "sdist")
@nox.session(python=DEFAULT_PYTHON_VERSIONS)
def deploy(session):
if not USING_CI:
session.skip("Skipping deployment to PyPi.")
install_deploy_deps(session)
session.run(
"twine",
"upload",
"dist/*",
env={"TWINE_USERNAME": PYPI_USERNAME, "TWINE_PASSWORD": PYPI_PASSWORD},
)