ó
Ý˛k^c           @   sT   d  d l  Z  d d l m Z m Z m Z d d l m Z d	 Z d   Z d   Z	 d S(
   i˙˙˙˙Ni   (   t   frequenciest   pluckt   getter(   t   mapt   countbyt   partitionbyc         C   s.   t  |   s t |   }  n  t t |  |   S(   s   Count elements of a collection by a key function
    >>> countby(len, ['cat', 'mouse', 'dog'])
    {3: 2, 5: 1}
    >>> def iseven(x): return x % 2 == 0
    >>> countby(iseven, [1, 2, 3])  # doctest:+SKIP
    {True: 1, False: 2}
    See Also:
        groupby
    (   t   callableR   R    R   (   t   keyt   seq(    (    s:   lib/python2.7/site-packages/conda/_vendor/toolz/recipes.pyR   	   s    
c         C   s%   t  t t d t j | d |    S(   s   Partition a sequence according to a function
    Partition `s` into a sequence of lists such that, when traversing
    `s`, every time the output of `func` changes a new list is started
    and that and subsequent items are collected into that list.
    >>> is_space = lambda c: c == " "
    >>> list(partitionby(is_space, "I have space"))
    [('I',), (' ',), ('h', 'a', 'v', 'e'), (' ',), ('s', 'p', 'a', 'c', 'e')]
    >>> is_large = lambda x: x > 10
    >>> list(partitionby(is_large, [1, 2, 1, 99, 88, 33, 99, -1, 5]))
    [(1, 2, 1), (99, 88, 33, 99), (-1, 5)]
    See also:
        partition
        groupby
        itertools.groupby
    i   R   (   R   t   tupleR   t	   itertoolst   groupby(   t   funcR   (    (    s:   lib/python2.7/site-packages/conda/_vendor/toolz/recipes.pyR      s    (   R   R   (
   R
   t	   itertoolzR    R   R   t   compatibilityR   t   __all__R   R   (    (    (    s:   lib/python2.7/site-packages/conda/_vendor/toolz/recipes.pyt   <module>   s
   	