mirror of
				https://github.com/explosion/spaCy.git
				synced 2025-10-31 16:07:41 +03:00 
			
		
		
		
	Merge pull request #1 from zhiiw/feature_port
check port in use and add itself
This commit is contained in:
		
						commit
						83aa6ff92c
					
				|  | @ -11,6 +11,7 @@ from .render import DependencyRenderer, EntityRenderer, SpanRenderer | |||
| from ..tokens import Doc, Span | ||||
| from ..errors import Errors, Warnings | ||||
| from ..util import is_in_jupyter | ||||
| from ..util import is_port_in_use | ||||
| 
 | ||||
| 
 | ||||
| _html = {} | ||||
|  | @ -74,14 +75,14 @@ def render( | |||
| 
 | ||||
| 
 | ||||
| def serve( | ||||
|     docs: Union[Iterable[Doc], Doc], | ||||
|     style: str = "dep", | ||||
|     page: bool = True, | ||||
|     minify: bool = False, | ||||
|     options: Dict[str, Any] = {}, | ||||
|     manual: bool = False, | ||||
|     port: int = 5000, | ||||
|     host: str = "0.0.0.0", | ||||
|         docs: Union[Iterable[Doc], Doc], | ||||
|         style: str = "dep", | ||||
|         page: bool = True, | ||||
|         minify: bool = False, | ||||
|         options: Dict[str, Any] = {}, | ||||
|         manual: bool = False, | ||||
|         port: int = 5000, | ||||
|         host: str = "0.0.0.0", | ||||
| ) -> None: | ||||
|     """Serve displaCy visualisation. | ||||
| 
 | ||||
|  | @ -99,9 +100,15 @@ def serve( | |||
|     """ | ||||
|     from wsgiref import simple_server | ||||
| 
 | ||||
|     if is_port_in_use(port): | ||||
|         port += 1 | ||||
|         while is_port_in_use(port) and port < 65535: | ||||
|             port += 1 | ||||
| 
 | ||||
|     if is_in_jupyter(): | ||||
|         warnings.warn(Warnings.W011) | ||||
|     render(docs, style=style, page=page, minify=minify, options=options, manual=manual) | ||||
| 
 | ||||
|     httpd = simple_server.make_server(host, port, app) | ||||
|     print(f"\nUsing the '{style}' visualizer") | ||||
|     print(f"Serving on http://{host}:{port} ...\n") | ||||
|  |  | |||
|  | @ -31,7 +31,7 @@ import shlex | |||
| import inspect | ||||
| import pkgutil | ||||
| import logging | ||||
| 
 | ||||
| import socket | ||||
| try: | ||||
|     import cupy.random | ||||
| except ImportError: | ||||
|  | @ -1736,3 +1736,8 @@ def all_equal(iterable): | |||
|     (or if the input is an empty sequence), False otherwise.""" | ||||
|     g = itertools.groupby(iterable) | ||||
|     return next(g, True) and not next(g, False) | ||||
| 
 | ||||
| 
 | ||||
| def is_port_in_use(port): | ||||
|     with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: | ||||
|         return s.connect_ex(('localhost', port)) == 0 | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user