mirror of
				https://github.com/explosion/spaCy.git
				synced 2025-10-31 16:07:41 +03:00 
			
		
		
		
	* add custom protocols in spacy.ty * add a test for the new types in spacy.ty * import Example when type checking * some type fixes * put Protocol in compat * revert update check back to hasattr * runtime_checkable in compat as well
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """Helpers for Python and platform compatibility."""
 | |
| import sys
 | |
| from thinc.util import copy_array
 | |
| 
 | |
| try:
 | |
|     import cPickle as pickle
 | |
| except ImportError:
 | |
|     import pickle  # type: ignore[no-redef]
 | |
| 
 | |
| try:
 | |
|     import copy_reg
 | |
| except ImportError:
 | |
|     import copyreg as copy_reg  # type: ignore[no-redef]
 | |
| 
 | |
| try:
 | |
|     from cupy.cuda.stream import Stream as CudaStream
 | |
| except ImportError:
 | |
|     CudaStream = None
 | |
| 
 | |
| try:
 | |
|     import cupy
 | |
| except ImportError:
 | |
|     cupy = None
 | |
| 
 | |
| if sys.version_info[:2] >= (3, 8):  # Python 3.8+
 | |
|     from typing import Literal, Protocol, runtime_checkable
 | |
| else:
 | |
|     from typing_extensions import Literal, Protocol, runtime_checkable  # noqa: F401
 | |
| 
 | |
| # Important note: The importlib_metadata "backport" includes functionality
 | |
| # that's not part of the built-in importlib.metadata. We should treat this
 | |
| # import like the built-in and only use what's available there.
 | |
| try:  # Python 3.8+
 | |
|     import importlib.metadata as importlib_metadata
 | |
| except ImportError:
 | |
|     from catalogue import _importlib_metadata as importlib_metadata  # type: ignore[no-redef]    # noqa: F401
 | |
| 
 | |
| from thinc.api import Optimizer  # noqa: F401
 | |
| 
 | |
| pickle = pickle
 | |
| copy_reg = copy_reg
 | |
| CudaStream = CudaStream
 | |
| cupy = cupy
 | |
| copy_array = copy_array
 | |
| 
 | |
| is_windows = sys.platform.startswith("win")
 | |
| is_linux = sys.platform.startswith("linux")
 | |
| is_osx = sys.platform == "darwin"
 |