python3-dask-bag-1.1.1-bp155.2.16 >  A dk?ϊI%z j ´`P[ӵh5+jؐ;gWi+5槯'"~QɕptZF'w/26e}Zk1ci#j;6 \8yCW%4ЗԂ tCQ9ӂ+ E;mj'}Ww=e9@{[KmVtCGQw&GiE䧻[\c abNGr|_Q9],-0Ei ˈ ʘAN) FWƫPB\mQጙb Oq;m8cK6eϮg(+dspm* ʿ%Kȧ[t_7Y/0/cQʎ!S,%5]1h8&_^& ,{ۼ0YjR'.L9.MC.v ˬ7KꟘݜjChMQ5 uoeIxUNN䖂 (^!?3dQؖ㴞{tՉ_.oxf:2ij4*@vF!\`J%W Wx@Գۜ''1Ϫnfv ,]qJLOyԦd>pA0$?0d $ R :^dl!! 2! t! !  !  <! ! e! 0!(89D:jF&]G&p!H&!I'x!X'Y'\'!](8!^*b+c,}d,e,f,l,u-!v-w.(!x.!y/0z///////0Cpython3-dask-bag1.1.1bp155.2.16Data structure generic python objects in daskA minimal task scheduling abstraction and parallel arrays. * dask is a specification to describe task dependency graphs. * dask.array is a drop-in NumPy replacement (for a subset of NumPy) that encodes blocked algorithms in dask dependency graphs. * dask.async is a shared-memory asynchronous scheduler that efficiently executes dask dependency graphs on multiple cores. This package contains the dask bag class. Dask.Bag parallelizes computations across a large collection of generic Python objects. It is particularly useful when dealing with large quantities of semi-structured data like JSON blobs or log files.dk?sheep81bSUSE Linux Enterprise 15 SP5openSUSEBSD-3-Clausehttps://bugs.opensuse.orgDevelopment/Languages/Pythonhttp://github.com/ContinuumIO/dask/linuxnoarch##++^^"# m mfK KFA큤A큤A큤A큤A큤dk?\.Fdk?dk?dk?dk?dk?dk?dk?dk?dk?dk?dk?\PO\POdk?\.Fdk?dk?dk?dk?dk?dk?dk?dk?dk?\.F\PO\PO\PO\.Fdk?\.Fd65de4e55b54e915fe8e594219134b0078688ae871d14a47d1ce6ff5c1b1e1a1ff15b1387b9a052ef4ba00569b90afb47f98be97c6382dea2572d543c6588817b14093b2db39ecfad60ff360b171738533da4acffcf3f14dde096cec1411f115b0b66920040dac79905666f68872037a99264f5aa9e1f5659b6448cbabe0635fcd7f657006e1bccc72a15fef87500f4c92cb3b9b69d59d6dcd0c501cfc74cbab45c665071bb4ccde7a0a7b017d5a36991abd57e96f876d06ce325219e863bc3c7c690dfd1608476c475c551345a8cff55c9a2ea768b49e275c3583423f285f5340b186c325f9796f13b27530c3f8e11cb2cdaae16b13eceffa343fc5658f95d22007e37e2f6d8b6948362cbb0d6ad1653514acf65b26eef40412401f5b648b1bc3f3436151b7b288be7c9098eb312f2169663f8860f8167f00de94d326b2cde9c3f3436151b7b288be7c9098eb312f2169663f8860f8167f00de94d326b2cde90b3990ddc5687acf29b8fcf3b90a45fe89ddd7ee971e93680e80876d287ba322c05ee837fda9fe8e42c217238c2bd554f204689eaa611610bdbd5dd7c1e07dcee3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8550a173f569a29500a83efabe673b1010f73c3c1424bcf4871c7546806ada98c6f0a173f569a29500a83efabe673b1010f73c3c1424bcf4871c7546806ada98c6fe0293d9b6bf1008271c33ceaab4512cd4d54868e7d8c1b0c3573c1238c6e6d0dc68f42c46646d694eaf61414bfed6ae119f99f1d50b3e591699784ed0f255da7682726b67b539413017d5418b606c0046438affa02d1545bc21c9a3c5df9b6003e67652fc8e95fb942f506b7958c724652d07b2af77113b430c32ba097dcb916c5187bdbed9312ee568fbdb1c89ed2573366ecb667a0373fb2ca58f7663b6ea2f20c94434811e08a93760342de9b19236556a62574d869e3dff500101ed7e673fd43fdc8abf3f63f3caed6565415423ff392078e475a26d3b571d762879861777d59c3ac21929c84bb9161fc8d8c66c311ddf81d17ffae5909712d538cf1d83517ac6f1954ecaf667eff5c1c71e13dd6853a4ad770e9fe03ffceab95f114fcbae796dced4eaa5f8e9c6e83acea4e723e363277ac544745b6bc7b02c1cf84593ae4431aa3be92c45e0eb9bb19a8b77ab15a20a28289859ab474674b1513f6e083a021fc26a297bbb0c4e70012b5165739be75e7f6d4f827dd4c7464b9b0b88465rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython-dask-1.1.1-bp155.2.16.src.rpmpython3-dask-bag@     python(abi)python3-daskpython3-dask-multiprocessingrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.61.1.11.1.13.0.4-14.6.0-14.0.4-14.0-15.2-14.14.3`+\U@\Db\w[@[k@[G[[F[@[[[/[Z@Z=ZArun Persaud Arun Persaud Arun Persaud Arun Persaud Arun Persaud Arun Persaud Arun Persaud Arun Persaud Arun Persaud Arun Persaud arun@gmx.dearun@gmx.dearun@gmx.dearun@gmx.dearun@gmx.desebix+novell.com@sebix.atarun@gmx.dearun@gmx.dearun@gmx.dearun@gmx.dearun@gmx.dearun@gmx.detoddrme2178@gmail.comtoddrme2178@gmail.comtoddrme2178@gmail.comtoddrme2178@gmail.com- Do not build the python2 package since python-joblib is python3 only- update to version 1.1.1: * Array + Add support for cupy.einsum (:pr:`4402`) Johnnie Gray + Provide byte size in chunks keyword (:pr:`4434`) Adam Beberg + Raise more informative error for histogram bins and range (:pr:`4430`) James Bourbeau * DataFrame + Lazily register more cudf functions and move to backends file (:pr:`4396`) Matthew Rocklin + Fix ORC tests for pyarrow 0.12.0 (:pr:`4413`) Jim Crist + rearrange_by_column: ensure that shuffle arg defaults to 'disk' if it's None in dask.config (:pr:`4414`) George Sakkis + Implement filters for _read_pyarrow (:pr:`4415`) George Sakkis + Avoid checking against types in is_dataframe_like (:pr:`4418`) Matthew Rocklin + Pass username as 'user' when using pyarrow (:pr:`4438`) Roma Sokolov * Delayed + Fix DelayedAttr return value (:pr:`4440`) Matthew Rocklin * Documentation + Use SVG for pipeline graphic (:pr:`4406`) John A Kirkham + Add doctest-modules to py.test documentation (:pr:`4427`) Daniel Severo * Core + Work around psutil 5.5.0 not allowing pickling Process objects Dimplexion- specfile: * update copyright year - update to version 1.1.0: * Array + Fix the average function when there is a masked array (:pr:`4236`) Damien Garaud + Add allow_unknown_chunksizes to hstack and vstack (:pr:`4287`) Paul Vecchio + Fix tensordot for 27+ dimensions (:pr:`4304`) Johnnie Gray + Fixed block_info with axes. (:pr:`4301`) Tom Augspurger + Use safe_wraps for matmul (:pr:`4346`) Mark Harfouche + Use chunks="auto" in array creation routines (:pr:`4354`) Matthew Rocklin + Fix np.matmul in dask.array.Array.__array_ufunc__ (:pr:`4363`) Stephan Hoyer + COMPAT: Re-enable multifield copy->view change (:pr:`4357`) Diane Trout + Calling np.dtype on a delayed object works (:pr:`4387`) Jim Crist + Rework normalize_array for numpy data (:pr:`4312`) Marco Neumann * DataFrame + Add fill_value support for series comparisons (:pr:`4250`) James Bourbeau + Add schema name in read_sql_table for empty tables (:pr:`4268`) Mina Farid + Adjust check for bad chunks in map_blocks (:pr:`4308`) Tom Augspurger + Add dask.dataframe.read_fwf (:pr:`4316`) @slnguyen + Use atop fusion in dask dataframe (:pr:`4229`) Matthew Rocklin + Use parallel_types(`) in from_pandas (:pr:`4331`) Matthew Rocklin + Change DataFrame._repr_data to method (:pr:`4330`) Matthew Rocklin + Install pyarrow fastparquet for Appveyor (:pr:`4338`) Gábor Lipták + Remove explicit pandas checks and provide cudf lazy registration (:pr:`4359`) Matthew Rocklin + Replace isinstance(..., pandas`) with is_dataframe_like (:pr:`4375`) Matthew Rocklin + ENH: Support 3rd-party ExtensionArrays (:pr:`4379`) Tom Augspurger + Pandas 0.24.0 compat (:pr:`4374`) Tom Augspurger * Documentation + Fix link to 'map_blocks' function in array api docs (:pr:`4258`) David Hoese + Add a paragraph on Dask-Yarn in the cloud docs (:pr:`4260`) Jim Crist + Copy edit documentation (:pr:`4267), (:pr:`4263`), (:pr:`4262`), (:pr:`4277`), (:pr:`4271`), (:pr:`4279), (:pr:`4265`), (:pr:`4295`), (:pr:`4293`), (:pr:`4296`), (:pr:`4302`), (:pr:`4306`), (:pr:`4318`), (:pr:`4314`), (:pr:`4309`), (:pr:`4317`), (:pr:`4326`), (:pr:`4325`), (:pr:`4322`), (:pr:`4332`), (:pr:`4333`), Miguel Farrajota + Fix typo in code example (:pr:`4272`) Daniel Li + Doc: Update array-api.rst (:pr:`4259`) (:pr:`4282`) Prabakaran Kumaresshan + Update hpc doc (:pr:`4266`) Guillaume Eynard-Bontemps + Doc: Replace from_avro with read_avro in documents (:pr:`4313`) Prabakaran Kumaresshan + Remove reference to "get" scheduler functions in docs (:pr:`4350`) Matthew Rocklin + Fix typo in docstring (:pr:`4376`) Daniel Saxton + Added documentation for dask.dataframe.merge (:pr:`4382`) Jendrik Jördening * Core + Avoid recursion in dask.core.get (:pr:`4219`) Matthew Rocklin + Remove verbose flag from pytest setup.cfg (:pr:`4281`) Matthew Rocklin + Support Pytest 4.0 by specifying marks explicitly (:pr:`4280`) Takahiro Kojima + Add High Level Graphs (:pr:`4092`) Matthew Rocklin + Fix SerializableLock locked and acquire methods (:pr:`4294`) Stephan Hoyer + Pin boto3 to earlier version in tests to avoid moto conflict (:pr:`4276`) Martin Durant + Treat None as missing in config when updating (:pr:`4324`) Matthew Rocklin + Update Appveyor to Python 3.6 (:pr:`4337`) Gábor Lipták + Use parse_bytes more liberally in dask.dataframe/bytes/bag (:pr:`4339`) Matthew Rocklin + Add a better error message when cloudpickle is missing (:pr:`4342`) Mark Harfouche + Support pool= keyword argument in threaded/multiprocessing get functions (:pr:`4351`) Matthew Rocklin + Allow updates from arbitrary Mappings in config.update, not only dicts. (:pr:`4356`) Stuart Berg + Move dask/array/top.py code to dask/blockwise.py (:pr:`4348`) Matthew Rocklin + Add has_parallel_type (:pr:`4395`) Matthew Rocklin + CI: Update Appveyor (:pr:`4381`) Tom Augspurger + Ignore non-readable config files (:pr:`4388`) Jim Crist- update to version 1.0.0: * Array + Add nancumsum/nancumprod unit tests (:pr:`4215`) Guido Imperiale * DataFrame + Add index to to_dask_dataframe docstring (:pr:`4232`) James Bourbeau + Text and fix when appending categoricals with fastparquet (:pr:`4245`) Martin Durant + Don't reread metadata when passing ParquetFile to read_parquet (:pr:`4247`) Martin Durant * Documentation + Copy edit documentation (:pr:`4222`) (:pr:`4224`) (:pr:`4228`) (:pr:`4231`) (:pr:`4230`) (:pr:`4234`) (:pr:`4235`) (:pr:`4254`) Miguel Farrajota + Updated doc for the new scheduler keyword (:pr:`4251`) @milesial * Core + Avoid a few warnings (:pr:`4223`) Matthew Rocklin + Remove dask.store module (:pr:`4221`) Matthew Rocklin + Remove AUTHORS.md Jim Crist- update to version 0.20.2: * Array + Avoid fusing dependencies of atop reductions (:pr:`4207`) Matthew Rocklin * Dataframe + Improve memory footprint for dataframe correlation (:pr:`4193`) Damien Garaud + Add empty DataFrame check to boundary_slice (:pr:`4212`) James Bourbeau * Documentation + Copy edit documentation (:pr:`4197`) (:pr:`4204`) (:pr:`4198`) (:pr:`4199`) (:pr:`4200`) (:pr:`4202`) (:pr:`4209`) Miguel Farrajota + Add stats module namespace (:pr:`4206`) James Bourbeau + Fix link in dataframe documentation (:pr:`4208`) James Bourbeau- update to version 0.20.1: * Array + Only allocate the result space in wrapped_pad_func (:pr:`4153`) John A Kirkham + Generalize expand_pad_width to expand_pad_value (:pr:`4150`) John A Kirkham + Test da.pad with 2D linear_ramp case (:pr:`4162`) John A Kirkham + Fix import for broadcast_to. (:pr:`4168`) samc0de + Rewrite Dask Array's pad to add only new chunks (:pr:`4152`) John A Kirkham + Validate index inputs to atop (:pr:`4182`) Matthew Rocklin * Core + Dask.config set and get normalize underscores and hyphens (:pr:`4143`) James Bourbeau + Only subs on core collections, not subclasses (:pr:`4159`) Matthew Rocklin + Add block_size=0 option to HTTPFileSystem. (:pr:`4171`) Martin Durant + Add traverse support for dataclasses (:pr:`4165`) Armin Berres + Avoid optimization on sharedicts without dependencies (:pr:`4181`) Matthew Rocklin + Update the pytest version for TravisCI (:pr:`4189`) Damien Garaud + Use key_split rather than funcname in visualize names (:pr:`4160`) Matthew Rocklin * Dataframe + Add fix for DataFrame.__setitem__ for index (:pr:`4151`) Anderson Banihirwe + Fix column choice when passing list of files to fastparquet (:pr:`4174`) Martin Durant + Pass engine_kwargs from read_sql_table to sqlalchemy (:pr:`4187`) Damien Garaud * Documentation + Fix documentation in Delayed best practices example that returned an empty list (:pr:`4147`) Jonathan Fraine + Copy edit documentation (:pr:`4164`) (:pr:`4175`) (:pr:`4185`) (:pr:`4192`) (:pr:`4191`) (:pr:`4190`) (:pr:`4180`) Miguel Farrajota + Fix typo in docstring (:pr:`4183`) Carlos Valiente- update to version 0.20.0: * Array + Fuse Atop operations (:pr:`3998`), (:pr:`4081`) Matthew Rocklin + Support da.asanyarray on dask dataframes (:pr:`4080`) Matthew Rocklin + Remove unnecessary endianness check in datetime test (:pr:`4113`) Elliott Sales de Andrade + Set name=False in array foo_like functions (:pr:`4116`) Matthew Rocklin + Remove dask.array.ghost module (:pr:`4121`) Matthew Rocklin + Fix use of getargspec in dask array (:pr:`4125`) Stephan Hoyer + Adds dask.array.invert (:pr:`4127`), (:pr:`4131`) Anderson Banihirwe + Raise informative error on arg-reduction on unknown chunksize (:pr:`4128`), (:pr:`4135`) Matthew Rocklin + Normalize reversed slices in dask array (:pr:`4126`) Matthew Rocklin * Bag + Add bag.to_avro (:pr:`4076`) Martin Durant * Core + Pull num_workers from config.get (:pr:`4086`), (:pr:`4093`) James Bourbeau + Fix invalid escape sequences with raw strings (:pr:`4112`) Elliott Sales de Andrade + Raise an error on the use of the get= keyword and set_options (:pr:`4077`) Matthew Rocklin + Add import for Azure DataLake storage, and add docs (:pr:`4132`) Martin Durant + Avoid collections.Mapping/Sequence (:pr:`4138`) Matthew Rocklin * Dataframe + Include index keyword in to_dask_dataframe (:pr:`4071`) Matthew Rocklin + add support for duplicate column names (:pr:`4087`) Jan Koch + Implement min_count for the DataFrame methods sum and prod (:pr:`4090`) Bart Broere + Remove pandas warnings in concat (:pr:`4095`) Matthew Rocklin + DataFrame.to_csv header option to only output headers in the first chunk (:pr:`3909`) Rahul Vaidya + Remove Series.to_parquet (:pr:`4104`) Justin Dennison + Avoid warnings and deprecated pandas methods (:pr:`4115`) Matthew Rocklin + Swap 'old' and 'previous' when reporting append error (:pr:`4130`) Martin Durant * Documentation + Copy edit documentation (:pr:`4073`), (:pr:`4074`), (:pr:`4094`), (:pr:`4097`), (:pr:`4107`), (:pr:`4124`), (:pr:`4133`), (:pr:`4139`) Miguel Farrajota + Fix typo in code example (:pr:`4089`) Antonino Ingargiola + Add pycon 2018 presentation (:pr:`4102`) Javad + Quick description for gcsfs (:pr:`4109`) Martin Durant + Fixed typo in docstrings of read_sql_table method (:pr:`4114`) TakaakiFuruse + Make target directories in redirects if they don't exist (:pr:`4136`) Matthew Rocklin- update to version 0.19.4: * Array + Implement apply_gufunc(..., axes=..., keepdims=...) (:pr:`3985`) Markus Gonser * Bag + Fix typo in datasets.make_people (:pr:`4069`) Matthew Rocklin * Dataframe + Added percentiles options for dask.dataframe.describe method (:pr:`4067`) Zhenqing Li + Add DataFrame.partitions accessor similar to Array.blocks (:pr:`4066`) Matthew Rocklin * Core + Pass get functions and Clients through scheduler keyword (:pr:`4062`) Matthew Rocklin * Documentation + Fix Typo on hpc example. (missing = in kwarg). (:pr:`4068`) Matthias Bussonier + Extensive copy-editing: (:pr:`4065`), (:pr:`4064`), (:pr:`4063`) Miguel Farrajota- update to version 0.19.3: * Array + Make da.RandomState extensible to other modules (:pr:`4041`) Matthew Rocklin + Support unknown dims in ravel no-op case (:pr:`4055`) Jim Crist + Add basic infrastructure for cupy (:pr:`4019`) Matthew Rocklin + Avoid asarray and lock arguments for from_array(getitem`) (:pr:`4044`) Matthew Rocklin + Move local imports in corrcoef to global imports (:pr:`4030`) John A Kirkham + Move local indices import to global import (:pr:`4029`) John A Kirkham + Fix-up Dask Array's fromfunction w.r.t. dtype and kwargs (:pr:`4028`) John A Kirkham + Don't use dummy expansion for trim_internal in overlapped (:pr:`3964`) Mark Harfouche + Add unravel_index (:pr:`3958`) John A Kirkham * Bag + Sort result in Bag.frequencies (:pr:`4033`) Matthew Rocklin + Add support for npartitions=1 edge case in groupby (:pr:`4050`) James Bourbeau + Add new random dataset for people (:pr:`4018`) Matthew Rocklin + Improve performance of bag.read_text on small files (:pr:`4013`) Eric Wolak + Add bag.read_avro (:pr:`4000`) (:pr:`4007`) Martin Durant * Dataframe + Added an index parameter to :meth:`dask.dataframe.from_dask_array` for creating a dask DataFrame from a dask Array with a given index. (:pr:`3991`) Tom Augspurger + Improve sub-classability of dask dataframe (:pr:`4015`) Matthew Rocklin + Fix failing hdfs test [test-hdfs] (:pr:`4046`) Jim Crist + fuse_subgraphs works without normal fuse (:pr:`4042`) Jim Crist + Make path for reading many parquet files without prescan (:pr:`3978`) Martin Durant + Index in dd.from_dask_array (:pr:`3991`) Tom Augspurger + Making skiprows accept lists (:pr:`3975`) Julia Signell + Fail early in fastparquet read for nonexistent column (:pr:`3989`) Martin Durant * Core + Add support for npartitions=1 edge case in groupby (:pr:`4050`) James Bourbeau + Automatically wrap large arguments with dask.delayed in map_blocks/partitions (:pr:`4002`) Matthew Rocklin + Fuse linear chains of subgraphs (:pr:`3979`) Jim Crist + Make multiprocessing context configurable (:pr:`3763`) Itamar Turner-Trauring * Documentation + Extensive copy-editing (:pr:`4049`), (:pr:`4034`), (:pr:`4031`), (:pr:`4020`), (:pr:`4021`), (:pr:`4022`), (:pr:`4023`), (:pr:`4016`), (:pr:`4017`), (:pr:`4010`), (:pr:`3997`), (:pr:`3996`), Miguel Farrajota + Update shuffle method selection docs [skip ci] (:pr:`4048`) James Bourbeau + Remove docs/source/examples, point to examples.dask.org (:pr:`4014`) Matthew Rocklin + Replace readthedocs links with dask.org (:pr:`4008`) Matthew Rocklin + Updates DataFrame.to_hdf docstring for returned values [skip ci] (:pr:`3992`) James Bourbeau- update to version 0.19.2: * Array + apply_gufunc implements automatic infer of functions output dtypes (:pr:`3936`) Markus Gonser + Fix array histogram range error when array has nans (#3980) James Bourbeau + Issue 3937 follow up, int type checks. (#3956) Yu Feng + from_array: add @martindurant's explaining of how hashing is done for an array. (#3965) Mark Harfouche + Support gradient with coordinate (#3949) Keisuke Fujii * Core + Fix use of has_keyword with partial in Python 2.7 (#3966) Mark Harfouche + Set pyarrow as default for HDFS (#3957) Matthew Rocklin * Documentation + Use dask_sphinx_theme (#3963) Matthew Rocklin + Use JupyterLab in Binder links from main page Matthew Rocklin + DOC: fixed sphinx syntax (#3960) Tom Augspurger- update to version 0.19.1: * Array + Don't enforce dtype if result has no dtype (:pr:`3928`) Matthew Rocklin + Fix NumPy issubtype deprecation warning (:pr:`3939`) Bruce Merry + Fix arg reduction tokens to be unique with different arguments (:pr:`3955`) Tobias de Jong + Coerce numpy integers to ints in slicing code (:pr:`3944`) Yu Feng + Linalg.norm ndim along axis partial fix (:pr:`3933`) Tobias de Jong * Dataframe + Deterministic DataFrame.set_index (:pr:`3867`) George Sakkis + Fix divisions in read_parquet when dealing with filters #3831 [#3930] (:pr:`3923`) (:pr:`3931`) @andrethrill + Fixing returning type in categorical.as_known (:pr:`3888`) Sriharsha Hatwar + Fix DataFrame.assign for callables (:pr:`3919`) Tom Augspurger + Include partitions with no width in repartition (:pr:`3941`) Matthew Rocklin + Don't constrict stage/k dtype in dataframe shuffle (:pr:`3942`) Matthew Rocklin * Documentation + DOC: Add hint on how to render task graphs horizontally (:pr:`3922`) Uwe Korn + Add try-now button to main landing page (:pr:`3924`) Matthew Rocklin- specfile: * remove devel from noarch - update to version 0.19.0: * Array + Fix argtopk split_every bug (:pr:`3810`) Guido Imperiale + Ensure result computing dask.array.isnull(`) always gives a numpy array (:pr:`3825`) Stephan Hoyer + Support concatenate for scipy.sparse in dask array (:pr:`3836`) Matthew Rocklin + Fix argtopk on 32-bit systems. (:pr:`3823`) Elliott Sales de Andrade + Normalize keys in rechunk (:pr:`3820`) Matthew Rocklin + Allow shape of dask.array to be a numpy array (:pr:`3844`) Mark Harfouche + Fix numpy deprecation warning on tuple indexing (:pr:`3851`) Tobias de Jong + Rename ghost module to overlap (:pr:`3830`) `Robert Sare`_ + Re-add the ghost import to da __init__ (:pr:`3861`) Jim Crist + Ensure copy preserves masked arrays (:pr:`3852`) Tobias de Jong * DataFrame + Added dtype and sparse keywords to :func:`dask.dataframe.get_dummies` (:pr:`3792`) Tom Augspurger + Added :meth:`dask.dataframe.to_dask_array` for converting a Dask Series or DataFrame to a Dask Array, possibly with known chunk sizes (:pr:`3884`) Tom Augspurger + Changed the behavior for :meth:`dask.array.asarray` for dask dataframe and series inputs. Previously, the series was eagerly converted to an in-memory NumPy array before creating a dask array with known chunks sizes. This caused unexpectedly high memory usage. Now, no intermediate NumPy array is created, and a Dask array with unknown chunk sizes is returned (:pr:`3884`) Tom Augspurger + DataFrame.iloc (:pr:`3805`) Tom Augspurger + When reading multiple paths, expand globs. (:pr:`3828`) Irina Truong + Added index column name after resample (:pr:`3833`) Eric Bonfadini + Add (lazy) shape property to dataframe and series (:pr:`3212`) Henrique Ribeiro + Fix failing hdfs test [test-hdfs] (:pr:`3858`) Jim Crist + Fixes for pyarrow 0.10.0 release (:pr:`3860`) Jim Crist + Rename to_csv keys for diagnostics (:pr:`3890`) Matthew Rocklin + Match pandas warnings for concat sort (:pr:`3897`) Tom Augspurger + Include filename in read_csv (:pr:`3908`) Julia Signell * Core + Better error message on import when missing common dependencies (:pr:`3771`) Danilo Horta + Drop Python 3.4 support (:pr:`3840`) Jim Crist + Remove expired deprecation warnings (:pr:`3841`) Jim Crist + Add DASK_ROOT_CONFIG environment variable (:pr:`3849`) `Joe Hamman`_ + Don't cull in local scheduler, do cull in delayed (:pr:`3856`) Jim Crist + Increase conda download retries (:pr:`3857`) Jim Crist + Add python_requires and Trove classifiers (:pr:`3855`) @hugovk + Fix collections.abc deprecation warnings in Python 3.7.0 (:pr:`3876`) Jan Margeta + Allow dot jpeg to xfail in visualize tests (:pr:`3896`) Matthew Rocklin + Add Python 3.7 to travis.yml (:pr:`3894`) Matthew Rocklin + Add expand_environment_variables to dask.config (:pr:`3893`) `Joe Hamman`_ * Docs + Fix typo in import statement of diagnostics (:pr:`3826`) John Mrziglod + Add link to YARN docs (:pr:`3838`) Jim Crist + fix of minor typos in landing page index.html (:pr:`3746`) Christoph Moehl + Update delayed-custom.rst (:pr:`3850`) Anderson Banihirwe + DOC: clarify delayed docstring (:pr:`3709`) Scott Sievert + Add new presentations (:pr:`3880`) @javad94 + Add dask array normalize_chunks to documentation (:pr:`3878`) Daniel Rothenberg + Docs: Fix link to snakeviz (:pr:`3900`) Hans Moritz Günther + Add missing ` to docstring (:pr:`3915`) @rtobar - changes from version 0.18.2: * Array + Reimplemented argtopk to make it release the GIL (:pr:`3610`) Guido Imperiale + Don't overlap on non-overlapped dimensions in map_overlap (:pr:`3653`) Matthew Rocklin + Fix linalg.tsqr for dimensions of uncertain length (:pr:`3662`) Jeremy Chen + Break apart uneven array-of-int slicing to separate chunks (:pr:`3648`) Matthew Rocklin + Align auto chunks to provided chunks, rather than shape (:pr:`3679`) Matthew Rocklin + Adds endpoint and retstep support for linspace (:pr:`3675`) James Bourbeau + Implement .blocks accessor (:pr:`3689`) Matthew Rocklin + Add block_info keyword to map_blocks functions (:pr:`3686`) Matthew Rocklin + Slice by dask array of ints (:pr:`3407`) Guido Imperiale + Support dtype in arange (:pr:`3722`) Guido Imperiale + Fix argtopk with uneven chunks (:pr:`3720`) Guido Imperiale + Raise error when replace=False in da.choice (:pr:`3765`) James Bourbeau + Update chunks in Array.__setitem__ (:pr:`3767`) Itamar Turner-Trauring + Add a chunksize convenience property (:pr:`3777`) Jacob Tomlinson + Fix and simplify array slicing behavior when step < 0 (:pr:`3702`) Ziyao Wei + Ensure to_zarr with return_stored True returns a Dask Array (:pr:`3786`) John A Kirkham * Bag + Add last_endline optional parameter in to_textfiles (:pr:`3745`) George Sakkis * Dataframe + Add aggregate function for rolling objects (:pr:`3772`) Gerome Pistre + Properly tokenize cumulative groupby aggregations (:pr:`3799`) Cloves Almeida * Delayed + Add the @ operator to the delayed objects (:pr:`3691`) Mark Harfouche + Add delayed best practices to documentation (:pr:`3737`) Matthew Rocklin + Fix @delayed decorator for methods and add tests (:pr:`3757`) Ziyao Wei * Core + Fix extra progressbar (:pr:`3669`) Mike Neish + Allow tasks back onto ordering stack if they have one dependency (:pr:`3652`) Matthew Rocklin + Prefer end-tasks with low numbers of dependencies when ordering (:pr:`3588`) Tom Augspurger + Add assert_eq to top-level modules (:pr:`3726`) Matthew Rocklin + Test that dask collections can hold scipy.sparse arrays (:pr:`3738`) Matthew Rocklin + Fix setup of lz4 decompression functions (:pr:`3782`) Elliott Sales de Andrade + Add datasets module (:pr:`3780`) Matthew Rocklin- update to version 0.18.1: * Array + from_array now supports scalar types and nested lists/tuples in input, just like all numpy functions do. It also produces a simpler graph when the input is a plain ndarray (:pr:`3556`) Guido Imperiale + Fix slicing of big arrays due to cumsum dtype bug (:pr:`3620`) Marco Rossi + Add Dask Array implementation of pad (:pr:`3578`) John A Kirkham + Fix array random API examples (:pr:`3625`) James Bourbeau + Add average function to dask array (:pr:`3640`) James Bourbeau + Tokenize ghost_internal with axes (:pr:`3643`) Matthew Rocklin + from_array: special handling for ndarray, list, and scalar types (:pr:`3568`) Guido Imperiale + Add outer for Dask Arrays (:pr:`3658`) John A Kirkham * DataFrame + Add Index.to_series method (:pr:`3613`) Henrique Ribeiro + Fix missing partition columns in pyarrow-parquet (:pr:`3636`) Martin Durant * Core + Minor tweaks to CI (:pr:`3629`) Guido Imperiale + Add back dask.utils.effective_get (:pr:`3642`) Matthew Rocklin + DASK_CONFIG dictates config write location (:pr:`3621`) Jim Crist + Replace 'collections' key in unpack_collections with unique key (:pr:`3632`) Yu Feng + Avoid deepcopy in dask.config.set (:pr:`3649`) Matthew Rocklin - changes from version 0.18.0: * Array + Add to/read_zarr for Zarr-format datasets and arrays (:pr:`3460`) Martin Durant + Experimental addition of generalized ufunc support, apply_gufunc, gufunc, and as_gufunc (:pr:`3109`) (:pr:`3526`) (:pr:`3539`) Markus Gonser + Avoid unnecessary rechunking tasks (:pr:`3529`) Matthew Rocklin + Compute dtypes at runtime for fft (:pr:`3511`) Matthew Rocklin + Generate UUIDs for all da.store operations (:pr:`3540`) Martin Durant + Correct internal dimension of Dask's SVD (:pr:`3517`) John A Kirkham + BUG: do not raise IndexError for identity slice in array.vindex (:pr:`3559`) Scott Sievert + Adds isneginf and isposinf (:pr:`3581`) John A Kirkham + Drop Dask Array's learn module (:pr:`3580`) John A Kirkham + added sfqr (short-and-fat) as a counterpart to tsqr… (:pr:`3575`) Jeremy Chen + Allow 0-width chunks in dask.array.rechunk (:pr:`3591`) Marc Pfister + Document Dask Array's nan_to_num in public API (:pr:`3599`) John A Kirkham + Show block example (:pr:`3601`) John A Kirkham + Replace token= keyword with name= in map_blocks (:pr:`3597`) Matthew Rocklin + Disable locking in to_zarr (needed for using to_zarr in a distributed context) (:pr:`3607`) John A Kirkham + Support Zarr Arrays in to_zarr/from_zarr (:pr:`3561`) John A Kirkham + Added recursion to array/linalg/tsqr to better manage the single core bottleneck (:pr:`3586`) `Jeremy Chan`_ * Dataframe + Add to/read_json (:pr:`3494`) Martin Durant + Adds index to unsupported arguments for DataFrame.rename method (:pr:`3522`) James Bourbeau + Adds support to subset Dask DataFrame columns using numpy.ndarray, pandas.Series, and pandas.Index objects (:pr:`3536`) James Bourbeau + Raise error if meta columns do not match dataframe (:pr:`3485`) Christopher Ren + Add index to unsupprted argument for DataFrame.rename (:pr:`3522`) James Bourbeau + Adds support for subsetting DataFrames with pandas Index/Series and numpy ndarrays (:pr:`3536`) James Bourbeau + Dataframe sample method docstring fix (:pr:`3566`) James Bourbeau + fixes dd.read_json to infer file compression (:pr:`3594`) Matt Lee + Adds n to sample method (:pr:`3606`) James Bourbeau + Add fastparquet ParquetFile object support (:pr:`3573`) @andrethrill * Bag + Rename method= keyword to shuffle= in bag.groupby (:pr:`3470`) Matthew Rocklin * Core + Replace get= keyword with scheduler= keyword (:pr:`3448`) Matthew Rocklin + Add centralized dask.config module to handle configuration for all Dask subprojects (:pr:`3432`) (:pr:`3513`) (:pr:`3520`) Matthew Rocklin + Add dask-ssh CLI Options and Description. (:pr:`3476`) @beomi + Read whole files fix regardless of header for HTTP (:pr:`3496`) Martin Durant + Adds synchronous scheduler syntax to debugging docs (:pr:`3509`) James Bourbeau + Replace dask.set_options with dask.config.set (:pr:`3502`) Matthew Rocklin + Update sphinx readthedocs-theme (:pr:`3516`) Matthew Rocklin + Introduce "auto" value for normalize_chunks (:pr:`3507`) Matthew Rocklin + Fix check in configuration with env=None (:pr:`3562`) Simon Perkins + Update sizeof definitions (:pr:`3582`) Matthew Rocklin + Remove --verbose flag from travis-ci (:pr:`3477`) Matthew Rocklin + Remove "da.random" from random array keys (:pr:`3604`) Matthew Rocklin- update to version 0.17.5: * Compatibility with pandas 0.23.0 (:pr:`3499`) Tom Augspurger- update to version 0.17.4: * Dataframe + Add support for indexing Dask DataFrames with string subclasses (:pr:`3461`) James Bourbeau + Allow using both sorted_index and chunksize in read_hdf (:pr:`3463`) Pierre Bartet + Pass filesystem to arrow piece reader (:pr:`3466`) Martin Durant + Switches to using dask.compat string_types (#3462) James Bourbeau - changes from version 0.17.3: * Array + Add einsum for Dask Arrays (:pr:`3412`) Simon Perkins + Add piecewise for Dask Arrays (:pr:`3350`) John A Kirkham + Fix handling of nan in broadcast_shapes (:pr:`3356`) John A Kirkham + Add isin for dask arrays (:pr:`3363`). Stephan Hoyer + Overhauled topk for Dask Arrays: faster algorithm, particularly for large k's; added support for multiple axes, recursive aggregation, and an option to pick the bottom k elements instead. (:pr:`3395`) Guido Imperiale + The topk API has changed from topk(k, array) to the more conventional topk(array, k). The legacy API still works but is now deprecated. (:pr:`2965`) Guido Imperiale + New function argtopk for Dask Arrays (:pr:`3396`) Guido Imperiale + Fix handling partial depth and boundary in map_overlap (:pr:`3445`) John A Kirkham + Add gradient for Dask Arrays (:pr:`3434`) John A Kirkham * DataFrame + Allow t as shorthand for table in to_hdf for pandas compatibility (:pr:`3330`) Jörg Dietrich + Added top level isna method for Dask DataFrames (:pr:`3294`) Christopher Ren + Fix selection on partition column on read_parquet for engine="pyarrow" (:pr:`3207`) Uwe Korn + Added DataFrame.squeeze method (:pr:`3366`) Christopher Ren + Added infer_divisions option to read_parquet to specify whether read engines should compute divisions (:pr:`3387`) Jon Mease + Added support for inferring division for engine="pyarrow" (:pr:`3387`) Jon Mease + Provide more informative error message for meta= errors (:pr:`3343`) Matthew Rocklin + add orc reader (:pr:`3284`) Martin Durant + Default compression for parquet now always Snappy, in line with pandas (:pr:`3373`) Martin Durant + Fixed bug in Dask DataFrame and Series comparisons with NumPy scalars (:pr:`3436`) James Bourbeau + Remove outdated requirement from repartition docstring (:pr:`3440`) Jörg Dietrich + Fixed bug in aggregation when only a Series is selected (:pr:`3446`) Jörg Dietrich + Add default values to make_timeseries (:pr:`3421`) Matthew Rocklin * Core + Support traversing collections in persist, visualize, and optimize (:pr:`3410`) Jim Crist + Add schedule= keyword to compute and persist. This replaces common use of the get= keyword (:pr:`3448`) Matthew Rocklin- update to version 0.17.2: * Array + Add broadcast_arrays for Dask Arrays (:pr:`3217`) John A Kirkham + Add bitwise_* ufuncs (:pr:`3219`) John A Kirkham + Add optional axis argument to squeeze (:pr:`3261`) John A Kirkham + Validate inputs to atop (:pr:`3307`) Matthew Rocklin + Avoid calls to astype in concatenate if all parts have the same dtype (:pr:`3301`) `Martin Durant`_ * DataFrame + Fixed bug in shuffle due to aggressive truncation (:pr:`3201`) Matthew Rocklin + Support specifying categorical columns on read_parquet with categories=[…] for engine="pyarrow" (:pr:`3177`) Uwe Korn + Add dd.tseries.Resampler.agg (:pr:`3202`) Richard Postelnik + Support operations that mix dataframes and arrays (:pr:`3230`) Matthew Rocklin + Support extra Scalar and Delayed args in dd.groupby._Groupby.apply (:pr:`3256`) Gabriele Lanaro * Bag + Support joining against single-partitioned bags and delayed objects (:pr:`3254`) Matthew Rocklin * Core + Fixed bug when using unexpected but hashable types for keys (:pr:`3238`) Daniel Collins + Fix bug in task ordering so that we break ties consistently with the key name (:pr:`3271`) Matthew Rocklin + Avoid sorting tasks in order when the number of tasks is very large (:pr:`3298`) Matthew Rocklin- correctly package bytecode - use %license macro- update to version 0.17.1: * Array + Corrected dimension chunking in indices (:issue:`3166`, :pr:`3167`) Simon Perkins + Inline store_chunk calls for store's return_stored option (:pr:`3153`) John A Kirkham + Compatibility with struct dtypes for NumPy 1.14.1 release (:pr:`3187`) Matthew Rocklin * DataFrame + Bugfix to allow column assignment of pandas datetimes(:pr:`3164`) Max Epstein * Core + New file-system for HTTP(S), allowing direct loading from specific URLs (:pr:`3160`) `Martin Durant`_ + Fix bug when tokenizing partials with no keywords (:pr:`3191`) Matthew Rocklin + Use more recent LZ4 API (:pr:`3157`) `Thrasibule`_ + Introduce output stream parameter for progress bar (:pr:`3185`) `Dieter Weber`_- update to version 0.17.0: * Array + Added a support object-type arrays for nansum, nanmin, and nanmax (:issue:`3133`) Keisuke Fujii + Update error handling when len is called with empty chunks (:issue:`3058`) Xander Johnson + Fixes a metadata bug with store's return_stored option (:pr:`3064`) John A Kirkham + Fix a bug in optimization.fuse_slice to properly handle when first input is None (:pr:`3076`) James Bourbeau + Support arrays with unknown chunk sizes in percentile (:pr:`3107`) Matthew Rocklin + Tokenize scipy.sparse arrays and np.matrix (:pr:`3060`) Roman Yurchak * DataFrame + Support month timedeltas in repartition(freq=...) (:pr:`3110`) Matthew Rocklin + Avoid mutation in dataframe groupby tests (:pr:`3118`) Matthew Rocklin + read_csv, read_table, and read_parquet accept iterables of paths (:pr:`3124`) Jim Crist + Deprecates the dd.to_delayed function in favor of the existing method (:pr:`3126`) Jim Crist + Return dask.arrays from df.map_partitions calls when the UDF returns a numpy array (:pr:`3147`) Matthew Rocklin + Change handling of columns and index in dd.read_parquet to be more consistent, especially in handling of multi-indices (:pr:`3149`) Jim Crist + fastparquet append=True allowed to create new dataset (:pr:`3097`) `Martin Durant`_ + dtype rationalization for sql queries (:pr:`3100`) `Martin Durant`_ * Bag + Document bag.map_paritions function may recieve either a list or generator. (:pr:`3150`) Nir * Core + Change default task ordering to prefer nodes with few dependents and then many downstream dependencies (:pr:`3056`) Matthew Rocklin + Add color= option to visualize to color by task order (:pr:`3057`) (:pr:`3122`) Matthew Rocklin + Deprecate dask.bytes.open_text_files (:pr:`3077`) Jim Crist + Remove short-circuit hdfs reads handling due to maintenance costs. May be re-added in a more robust manner later (:pr:`3079`) Jim Crist + Add dask.base.optimize for optimizing multiple collections without computing. (:pr:`3071`) Jim Crist + Rename dask.optimize module to dask.optimization (:pr:`3071`) Jim Crist + Change task ordering to do a full traversal (:pr:`3066`) Matthew Rocklin + Adds an optimize_graph keyword to all to_delayed methods to allow controlling whether optimizations occur on conversion. (:pr:`3126`) Jim Crist + Support using pyarrow for hdfs integration (:pr:`3123`) Jim Crist + Move HDFS integration and tests into dask repo (:pr:`3083`) Jim Crist + Remove write_bytes (:pr:`3116`) Jim Crist- specfile: * update copyright year - update to version 0.16.1: * Array + Fix handling of scalar percentile values in "percentile" (:pr:`3021`) `James Bourbeau`_ + Prevent "bool()" coercion from calling compute (:pr:`2958`) `Albert DeFusco`_ + Add "matmul" (:pr:`2904`) `John A Kirkham`_ + Support N-D arrays with "matmul" (:pr:`2909`) `John A Kirkham`_ + Add "vdot" (:pr:`2910`) `John A Kirkham`_ + Explicit "chunks" argument for "broadcast_to" (:pr:`2943`) `Stephan Hoyer`_ + Add "meshgrid" (:pr:`2938`) `John A Kirkham`_ and (:pr:`3001`) `Markus Gonser`_ + Preserve singleton chunks in "fftshift"/"ifftshift" (:pr:`2733`) `John A Kirkham`_ + Fix handling of negative indexes in "vindex" and raise errors for out of bounds indexes (:pr:`2967`) `Stephan Hoyer`_ + Add "flip", "flipud", "fliplr" (:pr:`2954`) `John A Kirkham`_ + Add "float_power" ufunc (:pr:`2962`) (:pr:`2969`) `John A Kirkham`_ + Compatability for changes to structured arrays in the upcoming NumPy 1.14 release (:pr:`2964`) `Tom Augspurger`_ + Add "block" (:pr:`2650`) `John A Kirkham`_ + Add "frompyfunc" (:pr:`3030`) `Jim Crist`_ * DataFrame + Fixed naming bug in cumulative aggregations (:issue:`3037`) `Martijn Arts`_ + Fixed "dd.read_csv" when "names" is given but "header" is not set to "None" (:issue:`2976`) `Martijn Arts`_ + Fixed "dd.read_csv" so that passing instances of "CategoricalDtype" in "dtype" will result in known categoricals (:pr:`2997`) `Tom Augspurger`_ + Prevent "bool()" coercion from calling compute (:pr:`2958`) `Albert DeFusco`_ + "DataFrame.read_sql()" (:pr:`2928`) to an empty database tables returns an empty dask dataframe `Apostolos Vlachopoulos`_ + Compatability for reading Parquet files written by PyArrow 0.8.0 (:pr:`2973`) `Tom Augspurger`_ + Correctly handle the column name (`df.columns.name`) when reading in "dd.read_parquet" (:pr:2973`) `Tom Augspurger`_ + Fixed "dd.concat" losing the index dtype when the data contained a categorical (:issue:`2932`) `Tom Augspurger`_ + Add "dd.Series.rename" (:pr:`3027`) `Jim Crist`_ + "DataFrame.merge()" (:pr:`2960`) now supports merging on a combination of columns and the index `Jon Mease`_ + Removed the deprecated "dd.rolling*" methods, in preperation for their removal in the next pandas release (:pr:`2995`) `Tom Augspurger`_ + Fix metadata inference bug in which single-partition series were mistakenly special cased (:pr:`3035`) `Jim Crist`_ + Add support for "Series.str.cat" (:pr:`3028`) `Jim Crist`_ * Core + Improve 32-bit compatibility (:pr:`2937`) `Matthew Rocklin`_ + Change task prioritization to avoid upwards branching (:pr:`3017`) `Matthew Rocklin`_- update to version 0.16.0: * Fix install of fastparquet on travis (#2897) * Fix port for bokeh dashboard (#2889) * fix hdfs3 version * Modify hdfs import to point to hdfs3 (#2894) * Explicitly pass in pyarrow filesystem for parquet (#2881) * COMPAT: Ensure lists for multiple groupby keys (#2892) * Avoid list index error in repartition_freq (#2873) * Finish moving `infer_storage_options` (#2886) * Support arrow in `to_parquet`. Several other parquet cleanups. (#2868) * Bugfix: Filesystem object not passed to pyarrow reader (#2527) * Fix py34 build * Fixup s3 tests (#2875) * Close resource profiler process on __exit__ (#2871) * Add changelog for to_parquet changes. [ci skip] * A few parquet cleanups (#2867) * Fixed fillna with Series (#2810) * Error nicely on parse dates failure in read_csv (#2863) * Fix empty dataframe partitioning for numpy 1.10.4 (#2862) * Test `unique`'s inverse mapping's shape (#2857) * Move `thread_state` out of the top namespace (#2858) * Explain unique's steps (#2856) * fix and test for issue #2811 (#2818) * Minor tweaks to `_unique_internal` optional result handling (#2855) * Update dask interface during XArray integration (#2847) * Remove unnecessary map_partitions in aggregate (#2712) * Simplify `_unique_internal` (#2850) * Add more tests for read_parquet(engine='pyarrow') (#2822) * Do not raise exception when calling set_index on empty dataframe [#2819] (#2827) * Test unique on more data (#2846) * Do not except on set_index on text column with empty partitions [#2820] (#2831) * Compat for bokeh 0.12.10 (#2844) * Support `return_*` arguments with `unique` (#2779) * Fix installing of pandas dev (#2838) * Squash a few warnings in dask.array (#2833) * Array optimizations don't elide some getter calls (#2826) * test against pandas rc (#2814) * df.astype(categorical_dtype) -> known categoricals (#2835) * Fix cloudpickle test (#2836) * BUG: Quantile with missing data (#2791) * API: remove dask.async (#2828) * Adds comma to flake8 section in setup.cfg (#2817) * Adds asarray and asanyarray to the dask.array public API (#2787) * flake8 now checks bare excepts (#2816) * CI: Update for new flake8 / pycodestyle (#2808) * Fix concat series bug (#2800) * Typo in the docstring of read_parquet's filters param (#2806) * Docs update (#2803) * minor doc changes in bag.core (#2797) * da.random.choice works with array args (#2781) * Support broadcasting 0-length dimensions (#2784) * ResourceProfiler plot works with single point (#2778) * Implement Dask Array's unique to be lazy (#2775) * Dask Collection Interface * Reduce test memory usage (#2782) * Deprecate vnorm (#2773) * add auto-import of gcsfs (#2776) * Add allclose (#2771) * Remove `random.different_seeds` from API docs (#2772) * Follow-up for atleast_nd (#2765) * Use get_worker().client.get if available (#2762) * Link PR for "Allow tuples as sharedict keys" (#2766) * Allow tuples as sharedict keys (#2763) * update docs to use flatten vs concat (#2764) * Add atleast_nd functions (#2760) * Consolidate changelog for 0.15.4 (#2759) * Add changelog template for future date (#2758)- update to version 0.15.4: * Drop s3fs requirement (#2750) * Support -1 as an alias for dimension size in chunks (#2749) * Handle zero dimension when rechunking (#2747) * Pandas 0.21 compatability (#2737) * API: Add `.str` accessor for Categorical with object dtype (#2743) * Fix install failures * Reduce memory usage * A few test cleanups * Fix #2720 (#2729) * Pass on file_scheme to fastparquet (#2714) * Support indexing with np.int (#2719) * Tree reduction support for dask.bag.Bag.foldby (#2710) * Update link to IPython parallel docs (#2715) * Call mkdir from correct namespace in array.to_npy_stack. (#2709) * add int96 times to parquet writer (#2711)- update to version 0.15.3: * add .github/PULL_REQUEST_TEMPLATE.md file * Make `y` optional in dask.array.learn (#2701) * Add apply_over_axes (#2702) * Use apply_along_axis name in Dask (#2704) * Tweak apply_along_axis's pre-NumPy 1.13.0 error (#2703) * Add apply_along_axis (#2698) * Use travis conditional builds (#2697) * Skip days in daily_stock that have nan values (#2693) * TST: Have array assert_eq check scalars (#2681) * Add schema keyword to read_sql (#2582) * Only install pytest-runner if needed (#2692) * Remove resize tool from bokeh plots (#2688) * Add ptp (#2691) * Catch warning from numpy in subs (#2457) * Publish Series methods in dataframe api (#2686) * Fix norm keepdims (#2683) * Dask array slicing with boolean arrays (#2658) * repartition works with mixed categoricals (#2676) * Merge pull request #2667 from martindurant/parquet_file_schema * Fix for parquet file schemes * Optional axis argument for cumulative functions (#2664) * Remove partial_by_order * Support literals in atop * [ci skip] Add flake8 note in developer doc page (#2662) * Add filenames return for ddf.to_csv and bag.to_textfiles as they both… (#2655) * CLN: Remove redundant code, fix typos (#2652) * [docs] company name change from Continuum to Anaconda (#2660) * Fix what hapend when combining partition_on and append in to_parquet (#2645) * WIP: Add user defined aggregations (#2344) * [docs] new cheatsheet (#2649) * Masked arrays (#2301) * Indexing with an unsigned integer array (#2647) * ENH: Allow the groupby by param to handle columns and index levels (#2636) * update copyright date (#2642) * python setup.py test runs py.test (#2641) * Avoid using operator.itemgetter in dask.dataframe (#2638) * Add `*_like` array creation functions (#2640) * Consistent slicing names (#2601) * Replace Continuum Analytics with Anaconda Inc. (#2631) * Implement Series.str[index] (#2634) * Support complex data with vnorm (#2621) - changes from version 0.15.2: * BUG: setitem should update divisions (#2622) * Allow dataframe.loc with numpy array (#2615) * Add link to Stack Overflow's mcve docpage to support docs (#2612) * Improve dtype inference and reflection (#2571) * Add ediff1d (#2609) * Optimize concatenate on singleton sequences (#2610) * Add diff (#2607) * Document norm in Dask Array API (#2605) * Add norm (#2597) * Don't check for memory leaks in distributed tests (#2603) * Include computed collection within sharedict in delayed (#2583) * Reorg array (#2595) * Remove `expand` parameter from df.str.split (#2593) * Normalize `meta` on call to `dd.from_delayed` (#2591) * Remove bare `except:` blocks and test that none exist. (#2590) * Adds choose method to dask.array.Array (#2584) * Generalize vindex in dask.array (#2573) * Clear `_cached_keys` on name change in dask.array (#2572) * Don't render None for unknown divisions (#2570) * Add missing initialization to CacheProfiler (#2550) * Add argwhere, *nonzero, where (cond) (#2539) * Fix indices error message (#2565) * Fix and secure some references (#2563) * Allows for read_hdf to accept an iterable of files (#2547) * Allow split on rechunk on first pass (#2560) * Improvements to dask.array.where (#2549) * Adds isin method to dask.dataframe.DataFrame (#2558) * Support dask array conditional in compress (#2555) * Clarify ResourceProfiler docstring [ci skip] (#2553) * In compress, use Dask to expand condition array (#2545) * Support compress with axis as None (#2541) * df.idxmax/df.idxmin work with empty partitions (#2542) * FIX typo in accumulate docstring (#2552) * da.where works with non-bool condition (#2543) * da.repeat works with negative axis (#2544) * Check metadata in `dd.from_delayed` (#2534) * TST: clean up test directories in shuffle (#2535) * Do no attemp to compute divisions on empty dataframe. (#2529) * Remove deprecated bag behavior (#2525) * Updates read_hdf docstring (#2518) * Add dd.to_timedelta (#2523) * Better error message for read_csv (#2522) * Remove spurious keys from map_overlap graph (#2520) * Do not compare x.dim with None in array. (#1847) * Support concat for categorical MultiIndex (#2514) * Support for callables in df.assign (#2513)- Implement single-spec version - Update source URL. - Split classes into own subpackages to lighten base dependencies. - Update to version 0.15.1 * Add storage_options to to_textfiles and to_csv (:pr:`2466`) * Rechunk and simplify rfftfreq (:pr:`2473`), (:pr:`2475`) * Better support ndarray subclasses (:pr:`2486`) * Import star in dask.distributed (:pr:`2503`) * Threadsafe cache handling with tokenization (:pr:`2511`) - Update to version 0.15.0 + Array * Add dask.array.stats submodule (:pr:`2269`) * Support ``ufunc.outer`` (:pr:`2345`) * Optimize fancy indexing by reducing graph overhead (:pr:`2333`) (:pr:`2394`) * Faster array tokenization using alternative hashes (:pr:`2377`) * Added the matmul ``@`` operator (:pr:`2349`) * Improved coverage of the ``numpy.fft`` module (:pr:`2320`) (:pr:`2322`) (:pr:`2327`) (:pr:`2323`) * Support NumPy's ``__array_ufunc__`` protocol (:pr:`2438`) + Bag * Fix bug where reductions on bags with no partitions would fail (:pr:`2324`) * Add broadcasting and variadic ``db.map`` top-level function. Also remove auto-expansion of tuples as map arguments (:pr:`2339`) * Rename ``Bag.concat`` to ``Bag.flatten`` (:pr:`2402`) + DataFrame * Parquet improvements (:pr:`2277`) (:pr:`2422`) + Core * Move dask.async module to dask.local (:pr:`2318`) * Support callbacks with nested scheduler calls (:pr:`2397`) * Support pathlib.Path objects as uris (:pr:`2310`) - Update to version 0.14.3 + DataFrame * Pandas 0.20.0 support - Update to version 0.14.2 + Array * Add da.indices (:pr:`2268`), da.tile (:pr:`2153`), da.roll (:pr:`2135`) * Simultaneously support drop_axis and new_axis in da.map_blocks (:pr:`2264`) * Rechunk and concatenate work with unknown chunksizes (:pr:`2235`) and (:pr:`2251`) * Support non-numpy container arrays, notably sparse arrays (:pr:`2234`) * Tensordot contracts over multiple axes (:pr:`2186`) * Allow delayed targets in da.store (:pr:`2181`) * Support interactions against lists and tuples (:pr:`2148`) * Constructor plugins for debugging (:pr:`2142`) * Multi-dimensional FFTs (single chunk) (:pr:`2116`) + Bag * to_dataframe enforces consistent types (:pr:`2199`) + DataFrame * Set_index always fully sorts the index (:pr:`2290`) * Support compatibility with pandas 0.20.0 (:pr:`2249`), (:pr:`2248`), and (:pr:`2246`) * Support Arrow Parquet reader (:pr:`2223`) * Time-based rolling windows (:pr:`2198`) * Repartition can now create more partitions, not just less (:pr:`2168`) + Core * Always use absolute paths when on POSIX file system (:pr:`2263`) * Support user provided graph optimizations (:pr:`2219`) * Refactor path handling (:pr:`2207`) * Improve fusion performance (:pr:`2129`), (:pr:`2131`), and (:pr:`2112`) - Update to version 0.14.1 + Array * Micro-optimize optimizations (:pr:`2058`) * Change slicing optimizations to avoid fusing raw numpy arrays (:pr:`2075`) (:pr:`2080`) * Dask.array operations now work on numpy arrays (:pr:`2079`) * Reshape now works in a much broader set of cases (:pr:`2089`) * Support deepcopy python protocol (:pr:`2090`) * Allow user-provided FFT implementations in ``da.fft`` (:pr:`2093`) + Bag + DataFrame * Fix to_parquet with empty partitions (:pr:`2020`) * Optional ``npartitions='auto'`` mode in ``set_index`` (:pr:`2025`) * Optimize shuffle performance (:pr:`2032`) * Support efficient repartitioning along time windows like ``repartition(freq='12h')`` (:pr:`2059`) * Improve speed of categorize (:pr:`2010`) * Support single-row dataframe arithmetic (:pr:`2085`) * Automatically avoid shuffle when setting index with a sorted column (:pr:`2091`) * Improve handling of integer-na handling in read_csv (:pr:`2098`) + Delayed * Repeated attribute access on delayed objects uses the same key (:pr:`2084`) + Core * Improve naming of nodes in dot visuals to avoid generic ``apply`` (:pr:`2070`) * Ensure that worker processes have different random seeds (:pr:`2094`) - Update to version 0.14.0 + Array * Fix corner cases with zero shape and misaligned values in ``arange`` * Improve concatenation efficiency (:pr:`1923`) * Avoid hashing in ``from_array`` if name is provided (:pr:`1972`) + Bag * Repartition can now increase number of partitions (:pr:`1934`) * Fix bugs in some reductions with empty partitions (:pr:`1939`), (:pr:`1950`), (:pr:`1953`) + DataFrame * Support non-uniform categoricals (:pr:`1877`), (:pr:`1930`) * Groupby cumulative reductions (:pr:`1909`) * DataFrame.loc indexing now supports lists (:pr:`1913`) * Improve multi-level groupbys (:pr:`1914`) * Improved HTML and string repr for DataFrames (:pr:`1637`) * Parquet append (:pr:`1940`) * Add ``dd.demo.daily_stock`` function for teaching (:pr:`1992`) + Delayed * Add ``traverse=`` keyword to delayed to optionally avoid traversing nested data structures (:pr:`1899`) * Support Futures in from_delayed functions (:pr:`1961`) * Improve serialization of decorated delayed functions (:pr:`1969`) + Core * Improve windows path parsing in corner cases (:pr:`1910`) * Rename tasks when fusing (:pr:`1919`) * Add top level ``persist`` function (:pr:`1927`) * Propagate ``errors=`` keyword in byte handling (:pr:`1954`) * Dask.compute traverses Python collections (:pr:`1975`) * Structural sharing between graphs in dask.array and dask.delayed (:pr:`1985`) - Update to version 0.13.0 + Array * Mandatory dtypes on dask.array. All operations maintain dtype information and UDF functions like map_blocks now require a dtype= keyword if it can not be inferred. (:pr:`1755`) * Support arrays without known shapes, such as arises when slicing arrays with arrays or converting dataframes to arrays (:pr:`1838`) * Support mutation by setting one array with another (:pr:`1840`) * Tree reductions for covariance and correlations. (:pr:`1758`) * Add SerializableLock for better use with distributed scheduling (:pr:`1766`) * Improved atop support (:pr:`1800`) * Rechunk optimization (:pr:`1737`), (:pr:`1827`) + Bag * Avoid wrong results when recomputing the same groupby twice (:pr:`1867`) + DataFrame * Add ``map_overlap`` for custom rolling operations (:pr:`1769`) * Add ``shift`` (:pr:`1773`) * Add Parquet support (:pr:`1782`) (:pr:`1792`) (:pr:`1810`), (:pr:`1843`), (:pr:`1859`), (:pr:`1863`) * Add missing methods combine, abs, autocorr, sem, nsmallest, first, last, prod, (:pr:`1787`) * Approximate nunique (:pr:`1807`), (:pr:`1824`) * Reductions with multiple output partitions (for operations like drop_duplicates) (:pr:`1808`), (:pr:`1823`) (:pr:`1828`) * Add delitem and copy to DataFrames, increasing mutation support (:pr:`1858`) + Delayed * Changed behaviour for ``delayed(nout=0)`` and ``delayed(nout=1)``: ``delayed(nout=1)`` does not default to ``out=None`` anymore, and ``delayed(nout=0)`` is also enabled. I.e. functions with return tuples of length 1 or 0 can be handled correctly. This is especially handy, if functions with a variable amount of outputs are wrapped by ``delayed``. E.g. a trivial example: ``delayed(lambda *args: args, nout=len(vals))(*vals)`` + Core * Refactor core byte ingest (:pr:`1768`), (:pr:`1774`) * Improve import time (:pr:`1833`) - update to version 0.12.0: * update changelog (#1757) * Avoids spurious warning message in concatenate (#1752) * CLN: cleanup dd.multi (#1728) * ENH: da.ufuncs now supports DataFrame/Series (#1669) * Faster array slicing (#1731) * Avoid calling list on partitions (#1747) * Fix slicing error with None and ints (#1743) * Add da.repeat (#1702) * ENH: add dd.DataFrame.resample (#1741) * Unify column names in dd.read_csv (#1740) * replace empty with random in test to avoid nans * Update diagnostics plots (#1736) * Allow atop to change chunk shape (#1716) * ENH: DataFrame.loc now supports 2d indexing (#1726) * Correct shape when indexing with Ellipsis and None * ENH: Add DataFrame.pivot_table (#1729) * CLN: cleanup DataFrame class handling (#1727) * ENH: Add DataFrame.combine_first (#1725) * ENH: Add DataFrame all/any (#1724) * micro-optimize _deps (#1722) * A few small tweaks to da.Array.astype (#1721) * BUG: Fixed metadata lookup failure in Accessor (#1706) * Support auto-rechunking in stack and concatenate (#1717) * Forward `get` kwarg in df.to_csv (#1715) * Add rename support for multi-level columns (#1712) * Update paid support section * Add `drop` to reset_index (#1711) * Cull dask.arrays on slicing (#1709) * Update dd.read_* functions in docs * WIP: Feature/dataframe aggregate (implements #1619) (#1678) * Add da.round (#1708) * Executor -> Client * Add support of getitem for multilevel columns (#1697) * Prepend optimization keywords with name of optimization (#1690) * Add dd.read_table (#1682) * Fix dd.pivot_table dtype to be deterministic (#1693) * da.random with state is consistent across sizes (#1687) * Remove `raises`, use pytest.raises instead (#1679) * Remove unnecessary calls to list (#1681) * Dataframe tree reductions (#1663) * Add global optimizations to compute (#1675) * TST: rename dataframe eq to assert_eq (#1674) * ENH: Add DataFrame/Series.align (#1668) * CLN: dataframe.io (#1664) * ENH: Add DataFrame/Series clip_xxx (#1667) * Clear divisions on single_partitions_merge (#1666) * ENH: add dd.pivot_table (#1665) * Typo in `use-cases`? (#1670) * add distributed follow link doc page * Dataframe elemwise (#1660) * Windows file and endline test handling (#1661) * remove old badges * Fix #1656: failures when parallel testing (#1657) * Remove use of multiprocessing.Manager (#1652) (#1653) * A few fixes for `map_blocks` (#1654) * Automatically expand chunking in atop (#1644) * Add AppVeyor configuration (#1648) * TST: move flake8 to travis script (#1655) * CLN: Remove unused funcs (#1638) * Implementing .size and groupby size method (#1627) (#1649) * Use strides, shape, and offset in memmap tokenize (#1646) * Validate scalar metadata is scalar (#1642) * Convert readthedocs links for their .org -> .io migration for hosted projects (#1639) * CLN: little cleanup of dd.categorical (#1635) * Signature of Array.transpose matches numpy (#1632) * Error nicely when indexing Array with Array (#1629) * ENH: add DataFrame.get_xtype_counts (#1634) * PEP8: some fixes (#1633) - changes from version 0.11.1: * support uniform index partitions in set_index(sorted) (#1626) * Groupby works with multiprocessing (#1625) * Use a nonempty index in _maybe_partial_time_string * Fix segfault in groupby-var * Support Pandas 0.19.0 * Deprecations (#1624) * work-around for ddf.info() failing because of https://github.com/pydata/pandas/issues/14368 (#1623) * .str accessor needs to pass thru both args & kwargs (#1621) * Ensure dtype is provided in additional tests (#1620) * coerce rounded numbers to int in dask.array.ghost (#1618) * Use assert_eq everywhere in dask.array tests (#1617) * Update documentation (#1606) * Support new_axes= keyword in atop (#1612) * pass through node_attr and edge_attr in dot_graph (#1614) * Add swapaxes to dask array (#1611) * add clip to Array (#1610) * Add atop(concatenate=False) keyword argument (#1609) * Better error message on metadata inference failure (#1598) * ENH/API: Enhanced Categorical Accessor (#1574) * PEP8: dataframe fix except E127,E402,E501,E731 (#1601) * ENH: dd.get_dummies for categorical Series (#1602) * PEP8: some fixes (#1605) * Fix da.learn tests for scikit-learn release (#1597) * Suppress warnings in psutil (#1589) * avoid more timeseries warnings (#1586) * Support inplace operators in dataframe (#1585) * Squash warnings in resample (#1583) * expand imports for dask.distributed (#1580) * Add indicator keyword to dd.merge (#1575) * Error loudly if `nrows` used in read_csv (#1576) * Add versioneer (#1569) * Strengthen statement about gitter for developers in docs * Raise IndexError on out of bounds slice. (#1579) * ENH: Support Series in read_hdf (#1577) * COMPAT/API: DataFrame.categorize missing values (#1578) * Add `pipe` method to dask.dataframe (#1567) * Sample from `read_bytes` ends on a delimiter (#1571) * Remove mention of bag join in docs (#1568) * Tokenize mmap works without filename (#1570) * String accessor works with indexes (#1561) * corrected links to documentation from Examples (#1557) * Use conda-forge channel in travis (#1559) * add s3fs to travis.yml (#1558) * ENH: DataFrame.select_dtypes (#1556) * Improve slicing performance (#1539) * Check meta in `__init__` of _Frame * Fix metadata in Series.getitem * A few changes to `dask.delayed` (#1542) * Fixed read_hdf example (#1544) * add section on distributed computing with link to toc * Fix spelling (#1535) * Only fuse simple indexing with getarray backends (#1529) * Deemphasize graphs in docs (#1531) * Avoid pickle when tokenizing __main__ functions (#1527) * Add changelog doc going up to dask 0.6.1 (2015-07-23). (#1526) * update dataframe docs * update index * Update to highlight the use of glob based file naming option for df exports (#1525) * Add custom docstring to dd.to_csv, mentioning that one file per partition is written (#1524) * Run slow tests in Travis for all Python versions, even if coverage check is disabled. (#1523) * Unify example doc pages into one (#1520) * Remove lambda/inner functions in dask.dataframe (#1516) * Add documentation for dataframe metadata (#1514) * "dd.map_partitions" works with scalar outputs (#1515) * meta_nonempty returns types of correct size (#1513) * add memory use note to tsqr docstring * Fix slow consistent keyname test (#1510) * Chunks check (#1504) * Fix last 'line' in sample; prevents open quotes. (#1495) * Create new threadpool when operating from thread (#1487) * Add finalize- prefix to dask.delayed collections * Move key-split from distributed to dask * State that delayed values should be lists in bag.from_delayed (#1490) * Use lists in db.from_sequence (#1491) * Implement user defined aggregations (#1483) * Field access works with non-scalar fields (#1484) - Update to 0.11.0 * DataFrames now enforce knowing full metadata (columns, dtypes) everywhere. Previously we would operate in an ambiguous state when functions lost dtype information (such as apply). Now all dataframes always know their dtypes and raise errors asking for information if they are unable to infer (which they usually can). Some internal attributes like _pd and _pd_nonempty have been moved. * The internals of the distributed scheduler have been refactored to transition tasks between explicit states. This improves resilience, reasoning about scheduling, plugin operation, and logging. It also makes the scheduler code easier to understand for newcomers. * Breaking Changes + The distributed.s3 and distributed.hdfs namespaces are gone. Use protocols in normal methods like read_text('s3://...' instead. + Dask.array.reshape now errs in some cases where previously it would have create a very large number of tasks - update to version 0.10.2: * raise informative error on merge(on=frame) * Fix crash with -OO Python command line (#1388) * [WIP] Read hdf partitioned (#1407) * Add dask.array.digitize. (#1409) * Adding documentation to create dask DataFrame from HDF5 (#1405) * Unify shuffle algorithms (#1404) * dd.read_hdf: clear errors on exceeding row numbers (#1406) * Rename `get_division` to `get_partition` * Add nice error messages on import failures * Use task-based shuffle in hash_joins (#1383) * Fixed #1381: Reimplemented DataFrame.repartition(npartition=N) so it doesn't require indexing and just coalesce existing partitions without shuffling/balancing (#1396) * Import visualize from dask.diagnostics in docs * Backport `equal_nans` to older version of numpy * Improve checks for dtype and shape in dask.array * Progess bar process should be deamon * LZMA may not be available in python 3 (#1391) * dd.to_hdf: multiple files multiprocessing avoid locks (#1384) * dir works with numeric column names * Dataframe groupby works with numeric column names * Use fsync when appending to partd * Fix pickling issue in dataframe to_bag * Add documentation for dask.dataframe.to_hdf * Fixed a copy-paste typo in DataFrame.map_partitions docstring * Fix 'visualize' import location in diagnostics documentation (#1376) * update cheat sheet (#1371) - update to version 0.10.1: * `inline` no longer removes keys (#1356) * avoid c: in infer_storage_options (#1369) * Protect reductions against empty partitions (#1361) * Add doc examples for dask.array.histogram. (#1363) * Fix typo in pip install requirements path (#1364) * avoid unnecessary dependencies between save tasks in dataframe.to_hdf (#1293) * remove xfail mark for blosc missing const * Add `anon=True` for read from s3 test * `subs` doesn't needlessly compare keys and values * Use pytest.importorskip instead of try/except/return pattern * Fixes for bokeh 0.12.0 * Multiprocess scheduler handles unpickling errors * arra.random with array-like parameters (#1327) * Fixes issue #1337 (#1338) * Remove dask runtime dependence on mock 2.7 backport. * Load known but external protocols automatically (#1325) * Add center argument to Series/DataFrame.rolling (#1280) * Add Bag.random_sample method. (#1332) * Correct docs install command and add missing required packages (#1333) * Mark the 4 slowest tests as slow to get a faster suite by default. (#1334) * Travis: Install mock package in Python 2.7. * Automatic blocksize for read_csv based on available memory and number of cores. * Replace "Matthew Rocklin" with "Dask Development Team" (#1329) * Support column assignment in DataFrame (#1322) * Few travis fixes, pandas version >= 0.18.0 (#1314) * Don't run hdf test if pytables package is not present. (#1323) * Add delayed.compute to api docs. * Support datetimes in DataFrame._build_pd (#1319) * Test setting the index with datetime with timezones, which is a pandas-defined dtype * (#1315) * Add s3fs to requirements (#1316) * Pass dtype information through in Series.astype (#1320) * Add draft of development guidelines (#1305) * Skip tests needing optional package when it's not present. (#1318) * DOC: Document DataFrame.categorize * make dd.to_csv support writing to multiple csv files (#1303) * quantiles for repartitioning (#1261) * DOC: Minimal doc for get_sync (#1312) * Pass through storage_options in db.read_text (#1304) * Fixes #1237: correctly propagate storage_options through read_* APIs and use urlsplit to automatically get remote connection settings (#1269) * TST: Travis build matrix to specify numpy/pandas ver (#1300) * amend doc string to Bag.to_textfiles * Return dask.Delayed when saving files with compute = false (#1286) * Support empty or small dataframes in from_pandas (#1290) * Add validation and tests for order breaking name_function (#1275) * ENH: dataframe now supports partial string selection (#1278) * Fix typo in spark-dask docs * added note and verbose exception about CSV parsing errors (#1287) - update to version 0.10.0: * Add parametrization to merge tests * Add more challenging types to nonempty_sample_df test * Windows fixes * TST: Fix coveralls badge (#1276) * Sort index on shuffle (#1274) * Update specification docs to reflect new spec. * Add groupby docs (#1273) * Update spark docs * Rolling class receives normal arguments (unchecked other than pandas call), stores at * Reduce communication in rolling operations #1242 (#1270) * Fix Shuffle (#1255) * Work on earlier versions of Pandas * Handle additional Pandas types * Use non-empty fake dataframe in merge operations * Add failing test for merge case * Add utility function to create sample dataframe * update release procedure * amend doc string to Bag.to_textfiles (#1258) * Drop Python 2.6 support (#1264) * Clean DataFrame naming conventions (#1263) * Fix some bugs in the rolling implementation. * Fix core.get to use new spec * Make graph definition recursive * Handle empty partitions in dask.bag.to_textfiles * test index.min/max * Add regression test for non-ndarray slicing * Standardize dataframe keynames * bump csv sample size to 256k (#1253) * Switch tests to utils.tmpdir (#1251) * Fix dot_graph filename split bug * Correct documentation to reflect argument existing now. * Allow non-zero axis for .rolling (for application over columns) * Fix scheduler behavior for top-level lists * Various spelling mistakes in docstrings, comments, exception messages, and a filename * Fix typo. (#1247) * Fix tokenize in dask.delayed * Remove unused imports, pep8 fixes * Fix bug in slicing optimization * Add Task Shuffle (#1186) * Add bytes API (#1224) * Add dask_key_name to docs, fix bug in methods * Allow formatting in dask.dataframe.to_hdf path and key parameters * Match pandas' exceptions a bit closer in the rolling API. Also, correct computation f * Add tests to package (#1231) * Document visualize method (#1234) * Skip new rolling API's tests if the pandas we have is too old. * Improve df_or_series.rolling(...) implementation. * Remove `iloc` property on `dask.dataframe` * Support for the new pandas rolling API. * test delayed names are different under kwargs * Add Hussain Sultan to AUTHORS * Add `optimize_graph` keyword to multiprocessing get * Add `optimize_graph` keyword to `compute` * Add dd.info() (#1213) * Cleanup base tests * Add groupby documentation stub * pngmath is deprecated in sphinx 1.4 * A few docfixes * Extract dtype in dd.from_bcolz * Throw NotImplementedError if old toolz.accumulate * Add isnull and notnull for dataframe * Add dask.bag.accumulate * Fix categorical partitioning * create single lock for glob read_hdf * Fix failing from_url doctest * Add missing api to bag docs * Add Skipper Seabold to AUTHORS. * Don't use mutable default argument * Fix typo * Ensure to_task_dasks always returns a task * Fix dir for dataframe objects * Infer metadata in dd.from_delayed * Fix some closure issues in dask.dataframe * Add storage_options keyword to read_csv * Define finalize function for dask.dataframe.Scalar * py26 compatibility * add stacked logos to docs * test from-array names * rename from_array tasks * add atop to array docs * Add motivation and example to delayed docs * splat out delayed values in compute docs * Fix optimize docs * add html page with logos * add dask logo to documentation images * Few pep8 cleanups to dask.dataframe.groupby * Groupby aggregate works with list of columns * Use different names for input and output in from_array * Don't enforce same column names * don't write header for first block in csv * Add var and std to DataFrame groupby (#1159) * Move conda recipe to conda-forge (#1162) * Use function names in map_blocks and elemwise (#1163) * add hyphen to delayed name (#1161) * Avoid shuffles when merging with Pandas objects (#1154) * Add DataFrame.eval * Ensure future imports * Add db.Bag.unzip * Guard against shape attributes that are not sequences * Add dask.array.multinomial - update to version 0.9.0: * No upstream changelog - update to version 0.8.2: * No upstream changelog - update to version 0.8.1: * No upstream changelog - update to version 0.8.0: * No upstream changelog - update to version 0.7.5: * No upstream changelog - update to version 0.7.5: * No upstream changelog - update to version 0.7.0: * No upstream changelog - update to version 0.6.1: * No upstream changelog- Update to 0.6.0 * No upstream changelog- Update to 0.5.0 * No upstream changelog- Initial versionsheep81 1684750271  !1.1.1-bp155.2.16bag__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycavro.cpython-36.opt-1.pycavro.cpython-36.pyccore.cpython-36.opt-1.pyccore.cpython-36.pyctext.cpython-36.opt-1.pyctext.cpython-36.pycutils.cpython-36.opt-1.pycutils.cpython-36.pycavro.pycore.pytests__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pyctest_avro.cpython-36.opt-1.pyctest_avro.cpython-36.pyctest_bag.cpython-36.opt-1.pyctest_bag.cpython-36.pyctest_text.cpython-36.opt-1.pyctest_text.cpython-36.pyctest_avro.pytest_bag.pytest_text.pytext.pyutils.pypython3-dask-bagLICENSE.txt/usr/lib/python3.6/site-packages/dask//usr/lib/python3.6/site-packages/dask/bag//usr/lib/python3.6/site-packages/dask/bag/__pycache__//usr/lib/python3.6/site-packages/dask/bag/tests//usr/lib/python3.6/site-packages/dask/bag/tests/__pycache__//usr/share/licenses//usr/share/licenses/python3-dask-bag/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.opensuse.org/openSUSE:Backports:SLE-15-SP5/standard/afc54c8d485bfce1db691cbf483667f0-python-daskcpioxz5noarch-suse-linuxdirectoryPython script, ASCII text executablepython 3.6 byte-compiledemptyPython script, UTF-8 Unicode text executableUTF-8 Unicode (with BOM) text RRRRRRRRRRRRRRRRRRRRRRRRRRR!NY&/%3python3-partd0.3.7 utf-89e9ced2090ad323e5de329e36de8db97af12f7032de2d2a776562cce7f2084c4?7zXZ !t/w] crt:bLL ؝-UJ5k<#KKTR&5h#c< J{>le @czo-`1oMwcټ9 ݐ 7 $kȽ13LFչPP?cm 5X"D='$#ivUx4GXsd;'WWU>#x]Gbh];>_6qu31,8iHN5"JIykG'5YZžaĔ&;XX>I LT |~f-Q$ZEIe;oN (< vh2Y]Bv=|Z!ˣ>}{]1o@ DŽBJY^m̆HXGL_ Nɯ)٪Ю@})(w.bZ2X{;%LbP '⾪os1/^L2(NYfæ~ ~fZ0h#ʗ9ơ;7AJ@Z5A}" W< C$iθdRG@uTt@K*驃%㱛XA;v=$Z_uNmUKIOX\}k.W8D:#,"$⪖ta c{ 8L#5jB5vV5v׏T6,G5I|B:79UmCWbp_F‰@)4cvuB184;6%ԋ])^7M+7J[1s ?R/9 GKݮ`YUߡ|$'0=.\aʤPd [7Nfxro*{%ڛ+Ɲ3X2aĜ>\s@ ܊@~bU TóGMܡx>lPUsx6s[ hh*!P"ti!0ke\0A 7tE"?q?˜ir2#Jj ZUqUNI EΦ޴iZK[4LdC`퍁47kc+bhA'Q9@qWqm ʙ}7 I=>-a.Ѓ49VJ l]Af tnv$c^Oҳߟ~ڏT63؀@%T/P%i*qs:_ly&3@^z2F2:s3K\zߦz4!(裹kjiIۼ7~fܓs[E(Q-"ЌYqS]Ԡм|&3iEsa5}t0jtڠhSnC`tͿ{~5LdSH! R_Пg8u+鶮A q WHL@E͡CG2wl|$,J`_V>$ w?\Z؊ZM"pۧwℳ1{tLJ,Y>4b݈Yiw9)NfD^)(*rvkqU1_9NT! 8#@:mOF:ۥ. vZvHa˳xm<}fwG9}l$=/'s/.&H 6/adwݎ|'R4& ;8t¥fӋŸɉ6Փ;yܘ0hc Q2Pޕ"rF窱rWzRwt 9)-j+nbIHJlҖ;^7KB9a\DԄ>iO*%_QE fa $8->o$Dj +2EY#- 9ռs{z&qn,LL8&P(9h)|mL]A|%_PNojpLJşG+CNt5e8 ᅫf0KtQ I 溔Zd^PxZ@H9OΤK.,n:Ws&v?:_)d85{?EI̱D :Aq2l`^S#3oWªvh> E.ylMh{ݦF: Ν"pr0y;p4zyzlJ ?KNxںr3odV Vdvފ]< %%7;""f*=Nx)\ I?S[$fɥV8gqL$YPvdݖ#(e|C1ق:b8̀@cFsq$62ip?ESZtɝ>Lg..k%x8<l}P  NFVdAƬ7Saab娹~[Ѷ3HM C@!얊B4) \Ļ<0ȏ3ˎut !_jr?jjD_q.vgY/_$vDX 2Yen%?Ix z 0 sȧ4ydؠz'(<-{DPHVSpUO:UMNÝ+mVeq&Z7TG@'(Z9ڛ*f;,-ydV>6 o$E$#wT51C+ڨ^(ฉ39! Liy1k4ϭ GY"ihv~ vGf V~&23dX7}܏OgEFò2]j G=ՎNU5y'A4oX 4Un&K%VGQ-Jw/cWn38g`ע, )7D6&},-a?D[ ]55/r;wYM.b%dx~9-ļ'X~;gJȅEJX9tp>KD`NH WQ ωlLǾ<ͱ|in*2 0ٮd_ĎP9TLz-,JӸ2Apۃ:ku,DǺg e3Y:~iv=I7>hӧ#}0f_9^b2hqR¿T!R-jGeـ7"_D/``WelqeԌ&cSۚy &QNS r "͔9rQPw3YpoIϹElpoωXO _$T-F!nK{\,H^DIc{FA98~X0aw:l kgQC#eI?v8}@&u붳,YěɓxÁn`Ϊb9gϯ,̨v KeRJbDa@P;h 48j{A-JʰWIq|0f(EC@b!gONQ| ntu Ť&Z7ssg((A|2^/i>]P //7O(RN41U‚lF49u}= ‘'a5Iu`A\3gl`7;p& (ͿT8 rʹX]%3tTkߚj*L9;= >?ݬp|/Y LYZ [;Bj'[bT4604ڽ!$ # b @C-W4A^,0-E(bXkH܎0ڲcNhY^2]8+B FuJ۟ĚM.wjkAT/XpSdP1p߷n{(N|!X 6f,z|X.g6k %:;(H/MwZ T ⧹<,xY`:ҧ^:x.;)q22TzaX/СN"RҞmsB /r3`\#7+iɲBֿzl|/$Xxzظ`J\86",49n9|TFz9yıoʅͮh*OpY7yo *P5aBR^GA'nJI@a?׻?҆veMCȍe&ܱO q<@p/̄а9wNrp jP*ӴԘ־N1yEt}1VTkv-QS!jOԝ p/4&!R\ģ+U?Y90)6QJAL6k&x֨1epXx2[D$)Z?N׶O2Ed|y-.,G`A*]^ ҰR9+)/r^r Z@t-%SaDKg_$ 4O蕺=@k&khdxvF~4bn%@?i2ikGSv.k_7_zLyɓr&&XjqnQ쉃'Jkh㗻4ymEPO.Y'[͜>rǨU:A&:]~8M L¾9-pqƖ^p„S!Y 2_|cY<iv?20 C/}Z9oN߫ڎLd}]wR=w\0B5Ebg[Š~K,ITmWCp*Fg;)?˸ۖ;{ +a g]ݔ^ WJARx_k$$Sj"\xG倶[EMO i <޼8V&˼vm|"}x5@e_ u<2ٕ并uHK-T€l}p[!fQrTf4Em`I1 b1[fHbgS"[s\ُעYYiҀWޑA5wI&jhD'⋀ QBrKRB]!2]+xR_D«D 锳 }7VeV D㝈h@HTDXK4v8w\̰I)446w_ɋP6𙱐"x? p|Wzq7AbQ&n92]Cݡ)7MWh(= x4c\4 ɍKwFmuVuAca/C[qj1O8RR00ةrT'O!k Zl0[/*z9WOb:h".6M0{oH~<z#SBh=%bR۴AsL\WYEAwgmJ{9&i6!,UC{?&u%yrfBiQe,Mv!k\dQ܆1 < (,Y,Րm߼>8|Z弃 anEǓJޅ؃ܻ=i oY,"= '7ZbJLB`;s0N1JEzEF@4 r0p{-&_d)*7]2%[!bM쳬"UҁA 5gx" pwXpkrUtS 7*pCo`=w3/!dAi]COT B/SDx&_1u۽\$lzVۓ & ذx.4BuGJՉ拞֗oXC&1]e=ϟ<,U9NC?^6fi"AFOmDM0[cr16Mkn%1V +YF{.kZ 豪8M̸-s%RΪkj7}}& MS;)+@6BhM=l1ӱ厮&D Z;G; ,9fd$ц)lHs f3@"l$eOi^m @cfMh?ﴯ{vLwVo;qpY,qTia HK!{i`]%@nYtp%NB?ߊṯ1<^fA yXZzq1.<eJ~FK^Ӯku9)~NIiQVZsq[;@I#]18yW,՗_Jo$Lk.==np)J3cb>֦+{|\D (Q_>^U!K51g*sF,?XЭc{ȞZ]Ps~.ߡ{__n8I~;e'!<^#^[KYpQ_hmyl? SJ`ü.0pkP`~ca$(>^_'ҏaCG%Jd"b0Ph?;lkIBPS|Nnc6 o`5k/VPlP0KPEѷFN 0~iKGҌBvRyI~2D%iI3z3CR['W#q؊HR<1OprI=.ޖk%z.+h5PIdB@ĺъϹڞLx7OssvxTU}k?jw6Z?&/Fɉ829UBC9rsm&*5?~Ov  fX!A=p%6; k-Qb}/Vk+1mL,G)~p_-zL\êrgk*}N>}|]D{u!uE:8ϕG×֢ծTѽѲd1`}qB19kR#2"Vu55>78xEzwm"2e9}<0̚Bd*YjmՊOO^$KGH6I{Ha~qc2jW~אG9HD ~ǡ6aѯ,y%m/8O0ɕSzE'Ļl6'! #gPά>"|#= 5_W@MpD^x%ZBĻoAvO. ; ;ذw' |FYBti3 άw4zEE=r4?[X QHfYs2H~8I1[񞟖V:uK|3G< ⦨zA}IE@ g-04J5)# ^xixYLz 7bIP%H~+Dp3l`cSF43sn N{h"V) ^G1ho3i} kL !VW2  \j]C V]%/$˺Z 2{]yZslioK)qF\[h%-WC@/%Zqe#G¬7P9WjZa$3<(|Ҽ= ?MzL_"5jC ƺ6H9~P,pPrI{τ,hD L\CbN5;RC%i/{lT^#˗HcoLĸQg֣^^ze )}f5@+ VvfǴ#0Imw>ےaA1*y7TmeII~Ek3DBb&(_ %"*Е9[5+'D~]u=r't-##OG*A;st^.NU($=9\MIV(&{uMsC@ЋOԴ:&!3 C''{ a Hy!} L~GH{49ro^CNtpoh,R 5fwUѧV̙Chپ$ek/v䒓~I:ࡦ4ZO+"XU͢)gV.WQbB>Li >/|-WMsp9B%fخg~k5T& !9b1byf4fd|JZi2'ii)`tP+V / Y@nZE [XB7{WQc`8VR~}ثr~ErQ{ c| ̋86Tɱ$4CyGp׻9x>&oM"+{ XǪ7Ɇ{|^B-!~: ;ϲdjͭL6*ҩs_pKQKk2@'r7]H=TR3tcefj5b- zR!$B5ӑ~唲_P喀;]zjױyk㵽Uނ;%U߷;DE$Lkʪ#_$B"ZaŽdBd~u3r( !ĺ;֒oCٽfVBG$jsrrf )"SkQUP+<"a+Gd5;^nU`Kߗ Ui~h:iLi30=@ɱ-%0[Fd&]+qu Љ ϥ3K ,'o|4PWRaz= Pv[IqvtU2(dRbgFOz'p opoG]EYYR\/k>^3A|6FH(@"UowTD? ΌGvV3i-}I >+;CqŠ%^,ڑCJV<ǯ#̏YeNrVNϤ_j=y }Đ1 u+6ۨkFgVƏ [j3Vp0F-jFpA֞Wstg>UjSnw=eB @fު8ら~Ń^?e%a^`O^M1bQ*~;`*d޿EƯ30:] &tKB"}KV”;4jcĉwDKOǵpm(w{ɀR%MAgv՝t;eLFFp? ;4W(W]-ĜKgGu#ɽ,A$+Z8_1Qq]<ڕ\8nюUBfi'3\>Ԡ-#'SiԟA|~h\mmocwnGaq)*b/8@h1ٞE*%=)2#%sd~08U9Y3Hè}JIcP!!BW$F\rgTq)46o O\yks@X!wC;)&?T7!bQHkzj{v@/e`U~ /<l>:ZFz!Mᗗ0T~|?^8yD=F+S-F^g}AyTe:ki'y_(Dj ԣt:1(Az~:KAQJGǴQm6{! W$]b> og&/@tNR{+C뮕tꃯMƪq~P '݀ni,7G3Pp@ae_2*gz|{*NyHό+t u0Y~GYVidvQ(pkn|pRMOғIA] 6Y{4mQ몀Y| 锆d}Lb z%M 3% H#ws .\+\A#mh\u%Ga4<)@IK3WT]ꨏV0ש5ȋ h$f]ltOurR#3 ]h ؙ5L)~ܮV^n^dU1t vn}hmAvXT|D%e4y@"/ L {XBw"0øJY X4g,t{[0 \Tݼׇ1=m>ex`';xit/E6*'Î6-5ݡbajta+Y,1Vsbd/ՠC *4g@3%OcfQ$7Hz80|_蜺eNp3K/Qι-;;y.'bw0}eq Ӧ;B'Lu?GlU|xi|8Zc<'uj7Hajv cI{iKلұŻR8aDm{9W"/U 8$'HtIV ߓlRY7w r0WLߢ~]6JSG5~& CQV̆twVTZOA&IH,T/=g V̖xc)<73h~_,ն=t~P&Wо&_KhI|GEeòĖVU 7,kθ:59d{Ϟ#]J $z%6{%:Z^D~ZhvʲWJIxh1#LcDuIGŴ0f?.c`)*1igi,9h\i/a )Qm<^P?`'T׀z㚋okbn ]Bo (ڄb 8c}.<$M?CڤLj k{ IUؒ7FjG-t[xlP1h(Lk"@ֆ_N,stRί{C^{ n;@Q/{ XS@]OO=̤D*@֭ܟ3yA+VhlIY2LʔqW_X.6eq]ݪ2(7M!9qLHk}PpAqyCR0<342}{:.aاGۀoѾK${ 襵 u5߬ ČJL .ۨ\8ՔNc'6-dSHIV(>捾?jp{" PT5G7(w,{a7J۱([i ,{Om#6Z#F"؇/3IͨnGc2y z&؈G=ߤB6 |Ibp%fབ̥'og&Ă++ak)홼h2/+paOӠɀV ?_&e-,!״-{h7 3iNUyL%" 5D|{b L08T0b7Ok<>8`kѴ~ &iC,WXXQ"_g 3W9T˾0 *X`}v$3݀KdlKn…u|_2֢AIç53Ձ"raYC[!=(NT~dxPt颁bICn*Gv$(?C_S?~I3,Op71^GM˻fDZrxcVO b|#vr7KցVY_9^p\n#i4 m5,[ qB!rrjbTTXYW\F3Q&>ob=Q76)_hlBS8}r@w7k9>;dtF`P&6i4H?dž&er݆Lt?)?,^m v,HצKi])]x|Yw?ֹb-)z/*={H .j!ht$5~[!&#ޗEџsً hiA3tџ3ƝߪWyh_Om3+e2 %yHD)^frWů X4_۲ф}os!3agu4$#4v`Sd֦>TӼi F%yv (.3土lW"hȏrZA.FF)H@'Vxu}\t[ `R aټZgrY،K(|M]f[ReJQ[֥ie<$|/qpYH[޹ﻍ"KilofuH.\5@Hہ6h!( &sD?~ڳ_X H"D_pdʮ293~㩥Omj<&`ghtytHBwo5W&$"ɡҪĬ! iMWPuDo%*He~P!ڪMo ~ g_YMQ*O T˹ ֜m:H>w1;ac7~L|{nܑFeUZze}@54zӮ~409W'!`\wMZ#r> >r~)E*=κƀ"K|Mr7FBu.g@ڜ[#;hε7L["3XD~& ThÙ< k-L6ʲЦTб-VzpA!zS*`uDd. d%/5futÇˑ٧. ;~B.%NZ쒡ч8708\NMx"3 i+= $|b^51s(4NYˢ~"^HЅJS0̲@߹h<X:[)ãn$ZJ޶p5̶k;ٜɶ18N0M+bd{L&Ahh @bfP }`?ZB~ȰlS!x D^`3 roVw[ :H\8BmIGz2HM"lt!CA#}:a`jc&e/47̅:%͕gShs-d\"U1nlW4ds:`WP4>.?CgVĿ@B~ӫ,..$JiJ+Eg0YVK\]?k{1יnc!T.#3Gl|×F (0 Xʟ1i;Ɇ[!g#Y#W\vS7=}fKhhmL,}!i_}%g^X[DRsQpLlRB9-Ļ96N a=v̦ȍ\g׺ I3`c^OA漼 nFv* K T@BON]u_BC#7WQ8/痎u-v#D\򽃢 J&e&s錏:N!!M4CX)t`V5V%PђғJ;J%jw`Y/+=4, d=b_H>pM@fW𷑖En2}k*#f\<,)Ne.$cZf%K9!P O;1/XT.ْFP| ǮkeN ̄]#Pţ?OkowMvVjT/+IK(1̃3BƸ#(o(>-tl\Ñ{#aGOĀۚ ?kJұāЭOb`I>1)~d[b#1 Z5 #KyмERo2O1O'i ")K#1olxaUw,/w&bapIMm!ˆ<饡Н]'<@NJ.0CҹwD-M#G/ⳒfeVzR:[2VeP=:'0j߃"CJ.|`W:\9Vf#{̰~_B5eMaQXݤ Ds[.'U?7Zc$]'ҏF aέ_/Ş%̙l69VuG eϤb ǃДQixT~  vO?UG?9=qtlGupZC)J-| ]i[<bKagen=r:V01PTbȱɠ?1z`?R!p :D4S:4"DEaGw\A |cQ<-_d ( oݘ9ߟ(wdk)CU0.ъ]ؠ]𘧬<{2m._u- r3&eE6gk(Az&F>Oux,ǜ~ L[pzCGih;m6 Wɔi i.öHYݳN׳+M;kc(QɢT=ZMӆRJDGjjhwm rO̭6tSj("v}/aH_FRjj*`PqMih*pi?'U!|?U#?{|tJt@9HV9G3\ǴAY&Vd2Sy3 C&"cF y4ѨCy)(&c9Rk:M\%$ؿWڟ6E$$;ހ$뼼hﻃgZc\gGA+[C8B(LQ),It˜ZGԦ5DŽOA84 6 ;j̯ ힱe<-sQn81a,ꭋ-žpVA/uo ^E7FF}GARtU1-'C'`f*O?}FpZA(C Sݩ*ԟ {f `jOFr9Yyl-p)Y &oycx*Gbu]-ψ5(}]| D CN^A~ٶ~u~_ʉDK ۖ5w&9.+d |^oAri$djkwӻ3x_5Q<Ėfq cPE<{{ʉZiۗM#׺:A>ؠF?ֵ'I*+V"pHEU\h>',Wp=R::&jj(%FqK>[.An$yݰ*6H;EN]{72PzɁq-slIU>*Y LŢ t3b] oHSߎy'`)~鬁fWq4r g5뛊io@g,)_ΨT'=o,qAA9C%gW<}@]|1:tO IG񔌪yj"C(Q ~De U A~ [jhw}oVfٗA)$ A;C׍C{ ;M=N)PoX6wL -k%>?>ִS]:!Yh[`G7Qkd']4 F"G٠oQSʔn0LkԾy;9Qtɯj]HfgSgZ>94BiK ++h,*P E/jC̚; t~"r'3O"nN~|M;^v ϙO%{1@Lv25nhًl.+$r0)]/3W>rHrk1PT\ovݶRħX( m ub >-*ɘƋȽ*55csあ>Otא__d2h{<@S>@7Pu]wˤwu½,{qE~wCmTpǸMg(9!Z'p穬!+RiO26fDiBΙ*4 YE6ڨi+g\Z\92D!|𿼭Q>.l5yp1p1h]IxDPٴ2A눩úaJ6dgIDP~J+nV^ΡV5INN;{G E-œ69LW})v @Yn:g5lTg4j@K\f>Ab1@-ܕ UM Ku@wى,aiS5zrV,<o&l]m⫃dYðӾO juK!D… 1봦X>+XNq,)Mk_L DwVϢ;f9/5)b_YQ1CQ(`eFwqA`ZńYlMU`{XQz!%"[ýx9(<,:"#Fzajj]"|'Qg'#4 EPKphHrrևA,E gGMNM`+?:$_C7) !$ f S09C2X>ty}2yETʹ9}*A$>&-P_^P҄c8BU63N<$վsP ,# J}Uo-5C{.M#F zD@Fop ʗ0!#UNW!'sq_'#G]Lc: XI4&gN7zjEĻŠ^!׏v@RARUJj]Y܌Yhz<{'l|BL{{ ]H>kV}x8Y?uj] 2 ԡ62U#W40hD$`yEFS 0{G(tڶPg 4Q>X g2E[ZO>]6\ukn3*!^-̺_ΐq e4D#)=nf)[]tBɸl\3WTi4 n6H J`x-PߺEeȉ`iV h߱N;Bf ոr5R-r]ƙկ c̹ZOI$<^6!k4+B0K=J$RhhħӔA=;e%ry/\0^M DmW붏.8#) 6k nDboʂv$ 30$9Ք%G\jjB_b֙$~q΅muZovOQҧmG"5nf,q{i8F/P@=>a `UfQto~H}(H|`\m )v6$`^9!'x2bQ!:EވBTIS 6q#h:&o*,H@` Y@AKg~$ 3o@:ǚ42?P ܆}{Rʺ?w5Y8*iT4ڪT| qON90[4@)¢ĕex<Yyڒaw%"IĨi '+DzSC)/4/`?뎅XiI"1{/?K{v$% ,Ebo֢ToEݱhӌv ] _j:uӆfجBduw֞rxxl(beOlj~Hݟm6V{w0!k*[TAؿt *+M]{1:Bl^-ā^&NkczDY&&\vQ{S]}Qyu nl@_L-r !esp,Y%ȊOm;y5:Ԓ[@gjCc3v1qs P*Tt|SRYagJR`AE8۟gr؆!Ҳ"9xW~@|JOˇBcYzV6elc'jqE6f;se*Rm1 ivϬġ>#&pCP!pxUz0jnc@ͶmZnRV9zKNKeh%sO dbVnԟ`p{iXTی-1{gd, 0ttUϏ~_ Sm?3¿I6!h;yw D%Óݢzn۲}I1ۃNjh.6ѧ&p) 4kis&@!O8OW|)kGrKHb-+.* wIjHnQ3p@Az'.r'3ܢ{EN>xVHuh ?%3̬.{3OMM^}v>Mļ`Ы5Y%:Mb!Z@dXw\{S=Ȱ .\VHւJllaBh؎w6퍢VNAe*%Sv5ڕ"LcKZ^clb˳EhTgp$26'Qb\ed]]6Oos`׍R1^{hX4UcH61MI.;5Je ȱBlnܰY(>̂kso])գq;aXU,Dt .MepԪx:)X&a{ӑ.D/ sU+hǖ PMD/Tg@#@QEQk;bHr">+q1qA{d@.LZme#]A܄8H$57C7[h7W{fA%ޥH ` ʬnUbIu&(7 oT H/jsd8:!_ި?i8W|W~.֘'Ixfיk#:G/}xFrʩMKך;vI՟;m8Ɂ6 h4Oa>r|lڲlYCeec.j;r$^\#-.Xm7+cG(p 4qIxurmWߦ*r2M *E0hk-P ^z (tUBWИkbTȖKcg UdY9Y$I* z ֚ץO.5T!0\e},E^x1fƫ.=?@-Tq bGI}o˲>:YF1)z/+ yn\AI!W[vÅTE9.c4QTeKLh~ufuxԍ|+nsib jίPJ@{K(aR&0x/j6a?z8H;avߘǛ{h0 ގ:|EBF>+HV g1"5P݉ ȟ5k36{"tt@FR yw9\?QUZQ>H(UgI"ͼ_7ɾ4xfS849a4\AM0Ma^hgӚήPsH.$#/a劗WU \)1 R+wuq7P "b"AyRZD'c`g/ h?dǬxQ R!zؕiu2F1 6d>arqGeDdUر`"'?)b[ ّ㇝e#.Lmdb-RHX `قo= ] M^#=TVxFz;]vneSgxlܭ$ 2vN3^!s[Ц!*&$HaQx0>jZ.#7 4dmDgvn>a<#dZrV<Ȫ𪰿|m8M Ǥȫ7|t![OXGM{A&m,@PS:D8 TdK蠲kT$>߫A%tAں\ [D muq#`^2PHҿr')Y8 5 [©׍:PP#Yiix7,;/ T B[KIq ,7|bf| >+(oqU*9A~a2@eȣL9U JBz}pþO>Z0 ŎE47l@9(5Ƽ }(dh. \bᒭ UfK(1 pX=!Gbq_6Crۨlւ "gnVCzjUʅ;է塢E X4NR5!qw <.`abH"5|h:.Ug'BЇ] ̲=ˎF*H[ ^"1_pmj=-}93j[KP)SoKEmC<.f{nOD!;n}cz]b SYRkmeS׮'aޝe=.I/ uIf~j8iĩQvrW_+s.4o.dvscCUWf3dD!س6B}.ތ|9pB14<,ˀaԴMeOȦAB 50y&ݒ J~1鈘 Պ 7 ޒ!r|f쌘#ZIdv "j_9jBӫSM [ >rayYKʪ:Bb悗(ETEUѬR@ۨ CD?L "!e:>뿳 zq6VۢHVH]*}6^W 9-jTWn"+*sO*D<-,,QjfVmF{(Qۅ} \7="m^:ֽ ,MlwyKpvV +뢡Wޕ: sWa >7w% 9ܢfC J)tbOwWu%T400(MATV0!@"DZxY}i 'dp`c0,;25}QD,2\@Ї+;ՂӬWtگ Z0j_U( UV{jή*%# 9>~: Xx8³&L7s%X 7kđ\N9h0d|=;}@IZ gIZشUP+E:^Xxyh(b^KRok $$"ڛxV_,.׽?i8b BiBxB,t^+.˅8)K 5r &Gc/Kɇ*D3*h$jb򶹘:!lа]CW3)yBـ]UHXJr!mwd)#USPdՋknB)> 'g2[fqA[O !ȾW wB]!t![,ctz;dDgv}؃ =YU>M}?#|T!d*iYA@B_DUT ->ޛ?X魴hgJ|ky-DK27[% ~ z)l)ZfX;'9|_Eq4Yu?ι&ؼEQyH+|pHlxnuīUaJF+OI e~ɾ3LKϓӕhwXTګŘRQ@(}șFE"f{G/J90ܦn v0+BuWҭtbHXzƸf4'2K;j)4N2`ݫV1/cXrߋ4^Аֽ{zgܣ%_";0I>a;N"cvĞ"h"Qu[ƣt: QRm*h©Hӫ XWD)ƒȾ(q{AA;A[dEJ8 >0&8FĖ[Jy kt Ƃ~.9rq&yig3@$ӱkSo8%OsRxFe3Fޓ Mp9u f=ib_῱ֺ] ó⩸mD1V$Ǚ{2 1}wdꖱy$Gؒd JDsPn* _Gh"leYД$G-tj?,!q ܃U:xJ]'W[0&P`lWM5ZKj͕ÙJY6,1A)x(3źW0"F- Y3&6CO~|3 W _[Ō.nE^OOcSDD+&x2E_HC1}sܥJ|Pgsim2-!]`N(Վt"zg5Mrb.3sJzdxIƥFT5`-9JqOVcXzZ>!xElZ \ +zgH59[h2ϞH/8is7_xtҶ~i^hLGRb J4**cAOzn3 rA/r6yzǻ&XPҐ/p=(r@bo)CϺ_\igDTs- UCcFp |g;xX_>}QxVV!DK[i:UJlٵV7 oH_̡k'{~z>lK /(mA:Tbew *E3;佈NqV3jP!u˲fDX7F#2?mX'f5 n7[eĆDpă¡[hl_T'p[+Rjs Vv:wV]euoV@1 _"Oߧ0#&y# )<МK/k#ܖ4$ "||`]0D41 :%n>+i3#ͺkFc6~8_9}+:)J,q ӡfdRRB}0H1xۀrr.}&O+tC 05EPR+&3 8<'О8mJ@եXW|[VE}xN|@0vs(73 eu7]Q v ת-s.y i,O=G:}:>hvWn-G*<`8]znhiuNQ|U_o !Jr`Z; or7f C] Tm LG5 ̾zHk.TWs^Uk@h{2 #bp(n{cc tP} vꦫ67-`%knU;`D`H2v裤( ;}yf4`Ȣ#$dʬHm}4֣D7)Aᬦ_=1ˏYXB u z 0>,%􀗗ٜ9ڒ,su"wtd:KG С&nYc /9@zƵSYߒҠ㏐A\îM0AAˁ~h3Lbe%ߕd72f5D믿$̃\ t.[t`_;fDd=Y3lv4lA L\B;뉂1cl2Rq851vWz[z8?+b-颢Mha?G92MЭ[d}Pi ˭Q\o)}`sxk tzZotdR~p?9F_ ѧ0p'4=I. ^{k<&)aE][܀ j]`M,DkIiS>jO3V䪢p6/wX)V{tYX\{w0hL`YUb|JH:f>r}i$["wE=Zo h{e9.-#l#N#:.V8'ys:Tųz]~p.,+=kk+/c2>*[i`Eg}5i'Ͱ;^/U1P]^̄\QMjM1z[-m#lc\YGY,N|%o6eU>q2ƝbOZ ?ZҒ"^} V=D`BL֓DXnuNDvO!:¹3Mh!3|ϟԓBEjĢ^&UD}y)0(5ig߶yL -X.Ea!6s%2IN{5B_O;{ B)[e*Iq7LeqhoK[6oH@@\+ڜ-+_!ջR>[AVхßkE4.Mt/@+CȬs:Guq-Z-7=TnAϴ7q4ZJUf?sPOy#* )]ݪ .@t^6]O( Ew,I7I-=ޙXڣhT-r" Hzߍ1PG{/` 4 TgA=֎hreI I]ĺtX l&gBlC6ÉY7.XQj}CYV0mo;8kvh3_$`6>p7 #R8>KBq91@YA,Zmn@e=?0wXxŐ7fˊ7ø?1s!x1"ryɾڡ_Vӧ.vb!lCFtX/4Ëg@&| "QE<Ez$m\FssX{|}hDۙyaMBj9SN+kR(.#pmҌa4ęV]IVHuf9W Lѥ~g'{.ɝq֏FZS*!oNu)u@hf_!U8}&:$ltbL)8e>dfO 5R# V!bBQLΧ:\j:`zG!b;o̲S= ]#/ y+ -$@+1Z-|?̗pS˵ؠ oݺ|kIMb<-b7PvKL"'Z|lcx*dCL(0仝DB@fVmPU~볡'"1)7ViHHw.=wV>8"vqkNrKTk``AEDm痜rvl{ޛRa@'ُ%;!0iyB"ͤ?SG%}Ù=S(C,]O'}Se>si[d۞Iix>2W˦"AހBHB5˿Zp#͝HQM⢎${8ʭ%sxͶM TȢ !aT"?)<H#`I澣Zi?t7 ^$H#fc7:Kֱ!:h<5-ל+eӲK 0o@ROVPI9[ᙂr9P,Z'nN =Ii;$#rH-oQq3EQRG zsDq_Q)~Kؚܽ+ّTZ)r9c9eNi")9Or\T6#FZdЂ39ro6MȧLpNS ̜E U]}V\lHZ|F9O =F}=ÖamYĀlixE 0ݟNWH~2d#9(`I/a!a\i&er(T!^tOJ|P+|&g r1{&.B;Cקe+phnT y?vzVG d&CD0{%ԵǠ.yo-w0w[l ubO.0 bpo-i`#hDpoX~4GV 8 _ 5ьÙSg>s0_ ;ߴ VϔNa[]61i_>wqgv{Hsp_`ɉ|y[`bԞ :_㶃ҸkX1W7\N|+cK09z΃#/*L%Ah{ͺ||Ě#D{m njzc"Fz1ale{Rpvlr#S"] [QI 7) hu]38<\?l'g?2Se=4('WnX--fOaKb ;{R,kzZ1tum9yz5@Apktsk$}݌{5R[v<*9H^z#Iʩ+Lʍt#*AAy^pݎ1hӃEw|SyB+]2O\Rj+oOaY5KkiY{¹/xZ+LjQr/)*s޹ԣ ,I&g46zZU0yj㈡(v} ?Q-OK,֚1Mڻo^D%lAK5+)G?„edTU~lO{eώDžx{I|P.`F>5)T Ŏ?(aj4*릈OUeO*[X;f-J>cfLJZ-d9V#E gl7^~;DJ{BD5ojϻzesK/yZ[)K@6p@R!GHE<,ƿoIWTnͿꁄZ5bCPۜt76ʎbIH g1,B#TMkځ Q2_OZU%!3-|e_Nx#H Y味GWPhaeVhJKf")cmc|cXN I;B !'q|m1U&iVvj!1\WRe4tRY) u~cq--ȋL:sy,KPD/f]iOsT@h a8= X{.jy6@IJ*7 ̈́gqlG#HNb-"0=RəӫzLÀxOoh^uz!md Ӈ?qD%(٢CҊz{oே{lHc 3]GϚ4hF-eO4֔xӼd@mS뷙"C*lʮn:^; r+npڄ!3, }i7XDO٧BXXf6Φ)|Qd&=;蜂Ei 7ZiIW|e(Nls5%d!S? <μ;Y 0e pTtUz?(nG|~H|&][(Snr\*CDҡ [<4 /pI y- Ha/*QYBàJTAsiCuD(t@/*P L g#:ۦuTOڗ~IYzjlZRvC"(]F3C짩(wc]?S,csYdHs#L1{E-nmh=l _;qRŕгTiIMd$g\%6ՔE3i"~ !> Ơ1,}7YVDO/;|z_InzN}~>BdlArU5 )7)$ ?I&~YUӛh˃untvbushmdUv x\kWoRZ+8xOVhiTjRdU\a9 H}Afp!y3> oV*̵50jCt̎7Ŭvk+!*E6 TțdbcEKW+ZIGx []"UxHT0]MlE=>0k2Ҫqi "̊⸿>%ΏWJs:Ns5˽{hñ4P et0H1Sٚ/U=a~j䧆\tCp:pUuchTv?6\'p6L\B'@gorMWoц : ͡\DHiEx{ qDq.bG颓ъH=׮KPL a9OڠҰTn,?W0S5[(LWvEhi^AOqb,-p qy}z$ ;rD64Λ+ؔ9kNY <]NyGAOIbq<<{%"zo]Lޏ"M=Tӷ6oɸ`w\WHC٫wg6tO5^: ̲'<(Q\iFqy3O t_}UB* .C4DGzMWBꘗN^(Ŕ(!-~5_7~H:>}$j{*l6b{Wkb UX4L#nП3W*~Gp S~bsWQjFA$ gwJ^))CM/;_tH3g&khjgg/.V(%\l1iM6bJIG_jmK#6>Ƀ`Y !5蹞#(w D E-$2n)tlUVRƟ9_=x˸`c'0ihs&ձ5"Pd{7BÇ^Q[P*]Gl ?lImTdH̜U}&XAq#Mzpf[ >2XO@EN_vFD (_#.8B28=p4Nq  kin8╟p5-;!g&dϕTXa؆ht!I`QG6'TG1ȼ:/82QW_1Q_b[b )4vx!aRwwN=wSfIW+9ab2 ɗew8 + ~f;y\ >(6N/j4"<5j{q"n׮ѩgTߨ{IM_ %੖dl ^`/?(3g{P8y!k||-$( : -@PD1S._ k`yvRnh"`r!K|QךB򀏵<'l,=1S<+ ~B ʞsh`bi7gƟ .ZY8 #aXQ*O/ơ_)RX,T#AL8:f7萡/E}flbϥ4RjWhr%Js}y O#f޹+Â&>i'X qx~𹧚:)ʸ/~tIvo;;ݭm#όd?p?(⌧O [|j_ckRQؾec^p?[8ggh/EF8[=[@&ʠ:;fUv`a*lÖM7fm2RuNjgTcX7& |V2kwĩդ YԀ6_4ae{4cG}(|7<^JRS&)[ʻEp;GFé(mzALsu:Ri2*_Lˢ ?\h6Ww&[;il5)hs;mjMtise}: ⁵foy]ӆT,V4a5vLE`Ԍ\ᾆ#oͥMeq:05CǀMRU"(V,4Iu_ UI#ci6fĎTYc x1Vc#ݛ~8G:~Rn٘ǖ7}![)<к[Y\Z67K.?[1S%]wfJyZx汵ͿUc>)W 9 uaFA@smQV C| Q 3u^fzi_ld+"40ОЛ [epA,ԓ<+7cMvnRq5zX&{]-߿(XzOE`$mѧ%j[Vl%]7 [L Xx-`ߛ$b͗QO 'S=t==Ӱ8cBݓdd^ʍ,+BtF] ]YhQ4\1b_H+ŭ*'w*iǽ ™>jvy`yG ΜƭGOfx΂0 xB~jH >5ظ҅Cou"}l j 0P2꞊wLcE%V/_ Ӂ/f'4&s$iW0G ,bLΆwj~4ޥ*^HNԼ^Ȯ#uoV/ ^oshlmspo:0,Uڗڐ+!\e0+B}9 }61 lћͧh\bsO6;4Jo w~|8i7[9#^1̇rA'Ǧ|6]Չ慛]q\`f"M΂dA $}Q5C Xn#T/~mV).)-p=l֢"ӏ:AYgst֙ц:ov_&O)s 'wʓJ[A&f$包NRd9B90͡T)GDŽؽ9>P{vgzCrƦ,ԴqrDRusFJ\4hYxO(nfc/NTD̶+,}#'xt._Hbj*b7>cnVJܟ[FN(!s!hIO͆TJU¢IK2B1mt%0qv!:?p$d$cUM`>D P#sM --DT'S۫@=?LCP-sP)vfՏv] -K1BҍOЖ^%[ > P$ 0ӟ" .:!jl+@f?F^N PC|T}s:@:wtV^TI嗔 M|,2FX`DQfS񕝤p;po.) ϶[[+Zůn ;gW`q"9' ( Vapd?+,BpKLM>z9iynqR ח/׾NavS) gi`%rM/zS=mhak'A1N 0t_l "{/ᘃn+BO m~o[_G)/8&|)CG ~ 3~EI8V^1ot.6+L:VW!lJ}|>JjκOFPl#d)r)IcЏ`=_P)Ra}wt|sSG՚D8v,@>~)|͢k»#'"!ux X=R0gϟ+ :%V<:KGݨ,Q4]?a9UOPckYTGP~I$2bIi.B7FWt o io3 ]a͆ҙ/5{He{w!(jlsz ڃYeo)]FѽHMVS cֹix2Ede!jﰉz~4 qcdEpw Au%R\jߢs@)J*w0'!7VҤ[-&w";D)3ŵK#hm{h% jqx po˺xEy.PlWy|S,A1mPPe`NhJᛦTMc;bFj?mrdT 6_G֥c9Gz<ܫPDZ~/)'K2sNЈh:yI<]PiWLmyhg"됷F@oa~ڊ{EF 1dv1oͥ`fJHy@ގJ9uP䁍L$;?:jB~&̙GX,4 nY=?Bf?'s}~Nٸah=I\i:h&]F= $۽~JhA`=42q7?MaRja ڜ.m(4K+i[p@!\YE @>dZ wgΡzDq$y47g rOATuձ?*h 8{K^F8sEZtIi9a7>4uh a=_E.W}+D{[Iـ?=l<1 5{ aznTYb%ᜆWgK~̿'uzr>?:r]Geއe}\b5H\[(-l=gF]0=?d "sؗIvzDS+<,|yEE2 cmAB{0'@^ ?цUJ`+HUd&?;GqMd-Taq~G1ȍD_Q/X-_yp+nG!t|AJIM%T?'+2 ,̛$e8 =28bFO[MN0UzW$H<`=j{kwP}-H]z BrU[ z:+XonEy^a"|Ɵ~ Q[5x%W^W\uĉ t|f_ѫW{WYqʒ+%w*tLk!JcoYe!&ZUDX>ʿ@qMgp[UƩO[x ן Nd@L,꒎'Gtث=ȺAU(2 ,H5OԒDƱa̓^Sy%&QK%M~(9;FE-xwS^bij=aBciO.l(qbrZJ>f jm-f# *PrSEdIt|F̀ТkS5a]C96b^m8f/L&h}O3YTóV)ǚ5S}ȝ[#aI|d>VQKюؿeCj[FB ǐ3f7{d{{/Z !\VrdճO!{KLf?xzҸLx?UU MBz2++Xf EFU_nn8ױ.FYXK^ N>*\ͽg \l9Gcg/:0ETTfi'񺛄oq~GqJk-O2e[@ZQa<a,"2FTw:ť ]d8T{q<ݢ?2]sݟ=EO$~bnğl7C0 GZS^›4 i[}pRId9՘JwTK{K^4,I6գ'nz/%!i"l;`˦5j&0I~j[U`H#~ގic [zY{D:N>[b}9$(z4.+0GS$yc t 2>= &*kq`/Ij17m[!#euk0e-̿6,VGN݉Q4[G<(e\vL3<È( t7|kGLν+d@(X'N);hoxxG7"Rtj&&ڝxX'izw D]!Z/D4 :JOmnLQ9Ď=} yby%H,㓊 .C[!%MlVVxRxLKE܄FE:P=V&> o:/LetjG@uބwt#md~ zNm }w1WS3>js~ZqTAἸ)<h%p" y5$PԺo ِ!x`^pL͢4ʣYb5!jFӒ:'[ @ƹ QYAh.ƧM GP˯: PmO_)s$ z6Ȃa]C[_ɆVY=%96fz( ][IjV5SRqc$ NJI1Yd{y՞TX׽QQ͹[R|n)I[XOuAXt³|$ -&Uٌ:o H6D@C K$QP/ c̹郠my!Ǒ2ON<7˓6ID))e?1Gze>Ί »z,n~6f!ꈼ!G]clI,DdS; ɛ3gDϒGbb [WЭQX(a@v_MI51 |{8O7jSɟ*ٽA QO^QeT7ϒD0GU:PO$sskҭQ1`jd/;RcRc?+],7C@ٺJH)eM5sԅtM{~[ݠmUi <2Qxx:5reu?ϐܞdxicJ;>_,;JdZ3p9u!#srHP |t$3 %1P{[5p q\ r~ELR1bӞPˤ.LHgΡ ysvWSmKXz xH 5Wiu "忹;^͒4+bP7BPNY*dKB,Ȋ=9 TϥU)y<HS G?0ٻ#3bʷMM8u C䁨`k鍼b&~M24^R G" a#GS=ߞdEy4bw"~7<\`.zKX5ٺ@tq||.Cy19 öbm4i(KU3D<䊫KĦk/V4Aw\(=dvfJ0~`iᎻ9r39((N+Jp8opma[XtAeYutٺ!gκҝ R|D{mvo@|x"tf'Gq︹;Kj Up0V뗘v |HHOΙknsWjJ0b6&o5My]p~S]tI_+1]BJo8]<4J|Q3SX&0nlvj߮^/vr-/H2 ~rSZ= 8*ηbB& S%!e!D6{ISzyDV0uثsG/bm_ .3lk]`OC7Zif2|<=AȉWGO"Qƕ JK~P7Vck.)n֧Azz2&uK (Q}kzMG:;1c=l=#X }'=S 0}G:H=DlyY@@Y0}HGs~[k.-O9mn70m)164Y]"Q}/@*&;&;bTOVpk˰BJ, =9vYIWZ^!h2MIH%q㚜^1@ف*T3z;>DBr㥆I?jcĿy׸v*馷CEOWTTSSB[r_*Cg1 ž ) f|;,5lD6TR Ʈm8d4U",E:fe;J˕Z&]pF0 OR&וhE!r+.5V BNRv䜒geͫ;G:ҦFS;kX*srzp`7Y~SEv@Y#ܿ96 hl^@J zUѳY.Kp K\"T0`].oQ_ ^^&MqVP #$:XO"''.` `; s?]`p^Ϣjb:Ņ<.ЖO] Tf>V(/rʗxIBga^> `XpW7@RoD:s'EGڠk(hgVZ˹㠨}zxoc~zkE,Ij1wLy,N;C67X `:w6PNϰ4}u"+ Pcs~ފj B8}`󙈊@_O1A0C7 ngw\6j8YF^1*7_J͵ r{5V`8o!i@W?ѣm3HC`"LeF@LA2 %t.usB5crLT=ټ̪A8h?Kl)$~Q^Rۂ#.}[+ޜT,XިJ&N.}ߝZDRdJtc0^e@w潞5뒷>:N:9T [qMmy %۪HsmGF:Ư99jM o*R`GBl^9.HQ~i=2V^d vS <q-XFT&knЏRud'S,8+<#!s!h%؁7͘YΛs&Wt:S^ihӫI{ABM8/"7Fk,UNKͺg3_B#)/ )oxHt:82b9Q«lN@PL1AJJv>LO;>tc f$C-&-ho#c+h,ޱT٣hnd֟J6ӳOe=Z/Tf{gPyGg3^v8W+Do1/;|VW|/(S0W =<u1k;˹+ .߅&rs'm\WȶP?kHdX,PdK#-AÃg`SԎ/Tnjt(!KruB -EPNH9=o nk-X)?4fFa(80_79x`Tv!QcKBأ~ZFCAfJPI(Y3 \c(>x\ݔ 0q=nPGJphLNFH:bZwz1pY|EkMEGT1ܒ#ΥCSTs!?qmeVd2Hn/'6tZƸhrsbe liLSo|!"[tà7}ֿb]pu2jJ| y7_Fld`NiS[Ԗtjo f $P&nyZ+ ߘmwcnSwvxi Ss^Jxs8vx"nBW+W\pq[wq6$b'U9W̜tf lsQ]qHc"\/#3MK-}]c>zɝi֥jFBNyDMwwи + Acqq+ uc!iq;"-%NKM;P´6~;㣬{MPV v>%;qljƷGW*0ouIْrdYgVI^~?,~M!4f2Ey }Cci1Lmv(5򔥨 AVdMXSh뢳  JG+>T4ANb,7JERxQOX_NIpM c\?7_glSj|l2 dN4W&OԄ:/sX?6#ͭA*IQODE}NGpi#Smcea2gv7zHaь&QN;[=-9;5#ӮTG-4c }>H@x/ө%HYe(?5%˳ n>`3ap}ؖZ2bvf>? xN#FNRb{ [֮;e=0?Ѹ|wXE-c3YS3n0'<_V^eDBmI-iq億*lDB:[D{0c8Tɸg'% m 髼(5y9:yelMxbN ,?g$yOZR(mG&QCÌ|,MEQDa-def.45&SPYaYw}CFHVeK~+h2Qй^sOxdt#1bmn}s5 [>5[t|6Y\C\i/^>kbz `Ke$ ɋp0c)A>Jdf5<}iu"&>Ra+(]\]#iJ L }%;FC<sO߳  qЪaG:]C|gͦ*~b+)\'qKh[qa2}= 3y嘊MO<V;ݢ ݿc:@3ڡZb/2~>hpTJ!gFb=o.UIztFf69Q90uySQ^zm :98NE{ 6n:Qmk +Z{~5uv4qU&jmC/nԂ+E46tw(7Ҁb|>}T{*bG:&vwNΦj0.Lj3} aoؙ=rJXӲ޴:ϖ;/I:[,kN'cwsnH c͆0$ɉCr4Ĭ$^RdƯrpwV {//+$s* `l];ڻh@VRo9' Q(^]:0% xPcBxSGȁ{:0w7e%|whTϤ ݒ膟LpתZ ɌsB/q:T% ;_DA YxoOX' lXR*uU9XUfr #:dJeo=)v%G-@T)m/rμ 2%~Ih/,0S4&wP*&ΝQ3zKFt)Z ՗;ԁ S9,tfL f{oaUXZzA0ρu뫎.^t!V'4pUL46?Jc, =DMmX-݄r!Fe`/LG|d1M⭥)Su n@T4rKoHbP'Va[3>Og<#V۞sɣ]fc/USDkQ$n*0IfvJLFUT 8.?"Ąj/uoї2 3{ٝgrJL{p΂3Ru y18>!/r4%g3-ƽ7`l okGj}!L"d;U(͟(hբI4'}HWO=,.i  iYy =49-]G0!{N BLM@ͽui7dt+"kV pz`xy2#_WW$l؇W䳼RT\?ӪJ1晧1NUe.TF\YwPuWHU췉O& 7UkdbZ9xum5 )6Ln[ҥ`7=G-!3$^+R~ AýÆPbyy݉T '&g֭XE=5 *(|K[%U\"\dEԿ2xT~{q?cUXp0 CV}T7OFKzۜ t`Y*bǓ W:4xK/RCɨƸo%h7՚=b?]Xoo>ƈ:Bģ|)Ӌ ^e'|7,\ ̧pkY?_a0gjYy'?5J)d?ĝR<@8A':˘g/u\ 5 O*2 5^lqpԤQV4m76v))Ro$-CTV7v,Y$OH=t="Be']e€ LVM1+ ehk.v#sbəȼkm֟ޓ# p|זG|$oHx #P&ы?w^09X xoLa'~ZcF)qL2oJC/8N@Hp_nȶ#w;`&@1+6nNxe5g@~ <7'TUQ0u\甠gPO4SS "ߌ Ww1rQ[gןdJcXk!9? ֚5Se65z"q[D|MO ]Ijhhz uŽo"@`jsE 'H5[6\?)I:ۧ*>(ys(RA55`db3eslS@l uNs= _Ej*z aiH%RdlM]YTd~3^R3Q-8yy!rC39^OQKQjA-ysI;9ʳT̝`uO9@ ֗h&7PY߰[J0~u K˒~‚ѽ ˣĢI&8 ?IG! EOlov\ x &+SܮTQdRn$)~C_4mX5-|/;~cZAl(d?>Z}-'M/<Րx!vW,o[<7qM|@A_|$dFb^5 mo?t-{/0Q״su bZ#2WNB9 ,?[xY; ?A^"g ,S4C>gŀK!o/1(^IowXbò LTĽ][͆10L_1%/X@A*YHꖰ\/oR *s΍iȢe+3IG˲F|m2=p!5p]}n}06F׋i0\_zG2ûeÙ1o۩ 3M Uw!<\NcpRI5jťxnm߂6-M_9:L{H6& -S#4?m.x|VY4'N&/dѷ2.E]3iV*>:m̉4yE&&X S0}/W0+6>=]'U򧲽8r|Gє-3sX 3C3-9i<f܉R_=n["b;` 29Uݍ97rPߐvҔel“P]sg`2ccUVtd~1Z)4k\|wӎ)Y'G~"Wv(ֿlRo=vqQvssT5/Ce^0!:M 9E`ac;0BYs4lB)X;`ġc_ 7sARxk`X,KpQA#~j%b04.DYӼ@纎Ӓ &J6+<-ГP R0*IŴlv&'Snú[=+؆yz:FC_϶ټl-xW;~c (NsV@5H ݡ y֚ $7ZS,<)o2N=$OZmc;ۣ|* W݁A xML#ao|q=:hzO_TqGH1dA?Z5SKO< C-)‰CrTwueNoU賖'}+cfxDEٰ ѥ-?]9Q+wh.lI,}*7*픠LX=ݰ6Dr M i"jφ 痖%ߚO7ZK$T4{^S.Zo|!hز2>K ݝeu8r2a"ٔſ75y8'U&bV:+䔃ZU*N[8;9觫9Fc2+'W _Ɠ?-NhD-F2={ S~I*Ņ C4~  .%]-8{* mP3BW2\^DuFEiQ^i5*W^m<ߐ]xeGMCe]*l+<lj xm\Ms?-;N>C*uP4{ )Dk[f}YsNhO#NU=$e~%i]"\M4z]V& ӎܰ r.Eϊ?G=fȁi ku)o˰Rb:M1 }ں^L}J{!J od@U?f?i/$M9a󘾵' 9U}oɜ*6[[M>TK:k(gځ#q!)q'|@acE^B}sՀ3ϴ}iyAXC*) g }# |9 1l g+ͦeW zp86pᓊ4^?#Al5Vc-Ui#?b tG-Is LRDz .o֟F}fO!LQ @~.`7;* OX&E€҇z/B\J*Es/a9Ʃ` D;LaGط0mx`߸κ +vMܫo5`E$` RR%wB-CM<y$-; ]KUkDN!fڂ#@u' >6p&M@-~dUƜ,M!þ&)Iuh;xIUE[!̊;'%;MKn)Iet ԕmxC:ߏDtz=Yxxu}r8p %ڔsсc7ڹM@(p*"3Pluz9v]>n⊧FxE%0I[GŢuh1=q'<=L(v!Lb@&kud(.0¬DG7fP.}NjL}T|Q}6'OWp=hs>hO}qV (:AX' UJOV_oDu]Ȇ\̶ܨ|>zR9s\Dx%NyF(4ok"#Pp SN0/.LHt?d_:k$˶U`tV\Oƨ|I[m d_w}q RfB9[fSJW.8URun}4ҹZexeP p.h~7 OkRjZo]ۼq,ckOkL\^ڪw#n{#wF b~cdѻ|eu[\]m~=`D朤㻷;l iݏ{w_~6Vϗ{S~A&|@(j;\i:aN+0ON/xM n/y&SA" <{jHdDL؎A}-ȇγr_ mb6_9)3KPeSN7r phN}Ƥ1=U!辧xXQ3QV19oa JPeKS^3>U;2j%Xj4Qd*_pmHz.Mm[ 11w͍Ć@>Ǝj<[ jBe4S'rk`jE}9fs ȕ9/IdOOIp1mg#:"Jhey/k׮.7f4aF;/*h#G&zvq e5,Кܓ +^k N q-Ȑ/LbJY*7!ʼ˱v, : ӌzlSC3dbʭQOǨ^K})_?(܊2H JHMɒ$`}GSr␘efn M4{"!b2HUFϡmggyokAX)Aa$%Hji Qax1OCQfj4\<>2GqK Sl\U2TU`7113^+=Vp |(AB,7(s! pt}Br6;8 ^m \-nʹe'&ٟdVBRz=֎mD(c7hGsx&b^$a,~{76oP0mצt/8&E>_PhŃ_Loے%N`}-N]WX\-{1X -dZ؋Q/U A`I%$Y~:; @‡ ::Hc9P1&em'l/EZQ.Ѵ2Yխ~895n/$A}֩V}CJ@wTfGq-1@MRloBHy5tcsbL#I7]J)ҟM?%o@3*Lz̄:ahaG]B돸'1#@$VuMzR]0-pm"CgcN?C 4UчH2īT"aCxxV|[5'(XB Z?,abSUq,{,QXYV Us0Qqz՟8@PZd s}3,w~N3{^ga\Ɔ \ȾoX0]/|ƶ> $b*\ YH0ik` 0*K/O~;/p{MǸRPp71X`3JZĈ|&κ(7KV ux[@P?P|=I95cdZJLMQ6Eb b*؂8k)cÂjiŁyr08ym?:ݼ.A# 1= XFQCF~W9WG!myTvw9JcJYEII>qNNO"tHe NxUՅv:$-;;A܊nٯmsɣV%z _CJl߁{ҎF/EL/\g຦wt59Lj5]G)7xnVTu71may,7לsJU֋&. R {ǽg%l`.'tE'¶J|۟vʵڋ3ϐpleΞzr/K}㆛=S,$eB?ksWd9mJ&P :ZMV4ģOGy<3+T:Rж/T?|!HPUstϽ/a/1:8Վ^=mXMr/oD#dvn\+{uU+CŇ>=2rpј SkF|> +;q}s%"6` s$n?C<\MK/3[2=\Lhg'l!K״v>*,qoвM~PAˌ]EШ$̾tJȶyg=M1;MTC<6M:'^[;fp43c'zC a_ ^C8jjG3Z\yNZPdkrhAR!Ԑ8cyR̭sB UqoKPCe,ǻ%8@22#U kC9DkXX5~=<@V$'JWdfAeY0Yo/br% ̭'@,:R̳SF#vY%Z3a ?lўQ=(/7`٪ F݃厥E 4fۧRnVi 7VaQf/.ֽ !p^3(!T۫%:$~ţ#d#T| %¿#>ߣki\3H-qF,fSxH3f9]oi>j +q^u^|;+\ Tk ݋ Z9>R KRv[Ca3E@՟=ؤ5,8 8n-oJnq%C':`]Ց3|F)S UHU| q-=I5Yc-.~I)D}=+dc U1҂wd,Ć&X :2elͧq 2(W; uQLM%_FQ܋sla<ر#`W -*ג-!>҇# ~!CG$6/x2jځwU4T}u0cqv @<0Iue`CEU-FȒDRqMaZ/҇H[ivbA]UpޤHFF?UizLC <# ECJ&MoH9 +sq3$GA.{+ c:[\EpaJ,qz̬~j@ͩu{m$4x[@~BpmGghA%ɶO*Ňi#21b^ƻ&*' ˎE1O0|M"C#5b$ER*vjZN&oӛWhxcvl)L#rPԼ<0.X>WvJEt)9for4@62XՄMy$dY&]űإ/;F}Y"wAnPW-<ή3NhZZ얡s9LG \`8b/+M^5Xƭފ_P(&$!0Lq<2;LDŽ_kXQu_?dgw4TϪH:G1M`͍g]OBs /N'~¡=󎕭(/S=y'A<1lTnt\pӡ0 M^[{3VGUkbqKݭ3 yT?r,{1z(uW(]/+fIm~ͨWׯ{C,dxX#ߗ{F0.oE%Z b!*e .R?MtҀ;Ğ(hWe$yM{Y\ae>{ p\הDi_|F_j˪2P?zY?1kg7ی٭d&-<-19և 7%"0Xi ;U7NgJLݤA%tr; dcg%|N}h=_۠#0;R(:$#GpjMQbBD53 Q䉇H-OK!ժ<9ϥd(E{.7ĊjZ{;4`M9qBz=m-~pian0CۗTaO7/21 ` NըFU>HWeZ\b.Av6NvKrh =4{._ff)&7Y|fx":g4x*Rq,*c Yq.l|gF`{؂_J| |_䀠F{ ~mYuE4F[3k,8u|A;մ?Q!R}0Sq=C Y^D4I%kީ!Q*UxJؓh3% Raion"V@hV%we\oå\XxC5\pG6[ϞT$3n|3}]C56$B\E2gجLVJ} vRŇ }) @Z-م"%lؠUKpTMP_F޳ @ %븩eD4b_ͬ9wJ`!'GPjn㼠λ(TC`}d"B5z?Fj`Y]PZ|}G\6;B=[UF{(IK\xxxrM-qJ-:M%~c+gW EOߡd4M*6ۏHxp/۠+wnTWO .@G ㆑]di%ďSkố.gKIN?;zA*:RJ-{e '<$&!h'qYDwϾ :=%qϏ1֛ϜۜKj*uP<)VME)8a9Nq)+N a>Sk[K* gRe$eg,#jz9dv}^\ӥ!ۑX>1PpU@1;Vδ{gBjD:JAA?pƼMfo5x8 ??F!z[/?y3 [;gg )pTfiQK;@2D\6&X.6wf:4e. \JH&LBbk3~̾9? u<3;_+!(8a꽟fХxa++T<<6]CDU."Up;ؿhJ$nS %`4Kf GCI(}CǑ{|X$..&)Mf8S>}0(RYX(gs]>ϛhYaa~mcJ?I9JQ //jMzx2ZK3N|)S"bЊ[MN&)R3FznkWrbnӈKabP{o #fzIf"Ĭ-v+2ETOe4F.1`ƮXf#MDx:;,OIwoӜ1Wo`#㎆_l+@tE4Zha<0*N~&ϗ'`wrE_#n]5JO 4p "z2ԜQZ+GJX@(+qM72*F 1Bs!< wbKl0))U0^ 4(@mأ2h-d9G+\ؼ=rИ-St =tdho#OE-b8_$ 1I;3<"0HBy(j4TV'8)EgM0֣^Q&R V+xRC0D2lk X|H&7$M\ߌUiMsW<+=WhəP6l/Pw İv >;妷6Jɐtsup6ºM^OGY JO^tpnB/&^b<7\lQXQWf;٢1oҤ)%MK`\ 98T ,1ͤp'B8%O 2YQKEq )</}0tޗ815C^L`~ 3{n,,/:aVC`pG'SoIf7{{f<3vQ/l#J5BEC{g{;]AlP nqs(b;ƵPIzO+CTɟuh<4@Q{ᆛ|b䜤23.&gڂY Z*N3*'~2Qk*A[*JS;|B{#_ɑ ֪ A.^K=@4be9 4"aA~"1]exf=( -.X +g"(DuVI[j$!&`T'yxN|Qs}+ڮq@Lg8 쪞F1- :5'MŴ X8ѷ埸/W]@w\\S3$®JwPvRM0O!VZsXqVTy}O69dߑE],Xï4UsU , 0'`'g(Zpq]k0&c K~jvs#яZOTVׄꀂK=LEgH#ĈzS-R:c 3unm/q0i]{.藴 wF̸,i6ir|wu>q?I8G Qp]C{;;R!ERN!v+%n΄dִF( T.<2+J"X u_D[B›էU{qRoMVxp&o![RMm9v:$Wd=UkݩDƘ:wv!`(^Z㎳G1_L&plBbrhԯd18Y TKm[*F7IA+5xpAYœk1/>?'deA )@,B%FR1t5f*L`Awe=잒mkf׼JGƀlQ@+[1Ǽ@ ;&NJ.'sL~`lRx4}c[I+,J\D6U(C/qr-Iz=;'ω0ZjՐ`N1Fd;*]SCk[PA%,ܪ x+GW-,Bi׃LWʟ_y.+ѥ Z^%lF`B2(;髤8nK$ mDP(H|ۄEXgyjUYe_Ҳ7~f <Ǯ YZ