Ejemplo n.º 1
0
def _post_initr_setup() -> None:

    emptyenv.__sexp__ = _rinterface.SexpCapsule(openrlib.rlib.R_EmptyEnv)
    baseenv.__sexp__ = _rinterface.SexpCapsule(openrlib.rlib.R_BaseEnv)
    globalenv.__sexp__ = _rinterface.SexpCapsule(openrlib.rlib.R_GlobalEnv)
    NULL._sexpobject = _rinterface.UnmanagedSexpCapsule(
        openrlib.rlib.R_NilValue)

    MissingArg._sexpobject = _rinterface.UnmanagedSexpCapsule(
        openrlib.rlib.R_MissingArg)

    global NA_Character
    na_values.NA_Character = sexp.NACharacterType()
    NA_Character = na_values.NA_Character

    global NA_Integer
    na_values.NA_Integer = sexp.NAIntegerType(openrlib.rlib.R_NaInt)
    NA_Integer = na_values.NA_Integer

    global NA_Logical, NA
    na_values.NA_Logical = sexp.NALogicalType(openrlib.rlib.R_NaInt)
    NA_Logical = na_values.NA_Logical
    NA = NA_Logical

    global NA_Real
    na_values.NA_Real = sexp.NARealType(openrlib.rlib.R_NaReal)
    NA_Real = na_values.NA_Real

    global NA_Complex
    na_values.NA_Complex = sexp.NAComplexType(
        _rinterface.ffi.new('Rcomplex *',
                            [openrlib.rlib.R_NaReal, openrlib.rlib.R_NaReal]))
    NA_Complex = na_values.NA_Complex

    warn_about_thread = False
    if threading.current_thread() is threading.main_thread():
        try:
            signal.signal(signal.SIGINT, _sigint_handler)
        except ValueError as ve:
            if str(ve) == 'signal only works in main thread':
                warn_about_thread = True
            else:
                raise ve
    else:
        warn_about_thread = True
    if warn_about_thread:
        warnings.warn(
            textwrap.dedent("""R is not initialized by the main thread.
                Its taking over SIGINT cannot be reversed here, and as a
                consequence the embedded R cannot be interrupted with Ctrl-C.
                Consider (re)setting the signal handler of your choice from
                the main thread."""))

    _update_R_ENC_PY()
Ejemplo n.º 2
0
def _post_initr_setup() -> None:

    emptyenv.__sexp__ = _rinterface.SexpCapsule(openrlib.rlib.R_EmptyEnv)
    baseenv.__sexp__ = _rinterface.SexpCapsule(openrlib.rlib.R_BaseEnv)
    globalenv.__sexp__ = _rinterface.SexpCapsule(openrlib.rlib.R_GlobalEnv)

    global NULL
    NULL = NULLType()

    MissingArg._sexpobject = _rinterface.UnmanagedSexpCapsule(
        openrlib.rlib.R_MissingArg)

    global NA_Character
    na_values.NA_Character = sexp.NACharacterType()
    NA_Character = na_values.NA_Character

    global NA_Integer
    na_values.NA_Integer = sexp.NAIntegerType(openrlib.rlib.R_NaInt)
    NA_Integer = na_values.NA_Integer

    global NA_Logical, NA
    na_values.NA_Logical = sexp.NALogicalType(openrlib.rlib.R_NaInt)
    NA_Logical = na_values.NA_Logical
    NA = NA_Logical

    global NA_Real
    na_values.NA_Real = sexp.NARealType(openrlib.rlib.R_NaReal)
    NA_Real = na_values.NA_Real

    global NA_Complex
    na_values.NA_Complex = sexp.NAComplexType(
        _rinterface.ffi.new('Rcomplex *',
                            [openrlib.rlib.R_NaReal, openrlib.rlib.R_NaReal]))
    NA_Complex = na_values.NA_Complex
Ejemplo n.º 3
0
 def __init__(self):
     if embedded.isready():
         tmp = Sexp(
             _rinterface.UnmanagedSexpCapsule(openrlib.rlib.R_NilValue))
     else:
         tmp = Sexp(_rinterface.UninitializedRCapsule(RTYPES.NILSXP.value))
     super().__init__(tmp)
Ejemplo n.º 4
0
 def __init__(self):
     if embedded.isready():
         tmp = sexp.Sexp(
             _rinterface.UnmanagedSexpCapsule(openrlib.rlib.R_MissingArg))
     else:
         tmp = sexp.Sexp(
             _rinterface.UninitializedRCapsule(RTYPES.SYMSXP.value))
     super().__init__(tmp)
Ejemplo n.º 5
0
 def __init__(self):
     embedded.assert_isready()
     super().__init__(
         sexp.Sexp(
             _rinterface.UnmanagedSexpCapsule(
                 openrlib.rlib.R_NilValue
             )
         )
     )
Ejemplo n.º 6
0
 def __init__(self):
     self._sexpobject = _rinterface.UnmanagedSexpCapsule(
         openrlib.rlib.R_MissingArg)