swh:1:snp:25085955b26b1e0e3a20c4b26b13e04cfb00c026
Raw File
Tip revision: 331d44f8e661f6aef4d1a8c669b6295e41bc341c authored by Jesper Nielsen on 10 May 2022, 10:27:03 UTC
Merge pull request #1884 from GPflow/develop
Tip revision: 331d44f
type_flags.py
# Copyright 2022 The GPflow Contributors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""
Code for setting type hints, depending on library versions.
"""
import sys

import numpy as np
from packaging.version import Version

NP_VERSION = Version(np.__version__)  # type: ignore

NP_TYPE_CHECKING = False
"""
Whether to type-check numpy arrays at all. Defaults to False, because we don't know which
versions a client might use.
"""

GENERIC_NP_ARRAYS = (sys.version_info >= (3, 9)) and (NP_VERSION >= Version("1.22.0"))
"""
Whether to use generic numpy arrays. This is not applied at all, if type checking and not
`NP_TYPE_CHECKING`.
"""

MYPY_FLAGS = {
    "NP_TYPE_CHECKING": True,
    "GENERIC_NP_ARRAYS": NP_VERSION >= Version("1.21.0"),
}
back to top