mirror of
https://github.com/explosion/spaCy.git
synced 2024-12-24 17:06:29 +03:00
Support pipeline factories via entry points (#2348)
This commit is contained in:
parent
94ad2d66b6
commit
862da5e793
|
@ -46,6 +46,8 @@ class Warnings(object):
|
||||||
"use context-sensitive tensors. You can always add your own word "
|
"use context-sensitive tensors. You can always add your own word "
|
||||||
"vectors, or use one of the larger models instead if available.")
|
"vectors, or use one of the larger models instead if available.")
|
||||||
W008 = ("Evaluating {obj}.similarity based on empty vectors.")
|
W008 = ("Evaluating {obj}.similarity based on empty vectors.")
|
||||||
|
W009 = ("Custom factory '{name}' provided by entry points of another "
|
||||||
|
"package overwrites built-in factory.")
|
||||||
|
|
||||||
|
|
||||||
@add_codes
|
@add_codes
|
||||||
|
|
|
@ -28,7 +28,7 @@ from .lang.punctuation import TOKENIZER_INFIXES
|
||||||
from .lang.tokenizer_exceptions import TOKEN_MATCH
|
from .lang.tokenizer_exceptions import TOKEN_MATCH
|
||||||
from .lang.tag_map import TAG_MAP
|
from .lang.tag_map import TAG_MAP
|
||||||
from .lang.lex_attrs import LEX_ATTRS, is_stop
|
from .lang.lex_attrs import LEX_ATTRS, is_stop
|
||||||
from .errors import Errors
|
from .errors import Errors, Warnings, user_warning
|
||||||
from . import util
|
from . import util
|
||||||
from . import about
|
from . import about
|
||||||
|
|
||||||
|
@ -139,6 +139,11 @@ class Language(object):
|
||||||
100,000 characters in one text.
|
100,000 characters in one text.
|
||||||
RETURNS (Language): The newly constructed object.
|
RETURNS (Language): The newly constructed object.
|
||||||
"""
|
"""
|
||||||
|
user_factories = util.get_entry_points('spacy_factories')
|
||||||
|
for factory in user_factories.keys():
|
||||||
|
if factory in self.factories:
|
||||||
|
user_warning(Warnings.W009.format(name=factory))
|
||||||
|
self.factories.update(user_factories)
|
||||||
self._meta = dict(meta)
|
self._meta = dict(meta)
|
||||||
self._path = None
|
self._path = None
|
||||||
if vocab is True:
|
if vocab is True:
|
||||||
|
|
|
@ -220,6 +220,19 @@ def get_package_path(name):
|
||||||
return Path(pkg.__file__).parent
|
return Path(pkg.__file__).parent
|
||||||
|
|
||||||
|
|
||||||
|
def get_entry_points(key):
|
||||||
|
"""Get registered entry points from other packages for a given key, e.g.
|
||||||
|
'spacy_factories' and return them as a dictionary, keyed by name.
|
||||||
|
|
||||||
|
key (unicode): Entry point name.
|
||||||
|
RETURNS (dict): Entry points, keyed by name.
|
||||||
|
"""
|
||||||
|
result = {}
|
||||||
|
for entry_point in pkg_resources.iter_entry_points(key):
|
||||||
|
result[entry_point.name] = entry_point.load()
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
def is_in_jupyter():
|
def is_in_jupyter():
|
||||||
"""Check if user is running spaCy from a Jupyter notebook by detecting the
|
"""Check if user is running spaCy from a Jupyter notebook by detecting the
|
||||||
IPython kernel. Mainly used for the displaCy visualizer.
|
IPython kernel. Mainly used for the displaCy visualizer.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user