Fix models error message and use about.__docs_models__ (see #1051)

This commit is contained in:
ines 2017-05-13 13:05:47 +02:00
parent 6b942763f0
commit 9d85cda8e4
7 changed files with 22 additions and 20 deletions

View File

@ -10,7 +10,7 @@ __author__ = 'Matthew Honnibal'
__email__ = 'matt@explosion.ai' __email__ = 'matt@explosion.ai'
__license__ = 'MIT' __license__ = 'MIT'
__docs__ = 'https://spacy.io/docs/usage' __docs_models__ = 'https://spacy.io/docs/usage/models'
__download_url__ = 'https://github.com/explosion/spacy-models/releases/download' __download_url__ = 'https://github.com/explosion/spacy-models/releases/download'
__compatibility__ = 'https://raw.githubusercontent.com/explosion/spacy-models/master/compatibility.json' __compatibility__ = 'https://raw.githubusercontent.com/explosion/spacy-models/master/compatibility.json'
__shortcuts__ = 'https://raw.githubusercontent.com/explosion/spacy-models/master/shortcuts.json' __shortcuts__ = 'https://raw.githubusercontent.com/explosion/spacy-models/master/shortcuts.json'

View File

@ -28,7 +28,7 @@ def get_json(url, desc):
if r.status_code != 200: if r.status_code != 200:
prints("Couldn't fetch %s. Please find a model for your spaCy installation " prints("Couldn't fetch %s. Please find a model for your spaCy installation "
"(v%s), and download it manually." % (desc, about.__version__), "(v%s), and download it manually." % (desc, about.__version__),
about.__docs__, title="Server error (%d)" % r.status_code, exits=True) about.__docs_models__, title="Server error (%d)" % r.status_code, exits=True)
return r.json() return r.json()

View File

@ -16,7 +16,8 @@ def depr_model_download(lang):
""" """
prints("The spacy.%s.download command is now deprecated. Please use " prints("The spacy.%s.download command is now deprecated. Please use "
"python -m spacy download [model name or shortcut] instead. For " "python -m spacy download [model name or shortcut] instead. For "
"more info, see the docs: %s." % (lang, about.__docs__), "more info, see the documentation:" % lang,
about.__docs_models__,
"Downloading default '%s' model now..." % lang, "Downloading default '%s' model now..." % lang,
title="Warning: deprecated command") title="Warning: deprecated command")
download(lang) download(lang)

View File

@ -23,6 +23,7 @@ from .attrs cimport IS_QUOTE
from .attrs cimport IS_LEFT_PUNCT from .attrs cimport IS_LEFT_PUNCT
from .attrs cimport IS_RIGHT_PUNCT from .attrs cimport IS_RIGHT_PUNCT
from .attrs cimport IS_OOV from .attrs cimport IS_OOV
from . import about
memset(&EMPTY_LEXEME, 0, sizeof(LexemeC)) memset(&EMPTY_LEXEME, 0, sizeof(LexemeC))
@ -136,10 +137,10 @@ cdef class Lexeme:
cdef int length = self.vocab.vectors_length cdef int length = self.vocab.vectors_length
if length == 0: if length == 0:
raise ValueError( raise ValueError(
"Word vectors set to length 0. This may be because the " "Word vectors set to length 0. This may be because you "
"data is not installed. If you haven't already, run" "don't have a model installed or loaded, or because your "
"\npython -m spacy download %s\n" "model doesn't include word vectors. For more info, see "
"to install the data." % self.vocab.lang "the documentation: \n%s\n" % about.__docs_models__
) )
vector_view = <float[:length,]>self.c.vector vector_view = <float[:length,]>self.c.vector

View File

@ -28,6 +28,7 @@ from ..parts_of_speech cimport CCONJ, PUNCT, NOUN, univ_pos_t
from ..syntax.iterators import CHUNKERS from ..syntax.iterators import CHUNKERS
from ..util import normalize_slice from ..util import normalize_slice
from ..compat import is_config from ..compat import is_config
from .. import about
DEF PADDING = 5 DEF PADDING = 5
@ -397,9 +398,8 @@ cdef class Doc:
if not self.is_parsed: if not self.is_parsed:
raise ValueError( raise ValueError(
"noun_chunks requires the dependency parse, which " "noun_chunks requires the dependency parse, which "
"requires data to be installed. If you haven't done so, run: " "requires data to be installed. For more info, see the "
"\npython -m spacy download %s\n" "documentation: \n%s\n" % about.__docs_models__)
"to install the data" % self.vocab.lang)
# Accumulate the result before beginning to iterate over it. This prevents # Accumulate the result before beginning to iterate over it. This prevents
# the tokenisation from being changed out from under us during the iteration. # the tokenisation from being changed out from under us during the iteration.
# The tricky thing here is that Span accepts its tokenisation changing, # The tricky thing here is that Span accepts its tokenisation changing,
@ -430,9 +430,8 @@ cdef class Doc:
if not self.is_parsed: if not self.is_parsed:
raise ValueError( raise ValueError(
"sentence boundary detection requires the dependency parse, which " "sentence boundary detection requires the dependency parse, which "
"requires data to be installed. If you haven't done so, run: " "requires data to be installed. For more info, see the "
"\npython -m spacy download %s\n" "documentation: \n%s\n" % about.__docs_models__)
"to install the data" % self.vocab.lang)
cdef int i cdef int i
start = 0 start = 0
for i in range(1, self.length): for i in range(1, self.length):

View File

@ -16,6 +16,7 @@ from ..util import normalize_slice
from ..attrs cimport IS_PUNCT, IS_SPACE from ..attrs cimport IS_PUNCT, IS_SPACE
from ..lexeme cimport Lexeme from ..lexeme cimport Lexeme
from ..compat import is_config from ..compat import is_config
from .. import about
cdef class Span: cdef class Span:
@ -221,9 +222,8 @@ cdef class Span:
if not self.doc.is_parsed: if not self.doc.is_parsed:
raise ValueError( raise ValueError(
"noun_chunks requires the dependency parse, which " "noun_chunks requires the dependency parse, which "
"requires data to be installed. If you haven't done so, run: " "requires data to be installed. For more info, see the "
"\npython -m spacy download %s\n" "documentation: \n%s\n" % about.__docs_models__)
"to install the data" % self.vocab.lang)
# Accumulate the result before beginning to iterate over it. This prevents # Accumulate the result before beginning to iterate over it. This prevents
# the tokenisation from being changed out from under us during the iteration. # the tokenisation from being changed out from under us during the iteration.
# The tricky thing here is that Span accepts its tokenisation changing, # The tricky thing here is that Span accepts its tokenisation changing,

View File

@ -19,6 +19,7 @@ from ..attrs cimport IS_TITLE, IS_UPPER, LIKE_URL, LIKE_NUM, LIKE_EMAIL, IS_STOP
from ..attrs cimport ID, ORTH, NORM, LOWER, SHAPE, PREFIX, SUFFIX, LENGTH, CLUSTER from ..attrs cimport ID, ORTH, NORM, LOWER, SHAPE, PREFIX, SUFFIX, LENGTH, CLUSTER
from ..attrs cimport LEMMA, POS, TAG, DEP from ..attrs cimport LEMMA, POS, TAG, DEP
from ..compat import is_config from ..compat import is_config
from .. import about
cdef class Token: cdef class Token:
@ -230,10 +231,10 @@ cdef class Token:
cdef int length = self.vocab.vectors_length cdef int length = self.vocab.vectors_length
if length == 0: if length == 0:
raise ValueError( raise ValueError(
"Word vectors set to length 0. This may be because the " "Word vectors set to length 0. This may be because you "
"data is not installed. If you haven't already, run" "don't have a model installed or loaded, or because your "
"\npython -m spacy download %s\n" "model doesn't include word vectors. For more info, see "
"to install the data." % self.vocab.lang "the documentation: \n%s\n" % about.__docs_models__
) )
vector_view = <float[:length,]>self.c.lex.vector vector_view = <float[:length,]>self.c.lex.vector
return numpy.asarray(vector_view) return numpy.asarray(vector_view)