"""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

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"