コード例 #1
0
ファイル: counter.py プロジェクト: buzzfeed/caliendo
from hashlib import sha1
import os

from caliendo import config

if config.should_use_caliendo():
    from caliendo.db.flatfiles import insert_test, select_test

__counters = { }

def get_from_trace_for_ev(trace):
    if os.environ.get('CALIENDO_DISABLE_EV_COUNTER', False) == 'True':
        return 0
    return get_from_trace(trace)

def get_from_trace_for_cache(trace):
    if os.environ.get('CALIENDO_DISABLE_CACHE_COUNTER', False) == 'True':
        return 0
    return get_from_trace(trace)

def get_from_trace(trace):
    key = sha1( trace ).hexdigest()
    if key in __counters:
        t = __counters[ key ]
        __counters[ key ] = t + 1
        return t
    else:
        t = __get_seed_from_trace( trace )
        if not t:
            t = __set_seed_by_trace( trace )
コード例 #2
0
ファイル: __init__.py プロジェクト: pahko/caliendo
import os
import random as random_r
import time

from caliendo.config import should_use_caliendo
from caliendo import util
from caliendo.db import flatfiles as ff

USE_CALIENDO = should_use_caliendo()

if USE_CALIENDO:
    util.create_tables( )

    def seq():    return util.seq()
    def random(): return util.random()
else:
    counter = int( time.time() * 10000 )
    
    def seq():
        global counter
        c = counter
        counter = counter + 1
        return c

    def random(*args):
        return random_r.random()

def recache(*args, **kwargs):
    return util.recache(*args, **kwargs)

class UNDEFINED(object):
コード例 #3
0
ファイル: expected_value.py プロジェクト: mplacona/caliendo
import cPickle as pickle
import sys
import copy_reg
import types
import inspect
from hashlib import sha1

import caliendo
from caliendo import config
from caliendo import pickling
from caliendo import util
from caliendo import prompt
from caliendo import counter

if config.should_use_caliendo():
    from caliendo.db.flatfiles import select_expected_value, delete_expected_value, insert_expected_value


def get_or_store(observed_value):
    caller = inspect.stack()[2][3]
    trace_string = util.get_stack(caller)
    counter_value = counter.get_from_trace_for_ev(trace_string)
    call_hash = sha1("%s.%s" % (trace_string, counter_value)).hexdigest()

    ev = fetch(call_hash)
    if not ev or (config.CALIENDO_PROMPT
                  and prompt.should_modify_expected_value(caller)):
        ev = ExpectedValue(call_hash=call_hash,
                           expected_value=prompt.modify_expected_value(
                               observed_value, caller))
        ev.save()
コード例 #4
0
ファイル: facade.py プロジェクト: mplacona/caliendo
import os
import sys
import inspect
import importlib
import types
from contextlib import contextmanager
import caliendo
from caliendo import util
from caliendo import config
from caliendo import call_descriptor
from caliendo import counter
from caliendo import prompt
from caliendo.__init__ import UNDEFINED
from caliendo.hooks import Hook

USE_CALIENDO = config.should_use_caliendo()

if USE_CALIENDO:
    from caliendo.db.flatfiles import delete_io

def should_exclude(type_or_instance, exclusion_list):
    """
    Tests whether an object should be simply returned when being wrapped

    """
    if type_or_instance in exclusion_list: # Check class definition
        return True
    if type(type_or_instance) in exclusion_list: # Check instance type
        return True
    try:
        if type_or_instance.__class__ in exclusion_list: # Check instance class
コード例 #5
0
ファイル: facade.py プロジェクト: pahko/caliendo
import os
import sys
import inspect
import importlib
import types
from contextlib import contextmanager
import caliendo
from caliendo import util
from caliendo import config
from caliendo import call_descriptor
from caliendo import counter
from caliendo import prompt
from caliendo import UNDEFINED
from caliendo.hooks import Hook

USE_CALIENDO = config.should_use_caliendo()

if USE_CALIENDO:
    from caliendo.db.flatfiles import delete_io

def should_exclude(type_or_instance, exclusion_list):
    """
    Tests whether an object should be simply returned when being wrapped

    """
    if type_or_instance in exclusion_list: # Check class definition
        return True
    if type(type_or_instance) in exclusion_list: # Check instance type
        return True
    try:
        if type_or_instance.__class__ in exclusion_list: # Check instance class