ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ A[c@`s&dZddlmZmZmZddlmZmZddlZddlm Z ddl m Z dZ e rddl Z dZd Zd Zd ZeZeZeZdd lmZeZd ddddgZn?ddlZejZejZejZejZejZgZdS(s, This module is designed to be used as follows:: from past.builtins.noniterators import filter, map, range, reduce, zip And then, for example:: assert isinstance(range(5), list) The list-producing functions this brings in are:: - ``filter`` - ``map`` - ``range`` - ``reduce`` - ``zip`` i(tdivisiontabsolute_importtprint_function(tchaintstarmapN(t basestring(tPY3cC`stjt||S(N(Rt from_iterabletmap(tftitems((sK/opt/alt/python27/lib/python2.7/site-packages/past/builtins/noniterators.pytflatmapscG`st|d}t|dtr<|jtj|St|dttfrh|tj|Sttj|SdS(s* filter(function or None, sequence) -> list, tuple, or string Return those items of sequence for which function(item) is true. If function is None, return the items that are true. If sequence is a tuple or string, return the same type, else return a list. iN(ttypet isinstanceRtjointbuiltinstfilterttupletlist(targstmytype((sK/opt/alt/python27/lib/python2.7/site-packages/past/builtins/noniterators.pyt oldfilter$s cG`stj|}t|}t|dkr1gS|dkrF|}ntt||}yBtg|D]}t|^qhdkrttj|SWnt k r}nX|S(s map(function, sequence[, sequence, ...]) -> list Return a list of the results of applying the function to the items of the argument sequence(s). If more than one sequence is given, the function is called with an argument list consisting of the corresponding item of each sequence, substituting None for missing values when not all sequences have the same length. If the function is None, return a list of the items of the sequence (or a list of tuples if more than one sequence). Test cases: >>> oldmap(None, 'hello world') ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'] >>> oldmap(None, range(4)) [0, 1, 2, 3] More test cases are in past.tests.test_builtins. iiN( t itertoolst zip_longestRtlentNoneRtmaxRRt TypeError(tfunct iterablestzippedtltresulttitemte((sK/opt/alt/python27/lib/python2.7/site-packages/past/builtins/noniterators.pytoldmap8s   +cO`sttj||S(N(RRtrange(Rtkwargs((sK/opt/alt/python27/lib/python2.7/site-packages/past/builtins/noniterators.pytoldrangescO`sttj||S(N(RRtzip(RR%((sK/opt/alt/python27/lib/python2.7/site-packages/past/builtins/noniterators.pytoldzips(treduceRRR$R)R'(t__doc__t __future__RRRRRRt past.typesRt past.utilsRR RRR#R&R(RRR$t functoolsR)R't__all__t __builtin__(((sK/opt/alt/python27/lib/python2.7/site-packages/past/builtins/noniterators.pyts2