From a9ecdb33ca04d44c979d8d9c1c99df312f4dd50c Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Tue, 30 Jul 2019 12:02:13 +0200 Subject: [PATCH] Validate Python filenames (#1086) --- .travis.yml | 1 + .../{NaiveBayes.ipynb => naive_bayes.ipynb} | 0 ...wastage_analysis_from_1961-2013_fao.ipynb} | 0 scripts/validate_filenames.py | 28 +++++++++++++++++++ 4 files changed, 29 insertions(+) rename machine_learning/{NaiveBayes.ipynb => naive_bayes.ipynb} (100%) rename other/{Food wastage analysis from 1961-2013 (FAO).ipynb => food_wastage_analysis_from_1961-2013_fao.ipynb} (100%) create mode 100755 scripts/validate_filenames.py diff --git a/.travis.yml b/.travis.yml index d09ef9de2..c46d0d1d6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,6 +8,7 @@ before_script: - black --check . || true - flake8 . --count --select=E9,F401,F63,F7,F82 --show-source --statistics script: + - scripts/validate_filenames.py # no uppercase and no spaces - mypy --ignore-missing-imports . - pytest . --doctest-modules --ignore=data_structures/stacks/balanced_parentheses.py diff --git a/machine_learning/NaiveBayes.ipynb b/machine_learning/naive_bayes.ipynb similarity index 100% rename from machine_learning/NaiveBayes.ipynb rename to machine_learning/naive_bayes.ipynb diff --git a/other/Food wastage analysis from 1961-2013 (FAO).ipynb b/other/food_wastage_analysis_from_1961-2013_fao.ipynb similarity index 100% rename from other/Food wastage analysis from 1961-2013 (FAO).ipynb rename to other/food_wastage_analysis_from_1961-2013_fao.ipynb diff --git a/scripts/validate_filenames.py b/scripts/validate_filenames.py new file mode 100755 index 000000000..9e1f15033 --- /dev/null +++ b/scripts/validate_filenames.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python3 + +import os +from build_directory_md import good_filepaths + +filepaths = list(good_filepaths()) +assert filepaths, "good_filepaths() failed!" + + +upper_files = [file for file in filepaths if file != file.lower()] +if upper_files: + print(f"{len(upper_files)} files contain uppercase characters:") + print("\n".join(upper_files) + "\n") + +space_files = [file for file in filepaths if " " in file] +if space_files: + print(f"{len(space_files)} files contain space characters:") + print("\n".join(space_files) + "\n") + +nodir_files = [file for file in filepaths if os.sep not in file] +if nodir_files: + print(f"{len(nodir_files)} files are not in a directory:") + print("\n".join(nodir_files) + "\n") + +bad_files = len(upper_files + space_files + nodir_files) +if bad_files: + import sys + sys.exit(bad_files)