예제 #1
0
파일: debugmi.py 프로젝트: ranlempow/midash
def show(package):
    _.require(package, _debug=True)
    observer = midash._debug_mixin_observer[_]
    print('package {}: {} defines in TopLevel'.format(package, len(observer)))
    print('-----------------------')
    for m in sorted(observer, key=lambda m: m.name):
        print('{:15s} {}'.format(m.name, m.shortdesc[:60]))
예제 #2
0
    def __init__(self, package):
        import midash
        from midash import _

        self.methods = {}
        _.require(package, _debug=True)
        for methods in midash._debug_mixin_observer.values():
            for method in methods:
                self.methods[method.name] = method
예제 #3
0
파일: testmi.py 프로젝트: ranlempow/midash
from midash import _

_.localize()
_.require('testmi2')
_.require('functions')
_.require('compose')
_.require('iterators')
_.require('globalapi')

_.methods(0)
# print(ARG3)
# print(len(_.__dict__.keys()))
예제 #4
0
from midash import _
_.localize()
_.require('lambda')
_.require('lang')

import sys as _sys
composer = composeWith(_sys.modules[__name__])
MAXSIZE = _sys.maxsize

def _createArrayTriple(array):
    i = 0
    for v in array:
        yield v, i, None
        i += 1

def _createObjectTriple(obj):
    for k, v in obj.items():
        yield v, k, None
        
def triplize(obj):
    """
    >>> list(triplize([10, 20]))
    [(10, 0, None), (20, 1, None)]
    
    >>> list(triplize(triplize([10, 20])))
    [(10, 0, None), (20, 1, None)]
    
    >>> list(sorted(triplize({5:10, 6:20})))
    [(10, 5, None), (20, 6, None)]
    """
    if hasattr(obj, '__next__') or hasattr(obj, 'next'):
예제 #5
0
파일: bench.py 프로젝트: ranlempow/midash
def _it_setup(number=10000, inner=50, size=50):
    from midash import _
    _.require('iterators')
    _.require('_faster_iter')
    return (inner, _, [_.triplize(tuple(range(size))) for i in range(number)])
예제 #6
0
파일: lambda_.py 프로젝트: ranlempow/midash
from midash import _
_.require('lang')
none = _.none

import operator
from collections import namedtuple as _namedtuple

_CacheInfo = _namedtuple("CacheInfo", ["hits", "misses", "currsize"])


class _HashedSeq(list):
    """ This class guarantees that hash() will be called no more than once
        per element.  This is important because the lru_cache() will hash
        the key multiple times on a cache miss.
    """
    __slots__ = 'hashvalue'

    def __init__(self, tup, hash=hash):
        self[:] = tup
        self.hashvalue = hash(tup)

    def __hash__(self):
        return self.hashvalue


def memoize(user_function, _CacheInfo=_CacheInfo):
    cache = {}
    hits = misses = 0
    cache_get = cache.get  # bound method to lookup a key or return None

    def wrapper(*args):