Source code for claripy

#!/usr/bin/env python
# pylint: disable=F0401,W0401,W0603,

__version__ = "9.2.101.dev0"

if bytes is str:
    raise Exception("This module is designed for python 3 only. Please install an older version to use python 2.")

import os
import logging

l = logging.getLogger("claripy")
l.addHandler(logging.NullHandler())

from .errors import *
from . import operations as operations
from . import ops as _all_operations

# This is here for later, because we'll fuck the namespace in a few lines
from . import backends as _backends_module
from .backends import Backend as Backend
from .backend_object import BackendObject as BackendObject


#
# backend objects
#

from . import bv as bv
from . import fp as fp
from . import vsa as vsa
from .fp import FSORT_DOUBLE as FSORT_DOUBLE, FSORT_FLOAT as FSORT_FLOAT
from .annotation import *

#
# Operations
#

from .ast.base import *
from .ast.bv import *
from .ast.fp import *
from .ast.bool import *
from .ast.strings import *
from . import ast

del BV
del Bool
del FP
del Base
ast._import()


[docs]def BV(name, size, explicit_name=None): # pylint:disable=function-redefined l.critical( "DEPRECATION WARNING: claripy.BV is deprecated and will soon be removed. Please use claripy.BVS, instead." ) print("DEPRECATION WARNING: claripy.BV is deprecated and will soon be removed. Please use claripy.BVS, instead.") return BVS(name, size, explicit_name=explicit_name)
# # Initialize the backends # from . import backend_manager as _backend_manager _backend_manager.backends._register_backend(_backends_module.BackendConcrete(), "concrete", True, True) _backend_manager.backends._register_backend(_backends_module.BackendVSA(), "vsa", False, False) if not os.environ.get("WORKER", False) and os.environ.get("REMOTE", False): try: _backend_z3 = _backends_module.backendremote.BackendRemote() except OSError: raise ImportError("can't connect to backend") else: _backend_z3 = _backends_module.BackendZ3() _backend_manager.backends._register_backend(_backend_z3, "z3", False, False) backends = _backend_manager.backends
[docs]def downsize(): """ Clear all temporary data associated with any backend """ backends.downsize()
# # Frontends # from .frontend import Frontend as _Frontend from . import frontends as frontends from . import frontend_mixins as frontend_mixins from .solvers import * # # Convenient button #
[docs]def reset(): """ Attempt to refresh any caching state associated with the module """ downsize() from .ast import bv # pylint:disable=redefined-outer-name bv._bvv_cache.clear()
from .debug import set_debug