Source code for rpy2.rinterface_lib.na_values
"""NA (Non-Available) values in R."""
from . import embedded
from . import openrlib
from . import sexp
from . import _rinterface_capi as _rinterface
class Singleton(type):
    _instances = {}
    def __call__(cls, *args, **kwargs):
        instances = cls._instances
        if cls not in instances:
            instances[cls] = super(Singleton, cls).__call__(*args, **kwargs)
        return instances[cls]
NA_Character = None
NA_Integer = None
NA_Logical = None
NA_Real = None
NA_Complex = None
[docs]class NAIntegerType(int, metaclass=Singleton):
    def __new__(cls, *args, **kwargs):
        embedded.assert_isready()
        return super().__new__(cls, openrlib.rlib.R_NaInt)
    def __repr__(self) -> str:
        return 'NA_integer_'
    def __str__(self) -> str:
        return 'NA_integer_'
    def __bool__(self):
        raise ValueError('R value for missing integer value') 
[docs]class NACharacterType(sexp.CharSexp, metaclass=Singleton):
    def __init__(self):
        embedded.assert_isready()
        super().__init__(
            sexp.CharSexp(
                _rinterface.SexpCapsule(openrlib.rlib.R_NaString)
            )
        )
    def __repr__(self) -> str:
        return 'NA_character_'
    def __str__(self) -> str:
        return 'NA_character_'
    def __bool__(self):
        raise ValueError('R value for missing character value') 
[docs]class NALogicalType(int, metaclass=Singleton):
    def __new__(cls, *args, **kwargs):
        embedded.assert_isready()
        return super().__new__(cls, openrlib.rlib.R_NaInt)
    def __repr__(self) -> str:
        return 'NA'
    def __str__(self) -> str:
        return 'NA'
    def __bool__(self) -> bool:
        raise ValueError('R value for missing boolean value') 
[docs]class NARealType(float, metaclass=Singleton):
    def __new__(cls, *args, **kwargs):
        embedded.assert_isready()
        return super().__new__(cls, openrlib.rlib.R_NaReal)
    def __repr__(self) -> str:
        return 'NA_real_'
    def __str__(self) -> str:
        return 'NA_real_'
    def __bool__(self) -> bool:
        raise ValueError('R value for missing float value') 
[docs]class NAComplexType(complex, metaclass=Singleton):
    def __new__(cls, *args, **kwargs):
        embedded.assert_isready()
        return super().__new__(cls,
                               openrlib.rlib.R_NaReal,
                               openrlib.rlib.R_NaReal)
    def __repr__(self) -> str:
        return 'NA_complex_'
    def __str__(self) -> str:
        return 'NA_complex_'
    def __bool__(self):
        raise ValueError('R value for missing complex value')