Skip to content
Snippets Groups Projects
Commit 4212e063 authored by Ed Morley's avatar Ed Morley Committed by Kenneth Reitz
Browse files

NLTK support: Fix passing of multiple corpora identifiers (#460)

* NLTK support: Update test to use multiple corpora

So that the incorrect handling of multiple IDs seen in #444 would
have been caught.

Also switches to some of the smaller corpora, to reduce time spent
downloading during tests (see sizes on http://www.nltk.org/nltk_data/).

* NLTK support: Fix passing of multiple corpora identifiers

As part of fixing the shellcheck warnigns in #438, double quotes had
been placed around `$nltk_packages` passed to the `nltk.downloader`,
which causes multiple identifiers to be treated as though it were just
one identifier that contains spaces.

The docs for the shellcheck warning in question recommend using arrays
if the intended behaviour really is to split on spaces:
https://github.com/koalaman/shellcheck/wiki/SC2086#exceptions

As such, `readarray` has been used, which is present in bash >=4.
The `[*]` array form is used in the log message, to prevent shellcheck
warning SC2145, whereas `[@]` is used when passed to `nltk.downloader`
to ensure the array elements are unpacked as required.

Note: Both before and after this fix, using anything but unix line
endings in `nltk.txt` will also cause breakage.
parent fd360bda
No related branches found
No related tags found
No related merge requests found
......@@ -21,10 +21,10 @@ if sp-grep -s nltk; then
if [ -f "$nltk_packages_definition" ]; then
nltk_packages=$(tr "\n" " " < "$nltk_packages_definition")
puts-step "Downloading NLTK packages: $nltk_packages"
readarray -t nltk_packages < "$nltk_packages_definition"
puts-step "Downloading NLTK packages: ${nltk_packages[*]}"
python -m nltk.downloader -d "$BUILD_DIR/.heroku/python/nltk_data" "$nltk_packages" | indent
python -m nltk.downloader -d "$BUILD_DIR/.heroku/python/nltk_data" "${nltk_packages[@]}" | indent
set_env NLTK_DATA "/app/.heroku/python/nltk_data"
else
......@@ -32,4 +32,3 @@ if sp-grep -s nltk; then
puts-warn "Learn more: https://devcenter.heroku.com/articles/python-nltk"
fi
fi
wordnet
\ No newline at end of file
city_database
stopwords
......@@ -24,7 +24,7 @@ testGEOS() {
testNLTK() {
compile "nltk"
assertCaptured "wordnet"
assertCaptured "Downloading NLTK packages: city_database stopwords"
assertCapturedSuccess
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment