Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
1168273
FutureWarning from groupby.
TomAugspurger Sep 18, 2018
41c8297
Purge read_table
TomAugspurger Sep 18, 2018
2e76e84
Removed nested list example
TomAugspurger Sep 18, 2018
a70f86d
Fixed resample __iter__
TomAugspurger Sep 18, 2018
e4a8b06
Old whatsnew
TomAugspurger Sep 18, 2018
693eead
Ecosystem
TomAugspurger Sep 18, 2018
e6b2c09
to_csv
TomAugspurger Sep 18, 2018
a7f0b38
to_json
TomAugspurger Sep 18, 2018
ff3d2dd
Handle subpackages better
TomAugspurger Sep 18, 2018
e544249
Fixed unexpected indent
TomAugspurger Sep 18, 2018
8bdb920
Fixed "inline interpreted text..."
TomAugspurger Sep 18, 2018
ae0f8ff
Fixed "malformed hyperlink target"
TomAugspurger Sep 18, 2018
a275dfb
Add warnings to CLI
TomAugspurger Sep 18, 2018
b190866
Fixed unexpected indentation
TomAugspurger Sep 18, 2018
a46e4c7
newline after directive
TomAugspurger Sep 18, 2018
74af53d
Maybe fix na_value not included in toctree
TomAugspurger Sep 18, 2018
1668c65
Fixed no link to na_value
TomAugspurger Sep 18, 2018
dda2bfc
Fixed II ref
TomAugspurger Sep 18, 2018
a2b31ab
Fixed options ref
TomAugspurger Sep 18, 2018
9f0a948
Fixed link to Resmpaler
TomAugspurger Sep 18, 2018
158c46d
Change warning, error, linting
TomAugspurger Sep 18, 2018
c1a5ab8
Sample warning
TomAugspurger Sep 19, 2018
bbcd7bd
update contributing
TomAugspurger Sep 19, 2018
c8f206c
lint
TomAugspurger Sep 19, 2018
c917101
Merge remote-tracking branch 'upstream/master' into doc-warnings
TomAugspurger Sep 20, 2018
30c9174
Fix call
TomAugspurger Sep 20, 2018
5e0b275
write a parser
TomAugspurger Sep 20, 2018
384ace8
try to exit
TomAugspurger Sep 20, 2018
6a2a060
lint
TomAugspurger Sep 20, 2018
378bd6d
Rework doc build
TomAugspurger Sep 20, 2018
8859f97
executable scripts
TomAugspurger Sep 20, 2018
b9331f1
activate
TomAugspurger Sep 20, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Change warning, error, linting
  • Loading branch information
TomAugspurger committed Sep 18, 2018
commit 158c46dd9b1a143d3ba32e660f48ce90fa9587e9
17 changes: 15 additions & 2 deletions ci/build_docs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,21 @@ if [ "$DOC" ]; then
echo # Log file for the doc build #
echo ###############################

echo ./make.py
./make.py
echo './make.py 2>&1 | tee doc-build.log'
./make.py 2>&1 | tee doc-build.log

echo ##################
echo # Lint build log #
echo ##################

echo './make.py lint_log --logfile=doc-build.log'
./make.py lint_log --logfile=doc-build.log

if [ ?$ == 1 ]
then
echo "Errors in documentation build."
exit 1
fi

echo ########################
echo # Create and send docs #
Expand Down
54 changes: 48 additions & 6 deletions doc/make.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import importlib
import sys
import os
import textwrap
import shutil
# import subprocess
import argparse
Expand Down Expand Up @@ -78,7 +79,7 @@ class DocBuilder:
script.
"""
def __init__(self, num_jobs=1, include_api=True, single_doc=None,
verbosity=0, allow_warnings=False):
verbosity=0, warnings_are_errors=False, log_file=None):
self.num_jobs = num_jobs
self.include_api = include_api
self.verbosity = verbosity
Expand All @@ -87,7 +88,8 @@ def __init__(self, num_jobs=1, include_api=True, single_doc=None,
if single_doc is not None:
self._process_single_doc(single_doc)
self.exclude_patterns = self._exclude_patterns
self.allow_warnings = allow_warnings
self.warnings_are_errors = warnings_are_errors
self.log_file = log_file

self._generate_index()
if self.single_doc_type == 'docstring':
Expand Down Expand Up @@ -237,7 +239,7 @@ def _sphinx_build(self, kind):
self._run_os('sphinx-build',
'-j{}'.format(self.num_jobs),
'-b{}'.format(kind),
'{}'.format("" if self.allow_warnings else "-W"),
'{}'.format("W" if self.warnings_are_errors else ""),
'-{}'.format(
'v' * self.verbosity) if self.verbosity else '',
'-d{}'.format(os.path.join(BUILD_PATH, 'doctrees')),
Expand Down Expand Up @@ -324,6 +326,42 @@ def spellcheck(self):
' Check pandas/doc/build/spelling/output.txt'
' for more details.')

def lint_log(self):
with open(self.log_file) as f:
log = f.readlines()

failures = self._check_log(log)
if failures:
self._report_failures(failures)
sys.exit(1)

@staticmethod
def _check_log(log):
# type: (List[str]) -> List[Tuple[int, str]]
failures = []
for i, line in enumerate(log):
if "WARNING:" in line:
failures.append((i, line))

return failures

@staticmethod
def _report_failures(failures):
tpl = textwrap.dedent("""\
{n} failure{s}

{individual}
""")
joined = []
for i, (lineno, f) in enumerate(failures):
line = "Failure [{}]: {} (log line {})".format(i, f.strip(), lineno)
joined.append(line)
joined = '\n'.join(joined)

print(tpl.format(n=len(failures),
s="s" if len(failures) != 1 else "",
individual=joined))


def main():
cmds = [method for method in dir(DocBuilder) if not method.startswith('_')]
Expand Down Expand Up @@ -356,10 +394,13 @@ def main():
argparser.add_argument('-v', action='count', dest='verbosity', default=0,
help=('increase verbosity (can be repeated), '
'passed to the sphinx build command'))
argparser.add_argument("--allow-warnings",
argparser.add_argument("--warnings-are-errors",
default=False,
action="store_true",
help="Whether to allow warnings in the build.")
help="Whether to fail the build on warnings.")
argparser.add_argument("--log-file",
default="doc-build.log",
help="Log file of the build to lint for warnings.")
args = argparser.parse_args()

if args.command not in cmds:
Expand All @@ -379,7 +420,8 @@ def main():
os.environ['MPLBACKEND'] = 'module://matplotlib.backends.backend_agg'

builder = DocBuilder(args.num_jobs, not args.no_api, args.single,
args.verbosity, args.allow_warnings)
args.verbosity, args.warnings_are_errors,
args.log_file)
getattr(builder, args.command)()


Expand Down