From 90ae42afed06694b989a5bfe1429d5b6b8b4199b Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Wed, 20 Jan 2021 21:15:32 -0700 Subject: [PATCH 01/51] New theme & rearrangement of the docs --- .gitignore | 3 +- ci/requirements/doc.yml | 1 + doc/conf.py | 7 +- doc/{ => dev-guide}/contributing.rst | 2 +- doc/dev-guide/index.rst | 11 ++ doc/{ => dev-guide}/internals.rst | 2 +- doc/{ => dev-guide}/roadmap.rst | 0 doc/{ => getting-started-guide}/examples.rst | 16 +-- doc/{ => getting-started-guide}/faq.rst | 0 doc/getting-started-guide/index.rst | 15 +++ .../installing.rst | 2 +- .../quick-overview.rst | 0 .../why-xarray.rst | 0 doc/index.rst | 81 +----------- doc/{ => reference-guide}/api-hidden.rst | 0 doc/{ => reference-guide}/api.rst | 0 doc/{ => reference-guide}/howdoi.rst | 0 doc/reference-guide/index.rst | 14 +++ .../related-projects.rst | 0 doc/{ => user-guide}/combining.rst | 0 doc/{ => user-guide}/computation.rst | 3 +- doc/{ => user-guide}/dask.rst | 17 ++- doc/{ => user-guide}/data-structures.rst | 10 +- doc/{ => user-guide}/duckarrays.rst | 6 +- doc/{ => user-guide}/groupby.rst | 2 - doc/user-guide/index.rst | 24 ++++ doc/{ => user-guide}/indexing.rst | 35 +++--- doc/{ => user-guide}/interpolation.rst | 16 +-- doc/{ => user-guide}/io.rst | 31 +++-- doc/{ => user-guide}/pandas.rst | 3 +- doc/{ => user-guide}/plotting.rst | 14 +-- doc/{ => user-guide}/reshaping.rst | 18 ++- doc/{ => user-guide}/terminology.rst | 4 +- doc/{ => user-guide}/time-series.rst | 13 +- doc/{ => user-guide}/weather-climate.rst | 7 +- doc/whats-new.rst | 117 +++++++++--------- 36 files changed, 231 insertions(+), 243 deletions(-) rename doc/{ => dev-guide}/contributing.rst (99%) create mode 100644 doc/dev-guide/index.rst rename doc/{ => dev-guide}/internals.rst (99%) rename doc/{ => dev-guide}/roadmap.rst (100%) rename doc/{ => getting-started-guide}/examples.rst (61%) rename doc/{ => getting-started-guide}/faq.rst (100%) create mode 100644 doc/getting-started-guide/index.rst rename doc/{ => getting-started-guide}/installing.rst (99%) rename doc/{ => getting-started-guide}/quick-overview.rst (100%) rename doc/{ => getting-started-guide}/why-xarray.rst (100%) rename doc/{ => reference-guide}/api-hidden.rst (100%) rename doc/{ => reference-guide}/api.rst (100%) rename doc/{ => reference-guide}/howdoi.rst (100%) create mode 100644 doc/reference-guide/index.rst rename doc/{ => reference-guide}/related-projects.rst (100%) rename doc/{ => user-guide}/combining.rst (100%) rename doc/{ => user-guide}/computation.rst (99%) rename doc/{ => user-guide}/dask.rst (99%) rename doc/{ => user-guide}/data-structures.rst (99%) rename doc/{ => user-guide}/duckarrays.rst (97%) rename doc/{ => user-guide}/groupby.rst (99%) create mode 100644 doc/user-guide/index.rst rename doc/{ => user-guide}/indexing.rst (98%) rename doc/{ => user-guide}/interpolation.rst (97%) rename doc/{ => user-guide}/io.rst (99%) rename doc/{ => user-guide}/pandas.rst (99%) rename doc/{ => user-guide}/plotting.rst (99%) rename doc/{ => user-guide}/reshaping.rst (97%) rename doc/{ => user-guide}/terminology.rst (98%) rename doc/{ => user-guide}/time-series.rst (98%) rename doc/{ => user-guide}/weather-climate.rst (98%) diff --git a/.gitignore b/.gitignore index 5f02700de37..90f4a10ed5f 100644 --- a/.gitignore +++ b/.gitignore @@ -65,10 +65,11 @@ dask-worker-space/ # xarray specific doc/_build -doc/generated +generated/ xarray/tests/data/*.grib.*.idx # Sync tools Icon* .ipynb_checkpoints +doc/rasm.zarr diff --git a/ci/requirements/doc.yml b/ci/requirements/doc.yml index e092272654b..39ff676493c 100644 --- a/ci/requirements/doc.yml +++ b/ci/requirements/doc.yml @@ -20,6 +20,7 @@ dependencies: - numba - numpy>=1.17 - pandas>=1.0 + - pydata-sphinx-theme - rasterio>=1.1 - seaborn - setuptools diff --git a/doc/conf.py b/doc/conf.py index d83e966f3fa..db7eafbe829 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -238,12 +238,15 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = "sphinx_rtd_theme" +html_theme = "pydata_sphinx_theme" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -html_theme_options = {"logo_only": True} +html_theme_options = { + "github_url": "https://github.com/pydata/xarray", + "twitter_url": "https://twitter.com/xarray_dev", +} # Add any paths that contain custom themes here, relative to this directory. # html_theme_path = [] diff --git a/doc/contributing.rst b/doc/dev-guide/contributing.rst similarity index 99% rename from doc/contributing.rst rename to doc/dev-guide/contributing.rst index 9c4ce5a0af2..fb3ffc15147 100644 --- a/doc/contributing.rst +++ b/doc/dev-guide/contributing.rst @@ -399,7 +399,7 @@ A pull-request will be considered for merging when you have an all 'green' build tests are failing, then you will get a red 'X', where you can click through to see the individual failed tests. This is an example of a green build. -.. image:: _static/ci.png +.. image:: ../_static/ci.png .. note:: diff --git a/doc/dev-guide/index.rst b/doc/dev-guide/index.rst new file mode 100644 index 00000000000..e54f570df7b --- /dev/null +++ b/doc/dev-guide/index.rst @@ -0,0 +1,11 @@ +############ +Development +############ + + +.. toctree:: + :maxdepth: 1 + + contributing + internals + roadmap diff --git a/doc/internals.rst b/doc/dev-guide/internals.rst similarity index 99% rename from doc/internals.rst rename to doc/dev-guide/internals.rst index 60d32128c60..d119125570a 100644 --- a/doc/internals.rst +++ b/doc/dev-guide/internals.rst @@ -114,7 +114,7 @@ To resolve this issue for more complex cases, xarray has the write a custom "geo" accessor implementing a geography specific extension to xarray: -.. literalinclude:: examples/_code/accessor_example.py +.. literalinclude:: ../examples/_code/accessor_example.py In general, the only restriction on the accessor class is that the ``__init__`` method must have a single parameter: the ``Dataset`` or ``DataArray`` object it is supposed diff --git a/doc/roadmap.rst b/doc/dev-guide/roadmap.rst similarity index 100% rename from doc/roadmap.rst rename to doc/dev-guide/roadmap.rst diff --git a/doc/examples.rst b/doc/getting-started-guide/examples.rst similarity index 61% rename from doc/examples.rst rename to doc/getting-started-guide/examples.rst index 102138b6e4e..8bced32bd5e 100644 --- a/doc/examples.rst +++ b/doc/getting-started-guide/examples.rst @@ -4,20 +4,20 @@ Examples .. toctree:: :maxdepth: 1 - examples/weather-data - examples/monthly-means - examples/area_weighted_temperature - examples/multidimensional-coords - examples/visualization_gallery - examples/ROMS_ocean_model - examples/ERA5-GRIB-example + ../examples/weather-data + ../examples/monthly-means + ../examples/area_weighted_temperature + ../examples/multidimensional-coords + ../examples/visualization_gallery + ../examples/ROMS_ocean_model + ../examples/ERA5-GRIB-example Using apply_ufunc ------------------ .. toctree:: :maxdepth: 1 - examples/apply_ufunc_vectorize_1d + ../examples/apply_ufunc_vectorize_1d External Examples ----------------- diff --git a/doc/faq.rst b/doc/getting-started-guide/faq.rst similarity index 100% rename from doc/faq.rst rename to doc/getting-started-guide/faq.rst diff --git a/doc/getting-started-guide/index.rst b/doc/getting-started-guide/index.rst new file mode 100644 index 00000000000..f9f6197f057 --- /dev/null +++ b/doc/getting-started-guide/index.rst @@ -0,0 +1,15 @@ +################ +Getting Started +################ + +This guide provides a quick overview and showcases some example notebooks. + + +.. toctree:: + :maxdepth: 1 + + why-xarray + faq + quick-overview + examples + installing diff --git a/doc/installing.rst b/doc/getting-started-guide/installing.rst similarity index 99% rename from doc/installing.rst rename to doc/getting-started-guide/installing.rst index 99b8b621aed..97af7a4aea9 100644 --- a/doc/installing.rst +++ b/doc/getting-started-guide/installing.rst @@ -160,7 +160,7 @@ installation steps are excluded. To know which dependencies would be installed, take a look at the ``[options.extras_require]`` section in ``setup.cfg``: -.. literalinclude:: ../setup.cfg +.. literalinclude:: ../../setup.cfg :language: ini :start-at: [options.extras_require] :end-before: [options.package_data] diff --git a/doc/quick-overview.rst b/doc/getting-started-guide/quick-overview.rst similarity index 100% rename from doc/quick-overview.rst rename to doc/getting-started-guide/quick-overview.rst diff --git a/doc/why-xarray.rst b/doc/getting-started-guide/why-xarray.rst similarity index 100% rename from doc/why-xarray.rst rename to doc/getting-started-guide/why-xarray.rst diff --git a/doc/index.rst b/doc/index.rst index ee44d0ad4d9..7166fbce446 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -25,86 +25,15 @@ computing. Documentation ------------- -**Getting Started** - -* :doc:`why-xarray` -* :doc:`faq` -* :doc:`quick-overview` -* :doc:`examples` -* :doc:`installing` - .. toctree:: :maxdepth: 1 - :hidden: - :caption: Getting Started - - why-xarray - faq - quick-overview - examples - installing - -**User Guide** - -* :doc:`terminology` -* :doc:`data-structures` -* :doc:`indexing` -* :doc:`interpolation` -* :doc:`computation` -* :doc:`groupby` -* :doc:`reshaping` -* :doc:`combining` -* :doc:`time-series` -* :doc:`weather-climate` -* :doc:`pandas` -* :doc:`io` -* :doc:`dask` -* :doc:`plotting` -* :doc:`duckarrays` -.. toctree:: - :maxdepth: 1 - :hidden: - :caption: User Guide - - terminology - data-structures - indexing - interpolation - computation - groupby - reshaping - combining - time-series - weather-climate - pandas - io - dask - plotting - duckarrays - -**Help & reference** - -* :doc:`whats-new` -* :doc:`howdoi` -* :doc:`api` -* :doc:`internals` -* :doc:`roadmap` -* :doc:`contributing` -* :doc:`related-projects` + Getting Started + User Guide + API Reference + Development + Release Notes -.. toctree:: - :maxdepth: 1 - :hidden: - :caption: Help & reference - - whats-new - howdoi - api - internals - roadmap - contributing - related-projects See also -------- diff --git a/doc/api-hidden.rst b/doc/reference-guide/api-hidden.rst similarity index 100% rename from doc/api-hidden.rst rename to doc/reference-guide/api-hidden.rst diff --git a/doc/api.rst b/doc/reference-guide/api.rst similarity index 100% rename from doc/api.rst rename to doc/reference-guide/api.rst diff --git a/doc/howdoi.rst b/doc/reference-guide/howdoi.rst similarity index 100% rename from doc/howdoi.rst rename to doc/reference-guide/howdoi.rst diff --git a/doc/reference-guide/index.rst b/doc/reference-guide/index.rst new file mode 100644 index 00000000000..225e90a5310 --- /dev/null +++ b/doc/reference-guide/index.rst @@ -0,0 +1,14 @@ +################# +Xarray Reference +################# + +This reference manual details functions, modules, and objects +included in Xarray, describing what they are and what they do. + + +.. toctree:: + :maxdepth: 1 + + api + howdoi + related-projects diff --git a/doc/related-projects.rst b/doc/reference-guide/related-projects.rst similarity index 100% rename from doc/related-projects.rst rename to doc/reference-guide/related-projects.rst diff --git a/doc/combining.rst b/doc/user-guide/combining.rst similarity index 100% rename from doc/combining.rst rename to doc/user-guide/combining.rst diff --git a/doc/computation.rst b/doc/user-guide/computation.rst similarity index 99% rename from doc/computation.rst rename to doc/user-guide/computation.rst index dcfe270a942..a7f5d42c1b6 100644 --- a/doc/computation.rst +++ b/doc/user-guide/computation.rst @@ -2,9 +2,8 @@ .. _comput: -########### Computation -########### +----------- The labels associated with :py:class:`~xarray.DataArray` and :py:class:`~xarray.Dataset` objects enables some powerful shortcuts for diff --git a/doc/dask.rst b/doc/user-guide/dask.rst similarity index 99% rename from doc/dask.rst rename to doc/user-guide/dask.rst index 4844967350b..6ea1c709ed8 100644 --- a/doc/dask.rst +++ b/doc/user-guide/dask.rst @@ -1,9 +1,8 @@ .. currentmodule:: xarray - .. _dask: Parallel computing with Dask -============================ +----------------------------- xarray integrates with `Dask `__ to support parallel computations and streaming computation on datasets that don't fit into memory. @@ -19,9 +18,9 @@ and at the `Dask examples website `_. .. _blog post introducing xarray and Dask: http://stephanhoyer.com/2015/06/11/xray-dask-out-of-core-labeled-arrays/ What is a Dask array? ---------------------- +===================== -.. image:: _static/dask_array.png +.. image:: ../_static/dask_array.png :width: 40 % :align: right :alt: A Dask array @@ -45,7 +44,7 @@ Note that xarray only makes use of ``dask.array`` and ``dask.delayed``. .. _dask.io: Reading and writing data ------------------------- +======================== The usual way to create a ``Dataset`` filled with Dask arrays is to load the data from a netCDF file or files. You can do this by supplying a ``chunks`` @@ -156,7 +155,7 @@ Dask DataFrames do not support multi-indexes so the coordinate variables from th os.remove("manipulated-example-data.nc") Using Dask with xarray ----------------------- +====================== Nearly all existing xarray methods (including those for indexing, computation, concatenating and grouped operations) have been extended to work automatically @@ -287,7 +286,7 @@ loaded into Dask or not: .. _dask.automatic-parallelization: Automatic parallelization with ``apply_ufunc`` and ``map_blocks`` ------------------------------------------------------------------ +================================================================= Almost all of xarray's built-in operations work on Dask arrays. If you want to use a function that isn't wrapped by xarray, and have it applied in parallel on @@ -512,7 +511,7 @@ Notice that the 0-shaped sizes were not printed to screen. Since ``template`` ha Chunking and performance ------------------------- +======================== The ``chunks`` parameter has critical performance implications when using Dask arrays. If your chunks are too small, queueing up operations will be extremely @@ -535,7 +534,7 @@ larger chunksizes. Optimization Tips ------------------ +================= With analysis pipelines involving both spatial subsetting and temporal resampling, Dask performance can become very slow in certain cases. Here are some optimization tips we have found through experience: diff --git a/doc/data-structures.rst b/doc/user-guide/data-structures.rst similarity index 99% rename from doc/data-structures.rst rename to doc/user-guide/data-structures.rst index ac78e1769d5..1d231cbb4af 100644 --- a/doc/data-structures.rst +++ b/doc/user-guide/data-structures.rst @@ -1,7 +1,7 @@ .. _data structures: Data Structures -=============== +--------------- .. ipython:: python :suppress: @@ -14,7 +14,7 @@ Data Structures np.set_printoptions(threshold=10) DataArray ---------- +========= :py:class:`xarray.DataArray` is xarray's implementation of a labeled, multi-dimensional array. It has several key properties: @@ -219,7 +219,7 @@ Coordinates can also be set or removed by using the dictionary like syntax: For more details, see :ref:`coordinates` below. Dataset -------- +======= :py:class:`xarray.Dataset` is xarray's multi-dimensional equivalent of a :py:class:`~pandas.DataFrame`. It is a dict-like @@ -251,7 +251,7 @@ quantities that belong in data. Here is an example of how we might structure a dataset for a weather forecast: -.. image:: _static/dataset-diagram.png +.. image:: ../_static/dataset-diagram.png In this example, it would be natural to call ``temperature`` and ``precipitation`` "data variables" and all the other arrays "coordinate @@ -483,7 +483,7 @@ dimension and non-dimension variables: .. _coordinates: Coordinates ------------ +=========== Coordinates are ancillary variables stored for ``DataArray`` and ``Dataset`` objects in the ``coords`` attribute: diff --git a/doc/duckarrays.rst b/doc/user-guide/duckarrays.rst similarity index 97% rename from doc/duckarrays.rst rename to doc/user-guide/duckarrays.rst index ba13d5160ae..9fa399b2814 100644 --- a/doc/duckarrays.rst +++ b/doc/user-guide/duckarrays.rst @@ -1,7 +1,7 @@ .. currentmodule:: xarray Working with numpy-like arrays -============================== +------------------------------ .. warning:: @@ -20,7 +20,7 @@ long as they satisfy certain conditions (see :ref:`internals.duck_arrays`). Missing features ----------------- +================ Most of the API does support :term:`duck array` objects, but there are a few areas where the code will still cast to ``numpy`` arrays: @@ -58,7 +58,7 @@ the code will still cast to ``numpy`` arrays: Extensions using duck arrays ----------------------------- +============================ Here's a list of libraries extending ``xarray`` to make working with wrapped duck arrays easier: diff --git a/doc/groupby.rst b/doc/user-guide/groupby.rst similarity index 99% rename from doc/groupby.rst rename to doc/user-guide/groupby.rst index d0c0b1849f9..5c47ebdef63 100644 --- a/doc/groupby.rst +++ b/doc/user-guide/groupby.rst @@ -1,5 +1,3 @@ -.. _groupby: - GroupBy: split-apply-combine ---------------------------- diff --git a/doc/user-guide/index.rst b/doc/user-guide/index.rst new file mode 100644 index 00000000000..ebbce00c18c --- /dev/null +++ b/doc/user-guide/index.rst @@ -0,0 +1,24 @@ +########### +User Guide +########### + +This guide is an overview and explains the important features. + +.. toctree:: + :maxdepth: 1 + + terminology + data-structures + indexing + interpolation + computation + groupby + reshaping + combining + time-series + weather-climate + pandas + io + dask + plotting + duckarrays diff --git a/doc/indexing.rst b/doc/user-guide/indexing.rst similarity index 98% rename from doc/indexing.rst rename to doc/user-guide/indexing.rst index 78766b8fd81..d5aba0cb999 100644 --- a/doc/indexing.rst +++ b/doc/user-guide/indexing.rst @@ -1,7 +1,6 @@ -.. _indexing: Indexing and selecting data -=========================== +--------------------------- .. ipython:: python :suppress: @@ -53,7 +52,7 @@ See :ref:`vectorized_indexing` for the details. Positional indexing -------------------- +=================== Indexing a :py:class:`~xarray.DataArray` directly works (mostly) just like it does for numpy arrays, except that the returned object is always another @@ -108,7 +107,7 @@ Setting values with label based indexing is also supported: Indexing with dimension names ------------------------------ +============================= With the dimension names, we do not have to rely on dimension order and can use them explicitly to slice data. There are two ways to do this: @@ -151,7 +150,7 @@ __ http://legacy.python.org/dev/peps/pep-0472/ .. _nearest neighbor lookups: Nearest neighbor lookups ------------------------- +======================== The label based selection methods :py:meth:`~xarray.Dataset.sel`, :py:meth:`~xarray.Dataset.reindex` and :py:meth:`~xarray.Dataset.reindex_like` all @@ -207,7 +206,7 @@ Indexing axes with monotonic decreasing labels also works, as long as the Dataset indexing ----------------- +================ We can also use these methods to index all variables in a dataset simultaneously, returning a new dataset: @@ -238,7 +237,7 @@ Using indexing to *assign* values to a subset of dataset (e.g., ``ds[dict(space=0)] = 1``) is not yet supported. Dropping labels and dimensions ------------------------------- +============================== The :py:meth:`~xarray.Dataset.drop_sel` method returns a new object with the listed index labels along a dimension dropped: @@ -259,7 +258,7 @@ Any variables with these dimensions are also dropped: .. _masking with where: Masking with ``where`` ----------------------- +====================== Indexing methods on xarray objects generally return a subset of the original data. However, it is sometimes useful to select an object with the same shape as the @@ -293,7 +292,7 @@ elements that are fully masked: .. _selecting values with isin: Selecting values with ``isin`` ------------------------------- +=============================== To check whether elements of an xarray object contain a single object, you can compare with the equality operator ``==`` (e.g., ``arr == 3``). To check @@ -319,7 +318,7 @@ is significantly slower than using :py:meth:`~xarray.DataArray.sel`. .. _vectorized_indexing: Vectorized Indexing -------------------- +==================== Like numpy and pandas, xarray supports indexing many array elements at once in a `vectorized` manner. @@ -413,7 +412,7 @@ These methods may also be applied to ``Dataset`` objects .. _assigning_values: Assigning values with indexing ------------------------------- +============================== To select and assign values to a portion of a :py:meth:`~xarray.DataArray` you can use indexing with ``.loc`` : @@ -524,7 +523,7 @@ __ https://docs.scipy.org/doc/numpy/user/basics.indexing.html#assigning-values-t .. _more_advanced_indexing: More advanced indexing ------------------------ +====================== The use of :py:meth:`~xarray.DataArray` objects as indexers enables very flexible indexing. The following is an example of the pointwise indexing: @@ -569,7 +568,7 @@ method: .. _align and reindex: Align and reindex ------------------ +================= xarray's ``reindex``, ``reindex_like`` and ``align`` impose a ``DataArray`` or ``Dataset`` onto a new set of coordinates corresponding to dimensions. The @@ -632,7 +631,7 @@ Both ``reindex_like`` and ``align`` work interchangeably between .. _indexing.missing_coordinates: Missing coordinate labels -------------------------- +========================= Coordinate labels for each dimension are optional (as of xarray v0.9). Label based indexing with ``.sel`` and ``.loc`` uses standard positional, @@ -654,7 +653,7 @@ Otherwise, it raises an informative error: ValueError: arguments without labels along dimension 'x' cannot be aligned because they have different dimension sizes: {2, 3} Underlying Indexes ------------------- +================== xarray uses the :py:class:`pandas.Index` internally to perform indexing operations. If you need to access the underlying indexes, they are available @@ -687,7 +686,7 @@ labels: .. _copies_vs_views: Copies vs. Views ----------------- +================ Whether array indexing returns a view or a copy of the underlying data depends on the nature of the labels. @@ -716,7 +715,7 @@ should still avoid assignment with chained indexing. .. _multi-level indexing: Multi-level indexing --------------------- +==================== Just like pandas, advanced indexing on multi-level indexes is possible with ``loc`` and ``sel``. You can slice a multi-index by providing multiple indexers, @@ -774,7 +773,7 @@ above, ``mda.loc[{'one': 'a', 'two': 0}, :]`` or ``mda.loc[('a', 0), ...]``. .. _indexing.rules: Indexing rules --------------- +============== Here we describe the full rules xarray uses for vectorized indexing. Note that this is for the purposes of explanation: for the sake of efficiency and to diff --git a/doc/interpolation.rst b/doc/user-guide/interpolation.rst similarity index 97% rename from doc/interpolation.rst rename to doc/user-guide/interpolation.rst index 9a3b7a7ee2d..8deee664f62 100644 --- a/doc/interpolation.rst +++ b/doc/user-guide/interpolation.rst @@ -1,7 +1,7 @@ .. _interp: Interpolating data -================== +------------------- .. ipython:: python :suppress: @@ -21,7 +21,7 @@ to our :ref:`indexing `. Scalar and 1-dimensional interpolation --------------------------------------- +======================================= Interpolating a :py:class:`~xarray.DataArray` works mostly like labeled indexing of a :py:class:`~xarray.DataArray`, @@ -78,7 +78,7 @@ allowed. See :ref:`CFTimeIndex` for examples. Multi-dimensional Interpolation -------------------------------- +================================ Like :py:meth:`~xarray.DataArray.sel`, :py:meth:`~xarray.DataArray.interp` accepts multiple coordinates. In this case, multidimensional interpolation @@ -130,7 +130,7 @@ It is now possible to safely compute the difference ``other - interpolated``. Interpolation methods ---------------------- +===================== We use :py:class:`scipy.interpolate.interp1d` for 1-dimensional interpolation and :py:func:`scipy.interpolate.interpn` for multi-dimensional interpolation. @@ -169,7 +169,7 @@ Additional keyword arguments can be passed to scipy's functions. Advanced Interpolation ----------------------- +====================== :py:meth:`~xarray.DataArray.interp` accepts :py:class:`~xarray.DataArray` as similar to :py:meth:`~xarray.DataArray.sel`, which enables us more advanced interpolation. @@ -179,7 +179,7 @@ For example, if you want to interpolate a two dimensional array along a particul you can pass two 1-dimensional :py:class:`~xarray.DataArray` s with a common dimension as new coordinate. -.. image:: _static/advanced_selection_interpolation.svg +.. image:: ../_static/advanced_selection_interpolation.svg :height: 200px :width: 400 px :alt: advanced indexing and interpolation @@ -221,7 +221,7 @@ see :ref:`more advanced indexing `. Interpolating arrays with NaN ------------------------------ +============================= Our :py:meth:`~xarray.DataArray.interp` works with arrays with NaN the same way that @@ -268,7 +268,7 @@ see :ref:`Missing values `. Example -------- +======= Let's see how :py:meth:`~xarray.DataArray.interp` works on real data. diff --git a/doc/io.rst b/doc/user-guide/io.rst similarity index 99% rename from doc/io.rst rename to doc/user-guide/io.rst index 2e46879929b..902ac114a4b 100644 --- a/doc/io.rst +++ b/doc/user-guide/io.rst @@ -1,8 +1,7 @@ .. currentmodule:: xarray -.. _io: Reading and writing files -========================= +------------------------- xarray supports direct serialization and IO to several file formats, from simple :ref:`io.pickle` files to the more flexible :ref:`io.netcdf` @@ -20,7 +19,7 @@ format (recommended). .. _io.netcdf: netCDF ------- +====== The recommended way to store xarray data structures is `netCDF`__, which is a binary file format for self-described datasets that originated @@ -501,7 +500,7 @@ and currently raises a warning unless ``invalid_netcdf=True`` is set: .. _io.iris: Iris ----- +==== The Iris_ tool allows easy reading of common meteorological and climate model formats (including GRIB and UK MetOffice PP files) into ``Cube`` objects which are in many ways very @@ -533,7 +532,7 @@ Conversely, we can create a new ``DataArray`` object from a ``Cube`` using OPeNDAP -------- +======= xarray includes support for `OPeNDAP`__ (via the netCDF4 library or Pydap), which lets us access large datasets over HTTP. @@ -555,7 +554,7 @@ __ http://iri.columbia.edu/ tmax = remote_data.tmax[:500, ::3, ::3] tmax - @savefig opendap-prism-tmax.png + @savefig ../_static/opendap-prism-tmax.png tmax[0].plot() .. ipython:: @@ -621,7 +620,7 @@ over the network until we look at particular values: # the data is downloaded automatically when we make the plot In [6]: tmax[0].plot() -.. image:: _static/opendap-prism-tmax.png +.. image:: ../_static/opendap-prism-tmax.png Some servers require authentication before we can access the data. For this purpose we can explicitly create a :py:class:`backends.PydapDataStore` @@ -658,7 +657,7 @@ __ http://pydap.readthedocs.io/en/latest/client.html#authentication .. _io.pickle: Pickle ------- +====== The simplest way to serialize an xarray object is to use Python's built-in pickle module: @@ -693,7 +692,7 @@ this version of xarray will work in future versions. .. _dictionary io: Dictionary ----------- +========== We can convert a ``Dataset`` (or a ``DataArray``) to a dict using :py:meth:`Dataset.to_dict`: @@ -736,7 +735,7 @@ search indices or other automated data discovery tools. .. _io.rasterio: Rasterio --------- +======== GeoTIFFs and other gridded raster datasets can be opened using `rasterio`_, if rasterio is installed. Here is an example of how to use @@ -826,7 +825,7 @@ GDAL readable raster data using `rasterio`_ as well as for exporting to a geoTIF .. _io.zarr: Zarr ----- +==== `Zarr`_ is a Python package that provides an implementation of chunked, compressed, N-dimensional arrays. @@ -1076,7 +1075,7 @@ with ``mode='a'``. shutil.rmtree("path/to/directory.zarr") GRIB format via cfgrib ----------------------- +====================== xarray supports reading GRIB files via ECMWF cfgrib_ python driver, if it is installed. To open a GRIB file supply ``engine='cfgrib'`` @@ -1096,7 +1095,7 @@ We recommend installing cfgrib via conda:: .. _io.pynio: Formats supported by PyNIO --------------------------- +=========================== xarray can also read GRIB, HDF4 and other file formats supported by PyNIO_, if PyNIO is installed. To use PyNIO to read such files, supply @@ -1116,7 +1115,7 @@ We recommend installing PyNIO via conda:: .. _io.PseudoNetCDF: Formats supported by PseudoNetCDF ---------------------------------- +================================= xarray can also read CAMx, BPCH, ARL PACKED BIT, and many other file formats supported by PseudoNetCDF_, if PseudoNetCDF is installed. @@ -1136,7 +1135,7 @@ options are listed on the PseudoNetCDF page. CSV and other formats supported by Pandas ------------------------------------------ +========================================= For more options (tabular formats and CSV files in particular), consider exporting your objects to pandas and using its broad range of `IO tools`_. @@ -1148,7 +1147,7 @@ For CSV files, one might also consider `xarray_extras`_. Third party libraries ---------------------- +===================== More formats are supported by extension libraries: diff --git a/doc/pandas.rst b/doc/user-guide/pandas.rst similarity index 99% rename from doc/pandas.rst rename to doc/user-guide/pandas.rst index acf1d16b6ee..a4f8c37d5df 100644 --- a/doc/pandas.rst +++ b/doc/user-guide/pandas.rst @@ -1,9 +1,8 @@ .. currentmodule:: xarray .. _pandas: -=================== Working with pandas -=================== +------------------- One of the most important features of xarray is the ability to convert to and from :py:mod:`pandas` objects to interact with the rest of the PyData diff --git a/doc/plotting.rst b/doc/user-guide/plotting.rst similarity index 99% rename from doc/plotting.rst rename to doc/user-guide/plotting.rst index 3699f794ae8..43d5880ab9b 100644 --- a/doc/plotting.rst +++ b/doc/user-guide/plotting.rst @@ -2,10 +2,10 @@ .. _plotting: Plotting -======== +-------- Introduction ------------- +============ Labeled data enables expressive computations. These same labels can also be used to easily create informative plots. @@ -49,7 +49,7 @@ For more extensive plotting applications consider the following projects: tools. Imports -~~~~~~~ +======= .. ipython:: python :suppress: @@ -87,7 +87,7 @@ For these examples we'll use the North American air temperature dataset. DataArrays ----------- +========== One Dimension ~~~~~~~~~~~~~ @@ -704,7 +704,7 @@ TODO: add an example of using the ``map`` method to plot dataset variables .. _plot-dataset: Datasets --------- +======== ``xarray`` has limited support for plotting Dataset variables against each other. Consider this dataset @@ -766,7 +766,7 @@ For more advanced scatter plots, we recommend converting the relevant data varia .. _plot-maps: Maps ----- +==== To follow this section you'll need to have Cartopy installed and working. @@ -808,7 +808,7 @@ by faceting are accessible in the object returned by ``plot``: Details -------- +======= Ways to Use ~~~~~~~~~~~ diff --git a/doc/reshaping.rst b/doc/user-guide/reshaping.rst similarity index 97% rename from doc/reshaping.rst rename to doc/user-guide/reshaping.rst index 81fd4a6d35e..1a4b08e2b35 100644 --- a/doc/reshaping.rst +++ b/doc/user-guide/reshaping.rst @@ -1,8 +1,6 @@ -.. _reshape: -############################### Reshaping and reorganizing data -############################### +------------------------------- These methods allow you to reorganize @@ -16,7 +14,7 @@ These methods allow you to reorganize np.random.seed(123456) Reordering dimensions ---------------------- +===================== To reorder dimensions on a :py:class:`~xarray.DataArray` or across all variables on a :py:class:`~xarray.Dataset`, use :py:meth:`~xarray.DataArray.transpose`. An @@ -30,7 +28,7 @@ ellipsis (`...`) can be use to represent all other dimensions: ds.transpose() # reverses all dimensions Expand and squeeze dimensions ------------------------------ +============================= To expand a :py:class:`~xarray.DataArray` or all variables on a :py:class:`~xarray.Dataset` along a new dimension, @@ -52,7 +50,7 @@ use :py:meth:`~xarray.DataArray.squeeze` expanded.squeeze("w") Converting between datasets and arrays --------------------------------------- +====================================== To convert from a Dataset to a DataArray, use :py:meth:`~xarray.Dataset.to_array`: @@ -96,7 +94,7 @@ If you use ``to_dataset`` without supplying the ``dim`` argument, the DataArray .. _reshape.stack: Stack and unstack ------------------ +================= As part of xarray's nascent support for :py:class:`pandas.MultiIndex`, we have implemented :py:meth:`~xarray.DataArray.stack` and @@ -192,7 +190,7 @@ numerical method. .. _reshape.set_index: Set and reset index -------------------- +=================== Complementary to stack / unstack, xarray's ``.set_index``, ``.reset_index`` and ``.reorder_levels`` allow easy manipulation of ``DataArray`` or ``Dataset`` @@ -252,7 +250,7 @@ labels for one or several dimensions: .. _reshape.shift_and_roll: Shift and roll --------------- +=============== To adjust coordinate labels, you can use the :py:meth:`~xarray.Dataset.shift` and :py:meth:`~xarray.Dataset.roll` methods: @@ -266,7 +264,7 @@ To adjust coordinate labels, you can use the :py:meth:`~xarray.Dataset.shift` an .. _reshape.sort: Sort ----- +==== One may sort a DataArray/Dataset via :py:meth:`~xarray.DataArray.sortby` and :py:meth:`~xarray.DataArray.sortby`. The input can be an individual or list of diff --git a/doc/terminology.rst b/doc/user-guide/terminology.rst similarity index 98% rename from doc/terminology.rst rename to doc/user-guide/terminology.rst index 3cfc211593f..3fa944af32d 100644 --- a/doc/terminology.rst +++ b/doc/user-guide/terminology.rst @@ -2,7 +2,7 @@ .. _terminology: Terminology -=========== +----------- *Xarray terminology differs slightly from CF, mathematical conventions, and pandas; so we've put together a glossary of its terms. Here,* ``arr`` * @@ -79,7 +79,7 @@ complete examples, please consult the relevant documentation.* example, multidimensional coordinates are often used in geoscience datasets when :doc:`the data's physical coordinates (such as latitude and longitude) differ from their logical coordinates - `. However, non-dimension coordinates + <../examples/multidimensional-coords>`. However, non-dimension coordinates are not indexed, and any operation on non-dimension coordinates that leverages indexing will fail. Printing ``arr.coords`` will print all of ``arr``'s coordinate names, with the corresponding dimension(s) in diff --git a/doc/time-series.rst b/doc/user-guide/time-series.rst similarity index 98% rename from doc/time-series.rst rename to doc/user-guide/time-series.rst index 96a2edc0ea5..57fb2d80738 100644 --- a/doc/time-series.rst +++ b/doc/user-guide/time-series.rst @@ -1,8 +1,7 @@ .. _time-series: -================ Time series data -================ +----------------- A major use case for xarray is multi-dimensional time-series data. Accordingly, we've copied many of features that make working with time-series @@ -19,7 +18,7 @@ core functionality. np.random.seed(123456) Creating datetime64 data ------------------------- +======================== xarray uses the numpy dtypes ``datetime64[ns]`` and ``timedelta64[ns]`` to represent datetime data, which offer vectorized (if sometimes buggy) operations @@ -79,7 +78,7 @@ packaged with earlier versions ``netCDF4``). See :ref:`CFTimeIndex` for more information. Datetime indexing ------------------ +================= xarray borrows powerful indexing machinery from pandas (see :ref:`indexing`). @@ -106,7 +105,7 @@ For more details, read the pandas documentation. .. _dt_accessor: Datetime components -------------------- +=================== Similar `to pandas`_, the components of datetime objects contained in a given ``DataArray`` can be quickly computed using a special ``.dt`` accessor. @@ -168,7 +167,7 @@ for arrays utilising the same formatting as the standard `datetime.strftime`_. .. _resampling: Resampling and grouped operations ---------------------------------- +================================= Datetime components couple particularly well with grouped operations (see :ref:`groupby`) for analyzing features that repeat over time. Here's how to @@ -224,4 +223,4 @@ Data that has indices outside of the given ``tolerance`` are set to ``NaN``. For more examples of using grouped operations on a time dimension, see -:doc:`examples/weather-data`. +:doc:`../examples/weather-data`. diff --git a/doc/weather-climate.rst b/doc/user-guide/weather-climate.rst similarity index 98% rename from doc/weather-climate.rst rename to doc/user-guide/weather-climate.rst index db612d74859..afa0ab45ccd 100644 --- a/doc/weather-climate.rst +++ b/doc/user-guide/weather-climate.rst @@ -1,7 +1,6 @@ -.. _weather-climate: Weather and climate data -======================== +------------------------ .. ipython:: python :suppress: @@ -15,7 +14,7 @@ Weather and climate data .. _metpy_accessor: CF-compliant coordinate variables ---------------------------------- +================================= `MetPy`_ adds a ``metpy`` accessor that allows accessing coordinates with appropriate CF metadata using generic names ``x``, ``y``, ``vertical`` and ``time``. There is also a `cartopy_crs` attribute that provides projection information, parsed from the appropriate CF metadata, as a `Cartopy`_ projection object. See `their documentation`_ for more information. @@ -26,7 +25,7 @@ CF-compliant coordinate variables .. _CFTimeIndex: Non-standard calendars and dates outside the Timestamp-valid range ------------------------------------------------------------------- +================================================================== Through the standalone ``cftime`` library and a custom subclass of :py:class:`pandas.Index`, xarray supports a subset of the indexing diff --git a/doc/whats-new.rst b/doc/whats-new.rst index 16b0cbf4ea1..4e271337e91 100644 --- a/doc/whats-new.rst +++ b/doc/whats-new.rst @@ -1,7 +1,7 @@ .. currentmodule:: xarray What's New -========== +----------- .. ipython:: python :suppress: @@ -18,7 +18,7 @@ What's New .. _whats-new.0.16.3: v0.16.3 (unreleased) --------------------- +===================== Breaking changes ~~~~~~~~~~~~~~~~ @@ -115,7 +115,7 @@ Internal Changes .. _whats-new.0.16.2: v0.16.2 (30 Nov 2020) ---------------------- +===================== This release brings the ability to write to limited regions of ``zarr`` files, open zarr files with :py:func:`open_dataset` and :py:func:`open_mfdataset`, increased support for propagating ``attrs`` using the ``keep_attrs`` flag, as well as numerous bugfixes and documentation improvements. @@ -246,7 +246,7 @@ Internal Changes .. _whats-new.0.16.1: v0.16.1 (2020-09-20) ---------------------- +==================== This patch release fixes an incompatibility with a recent pandas change, which was causing an issue indexing with a ``datetime64``. It also includes @@ -299,7 +299,7 @@ New Features By `Aaron Spring `_. - Use a wrapped array's ``_repr_inline_`` method to construct the collapsed ``repr`` of :py:class:`DataArray` and :py:class:`Dataset` objects and - document the new method in :doc:`internals`. (:pull:`4248`). + document the new method in :doc:`dev-guide/internals`. (:pull:`4248`). By `Justus Magin `_. - Allow per-variable fill values in most functions. (:pull:`4237`). By `Justus Magin `_. @@ -393,7 +393,7 @@ Internal Changes .. _whats-new.0.16.0: v0.16.0 (2020-07-11) ---------------------- +==================== This release adds `xarray.cov` & `xarray.corr` for covariance & correlation respectively; the `idxmax` & `idxmin` methods, the `polyfit` method & @@ -588,7 +588,7 @@ Documentation parameter as required. (:issue:`1040`, :pull:`3909`) By `Justus Magin `_. - Updated :doc:`Calculating Seasonal Averages from Timeseries of Monthly Means - ` example notebook to take advantage of the new + <../examples/monthly-means>` example notebook to take advantage of the new ``days_in_month`` accessor for :py:class:`xarray.CFTimeIndex` (:pull:`3935`). By `Spencer Clark `_. - Updated the list of current core developers. (:issue:`3892`) @@ -628,7 +628,7 @@ Internal Changes .. _whats-new.0.15.1: v0.15.1 (23 Mar 2020) ---------------------- +===================== This release brings many new features such as :py:meth:`Dataset.weighted` methods for weighted array reductions, a new jupyter repr by default, and the start of units integration with pint. There's also @@ -764,7 +764,7 @@ Internal Changes v0.15.0 (30 Jan 2020) ---------------------- +====================== This release brings many improvements to xarray's documentation: our examples are now binderized notebooks (`click here `_) and we have new example notebooks from our SciPy 2019 sprint (many thanks to our contributors!). @@ -886,17 +886,17 @@ Documentation - Switch doc examples to use `nbsphinx `_ and replace ``sphinx_gallery`` scripts with Jupyter notebooks. (:pull:`3105`, :pull:`3106`, :pull:`3121`) By `Ryan Abernathey `_. -- Added :doc:`example notebook ` demonstrating use of xarray with +- Added :doc:`example notebook <../examples/ROMS_ocean_model>` demonstrating use of xarray with Regional Ocean Modeling System (ROMS) ocean hydrodynamic model output. (:pull:`3116`) By `Robert Hetland `_. -- Added :doc:`example notebook ` demonstrating the visualization of +- Added :doc:`example notebook <../examples/ERA5-GRIB-example>` demonstrating the visualization of ERA5 GRIB data. (:pull:`3199`) By `Zach Bruick `_ and `Stephan Siemen `_. - Added examples for :py:meth:`DataArray.quantile`, :py:meth:`Dataset.quantile` and ``GroupBy.quantile``. (:pull:`3576`) By `Justus Magin `_. -- Add new :doc:`example notebook ` example notebook demonstrating +- Add new :doc:`example notebook <../examples/apply_ufunc_vectorize_1d>` example notebook demonstrating vectorization of a 1D function using :py:func:`apply_ufunc` , dask and numba. By `Deepak Cherian `_. - Added example for :py:func:`~xarray.map_blocks`. (:pull:`3667`) @@ -924,7 +924,7 @@ Internal Changes .. _whats-new.0.14.1: v0.14.1 (19 Nov 2019) ---------------------- +===================== Breaking changes ~~~~~~~~~~~~~~~~ @@ -1080,7 +1080,7 @@ Internal Changes .. _whats-new.0.14.0: v0.14.0 (14 Oct 2019) ---------------------- +===================== Breaking changes ~~~~~~~~~~~~~~~~ @@ -1187,7 +1187,7 @@ Documentation .. _whats-new.0.13.0: v0.13.0 (17 Sep 2019) ---------------------- +===================== This release includes many exciting changes: wrapping of `NEP18 `_ compliant @@ -1388,7 +1388,7 @@ Documentation .. _whats-new.0.12.3: v0.12.3 (10 July 2019) ----------------------- +====================== New functions/methods ~~~~~~~~~~~~~~~~~~~~~ @@ -1429,7 +1429,7 @@ Bug fixes .. _whats-new.0.12.2: v0.12.2 (29 June 2019) ----------------------- +====================== New functions/methods ~~~~~~~~~~~~~~~~~~~~~ @@ -1581,7 +1581,7 @@ Bug fixes .. _whats-new.0.12.1: v0.12.1 (4 April 2019) ----------------------- +====================== Enhancements ~~~~~~~~~~~~ @@ -1603,7 +1603,7 @@ Bug fixes .. _whats-new.0.12.0: v0.12.0 (15 March 2019) ------------------------ +======================= Highlights include: @@ -1732,7 +1732,7 @@ Bug fixes .. _whats-new.0.11.3: v0.11.3 (26 January 2019) -------------------------- +========================= Bug fixes ~~~~~~~~~ @@ -1749,7 +1749,7 @@ Bug fixes .. _whats-new.0.11.2: v0.11.2 (2 January 2019) ------------------------- +======================== Removes inadvertently introduced setup dependency on pytest-runner (:issue:`2641`). Otherwise, this release is exactly equivalent to 0.11.1. @@ -1767,7 +1767,7 @@ Removes inadvertently introduced setup dependency on pytest-runner .. _whats-new.0.11.1: v0.11.1 (29 December 2018) --------------------------- +========================== This minor release includes a number of enhancements and bug fixes, and two (slightly) breaking changes. @@ -1846,7 +1846,7 @@ Bug fixes .. _whats-new.0.11.0: v0.11.0 (7 November 2018) -------------------------- +========================= Breaking changes ~~~~~~~~~~~~~~~~ @@ -2003,7 +2003,7 @@ Bug fixes .. _whats-new.0.10.9: v0.10.9 (21 September 2018) ---------------------------- +=========================== This minor release contains a number of backwards compatible enhancements. @@ -2117,7 +2117,7 @@ Bug fixes .. _whats-new.0.10.8: v0.10.8 (18 July 2018) ----------------------- +====================== Breaking changes ~~~~~~~~~~~~~~~~ @@ -2171,7 +2171,7 @@ Bug fixes .. _whats-new.0.10.7: v0.10.7 (7 June 2018) ---------------------- +===================== Enhancements ~~~~~~~~~~~~ @@ -2200,7 +2200,7 @@ Bug fixes .. _whats-new.0.10.6: v0.10.6 (31 May 2018) ---------------------- +===================== The minor release includes a number of bug-fixes and backwards compatible enhancements. @@ -2294,7 +2294,7 @@ Bug fixes .. _whats-new.0.10.4: v0.10.4 (16 May 2018) ----------------------- +===================== The minor release includes a number of bug-fixes and backwards compatible enhancements. A highlight is ``CFTimeIndex``, which offers support for @@ -2384,7 +2384,7 @@ Bug fixes .. _whats-new.0.10.3: v0.10.3 (13 April 2018) ------------------------- +======================= The minor release includes a number of bug-fixes and backwards compatible enhancements. @@ -2426,7 +2426,7 @@ Bug fixes .. _whats-new.0.10.2: v0.10.2 (13 March 2018) ------------------------ +======================= The minor release includes a number of bug-fixes and enhancements, along with one possibly **backwards incompatible change**. @@ -2505,7 +2505,7 @@ Bug fixes .. _whats-new.0.10.1: v0.10.1 (25 February 2018) --------------------------- +========================== The minor release includes a number of bug-fixes and backwards compatible enhancements. @@ -2673,7 +2673,7 @@ Bug fixes .. _whats-new.0.10.0: v0.10.0 (20 November 2017) --------------------------- +========================== This is a major release that includes bug fixes, new features and a few backwards incompatible changes. Highlights include: @@ -3074,7 +3074,7 @@ Bug fixes after rc2 .. _whats-new.0.9.6: v0.9.6 (8 June 2017) --------------------- +==================== This release includes a number of backwards compatible enhancements and bug fixes. @@ -3152,14 +3152,14 @@ Testing .. _whats-new.0.9.5: v0.9.5 (17 April, 2017) ------------------------ +======================== Remove an inadvertently introduced print statement. .. _whats-new.0.9.3: v0.9.3 (16 April, 2017) ------------------------ +======================== This minor release includes bug-fixes and backwards compatible enhancements. @@ -3202,7 +3202,7 @@ Bug fixes .. _whats-new.0.9.2: v0.9.2 (2 April 2017) ---------------------- +===================== The minor release includes bug-fixes and backwards compatible enhancements. @@ -3270,7 +3270,7 @@ Bug fixes .. _whats-new.0.9.1: v0.9.1 (30 January 2017) ------------------------- +========================= Renamed the "Unindexed dimensions" section in the ``Dataset`` and ``DataArray`` repr (added in v0.9.0) to "Dimensions without coordinates" @@ -3279,7 +3279,7 @@ Renamed the "Unindexed dimensions" section in the ``Dataset`` and .. _whats-new.0.9.0: v0.9.0 (25 January 2017) ------------------------- +======================== This major release includes five months worth of enhancements and bug fixes from 24 contributors, including some significant changes that are not fully backwards @@ -3573,7 +3573,7 @@ Performance improvements .. _whats-new.0.8.2: v0.8.2 (18 August 2016) ------------------------ +======================= This release includes a number of bug fixes and minor enhancements. @@ -3626,7 +3626,7 @@ Bug fixes .. _whats-new.0.8.1: v0.8.1 (5 August 2016) ----------------------- +====================== Bug fixes ~~~~~~~~~ @@ -3637,7 +3637,7 @@ Bug fixes .. _whats-new.0.8.0: v0.8.0 (2 August 2016) ----------------------- +====================== This release includes four months of new features and bug fixes, including several breaking changes. @@ -3757,7 +3757,7 @@ Bug fixes .. _whats-new.0.7.2: v0.7.2 (13 March 2016) ----------------------- +====================== This release includes two new, entirely backwards compatible features and several bug fixes. @@ -3819,7 +3819,7 @@ Bug fixes .. _whats-new.0.7.1: v0.7.1 (16 February 2016) -------------------------- +========================= This is a bug fix release that includes two small, backwards compatible enhancements. We recommend that all users upgrade. @@ -3867,7 +3867,7 @@ The following individuals contributed to this release: .. _whats-new.0.7.0: v0.7.0 (21 January 2016) ------------------------- +======================== This major release includes redesign of :py:class:`~xarray.DataArray` internals, as well as new methods for reshaping, rolling and shifting @@ -4066,7 +4066,7 @@ The following individuals contributed to this release: - femtotrader v0.6.1 (21 October 2015) ------------------------- +======================== This release contains a number of bug and compatibility fixes, as well as enhancements to plotting, indexing and writing files to disk. @@ -4151,7 +4151,7 @@ The following individuals contributed to this release: - Scott Sinclair v0.6.0 (21 August 2015) ------------------------ +======================= This release includes numerous bug fixes and enhancements. Highlights include the introduction of a plotting module and the new Dataset and DataArray @@ -4261,7 +4261,7 @@ Bug fixes netcdf4_classic formats (:issue:`526`). v0.5.2 (16 July 2015) ---------------------- +===================== This release contains bug fixes, several additional options for opening and saving netCDF files, and a backwards incompatible rewrite of the advanced @@ -4317,7 +4317,7 @@ Bug fixes This allows conventions decoding to work properly on Python 3 (:issue:`451`). v0.5.1 (15 June 2015) ---------------------- +===================== This minor release fixes a few bugs and an inconsistency with pandas. It also adds the ``pipe`` method, copied from pandas. @@ -4342,7 +4342,7 @@ Bug fixes bottleneck installed. v0.5 (1 June 2015) ------------------- +================== Highlights ~~~~~~~~~~ @@ -4352,10 +4352,11 @@ computing (data that doesn't fit into memory) with dask_. This includes a new top-level function ``xray.open_mfdataset`` that makes it easy to open a collection of netCDF (using dask) as a single ``xray.Dataset`` object. For more on dask, read the `blog post introducing xray + dask`_ and the new -documentation section :doc:`dask`. +documentation section :doc:`user-guide/dask`. .. _blog post introducing xray + dask: https://www.anaconda.com/blog/developer-blog/xray-dask-out-core-labeled-arrays-python/ + Dask makes it possible to harness parallelism and manipulate gigantic datasets with xray. It is currently an optional dependency, but it may become required in the future. @@ -4504,7 +4505,7 @@ Deprecations ``xray.Dataset.load``. v0.4.1 (18 March 2015) ----------------------- +====================== The release contains bug fixes and several new features. All changes should be fully backwards compatible. @@ -4589,7 +4590,7 @@ Bug fixes ``ValueError: could not automatically determine time units``. v0.4 (2 March, 2015) --------------------- +==================== This is one of the biggest releases yet for xray: it includes some major changes that may break existing code, along with the usual collection of minor @@ -4770,7 +4771,7 @@ project. For a preview of using Dask with weather data, read .. _this blog post: http://matthewrocklin.com/blog/work/2015/02/13/Towards-OOC-Slicing-and-Stacking/ v0.3.2 (23 December, 2014) --------------------------- +========================== This release focused on bug-fixes, speedups and resolving some niggling inconsistencies. @@ -4870,7 +4871,7 @@ hear them -- please add a note to any of the referenced GitHub issues. .. _CF Conventions: http://cfconventions.org/Data/cf-conventions/cf-conventions-1.6/build/cf-conventions.html v0.3.1 (22 October, 2014) -------------------------- +========================= This is mostly a bug-fix release to make xray compatible with the latest release of pandas (v0.15). @@ -4912,7 +4913,7 @@ Bug fixes - Order of dimensions preserved with ``DataArray.to_dataframe`` (:issue:`260`). v0.3 (21 September 2014) ------------------------- +======================== New features ~~~~~~~~~~~~ @@ -4950,7 +4951,7 @@ Deprecations ``xray.DataArray.reset_coords`` instead. v0.2 (14 August 2014) ---------------------- +===================== This is major release that includes some new features and quite a few bug fixes. Here are the highlights: @@ -4971,7 +4972,7 @@ fixes. Here are the highlights: disk. v0.1.1 (20 May 2014) --------------------- +===================== xray 0.1.1 is a bug-fix release that includes changes that should be almost entirely backwards compatible with v0.1: @@ -4986,6 +4987,6 @@ Special thanks to new contributors Thomas Kluyver, Joe Hamman and Alistair Miles. v0.1 (2 May 2014) ------------------ +================= Initial release. From 42e3c56a588b946ee643e2e5a1722df15f94b325 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Wed, 20 Jan 2021 21:20:43 -0700 Subject: [PATCH 02/51] [skip-ci] Skip CI builds From 4c0b6a294823b924825117fd4b955f462089c836 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Wed, 20 Jan 2021 21:48:37 -0700 Subject: [PATCH 03/51] [skip-ci] Fix spacing for proper table renderring --- doc/whats-new.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/whats-new.rst b/doc/whats-new.rst index 4e271337e91..74dfe76c026 100644 --- a/doc/whats-new.rst +++ b/doc/whats-new.rst @@ -25,6 +25,7 @@ Breaking changes - xarray no longer supports python 3.6 The minimum versions of some other dependencies were changed: + ============ ====== ==== Package Old New ============ ====== ==== From ef4e498449710b64b2e262fb7d373d43d6a05260 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Wed, 20 Jan 2021 22:40:32 -0700 Subject: [PATCH 04/51] Set maxdepth to 2 --- doc/dev-guide/index.rst | 2 +- doc/getting-started-guide/index.rst | 2 +- doc/reference-guide/index.rst | 2 +- doc/user-guide/index.rst | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/dev-guide/index.rst b/doc/dev-guide/index.rst index e54f570df7b..b96f50e0890 100644 --- a/doc/dev-guide/index.rst +++ b/doc/dev-guide/index.rst @@ -4,7 +4,7 @@ Development .. toctree:: - :maxdepth: 1 + :maxdepth: 2 contributing internals diff --git a/doc/getting-started-guide/index.rst b/doc/getting-started-guide/index.rst index f9f6197f057..d22e6d0638c 100644 --- a/doc/getting-started-guide/index.rst +++ b/doc/getting-started-guide/index.rst @@ -6,7 +6,7 @@ This guide provides a quick overview and showcases some example notebooks. .. toctree:: - :maxdepth: 1 + :maxdepth: 2 why-xarray faq diff --git a/doc/reference-guide/index.rst b/doc/reference-guide/index.rst index 225e90a5310..8158b7cacd0 100644 --- a/doc/reference-guide/index.rst +++ b/doc/reference-guide/index.rst @@ -7,7 +7,7 @@ included in Xarray, describing what they are and what they do. .. toctree:: - :maxdepth: 1 + :maxdepth: 2 api howdoi diff --git a/doc/user-guide/index.rst b/doc/user-guide/index.rst index ebbce00c18c..fc1779c1987 100644 --- a/doc/user-guide/index.rst +++ b/doc/user-guide/index.rst @@ -5,7 +5,7 @@ User Guide This guide is an overview and explains the important features. .. toctree:: - :maxdepth: 1 + :maxdepth: 2 terminology data-structures From 8cbf52c50e8fe6bf1ba93ec4864850611ee56b7c Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Wed, 20 Jan 2021 22:40:44 -0700 Subject: [PATCH 05/51] [skip-ci] Skip CI builds From 893d7e0e2a0558067ea5e019e5e39b01b206549c Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Wed, 20 Jan 2021 22:48:14 -0700 Subject: [PATCH 06/51] [skip-ci] Add "edit this page" button --- doc/conf.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/conf.py b/doc/conf.py index db7eafbe829..7027ecc787e 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -107,6 +107,7 @@ "github_user": "pydata", "github_repo": "xarray", "github_version": "master", + "doc_path": "doc", } autodoc_typehints = "none" @@ -246,6 +247,7 @@ html_theme_options = { "github_url": "https://github.com/pydata/xarray", "twitter_url": "https://twitter.com/xarray_dev", + "use_edit_page_button": True, } # Add any paths that contain custom themes here, relative to this directory. From 6cfe8a8b7d3e7623cdf6d5ae6475096f3f8a4747 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Thu, 21 Jan 2021 12:24:28 -0700 Subject: [PATCH 07/51] [skip-ci] Skip CI builds From 7df46e04781b8e75fcffea9b053e6cdaaad952f6 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Wed, 20 Jan 2021 21:15:32 -0700 Subject: [PATCH 08/51] New theme & rearrangement of the docs --- .gitignore | 3 +- ci/requirements/doc.yml | 1 + doc/conf.py | 7 +- doc/{ => dev-guide}/contributing.rst | 2 +- doc/dev-guide/index.rst | 11 ++ doc/{ => dev-guide}/internals.rst | 2 +- doc/{ => dev-guide}/roadmap.rst | 0 doc/{ => getting-started-guide}/examples.rst | 16 +-- doc/{ => getting-started-guide}/faq.rst | 0 doc/getting-started-guide/index.rst | 15 +++ .../installing.rst | 2 +- .../quick-overview.rst | 0 .../why-xarray.rst | 0 doc/index.rst | 81 +----------- doc/{ => reference-guide}/api-hidden.rst | 0 doc/{ => reference-guide}/api.rst | 0 doc/{ => reference-guide}/howdoi.rst | 0 doc/reference-guide/index.rst | 14 +++ .../related-projects.rst | 0 doc/{ => user-guide}/combining.rst | 0 doc/{ => user-guide}/computation.rst | 3 +- doc/{ => user-guide}/dask.rst | 17 ++- doc/{ => user-guide}/data-structures.rst | 10 +- doc/{ => user-guide}/duckarrays.rst | 6 +- doc/{ => user-guide}/groupby.rst | 2 - doc/user-guide/index.rst | 24 ++++ doc/{ => user-guide}/indexing.rst | 35 +++--- doc/{ => user-guide}/interpolation.rst | 16 +-- doc/{ => user-guide}/io.rst | 31 +++-- doc/{ => user-guide}/pandas.rst | 3 +- doc/{ => user-guide}/plotting.rst | 14 +-- doc/{ => user-guide}/reshaping.rst | 18 ++- doc/{ => user-guide}/terminology.rst | 4 +- doc/{ => user-guide}/time-series.rst | 13 +- doc/{ => user-guide}/weather-climate.rst | 7 +- doc/whats-new.rst | 117 +++++++++--------- 36 files changed, 231 insertions(+), 243 deletions(-) rename doc/{ => dev-guide}/contributing.rst (99%) create mode 100644 doc/dev-guide/index.rst rename doc/{ => dev-guide}/internals.rst (99%) rename doc/{ => dev-guide}/roadmap.rst (100%) rename doc/{ => getting-started-guide}/examples.rst (61%) rename doc/{ => getting-started-guide}/faq.rst (100%) create mode 100644 doc/getting-started-guide/index.rst rename doc/{ => getting-started-guide}/installing.rst (99%) rename doc/{ => getting-started-guide}/quick-overview.rst (100%) rename doc/{ => getting-started-guide}/why-xarray.rst (100%) rename doc/{ => reference-guide}/api-hidden.rst (100%) rename doc/{ => reference-guide}/api.rst (100%) rename doc/{ => reference-guide}/howdoi.rst (100%) create mode 100644 doc/reference-guide/index.rst rename doc/{ => reference-guide}/related-projects.rst (100%) rename doc/{ => user-guide}/combining.rst (100%) rename doc/{ => user-guide}/computation.rst (99%) rename doc/{ => user-guide}/dask.rst (99%) rename doc/{ => user-guide}/data-structures.rst (99%) rename doc/{ => user-guide}/duckarrays.rst (97%) rename doc/{ => user-guide}/groupby.rst (99%) create mode 100644 doc/user-guide/index.rst rename doc/{ => user-guide}/indexing.rst (98%) rename doc/{ => user-guide}/interpolation.rst (97%) rename doc/{ => user-guide}/io.rst (99%) rename doc/{ => user-guide}/pandas.rst (99%) rename doc/{ => user-guide}/plotting.rst (99%) rename doc/{ => user-guide}/reshaping.rst (97%) rename doc/{ => user-guide}/terminology.rst (98%) rename doc/{ => user-guide}/time-series.rst (98%) rename doc/{ => user-guide}/weather-climate.rst (98%) diff --git a/.gitignore b/.gitignore index 5f02700de37..90f4a10ed5f 100644 --- a/.gitignore +++ b/.gitignore @@ -65,10 +65,11 @@ dask-worker-space/ # xarray specific doc/_build -doc/generated +generated/ xarray/tests/data/*.grib.*.idx # Sync tools Icon* .ipynb_checkpoints +doc/rasm.zarr diff --git a/ci/requirements/doc.yml b/ci/requirements/doc.yml index e092272654b..39ff676493c 100644 --- a/ci/requirements/doc.yml +++ b/ci/requirements/doc.yml @@ -20,6 +20,7 @@ dependencies: - numba - numpy>=1.17 - pandas>=1.0 + - pydata-sphinx-theme - rasterio>=1.1 - seaborn - setuptools diff --git a/doc/conf.py b/doc/conf.py index d83e966f3fa..db7eafbe829 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -238,12 +238,15 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = "sphinx_rtd_theme" +html_theme = "pydata_sphinx_theme" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -html_theme_options = {"logo_only": True} +html_theme_options = { + "github_url": "https://github.com/pydata/xarray", + "twitter_url": "https://twitter.com/xarray_dev", +} # Add any paths that contain custom themes here, relative to this directory. # html_theme_path = [] diff --git a/doc/contributing.rst b/doc/dev-guide/contributing.rst similarity index 99% rename from doc/contributing.rst rename to doc/dev-guide/contributing.rst index 439791cbbd6..1514aa91a28 100644 --- a/doc/contributing.rst +++ b/doc/dev-guide/contributing.rst @@ -399,7 +399,7 @@ A pull-request will be considered for merging when you have an all 'green' build tests are failing, then you will get a red 'X', where you can click through to see the individual failed tests. This is an example of a green build. -.. image:: _static/ci.png +.. image:: ../_static/ci.png .. note:: diff --git a/doc/dev-guide/index.rst b/doc/dev-guide/index.rst new file mode 100644 index 00000000000..e54f570df7b --- /dev/null +++ b/doc/dev-guide/index.rst @@ -0,0 +1,11 @@ +############ +Development +############ + + +.. toctree:: + :maxdepth: 1 + + contributing + internals + roadmap diff --git a/doc/internals.rst b/doc/dev-guide/internals.rst similarity index 99% rename from doc/internals.rst rename to doc/dev-guide/internals.rst index 60d32128c60..d119125570a 100644 --- a/doc/internals.rst +++ b/doc/dev-guide/internals.rst @@ -114,7 +114,7 @@ To resolve this issue for more complex cases, xarray has the write a custom "geo" accessor implementing a geography specific extension to xarray: -.. literalinclude:: examples/_code/accessor_example.py +.. literalinclude:: ../examples/_code/accessor_example.py In general, the only restriction on the accessor class is that the ``__init__`` method must have a single parameter: the ``Dataset`` or ``DataArray`` object it is supposed diff --git a/doc/roadmap.rst b/doc/dev-guide/roadmap.rst similarity index 100% rename from doc/roadmap.rst rename to doc/dev-guide/roadmap.rst diff --git a/doc/examples.rst b/doc/getting-started-guide/examples.rst similarity index 61% rename from doc/examples.rst rename to doc/getting-started-guide/examples.rst index 102138b6e4e..8bced32bd5e 100644 --- a/doc/examples.rst +++ b/doc/getting-started-guide/examples.rst @@ -4,20 +4,20 @@ Examples .. toctree:: :maxdepth: 1 - examples/weather-data - examples/monthly-means - examples/area_weighted_temperature - examples/multidimensional-coords - examples/visualization_gallery - examples/ROMS_ocean_model - examples/ERA5-GRIB-example + ../examples/weather-data + ../examples/monthly-means + ../examples/area_weighted_temperature + ../examples/multidimensional-coords + ../examples/visualization_gallery + ../examples/ROMS_ocean_model + ../examples/ERA5-GRIB-example Using apply_ufunc ------------------ .. toctree:: :maxdepth: 1 - examples/apply_ufunc_vectorize_1d + ../examples/apply_ufunc_vectorize_1d External Examples ----------------- diff --git a/doc/faq.rst b/doc/getting-started-guide/faq.rst similarity index 100% rename from doc/faq.rst rename to doc/getting-started-guide/faq.rst diff --git a/doc/getting-started-guide/index.rst b/doc/getting-started-guide/index.rst new file mode 100644 index 00000000000..f9f6197f057 --- /dev/null +++ b/doc/getting-started-guide/index.rst @@ -0,0 +1,15 @@ +################ +Getting Started +################ + +This guide provides a quick overview and showcases some example notebooks. + + +.. toctree:: + :maxdepth: 1 + + why-xarray + faq + quick-overview + examples + installing diff --git a/doc/installing.rst b/doc/getting-started-guide/installing.rst similarity index 99% rename from doc/installing.rst rename to doc/getting-started-guide/installing.rst index 99b8b621aed..97af7a4aea9 100644 --- a/doc/installing.rst +++ b/doc/getting-started-guide/installing.rst @@ -160,7 +160,7 @@ installation steps are excluded. To know which dependencies would be installed, take a look at the ``[options.extras_require]`` section in ``setup.cfg``: -.. literalinclude:: ../setup.cfg +.. literalinclude:: ../../setup.cfg :language: ini :start-at: [options.extras_require] :end-before: [options.package_data] diff --git a/doc/quick-overview.rst b/doc/getting-started-guide/quick-overview.rst similarity index 100% rename from doc/quick-overview.rst rename to doc/getting-started-guide/quick-overview.rst diff --git a/doc/why-xarray.rst b/doc/getting-started-guide/why-xarray.rst similarity index 100% rename from doc/why-xarray.rst rename to doc/getting-started-guide/why-xarray.rst diff --git a/doc/index.rst b/doc/index.rst index ee44d0ad4d9..7166fbce446 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -25,86 +25,15 @@ computing. Documentation ------------- -**Getting Started** - -* :doc:`why-xarray` -* :doc:`faq` -* :doc:`quick-overview` -* :doc:`examples` -* :doc:`installing` - .. toctree:: :maxdepth: 1 - :hidden: - :caption: Getting Started - - why-xarray - faq - quick-overview - examples - installing - -**User Guide** - -* :doc:`terminology` -* :doc:`data-structures` -* :doc:`indexing` -* :doc:`interpolation` -* :doc:`computation` -* :doc:`groupby` -* :doc:`reshaping` -* :doc:`combining` -* :doc:`time-series` -* :doc:`weather-climate` -* :doc:`pandas` -* :doc:`io` -* :doc:`dask` -* :doc:`plotting` -* :doc:`duckarrays` -.. toctree:: - :maxdepth: 1 - :hidden: - :caption: User Guide - - terminology - data-structures - indexing - interpolation - computation - groupby - reshaping - combining - time-series - weather-climate - pandas - io - dask - plotting - duckarrays - -**Help & reference** - -* :doc:`whats-new` -* :doc:`howdoi` -* :doc:`api` -* :doc:`internals` -* :doc:`roadmap` -* :doc:`contributing` -* :doc:`related-projects` + Getting Started + User Guide + API Reference + Development + Release Notes -.. toctree:: - :maxdepth: 1 - :hidden: - :caption: Help & reference - - whats-new - howdoi - api - internals - roadmap - contributing - related-projects See also -------- diff --git a/doc/api-hidden.rst b/doc/reference-guide/api-hidden.rst similarity index 100% rename from doc/api-hidden.rst rename to doc/reference-guide/api-hidden.rst diff --git a/doc/api.rst b/doc/reference-guide/api.rst similarity index 100% rename from doc/api.rst rename to doc/reference-guide/api.rst diff --git a/doc/howdoi.rst b/doc/reference-guide/howdoi.rst similarity index 100% rename from doc/howdoi.rst rename to doc/reference-guide/howdoi.rst diff --git a/doc/reference-guide/index.rst b/doc/reference-guide/index.rst new file mode 100644 index 00000000000..225e90a5310 --- /dev/null +++ b/doc/reference-guide/index.rst @@ -0,0 +1,14 @@ +################# +Xarray Reference +################# + +This reference manual details functions, modules, and objects +included in Xarray, describing what they are and what they do. + + +.. toctree:: + :maxdepth: 1 + + api + howdoi + related-projects diff --git a/doc/related-projects.rst b/doc/reference-guide/related-projects.rst similarity index 100% rename from doc/related-projects.rst rename to doc/reference-guide/related-projects.rst diff --git a/doc/combining.rst b/doc/user-guide/combining.rst similarity index 100% rename from doc/combining.rst rename to doc/user-guide/combining.rst diff --git a/doc/computation.rst b/doc/user-guide/computation.rst similarity index 99% rename from doc/computation.rst rename to doc/user-guide/computation.rst index dcfe270a942..a7f5d42c1b6 100644 --- a/doc/computation.rst +++ b/doc/user-guide/computation.rst @@ -2,9 +2,8 @@ .. _comput: -########### Computation -########### +----------- The labels associated with :py:class:`~xarray.DataArray` and :py:class:`~xarray.Dataset` objects enables some powerful shortcuts for diff --git a/doc/dask.rst b/doc/user-guide/dask.rst similarity index 99% rename from doc/dask.rst rename to doc/user-guide/dask.rst index 4844967350b..6ea1c709ed8 100644 --- a/doc/dask.rst +++ b/doc/user-guide/dask.rst @@ -1,9 +1,8 @@ .. currentmodule:: xarray - .. _dask: Parallel computing with Dask -============================ +----------------------------- xarray integrates with `Dask `__ to support parallel computations and streaming computation on datasets that don't fit into memory. @@ -19,9 +18,9 @@ and at the `Dask examples website `_. .. _blog post introducing xarray and Dask: http://stephanhoyer.com/2015/06/11/xray-dask-out-of-core-labeled-arrays/ What is a Dask array? ---------------------- +===================== -.. image:: _static/dask_array.png +.. image:: ../_static/dask_array.png :width: 40 % :align: right :alt: A Dask array @@ -45,7 +44,7 @@ Note that xarray only makes use of ``dask.array`` and ``dask.delayed``. .. _dask.io: Reading and writing data ------------------------- +======================== The usual way to create a ``Dataset`` filled with Dask arrays is to load the data from a netCDF file or files. You can do this by supplying a ``chunks`` @@ -156,7 +155,7 @@ Dask DataFrames do not support multi-indexes so the coordinate variables from th os.remove("manipulated-example-data.nc") Using Dask with xarray ----------------------- +====================== Nearly all existing xarray methods (including those for indexing, computation, concatenating and grouped operations) have been extended to work automatically @@ -287,7 +286,7 @@ loaded into Dask or not: .. _dask.automatic-parallelization: Automatic parallelization with ``apply_ufunc`` and ``map_blocks`` ------------------------------------------------------------------ +================================================================= Almost all of xarray's built-in operations work on Dask arrays. If you want to use a function that isn't wrapped by xarray, and have it applied in parallel on @@ -512,7 +511,7 @@ Notice that the 0-shaped sizes were not printed to screen. Since ``template`` ha Chunking and performance ------------------------- +======================== The ``chunks`` parameter has critical performance implications when using Dask arrays. If your chunks are too small, queueing up operations will be extremely @@ -535,7 +534,7 @@ larger chunksizes. Optimization Tips ------------------ +================= With analysis pipelines involving both spatial subsetting and temporal resampling, Dask performance can become very slow in certain cases. Here are some optimization tips we have found through experience: diff --git a/doc/data-structures.rst b/doc/user-guide/data-structures.rst similarity index 99% rename from doc/data-structures.rst rename to doc/user-guide/data-structures.rst index ac78e1769d5..1d231cbb4af 100644 --- a/doc/data-structures.rst +++ b/doc/user-guide/data-structures.rst @@ -1,7 +1,7 @@ .. _data structures: Data Structures -=============== +--------------- .. ipython:: python :suppress: @@ -14,7 +14,7 @@ Data Structures np.set_printoptions(threshold=10) DataArray ---------- +========= :py:class:`xarray.DataArray` is xarray's implementation of a labeled, multi-dimensional array. It has several key properties: @@ -219,7 +219,7 @@ Coordinates can also be set or removed by using the dictionary like syntax: For more details, see :ref:`coordinates` below. Dataset -------- +======= :py:class:`xarray.Dataset` is xarray's multi-dimensional equivalent of a :py:class:`~pandas.DataFrame`. It is a dict-like @@ -251,7 +251,7 @@ quantities that belong in data. Here is an example of how we might structure a dataset for a weather forecast: -.. image:: _static/dataset-diagram.png +.. image:: ../_static/dataset-diagram.png In this example, it would be natural to call ``temperature`` and ``precipitation`` "data variables" and all the other arrays "coordinate @@ -483,7 +483,7 @@ dimension and non-dimension variables: .. _coordinates: Coordinates ------------ +=========== Coordinates are ancillary variables stored for ``DataArray`` and ``Dataset`` objects in the ``coords`` attribute: diff --git a/doc/duckarrays.rst b/doc/user-guide/duckarrays.rst similarity index 97% rename from doc/duckarrays.rst rename to doc/user-guide/duckarrays.rst index ba13d5160ae..9fa399b2814 100644 --- a/doc/duckarrays.rst +++ b/doc/user-guide/duckarrays.rst @@ -1,7 +1,7 @@ .. currentmodule:: xarray Working with numpy-like arrays -============================== +------------------------------ .. warning:: @@ -20,7 +20,7 @@ long as they satisfy certain conditions (see :ref:`internals.duck_arrays`). Missing features ----------------- +================ Most of the API does support :term:`duck array` objects, but there are a few areas where the code will still cast to ``numpy`` arrays: @@ -58,7 +58,7 @@ the code will still cast to ``numpy`` arrays: Extensions using duck arrays ----------------------------- +============================ Here's a list of libraries extending ``xarray`` to make working with wrapped duck arrays easier: diff --git a/doc/groupby.rst b/doc/user-guide/groupby.rst similarity index 99% rename from doc/groupby.rst rename to doc/user-guide/groupby.rst index d0c0b1849f9..5c47ebdef63 100644 --- a/doc/groupby.rst +++ b/doc/user-guide/groupby.rst @@ -1,5 +1,3 @@ -.. _groupby: - GroupBy: split-apply-combine ---------------------------- diff --git a/doc/user-guide/index.rst b/doc/user-guide/index.rst new file mode 100644 index 00000000000..ebbce00c18c --- /dev/null +++ b/doc/user-guide/index.rst @@ -0,0 +1,24 @@ +########### +User Guide +########### + +This guide is an overview and explains the important features. + +.. toctree:: + :maxdepth: 1 + + terminology + data-structures + indexing + interpolation + computation + groupby + reshaping + combining + time-series + weather-climate + pandas + io + dask + plotting + duckarrays diff --git a/doc/indexing.rst b/doc/user-guide/indexing.rst similarity index 98% rename from doc/indexing.rst rename to doc/user-guide/indexing.rst index 78766b8fd81..d5aba0cb999 100644 --- a/doc/indexing.rst +++ b/doc/user-guide/indexing.rst @@ -1,7 +1,6 @@ -.. _indexing: Indexing and selecting data -=========================== +--------------------------- .. ipython:: python :suppress: @@ -53,7 +52,7 @@ See :ref:`vectorized_indexing` for the details. Positional indexing -------------------- +=================== Indexing a :py:class:`~xarray.DataArray` directly works (mostly) just like it does for numpy arrays, except that the returned object is always another @@ -108,7 +107,7 @@ Setting values with label based indexing is also supported: Indexing with dimension names ------------------------------ +============================= With the dimension names, we do not have to rely on dimension order and can use them explicitly to slice data. There are two ways to do this: @@ -151,7 +150,7 @@ __ http://legacy.python.org/dev/peps/pep-0472/ .. _nearest neighbor lookups: Nearest neighbor lookups ------------------------- +======================== The label based selection methods :py:meth:`~xarray.Dataset.sel`, :py:meth:`~xarray.Dataset.reindex` and :py:meth:`~xarray.Dataset.reindex_like` all @@ -207,7 +206,7 @@ Indexing axes with monotonic decreasing labels also works, as long as the Dataset indexing ----------------- +================ We can also use these methods to index all variables in a dataset simultaneously, returning a new dataset: @@ -238,7 +237,7 @@ Using indexing to *assign* values to a subset of dataset (e.g., ``ds[dict(space=0)] = 1``) is not yet supported. Dropping labels and dimensions ------------------------------- +============================== The :py:meth:`~xarray.Dataset.drop_sel` method returns a new object with the listed index labels along a dimension dropped: @@ -259,7 +258,7 @@ Any variables with these dimensions are also dropped: .. _masking with where: Masking with ``where`` ----------------------- +====================== Indexing methods on xarray objects generally return a subset of the original data. However, it is sometimes useful to select an object with the same shape as the @@ -293,7 +292,7 @@ elements that are fully masked: .. _selecting values with isin: Selecting values with ``isin`` ------------------------------- +=============================== To check whether elements of an xarray object contain a single object, you can compare with the equality operator ``==`` (e.g., ``arr == 3``). To check @@ -319,7 +318,7 @@ is significantly slower than using :py:meth:`~xarray.DataArray.sel`. .. _vectorized_indexing: Vectorized Indexing -------------------- +==================== Like numpy and pandas, xarray supports indexing many array elements at once in a `vectorized` manner. @@ -413,7 +412,7 @@ These methods may also be applied to ``Dataset`` objects .. _assigning_values: Assigning values with indexing ------------------------------- +============================== To select and assign values to a portion of a :py:meth:`~xarray.DataArray` you can use indexing with ``.loc`` : @@ -524,7 +523,7 @@ __ https://docs.scipy.org/doc/numpy/user/basics.indexing.html#assigning-values-t .. _more_advanced_indexing: More advanced indexing ------------------------ +====================== The use of :py:meth:`~xarray.DataArray` objects as indexers enables very flexible indexing. The following is an example of the pointwise indexing: @@ -569,7 +568,7 @@ method: .. _align and reindex: Align and reindex ------------------ +================= xarray's ``reindex``, ``reindex_like`` and ``align`` impose a ``DataArray`` or ``Dataset`` onto a new set of coordinates corresponding to dimensions. The @@ -632,7 +631,7 @@ Both ``reindex_like`` and ``align`` work interchangeably between .. _indexing.missing_coordinates: Missing coordinate labels -------------------------- +========================= Coordinate labels for each dimension are optional (as of xarray v0.9). Label based indexing with ``.sel`` and ``.loc`` uses standard positional, @@ -654,7 +653,7 @@ Otherwise, it raises an informative error: ValueError: arguments without labels along dimension 'x' cannot be aligned because they have different dimension sizes: {2, 3} Underlying Indexes ------------------- +================== xarray uses the :py:class:`pandas.Index` internally to perform indexing operations. If you need to access the underlying indexes, they are available @@ -687,7 +686,7 @@ labels: .. _copies_vs_views: Copies vs. Views ----------------- +================ Whether array indexing returns a view or a copy of the underlying data depends on the nature of the labels. @@ -716,7 +715,7 @@ should still avoid assignment with chained indexing. .. _multi-level indexing: Multi-level indexing --------------------- +==================== Just like pandas, advanced indexing on multi-level indexes is possible with ``loc`` and ``sel``. You can slice a multi-index by providing multiple indexers, @@ -774,7 +773,7 @@ above, ``mda.loc[{'one': 'a', 'two': 0}, :]`` or ``mda.loc[('a', 0), ...]``. .. _indexing.rules: Indexing rules --------------- +============== Here we describe the full rules xarray uses for vectorized indexing. Note that this is for the purposes of explanation: for the sake of efficiency and to diff --git a/doc/interpolation.rst b/doc/user-guide/interpolation.rst similarity index 97% rename from doc/interpolation.rst rename to doc/user-guide/interpolation.rst index 9a3b7a7ee2d..8deee664f62 100644 --- a/doc/interpolation.rst +++ b/doc/user-guide/interpolation.rst @@ -1,7 +1,7 @@ .. _interp: Interpolating data -================== +------------------- .. ipython:: python :suppress: @@ -21,7 +21,7 @@ to our :ref:`indexing `. Scalar and 1-dimensional interpolation --------------------------------------- +======================================= Interpolating a :py:class:`~xarray.DataArray` works mostly like labeled indexing of a :py:class:`~xarray.DataArray`, @@ -78,7 +78,7 @@ allowed. See :ref:`CFTimeIndex` for examples. Multi-dimensional Interpolation -------------------------------- +================================ Like :py:meth:`~xarray.DataArray.sel`, :py:meth:`~xarray.DataArray.interp` accepts multiple coordinates. In this case, multidimensional interpolation @@ -130,7 +130,7 @@ It is now possible to safely compute the difference ``other - interpolated``. Interpolation methods ---------------------- +===================== We use :py:class:`scipy.interpolate.interp1d` for 1-dimensional interpolation and :py:func:`scipy.interpolate.interpn` for multi-dimensional interpolation. @@ -169,7 +169,7 @@ Additional keyword arguments can be passed to scipy's functions. Advanced Interpolation ----------------------- +====================== :py:meth:`~xarray.DataArray.interp` accepts :py:class:`~xarray.DataArray` as similar to :py:meth:`~xarray.DataArray.sel`, which enables us more advanced interpolation. @@ -179,7 +179,7 @@ For example, if you want to interpolate a two dimensional array along a particul you can pass two 1-dimensional :py:class:`~xarray.DataArray` s with a common dimension as new coordinate. -.. image:: _static/advanced_selection_interpolation.svg +.. image:: ../_static/advanced_selection_interpolation.svg :height: 200px :width: 400 px :alt: advanced indexing and interpolation @@ -221,7 +221,7 @@ see :ref:`more advanced indexing `. Interpolating arrays with NaN ------------------------------ +============================= Our :py:meth:`~xarray.DataArray.interp` works with arrays with NaN the same way that @@ -268,7 +268,7 @@ see :ref:`Missing values `. Example -------- +======= Let's see how :py:meth:`~xarray.DataArray.interp` works on real data. diff --git a/doc/io.rst b/doc/user-guide/io.rst similarity index 99% rename from doc/io.rst rename to doc/user-guide/io.rst index 2e46879929b..902ac114a4b 100644 --- a/doc/io.rst +++ b/doc/user-guide/io.rst @@ -1,8 +1,7 @@ .. currentmodule:: xarray -.. _io: Reading and writing files -========================= +------------------------- xarray supports direct serialization and IO to several file formats, from simple :ref:`io.pickle` files to the more flexible :ref:`io.netcdf` @@ -20,7 +19,7 @@ format (recommended). .. _io.netcdf: netCDF ------- +====== The recommended way to store xarray data structures is `netCDF`__, which is a binary file format for self-described datasets that originated @@ -501,7 +500,7 @@ and currently raises a warning unless ``invalid_netcdf=True`` is set: .. _io.iris: Iris ----- +==== The Iris_ tool allows easy reading of common meteorological and climate model formats (including GRIB and UK MetOffice PP files) into ``Cube`` objects which are in many ways very @@ -533,7 +532,7 @@ Conversely, we can create a new ``DataArray`` object from a ``Cube`` using OPeNDAP -------- +======= xarray includes support for `OPeNDAP`__ (via the netCDF4 library or Pydap), which lets us access large datasets over HTTP. @@ -555,7 +554,7 @@ __ http://iri.columbia.edu/ tmax = remote_data.tmax[:500, ::3, ::3] tmax - @savefig opendap-prism-tmax.png + @savefig ../_static/opendap-prism-tmax.png tmax[0].plot() .. ipython:: @@ -621,7 +620,7 @@ over the network until we look at particular values: # the data is downloaded automatically when we make the plot In [6]: tmax[0].plot() -.. image:: _static/opendap-prism-tmax.png +.. image:: ../_static/opendap-prism-tmax.png Some servers require authentication before we can access the data. For this purpose we can explicitly create a :py:class:`backends.PydapDataStore` @@ -658,7 +657,7 @@ __ http://pydap.readthedocs.io/en/latest/client.html#authentication .. _io.pickle: Pickle ------- +====== The simplest way to serialize an xarray object is to use Python's built-in pickle module: @@ -693,7 +692,7 @@ this version of xarray will work in future versions. .. _dictionary io: Dictionary ----------- +========== We can convert a ``Dataset`` (or a ``DataArray``) to a dict using :py:meth:`Dataset.to_dict`: @@ -736,7 +735,7 @@ search indices or other automated data discovery tools. .. _io.rasterio: Rasterio --------- +======== GeoTIFFs and other gridded raster datasets can be opened using `rasterio`_, if rasterio is installed. Here is an example of how to use @@ -826,7 +825,7 @@ GDAL readable raster data using `rasterio`_ as well as for exporting to a geoTIF .. _io.zarr: Zarr ----- +==== `Zarr`_ is a Python package that provides an implementation of chunked, compressed, N-dimensional arrays. @@ -1076,7 +1075,7 @@ with ``mode='a'``. shutil.rmtree("path/to/directory.zarr") GRIB format via cfgrib ----------------------- +====================== xarray supports reading GRIB files via ECMWF cfgrib_ python driver, if it is installed. To open a GRIB file supply ``engine='cfgrib'`` @@ -1096,7 +1095,7 @@ We recommend installing cfgrib via conda:: .. _io.pynio: Formats supported by PyNIO --------------------------- +=========================== xarray can also read GRIB, HDF4 and other file formats supported by PyNIO_, if PyNIO is installed. To use PyNIO to read such files, supply @@ -1116,7 +1115,7 @@ We recommend installing PyNIO via conda:: .. _io.PseudoNetCDF: Formats supported by PseudoNetCDF ---------------------------------- +================================= xarray can also read CAMx, BPCH, ARL PACKED BIT, and many other file formats supported by PseudoNetCDF_, if PseudoNetCDF is installed. @@ -1136,7 +1135,7 @@ options are listed on the PseudoNetCDF page. CSV and other formats supported by Pandas ------------------------------------------ +========================================= For more options (tabular formats and CSV files in particular), consider exporting your objects to pandas and using its broad range of `IO tools`_. @@ -1148,7 +1147,7 @@ For CSV files, one might also consider `xarray_extras`_. Third party libraries ---------------------- +===================== More formats are supported by extension libraries: diff --git a/doc/pandas.rst b/doc/user-guide/pandas.rst similarity index 99% rename from doc/pandas.rst rename to doc/user-guide/pandas.rst index acf1d16b6ee..a4f8c37d5df 100644 --- a/doc/pandas.rst +++ b/doc/user-guide/pandas.rst @@ -1,9 +1,8 @@ .. currentmodule:: xarray .. _pandas: -=================== Working with pandas -=================== +------------------- One of the most important features of xarray is the ability to convert to and from :py:mod:`pandas` objects to interact with the rest of the PyData diff --git a/doc/plotting.rst b/doc/user-guide/plotting.rst similarity index 99% rename from doc/plotting.rst rename to doc/user-guide/plotting.rst index 3699f794ae8..43d5880ab9b 100644 --- a/doc/plotting.rst +++ b/doc/user-guide/plotting.rst @@ -2,10 +2,10 @@ .. _plotting: Plotting -======== +-------- Introduction ------------- +============ Labeled data enables expressive computations. These same labels can also be used to easily create informative plots. @@ -49,7 +49,7 @@ For more extensive plotting applications consider the following projects: tools. Imports -~~~~~~~ +======= .. ipython:: python :suppress: @@ -87,7 +87,7 @@ For these examples we'll use the North American air temperature dataset. DataArrays ----------- +========== One Dimension ~~~~~~~~~~~~~ @@ -704,7 +704,7 @@ TODO: add an example of using the ``map`` method to plot dataset variables .. _plot-dataset: Datasets --------- +======== ``xarray`` has limited support for plotting Dataset variables against each other. Consider this dataset @@ -766,7 +766,7 @@ For more advanced scatter plots, we recommend converting the relevant data varia .. _plot-maps: Maps ----- +==== To follow this section you'll need to have Cartopy installed and working. @@ -808,7 +808,7 @@ by faceting are accessible in the object returned by ``plot``: Details -------- +======= Ways to Use ~~~~~~~~~~~ diff --git a/doc/reshaping.rst b/doc/user-guide/reshaping.rst similarity index 97% rename from doc/reshaping.rst rename to doc/user-guide/reshaping.rst index 81fd4a6d35e..1a4b08e2b35 100644 --- a/doc/reshaping.rst +++ b/doc/user-guide/reshaping.rst @@ -1,8 +1,6 @@ -.. _reshape: -############################### Reshaping and reorganizing data -############################### +------------------------------- These methods allow you to reorganize @@ -16,7 +14,7 @@ These methods allow you to reorganize np.random.seed(123456) Reordering dimensions ---------------------- +===================== To reorder dimensions on a :py:class:`~xarray.DataArray` or across all variables on a :py:class:`~xarray.Dataset`, use :py:meth:`~xarray.DataArray.transpose`. An @@ -30,7 +28,7 @@ ellipsis (`...`) can be use to represent all other dimensions: ds.transpose() # reverses all dimensions Expand and squeeze dimensions ------------------------------ +============================= To expand a :py:class:`~xarray.DataArray` or all variables on a :py:class:`~xarray.Dataset` along a new dimension, @@ -52,7 +50,7 @@ use :py:meth:`~xarray.DataArray.squeeze` expanded.squeeze("w") Converting between datasets and arrays --------------------------------------- +====================================== To convert from a Dataset to a DataArray, use :py:meth:`~xarray.Dataset.to_array`: @@ -96,7 +94,7 @@ If you use ``to_dataset`` without supplying the ``dim`` argument, the DataArray .. _reshape.stack: Stack and unstack ------------------ +================= As part of xarray's nascent support for :py:class:`pandas.MultiIndex`, we have implemented :py:meth:`~xarray.DataArray.stack` and @@ -192,7 +190,7 @@ numerical method. .. _reshape.set_index: Set and reset index -------------------- +=================== Complementary to stack / unstack, xarray's ``.set_index``, ``.reset_index`` and ``.reorder_levels`` allow easy manipulation of ``DataArray`` or ``Dataset`` @@ -252,7 +250,7 @@ labels for one or several dimensions: .. _reshape.shift_and_roll: Shift and roll --------------- +=============== To adjust coordinate labels, you can use the :py:meth:`~xarray.Dataset.shift` and :py:meth:`~xarray.Dataset.roll` methods: @@ -266,7 +264,7 @@ To adjust coordinate labels, you can use the :py:meth:`~xarray.Dataset.shift` an .. _reshape.sort: Sort ----- +==== One may sort a DataArray/Dataset via :py:meth:`~xarray.DataArray.sortby` and :py:meth:`~xarray.DataArray.sortby`. The input can be an individual or list of diff --git a/doc/terminology.rst b/doc/user-guide/terminology.rst similarity index 98% rename from doc/terminology.rst rename to doc/user-guide/terminology.rst index 3cfc211593f..3fa944af32d 100644 --- a/doc/terminology.rst +++ b/doc/user-guide/terminology.rst @@ -2,7 +2,7 @@ .. _terminology: Terminology -=========== +----------- *Xarray terminology differs slightly from CF, mathematical conventions, and pandas; so we've put together a glossary of its terms. Here,* ``arr`` * @@ -79,7 +79,7 @@ complete examples, please consult the relevant documentation.* example, multidimensional coordinates are often used in geoscience datasets when :doc:`the data's physical coordinates (such as latitude and longitude) differ from their logical coordinates - `. However, non-dimension coordinates + <../examples/multidimensional-coords>`. However, non-dimension coordinates are not indexed, and any operation on non-dimension coordinates that leverages indexing will fail. Printing ``arr.coords`` will print all of ``arr``'s coordinate names, with the corresponding dimension(s) in diff --git a/doc/time-series.rst b/doc/user-guide/time-series.rst similarity index 98% rename from doc/time-series.rst rename to doc/user-guide/time-series.rst index 96a2edc0ea5..57fb2d80738 100644 --- a/doc/time-series.rst +++ b/doc/user-guide/time-series.rst @@ -1,8 +1,7 @@ .. _time-series: -================ Time series data -================ +----------------- A major use case for xarray is multi-dimensional time-series data. Accordingly, we've copied many of features that make working with time-series @@ -19,7 +18,7 @@ core functionality. np.random.seed(123456) Creating datetime64 data ------------------------- +======================== xarray uses the numpy dtypes ``datetime64[ns]`` and ``timedelta64[ns]`` to represent datetime data, which offer vectorized (if sometimes buggy) operations @@ -79,7 +78,7 @@ packaged with earlier versions ``netCDF4``). See :ref:`CFTimeIndex` for more information. Datetime indexing ------------------ +================= xarray borrows powerful indexing machinery from pandas (see :ref:`indexing`). @@ -106,7 +105,7 @@ For more details, read the pandas documentation. .. _dt_accessor: Datetime components -------------------- +=================== Similar `to pandas`_, the components of datetime objects contained in a given ``DataArray`` can be quickly computed using a special ``.dt`` accessor. @@ -168,7 +167,7 @@ for arrays utilising the same formatting as the standard `datetime.strftime`_. .. _resampling: Resampling and grouped operations ---------------------------------- +================================= Datetime components couple particularly well with grouped operations (see :ref:`groupby`) for analyzing features that repeat over time. Here's how to @@ -224,4 +223,4 @@ Data that has indices outside of the given ``tolerance`` are set to ``NaN``. For more examples of using grouped operations on a time dimension, see -:doc:`examples/weather-data`. +:doc:`../examples/weather-data`. diff --git a/doc/weather-climate.rst b/doc/user-guide/weather-climate.rst similarity index 98% rename from doc/weather-climate.rst rename to doc/user-guide/weather-climate.rst index db612d74859..afa0ab45ccd 100644 --- a/doc/weather-climate.rst +++ b/doc/user-guide/weather-climate.rst @@ -1,7 +1,6 @@ -.. _weather-climate: Weather and climate data -======================== +------------------------ .. ipython:: python :suppress: @@ -15,7 +14,7 @@ Weather and climate data .. _metpy_accessor: CF-compliant coordinate variables ---------------------------------- +================================= `MetPy`_ adds a ``metpy`` accessor that allows accessing coordinates with appropriate CF metadata using generic names ``x``, ``y``, ``vertical`` and ``time``. There is also a `cartopy_crs` attribute that provides projection information, parsed from the appropriate CF metadata, as a `Cartopy`_ projection object. See `their documentation`_ for more information. @@ -26,7 +25,7 @@ CF-compliant coordinate variables .. _CFTimeIndex: Non-standard calendars and dates outside the Timestamp-valid range ------------------------------------------------------------------- +================================================================== Through the standalone ``cftime`` library and a custom subclass of :py:class:`pandas.Index`, xarray supports a subset of the indexing diff --git a/doc/whats-new.rst b/doc/whats-new.rst index 16b0cbf4ea1..4e271337e91 100644 --- a/doc/whats-new.rst +++ b/doc/whats-new.rst @@ -1,7 +1,7 @@ .. currentmodule:: xarray What's New -========== +----------- .. ipython:: python :suppress: @@ -18,7 +18,7 @@ What's New .. _whats-new.0.16.3: v0.16.3 (unreleased) --------------------- +===================== Breaking changes ~~~~~~~~~~~~~~~~ @@ -115,7 +115,7 @@ Internal Changes .. _whats-new.0.16.2: v0.16.2 (30 Nov 2020) ---------------------- +===================== This release brings the ability to write to limited regions of ``zarr`` files, open zarr files with :py:func:`open_dataset` and :py:func:`open_mfdataset`, increased support for propagating ``attrs`` using the ``keep_attrs`` flag, as well as numerous bugfixes and documentation improvements. @@ -246,7 +246,7 @@ Internal Changes .. _whats-new.0.16.1: v0.16.1 (2020-09-20) ---------------------- +==================== This patch release fixes an incompatibility with a recent pandas change, which was causing an issue indexing with a ``datetime64``. It also includes @@ -299,7 +299,7 @@ New Features By `Aaron Spring `_. - Use a wrapped array's ``_repr_inline_`` method to construct the collapsed ``repr`` of :py:class:`DataArray` and :py:class:`Dataset` objects and - document the new method in :doc:`internals`. (:pull:`4248`). + document the new method in :doc:`dev-guide/internals`. (:pull:`4248`). By `Justus Magin `_. - Allow per-variable fill values in most functions. (:pull:`4237`). By `Justus Magin `_. @@ -393,7 +393,7 @@ Internal Changes .. _whats-new.0.16.0: v0.16.0 (2020-07-11) ---------------------- +==================== This release adds `xarray.cov` & `xarray.corr` for covariance & correlation respectively; the `idxmax` & `idxmin` methods, the `polyfit` method & @@ -588,7 +588,7 @@ Documentation parameter as required. (:issue:`1040`, :pull:`3909`) By `Justus Magin `_. - Updated :doc:`Calculating Seasonal Averages from Timeseries of Monthly Means - ` example notebook to take advantage of the new + <../examples/monthly-means>` example notebook to take advantage of the new ``days_in_month`` accessor for :py:class:`xarray.CFTimeIndex` (:pull:`3935`). By `Spencer Clark `_. - Updated the list of current core developers. (:issue:`3892`) @@ -628,7 +628,7 @@ Internal Changes .. _whats-new.0.15.1: v0.15.1 (23 Mar 2020) ---------------------- +===================== This release brings many new features such as :py:meth:`Dataset.weighted` methods for weighted array reductions, a new jupyter repr by default, and the start of units integration with pint. There's also @@ -764,7 +764,7 @@ Internal Changes v0.15.0 (30 Jan 2020) ---------------------- +====================== This release brings many improvements to xarray's documentation: our examples are now binderized notebooks (`click here `_) and we have new example notebooks from our SciPy 2019 sprint (many thanks to our contributors!). @@ -886,17 +886,17 @@ Documentation - Switch doc examples to use `nbsphinx `_ and replace ``sphinx_gallery`` scripts with Jupyter notebooks. (:pull:`3105`, :pull:`3106`, :pull:`3121`) By `Ryan Abernathey `_. -- Added :doc:`example notebook ` demonstrating use of xarray with +- Added :doc:`example notebook <../examples/ROMS_ocean_model>` demonstrating use of xarray with Regional Ocean Modeling System (ROMS) ocean hydrodynamic model output. (:pull:`3116`) By `Robert Hetland `_. -- Added :doc:`example notebook ` demonstrating the visualization of +- Added :doc:`example notebook <../examples/ERA5-GRIB-example>` demonstrating the visualization of ERA5 GRIB data. (:pull:`3199`) By `Zach Bruick `_ and `Stephan Siemen `_. - Added examples for :py:meth:`DataArray.quantile`, :py:meth:`Dataset.quantile` and ``GroupBy.quantile``. (:pull:`3576`) By `Justus Magin `_. -- Add new :doc:`example notebook ` example notebook demonstrating +- Add new :doc:`example notebook <../examples/apply_ufunc_vectorize_1d>` example notebook demonstrating vectorization of a 1D function using :py:func:`apply_ufunc` , dask and numba. By `Deepak Cherian `_. - Added example for :py:func:`~xarray.map_blocks`. (:pull:`3667`) @@ -924,7 +924,7 @@ Internal Changes .. _whats-new.0.14.1: v0.14.1 (19 Nov 2019) ---------------------- +===================== Breaking changes ~~~~~~~~~~~~~~~~ @@ -1080,7 +1080,7 @@ Internal Changes .. _whats-new.0.14.0: v0.14.0 (14 Oct 2019) ---------------------- +===================== Breaking changes ~~~~~~~~~~~~~~~~ @@ -1187,7 +1187,7 @@ Documentation .. _whats-new.0.13.0: v0.13.0 (17 Sep 2019) ---------------------- +===================== This release includes many exciting changes: wrapping of `NEP18 `_ compliant @@ -1388,7 +1388,7 @@ Documentation .. _whats-new.0.12.3: v0.12.3 (10 July 2019) ----------------------- +====================== New functions/methods ~~~~~~~~~~~~~~~~~~~~~ @@ -1429,7 +1429,7 @@ Bug fixes .. _whats-new.0.12.2: v0.12.2 (29 June 2019) ----------------------- +====================== New functions/methods ~~~~~~~~~~~~~~~~~~~~~ @@ -1581,7 +1581,7 @@ Bug fixes .. _whats-new.0.12.1: v0.12.1 (4 April 2019) ----------------------- +====================== Enhancements ~~~~~~~~~~~~ @@ -1603,7 +1603,7 @@ Bug fixes .. _whats-new.0.12.0: v0.12.0 (15 March 2019) ------------------------ +======================= Highlights include: @@ -1732,7 +1732,7 @@ Bug fixes .. _whats-new.0.11.3: v0.11.3 (26 January 2019) -------------------------- +========================= Bug fixes ~~~~~~~~~ @@ -1749,7 +1749,7 @@ Bug fixes .. _whats-new.0.11.2: v0.11.2 (2 January 2019) ------------------------- +======================== Removes inadvertently introduced setup dependency on pytest-runner (:issue:`2641`). Otherwise, this release is exactly equivalent to 0.11.1. @@ -1767,7 +1767,7 @@ Removes inadvertently introduced setup dependency on pytest-runner .. _whats-new.0.11.1: v0.11.1 (29 December 2018) --------------------------- +========================== This minor release includes a number of enhancements and bug fixes, and two (slightly) breaking changes. @@ -1846,7 +1846,7 @@ Bug fixes .. _whats-new.0.11.0: v0.11.0 (7 November 2018) -------------------------- +========================= Breaking changes ~~~~~~~~~~~~~~~~ @@ -2003,7 +2003,7 @@ Bug fixes .. _whats-new.0.10.9: v0.10.9 (21 September 2018) ---------------------------- +=========================== This minor release contains a number of backwards compatible enhancements. @@ -2117,7 +2117,7 @@ Bug fixes .. _whats-new.0.10.8: v0.10.8 (18 July 2018) ----------------------- +====================== Breaking changes ~~~~~~~~~~~~~~~~ @@ -2171,7 +2171,7 @@ Bug fixes .. _whats-new.0.10.7: v0.10.7 (7 June 2018) ---------------------- +===================== Enhancements ~~~~~~~~~~~~ @@ -2200,7 +2200,7 @@ Bug fixes .. _whats-new.0.10.6: v0.10.6 (31 May 2018) ---------------------- +===================== The minor release includes a number of bug-fixes and backwards compatible enhancements. @@ -2294,7 +2294,7 @@ Bug fixes .. _whats-new.0.10.4: v0.10.4 (16 May 2018) ----------------------- +===================== The minor release includes a number of bug-fixes and backwards compatible enhancements. A highlight is ``CFTimeIndex``, which offers support for @@ -2384,7 +2384,7 @@ Bug fixes .. _whats-new.0.10.3: v0.10.3 (13 April 2018) ------------------------- +======================= The minor release includes a number of bug-fixes and backwards compatible enhancements. @@ -2426,7 +2426,7 @@ Bug fixes .. _whats-new.0.10.2: v0.10.2 (13 March 2018) ------------------------ +======================= The minor release includes a number of bug-fixes and enhancements, along with one possibly **backwards incompatible change**. @@ -2505,7 +2505,7 @@ Bug fixes .. _whats-new.0.10.1: v0.10.1 (25 February 2018) --------------------------- +========================== The minor release includes a number of bug-fixes and backwards compatible enhancements. @@ -2673,7 +2673,7 @@ Bug fixes .. _whats-new.0.10.0: v0.10.0 (20 November 2017) --------------------------- +========================== This is a major release that includes bug fixes, new features and a few backwards incompatible changes. Highlights include: @@ -3074,7 +3074,7 @@ Bug fixes after rc2 .. _whats-new.0.9.6: v0.9.6 (8 June 2017) --------------------- +==================== This release includes a number of backwards compatible enhancements and bug fixes. @@ -3152,14 +3152,14 @@ Testing .. _whats-new.0.9.5: v0.9.5 (17 April, 2017) ------------------------ +======================== Remove an inadvertently introduced print statement. .. _whats-new.0.9.3: v0.9.3 (16 April, 2017) ------------------------ +======================== This minor release includes bug-fixes and backwards compatible enhancements. @@ -3202,7 +3202,7 @@ Bug fixes .. _whats-new.0.9.2: v0.9.2 (2 April 2017) ---------------------- +===================== The minor release includes bug-fixes and backwards compatible enhancements. @@ -3270,7 +3270,7 @@ Bug fixes .. _whats-new.0.9.1: v0.9.1 (30 January 2017) ------------------------- +========================= Renamed the "Unindexed dimensions" section in the ``Dataset`` and ``DataArray`` repr (added in v0.9.0) to "Dimensions without coordinates" @@ -3279,7 +3279,7 @@ Renamed the "Unindexed dimensions" section in the ``Dataset`` and .. _whats-new.0.9.0: v0.9.0 (25 January 2017) ------------------------- +======================== This major release includes five months worth of enhancements and bug fixes from 24 contributors, including some significant changes that are not fully backwards @@ -3573,7 +3573,7 @@ Performance improvements .. _whats-new.0.8.2: v0.8.2 (18 August 2016) ------------------------ +======================= This release includes a number of bug fixes and minor enhancements. @@ -3626,7 +3626,7 @@ Bug fixes .. _whats-new.0.8.1: v0.8.1 (5 August 2016) ----------------------- +====================== Bug fixes ~~~~~~~~~ @@ -3637,7 +3637,7 @@ Bug fixes .. _whats-new.0.8.0: v0.8.0 (2 August 2016) ----------------------- +====================== This release includes four months of new features and bug fixes, including several breaking changes. @@ -3757,7 +3757,7 @@ Bug fixes .. _whats-new.0.7.2: v0.7.2 (13 March 2016) ----------------------- +====================== This release includes two new, entirely backwards compatible features and several bug fixes. @@ -3819,7 +3819,7 @@ Bug fixes .. _whats-new.0.7.1: v0.7.1 (16 February 2016) -------------------------- +========================= This is a bug fix release that includes two small, backwards compatible enhancements. We recommend that all users upgrade. @@ -3867,7 +3867,7 @@ The following individuals contributed to this release: .. _whats-new.0.7.0: v0.7.0 (21 January 2016) ------------------------- +======================== This major release includes redesign of :py:class:`~xarray.DataArray` internals, as well as new methods for reshaping, rolling and shifting @@ -4066,7 +4066,7 @@ The following individuals contributed to this release: - femtotrader v0.6.1 (21 October 2015) ------------------------- +======================== This release contains a number of bug and compatibility fixes, as well as enhancements to plotting, indexing and writing files to disk. @@ -4151,7 +4151,7 @@ The following individuals contributed to this release: - Scott Sinclair v0.6.0 (21 August 2015) ------------------------ +======================= This release includes numerous bug fixes and enhancements. Highlights include the introduction of a plotting module and the new Dataset and DataArray @@ -4261,7 +4261,7 @@ Bug fixes netcdf4_classic formats (:issue:`526`). v0.5.2 (16 July 2015) ---------------------- +===================== This release contains bug fixes, several additional options for opening and saving netCDF files, and a backwards incompatible rewrite of the advanced @@ -4317,7 +4317,7 @@ Bug fixes This allows conventions decoding to work properly on Python 3 (:issue:`451`). v0.5.1 (15 June 2015) ---------------------- +===================== This minor release fixes a few bugs and an inconsistency with pandas. It also adds the ``pipe`` method, copied from pandas. @@ -4342,7 +4342,7 @@ Bug fixes bottleneck installed. v0.5 (1 June 2015) ------------------- +================== Highlights ~~~~~~~~~~ @@ -4352,10 +4352,11 @@ computing (data that doesn't fit into memory) with dask_. This includes a new top-level function ``xray.open_mfdataset`` that makes it easy to open a collection of netCDF (using dask) as a single ``xray.Dataset`` object. For more on dask, read the `blog post introducing xray + dask`_ and the new -documentation section :doc:`dask`. +documentation section :doc:`user-guide/dask`. .. _blog post introducing xray + dask: https://www.anaconda.com/blog/developer-blog/xray-dask-out-core-labeled-arrays-python/ + Dask makes it possible to harness parallelism and manipulate gigantic datasets with xray. It is currently an optional dependency, but it may become required in the future. @@ -4504,7 +4505,7 @@ Deprecations ``xray.Dataset.load``. v0.4.1 (18 March 2015) ----------------------- +====================== The release contains bug fixes and several new features. All changes should be fully backwards compatible. @@ -4589,7 +4590,7 @@ Bug fixes ``ValueError: could not automatically determine time units``. v0.4 (2 March, 2015) --------------------- +==================== This is one of the biggest releases yet for xray: it includes some major changes that may break existing code, along with the usual collection of minor @@ -4770,7 +4771,7 @@ project. For a preview of using Dask with weather data, read .. _this blog post: http://matthewrocklin.com/blog/work/2015/02/13/Towards-OOC-Slicing-and-Stacking/ v0.3.2 (23 December, 2014) --------------------------- +========================== This release focused on bug-fixes, speedups and resolving some niggling inconsistencies. @@ -4870,7 +4871,7 @@ hear them -- please add a note to any of the referenced GitHub issues. .. _CF Conventions: http://cfconventions.org/Data/cf-conventions/cf-conventions-1.6/build/cf-conventions.html v0.3.1 (22 October, 2014) -------------------------- +========================= This is mostly a bug-fix release to make xray compatible with the latest release of pandas (v0.15). @@ -4912,7 +4913,7 @@ Bug fixes - Order of dimensions preserved with ``DataArray.to_dataframe`` (:issue:`260`). v0.3 (21 September 2014) ------------------------- +======================== New features ~~~~~~~~~~~~ @@ -4950,7 +4951,7 @@ Deprecations ``xray.DataArray.reset_coords`` instead. v0.2 (14 August 2014) ---------------------- +===================== This is major release that includes some new features and quite a few bug fixes. Here are the highlights: @@ -4971,7 +4972,7 @@ fixes. Here are the highlights: disk. v0.1.1 (20 May 2014) --------------------- +===================== xray 0.1.1 is a bug-fix release that includes changes that should be almost entirely backwards compatible with v0.1: @@ -4986,6 +4987,6 @@ Special thanks to new contributors Thomas Kluyver, Joe Hamman and Alistair Miles. v0.1 (2 May 2014) ------------------ +================= Initial release. From 4480b960364043c3fa022922024712cb86ed678b Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Wed, 20 Jan 2021 21:20:43 -0700 Subject: [PATCH 09/51] [skip-ci] Skip CI builds From cbb49c7f490de490293878c9aa4f9f4a4604f367 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Wed, 20 Jan 2021 21:48:37 -0700 Subject: [PATCH 10/51] [skip-ci] Fix spacing for proper table renderring --- doc/whats-new.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/whats-new.rst b/doc/whats-new.rst index 4e271337e91..74dfe76c026 100644 --- a/doc/whats-new.rst +++ b/doc/whats-new.rst @@ -25,6 +25,7 @@ Breaking changes - xarray no longer supports python 3.6 The minimum versions of some other dependencies were changed: + ============ ====== ==== Package Old New ============ ====== ==== From 84a813f16d108f1964ba630fac21f8a6a4f60e81 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Wed, 20 Jan 2021 22:40:32 -0700 Subject: [PATCH 11/51] Set maxdepth to 2 --- doc/dev-guide/index.rst | 2 +- doc/getting-started-guide/index.rst | 2 +- doc/reference-guide/index.rst | 2 +- doc/user-guide/index.rst | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/dev-guide/index.rst b/doc/dev-guide/index.rst index e54f570df7b..b96f50e0890 100644 --- a/doc/dev-guide/index.rst +++ b/doc/dev-guide/index.rst @@ -4,7 +4,7 @@ Development .. toctree:: - :maxdepth: 1 + :maxdepth: 2 contributing internals diff --git a/doc/getting-started-guide/index.rst b/doc/getting-started-guide/index.rst index f9f6197f057..d22e6d0638c 100644 --- a/doc/getting-started-guide/index.rst +++ b/doc/getting-started-guide/index.rst @@ -6,7 +6,7 @@ This guide provides a quick overview and showcases some example notebooks. .. toctree:: - :maxdepth: 1 + :maxdepth: 2 why-xarray faq diff --git a/doc/reference-guide/index.rst b/doc/reference-guide/index.rst index 225e90a5310..8158b7cacd0 100644 --- a/doc/reference-guide/index.rst +++ b/doc/reference-guide/index.rst @@ -7,7 +7,7 @@ included in Xarray, describing what they are and what they do. .. toctree:: - :maxdepth: 1 + :maxdepth: 2 api howdoi diff --git a/doc/user-guide/index.rst b/doc/user-guide/index.rst index ebbce00c18c..fc1779c1987 100644 --- a/doc/user-guide/index.rst +++ b/doc/user-guide/index.rst @@ -5,7 +5,7 @@ User Guide This guide is an overview and explains the important features. .. toctree:: - :maxdepth: 1 + :maxdepth: 2 terminology data-structures From a1ce627697bbe920d5a483076fadf17a1e8f9002 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Wed, 20 Jan 2021 22:40:44 -0700 Subject: [PATCH 12/51] [skip-ci] Skip CI builds From 7e44550b1784f39ad68f6a98c7ddb0dd5f624051 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Wed, 20 Jan 2021 22:48:14 -0700 Subject: [PATCH 13/51] [skip-ci] Add "edit this page" button --- doc/conf.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/conf.py b/doc/conf.py index db7eafbe829..7027ecc787e 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -107,6 +107,7 @@ "github_user": "pydata", "github_repo": "xarray", "github_version": "master", + "doc_path": "doc", } autodoc_typehints = "none" @@ -246,6 +247,7 @@ html_theme_options = { "github_url": "https://github.com/pydata/xarray", "twitter_url": "https://twitter.com/xarray_dev", + "use_edit_page_button": True, } # Add any paths that contain custom themes here, relative to this directory. From 2d9e2a18ba84858c7d28f701b4966762ba6b4141 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Thu, 21 Jan 2021 12:24:28 -0700 Subject: [PATCH 14/51] [skip-ci] Skip CI builds From d82de12c7594076ee7ea082937009fa9fd2c9dcf Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Wed, 3 Feb 2021 10:35:10 -0700 Subject: [PATCH 15/51] Add examples and ecosystem to main menu --- ci/requirements/doc.yml | 2 +- doc/{getting-started-guide => }/examples.rst | 0 doc/getting-started-guide/index.rst | 1 - doc/index.rst | 4 +++- doc/reference-guide/index.rst | 1 - doc/{reference-guide => }/related-projects.rst | 0 6 files changed, 4 insertions(+), 4 deletions(-) rename doc/{getting-started-guide => }/examples.rst (100%) rename doc/{reference-guide => }/related-projects.rst (100%) diff --git a/ci/requirements/doc.yml b/ci/requirements/doc.yml index 39ff676493c..03c87d8afe6 100644 --- a/ci/requirements/doc.yml +++ b/ci/requirements/doc.yml @@ -20,7 +20,7 @@ dependencies: - numba - numpy>=1.17 - pandas>=1.0 - - pydata-sphinx-theme + - pydata-sphinx-theme>=0.4.3 - rasterio>=1.1 - seaborn - setuptools diff --git a/doc/getting-started-guide/examples.rst b/doc/examples.rst similarity index 100% rename from doc/getting-started-guide/examples.rst rename to doc/examples.rst diff --git a/doc/getting-started-guide/index.rst b/doc/getting-started-guide/index.rst index d22e6d0638c..f6f04dcc913 100644 --- a/doc/getting-started-guide/index.rst +++ b/doc/getting-started-guide/index.rst @@ -11,5 +11,4 @@ This guide provides a quick overview and showcases some example notebooks. why-xarray faq quick-overview - examples installing diff --git a/doc/index.rst b/doc/index.rst index 7166fbce446..c0ba9e888e7 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -29,10 +29,12 @@ Documentation :maxdepth: 1 Getting Started + Examples User Guide + Ecosystem API Reference Development - Release Notes + What’s New See also diff --git a/doc/reference-guide/index.rst b/doc/reference-guide/index.rst index 8158b7cacd0..9136b199cee 100644 --- a/doc/reference-guide/index.rst +++ b/doc/reference-guide/index.rst @@ -11,4 +11,3 @@ included in Xarray, describing what they are and what they do. api howdoi - related-projects diff --git a/doc/reference-guide/related-projects.rst b/doc/related-projects.rst similarity index 100% rename from doc/reference-guide/related-projects.rst rename to doc/related-projects.rst From 35ebb7dbfea18890a6e17a0a4e5cb4f292af91f9 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Wed, 3 Feb 2021 10:37:31 -0700 Subject: [PATCH 16/51] [skip-ci] Reset TOC maxdepth --- doc/getting-started-guide/index.rst | 2 +- doc/user-guide/index.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/getting-started-guide/index.rst b/doc/getting-started-guide/index.rst index f6f04dcc913..24c5ba8d9c9 100644 --- a/doc/getting-started-guide/index.rst +++ b/doc/getting-started-guide/index.rst @@ -6,7 +6,7 @@ This guide provides a quick overview and showcases some example notebooks. .. toctree:: - :maxdepth: 2 + :maxdepth: 1 why-xarray faq diff --git a/doc/user-guide/index.rst b/doc/user-guide/index.rst index fc1779c1987..ebbce00c18c 100644 --- a/doc/user-guide/index.rst +++ b/doc/user-guide/index.rst @@ -5,7 +5,7 @@ User Guide This guide is an overview and explains the important features. .. toctree:: - :maxdepth: 2 + :maxdepth: 1 terminology data-structures From 1c4dbc49890130d42c3c1c7b29adfda12966739e Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Wed, 3 Feb 2021 13:10:32 -0700 Subject: [PATCH 17/51] Fix heading inconsistencies --- ci/requirements/doc.yml | 1 + doc/index.rst | 3 ++ doc/whats-new.rst | 117 ++++++++++++++++++++-------------------- 3 files changed, 61 insertions(+), 60 deletions(-) diff --git a/ci/requirements/doc.yml b/ci/requirements/doc.yml index 03c87d8afe6..fa8863f247d 100644 --- a/ci/requirements/doc.yml +++ b/ci/requirements/doc.yml @@ -25,6 +25,7 @@ dependencies: - seaborn - setuptools - sphinx=3.3 + - sphinx-panels - sphinx_rtd_theme>=0.4 - sphinx-autosummary-accessors - zarr>=2.4 diff --git a/doc/index.rst b/doc/index.rst index c0ba9e888e7..73bf8f97d56 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -37,6 +37,9 @@ Documentation What’s New + + + See also -------- diff --git a/doc/whats-new.rst b/doc/whats-new.rst index 0e64e82b2cd..ae876e4ba38 100644 --- a/doc/whats-new.rst +++ b/doc/whats-new.rst @@ -1,7 +1,7 @@ .. currentmodule:: xarray What's New ------------ +========== .. ipython:: python :suppress: @@ -17,8 +17,6 @@ What's New .. _whats-new.0.16.3: -v0.16.3 (unreleased) -===================== v0.17.0 (unreleased) -------------------- @@ -133,7 +131,7 @@ Internal Changes .. _whats-new.0.16.2: v0.16.2 (30 Nov 2020) -===================== +--------------------- This release brings the ability to write to limited regions of ``zarr`` files, open zarr files with :py:func:`open_dataset` and :py:func:`open_mfdataset`, increased support for propagating ``attrs`` using the ``keep_attrs`` flag, as well as numerous bugfixes and documentation improvements. @@ -264,7 +262,7 @@ Internal Changes .. _whats-new.0.16.1: v0.16.1 (2020-09-20) -==================== +--------------------- This patch release fixes an incompatibility with a recent pandas change, which was causing an issue indexing with a ``datetime64``. It also includes @@ -411,7 +409,7 @@ Internal Changes .. _whats-new.0.16.0: v0.16.0 (2020-07-11) -==================== +--------------------- This release adds `xarray.cov` & `xarray.corr` for covariance & correlation respectively; the `idxmax` & `idxmin` methods, the `polyfit` method & @@ -606,7 +604,7 @@ Documentation parameter as required. (:issue:`1040`, :pull:`3909`) By `Justus Magin `_. - Updated :doc:`Calculating Seasonal Averages from Timeseries of Monthly Means - <../examples/monthly-means>` example notebook to take advantage of the new + ` example notebook to take advantage of the new ``days_in_month`` accessor for :py:class:`xarray.CFTimeIndex` (:pull:`3935`). By `Spencer Clark `_. - Updated the list of current core developers. (:issue:`3892`) @@ -646,7 +644,7 @@ Internal Changes .. _whats-new.0.15.1: v0.15.1 (23 Mar 2020) -===================== +--------------------- This release brings many new features such as :py:meth:`Dataset.weighted` methods for weighted array reductions, a new jupyter repr by default, and the start of units integration with pint. There's also @@ -782,7 +780,7 @@ Internal Changes v0.15.0 (30 Jan 2020) -====================== +--------------------- This release brings many improvements to xarray's documentation: our examples are now binderized notebooks (`click here `_) and we have new example notebooks from our SciPy 2019 sprint (many thanks to our contributors!). @@ -904,17 +902,17 @@ Documentation - Switch doc examples to use `nbsphinx `_ and replace ``sphinx_gallery`` scripts with Jupyter notebooks. (:pull:`3105`, :pull:`3106`, :pull:`3121`) By `Ryan Abernathey `_. -- Added :doc:`example notebook <../examples/ROMS_ocean_model>` demonstrating use of xarray with +- Added :doc:`example notebook ` demonstrating use of xarray with Regional Ocean Modeling System (ROMS) ocean hydrodynamic model output. (:pull:`3116`) By `Robert Hetland `_. -- Added :doc:`example notebook <../examples/ERA5-GRIB-example>` demonstrating the visualization of +- Added :doc:`example notebook ` demonstrating the visualization of ERA5 GRIB data. (:pull:`3199`) By `Zach Bruick `_ and `Stephan Siemen `_. - Added examples for :py:meth:`DataArray.quantile`, :py:meth:`Dataset.quantile` and ``GroupBy.quantile``. (:pull:`3576`) By `Justus Magin `_. -- Add new :doc:`example notebook <../examples/apply_ufunc_vectorize_1d>` example notebook demonstrating +- Add new :doc:`example notebook ` example notebook demonstrating vectorization of a 1D function using :py:func:`apply_ufunc` , dask and numba. By `Deepak Cherian `_. - Added example for :py:func:`~xarray.map_blocks`. (:pull:`3667`) @@ -942,7 +940,7 @@ Internal Changes .. _whats-new.0.14.1: v0.14.1 (19 Nov 2019) -===================== +--------------------- Breaking changes ~~~~~~~~~~~~~~~~ @@ -1098,7 +1096,7 @@ Internal Changes .. _whats-new.0.14.0: v0.14.0 (14 Oct 2019) -===================== +--------------------- Breaking changes ~~~~~~~~~~~~~~~~ @@ -1205,7 +1203,7 @@ Documentation .. _whats-new.0.13.0: v0.13.0 (17 Sep 2019) -===================== +--------------------- This release includes many exciting changes: wrapping of `NEP18 `_ compliant @@ -1406,7 +1404,7 @@ Documentation .. _whats-new.0.12.3: v0.12.3 (10 July 2019) -====================== +---------------------- New functions/methods ~~~~~~~~~~~~~~~~~~~~~ @@ -1447,7 +1445,7 @@ Bug fixes .. _whats-new.0.12.2: v0.12.2 (29 June 2019) -====================== +---------------------- New functions/methods ~~~~~~~~~~~~~~~~~~~~~ @@ -1599,7 +1597,7 @@ Bug fixes .. _whats-new.0.12.1: v0.12.1 (4 April 2019) -====================== +---------------------- Enhancements ~~~~~~~~~~~~ @@ -1621,7 +1619,7 @@ Bug fixes .. _whats-new.0.12.0: v0.12.0 (15 March 2019) -======================= +----------------------- Highlights include: @@ -1750,7 +1748,7 @@ Bug fixes .. _whats-new.0.11.3: v0.11.3 (26 January 2019) -========================= +------------------------- Bug fixes ~~~~~~~~~ @@ -1767,7 +1765,7 @@ Bug fixes .. _whats-new.0.11.2: v0.11.2 (2 January 2019) -======================== +------------------------ Removes inadvertently introduced setup dependency on pytest-runner (:issue:`2641`). Otherwise, this release is exactly equivalent to 0.11.1. @@ -1785,7 +1783,7 @@ Removes inadvertently introduced setup dependency on pytest-runner .. _whats-new.0.11.1: v0.11.1 (29 December 2018) -========================== +-------------------------- This minor release includes a number of enhancements and bug fixes, and two (slightly) breaking changes. @@ -1864,7 +1862,7 @@ Bug fixes .. _whats-new.0.11.0: v0.11.0 (7 November 2018) -========================= +------------------------- Breaking changes ~~~~~~~~~~~~~~~~ @@ -2021,7 +2019,7 @@ Bug fixes .. _whats-new.0.10.9: v0.10.9 (21 September 2018) -=========================== +--------------------------- This minor release contains a number of backwards compatible enhancements. @@ -2135,7 +2133,7 @@ Bug fixes .. _whats-new.0.10.8: v0.10.8 (18 July 2018) -====================== +---------------------- Breaking changes ~~~~~~~~~~~~~~~~ @@ -2189,7 +2187,7 @@ Bug fixes .. _whats-new.0.10.7: v0.10.7 (7 June 2018) -===================== +--------------------- Enhancements ~~~~~~~~~~~~ @@ -2218,7 +2216,7 @@ Bug fixes .. _whats-new.0.10.6: v0.10.6 (31 May 2018) -===================== +--------------------- The minor release includes a number of bug-fixes and backwards compatible enhancements. @@ -2312,7 +2310,7 @@ Bug fixes .. _whats-new.0.10.4: v0.10.4 (16 May 2018) -===================== +---------------------- The minor release includes a number of bug-fixes and backwards compatible enhancements. A highlight is ``CFTimeIndex``, which offers support for @@ -2402,7 +2400,7 @@ Bug fixes .. _whats-new.0.10.3: v0.10.3 (13 April 2018) -======================= +------------------------ The minor release includes a number of bug-fixes and backwards compatible enhancements. @@ -2444,7 +2442,7 @@ Bug fixes .. _whats-new.0.10.2: v0.10.2 (13 March 2018) -======================= +----------------------- The minor release includes a number of bug-fixes and enhancements, along with one possibly **backwards incompatible change**. @@ -2523,7 +2521,7 @@ Bug fixes .. _whats-new.0.10.1: v0.10.1 (25 February 2018) -========================== +-------------------------- The minor release includes a number of bug-fixes and backwards compatible enhancements. @@ -2691,7 +2689,7 @@ Bug fixes .. _whats-new.0.10.0: v0.10.0 (20 November 2017) -========================== +-------------------------- This is a major release that includes bug fixes, new features and a few backwards incompatible changes. Highlights include: @@ -3092,7 +3090,7 @@ Bug fixes after rc2 .. _whats-new.0.9.6: v0.9.6 (8 June 2017) -==================== +-------------------- This release includes a number of backwards compatible enhancements and bug fixes. @@ -3170,14 +3168,14 @@ Testing .. _whats-new.0.9.5: v0.9.5 (17 April, 2017) -======================== +----------------------- Remove an inadvertently introduced print statement. .. _whats-new.0.9.3: v0.9.3 (16 April, 2017) -======================== +----------------------- This minor release includes bug-fixes and backwards compatible enhancements. @@ -3220,7 +3218,7 @@ Bug fixes .. _whats-new.0.9.2: v0.9.2 (2 April 2017) -===================== +--------------------- The minor release includes bug-fixes and backwards compatible enhancements. @@ -3288,7 +3286,7 @@ Bug fixes .. _whats-new.0.9.1: v0.9.1 (30 January 2017) -========================= +------------------------ Renamed the "Unindexed dimensions" section in the ``Dataset`` and ``DataArray`` repr (added in v0.9.0) to "Dimensions without coordinates" @@ -3297,7 +3295,7 @@ Renamed the "Unindexed dimensions" section in the ``Dataset`` and .. _whats-new.0.9.0: v0.9.0 (25 January 2017) -======================== +------------------------ This major release includes five months worth of enhancements and bug fixes from 24 contributors, including some significant changes that are not fully backwards @@ -3591,7 +3589,7 @@ Performance improvements .. _whats-new.0.8.2: v0.8.2 (18 August 2016) -======================= +----------------------- This release includes a number of bug fixes and minor enhancements. @@ -3644,7 +3642,7 @@ Bug fixes .. _whats-new.0.8.1: v0.8.1 (5 August 2016) -====================== +---------------------- Bug fixes ~~~~~~~~~ @@ -3655,7 +3653,7 @@ Bug fixes .. _whats-new.0.8.0: v0.8.0 (2 August 2016) -====================== +---------------------- This release includes four months of new features and bug fixes, including several breaking changes. @@ -3775,7 +3773,7 @@ Bug fixes .. _whats-new.0.7.2: v0.7.2 (13 March 2016) -====================== +---------------------- This release includes two new, entirely backwards compatible features and several bug fixes. @@ -3837,7 +3835,7 @@ Bug fixes .. _whats-new.0.7.1: v0.7.1 (16 February 2016) -========================= +------------------------- This is a bug fix release that includes two small, backwards compatible enhancements. We recommend that all users upgrade. @@ -3885,7 +3883,7 @@ The following individuals contributed to this release: .. _whats-new.0.7.0: v0.7.0 (21 January 2016) -======================== +------------------------ This major release includes redesign of :py:class:`~xarray.DataArray` internals, as well as new methods for reshaping, rolling and shifting @@ -4084,7 +4082,7 @@ The following individuals contributed to this release: - femtotrader v0.6.1 (21 October 2015) -======================== +------------------------ This release contains a number of bug and compatibility fixes, as well as enhancements to plotting, indexing and writing files to disk. @@ -4169,7 +4167,7 @@ The following individuals contributed to this release: - Scott Sinclair v0.6.0 (21 August 2015) -======================= +----------------------- This release includes numerous bug fixes and enhancements. Highlights include the introduction of a plotting module and the new Dataset and DataArray @@ -4279,7 +4277,7 @@ Bug fixes netcdf4_classic formats (:issue:`526`). v0.5.2 (16 July 2015) -===================== +--------------------- This release contains bug fixes, several additional options for opening and saving netCDF files, and a backwards incompatible rewrite of the advanced @@ -4335,7 +4333,7 @@ Bug fixes This allows conventions decoding to work properly on Python 3 (:issue:`451`). v0.5.1 (15 June 2015) -===================== +--------------------- This minor release fixes a few bugs and an inconsistency with pandas. It also adds the ``pipe`` method, copied from pandas. @@ -4360,21 +4358,20 @@ Bug fixes bottleneck installed. v0.5 (1 June 2015) -================== +------------------ Highlights ~~~~~~~~~~ The headline feature in this release is experimental support for out-of-core -computing (data that doesn't fit into memory) with dask_. This includes a new +computing (data that doesn't fit into memory) with :doc:`user-guide/dask`. This includes a new top-level function ``xray.open_mfdataset`` that makes it easy to open a collection of netCDF (using dask) as a single ``xray.Dataset`` object. For more on dask, read the `blog post introducing xray + dask`_ and the new -documentation section :doc:`user-guide/dask`. +documentation section :doc:`dask`. .. _blog post introducing xray + dask: https://www.anaconda.com/blog/developer-blog/xray-dask-out-core-labeled-arrays-python/ - Dask makes it possible to harness parallelism and manipulate gigantic datasets with xray. It is currently an optional dependency, but it may become required in the future. @@ -4523,7 +4520,7 @@ Deprecations ``xray.Dataset.load``. v0.4.1 (18 March 2015) -====================== +---------------------- The release contains bug fixes and several new features. All changes should be fully backwards compatible. @@ -4608,7 +4605,7 @@ Bug fixes ``ValueError: could not automatically determine time units``. v0.4 (2 March, 2015) -==================== +-------------------- This is one of the biggest releases yet for xray: it includes some major changes that may break existing code, along with the usual collection of minor @@ -4789,7 +4786,7 @@ project. For a preview of using Dask with weather data, read .. _this blog post: http://matthewrocklin.com/blog/work/2015/02/13/Towards-OOC-Slicing-and-Stacking/ v0.3.2 (23 December, 2014) -========================== +-------------------------- This release focused on bug-fixes, speedups and resolving some niggling inconsistencies. @@ -4889,7 +4886,7 @@ hear them -- please add a note to any of the referenced GitHub issues. .. _CF Conventions: http://cfconventions.org/Data/cf-conventions/cf-conventions-1.6/build/cf-conventions.html v0.3.1 (22 October, 2014) -========================= +------------------------- This is mostly a bug-fix release to make xray compatible with the latest release of pandas (v0.15). @@ -4931,7 +4928,7 @@ Bug fixes - Order of dimensions preserved with ``DataArray.to_dataframe`` (:issue:`260`). v0.3 (21 September 2014) -======================== +------------------------ New features ~~~~~~~~~~~~ @@ -4969,7 +4966,7 @@ Deprecations ``xray.DataArray.reset_coords`` instead. v0.2 (14 August 2014) -===================== +--------------------- This is major release that includes some new features and quite a few bug fixes. Here are the highlights: @@ -4990,7 +4987,7 @@ fixes. Here are the highlights: disk. v0.1.1 (20 May 2014) -===================== +-------------------- xray 0.1.1 is a bug-fix release that includes changes that should be almost entirely backwards compatible with v0.1: @@ -5005,6 +5002,6 @@ Special thanks to new contributors Thomas Kluyver, Joe Hamman and Alistair Miles. v0.1 (2 May 2014) -================= +----------------- Initial release. From b2480cb2e2a2d30a066a14a4005b00c97f013673 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Wed, 3 Feb 2021 13:37:36 -0700 Subject: [PATCH 18/51] [skip-ci] Fix dask doc reference --- doc/whats-new.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/whats-new.rst b/doc/whats-new.rst index ae876e4ba38..06a8788b776 100644 --- a/doc/whats-new.rst +++ b/doc/whats-new.rst @@ -4368,7 +4368,7 @@ computing (data that doesn't fit into memory) with :doc:`user-guide/dask`. This top-level function ``xray.open_mfdataset`` that makes it easy to open a collection of netCDF (using dask) as a single ``xray.Dataset`` object. For more on dask, read the `blog post introducing xray + dask`_ and the new -documentation section :doc:`dask`. +documentation section :doc:`user-guide/dask`. .. _blog post introducing xray + dask: https://www.anaconda.com/blog/developer-blog/xray-dask-out-core-labeled-arrays-python/ From d57a8fe3d08b497dd8945c8b0d706743f01dcabd Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Wed, 3 Feb 2021 20:48:58 -0700 Subject: [PATCH 19/51] [skip-ci] New look for examples.rst and roadmap.rst --- doc/_static/ERA5-GRIB-example.png | Bin 0 -> 32739 bytes doc/_static/ROMS_ocean_model.png | Bin 0 -> 77903 bytes doc/_static/area_weighted_temperature.png | Bin 0 -> 26018 bytes doc/_static/monthly-means.png | Bin 0 -> 454794 bytes doc/_static/multidimensional-coords.png | Bin 0 -> 57609 bytes doc/_static/toy-weather-data.png | Bin 0 -> 37844 bytes doc/_static/visualization_gallery.png | Bin 0 -> 43053 bytes doc/conf.py | 1 + doc/dev-guide/roadmap.rst | 88 ++++++++++++--- doc/examples.rst | 130 +++++++++++++++++++--- 10 files changed, 188 insertions(+), 31 deletions(-) create mode 100644 doc/_static/ERA5-GRIB-example.png create mode 100644 doc/_static/ROMS_ocean_model.png create mode 100644 doc/_static/area_weighted_temperature.png create mode 100644 doc/_static/monthly-means.png create mode 100644 doc/_static/multidimensional-coords.png create mode 100644 doc/_static/toy-weather-data.png create mode 100644 doc/_static/visualization_gallery.png diff --git a/doc/_static/ERA5-GRIB-example.png b/doc/_static/ERA5-GRIB-example.png new file mode 100644 index 0000000000000000000000000000000000000000..412dd28a6d92c0791adfa2f314eddc1d6d58097a GIT binary patch literal 32739 zcmZ^~1yoeu7Y2$TA)PZc;Ly^y|vzA?qb%tcg~!%&yMfgdr#OaRe2IZdO|ELED}WpI1&r%UMO%05a0nL%aroM zz&~+UIUQFG2Xj}Ccg|*5D(_q!Z5>=~t&Ab=X3j2F4)%h)z#lin($&?`MS_pd?*D#( z*TLC>uQ$0a1DNE2qk^sr78ViJzv~`WS_Ul^R=_JoI84(sW4Fa4#Z=zw`<;I#+uok7 zQHgd@D5b1|?Bj=UAfh?W#SvlEVeOQY%}sn2 z&1LnZ#J$GL!@1}3MqMkvNDcGn!80cF+QrRO3-d-bkAMX~RlgH6bp!>$eeA&J8JcCd z|9cZaNezdP6WnjUkNfY=Jw6!h-~D!_SLA`uA>;@DuiL-rp_PX4giup&9;LTtCc{`O1504J(C6ikVQ#!w10>_H-P9B|5x-1%E)-jsU%8>=yP=%N9 z(+GtTq6+w04b(Zffz%_Scd5&ii7J*atT!Q4iXB?!xHk~i3m&Q|g|AgkyOe=qM^erj z-@q5gYeZ}B-^U&GGWwoC@9w|2F@N?5HSx5Z{#<@}32s``q5;3}DeOplz;o+kJaUsd z+!EDlPJ2%0`0y#7FW$KW1>IhOrePjKk}gA;6LtOk#U0_Y0@>ODKS48&4!#tHC+Og6 z_=e>kqW$G^V!OQD8sp~e_WRfOV!X4iSO$+A@Okl!c%Wr(WM?EJket`9zwxJWr6hl~ zV(wwY@5rzTJ%e24Q0>H*Ym)cZGOl=W-1)v1XXD)p{Ayjoa?hceeEpth*pJYY%8~Cf z=#Bug(JFLM*A83uUoP1=k8B8t@M`VcxCrRFC-e$?+ zoBH-LDL-Y71@9E6OvN*+4ZE3M(F1D;1$3+-jy(gOkaZ+oORKDDzh2c(bu z=3PFlI9fAoXWF>EBcjf@dV@7@YTCvu#&601MfTd8~lx)D~ml=-~kD;k@T%m8A_nHP7+sHhzTFyyo03|zQCs|zU*ts7rXX*%U&C;qF=$CRHKqt`=j3>w=CWdd9XIqd!z^E&zO&m-9KLV zE)rdPX6>*09!+ZvTNv^ay`n!?T7Fn%xfZyYhHEbN>!MX{6 zvU?is8|Pk_l^bD3lh!H+x*5EUxW1zcj%9=6hQ`_J9l<(|&H7E8d~9qfrW8D0$Kf-= z1OKB;6088Mc|xgfsST(0*@oc(uMC;HkLpMr!~UBG?DKWOjj z?`~f)*u`rsE~Cmh9=fNSqJw^Af^667Um|O%=M8^DyusHI8+QTNtvmB=55(rUvDt8B zux<-TbY-I6zH2ox1Rdxl}mhVfZyz3pnaYiZ9P zTH3$Yx;yXTel4rw$@0y7)HB&-Zu`AY<{gX8+Vt;vcLFh)U*c_m=q_!#+yghRE;Kf) zuIpWv9PW8^8{Jv%NIA*mbG^SBTw=k!g`Vnp;HY^pUv0bivWnj0bC-@lvxizp+|?!Y z9bFQNk(}Q@NdFzx*)wEU_;LOY_qz7tO5ix;JGsvgxXx2$-%Gs5;>7z{wr%+OPH1^_ zn!oLy@6wS@cF_6jWtl*VBmaGzaF@POKADGjqh9{%95u5S7r;_t5|KrL!j`WG#xt&r zg0vx+l)ExKUU2LQ7NS5t5$VB>vPKl(zrQ2%EKtLu@Iq1b-e%+Wx8ZvJy#1Dt2ItFT z6YHsO#aLBSR>b&CH|)bU_j%gip(fxvx7s86mg_#C*n7)Gzei45Dw@v30{|~Y*=E~z!TQkKrA7PNWp<@`Y9DR14d1*yH=&5dg!ZZoA8zK{Z0|0&cKe$C zJsh#*+7jN_$AhmqQ(RPpGK!3N$tmyQAPRIh@2EzJ>?svDQDBM-xn;lhbwok%#)jf? zUZ)wgozw8Ax^Hd!K7o8V*)O=_%wVs`{od=kE(MXkeYQA%t#|z3=5weNq3^w2Yj3Zy z@h?NROGj@?wgPts{CcY2l6k|hp2I`l*R(%6^4u{xmb0A!`7H8N(1k6?WN+HZ!vFqe z+I;lea0{7Zd?!PE-IlV#qK#;2h{A*hsQP4JE{mpZNH|f_oAGLJRoVUFr4aYJ;+IWj zkNt}~sb`IAZ2vN@O4~~dT-1Z6BS}w1Op&Sk`!YZIi=tlc*;q>D`z>`AxHNAxlgDm; zm8k=BqU_!F8u5EWd;bjE#k}b0+JJMo>2RDNP!p`E3Gv^;XZcDGT|@~8bJSiTm}JwJ z1E5g0FM=FK?@#lyW28BjV*1PltV-wLE>Q2yqjeFqLWIJPi@tl=xJG=?&Gd-#vcPP1 zl>5-?g)~{SA-p!cm)`YYqIK!h=#QbZG>in9C(bNVj~p5&hyTptJqFMZBEM+yY5a_p z>pS6PVhXRCP}89iD)?Hlh|y}vh70`*e1W@#`CF%D73g31ks(=F?~zIPq!~fWXJ)LY zbb_1Riv!w63wrk0{)%usISgs@J5pURC)HbD#RJ)8xebS8Mu}QStnZ<{>z2u;T+;Wh zKZa)5uZgL_r-lzxSmA4_zmN8k6Okklbx3Q%UFfCDk#sg;GcD8i+L#ewYprB1(h&{& zniRTRP^+V?Qh3joBwQHGHLDC^QqqyE$9UB?YJS4-K0N`sBvhIU=zI(|%l%=hSeMbj z4wkPT0hn(dVGa%&Qyw{B-K!%*)P%?TyN` z$f@$!>*0nX3YaXj&pwULh)Is}WAh;jB;U8a$Y!|uc^J(i@yQq5a^?11WLxb0RF$``v1XXJwX%DzZ|YOH8+R?mm#~m=&alO z-ecqHsELcLo;_L7xPyfDpmz zNB& zf8x3f{6uO4)~K115%iWw+9*u$_UhOzJDRV>ukX0_lR2nY?V|x?bJMHl!G!(x&aW z$`H33#s8hP2?_!x4P+M7D8(-K7b9!ete91Dg8ny3dX$)c=J;pHH%8y%YHnnR9=F0> z48Ps9VoZ2O@4xSHO(~nN{`84d&1K+`e9IXiz#7PZA6~^S!pfsEkaq*e*Fy4?{s-&Z zodOLH@+m>LsmO1*{B*|uAikroH%-O zuD86MuXy7<4eI_=Zi&bmf{kz(btMPh(VzdBL;K6s3}nn zvM5&d0aR8bGkgo`t+ ziJ@}m1@YvEWfxRoZ|?o~wj1XJ$N+lJtj*JaSBOjp|I)A}4ye`gqxSXonf3v>wH?xa zI^fiqI`InJh&$R2k_&~Mty&l@#w-8w5CHc0zB9t}H@aOFH38T;<$*(cM6zZ*;6Z*< z3a&RsaEM1J#wywnt$4=3npNQT{Jh_Vv#!*znB8xe?Cgnv6`9E|pc7Q9A)Gbzsl7pB z{xn_kff|8Ffi3MzUeOdIc44IA6b(qYduVSo4n8S&*k?cu$~6ZiKyV%yETJg8I1IKH z9Zw6VLKOHR3JQ^hc)pCgs^L`(Vxt!UT;=&_7b8?cqXLK9=;g_Fvi35tG|PD7hHwJn z4Lu$5N%|S(g&;9rqII}w)zQAv`#GskH^gFwa8*z&;$W z5s|QjOzu1bJ@(f&?2|rR(D4E`fWX~LzPAlG6+OsrH-kD$&ze;eovXO)fR=$(aU~#W zD7+XBNFXG>fJ5=gU;E!d2yy*m9XHtjN2y)OnSvE!MF`t1V461J)#{K7Trg4~cb?!13i%@z4b17#FJ{`=ul+Z9&8-}SkRcF{dmsXU#6*pVqi&}x|cDHKS1DTzc0u`|eAE=yL3(FPgr6)&l@KiwD{yCR{ zuviIrC(o-gi*exsVaEkXIco#J21?Xm6V{v)|Gq!0&lvYTKAFmiPTcb{ zv8M$zT@|U7Xa3u)&O8JT#Ig+_`2VKMD#%&v4t6(xD2>g5{bjY~^Wp4U+oBzCVSc`tv*EH1rcjXo* z{(1=GW_0DTH^2YPyz;x>a1mZ*B*{jOZBqMTXY3!!$uwhIc6pTxp5R_|f}J7z>jJca z@{DFEtoS~&v=mAE*Mjor#ni2CJ*~g@XDS20qWndM%8xFHw?mF%iyoFAH*d>0{K~v@ zQYu4RcHn&%E#t)U=jw3d*99Xdf%O%7rvW=OFfIvqa%&5=1Fo zKfg$Vq&;V$2UEu1y#z^g#UFv}t3RFBb0f@qvo^!vCXVT5Ypm}WsrrfFiGm~$e261q zyr;|&9RL6LS{CxyCiohN;vz1zSk-ffm!d%nZciD@lo{v5!JbliE*~>=suS0a{KXj> zrW4L{T0Zu6uBj}%)D&K!+b{!U@1gFgv8^exVIWpLAYNFCaKl@ zmOL(Y)R+Oij$mCi_^t@*dRPPrsR^Q0d-a$rjAg-t;Jw5AsU^l}+-)Ih(rdL2Kf?38(0K^- zb*(q$|2qUUe0Fh~;3gK?J@nip)sTFu*L$oJhhF9NkAFb8@>4U6zv^i*eJ|i&Ptdq6 zwB`d^s{R;Z-<8=bs+fW)YMI7;@@@IQ?6@(EnS0^3r9ol>3vUqT2b!_MFJ^k5%t+wH z8n9dNgyZ4HK8xOlz}I5l6FRzeJXF&{7-AWaHfzCoRlIpo6Iy`a6OiDNH*KvrW3?N< ztF_2~1iklmNW1+D;v+um$WS;pVzc0iq1LcPj;2ew0fEZ% z9PFm}; zIkjl}ZE*Rmsk_bvw8+o)#yjn`)6agH%w{a5DWt9%JN z*RvEdow|frV8+vJ4@{@fpfk+r)gov zPppp^43yL2R@?ULh`d_|lZuE<$AK3KQNn;}1wBXTx;<>#@Ur!Arc39;4R4*RF05Yr z#h6FMt5&b8Z@z0jl5_r9VKao^aC9q=9QoJB`btEKaeqz0Of@+6ced=u`-Ctf_hhh{ zA3>Ys)=1hv1yU^Qvwl1=*_h^mI!Af^ez`0`(Li_3aj=9aDDyxJyNhk4wEaNmI?;4F z^Dw*6z)^Y4dAFJs9gaqr_Tq5v&~-1;X|dUJ+b7mc6g~FuMN%{FOq9sU>VN%sw8P@S z6~8KHYSxie|*5>CudA67@3yf zIs-owYOW(E+eSv*`Lid-327pmX9^Do6dsPdub&&nY}wXbkybO;3Tc#9m_G&IEQEvo z&OiD3_w02|&3)ne!9&KPxYzE3`9^j9S3aOC{q6*B{|3Q972F$VMUl&^Wuu;?G1mSi ztpZ|z$}=J7nnt@yy;WJP_{yk(Ml5N0pJKm;abv#NRpfa1;k<+mCeib0q7t0=PwIl| zz0O8|??1*+SSop5%|5*G=vc9)0hq(kWvp*PNv+P_LcWD~nKcD1ehQD4?z8VPsSdJC-uX{mL|RXF0vqir=BM7 z^r$^x@m%59gX`m}UYk#}h(3Mo2B1)N$}T(@>sVuje&fH5DaeA-(`E#eJyfKeEsQ6{ zI}sng-%<9G}#so8@jKF85^U6B5<^ z`*~7A`>}w^4Ue`pb)^*{T>x(we6RXrOXoV$(yN92gmbaP{S z;Sbvv@6sYN1NbvW%AJHpzO7c-?K;}Ad~?=1v?O{x5*dbHgAfnt&hszf4o!6yZZyi* z*Qx)+NR)#L>dnm&!Z@R4Hh=8yCMt&IlXiTA3@){{dx$QPZ;6WC(5w|p@QPkYsMbQ+nK~E4cwtj zO{7(i-bond(`Iv2`IQVql?dnc-dyF4V%y-kg!M3`bHuAY0LWa-j1Zy#xf&Q8zi6@< z%s}OJ@XGm%cV4bwKjDm~5^jaXJwjt!g#d?f9_~2&jJLIA3kc1JnO01}-!*MWzQM;i z4kutK5Vse^9n?!F^`L+15gIgM{?*b9<|-+FJKVB5m}H|vRHMH~mRL^RANpC<_i z>qfKQ&n}^48Me@QmZCIhEFq#1CJ?Q`%%euR}^-z+;6y} zB=aCHtyT|=f0oNscL>uPF0cll`N!!EZ#~!=B~PdVj9Q?WZjcqPDrP7_*Gxnfa49N9 zguZ_p@#%ft2|w5FHBF?b%6qA()u)jK`0S zynku)N_+935G7myJ3tFnM;a{AQ;@6OM@cm~@&6mm{z{R_KzV>!|7BZuJ(N@>(Q|uJ^l!@D$w^4~kk6T#(2%@kBCLX%F_qWp zbVL32^fhyjM0~VYJyGINX@r$HUIEu6ePUX;K#De*5T1QW+0_I|CrM1zUK~!v@yL}) z;Jp2M?OY0`FpwKqSD1FB*2;?up(6ZB_H{nT>OIZ@zBgYi{GL@S40zTSr!#Gg^|_FB zGZ7g>FpZ=g+QJs&aVZxjEHWwM!C7(C!=rzY33~dyx!-K%z#hZFp(&UX+yX$0W;CmO zV(n*zDT;FO3@tZJ3U&U3 zUvc~kOP~*-<m)svXG_RRrna}D-B_cC!*p`;d zZm*)dO!5#X+T^FE`yqVI0NEE!L=RMuc3dVA<%N5TnLl7kVHZeIlFu$db4Gf8JoLk7 zRm}eoq5M+0&iYCBBd|tDi49%~w{|lff=YFOe48^$bY8gK}esx ziB!dDZ1y4VbZrRW$L+n(EjK@SloOpvV3 ze`Ggk6-=F9yy!!J*;8%RI+(d!66AOXNzc=?lg@sw4@3MB|6Ky|7meV+tkgTPEdrzp zS~P|p_AjSXo^h?(CMb?5Xg#>%W(;U@xVyG~f2D#yACDpNT7QEG3bMqRJE2-;F>;r_ zJ9AT829L-DQfZSpI#%|&7Ie($zZADQvP=-Lh$x$VfNZj(TJbaF9!C)dZ`4$CWUn~N z60aOdGH;OGt!hiV+?2`Q82cQQW3ZBvsmry1XUXln^3QP4wYj|kz( zlPQB{p3W9S#yH*q41q)8=I1Y~+9(nz6bKD&qv+g`vRK&=svbP3?uxQEHGCeuW)5$7 zJn8TIyGhckPsV7ZeSU{J9Ha{>OqcpUr%35e163`d^DWPBoz~m`*N;Ml| z%WLJox@{4Ctse|0{7N5{Ta~I3Lo==Qj*AxEm--SX&eHFv*bCv408l90yqviGK@q-Z zcPayUEIXvdH^h5znGr2@^kYaX`=H(l$auLHNK;b1-F+oJ8YE^q4^`rC zdx&s}TD17)`)O!z0t9wX*Hbw>CiBfs_FePdzp3KK1d<{pc=HZ*%W&_NzY`j{4b#2- ztyK4Sux@a$n`#YYm>Zrpk9MRbhV%c9mD-NrMQ^PrFhBOZvVr-*&0Ch89&8&CS8$f*? zzlo3ICODfN<;^p{upQV_&V{5I%3nU4=Z=jTy+gX&5-ffr=w6 zsz2)r5Ute8M?b;yfbA#kn%{pruyya$d$EckSOL{FCy;9-JYR1R$*M!{KJK%0tLVTJ z8Kn|MEx;PV@eohFgs-E7`opvQDdP3sC%NgeCOeO;V6PGUT7__ij9glH^N*}rg=_xM z^W6H2`V_r}oZTy+ay`P4mi5d@)kv}n0IDAQ>C3U-1W6*kmZT~a>SU7bnfRr0oaR*X zvRalvSR>mS7ev-hS88C^ma5y;QF|aHR&{`H(*9zN!yeA&a}IRV?U6QC?UP7Zp6)RN zBGt5Si3@nStG2WpK){P}0Jya>E5u zZQF*g=DAr9JWx>+D)KqZcL>ftO_d9&DS}e?-%a%}>vN1q~Y`sv(6y1!~u0 zO^bY^nHg|^k_wsB!R0ptc#nuW-r%d3i12PH&SyC6E30iA0aKvlmC#mfo;`%0tYXh5UZ3tAtL$Rqvew6TC@xNIrQq z8)dPoJjG^M2dPvVs~&9(*VE$PmI%IV5YHI#r1@Y2dtbY=VqfmP-0IXYU5#iOW_~tB zI}&zxH;zx=G_5CY`?1>L6X^q9R<*?Hh4W&%{u)wba?#q@>~0dZU^(yTOQMcdNRurIMqtvceMJFPt!x*?oI8o=Z z#mv*Rd_4_i5SP?Ve|q{ zWSn1R|Ilar5qQ0RW~J{+GT%_A9;+h84-`x$p%Hy~4O77r(q;nE8ZY5Z2d<4)&Yx#F zhaM-tYN?!$f}J;2=jAf%s7Awt%=yj6hyIkSf1aJGAx_mJS(5l=l&^U27L^kZ>iS=r z)`#tY2{rMj-DB{MBvgU^oWN1sQRKjxLcA&1nK#WCHCtU&Sq~oP*k&mDjv?8cn=MhJ z;mRm~xxeU3w2<2qM9a_*6j{Bi@^=n19r+uiEze~274Skx2={GV22ont>Dn{^Df9tv zZ3w--Y0@l^BQ$;y6f|8~m=$@ja#ZJd!jRqT6Y!^E)Q&;^D50ouH%Lyug^`TDNm(-D z>obwP#mej+1q0Y%Hx1lmvK(!X^q;FA`(pphz;%rFjrV|txY^CC@v9m_WA<#TRJ3L^ zcjy#9zFb4N_RmL~Bq^y*PH1iYOwAsKy32Z(& zFP@4CqO8}PZ6^IqIsRAGy1@!nQ}E(HpgTIVc>m^D>e%>gK61++rTO4o^r*h{2q5%z zLaQg1{pR5K^^rHeq|Y_dqqO(3E}m)?mXGG@UC!faKOpWlP+sOsilBz4v!xe7d|}q2 zd*$Tg)0dWW1=61`H!Hog0@ME1wUpl*58_D}nBapKP1yZ?l4~#@0Myx zYC`oOWtatjVB127A^Yq?)HIVWuc3q7ue_tik8mQ6{;H9=Qli1ukzI4*{1Iru>)t#D ze=wIYV2^l}e?q=|Q<8Whb;Z4~elkHaB&V#et)D!&qGzga3nadzUSNI*>5(IZ{aNB; zB~kn-3$`$!#szL@hfS6*<({)e&nLaJcs{PJ15I(n6uT*s_36&h62@ccgccr$tInsR zRHR~Zg6!-aL`Kc#9HAPA6RHiSXnu7g^GuqYSy+58E__#+ zl10w%c-TsqpqZ5Zw?9Ya+VH=ty;Y(oBb>@aCcm4m|2BV^+G-jCWak0L@{S@xG|z=@ z*disPM4$C4GHBYA2L7-Ut_)+$;I165|6_p5n2*#@M>%tW$BXGGh|G=kWr=e%OL~aE ziH}um&)+(5rJh`eG;B(pr`_j7eJ}9*=z8ST8s@w_B311qq(3puIqAjmyEbT=4Vr#$ zaQ`OD#2trC;?4p0)H8aU-6y8T9Y-0hJo@peHIfuOe%XL5Q7@jL9W;xa`*Lyr5Y_OK zm$eMH;+U6};vG9?I;OA15o`>bKAX0W?9wC8xBKbF8RPlVa28w8r(%}4+C*?Y1Y$uM z+&~<|@AlM5o5Zx?_}C4|!*<%)k=v4A0DvMad}_G5Jd*nO%2DGHo5?-h@A$2T7_-r8 zwL?4i5F$EGVH%zTpO_&yj(@vDEFgxLOd%!EQ#)18Nxf%L)pBV?MUb(AwWKW|JMdK) zPe}ibPhH>W zEe~Xw_~T{pLfIk|NIg@%3|?3KNm)KSnO#_ksVRcE1@8mpytC9+FO@# z)R02Iz?o>xgCyR~vb9euN~##`a7yfu4VpMT%C^@CoY@pNYjM9jpS2s52vl~I$WTpI zzNh7b>)+Ik=M=vT}B{JWEn}C8&*s9P3 zDj*WGDuaJb;29aZ1Bw;J+Q-Ry1U)M8O>RvU_&@ zN9ReP44GJG0Jl4vz3_!>d1o+)>Qi~d{443sx5F|n?<#fjKC1|y_kS94OsdCyN2AJ{ zX+0MNgk#W$B>n~3U`t2-p(XEd?hKLOi784tj^BFJ+0L09J=E}tU)A#obk(%Ovr>c; z45d5?#&Tfi88O6IuGk#afU#f}>&7o*YEg>o!=MNRHdjb8M-kyykIAL;+Pz*J>nt( z(F~K3iW%0WE!lFgg7j(~WCgaxw^*JYXq&c~T_=7ho`@XXoUkWe88s1%T&r=WML3S2 zSBXXR*M7S;a0puR7c=$q>-9c9lsVb>GR*M zr`NDeyNyhxYgmi^tVk6|Omn9GPyqq@?ww0OxIvo;ml}+w-ZjkZN~cIDo;w+cOpVgX zKT5(%x=hHkAZ`mmUw(;QNi;;lM@XVT4}@y})X_P*FN9IUS?W{#S;XWyY79BtDle=G z7`3ru7*pTPO+)@9lyAQ}vLCTNLD#2DrA3(V*O1%CTt5bnpWDvp!-YjAGHBkhI0T36 z-Y;CBz5g5ibrh}H=Ex!?gx(MMWxjYh!=Nv{Y1;sLR%(b_vHeqstz(kMn4?>tm z8HQ>iIe7Z1M#V}M8UnS|)6#L(s;`0UdTqK4X%0TmvJJ+4H=iaail@%USUnwu9!NJmCD% z#^kdCj&GV4qrdSFP5Loi87w>Tdr>L@4;S7#@h{+W+aK%*Y%H6`Mt$?bbFtcYWbwII zVg!GUEV{8nEX#hcV5Wup`2D#Y6aRboi#Ge!^7`Z@BzYdLLMQf>7h6WNolmfj>Uz(vX1j5iy@73Y*~{! zB?Wo3aD!HF$>_^f->N))Gk%ydOgWJ}@TBv`1lCMcZv?+pgiBinNN{SgI9gVA&3={Y zyoeN4VA3*R-6__qc=tF)!DS>3QPcg#e>a+4>*ps)IJz;V)vrgov~8a}-~g?UC76wI zft4}!3*#2#GXjN;VN;2_kv24ujH}`CU4GdT`rp-d?Fs(b{FG#KoFqHb1~ynng*y2d z!Obl^)l-q`EQAoqdS{l(A=(tXcp5qG31rC0ShB3X)9G-VylD6?cOsh_6VW#;-kYb- z6{cQ^=7ZQ2R_zFGv=nY-468 z%760~c1?9)xZKlDGCUIga?^UV8uyn?gN-??>n7yrVY+ICJNr^Df&HRiq?*AQR@>3O z=o9HF;lPrZyD52k{Hn;2gmh!_FTqBN{Glf<^(nSbj{}1>nlIyJ?rlkq_?%epEU#2EJwx>i)dfPtaak*bG*^=4ky8%dxR zKQdO66QjKC^!;>p+v_v^cXpJ2-8bYhU7~f=qj58UF4Of})SHZmAqqk=r(DxHVzxtE zRB*hD1DxyFWMtxoQY(csFyg<}en9D)AJ?KAk+#s-BNDBn`;x#zF<)|_pL zEAWP3dzH-|a6 z$ll#J&O8euZzBh};nceU1`LFm5V~^$nSEZh2DC z!oH%i;Va0)tsPs;(#JNX`mg7P>&{Dl;PzZZsk<@eC86SOS<#~0zuG(yo4nLPCKy-;Op!uNw@W&%|6m7QMaCp_40LR}{O-)xz zNsQhOYvGL0noB9z zwt}0r>20zUFY8%GpXZ{(kW_LRIe*pzPt(G|v>%K!)wSO*zfN{@J#`}3+CwpAQWs*T z(YedYO^qB=%i&Y`|R|`lOW6M*qsAhBI2j$jsHqdsKB{JFPl8K7Yj9QfFdvPX8a~MH?B=& z(7_3ER#X~j)rj}BZ#c?0nyJP-p&enZBHm>9bWeq*XmJMg;(}NoL+rRP9Bfdh(L@!` zP4E*GTk<=aMRcAzxAg2?(A11#qIJnHmxB|@aJHAzE__CH9GuQ#g4Q?2SGf=Ko7;N3d zi3j=v(-wYp6?tsq20nSz6a}*s9~MD>Dj~${u^1p;9|L-nRJ=AoO+RZ947K|M{W2h) zu~N0x#qQkrND@7woC`mh!?L!{BAJWvuAbR_d-mjakmSGG$#dwZ3@-dppi1R#Z~lvU ztDnUNdL(QTE=QKt@lpEZ7s@8%-NErFc9UVh%r&RXl8Dij{-2E@))hn|_6r+S+Yrs* zb)eje=Amrn4{ZpVSfqvX%mn?cfxFQya5wp~PBsa>rnt~r=3SP7uenor1-YE%OLA(( zR75B~OkW{#@D_NkF{RkVn@6E$w(XlX+R#K<*LbCvU%cMh)*9q+JB;$ZVNyGicAprx z|MfG$K117bREVT{t^{b&d+Y9cmM-3DKM;grulP_8HWY4&A;pu|m^@j(`we($8)YF=C=i+8ER}6Z`R%scN_Fpv-v^?jV%JMY3 z%tRf`WeGqh9)AVZbKk15{va_Qmj%5jE`qsgr^4JTejro*@&Uzib#qEjIg{O!9uvH% z{->Gbnx$Ry_7}>86hJ4<)ECGWY|9gPvvwQgnO1bW%X^#Ji`Gmo8-wcpaN|!b5(YS@ zu1qUlppps~(aJ*mM?}FIlvG~`r%QS>r*ZR(WVke1UwS;Q zGPh1Hx$^8HZkZ7gq1|AKu*w`C80 z*eZ0F;mi1gIK7g={6=r%TEg}xGbozU)yDfl-#7w4%j zKykw(uyVol!3T{gTQNtv%EF2Bi{|Wa_Up_=OQ&Y}9xFHLBlHX(SXtDMsL8F-wPWC> zTs#|s+@e4)4`xrQw>uWwf}zcC;%SnDfa!VWjEa^iLBBX#<$ z2FFtGA-N-emF!6Y_2Q@2*jd2OB+_^=kq-0h1o1WhihE}}**|9<^W#?ZTe;$&L=5sG zfo97{Y5|^2dS%*dn~6?VcbJYSCP@o-Z+ZY;-^59fZmO~+9O1I-v_wFV}&2AM9crytp(oPH^q{A+B;!5}(RlW@|k6`o&> zvMD8clXQgw^opfFURCt+g33@iwYx*)%>uSi)5jGe+j*eJSRMbDn#)Oj$_7wWdX^lK z?j^!7x3(tOH-4TJt_|w?z!31Xe?{QBg3&9Q_g}SYOvHR-D|yGBZ1qPkT_jT?-ay&?YtwSBaO8+K<*L}J`&Fhr zZC^a)^mgQ3h9h=+=Hv9KY`12ZAs09mU1JcBrf?7SQsjhK`}=3#~b z$WL=3kmd#eV8Lis^KHMG-BPzsO9s#fwzoUH_KGF!TasTdOxZ*2oR+px&22{hdIkv3r!TP$qpDGob% zOrxpmr6y`$lbbM;szVHoSFLcW{`vHFyuTskR*wiBJ?q+Fku80v=SJXOQVq0vy|WKS z^U@y*VYH$LM)bHCHpM>4+@=wEb({+G$ixf35Wn4#+dSwQks0u5v%6{?(2-;-DT*d_)WoebcWF~Sq+Vn<28tLz3 zJ~aPElI7Q)JR5C4>XAnvvn}#yPj3}weU`)bcxcaVML<`5yhX+L<9C6W7)i(y3W6tJ!5nvu*mH8cmxUmj&OFBRZ7ath!6?k6{t`@8>R$*zR4-1Xdpq)I}=` zd=v2e^3yNWRztw;&zPyk?&KlsC<&l!POnN6z18%plQh8&HMunb4+ynUm)!l0w~;|D9y&$Zlb-V6D60O2!b zKV{@H-(W`C`SLMQD|xmLe%VVX6?5^*>H|+P;h950kr8fdEE4pz2FvoV>27}A&sx~R zlN!n1_E*Paa%=oKVnA8hpo!osyH14u^|5;O1@rG~0t0Q5F<&Tu%C`HMCW6Dm^p7-? zS7h2$Qb^Gt+v0lrdeG4t_+yL04LlyAou zmAq_H2uHk~IjM&DWZH=n$qVsivwb+c_C!Ygb8UjDlvh+&H&~=?D+pT+=iLbaYm&9_ zqRa(o-EQq>-0&fwz3+-w#}}3e6JdEBUCg+Rft`2jq)4lLBe>5xQNJY<`|LOxB4j!J zS-`;jF|ljU2jR-fc|iO`FsHhktk08{{Pkn#Jc-u%m|5c;BBSvvbAe##$_GQlI2dMBsaPdJRcInX_u__y&RrCk4Du*j)|9u1X2fqgW zJrDBHBjfcK^@V{jCL<3h-g-C~JOx%&-@3VYB42O&&uf-1Tlw#xr2Fhn*O1L=TTCBS zpWEmcNO*ar#ERXQhWPPiVz@vCB`dw9*yPC#j^0W28#3t}S#U2A1<#)-dU&_4_xZ)FGyuYS?6&kH#m4GxiA|h zU*|hc=#!5`FFpa*OH4$n25Ypi)Oxjj_X@0P?5qojdo5b2T`8!xDLJ3({cr})$*R~X zDaEduT$x4TZ}G;jZ4J2oAE}Sh&bfUMhg0K=D+V`G^o;91U^2Z?uIj4Xn@t$ z)!EDz*d%%32o*}t&Ri`_AQ5ot%yojG2&U@SefE;X@p{GHkN~Alt?6}CgS&u+Xwl61 zDxha6eYU!{%<}naeq)s)61Kz+x!1mnHG>yY#DjWSEAtd5@TRa1UC{l?xj~ZUtF(2l zrv188`FOWi@%?$Aei)bvQ`Oi#eC>)m>Nl>C<=H)6jX3~Zc(7bX)rwxBqUrMws`I2Y z$UR*fpSQ>xL#JXo<=?4wE|Hn3$D-kNA^91bjc0cevFBE;(L^!1D+kyJF%E`dL4#kG zN0MR((7plk7x$BG{5B&s3F!C92x~gd$RRPFEm1YfvQa{9mkN1Ho!>N|l$498t5{G` z;<01Mh5&p3+&CeAjVM&P$AEah6+}ZF&VK6o7x&H6%m{URe-)femu0M82^T&ck*%Hu z4%n?2t)H>z)1WMnKhTK7BRP5_>mF>{GY)f9U&U%CACF)&!s-vrCFX0>vCl4}ra$5> z33_g@wA4eVDqaO56`O5T=oIgPMI;nxwXY-S8Q{CWF2r=oyVNV21*G6W=hIJ*&mwkmkbtL|khe!8eb|MFZEh z<)jx=&&k+V??zy#o_hk-jBxs!=@t8Oy2G7NI`>Wu1tX28LU*B4JFChFTZ{z_XC)PD z)?iU4_%>EAHbD$;ZSK5MhD?!`VnY@zyTpH*pelI{x|i`B_|*Ur#HU$WsU$vv^!(i| z;{n`RV^Nh98|Y=PLJ!ClNyKshUXQ@GuK*4ErRXOm7N8p?8?1{sT_Fodb^>GGjlQcE&GCF&0uKS0joHt z^lYYW3R2f&V!|NXgA1-dc=^F5J55N`82j(Wk97mn1#P6*&O@Q*hA$I{6*H-YbJ6f~ zZbV#?eZC8WyLy>8p_t*?s%G-7&{`ucBDCf$i=Al=v74gb;Y8~p+nhLj=)G71Mt{S* zV=_+}L#bQvKx`*bRf>1p6gn_rNZMk?laytgC7|_#_b|=1grxs<;)q>Nml<8+a_dTF zP`LQGLo@0dS%^Ppyj@vQ#b*WJh^RNxUr3e*hQ8OZJ&D?RwtyQ5O*8)>whaelumxIX zrUnl=s6sAV*G26P?95{Ki{aA8I-YLZ^NF2WaX>WS6QU$NkoPY;i`_hT&5gdF1XaTj zXMEV;4Vewz-VmGuW-bHs?)270);L&Q6j~15I%VvtPq*xHw6E)9mlR-&Xll1&LcC7YZWX6XMRN~(FbIa(> zLe>3Rm_k>XhhU$BZ}|sn40qBxbR|1i!L`=}XtbyC2WY27sc+qa3f+jK*hw&Ie)H|*;boiuaf>qy5{%j zt|j-`AHzc5Ua(9cAB!NVG!zq{48w8hi=D*OiH=cPPxT101PUrw5+-NbMx{IuYru0x zPcJklw`%L|;&@k8T~Q^nounxcJ&#eeFTN=rZL-qAUMZI-y?)oLc47VJ51t--TlL3A z5RIYu=c#tKQY{8_oNez!k-Y?cj+j~5xZ|dpz`6}nr05n_93p>Feq~OhK@668xdU@rRdE-OE22H^#NN1HJv9-=%?2<~f-J~NFl5=A#^V*>GGGE8Zof3U1`_XXuo_|Hz%`Eukeh|MKUt3o-$lo}~eTv*rEY^sAF@ZOw>Bt=jXV3*3}rd-8qT zr&)A~()@BNP0)(RHLgt^GoZnT+JX}AIFZKO=fbF0es=aS;j=V(_JsLyz|65MKoLuze7q84oWNQHaFcW*lwfOq*{?U%a_DJ{By9oa+ltYe! zj#NusO|UIY-Ni_m-;KqJyv0Zv#|R&K{Q7CCozdu`Bb0(zww61#fap+GiV2?kuA*d8 zeEIU~&0O9PdRbBx&BPf=|WG>{?l zrcS3?=KTv?y@!dFxafjR;JO4O`@=%xPuNfF2C=J$O;U8&!}u^8LY2 zaw3u8B-eEonb~^GT?2v=*=D9YwP>_0jF*t?sS6=iq#%rWTz@X zOMmjYgbH76#NbmM`?%41ve-FKS8l6_j^60{Vf6Df*yFa~VokFhl6BISuZS18*(Ho$ z#2ZtvF9A>hTnx&fXOlmnwewP*>SRw!A+b;Ytzo}WG+nlAyqx4_CgY1Y|a*kft zT;-DW1PK(TUK@0s+`!wOl#KQX_Sd3h-XU_d=+r9bbe*(xjX39n@_S6eqK3U5gZ{qJ z`czs#3mzUG`7Kn+pT$DbjBfnIu71TK=6X|WsZT0y8z)Y;PH`l0mxrBuq{L2|%H=Y6 zZvIUC-r+@HUaNyx34E72g<9@=T%@w>o5#)H z73@Fiw4c9-SSKC(w9?T66)L@xh=EdVh!1HAFZpT+eo1uIQ|9n*t>-n?PK%SC+Y2a+ z*ce>ajPk#gydBnmB1ql&rv*oUtp|C9s&nwu*>V&~GNkXt5(_ZpM_7V2)>KuixiV+Tmpv;P$zLi*Oz>}(kh60$DKSSL9;3dzO38Ku(K9tVr5-4!r>nE20 zU8o@H)`wU2 z*5|EsOzJa77p^Z;hcwMmevL%%8vYhKWl=g06i|T74VagS9{JBMVba!CA_~LBGUuNt z1I9?i)%|23Iae?XPEatXYL}PssV?bJ@KCa5cWZfjbvEagCjwY0!^WmF)jLb*4t26& zaKHGWo`A~_Ahm~H1D-E{g`Q-1`2sR%Ml$I9n8=cw{oBKAt*(2t2+cCsnuzDRaJO~F zxG~|9y7@FYzprhjdePG=J=Q(V(U($!xUnM1y`L7?=N<-RbclF|r0A0);uZ!z#YC9b%Z7$)|^3ZxDxXku|A?tJ!!JsgA! z{Q!;#>Pr?KEsY0eP%emyu$!&GOFUt$*9hig>Qog?f}CEPKW8m;`rMl>bn~Tcb*{DL zcET&oiLK>8MDqa}X(DiQ5=8t#{^47*5nxNVomr^fLc_yS2ttnG?Mo z+87d(o02U&K0;)-^?YtCxCX4p$~6-f;^)ubkw$Kjov)rkvtb?7Dk($0R;ULnJQ35z zK#z64tW-|_?2o2G!^Rx(4RL{@7jdy)KEO@kT>{xAy+R0p&V|x0yQujsvG;AcP05_|3+_A?lf(mjt5C8MpBt5NrcaJ85 zrPRTSyU^|Y*)wc}drEnYEj>@`dxd0Sux9PhQ#QuUo*1I8Bw@CNR=h@x06`4z zao~3B6W=uB8$X>8sp)l%25dZ%99=CR zq<+Jdh@+>>8Xrm~D~HWoSTuG1bpdGS3$N&oY#tMd$rteI^w;G^l4qCdN(9Kj%+!t$ z;fVH@KZx(s$4gHRugl9(aFQTFlrwetM)AQ53~Y0~D&9_pqBmMQV}Y03PAz9Y8E zWSl;3L2GU2F-`gaW(=&p63cb%b8ESJhe-VAR@cJ6E#-`sQ;px%4v$g%gb|nfg{4W7 zEAyPZ)4WlWrfk=u^nZ9ar`3^cVD)4fUNtK{C>X^*QNyh08Z)hYEtRw*nyC<@8o~H- zI*rZLURiRK@WD!gnoj|2%hMu4-{C2gU^6#I-9BUXvyzeqwJf}q!@s{a$qcbf>S=zM zQ8Xh3Jms-p7&hka4)za5F(602)Rj*}^$afM&4BKGggDbW&#aD-oDJOvHJi!z- zK*|Awq@y#LQ^kCNyoN$lo_gXVLuC%{ zgDKR3R{=TBZaBG$p+=;3Vo#9XRK>pjl)7k=k|!@#iD(riYe-sKtHmA(KKe}5ci3O{ z#Pr_|zEOL@2mHP}o<_>Jh4SG%o3^hv9~EI$vN7}wyK_^gF@1TYD>9Tv+Vc7OW3+PO z+h^{`YvVB2`YxG7-n`0zDF?3f z#U3Ew@LW^$u`}fy7+1E$tk}axN-#z2D&jBfIsD8u62B~Y^A{3K#l*BKPPJON{S|X3 zP~u{T4x1(v%$|O00qMkPPO3Z7HcMu~zjHru=yS6_#Tw9M@-!`NAA5y#^56GBwgZ_) ze2SfovLG;W<$psm;(nuuD(m~IX>L8e)FR1G-D8P1s=uGA5O1=|WJKTG5^#Mpxn%CaqZn*lLq_=oX zGx+nZ08KgYM!q7)yOtKRUmIT`GtLF9){lqT;(?QaGlihf$e5sTO0oat&ZFO+MNE~# z@C%KSm)#fRj+fM~%x7iXM9rf^FN^b7#;qPNxL*r%wn)L}r zp8d_GDx&Cih2{#ilFxH66#AVce=J56&BOC#SH=c)Cd&~J3h9^CM80c2q=2-8!oO9~ENeT=84%ncz*n$we+ zLpJ1k$y^!wK zdv=Y}aGEH(MGvhUr^&GhO|X4HpQtLAtR!j1f@tlbv-99)XTy3Uz;$83bg#dp92f~K zA&VfaL_T+&BR7FGr0lV7d2ss&wpm{9KuDZl8ZxunEo6g|7mChow zY_=;F&Dm3-uc2v=tL)~^g0SaneJ5T;2hDOXN|xB-AiKpZQ&?Qquu*M5pGj?6H_1Pe zGnRgs69cpL20|Mb1NGGV5MR|Z+$D;>JbjpC@zsM9weHGp(@x7jz&RfKYEHt@y}Ok+ z5!jgTxEfjEzM&h{l_(toj%69BzI{oy#%2mzICP;uE8p5wnUS1hRnoRb-+t0gXqp)7 ztTf&=1H5=X6Nc6CL-^Dgxta)<_4DgOmR`%Zoar(e6FqZSh|vd2*?ktX)ij?qj?3f8 zB0w-u%5qA?Fh^Vg%YaYugQrkoSA|0UM;U!s=lIIR1{qE@<*IEN99lW8V!g#UUhgxQ z1awG=R)w}sj9QCqwH0wDlm5OPjDpLDs`-8w3hxg>Mqa0BL-%ar?L}MOjil zo;!hQ{!?n)?6m%XERC^He^h_~?oxDSkvu~N;KSC$O{it-kJ|m5jg&n%snz@%0?fEF zmp>!w-HluzB3C|=oW^DG%V*U5SZ@k`Cl+9W5UcD1N~luu$VyEi(YVw*X>z@GE>>>?e|CK+aX#lcgV3pA&8~%MO7HSLi z1JZ7i9xkM^Vm(J0{zT#ZC;kzkuF2nZ2MXU;J5N%~93EPGB>LC~egbhfI2rhE8c%;?6GFcJ{DU<{%(7z9)#o+tIm&K7X)djDES|HJ$j$i%xV z$p|UMW}mCLeR}a>#BNbz&07l+cuE4{64!9l4=H1g#(Zt$*QTk&5o=ayxG=B}oj-b& zx%7I#q23@3)hFS^BT>BqG{|W@r0j!WS76=9YWJyBul zb6|oa)fJ7vPqeu@zfKVmrG?IQCARXCb-6@QB)N~b5@$|S3_;0;txAi&cswq_A5F<* z(YlyvxO=2bwJV_7ZK)2`Gn)G;Gsr&3I=ztis{?@7DL!&qqvB7?vx^f!x{f2NCVzSCn2H&IX&sMQBCbZR5nZZ8{!9_WGp>0G7ZD18DM)fHVOTSBSz(>u-`YgbOM9}3wb z6t=%Q*kgOI_7n3grRYdm{9$&yH0k>r7;s@r9a}ay<~CvVTx-I{G*Ky!N!$Li4X-YT zAMjY`XUlFXH6xoul^4^AxFvK6kt-Qx5mkmB`tr-jlV5LY2v5Iw^N`P#fgm$jdn#I- zIxPkg9f{^~XRv9*m(E&;jNO9Xt)infPDum7?6I9WR}Ls{jY{DUDqlrKwV>+8N*%>& zQez`sFlTNfuRjz>pQ8^ywia0IU{@c@Y!x&^0i`ea+z6O|81?0V1m9A~Zs?IGx7I|l zep&AB{t3#N2V~^^-RcvbZlPNiPXx&d!h7PBthJX@D)k$YJPmDQZr*;m$`vDEHI031 z1mMMOY?_stEA!sj`(E|}OY0=&GD0ATfvkT@V>#Ht9_@6!$M-CK<)du;&{nsV?mdsa zeCBqzNFv^1%2L9)SI>vKBoHA3)nmdAI%=M{nPM3!^^SLJEs;ehCTs0sv} zdlo*Owi_UC(7dsP3*0YWbL7jTRGu6DZ?s$4ArDEm!s6`z%0DaU8nfGyRbY`R3oQ^8* zI8Wc%Q?%>HZATyc!JaZW*(!WbiIF7ala#Wzp)#(w(WGNm>~=BSs#(-W&Oy(p&s7iU z{?P4>fEZ}<`OOGO4Ftz~U(qPJ(72QgWB4$%0Li%4aP31gp<+MeHdSHY2 z{;c@uod@g7Eq#JQ50$N3O2|_E(|t2STckFEjZvW6Pn~MooI})Bg|T&w+=B}Ux@Li~YeR-(|-le+yQOh+Oucvjs zZ=0>Z!yI@6=l$YDRYH#U*`&$LNg^|#D8oa@+WLK*qo9m1hoU{A(4b+bd~u&DssFm0>E$%sp~EH- zNXaJgsNB!F#}8*(4@vb^IdTCF3WRbI9(iuue_qUH1pH>XXD^gsANf+*h=MFfXsCqOsfZ=8Ai0&wb^!?w&lutRB$3m_0gE7HL zH_Uc*u9fR+v(cArshQ7LxFt^CTX&ON81?FIjBkb1>MD&_v^Y#TBF7&nML3w4ASxu} z;iGI$YdUDi;9V7rvckK^YQ%Lk-&EmG^VwI+VYUbP(lU%a$?BMdDJg>$zpyT+b$=_q znVgVP)mZdRm*rmUQmK>Q$X=JH zQy6scSlB@d;AW8G6YY4zC+RHe@J$>VrH9YT`Z#`-6_>)s!>h>{?IwI`)ur}a@0{2 zW=Ybu?3P)cv3qS^Hv`d+DwTdK#SXW?Sh7xQFA(rjIA&HFulzWbKK)C(*qG}3m!rYO zj^mE{1RlR@on$v%&ApWxrEU0%MN?JfhKJyC-vTOOpoh!g=y9=wWX#``(MxOCR2mVfS->9d&zn?&Yo~Jj*ux- zCp&4u^M(){+I%bBr$e_t6$jAKqPcSJ%iwSzhk=;Y$61YW;+$dc@__#!)>8t;m{D4p zQ*_JVY89bAS4nKVr2%*@z9)_TD=ZDuvoil_y4ePMTHmPNSIB(1KCuo!iv?^mNE$qx zc63EB_N{r$f;?~G-ifbNVGN&wSEVQ;K4l<`(&uVcp!4x+KcYYR|MWJf-LHLjJ;!P6 z$02Xsd3n)C!_WP`HFM*3e|@n0N3(!sy=|ya;iKbZk|RllN95e15f@=@Ju2%@Y<8bXff5RU|?6tVs{pDMDuErlCT>4a1Zp-^(B1RHJ zw!y)=SU{G*t@i^ICEIpEwK|vUMA9kid!4_vFi~F3j#*b3`pI#xG$QSW^$Dikxb>tz z3-`Nh5|ID?r#w2a{|hqib?%5;2pteR1m zxmte-qsd0{htCnzKRG+Ig7j1QnDy`Ta;P6CnFU&|fI7-+O~vmccB&7uMPNtge`|x=F(HG$UMX&ADNfs5 zXP|B0Rb8#5>iPuANz|E$+6r?XasvcXOUjpUhYw?Hsq}Sy3yCE9wypi(R|Or7@2_=a zy;a_-EpJ>R-0gozk31fzC;-digSuV4wIE<4{<ub-aFNJvcB zksaSWtcbYzI9v4J`1418tRVV+W|d4OEQk?*o&UCK`1fsk zCI~&J??@f*=dlzsH{*gV=dj1!P6B9({Pua6w56Qrj%jfZ`Dojd|2j<$$*-8T=QVF5yPwm}4C4M`B)xZ6`>993 z1qgz3=4Ai!|DDCuP!UjFk0l#k{xdy+^-D~!s{OQp@dMHp`hQa1f4tl*&cJ@Ciiv9$ z^Uojx?WdG!wvOg9UB0CTMfYxpe*Abjf;Srf>-=vP9jVN}*9qe2fh`)Xc+*84%g;irPQ$m}~3AM?4Ylut~y$%7X&ussmQ5Qri`dtfTPT6xOu>YIj z{-5z|YCv}f-OL<{aqh3DZ>Ywnu^m!aV+RJSoMM)-LQ9o+9|Xc1#%W{RhW1nMSdaKm?@kn zC@lTPGj)>GNBQ=9!Y?_AL%bX{V1h4bnf@~f#Kz!uM!`KBpRaWP6|KNFPX=mi9cDNO z=$y&}uFjv4@PY$GS<5o-{H}N7Wcq@>jh=xidgtG#63%?67xO<|kFzI@q^=q*&RC+E!3x-r26*h#yi!M26Snonn2) z5(jIDk?f4c_6?acp1#oL-Q0JheFrrV2kG$khd^us^Y>%KDP_+HNZ@R*^g7o=8F!3C zjBY6u;K7IZY@W@{9CNQYVb)hny53G5$x{9P?IE}iL5aXUV>oP&u1{cLAbQ1S^6#}Y zd~xV7soIcQzy0NG_`&~YhMs>&_$f;}Mi&`j$FY9sl5#bJPnSy$oibz`CGuC<{$Q3c zrZ8U(Lz>>THk{apJq({vNKH1>mtCIfpaF&L6?WB_cgOqQXv_TS@KHZ($G(;I9-()7 z_$AfpmT}i3d0Ar&KYTAyu9+~%I!ta+e6H`ET6nu|k!5LkJFDCx>0Dn>ASA}{pT8IM z&u-WU=}2i#4njig&0G%GeO8xFDzZWAmWET0c}n4o2v5t7Q>XuPaKcWnhAEDBiBezZ zQ$)Dbg&#J{y-~du$ezrqry9e*j0sO0FzAq!<-iUg@+wnbf7XO(!tL=FyV#U{%1-Zu z7JzYj6Q`bs79HL$)bNE_wVHvH-9QZ)W*lfDCc&IQK}cQ_$O_+<-kHBfuf~|3#er)U z;#*uiuEihLTSj?Cw&TiKRO{5K=!p9gnMxD{Vg!&^XG7}T?Tsl>MRB#7%ttbWdYDsA zQ8C7T9@_kHO_I}6_4PGHL}p~WUen#{?Uv~{PS>ADfBF7)j_8brw7HMRZ+y)hDJFr_ z$wqTt)r8lZ$QoNaq70bb$v^|0A8u$DwYBaW-EoZNc3=?H2WD+G+09i2;U^i%=(sFi zP!f87IO}%AG-jo@4}t|zH!;+Trpm}(Q=JkKmNZmGE+2ndO<EHJii)_O&kQq;hOnk?RgFMKL!L}x%Pv|r5!O139Zpl^ z#_1DEH1WKnMPtP1Lp#2+B6NbEgAuADQU&*An#5d2Ro#IkHv&f%=A|^PpNBOXBYGhI zrGPV^^TS<#Q{TkJPK+IC&(*6(yM}$-1>HN`bF57yS9GajRY6r4v>VGOw#J_96GjK# z<-tD8yF_z$SCTReiP$YfI;L*4=cErjb&7DJp^au12DoW|IyS!2juyvTNLjqgWQEhb zQuN0^m1y!!zsL*Xyc0{m524=|Se-U1vbeAZY9IMHb&>8_?4ah=R%B|+(gne;Cm56# zuil7TFLgVO%b;{;JKN8)eCG%Xtl>Peixwx~Tigd1Toau2xwIA<6VrDmCWIJL9F3hc zngqZX0Rn?_`p^fvp3g&>6B+SzTs3GlrTXXP^p-t6$7I#J$smn5n%F6DnL8uJ@!#mM z-c^|W>5Eg}!Qh9r7bV@0aN&xQdhs|*GP|4LTTYr+ysajF_z?EF9DmutC6y2M-dp%kFFe5^X1}5N?5273 zjJi(%W>#gvnlf7#v=NktVJ+O25$1tC*0-Gz@VTdi4vBrOFZ(>bv&HuDY>3;KzGOo>R3z=k_se7kqt zF3!bcx3rp+gpd3=)KN-YDEm1G7dMe<7QSU&_hmyRzGYeFWIw&hg-jEMpbN~~IE>n; z`O(tWGK_t`nYcUw^=NCwzvQe5g>OhBa!l-YnTe4piCv3Q4Z9O^#b(ghRdsJ%TjZvZ zI{kHN?8Cd?F7zrr7BOb<{LoLCCMIgi)hsU_@0Q2YQ|6ji9^4E!eOgV4tY2}jt5xl0 z4lFYEdQ8hEOpwGK=piK>_r7|GViLi7FlS2T~o4lG5 z=1J>RTJd=Hpyx&h10TJS+F}Fv=te90ZVXnXJ9p4mgimfB`((Tw9f|O62s1``!GK0? zb?E0TI=@Jj1kKjq74yXAxxvaQU&+eq%X1xxu92Pn3RcPqk}9Ub0HLl*+5HBzwh5e4 zcWwR^_gQo(chyoqbLmEq1p4(OFGAsa*UOGbqJse12GXX3pQyX(CA$yiZnEF!MDv`a z2S4l$>ctVq5}mn{j7Wal27_L4n533ko}apHe1|I0neYR_?D!+&(Gjt$tnr z#*sgt+|3?KTqU(0%Fg8|uAnz!Q}=sg2mSGG=f^dFlx{4D^?JfsD_QMKFs^WR$zHxv z5qoLfb9^Gch{|H47K$462V>&S=v~<-;D?rPMJ+nLryYL~9pqZyr_b15xeSyLCb|p6 z%QmslSF*;$BG=Ia@gJ*F%@a3ewyej`jZk!xopGG)BgY#^(ip}Z*ep^yHvH{lfKvpPw&GbSx>6lhXQk4I~QEWwfFQ)mT;=o z@!L57+(ye>psDfP+%Qj=oLJisZI(45z;mPt3q!^K=LTFI)L!im5?JW5$g0VnKX4}B zHKBJc`m>d^BLm3=ld2x(ycfNRq(O1##QA*i_ERJ$QfB7!uW$b!Ck>GK7-}%VILsa$ zh>^a1L_7y(Q%VS(WMZfNh&wM0H@tfZ>M&O~lf$1L!2t>X^W?w3=n-VMk&EA(`VlA0 zLZ2zw=VXL!NKbFgG#IJJ?2hXU^IipeSE^0pdJFbs-+%6RVW4qUrfpX+0ihJc$B*<% zY9{Qs`KmI%Z&{4mi=C?=?p$f51ac=3Tk{?3@FRTG>VJQLB#P>wuVDBT-Ki-S%0P79DJ8L(99EnA$GRvy&A9v5ov26Kg~F}DaxW$ z_oo``{~BB9WVzu99!XXW6rI6M{kH3s-fGwd@7!?j&5ezC`zX3V(xkdg=FG~#>wt^u zXPJ*G3@!fe7ewwYA}+R#aq34e{fTxBmUm!5eeOq}4om*?jBR9&8X+Zc?JB;;rD!XX z#H(w$4Z8I&u%H{`r#+)L!4MD2sGHzB*8{5=C}y97SLLX0gF}Z@3;S`c?^o#)%CpEC z?>p2jLJ%)W=A-s6FROzs-e3P$;rs8ko0s&Q+ewm&SzL(bxZFTqX($?vF5p*YTK=yO z?wggMnBVF&Q#e!ah8kaVCj7Gu{rfK5UZ<)A4EYVD6*LvRYt&IBfgC-h&i+3Kam{|x za}LUCy5h^VCFOsr=0om(TDAZGiPNmIi|5`{2RMX6lb2W9a-so$+$MqB5q59`<^#=N zesiQH?0~gb$t^Mvo>h$bTc=D0a?s~_DCIttwWtfP&mMKXE35|QVX@iETBtMgO>LXY zT8QlO!G~&;m}l=;_&nMTfDa9doiq@My`NKCIWr7KRf_O2?>wJ7iC5=bZ8^X`4+EpH z&hOXNL1MaO7cc1dj{(RmKMC z!PtSU1%}V=)!FiqntN2^9WU(N7ldaSHCvu?i~I)%58Wm`ZUL8T!fBaRS;8|6!n0)W zLJ7Bw1HR?TRJlcyZU;`{n9QV;LkGff8^^%fm=1leC(C6%Dc}gCyGK|FlnuxsT#3JJ zSLh5qJ6%EMP1=VqmgSqCEu(fYAT@2iG@0lxdS*BJ-y64_kb$$!@z36@YWIu0BQ$M@ z*-%+V1)|NoxxRkrTzhsA(c~#sbntjit!K9HuA}SB&gdiY*pn>JO*F`zs_ZtihZt2D z(E|G;L5#@@8MuZYXaZvIps)<@r(sOt{orZ)lss#n*0=JhX*RjB@xJKrr5IFvR93IK zuk&0_vkWDfrF5yuTtO)*>nP0`JlbRJw$dmi+_RE zyuYt{3qPN2)6f5zPgUSo^?Ww^x}aZ=I@H~+i^yx#n{LN(x`{?Rxf{KtD;{1KB@x+f zP(%dUc@?)$5*hEvtR@hdaC3*ApfSN`80l~D4AC!jWiuMk^f0>82;Sdg^X#Pmax{gy zKjswI%o7y5?3IC2j%)jx3I6*XXclxNu_NUcT{2_>gS3tL$9(%mJy4fur*eek#4(TO zo;6iuETGUYYfGR6F+|Eg7DSqgBHQ)dE|P=-NK8eNP$S|I;c1|>)?z*iFvWIea0t+T zw{(kEEcI$NvGc#&0?kBB_@*RhyJv+D$WVDa7sjxA@lLLDUvUnP-jzp~e-8I!V_UmB zuJG7}ejj(?Vm;w0@2#+i5K zePTa*?+KNc6+?vk2nPZJf+!&_tOx=EMhOA}N(%!8{3ct1gB|$da1v2>QnEF5ay4); z0g*9qva_;vvNAXP>|)~JXl`r6L<{_({`}R+$17Ng>w-ZnK17QCBg;Gd}ZcCkimTce&buIFdi`?icnXYE_Cht+UR)TPeRyWD7(ApW8}ZLlrDT5iI*4=t&#E&RnU71xvX5ZK;Um zw)On6Q4ofK!}dj%omqV(!%M$u~2 z(OMRUumN4LZQYA4K``V(FvR=Y6Z1o>Wqvzp=a}=gQ5(u;Wn>xOG*=@FJxNekUTg3(@%=qB(pMrdw;MHP}58 zJBO_ol|Jh^iJj@!7tk&T{U42E!t1-^w`9I=pnYAZ{2%BCmQ<0h&qvKcu)vvSw^E^> z)=;aMb*9l)7L>rvI^O7I*qoT`cXj%Nwc+#myC6 zug8&gQEBUNvZ(1$4=S_i)Om75{dA&s_x7>M|4FWL($2s%(391Xn6Ws}I3PN#q z=SA|kaCJ7fk#^`UB2{Pghs5Ef?o%rm?0U25?E}}jYk@MwI4<^Fcf%bRRJNHl2a2E* zx?q{PDMyEay^2QG9A6sPzeG9dxF-;S)vIlw`4{PaujRnf{l@ zf|O{1uDzVGEbx;+6l>oT5HX4y=ha(*oG}=}*=*?7RzKXdeYLzf>Hs$lm>39N;kcjX ztA%qQLNL{}DBU2k(7fP@-}-U(vCabbvGiYAM&u;}=f+@eo+PrP_cE)-?~a{qwZbcK zfV5Gk4!CbT*S5pAxmd)8y9VV1_p#Z`e4cl#hX@AY%GLWLw#9=k7{c&%XnByI;@nbS z#Rw6G(3JVA?Kv;-WgcBd_}P*9u63xtrDKdVC%!~18ka0sl_0X=)UzVq9RwSGxg?%a zRq}K}X#QwRhkFxw@?ycZwAX|YbJ2dR4#&yl#gcdJD#bsWh z2!#pll$)&20$-8Wi3;ME#69}bn!~`TnlNDVQeI z^?(N567nh&jjJBq$2no?TF6P7>FWxXESA%>lX-a2g=>Qz20ip+_}VBa6{QpEec>wB zS|B-2#~FYEW?j&vOrcU7Um}X$XoP#P70o&4zHVAD{jp$L@cPW+XXC5%_0WS+!9}E^ zg@6$vc>xsLRa<&z1riKlOSZ(0NzTm3%jxAr?wSFU8wNIU0Qos@)^WKO)~g&v{Q!Yj zyrLXMK_Yp9cER-9cw$M0=6o;=YQsli;es7?NM#tpVbfa0ak~ zBtggER<%I;Dq4gomgrKb6vel|s{3c!v&@a2@vIpDs&@lm?& zg9!?!=!WpR3863<@RwPkxg>Bde(lV193q=)vE&YG-8y=o#iL9txrm~`s$klInPW*0 zMggu463$P~GaP(TacZ^|d1HMO-Fv%PGt4CC?P#3NtIhJwg=cZ$GjLTfTaY(-NgmY2 z>E$z80-9GmR;Yq$V<*q49KjIX{j&}d^w@NJpw!l&Y}Ssuw(?YUU{(N6hn*;Q(xENd z1?$u7G?HX-vt;p>ugllC$0@;(T+F(RGdP&_W^apB4cV``bpG5^cGZf9?WUttvlER< zzGk?!A$8d_Ss~I^g(q*@DFb(qNOz2%5H8I5_K)U1j;G`v&EK ziA3Np^nwre3~cf|F=%x57ABNU7t7O~W;V^|n|*!twN3fLcuFXF$rr|J+>cMhV>d?C zA;;}Dn7Ib38gAyp8T$lta59Rz%91NT8k?Kfba-cPyc!_h1hf=o!B)>hvZ4!rhwHba zZ8GTuu% zA??94AA*B(wC};DkKx{s1>zl?Szm9yn+#T0u#JT~iRnK6W{Ga?3Tl<@y87r)$I_!$ z=ziBeyyX4aeU=C1rN%pLxh#upB85Ukm!L<3BG1oYe>g>P{cU`KITTad(dVp{_PpZ` zeF8MHr~RZTTW`C4oX&sZYdF7;QR6? zn5x`>w%GRWUPGsS)o>?+{1AXoq>Du~sw2KaBbN85X z-GK~_*JX_kCmo&m^`V$rs|}p59uhB&VZ=j$8eA9D<*MNYE2Bf(Ka&TqA*#W>>LKLM zXD5C=n#IT)OnSyTFXU{}v*fKdP*y&bnuUfoFHR3|qr8K{E`sr2B}a#Mz0bcAs13B? zpK(Ki8|tAl?;aaa-q8yJ=T0+}OqnhuRO5LnboQVKOX`59G!^j3%O43D z?Wtnm?%JGteC5V5qvZSya;#yUhIY1!|%!Z>MxD+qd5Q#eN7{uZ75>>K)xY zZJKsO6F63s`c;qAt$b0q;LQq;nkp91f(~MtnT6seD017Yyji?UvY~liX@`2Q4qV%l z=$giSy;Tby+bTZ`N1E0J=RPY>lheh-w*z0yZANPXKQZK~t=_}CCqCCynnS0Vs3F11 zQI69E3KUS#zoKYjoTC*?m(i>w(ZCY+3Uw(-7GG$!(4i7NV*thef2fi?*#%t)#$FIz z!0QNI9qS+H`Am(f@&6%d`2WMIj+-XO4NEo_BdIKD#Z0DRj$8>&%j>XjS+vAN)B z;uF$*k$8ED)9h1|oN4}Vssf~C2%SapuZcg)G-`wT@ja{@Z~ld^^OOt@+o~f9AnGay z=M(ofM_%a@_NS`l>dVv$p?`5RuwdqFkfh&|`7d?v0rYG5 zpN6DC-2dF10j|LI*uI{hrl&psTs0-yN&epf!wOe^9XN^>sP%A! zf7;*ReP4VR1Vf^7R*;}OmLb$WKu(GNGrTN;)iIus3W%*M5C-_M+C?Zywgb>d8irw- z>&A0EUB>?Me~X2HKr+m0EQwDAMX)q}k-&X1j{N+0LV1r9RuIUhrA&J3|2-|pwC>!R z0@VLr>i-QlR;t{$^F|S$IAYDG3at++tdz#l9u3=*%JKfQ>uDc^f)GI0L&-AdyLlFF z*D0%4hi0S5MgNH|E7kbKM6fE0nG%}iIBWP05fd#T&vPCNi~mW2Zc`y^YZ`b=YW>AJbEo6^82hc?43@Lhk2gpC zXFhKpoG!;rr=mp6p;_Ol%)F{^l#2i6SJlYp6lt{Re$b|!M6G0IbF^?w8pAcOyPcXL z+Mb3Jn&qA>+Fbp`e{yj{Y_sF(bPHG!VT?G$(dGsFoVFvP^p`B^uYd`&n zI!BzEo>zh#-%H)XOAsQi=(leidY%`MLcvHY+!;%v*|pvcJWo9ht|EVHi9u;kKY`D1 zbw9pTk!;3n^O^V4NxxZ^SHl5U{RrWIQwcY~ja!y8!)BtR)@-aWH`fsT?(33J{0;g) z1-6F>wYtw z4!D{O+e$A*QF<&f3|5ZGx#f$M<@{|0`9JrfqTb=jakA7{Bo>W7a@uGyLs=-D((MP0 z-}H?$F_>-5Gj2}L2XD@~ao~ZNIcnhFIi8gwkxoxG7zuB-dF}dO3Wr|53$wPc?PgX> zI+@<@?e(tnlgqq8nPz<$&)sqyC^(c=%&Qg5au&bc@uT5VYwkaxq+&3d&JlslV3_el zf(HA3M#hw7gm#ON(#nohRANzjk6SBJnN(p74V)xhcM2-Cie;h~4ZZt=!K2py7YN>y z_q%Df*u0+ioOie^78qP-ZA^D7u4|_IDnh{4J3O5QV!n(3nGvY|%px!E4tbS=KPB z*r#6su;|HLt~TLQC5=$R2ZR6i3-@mN2u$>7*$hqvRn^~<1yXGGl@10=tUixZS^M+V z#B(~Xc&*1Z@JTu@I6Xm#TlZVhYh_*w^5lK26!)0_DHbwemzS3}VOR6!MHy~yFLwuv z^_EpO6S*Q~>eaa-wE2j?gphdx;$wpeypt93M635QJsf`Hm@#W5eLd=t%X1lf{D(UU zsY>`||A|yOxhtHmLws*E1BcNVrY9J=$f!SxuNtdJ6nLsss%2j^7{P1eLXIO+YTiUR0<&0nX|kfDc)Dl<9>Y)8;e1gd`qTJsG;{S zanpcCtzPBJG|KMJVmVv2;<9AlgUD88JctJDVK1KRn&@x@gJCbsD94p2khKjOPpn42 z5llx?`?3Z6_a_VBf&I;w%i^WsRHdlbrF)4X7P}ntd5x;VMe4%YQM?>PfKEH9#nVp%bcE7RUbUj_peVIC7 zRw|O+*-6sd9pcEM{~FEs`Y>*BJ8w;=`)x-BsN~3^ksn2}c)j+gije#I`XU>YbaZ6W zSgkde<$Q^w*uS^mE`}%Rd8eFpzGc4Ltz~)LE(8zJb$YfhYE(koX<+PIAM4lKjr}JSiaO5yU|EF5ry@ik2C{1af!^L1?Kvp3)zpkFwDIR_# z6t-OV;YZfzwX0LKxcSZN^G^>lpb|);)oB7kBbmdIR8eyBfEg%*oo_`Q)^eJHI2;bfRo=@@_V3~LUO2cfdeM*T z=XA*nuz{d;c6L5mnJb4(8_10X^9JYuR6+GFW5Qm`F4Qh9$>Ov?6g4n4u+Fu4vb9?) z;rC=bNAGQ1^BxLJ(jDNy%ILew;vTJ?`hEFl@6G7XGpurhX4iP!qT_L19(idM`O!=m z@oOzxaYZS|<2}QB%N%JakKa5f$|_{6{{gh0A5(IC?IIfNRH}44U5-oDclLOpBnTk4 zJO#v!aton>JQZ6JOrz_1Z;x10g)(_9Eva+59+BPMf;O!u4e2hd@jnA5njOt<*L-{` zS`H}>kB+oFmw}ikCnsMoDXoCBK%~)aONPdG^Nr?x48gT+i+MV2jW&wn2m(@o5vYN` zBXHuTe#=RmkEl4bCpkBiDr|YxwTXZRgGIX^5kMj>-K%~0i|MLxen=L8HU4h+J{U)K zbr>+WKh@3_j0c3fR-aY+1^Cb!!NW0Q}WKq zspl@SLZ`r}ZZe)W;TkuJZdi6Zi9D_y<4yN@edyh?=Z}l~^GA|YE_2u@`VCiX*1nsD zr}^N#HHFielECMg0jQjod0wUE6~bT^$4p z>_94urM%=sgSFOsG6Izc=v5FvkGGD2H?-_AG9uWDAtNX_g9ZO)dCJA@{k-*jGv;H` zxZ+}Y%U*z?=kvls*KtWy8SN9f86|SfUB$$OHXHflMeU{)#2`;oJJ-C(*2*7z*SKr&bRMzF=h_cuO0n*i9g)vEo@gtM zYL;wT6@awdY)alm3GaK)!lsQNT=tjisfT{P*Y~oK%JZ8ZLA6X>z{G?^Dv{a%h@W*J zY_fsU{0x+*-7u<(Y{$J(PoOt>0ys(A?ib{6CQlj=t2IC_I}Va0(R<$8Q4c*%ysS;1 z(@^62!V&h?jqgFnDe77e1VPUc0*;4>e=iIe>iPDOJ+2Ivu(e@%<{a1~T=!;; z>BvVQHuyw!YRRmjl;s!mJ`C|{bc^|9NM?<;H$UvAIhIjHZJqaF>7CE^HoBQjF6AF% zyda$lb_%sjlz2$^-y+7~#gWh|l53NM3~8&$h~muu>B2xdDX$0lqBf^c+m;zYRlJ{? z-6Xv>mRu!4_0s8AfsiguVL{2HtY(_bXU$^Er#w<+(DSoIqwiTn@2b^)NojUbeeWeC z9D(d+#F>Xit04ji$XdG%!6=ShY@j}{(l)JsPh4Kb+yW}WW}0os2Jm>ly70|8KkV_n z4Fa9xJr2bgQ+nwUY}zhFE1GvddS8U=(L3%+b2{yJy#vYDr?WAj?2=Pc51Wg@T!boG z7^4?0P>!2CF*^ThQaJKjCV*~l(48X(5tXwk~U_sULqw;`V#pt%y-3Y|d)g7FaJeq!kz8LM=5kUo@m8H?DJa zq`rRW^gbjH<4QOm#3Nv`Tt>+Byp(XiJst#rVG6wg82YNWe|H#I%gKtLu7_*3^_waT z;SWMVG*Yr`SU6t{%Fmccu>r&TZwb99v=VA#mx$W#q^b~0Acxu~V3hI2pSvcz`cQ1_ z+TO7A`#ugvs3jSw$0`Ij{0@_-q>Jn%e%|_G1D;#MLGSbGDH?(O3#bP*vX)|uDcb<} z-Te+vyM8?-XSUfJ`d-88Ea#%~qBz6yqIpw+&Rn{{>J2AcaFy-g{MxiK_teB^{U%up zJgBem#_@`l0Vt4NxLq_|x?Lsm^wyRI%2&ho;8izrdhabJ&QCGysG>CrsMDqyUm&xa znv#J&kufF96^U!p!e^4?HCHS>T~s8A7;@B633q&jDM?uNwKp_1}zJq zNwMc^#|ieBO0=l(8^f8vQPe>6+xGN*<=5noOY2q)Z;w7g;q;*uxVW<}>x>>*F{zD9 zpinCOAzM^jQewfVS^)H@qAc%JppM4A1Cls7UYzkhWV4Y}k+;_uHnSu)c-EM8EnqaJ zlNABmidUqACtQX84NEu*f(d4nYH2L=4{Kq?3?MG5cLL<7veUag3SIELi0>s7xM%y_ z6f*~)=i7C|l3C^I+I*Uxp009ukZhon(1%M>Xguj=Q|ctuHMQ^Ze;P0Gs5V1Y@D0b{ z-0dYJ;FW;wJSUV=Ec2cACBdNm9#N{pfP^L{AZSX?Jn3iUo`IVuUs&vduHHRy0r%~U zMob`78VsVJLmZ80>t?7=1R^nh7e*3$BqrhQ<;+Lh>t-h1Z8KEcVUQ#~A%VqS&EWa| zVmOU0+HsVl$WL?_!0F#koAjqPQ?H%h7?1Jk?Iv+|RP zT2~r_jJ5LwxWmFf(=zp%K&hEaNlw;(2RK)GQ5U=y1wa10eiFROu=+|Vz zyq>NGqvH*vbjU-vkD^RdJqW_V=l@an&APZ#eT8tr|kX(N9`_()rB# z?63FR!f-QPv4(JDpJ6&~dK;6C<57R0fPfD)k;10@LP1h&QdXbI*AC}o!&K)9II1#C ziByUc#Qxr}g4Ve{tpscZY-q2EwMh^inHqzw zXe^{&VG5fg%f-Eo)7Lee0*pc9*vChA!)k1x{qNk&>6z{PNyt~EV8rpVZm_-r2$QtV zmlIoM6_x6%Q7%Vd+Eh|f>cMke{`C$Z9Zzd&7)fQ*2P`YwMFj*vU!LyF27VB}L)`bc zJg(|NqCx9iav{vsfed(W9#a?tB)!*1n&Ph8#~% znCK^rlf8s_5nX7Cdj;fL-Gq4vq^o?<$iGMX8L7jh!tJfnJ`AZ&eB;OUwl}whI#&L4 zoQ9GDrTSr|aXCp_6em(s1#`4yM=scVLEnqp0MdN_WU(GT@%Cg1`baeDlY~U*sLMxA zCvrWnn-4%!&$pbbcn`IAfS}{LlJIoanRU9-s-&$gZEw#YA|mqZEif<;`*#adthdeh z!C;KYUzW>(-s{l`-+iBO)#uI2uzJ1)`70&1PttdV~ zV2Bn|j{i%D2`01K6S1wj5zBF3KmeoIim3Hdy5p$9!{tr{E?ZP(=W8l~_r2e0yN4ri zl5+qGT-|lPWdP;4!w>GTkpF15Jmf?bg@^)iO9qZdO-9?;?gw@gyLi65=i4A$Cg;}4 zda}!kW{h^}9YLKB8GjtU)M9>{8#0Hho(a?!a;uGVi9f!*cgt56uJJ1gABGsI zpLJ_4pG3;;U$rFNn-S_3nXY%4#X z;fn%CUTixaNC6U!`~C9{{q(#aNYF{8vukQ%^=7fe837rRIK`>sXz9Q5Yvql@S9@0^TO#L^z{{ z)C^_XH+V>@MB}eh6r$0;Oy-f&U0r<=y|u;;NoZv?VmMXzdHaH;Uja1 zWkqukz%W$b{P?d}(gmX$kYN|Fll z^87L~Bkrgl3NQdR8O~yI*=b7VxaFwgeTe&X^Hnubo7GUHs;vws6pqn+a}sIN|HTar zTtuPUWdBv?{y4Jl*g^Oy{noQ|P~#07yKIacd~RqO7W$Y}m~>pS*ahyZtx61%hL-10 zI7u5XjCe_M=T*`HTs? z3Fl|h*NDZ-$*dl0c1ehB;xb9xQy<6TK^YAN&kxIp)FD^~!~*?4tvuEQ{^rd%(R{XgaGz{?){S|8cB3AU1L0W=VUdPLA%0PWw?VZ{dVnG2C?iV2U^*A z3njxwzbWE z%yrn!8dj~N1)lM=uQWtjb|k~|JJ{k&9NjdO#$^m$d6q)ZT;?hpX^qX7Eam*G(YSK5 z?cKf_<_ID4u;em$IWMm74DEd86CJ3mNa^C|G{DTwrv?!B5iKp8z)+M-vy$L!I9sLx z(#z#D5^vw4zIHfMdQh(h9dwFc^wWdGmK)$yP9!-_hS7^1)$A{}gvie-%IUp#M=IYA z)oNTX>i0<~#XgTTiU!c2R+PHk$D30pSBKTOK=vZw5-S_^uklGMdS0TUbDn-FmsYF@ z^y?OYK)W+givdOvVu`uQUrm{}VRF26%igC$LtlGW^5ALGY-rT5rv{?Jtvg#ft4r3+p^*FeH_w20F z@keh!MxNb%x zVUYQLcz9Uez4HzNYdjwuIv#d$0UbuY>}Ffa1$6yq_>$wJ9%uCwXgSFJifv`S`t3HK zk4{95;U{kqHQA14ETOy7bMdf-kID;y`Px)f@zOpPpv8;K3@Ibo7fPWoUYr*biH15ZIiw{7e5 zgbPr`Mz`rH&%1w?1%nxKSmY0v*+BwDDXS8(yEx>IBOIKdD#j4QbH)%O@L~pF&=)jVS>6X@mnCbq%x}9ms^yw}4|`c-uX#S9M@`fZtbG6= z7^R|%Gz0j3ZKsRo^lv&`?#R;muxWxRM1)KN+G5(KYo#b$IN7)c=x(7GXADEiK6J~m+>#vioR@#_ z)+>#+M~*_g@-QHUT#CM z#n{j7{K~!o!|O!k42L}MBB_EYr1%g&O=k>V-qgI*`tm(G2z9aZJnl}ppT|4ZZ@n4r z(&_ze3)QYBs7h1onD6Pl*Pc(|>jFdld z8ns$i{G!AjlFqM7z{^0HR{_lF!{%{k zRw|S>07QZffTnsED$<_Q*L>c1-nSW~an+qlad))RWzEa={R60h6tuLznPoEFo_+j0 zC{v^vJw}rdUg}*=#K&S$ubdQoyIR0nEH19@%C~QVF{{rGGH@PBUFuG?f36T3`&%WA zRv4aoP(9p-o|(^;pkrmaqP|~4$HQrN6P|YGIec{YtY1z@{Ff~B86FknvRLaZc`}Z9~f#9)9&@DIiK}h zfjD0)l**%ppf1M~x3^#&0U5$iFjPG7QF&irV+e&cPd3=E1fSh{Y0@8}LtOXU?5P^mLGoi_n)Xl0!`N13t@ z7!`+zqq)0*Nbe6pB~D%O0S2!K0=`TqP8mSlTL4Hpje3g@Z+K7ScOA=tHL`)eszN|= zvB;uk2Tpjx`<|_e7wX?!y1#2y?l+u)uSRg~9G{<^0?C(>iZ1)RUTzX6OA12 z!7YC|14dGkumF#q6Tg^gI&q z{i(3M-8?35YVT(Vy$%?1>#?#A+w+AI10xu*ogL<&L?ChuSY>%H^^UzsjQM`nk5Y6g z#QH%yne5(+u(RBJksMi{uSy{9^v#Zbo;F!SOhhsNQX;TUeV>S0T*;S7Qs=grIdgPO#- zA+LijJ`q*yE;=fFkwSu+-dHbx_2TI7y<>NG0@EnHUL&=Uy|T9@S~7ST7;XM2H0+%0 z#j3iF3Y_gCu_8x9`EJ_$bF)wab==qsTVaQ_IcLx;&z(~ygH;gGyYz%NXVLo@d1D%f zCA5FEZy6{;h?Q2?BA}Cfa-LSeZGTx@)Lc|H=CjPr7N?A};X#b8_yV3OXjwt7k#Se? zvi4%RKW+grx8h~wA3@}s!-cRHILKrtJJJEtors*3P5o9F)xv_~9`!ZB(Nh#BU=1(I zb=5B0;!izTH7kJ)IXP>wH1)v``x}PPN$iX7>{F{1+sD!$`@>kOoc7h@%3>?zBmwfW zi8i_d`iuWCsSa9KX?K~_m)$x%mplH7Bgr|^KarM$V>T8goQ?qm(bf~WH76Xkf>qXO zq3C4qO6a?jpw4{i9+)E=of-kAtSaW+Xu#m52~|)-C#VKnDW0W92VG8@hSH(ZM?z?& ziRAbOL@pdM|zTHPbGL<-#V@WFN9Xa$@l3ne# zUwu@rEO*=laO`w51LL0o)P)jzv}yK5MKoF@Z0`kQ<=O8WmO1e*Y} z+?!+ulJd1e*Qg|VQAug039eEhnl0LMjeOsH+;^ZU!QQ5p*#P zY(eum8S+HZa)ipS2AIt!Y~_MSX1FYkasiRySzs6HdR9}I34=<7lO0F02#Y6Z?udMW zyj+=sNYJk_wpeNxf2b<04o*cvP&UK_VSa^@r4ODo8h<`P5gOYp^$~YGLsW@4<%{mr ztxI(v#t~n5s`a7ZhoeUbv|fsASOZjAoBJafZnw2g^QjUwOFxC*SAly3izGqY#or3*?DDjbI`;}sqm$k`wR*t9YoQmq1w&CAtiUc}qz zs*R9%b05QZHLVXz*El!^3vAs7OEI-~sD;7jS2xXkD=;@&QGasZ&+)w9_;S1Ypw!|j zr@s{TZH6NoCc_E4H@WkG%&Hb~DUn3WDyRmuH9`|BPjSz=x#nk)@s9L|6##=}pI zoFQy#t+FL*hQnG2F<5{Nl%`^RwW z&?N+J`(mw92W-JKQ&Kk^u1#G38v2Di5;Z!vXB7fvwO|GbL^t*NzR{%Uo)~I;M01Oq$H!_g% zd(B~OO`k9^N|2@T8#30l@!si`=Co{pGrx6OMV58!&v)Yh^6FbMA(xKeeY1QJzl3_L z10ld?FFW8x0FF;lF<^Q;n6EZEZ?3BP!BT3C>6MhD=R;+t=d*fwZzKV{LkAKT9-d~^ zn4cd2j9!@lI>Yh>gn{UHXU9v$vD{KeLHhkUx%=645V6gm#h|g}x$)8FcB=>V#t#RX z%}LS&O^lBev6&*mMa*X9RD8zF5`#^Pl4wb+LB)-Y76sxhn6N3Z!bh?vLnKa;g{l+?9NR29dY2cqcsy@BA3H}4{o7rfF2G-0yC zt8bhB!A_2Y*I~JthL58}_y@HvT{!3=odizjOiLtbtOV zUZ=OV%R(0W*0%fZNNvnEl3T5riQD!D0w5?paxN`?+spXtl?%ku9RO|{x@)O%tkA|e z%!YXB;PafQ?xM_$;)Mhp{~wk?a(~KJ`l=FNq}-cYN6nP_X%1C>UBwEC-_w{0QRP;P z*!A%tUlOrCAID*KI#d%d1GBQZ33CXRU)iITDkh&Lhdm01J>5eJKW{fnn8Rt{9w(d` zv_uYA?BzkXjm+v3%u%omMxG&f5>){dNGk{y4B_*_YldWT&T7qs1e}$>@XmzTn?Jgx zh{oA3<1obIfUeM^K9-z92h^S*BpcO9E}-fzK_PLU^N+G`DMs!C0{I4W}hSx*g;PWw&dr0DLE#r_jr z$gB@TzILsjX;`OE2Krcaq4-A4B5m&YfZMNn_n4s7qB?Fi(_SJf$1D`{&quo#wcd=n zq|t=S>H2B}4~NxJvH36A`f@o9#hknksg#kB^MBf2h3DDlm4DSq78d|-7q!2Y`f2d* z$#`;rHc-rs0k#Powo@Ocg*#71k;h$l$X7=qjOp@+OkUzgn`YVf9j)C2)F%KU;B#LM z`+U3iOGz#q%oZSSz8c-aVg5SqUhh1sVP+3F4C!rGx$(X44UjrquumGOdQ@_fY{@%% zZgf9!(r6eO=?BGI=s2Z^kvMfA`;wgSpUfgFTN|k;nP7oozFR7=>yE)eBsEhwW>K;N zng-IZjR-p62ZH_5h{fkH?CAwbz(1?yG*E0b7V3}Nb&g@Vn20xu$l#;rn8>HGi;BQZ zfMY{>!bE`4VhE-qNDFD{sM;Po+9(O{jCQWc7zVGhmbX8FI^9$@H&!%C*x`pOjaE-yKrwm2JT?csG2U>=fTv<+ zX66`hRs(hhTJ<-8@wk|MvbEn_>PMvu1szP^I!sspaX=i{tqMg!#x>p2ji{lAQE2zW z7~HV**lLAX%2Yydvc5{^1ivJ`GjY(ik~EY4V0z_GDAq;6c|D}C1<^M2mHQceR@ImG zzpc+VM)ff2AjevQ#S=qHagBJgyc(^u26}l7V9BpT-kFA+JL6e zAzpaIkrspT5BE<|h*b#!8MyG;y!OQ_j7YKhmI`~lK$)yS!@z#juI(Q!{P{Da9f@2d z#Z-T1ARvr}lhE~tuCi=ub!9VH>@AEP_$;l31?f9G88KM2` z(O^Ff$zm?SBd#D9u21(4O6fjn)jx-m8Ngf1z(wIuvbBRt9%_HS8Gx2Fpqb4OoxVP0 zAOMD2DOZ+mC_#!oK&FgQob2@R2|#%_7`Cz46MZPxnkqGu1B@~fXRGab`Ufz4a1GXR zvPB$#eUhBL_B$?JTMVAdyx+Up0~o!h3XIfD`IwTL>Ad^HnyJi}%2}u|Rf%K<3#Otb zzgtqOA@?;B-N)V|eUHe~`D{-t6uIIify_q=nLQgCS3Gn+b5+YA$=+E94!*YUtW&Oup^&v3CK-EqxZV$ZmlHKsyj_B1S# zfiuriGT4waFU&xh=Nsos7l4xW?dTQe6IlRun9IvB^ymTx*_vs{pX)KR&r2@9B=~O{ z^=b?!9i0xAQ(o?{MF39#Hn$r+;5T2JT!}a*J_i^GhnX2QrRfqD|HdP!u}q$Cw>xU& z_#My|gRb;DMu$l>xoUT(&sVD+Rn(R%k)k0#f}J=4%I^yIo#e!ObA>MGSsXtKdDZs3 z=tIC|jhI_?i!`=ID-?PYa#y$$!fQob^UoB!Hh#vUgE-08W)f>y6WAvS!9rEXH!rr| z#K7gu`}sT6NCJzAjuqlFsr4r0Bc$G{=A?(bA1y*iu4*6Hkho?FqM_(>Q^N1bFfYLm zma5IHYSpS*%1&t;@kYdBAMz_TwwwIE^9Fu*%yUbK^phbDt&C4ah)f-4mEd&XZNSMz zV?sosje@k~OB6A(69P5r3e7V?r8bDggVhldt`U7LQC_sOcF^}xO3{+w#lYm*yr z`bD%knLU15%=*BTs5Dt0uQOJ@(?hk(XwVID`#gohSb@N-$lvMvGFIqRwNmEsyRpVN z{#S{#!Vl1RdlGx%Jb09nGOd0zq~!6U&OY;`2GF_!;}jiCh^xW`RG3Z{s8A_sV;X{H zNSJySQC7i^AC+=PRKH?=;f_V`{r!XF>nm@EGs&9!7G(^vFqVc2>!&o%BQq)eG(yS@ zF4x}=rXOWNoBq7N+aTpi(Jkt$7&gZH6tSo08QMrDoBxu`6w{qOL)$qZ!3C{;ajC94 z`WzwrG)k@e336LR-N*Cspy*xk2j10)2@J<{c%flC|22JAjTbE2UbiY)>Hla*D$RMC zZ}R1n!tf6dO{Mbyi94PaD8CZF1~@PZZN-YvqaZLzh15DXIv+k($gWsgiUdnk=73yM zJfmBtS~t%&%rb35EMoh5?#>#pP;WH}G)DA%LN-i)G;~>hRfof8x6sKBw{*QDvQ9ic zNX@LZk%Yaw@858#AhXXx^#(aCLkF8@2U=J_VzoK4W?9$ zZ#9EE1yDe3;v4Y#-&OoF?Pf-Gz;YVC#XcV;V<12XSak~l)F@0O0C1h}E{9Oz@5YRS z%gv4{Y_|A-@VL7qa-~t<605qiQ)j6o@D%2PfKBiF%O6@vS-DQ(v6V(2c=M<2@vxNp zZgOb8`!j!`jI;oq|N)68>ZY7=+^fNYDdZH0GaaAC#4+> zFcd7#9rgoF^`I4Ui3=Tm4Yo+z8~Pd%==O>VDs*vlv=eW^eaAjK?(c;^ex@gxv6J?> zzA*2;rqupKe`%pLzg!8_Y5V8&E# zjK?+?%Ix7C;qagmk-vyAe)th@*SBRC5r%r`G3rccuaa2BzOIlQ#6YSjVW`U>A{MC4 z@9tf>!be1h9;yv5Eh`e9F(RGvfF^md-LN%C-xmNOyO4H&W6d!qAcO%{1-5{M(0@5L!-^07UwV1^}28NkC&bjtJVbSLOt;r_GIuffiw*~siTDZxG zYK@%+pw-^khg|GDV_!mX%_!;XZM{}kcJV<4g@gENZnT@PV37TXPll@U*X4x@Sv9du zFaM})UrNHpIBwUoe*sJIgf8M~^A0)?b$%BtVbJt@oZ=O}La)K(c&VmY$}R6`K-=_B zdX!XU7W~45nMicL;{5LJZqH#Ni#E6AB&m&!P07!nxj=CmD5}}m+A=XR=4e-aJ_bT^ zwAfLW;EzjgHUCu{uT0&1wgo-9GBmHTFl9P}9q+4#AlJWgjii%MI2#9%dyV`+r6%dw1;Xb7ueh6?X zR)EUcP<;js6YmuXL4APYs~FGmsZd?c zQI@C2^NIW4nV&ce*)G^QhI&Bq=!0_CIjXCfRfDoJ@{OJ1(B%5x`JWK2idr7D)x^2w z&Ms}rpr~Cmv&Q(I7%E{E-I<3h~X=O-EyrS z$(!Y-d3RKvcd4^7pWeNGI8j|`upjEl$M{n%g;D5ww2*#7{{`OVRK zt=}>p&5>cTi0e32V;c={MZqey!dqSzuYF%VS-Xw#%nM&xWmNl#3*eD&xp&!Aufeji zvan=4qyCBRhV8!4beH8~{vj_9(bv^$38jbgabJP=g^yb}LG`vK-{Ihn$ReO)BJa2u zD`)UwnQ)ngP=`Uu{Wb8J4O@3AiBBRB>Xqk(RNk z@LFocM2axQgzLJ(nh7jCUoIK)ks*L!aM3>B?4qE`l)KpTJgfHTk!(F)ju1`8C^U1_ z4#Zsg(#)9>!Bp4sy!DC`j0R6jmH_QA81EEG%9Dvs9$S6H|NJ%GEAXbm+C5$X7WC+A@ zbft~FW_=I8lxUm2EhvkMa%q zRh;#mxj55}7zh?#9WBOan2VHIvgc1wvKdf1aG zj#Lo;a!6JtA>`CIs0BX|tkvWy44t3~56_O2y46>+p(! zWN~4nu~BgA`D~ox=31OM`WVX6pzA5J$pISuAki$PJOYDOOogvhK23Zq%O&PXY?JzY=#R4 zntM8Mc8z}{^0o2Ynr2_&pkT57W)%CH!fTm3DV3bs%I8CG7 zFXk76@HMZ~u{qJ9=v~TO8^v^|B3v=4J88a53_b8GEOxBTlvGt&z8aE$eEjDfkPcGk zx5Q`FRha0#uNT?U*v@RFJh6+S7sHoc`2#;2{8IJsgLy32Lpt|k zBifd(&6AVc_1b}p8~(prp)aeX$>hc;n?PD&A1KQsl2RYGBcvH`zm~ z(w*7rG2JM1J>y32{8BJUdN~*lEwzY%T#TxnGVeD=SMBUUB)+AS6gUpMUlSz)PFJg?h<|yZEnku^GyE0hLtPi7#CHbS4J@uX~s<$&!BU@+^e74hh zckQZw-C#feQJQIBKig+=?x*@afXe`QD0?sNlC>i7Hk^}OgdCQW1a%yxYHW^s%NSMG zARtX4i4s@;VDt6ED)o*>k4rEPW@fovBdVx;uK!(fs{$)OPj_Mg&$3@m<%f5!^rNmI zFYb^lnX?4l`ashd;y!>Rlq%Dz;Cl*ouvi0XbCI52!g-a^>u&2ox5Wy%jg3j{`v#H{ z#iuI|#+DTnz1J^OuOq>;kiL)ob**>rnk5e&lzRmJHnchKX}~v)o+sN@{+>%FHAXQ3 zya~quuLW^o&&{cZO66WQek8L}UkG1G(+fr=>IDw3_dx1gCMMvaW;XlgQ}E&CotgA^ z=PM=7WlsP7|35tR7)BsLyl1 zRaW?h%;2fx*V!HZ_z-mn|0f=oBB?lPTiNOQX~wU)AvrXi3VpE-5k9WP7IQca*9fZJi!nCHX8E*OgfbY!Qki2U1%I&A6B1%L z_th&k%qTP|NA$o#cGP!AKx{OyvB4nXv4Bq}Vk@smXV8YeEKERVTnDh-dlTsh;#HqJ zI299QD7+vnm973$XO9^Muk9=+59Tnlbm0&4px-S|BHQxY?T@P$PurC+f9vIwGs2>` zTKp;X*9DF{Coslc+tb98MxF-94r=h4eH-2EBDk3K;Z#-SxU6SrU(P7p zjUmg&o>GRbs4P&(!;C>xcF0lhwT4Z$imwY*{9eStD_6GHFi?qP$N^pv6BouiT*ko)0&%+cV>0j}s4}S%CSof3;EuCF5dPfM%H(4X+O#^0;30A>Ih@ z#%znP5?viLdY9^1<-y(zU&6AD(dP|uRYJp=6CF*U;DY%ycaj_?gnF) zPSP^{%3ow9%3vQiZc#ctTw}=HStTy($Qmr5wYXnQZu_8H zLItnZ8z@?Z3*mpgC?1*_EG?Xz|B@fcEsL1`f#K6n-6_2`N=K<>KZ^)@9+0^j;|v_nEt(*JhuX5tU1e>j4r0`Uo z?>d_iPABWbC@y~w5Y$R#p9pM+(kubt7p{p4|LnaShmB5DVoqPUShDOWCT=12ZzGgCIH(q=EX^PoYmCl@L@?|5QeF?w}_DJfYlIy$0QQ zwN^?+bAIW04Ebu-2#&6&_%|iU+XLX;Io*zzWDR#2!U2*WsOh%sL<=#pu$UG<-Wm;9 zj(M0qz>@nMIH}Du!IQ5Ed`ospFt$AN^=y32C?&PWqR^|K82f{w_{FY?s)x65$GYUN zWMJplVG46_A%mRgJJ}WsO5**50BjDPk|l*&R!w};eMY=U+e++$b^+Xt@c7yNb`K#L zBEqaP#(afs?tqAb6*kIz1-Zxvczamh5Pv=wxzBO3`^Wnct-JC^M_rvl3V#qg?qTVF z2d*;KmcGXb3Jo0{6bDG^!?~aB06MFX`62O*-yvtfukL#x!&Ljb_Gy}}W!rJ%#b^}eLILgZv)O}5J=>$D% z?-xgfLmb=xMroB&nZa(Xc8h=x|qdxz9LKy1B{)|SMr}dw%|@%kJ!;gu2j&0t6oJV`OE=B zX8&1b3%(X>vCYH#(a}+z8apDWj#n2PYKu6f#rTXzvv8u-T5{)Cl=}_S%5Wkdb$|;2Nbw#JuXawHIIASv^yr4C^Fw+>QEC)=`4-A5AZcs z;Y8P|WNqppFh$ijFj`RHFE*EVqmfB1<1Uf{xBS%@rTKfZnXKu)LC0L z)HYXoYpVca5GHaVY|(CxLb5`~?L2cBr((Dp@o2npA7(`I`J5-kIgsM61+ZIZ0C(py z8;*rP?9hjP3kiCaIe$;Yt?6socisrVP~$QaP_ibn{ro+x;j4v-F8wn+`k(5rQ+qi9 z=#q#M|Mzvg;hD3=%KPzS95Q5%@98=aEb#0SEu*lE7NknY`%9fLEAv);rD|;KGE!cC zmmi{XmBj+ppD(z1&U*)zaiBuMgZhNL@Zae~T>xs@@;5I+U_&HeR#X%%7EM;pG||5< z0WmQ>Xc5tAL^NT!oO}Zg*Nx;}qC#*d%$;0lcQXyzOzW5}mep~)p8F_NUJ)MIJgtD+ z+I${*nKe6-yN8mHKY&t)uEvaAw^owqgBoM+Q;(*<4TE2PE%y^TH;E2QJD=2OEy!Gz zT3x4iKr*3bkREdXfjP>$*bIX2Z9966qpRudZH1)@h|JIcxdh|RV3g_kW)Jx51h32A zX+NNo@^t?%opfBg56Gp_ z)V3-h87IGtaMYbax*2JSzE>O+c@cn0273#B%7gm)*fSU76V&H@ zFR#>cQsi2Ci4L@aJYQej*&ikf=UflvE~Z6fuMR81QYuWfj;X5;uf4Q@Schz5qly|O z*sD)&^nu6iIN>c`Blgg$HiA2ESlqm|Lh_cE3_!qm`DOp2@t+;*_N;3;)CmYm-u=sd z9S4xr(cc)y64uGsRrE2#Na5F5!aIt%IODB>>zjoRc_ZQ3H85#8f0R`&VUC|YAPYi*oFP^z_@UE7bPapac-WRay8Dif5yJ6CC9 z{kxf0d;P@8e)z{!qM>Z48@RKoUssn_oEAr`aybV4vogRfmVl3W6$C>#t%ll)0v+@3 zAZS4kM1v(7T3XIW6-{sLA3!702gsZzfZU28&?gcE@ZE1fGg22oZ2@lyO7um8@*6zx z#wP<3E&#*(5rMD|Nw=-338V+&WZ1W?)RpmqSV_kJie7z`u7AZ|)s3%i@F&un!83vN zbQ=o5CEE{Y4FLB*p{%SNy%6-|H0am?${BcG9uvq_OUXJPe}z4VriA z!3p8fTo^DbS-n1;03e%jAOJiHI3Kz|rg}g*)&ro-2wx{x%Rj3JsfAO|nrXW7j@E!CAERMz zRubenTABy!Pl2#Q`^)H9JCKWg`qvY3N0nJrVoG3UjFo54uyREaWJ)9ehfQ-}Ezu9_ z2Hxza4I4!z6N>zkZ|!3W5Wiw8(v3UpG~dqBV}1_1Yy%pBhh^-&gb7^?5r_#aK$JEQxum~9RUSnd zt2HlWX-Xp##7&-O!(_u54X1o=Sum+mF>E&4I8=z^=bA~QCsJUwPQc^??M7wxvQRPt zk;M;gbfm{DC7LThXQIYit(3A+dJ%bs`^kHqQZe!v4D!Ndk1yb6!hqZQ@VVPb;AE-S z9+D9#_Sl6i8C9WA0q%xUIPwHZ@}SXrVvak z7^uy3O#*+T6d;1=MdA2!F+}0;>-Y%+#&CCq0|QNTjP##TWe_bUe0(bWyQ(dU_M?f9 z{%e_-HHg_Xq=Xho3@NHWl~Z9$1*;6{$AGt-vBFBv_|KZd{NQPfN--VKQwk2-+@EZY z-L(1$?SvZ_-Gzd$Yyw3t9cfe#q@baKj<}A~dQ%f!^i;DOTMao&IFPzwnKRrdSAB5k zRvZD8zOTk6@_0BOMC&+s$(&yfG7&EQ&tq>@P}u7kR%4g=&Cv#YXqN!x#$P~)0%YqS ze*H0@FVz&js|xvcQJBnhxQZfZMmd-xim0vjlNLL`tztD!ui2O1&^sDv77Pu?(dY}~ zDAQuUC28N1ctFN214v~g&6jEaTUr{@rK8i@5W$qAMrn_%6et*lGyg|+9QY1bMeldq zw|{%QavFP6*~&mmkBN=VzL5fecB!U>uUTQ%Gj-zczNDAT)>8rPgssuCs-o=z)07YQ zFmLLOH)9;&-U|C@l3=Mr_G7w7*y~iCu@E}!hm{rGwSj<}w_9YB;RoK5lq={ch9fkYNG%tJd zSXaXt1Xbs}9P5H{)QVOAIi8=?C`${l;y>7|~IlDG~WCr9Laqb@P-Ub4+(Cww`yXaeA-) zc(~UTfsVM^;75Yi`Y!{&WGE(pNVBpqx#51xRRaoOb`b~UNN@T#-IqRR<{RM@GZNWk zBrpncl2q$Qgyn?>UPe9i8LiC^XrFU{XsGbRnG6v0VhRrr_W<~JfYh+QT03k1hral7 zz;PvyW@&DRq-1?)Ns@p0gufMGRuf5I?rtdK{Bo zv=G?Z60w@+dY6SqONm1*wKo1I((vWg+r&4Tg38gd4Utu{!Cg2a0)vKjKbztzO-*ak zY+_@mw=A?ASvWJXTu8Je_BeA21KkZ5f*1n9MnjY{*fRtzu*rWa~R#5=TON+hn)ONr<^oCjj=BQ|OWsyVxa0mo~re7RoxJReA?Y>=* z_P}gnq4)rvB6i$Hh#6Kv_pS(~Uts;P3PHF#mrBo%L2PuUL?PSwJSYF{_dQ0>|K>c4 zG{Us9Q89#dTkMiAb;uga3~#vlkWPcLc`=*2p2Ur3i&j9C1(Jm#QSkcIfxRG-6eomT zK-K_9%@#`(7C)MhLa;K5ZNl4GYOC8ujGcrwKtF=M8n@y_`Lj?O7pB1Oc$ekg<`;Em z$_vtAVRDIXd&(uBJt3zNRG<426(tAI$3Ub?0f_dgjyve8_6Opy+|}8K!-(opeZR6t zO70JAssdC!Ldx7-C9gNQU-)Br|Lr;6zGiLz_B`7KcDkLC{AimveT(H<^EagWjk1lG zil$!ZU_o|7%`7_ZclBk%2II`o#h0ee>U2H{0X)PV;K{iIHq~!OQSNt75mQzaM}tO| zxQ26zJx;_nc6T1zH4F!dzx{Y?@F3Un=hFtam9x-w6(#`cN}J41b6@p3b3IAINdC_j zUsM>MDB{=60?WPCCBqMwmwQt0yR8iGhXXeHJhmWA{|&`CKj1EqH-c!VqFm)8XpmugG$l;mo+~MOBIosZIae22JQonyU_l0gFC?9Ui1#j05HD@Ecpw-dPu|RF5@W80ocHr9h*yp^d3_8>M46A-+gf&P>x9abRjXPYr-! z-rjU?_!Y2FDF7rAN5>U*0=;4$(3SkpTj##!1ki?d_2@xtm_+7(?t*!&dbfvaa7jks z{q&}*fyTo}Uc|h;cgiw!w$X{bh0`e5@}LNfk`-$Kodsz=kP@Xl?UQb_Sj6SE-gfVx zTNI@t7SxuST|o~DB&dAOM+eMao`tgMaWFDEp(hX4&jW*6^)`g!l7=HKoi6;ptOo|j z5*sl?_zy?w=T;-^M^Wk?kfO2YG#G$>S3#~LvuVouD$dcIY67{8O3g}P=NCbqF2nI; zo}%2(o?(ag5jC^c1yoE{21-8`jq6+YgvYh)uW)v~=DC?vp$nvP=*vI;C8HKc2B~(v z!@VUJw-|B$d}oHNEaHm#wv=CvaX4_3RFsy60|rPK&p(KICq9e=GpO98<;4DyAuo$e z9V?P<-`Svs$b7JO;p`bPcOffy$DcXjX<#-8vmMW=5crQ)ju-MtvVUB|u?%3pIIY&b z8GBmJ8l(5KXW66U&vk9N}7p_~S zRhPk5-fqIq-1J)09x*%;LFFPvakNonXqzLcXNGT4GhSe0#4{)1Xr#w{pku;~8Y+0N z#U*ITsvU=C9)Q`H;UHzz$e3%Lb_f*Git6hjZ!sL8kCF~ZA5tRNTSI{>&$oP;Q$xX> z65pRfS?LJQFnzsTbmkTYpIh}!F}}F*ZI9`|0CEQOcw(8Mpg^QZKl#iuOP549tVV9< z@s<~;IMq)H1p@@7|5m4(XTDws+P?gmgltpcRBRMKr4br`dm&;Gsxe7)6KZCPfutZ) z89>-n8^0JXJ?tv`1yr~Dnn+Qh5eS)Ye&=H6K8VYzMYU&HP{SQVm)y`!+F8P;!c)>z zKxke1?aHF)`~yz6Y1l8NY{vvl046Bwmu3osAPbr2*oc^Hu}m=MvN1*vA7(Rhs!=n( zCk&1^Dn2ave#)dbzj(g7@sb2EkTpHGoZe3!ZwA`(UymjWNP+q0*HMt9RsI=WEWrat z2yVX(I2@mWt8{ia(N=}GVYAgJ6|qlzoknTM_l=0vvj_cv&gYCbTjkrc=$|Q>nCo)U4N)K^8Et*jcD~WI#EKYrTXNqD z1EDn0n?R1;Xs$#R?D9)mv30>46{vLrDvr5@1?M3$_gDpb!P77ptJNyaYUR#d9@eBi zv9ZoM@ufqiAd zYBAg+>a|TjHl8E@@WM{Q%&Gyk{eF=S|6}{Bk?6CdYZjizg@j;U-&(nrR>Kw;&ATc( zFnDYGAs_^s(NJxp3y+=AY@rt#)152ArAuKJZRI^0LZP@h>c=P<7g9ex+nPp32`6Fc znZ{5OH_BCxK>w67^}OfKG~`{Yv2gAN!Hmta* zh+z3|>=f_V1-OD7Mf|adlM`WeHDr%Wm5SUZwZSh#Wp@Kvp639yHxZWjcGEp$II_~F zb2Krtg+qF-s_*c?6$km%<-2DXD3;$8P4!_;Lm4r^-5VkkL70%w2@o3GEGoV4O1$-{lf!$7|MT+TzZ*EX_ z_P1Rd>^iTBN-7ZhCifUP_@gF=F0cs&b@SWP;q#9JY4WynF&EN>;Du-TrI)|n{o!Wk z!g{>}7XcO>zWOkJ#!FelX~QG1E{U|eX=`=2vps^!&5an3WQ*|0v>enNyD9Cy92{R)kTmglR@e|IMd_*d{050YU zJq89C9UaE5%8y?%k$D(IINGz7 z)u7+eVlXXIA7Ej@NarfR?aQ}liI@Kv0B4u@-e5gitm_Gpm;c+E>ZD}x#%*j4M9B;q z>tFQTf4T}`*QjKD7Z;`4^EH)`z^qrooYulP*kf(b&CC&SfhZuX#?4hJQflk>z&EWG zxjr_e%+OgJJ~p&A#sa{b<2UM0_^A{(TB~3 z9LR~vsaUO`@ePUBbxgP2jvJ-aaz^x5P@W6ZV@4y%ey01EfQ|JjJV1_ca=plNzZ1iW za5I?26VtlO;@IJly#Z9J*MNgd{f7tf(1B_O#r%pyqd&uO?boMmb3*83dQE$|fTbO< z7w#Uee#ti~#?t7#Vt(`gs;an~mH;MKU=7>^d~lmfucyjweiZ>uRL4bVEXpBerTb!2 zIYVV+;rN~x6j{&>bK7>n)|1$HY8!=9JV?XZsO?Nc`XkMifn}RIo#;&V0)O~n8 zb|Q_(&s&EQr@Y6r!xYH$w_Zkw^=Q;e4t*>K4HnA4YtWfgivohl7h{%izurqx{{2(y z=$w!EiLBclttCo}6*fNkCGaHcrvBm+~d zyiza6ZLssiGWXv7ANnVi5KCsK)E>1KXgTlJ8Y(H|m>E?61((-`-F)45{2w{<<9bJ^ zn7n_4JLoOMU48Bs(>)5VeQxSRm};h02uiG`dKab>Y_@{jco5L>fuu;Ph%&%{L{5lR zi6*d@J7aK`Eoi3rz2?F*45Ru1A%U0QxYUSJ9j)-fbSx01BzHv7W zIyapj*DMW3a>yBh5~U6-*cB0+qEE=igrO;g#R2e?bRIp~0~g2-g&{LqF5Pl^8g*%@ zhU0dZ{O4Z-t<%6hCk=1L);CkWhTBH;RM$gzs-ZV1uRRiBP!zuV(5VV$dY6J$SL zw`>t>k}*od5S!^62)9+B;u5NTupRUzgYOd>QmV1;ry*v##2_j#0PDflSZ=i%ekdEX z&nY-cNH`ZrX1igKXhF-;HzZ^iq8elNYm7k1|x>r1lCU zq^)alVpa*s4%=P*dp{BnB^KBR_@|6vXwvBv<+D+=!nBI$`|d-l6(N^1e5c4|6A6|~ zL8dv~ymNZ5hC{aQpr{1~JNT^oXt#z&rhdKlb7HHX3A^{}hUTwiJnSHo?r5AnY2MUB zUYu9w<@t#ebA=c&ZUzcBtXTFLJ~6?m!*|3}0+%hW1kr1SxRs3Z8WC;^V8(nSTe#KJ zs2p&`+s%V^tbq*FPi1|XNSQZ@(i3#^dpn~K|%hl^rdim$MVx33X3KpixHXAhrMr~AozbZ+$mn;W;xXQC&7nRaw$P*0VB^xj2@&Emku%FUMe& z*WaY5(>wmXy1;0+t6A*!F||{o8{U1YAHEXhMeKy!D6`w+1-(-$Qs_rXGiQhy%rb0! z`kMGwXgje;ZxiRik!&d;h#{En_-zr{$i{s5ZYnUxgraT5uR=YYW%JvAJI7IFB0f>J zhY!PMb^KxZuyY^itmP_rdaDd2m}t?qBPb+uX$wZg6!j-v8gIhe?^+V=E*789qV>hS zb}j&L5lud-TIGDbRzy8;P-5gg3s~8GiA&UXy>k_Rk|^dHi!>LI9g`R& zHCvM)Oluwvj3UC&4naQ^nNB_dUAk-;p zERubf6h^`$fp~%rjTxW9S`e|GykX!C2dw)Ag4#z@WWbn?t)in!%cc_q^(GIb%(Dj` zgVPpr>y!ugU1ZKHcV+|7g{bGRz1w8$v)`G$-m4cgELA|3p>HQfZ1T@Y0)Gj{<8d9v z$x2h-b*F<=Nk-266O;$Ai|5XIqeP;@eF_F%eU`c;^cr42mga@1x&=@yCJ|Zo_CVNQ zq%b@krEA(DmMrE>(umR%VlyyVJI5~oSF&l!ujTFT-N`|}TOIs?xn3IH7Yy{;&lotpP@EMHjHBrWHxW{FgR7kHxSn6)k z$}<0=z324*YU@8U=N-S6yjXiC#CxCla-73wv^-j)sjES$|DN-8;0&ROFDahjlc`q1 zQ}PedTqFk!jE}}h-ahG76*C$={dQs+R`^9M*-76;gA%Pzk|(ht<#+>C8OIM2mefr# z@Zr#@xr1TGvivGJa3|kYk;hXSiv%k9J%U0J{KPZ71=}h=%JJi}rgy+oxjfXRFDxGD zs|J>hz)BtvAON55GEjJ=pbip=R4ZZdX@sf#dM9>TxyR54YZ&9^RxcUKa2`P(n2nh& zAA4j)S!nIp{MpL&W`a;#&+nYbjy>fBDc4yjBNx}Y!nY9RFSyM~;*4YpWd;38vIP~P z6%AOQyDL<)e=Xn^Vul5Ff|7#NwR~&Z<#6!EJ}#wFp0t&%CKpEFUnG}R?If+DECZt{ z(w^3z*4`33Mc$&BwX^7bcABBJ4Or@oR}SM?%K{9q?pw&==%S$vXHP;LqOZaM@MzmW z$kP&Nix{5$%l@{I3UN{5e46_`p4}QrmtARcP;9IF?^!Q0MWTzwbH*uo64#w^J7g+J zVz9_y1N+0(+=80V<<4CK3CC(CukXSbZn67Xol;uobk8#ZY#AJ`rIQk-46#iNkoOduht-b zN{;Vh^(L&pr^GgDcaR-(6sP9P!Fr#DCKC~JtI0qsT-9VStG{UB5Z5#+?Q`rD6(G6w z4|;01y7Q^SdN4F}{tDSYOjEhLqin}QZ1)CJVQt#j2|<3URj)%hu?b4UQGYh7nv?M> z02iTVacISe(Sk>s5Esm1yZ{{jr;tV!eTnCdK-OUQuYEAiT=yFiV_)3P<(>b?86F3WM3IwHKO<<*(E;q|td3Ft)t=i)MG zpkT93N1}*oGE*dO#+&rx7L-x|CBYh1wfx6tQhB94LLF zWu-lesE95B&%7$0raq%kj;-`z7|O2;iK4D`SFNNx_B*Ve2d?#6h3EXCVF6{@Z(#hG zh)*terDJ6N3pc*7a?$-KUBsOogk-_~TeQfLv2iA)2q(02w~s@CF&9gBcMWgr4vz{K zs6P8!FA_4B5wbuULmBJS;R_AK#HELrv5VXle@fce;xK9_VB@Bx5F*FJGw&Vpk@?BW z+wY#Q(C%U(9i$6OuA{lqkQ(}*BZem96~M}#6&6|UP_DE3A(it0$6gq%%p-G{79Crj zl!ni&5Vhg@0B$-ZaQv}ev_di^4?CitZMg6BX6p(Wp!Taw>)8Uax!xUe@Rn1r_)thQ;%9xn zP;YawST|HTQ>LVOYcE3e*11*uq6V&Vu_ix<9Xhi8(Z3*E22nj@ZBcnc97*K`DhDo}`g*pB z-yvP>I1*oV#EHrhYyDv3Q+Hw1kANT_Xv^O`trl&m=*7~0StbmQ*nP(PTw09@I|TX( zotFm@mkXl8190`*nR!TKg*5I;sH6}j-Dbxh9Co2EuVi>Z4H~!$Cb9(jAnr!Lgg61$ zBqbpw5ZR)dEj2fE{-F4Rd?4HV9>)fdq2(T;y&@>`8o*!#Xkm?oyr3-;xlrADGZ?G`Eyf6C*?>WHyY(|NIVK&HYDya?ogtV9_BQ!|(9qkAUG7 z^P2I*#j>{uH+3_|Z`*PNsnTs2G}${u7pN?t$B|;{S<&!6)PP>)(n**5I}$SISKnx> za@4OA$86!+8e3rc%}iWhf58k{$DW{efjws-THSW&=QwT+w?RL~Pwc~EfkujgBjN%B zp1TdLcpD)lS9*y-UL9M85(R=9dUZlsHVq*pU^R*~2EvrPxWQm~?rE!wpgphy7%g0Y zIiO&))Ves)&(9=kwK=Wj?B>E$MbAbtY?F!*VezXjzul&D;T)6^!6r0SzxbxyCR?F~ z;U?SJ*L+M#VVXbz9mJa7hWlEUs(x$7nSvK4W^5fUkL#KNFcEB zamY8R@JsX`Sq`15wHaOhByChSg&)L6b+{|p25}{QOtX*kMW%jf<;ph5CaIgRhc3d1 zS&1_=?`HkZra5?Q7U?Fy}Ns*H{Fb@U1>ea6bM= z{53k@8XF<75=~#&FH|}ODcW^lptrH3LDs%1({^{ol%ySs5rartJw=D&Msd}v;Pgw~T~D9a+?@nAJZsHT7V1}lx2Isp|A9r(v{N2t@O zD4~Yu_;2)J<$6o-?zgU1c0B$4-(^O-NbeyZb4~U|Aykg zmNl-_7Hw7)7sB~xg$j@kq&A)XNVrG%1P#Vvgpkb@k|r3ak!ao z8Db-KiL~@&cHM4~q|2|7nTV`>tu;DY6mlyXf^dLz6G-bdhpxq{WaPs}&s_UL=L+D# zxR6GQc|VvHR>WDy?$&kUe=Tt+wUp-;OR=8L4hb4n9DE+t|2`+u`;2UOk#97Jt_9`Wu?e z)TW9bs>dKNV|1ZacFCalFZR!hVTCY$Z3I}2wOxaxJO z)e&5koaG`H!g#)`b*`oXFz9XJm8|u z<^;(S$g7#hvIqDl`nR6a;ZBxG7BsNPEV0WW#{6M~@bBP9N0i9tk`kbv{U(8@#)lcA zVp9J>kv=gSBQk+Bl;xXPW3^s{QIXlB;B~~yuIqvX*wlBF^U$XOH_F>Iz_-a`Z-XNE zk#z5YNg?l4630}1t-tl`Y8JT(S_n7g569ygHVu_0*}3mzDhM8Z1TqUBfLV2&Bc+-o z!975rWbkWShp!ql16wO#m>A0b5sdD2ba(Sl`(V8V=lNzW00>sbPj2)dfESYC5SpZ} z6t{~|S0G0ZpUZ5*U3}X$<}4LVf-9GPzlEB2Slo^_bXIr)e5;X#t580(qG?r*Po*3# zR?e6uj0n5nUku#yxPP=I$m3wXF(1YVCDMhjbAX2Si%Q^h&PSU~&H_&or z35l?Q3m}iQHEU`euD*46g$w3aY@X|QP98|V8e}LQqQ?|o@!lTA##&!RURr`}K&w@i zKLs}&Xv5o^H0Uvo*2oIMyQUJlT6Zwg#RgkqkBlu{P~mPOn#ozkZ{L~GJ8Y<+0z8Fb zg;$m3;^?@&4yapAU;y1MZZXR;7ikUd_wa!wdP`Ebl5fKFe&Y^#>czzC=ML(vy>*O2 zOd^J*=$&{M8)5CZnFZW?-ma%zj)S?MI5K2jxEn-#Hb(P&+4xDxh1F488``vr3N?2MJh@73ocD1iJVdt zz130dMs59J^wD?XZlqPNI~r|a86)})>BF-PqjW56(sv`^%dg6sS|ruoa)ool(=)gr zrvDpm+BywzB8KjNUtN+H1G~0xxyy@Q zt|HDv{A%EQLinYst2U2|90iu#WF{Iu2{ErP9JXQplOY7@B@OlZV}Hv=S2R4?j$L$; zsn1K4yi=@gq48yF0D#wN$gIn-N zN4(s%Ab!+?ykkB+^aU4!A}+x&)Ti71eaC?r1nJ6Z5GqGDXg`6fBQxZn{nKCX>IApB zKg=@^)8>g1*`+ssXYG@_DXy3g!#llY{kre8V%IdhhLdFuJv_p=scsdoJ9 znN@2c@xNg>Z!~8M?s;S{Yhd&%jIs~=(Ct&n9Tc`rn z6VbM_p0)&fRUR+V-IG;HH2Y^~IXkevWF}TYFN?Y#4X5o@%+6!TDP5ff?+F0@KT>Ep zj-9wq|1{8Vbw8T~o}|)rZ;uY(($z(A zFV4cv8C0nsIgAiXiOVSiYOnmgR zc+4n4+Sj0*!RQ@kiMUki9Xamd45;59_&;&4hf7Me`Hn_?D9sGSKfD?aQ-X~ZER_E* zioUD3?V>-HAz*JFo-#aGB0g5Z45+#T6>0D21FNTL&CAsebsesqsXod~rOja7<)-dr z!#%*nyz9DTsXP@l z^TvNw1J~uUYK*A4(CY}=NTgE~pA*7VlYi}Q{No7;+}a+5ZT_^-Y{JNiS9w4U_B)!t ze&@L3%i?$e=Fg?n8`jeT&(bi>sCQo5qTe_5sTegg%IBiSRYYf8AcAO;+18HT76V(| zu^h5{p4qRc?%->#?oB`|=L)A`RHM^i53t(vkAT&F)W0VyH4s;=*Wc?ZVa^ljqt-SP;_;{3;)vzJy?5H%g(UEDp zjzjjh7l%@9)&d?Lt6^(kZ=OlC@V4Wm=)dutmFvCkI2kgKaNOok%dFh(!utZHzy7+% zM#Su7C}pk>HCwR#eQvI-NSI~|{RM7|4-2utKR129Ex=CMbVTeo152ecF4&8F5mUn) znUPDqzc4CdA>J7rR)M-rjT6bstJJIBF>jwl;+orxSMiyI-FVxV99NQy)4DJ;>^equ zWN1oI%UlG>-sz7 zM5okT1J<%0s-Sc!J3w7G$_r|<|<&& zjv?0w(g;l{o4Agie$9_9ia3(3F04G+i5L`IiO;K``77`hKa94(^OUbpZJsLYP!+>zA&>90#;l!85iFkuyi zaiT)(XZb}V0hi(kQ*o9g@ctlfh`m#LI8Y$Qs*_!)q)jNz1?K)9Jt^_Q0ejd~MbpNo zDk=E$zAL(NaCCir6Ii))IpzBfqHfL#SW-#B&V3LneqxZ$}9n^aR7tI!e0+HJLauFEzT}u_#h03XDupF@CjE zh~Wv<`D7z5Eeeek)lLG?wSeLxgW@@C8Q;P3i)#- zDVtDfb`)?D@P!cKGjH7=(FA3j5aJAAAuy(yHm(O=&0F_A+V#^cwpyZc=63G|dMb^f zvB22If^GBFWwXa@eDheYK%Mt%39JyB$oSTieEELRFLx)8K%_!Kabfrb$lsQb8IrDr ztqf}HSU`BfFhthW>L`&@=q&%dexLoIT`S~Pa+UOgXf;U@LZ?nk>0%gyxMfqD^fHKq zM~b|((t?r{WrayBxjluxo%4OY?(6QecMYp**RJ)c z&-e5Fd~<``S|BCVyE(@9{1M6`l`pr>ZPd2N+A$@C%FIqU*c7-{Bs;X zethNfk7pb`dX%jrTYTczKFl-!$_u&W<+t$3-~1SR_utRw{K%JZ`Rt7O`8`g)=w?i; z*pieRBR=`bPl6IW^_xD2cYpgY@qKUjeqR5#zY`$@_uY3NH{X2ofsDny_uk9*{FCov z{Uy)9oH@hsSG^n|Eh=+tp4OI!{@I&Qx8KbC{3VWl;pa0LdK0%$dJaza5x}i~UoL3U zh{JWV;kwI^9xXZcr(VH-`7dwbE5Gt9D9dtbT)+L>zs=j<{&r5BIKiL$bARqJ6Av#I z3yvK-#@?lKnETe4l>_F=@SdF;G1H9U(J9Y6^GS{k_Sh-}yH)A*CmzVmy}o2oXOy{n z@E9b_X<%`?Yzx5Dr+x>jMjN^OP-6vJODb&{_|EAI@5NHcn%XLMYQ<1CO;c-{UPYO7 zjLO6mtg9I#xj?G#WvCRT%$Ly(e&;PFWPSZn_mteiAI zf8P-aaRaVGXefkuUb3AHV6<|@B%ZK91(s7gz|s>$`dRnyXye=iR?-&g?R~c2TLp9; zN#sIvJa?>!>ws$7DW#;_a-*ryl%ahryYqDH3$ZMpu%-%o7S>yYaGr+p;$RT|cinuK9J)~oF zOy+<}y)`7eGK(yVsBt1%W3Wnr0y{3D$PsHJj+mp|z9;y`Z}_Xc;h+BFm8qPc{^_4# zGTmV+CX}ac=a=95R$lkIzshKIO~2d6G&VOkdFy}u6@KW4eu&?@{2oRp$2|4b_ps28 zojY=5%Zn}Hf&cko@`2*U&$=0v3x59Rf1abyzXdhOc*Z~aB7Wmr-@?|9{4ihiXZ|d& zdChD1f-m?2zV~~-ci;V=J$shTr{Bz}Z~g+bmS_Xk_cd6Yy}+ek_#LkP&L6U#NpAgj z-v_%H)B-CkW@u1XRZC-J6D?8%s*47sg1aULcih3=2Tt?y&;QdrQt-u13`arX=VB9o_%5xWvm zXO!n8`3}_OI`84>EVkgY|MYwK*wrI|)1hcBDf23leA7kFAg`%(`<@W)Behm!iDPvp z43$yLwY&98|B%tg!p`fAg;tbVO(spOJQ`c&xMNKZC!Wlv;+caejagdKny7Z?vKuO~9VN@PXyaFeny$MLuMmsoG z=D>JD1C_@+0_$-QyK)d%+3&Leh`OvuU{jaoZMgIUsf>otS0T zq>mLDs*0Uj^?nxK(^l-?KA=aNlSxgXGzP%}cZ1B8W@|8I;ctQ=w>~Kc)VmU^1@pav zNm+2?`V~%|+2!)lAs@Z(6wIX)N7kv*)<;6&o1tNNYL6Q>o#1?-Gm29+Rjn9gu2N!i zFyoUuo6L_IM)!xRk!Evs*;Ep@%A8dLU_!=ja=K(~rZJ^=8lKjOMeWL!rF5)Ht`OF` z#@bSHYU6oi>qq#uZ~Hs^rN8tSdG)Jb&Bn$?>->HDxBo5jJm)um{Xd~@x&fm#rdw6? zDUAE?zn@=t%bWP@A7~zqGO1aZEb1W^pE%FE{@$-}`h~Y~`X#p@GQ~UJ`)*$F?^qC_Ah2~ zdwk>%9^|cW`+L-j3G?}sV!n+rhVTFW?|;nB^;duOSF^EkggPBP~oTXL~TpD(B@=mC?5)fR|9#JU1Cq zRZMh_md-kVq6bX$fSJuXs`ii=a_Mv`Gk@P}EcPYm&46QaPMNSOT}I`QMcF5wU_ixM z`;)*=3L*Z2wf0SqWE)RtpwddEB+a?vkEvq@XRJ6-yOLJ;Jlt^vCL?V)==Q%qkSRq< z%eK=}A@Yt7ONh|OFs)vyY{Q4K86nsc=-m-c^91dyT;uGM@3nk1G?7)Dt| zscNLKjMM^yh`ug`l5CYz<{KH?c7&-ELRz%(&b--za$Iro)R?R1$H=L|6z=Ial%rZf zOzYUKio0%ph+Ee#18{LZW>V)Aszw*Ctg}=#3!^wb+Jigc;^qc+ArX~8&Lx9OF11vx z(ZWKZiD6(>tZ#C-cS<7k2&r*ywK!XJtVL+;h^tIua|ObiZ54`*Gf(5>7km@{>3{ti zKl3v`!z*6#3cmcyznt4{yA2@(qtS@Z`@EO&rZ@cpU-@TV%s2kPKX}|s)b@+*?QOp8 zZ+{!N-FzFzo_U<3Pjl%fSGuZVRaqttAN*zK&2;-;{R|dHv3B<{Zuv{kWqf?d%$E_b zA0Ke)wJ+j-{@{P-J@0uB?|kPwdEkKu_5~`R{n?+*;D>&YOTYL#WCi3mo?!dGyqojC z_W`mZ=hR>L47R@PGntwV^rCi?v4LW=U?FlU?^rA6u6GpDI?&?3$Hg&Ac2zOhhTu+| zO(ENZV%NZU#71$4>#=#_nPjJ5#_rxjTsZ$eHaBnMk3aYy+1=fZqUc8(FMa7tdFe}E zinW&i<7>W_2jBMZS$y~`JM(kA;?H~$zxA8{lGCsFOPu+o+c@zzKEm1E4GN{1FEX@| zSR+_0GOUFn*HpDa2;b{R%g9=WutAfeg=<=>OuYZuY|}}3 z6>H)e{~bJeUyB>YPcc^T%#&yN#Au7N z7q+kud96UG?#V1>q`Bv=`?-DXB9|8V`|Y>) zf|M&)u5jtnC2qRurpK)^<=_6~zvaE}doTBW_&#>8?(*D^UuON5E#HR0#7Yx@-H%)Z z;P~Cg0L?w$`dMBJVOkFhxBa=NbL8pAdDgR@#rF0#RIZUV137;78Y4s)YM=lNbM@c*2bq;8=XRziZk=id2I&jYUI~P-_K+G|c?(Fqb-lbtO$pWE&p}L&Z^2(md0d_gQN0 zGl5YF%gs#&vL+YCl{T9aV+Cv3jLIsm=n+cnIrTbDr?O`TAYqK#w)XVcs*cKs0Hr4^ zk6U^2qlj<=c*IX)PiUah4UNR{>nlF<@o<1gADHQ~E$On|j>!i_Dwyqpope7^7;-en zbLUcdsUEYgW+-fY;t0*nqF64zFJgz(+V>L*+f*S3?SaJ5-%M(&mQp^A_NVcG>1$}_ zj>~}eQ^|afB;yV441!FUDE@O}akT!i(H@y}OiXxxoGrLxw+m zlpFI1K*rf3=EaR4e`@%bhDn|h*9vE9H-7qpPaZu&es9xj#7fYmMIWmeZqAro9wPVL z*lp&@sb!%VY|S|H^vi6&Y{=gKI>FYxhH5NgzagnDIu}%Hg1s}K*EFJ*FYj= zqyNX}F`Qqb`s8^&{E17v_v63A{OxaJ=VKS4vi#rQ@pt*W&-*+8rqd~}eeG*mUti~; zi|6>xZ~u zS@QXx|M|T2SKrD9{_q2Q$9FjQaee6uyEh87jR*L-()d1`h>tGHZ^A%}H2Lt8-}v84134Smx>E7&6kQ&A=^kO8n9f|S+qc$6nU zny}XXi2wh)AL%x(E1&|a%aT_Chc08%HCGGEgukUvb?mq8N0L4Y%kRg`f{`U2-nkat3V1@H$JHcQ5z9bf0;1MbcXd6Uh{{pa{Bb?Yc{d_ z#b5kIHts&o_>Pm5x7`ra5>YSV@4&T|%&QEkoZWnpS8R=@%&Oe6b;kL8R7P=mZ^-!6 zg7X(P5W-^C1dFPm*cNQxCCH{QJ0_78jJ^HT;Htqol_yeLiW%H?)1TpczxN;W;upV| zqGC!!Im8yz2xzGVNU2ZF% zxV|A9Gj3nM#QisHa{rZ0w2_=#+vRw%M<$)vcy2OBZ3}~mzBA5{Zm232I-~UEngOI_ z!njn16_CMAN4B|KE||;;ioE9Jc$cGt38SoH?XEeKs-Vm&j+YaT4JXX%j5@gquMZp* zf7dfUNhS^N|L~14b>do439?gDilSy~G>td@OqkePrTZOiJ>xXb|DiAA7yjw5@Z&%A zZy6t7))vl&1A z(?8Aa-~Cdo6%14zd((uY*`7HTY>?IDnPxI8kkT?LD#p35IMa$*ol|Lrl7=JWDcVSG zIC+I>l`)+c)Oi8IF)H=YX;rL%*%8UwSsnd$^4+HO$mWet=b_8*;HQ4-r}+A>|N0jA zdho#q8I49P77PB(zxg-3^{sE^pZ&9c#@%<{ec*Bb{LlY9=g(f?Gfy02T9zDr`71DM zIY;jPENlh#o?R5My*uP7CofPN$(7lVV_UnNuh+4AIcTTpk~8T%V-{{~wiXVw2#hLb-1DIA`wMr-AM`1S!{hyao6z;8!83Nxz18 z!UL65rxId6@UUN};=a$XwVJ2Tl{N(-DZ3J0uX3{OZdW532gigla-!L`*MY*Ys|QgW zn|4d>?!#C&iAZc~k^y3OR4E*2sN#Cd=TCbJ(5^@~ii}ZiTUhU2DI%z99jj+|x?nGkETChIgHzG6p3L zV=vAQ=X$H0#^1tpkuxZ2w#q5ve8Hs7qZUaUiM4q5)aE% z{*kr0A~gt3U)qIRa3;Q*N{Za@8n{LD}Pd*1Skzr;WM|9uzFdCqeHIC0_xmoHyt zGMVt6_q>O5=gzUcy?x+u1Ke@P9enm@e>UQej**#~XW6U#_J8{?oPO=|utmmVQeZ2= zksEf{@!iRf3@1$MoYDFm*5~Y9DPhNJn7qNEu#TJ+p4}2w#4>%GS*)~(g~Uu1C`+AL z)TqK#3SCQb&je1Zj8Rdcq@j)_&`nvhHj=9gXSH9dnwfRKxd2$g!%5nWd2TXxyo>Fc znxTYcW(#ubG&2h80gC%Q-*wX=KzTUvL`(f7F|yXK>a4tPJmG-~EL+=mKMS!R=vc*U zbiqW*f^^eF`&sDkH^wx&V>DJaos&}|B$`rW>GQi%Sa$V*3yZa6{bj99d;6lPZb{gV z+Bgv8z=~;<^((IO6r?O4gP^i9>S5eI8ZA%IuT<92&C&yv08Rp^0^-dqlxm0Nl(2CO z16fnZ+6#8Q0NMXPPfDZ1Bzv^ji%g6ZhOwG69?qHSBAV<4N8d~u7FtD6l`=`Q4s(^V zBY|}apC1`cSRX8(Cu2o){*>6IZnxp{@OtB^C-}^N`6co56EC=to4@F({KxP9kDNVw zme;-RbqFEY-rnZvPk%aJ`?X)oFaPo{^MgP5gJ`Y!hHv-=zV7S3t~HK#zx&<1?wejm zHTV8J<3UU#hGPh+wV+B^wquv^{V1T;P9GH*q+`#&m4Et!|D5mr2j8=lE(x(%EcmwX z{B|y$sCmk_e11$d_SwJZDwOoQ{#CV+&C`779;_X(w^kthL@I@=G^@2j7LF|#J?OSw zja};mgfsgqFB_zGASHX?qCY2)Nl=5My!ff#%pZT^t^De*{%Qm&gTa7jKJ%IU-tYY$ z?|kPwfyRCKpm@OxUO-V4+|>;2=PT-8~tmE$HvL*QxFH4v-MTbgnzKCCkd#%`>*e_ zu)T*fMmPEQYdco0mv()wtfDfR``;?&CgbDNqgcqMYPIpzi-@O zUrSx9{S$TN1-*Ui2e6|3^2W+m$}5~RaH*=PE@E4Nsm`MtC*WC?sx`K7Y$gGjnJ=Rb zW!teAl4mxy@(Dxfydh>fkIYjhO*FU~sM;|xRz?7k#(pWWR{E?1M#A#l6j1oQP6Ul1 zLYLdM+mG?IANXwk>u>)G|L7n6Bi{b@xAW>(znahe+|T82{>{J1Z~o?Q^0PntvwYzf zej$JOhkv*<=5y!HaqDN^!t-DE+}3%C*GT7@TJqKiDaFpUkV(TRU&M0QJHGP^_|W1k z-}PPJwKN8Bsj9#7&3~2i@(pXJ{*_ zwHy1Q%DjP`8&9S*lSM(EY4$$XX`X@*8Vkja#bm<$%LTKi-VpaK<{G)TKxm6lHMib+ zYwK9%lLdDSpT`N#aQEGJbLPw$>bgGA8|U|b|M&UUZ~a!j{42kbx4-@Ey!p-lne`Wa zE|;IFSsc-*U4>AVysWXn&R)rMo->{2oV~KayvoRwrYtJ5LQ@=@!kX(t;T)WseK~s~ zpY};vm)Zjw17a?*Q>Qc1vyA!9fSsKo^M$LLo7WjiHWhwz?asON-^rxTeY3-`j1%~W zdvWgX19OwHt4m5zQHqMnX8!)?zV8>``jJDB@<_ry!hfHd_!b;knF=AU3L$oc5Ld5d z#p{Am39%~G0&OpoR?i*W1BAjNdnV3tq_geBbx*tiSv$ zZu_#QapbOJXe*GyurSLd(1BHHffd_!G_8HgC`2fAt>lm!zx_-2t*`!J9(?dYZn(is z{Fg6Z=6k;XAMwsVdM7u1*)w_0S3HM34M)qpc&wqSqt6Rdjz9Bxh+B?<)yPUZKcQWP9!RoGgRg#yB&k2HT1y5+&F<9_Tf2%UlUrmh z;sbX2lN1)GZ3%>{5lHL$ZrPABs=?+4JyT3)iuoXCI9f!&9{g6caSaA*>%{6(*r-<- zsw%Ri;U1ky&1UBM83lk+djFJ}&H19+|7hu49me$^*4p()y6$xWRKES`Z{rQ`e?{xP zw3?^;L|%%jwX71(1yK@GEp=or47T-m00}9;2;gH?XXUt`u;epv!6wG!@0I#K^b2qx;*zn##(L15`i7x$Q7S`#DCas{TwTe|p-B6;dXKB(A zAqrVD_Bs|RY)b<(@SxRLff7w)%h1IY9Pru9r_Q4#NneHT(F5Nos8kgww~vKxi))*d zm#eriGyo(xyT-Cl&kS_WO?a=-6uFy!nhHt3gKU)Zr{3^|{Oh~Et2GgR>pTA*w|vf1 zc=x@3$ZNjpHC(xLh39o&kS(DtSD{K!bb zN*Gs&OlmN$xm;j<7PY&zr~z!;eu|HM>|@+;!wvk}ul*Wtc*7ew@uzR(<^SQ;j8-yQwmP36)|N2&Q@MYgVb)q&SsF!Jxf#y zG7F{vHMelp*#$72A*M4Z2b|p9;&DOt6XOaX?*W$lUp@nZ>;Y7G%F0qAw z7+NUy7DHx(g1m6Q*YR-f%bT0js}z=ve2x_EK|%Tyb1ofiGZ3z0d@eNWYUo?sdkA;jI*+7AdJp5OPmwe}AV+QxMORJzf}9t4mukX2_{FJdILN)M@^ zpnY)5=jb?j1-tt&p{1^|u{76j{~+;hxANzpilvlExm>xvFMGN_zu$Go?b~J_nCW9r zGND_R{Hr`k(sV|o;d{2%lt|NBuf5F%bnMjwg6|77l}e$%QIqy@e-BlK9Jop3Sl&E| zN1!R}l5=nPJRX~n?AAGRlaWcync+55U9eLR;y#RL8{EHUTiwYtO^2lC#~n)m#r_;x z-?qS)RCmv75VOV*tUS+BNxu2Me*pLSzp;#OKEj{+zAwO9%j6^HSnMn~@w_w0S6ZI) zw?7jh1X48mo4}TZC*CeNYL@X&#hyh8m1Hh;mc?{TZ6w=ffKp%vFAc~WWmN=$2;Yd(pW_smfCDS(HEgX* zcZA8hE(O`lA~deA6HpHY(`Vg8`MV!<+o&ppQb?(IUj7O`{y#p<8F>$z<|wtC@gemd z{=%#OLM%^y_OqYKN8eR(?vwZOpa1iJ=GCu$bsWz_4?V=||F8dtr+x0%GtVo;jmHr8 z+>8-|+>_z;$RY+Bqb2Hr0wutFeB_Q$I<^E0@_u)J5DMx|jhqXR7PTj1iwJ-6u+q9p zAi(0zLHOCbV-K%=#gGJ1OKfJal{?RMouL;BHK>`0f(bAvT>AWXdZQ!~DD%}Vm#Tf>fRySoO zno61?VNSp?E$!`?&gV^M&#{C6Xx;5d9|Zjwv3h1XO#X`jonCsk7h_vAMy8g^%D@~CquWF05y(raXb2sbh+ z0ZgnQsM_LY0ft`fOK&PDNxSrEThhp+6De=r*>q$!)};heP!&=rEl(Pn&o92~0kTof z=Iuw2xx)B!9JU{Ujj(6~AN$Ym<-ULSb|%}q-1Gfk!TQ~&IsUxcdF$JMl~b>LIxl$H z=OQ!3Zqza{T=k}v7qMlEAulb)`nm@=3pZ_9W{270WAODG;;9c+j zL*Dt0Kj8VNU&FD{t^DYZ{wObh`O7(a^eEfg+kE3+c^z9fe+EZxyodR^I~ViIFhAPp zO0uay-seDbnw2vdUV~yG={7DjXjnv;SP*aB?k)2J!SrDijmpfDU$yHqygEAIULrSI!7 z9z{ICfQq&D8~y*E_ei&K-2jzU8Vpw*;(i1HKqzk>6v6=(&!i-ic-M};8%lJx<9$w2 znqOkbF|H%1&7H|wl8V~TpQW3=s!a2Be0+K|?jxN*x`3q{ed(Fj=Sf;46`DeSQ^SL{ zr-XI2ov<%pX>aq|bTy&6B;>Un!{wP3;Yyja4&xF42S8;+>-fL{!7xtk(=&10!Z@nh zr;jv(Oz60b6c(kN_sr0*GSvl>I*%;Gs^icrG(KI1D!kX7SmWoOs_$D5n(sA?H$Bhw z+*ec;f(!5XBG|{^>1eT!xsQJ{gS7#e#cRYamI81*(+m%%7sxZbiPLFuM@((}D@b{$S>$_vVa5~xOke9xUvPokl>hnP{|Eo_U;Zn;{o7y9ku%R?os&HOv%a16^KQ(8(LMa+zyB%z z=C^(eKk~*O!>--J$$MUks9|#2RUuUyu2fo0L6;Evn1()7M6dx?IMyVPNNFlZ_*9O~ zJdm*vx{wPanm$_T&(AX`v7A}^)RG0PAa*bD*S!@MA>HSTy&P)&V{JuZidT$`B zs7F!0!Xr%N0c5NKCL=k=2pJiSO*O$->H19oV>x#!^e_P;DMiI1y2MHfYRA&ppl`{% z>cU3-Lz;T%YHC^nTGN!ie$0aux6HwskaW3a-Gf=0$inigz|PXPQw>ejpEzbC8r2Dl z@?IRNdu%ff+e+;O0p~$rrPsg43Z&PYDQ2t3yc+f;3t2d?GInzuCIO}H-6c3D2}@7w0Z3ufir2C zdEJWaq`Zt3(KjX>V@u=HxrPBIwcD??B5Hr20VyFuskBVarP^FDe8&)^11ZAmTdI*D zpIBt=Cwd9l#9Q_c3dnN^RXlYKbxnR%GapP@EEc@^&2Q$pFZveLku3(77O;TX=^^<} z#j!J=%bWl6zu+(Y`7h&v2hLI+znRG?$=(?YSgtdcGNNm9Xooui4EtkfQ;(&be)hgkv*M{_iv)uqL#Ls2ov(ckmp^!sEAM@P`TNds_8lK* zu{}eL9I$`d*S(0Recg+&NGGWE={|!%>*lu+07{zP2`<9n_*0!vaP#e6w?S09R?N{x zMi3OLe*#!ZUrXVe^PMf3oUyEbR8XzCiXU0G@9rVhvU_7r`CfmUOhF2uFKx5Uc~0MO zntSiPm(ki$@{KL$xhVuz3bIL!Rf6M})|lV#GvSp%|OGH~0B|i2`$GFc|rJNGbk^r8*em|?yK1+Tf*#6hTf)`)*MG97W#~M;& z9&F{lLaMSVvLi|u@86>0HoM2^#?k6B;p(BlF*b@v;aOKc|D zyRl&Xw$Ehm9hdm8zx*o)54-pSU}UO=|%Dsuv0NS}F3(blH`7|(jx-2ESXV1xx( z3D3G%cWjvh7~v2?>IaCa9mgE`Ypx2m`!-e(ITQroOPz)F=t)5C1h>{mbOpoloJ<)O zIwO;Yr>tM#!TAQa4lf=8luuPW@fejDLWnO0o&m8l2G-htaL{_!6;KI`NFnN$)}k-c z3A2#|LGcZIa^X`Hs%)xuYh7#jD~(8YM+A5BuwB!!8kcTU*p?iQ+tbx9c?B@7c? zP#b4QKTQBj5H3De5lUdCuuGFSG?f)$*>EcR(ngsuLv!-CwuGLE9uR=?Lx5Q{fHaCUwq2s}=*0OWj(> zhB3yJgkwpBXqPO9?=Xg<-cU;=X2e7LU=L$1YH6J_{+GZn`Y6Md6&c&VM4JZLZU0(6?I^4D$t7W=$t- zXjqiMSOtJ$t#FLWr2&&04Ws*g%683}y+e!&;9{kFGob?*U= z%QAeG(RiyKwNp9ZACRTfo1`E^dIwr7eQGFx5$ynm@j_V9r$3QSj2nQCl^_?1h*r_c zBUnF1mo9Sp825z;Y%NejcMr^zVVGB(9_;|Gn(vn3C0>8e!!{#5j7Jzxz|;=_LWmy* zM!@F*KL)%S_`Pdc_qqZq-*We_@*{uz(gV%OpwSAHvSLd)0awakr23U$Ssy|Q({w3z zj|*|#i7EUtmbqVMPR>A9NMW2QSrWO>P0GkSG!PVN4)_yq314_z=)3otOTO&ND| z!tHv`(0;E~b(G8waXeN=5Yz=Qm30>4xztR3$7XO=^5OheUeucEDBSus>QvH+J%EV# z{d7)kDnJeAu{m!dN#W4>4il^UsKt?y5owE&9qk_~X{0c06tlQ)02*C@k?yCPzUq!4 zJqBnqFlnTWO87g7iP!Q4mu92ZIBe&9xw2%R2@#ee*VLyc=#Pz~-a^){6j@fdiW)>r z1r4qk#H_{)a^%Ju(ip0%+q_@=4maO*Bd_|hSMi!J|4MGVp)c>T&NoumkS1AegneMeTT@a2QAJ(nhJi1(K{n_<3Xokr}KOl;Z_e?R=4HE4gKK z34rf;_JII|DsX3c)=583x?b~R$0&0RkvVOva8TIQWbm7IsL{WMZQ64vccGPdT79Z!0mxmR;~edq$zH6OR{=l18^$Q%CIKjDpU{85D7%pxF_a??^K+El+Y9~7106_oIvx`T3Ho;_yL$G`X`RCUe`9i4_M@)v5S|4(q~1Z zm`f(HPDRkFGT`*7Ii?tr<-5Ni-3ZHs(%H26;hr~V z3nqQ8d$R=NkD)IWB`k8Oths;L?ik|V9vIX{x#oq*q-uL6{_eVQENQ8GNTpcWdL5TH zt|WJrRw)>vQ(54DpyBQ^2BtZ0eWljQa2c%+xNg{Ib__-+lM-b3ga%mF!GLHj}^WL z5SW2+pv0$wgaBvV>p%)PeM&i8aBS?D>(fJ5-E#<1{)FO*3snBA5Mm4XC%_-zM*5@I zvf_0IRKi48rP_l|8M0$jG=<^WSKvaDpRh zDQXa_Q#Y{eR;xYm8E5l2@dhTP@nmrfkrc*1eW~c$8d!i;0^78-wj0fpeOrIw&V`6~ z#OMf`=q6IIv$W0j2;y<*u)na)R5+Pb9qkvD*YSj?jiM5&nb@o$mmsMb^i%@1gtNl> z?=$E>0tj3_AL+VM*yx?&JWC9vs+rU|LNx6bV)`V}@B|hj?=V|^6S?c++^{Mkt<=?g zv{;(BJsFRsuN1ti2kEO!>ZWmw71YRBG90@tizXcuM9N_dePE`0yeS}CPG2_V%He!u zQj?*%x)^xIYB}u_%w5icOxe3ZAaqVPY0@mgd{~$MZw*)OC^-85DeA%w z`pQ+Ra>_g3`A+`9Kl~n^a@!YE78|f=u17UlFu8S|Y;IY}8NT4dF*UPg2}C3_GSE@4^wG*1Ftgz^3;!bWi7Rt{y(POm~{ zBZES2T*VKd3fC;C7*rVJyn=3ByUbMQ{M3toZ0Y+xj89QKae>MQ0Bx;(lMvz_;Q7EW zUdxKt9Z>nIJO4NT;ocXMi<-Hwz3XFC0QSs)v794m1g;^vW^Ukwv!PVk^?7M-o*^x? zs&`KSADVU_nZEs`5ws2=T8s#mTr?9+F5Sr1)I4fs<|bodG6KWWdRo6m4ltbvR!vs% z$?O`V1vacZnpM?32LY`RX~}fuK?V@rWxJj+Iw@g}05?g`boDD?A0ee;R)9Mof|FGI znrcm=KEqFvjlrH-GWi53RO1I@tcd1jnJ{fu1$tk1K?`_hrt^I^8mH!ZS*084?jr>& z;d*JEyH>g;q!WfZ&f0S3_mE1~~P&_V@vW;|H1 zI~zp3M(|nGr88Tz(oOKz`>Y&&zZ2q{%@OCn@kLbsnj-)A{J}23*&2$0|>xLhFH~rJqj)d6Erd+9; z>V?3jRJLj8H4s&N3SSfRxEy#^0r!R0Ex(t3dcOBOt(XkM->ZO6pJt^G@bs>G4XL00 zeLA*4c~DVVNsvEx$CkD?=#F>4YN}jn=X`3#67v%x2vaj*7-b8L6|K&{xzcfRPmRb@ z+x%{N#`UoAZ23lZt04T(^d{$LF}sNYDJ)FmKepq31gHc z>B?ZSpT(tCGX^oh8FdhO#nje6->jx4o7N&(1mWM>YA?3bnUD)c$yf zIdZPi;|v58yM}5c!CDp@lKCdF+*r*TuM}B1Rz*z(izAMy&;ys|aqLJ^@sn9Z(2Ham zV-(q*Yztj&0#H1=f&j5_3t8p0F}T!HFu4N{P%>BEEEfVjGRT3uj;s}AgU}7xvN4>s zu8p62$stHNjFl0Xf-eSs*joD*A;foG%Zk?}P>Ee{g=Un9Wh>jbqRve2++}Us{{--* z#*JQOVg`x3?7<)d{Z4$(`K@1we&nTBSYz{a*(nj7)lrx=Sym{QTa$qO`*>FioVNueejfhv7F5EvEn(|qq z4n$3%ylk)n>b0EFy_Ybf0mIXq%r_PDO+_{-P?e>8U>99xu6);kni=L>8P&K+_XzE; zTCbPa0|!=228%7I*Zl8X`ZD3%dP35GXGFxpe|Iy9RhDeeUsp2+J|f_-(7J5|#zYVs z5LyY!TlEKUBWjR1QLV|XccGQ!Lx*fe!#T!CPOk4T*BPfqyS(Wo|C+;ig2WS-QMq3T z@gu;W2EJbiF@Sw0#w4ywpz;-W{yuNH@3|;pDA1H@mu)>FHlpZ604o~Fjvlruhh`>^ zKp~`ix?U<>kkajje61cQd5@P0z(~!Rn;hkH`^Hn!L8uuT^Jy;g#1Wim3K-C2!fz9wa;H_;wRj@VRB2WZo1}Q-E!OjR@_tMvJ-E5 zoT~)0tIhGQ?Hr}dL?Jb!Y{9~)C4;iCOsQ(NiYZ(9l*&q`x=6&T&3BUt!ys{O)mAW6 z6@}O5DF6Ms^-L@u?-ON*ZAxKDK}y#HB`%ws>jOo`9i37NdQy-aJ`1VD6uhPSmTrXi z!nrMc)mJ!aOK#1z)+OBx0RVL@5s#2XvV1lgXz(In0KKyWP@t&~t;wK^i$uugZ`aBbCA zQb^75!5$OeurQ=JGHEzo?r}7qpb_lq!t0BYar*5B#v!ei8pxVDmR&m!l(dU+I4838 z7~KXd!F@IWo3PJTD(V1$($$dkmaHdWHGH-RX*ADrEc9|JE8PbW?e$AlN46;(e>D&W=iU zPoHA^kYVlP6R-d>LCwA{wX;|kOiyGeU)3`^BAb3YswsIE-tt~*|2nCAuSXU$YHE~4 zEwKXwx&IcdfVo6X`~yJZUzt32xz#&A+gKp!MYMR3gmUV5EY^ubL)t8) zgEC>Lku4UdH|->B1So6y9AhP;%st8HN!jy2*33=DP%Wr!(@A@%D(+lA&yAyP-nV@N zS7&7u)~4f^!m?h@DT|8jD`V=yV1npWLbdJ$t!gIF1E|NA!3Dwgnq+cfjrIFAI(MbP z+JY`bOtRfMO}B);&e65vmcd0Bxa|dxmzm9ZaIwYN*#^Lp5nQ^Du5njW&bu14 zgg!bCC;G~W(`Z+REHgFz+v(G2B!D1&e+5g_yN#ZdS4gcGKXI?+GnB9ly>l_Zo*uMX zB!u)xNcFXjH+Yr^OKp>io1_8?X!)l^O-z!~>~?exX`giYr7E6|R%ky#b$UM1V@R2o zphxMeF6%NV8^w&VT6l4;j=wJ{($a6iNVzBez!XYh$c1K2&4E!&ooORM8l-I>Qvg^; zH+Pu~3-+#**tvqrIk%d^VhS6XhRNL(*@J~k3l+`xujZC&ETT}hS|c_Y46TR^ptRSc z9P#IP?wAX^UW2r*!bVsa7}TJ~hRUSUpmvmFI)-lBVP7V1M7h<5#cXqr@w>BD2^7+E9DTRJb~l!N&Wmg;D>;J-+BL^ zTWjC&xa={B>lUcI;`aCPwvXHsfkP=PW~KotX>={}gM(~fP8=)ao>WsdWtA>vRfL;q zH|=vR5u8ag51_OZNZXVoE0(SAqu919wC(JFZt^HP4iki9nk*Y?$|TRZQnmY~083Be zsUHZ?_^DX4RM}BT-2!ea9cw#rEr8&l=rS@X;E2M^&NgEON>Ulr*9U3eu_vO<6m%4_ zW~dgij5_oq3d~k|p3?QC7l9Ae!h>WtzV14y_9oTK^pzX;2~}$&TdAM)Ty>XSEyNa4 zB-_DbF)&=4!<}>X9vm?{F4?%R z0Vj3oz)ZE#h-BpgH{L1H-d<|Jf*x3G?$`?|i5fX^G^Ii28fygO@tmFQ5n?8tuvG%m zVvH*tmNSVd4E1S`ilz!xYODe4(?&M4FjdZjW#H3B$z>5pxq96?z%tUv^(LS6xp&;l z1M|)Jo&4+P|8(y)a2S8`A$WW=D%RTH6hhqg*l+pT;<^PY*AjisuzgSADw*(SHh)CA zln~BDteK=|Ca09uHBEN0WV&N$);*4JqmPw8so7ofIv1KjvhOBs)UYkNtT|ciu%_m0 zW>YTLV~%8dR8}!FIeYbhsmWW~mNWvrUx;Pqq?zbfA9J63ZeL1fzgTW$*r_7vVM)S- z8p^#_9iJQHGPvn78eI^VvQ6Q;%%y3Kwb6(ym#e4ySyi>uFn!A)rMnHF1sa+$^rwKj zudi8DOjGd__bvLxwj0Hq+DNvFDN>j?5%wNK!lZPYQ|8h={SW1WTxbva!}nWr%jhz< zj4t!L58c`b%54Ky!m*cGO}?(#%{B8`j+tc$X(0!Zxo>|y$=N(IVKy}Aq2ba|P**aF ztB&a~12;xTy?BOD8_4z~^%$_uZzXi=sMid(Y_2~c zEuZ(44*@vQw~>b|%JmYTS~2Zk7eagu@OI#DS!*vp9y__Nfr?HvCLxwYo4sik)6%ji z3|nf#wjL!tV)}teYT(v&#BIjq1bj1_Q;Mqf{=U8)zKX|9db;<99o`EdC71QmHk=Np z4N}teqt}Z+&NVgTc;>pD9?AAvtc%H=pm=U_c67;9=j?eK%~Qoy<~HYQRYta8)p%D$ zaBl7WY#%Xah(7&EA3!OR^Ay?=NH0)T!ZMK!tJD=#_kIubgMu__qnypWX92)npBveX zfvmZ_7<(~n2P9w_XY-cXA2{tr+E6g13odEEXBrK*K;Igr%Bi3`b5_oQ>xwWn!gZ zk!j|O%w2cd0UuLIcm1tt>dd+_X94v(*xWjA6<-!zj29R!c-bBIQW?dm!BqhM#q)k{ z>6$r=Cty7Cs-NRRh_@$yztLLz#sk**H^4u1d*vVE4BWo{5$*kexW0jkl~EL{ZCkv$ zU!R=-Ae1j_jrQ&<^eNbGhoJTtU|FwHL91Li-QIpFrLY}$gI_LX?lLK9nkPO*3QaER z-jql87;~Z7Qj^xP7}U~oBe_5d!@82dPP4w%4CR8UDcG)tOTB-t`VuYj!c=J9XkUy?|Gv3WYnhAV<(iAa}WGS7QI%- zuEhXipb^rdatA^X4lIS^1Q?bTi(19^^IS8?>()I-3wIq%=bi;JU}_OHF7Y-ISd+QL zN{brSFalF6Zolaqf8oqK0eGm|j1M#4_v~NT_xm`ECs;f(pmM=l`@)B{8*3j5uZ0jl z3jER|+VeHUbq!R$^p5xNmiwL?|1QOXnJreYKth@Oi8x2IB`55dvSBOm-HIQkHX==9 z1h6tUIfbhIjniL22i%O6FuhEJicgddqy%kB(8UBh{=SJKjkE#ciTp}@f4}C7VT;{V zO)i}EyAc(~3(a0V;Hoco=%$?Z11txLIs1+yT^HKsVs3J*oU3obpoFJ(W1ZKG6oyLs z^>o2N)f_1%oS&_?C*W3j@(K}c;wh4{7Y*A~llxr_y~~!$>ZPil$~PO{H7QK{qKq&xN6; zVPgV|8uTh5W+q2@_H?8c?*FV|I0GBvTx@+4Kyt8nT*X&IPem#rUlKIsE zBD2_`ah1Qu=}?Rn$OY8v#&ss%tPyD?&rqW>gQ+EjH&F}cKU2C@p(KQ*sufBaGNq%t zvHLE4m7i?b*Fj!WYstLIU215aIe~8Yz6Le7oVvtEA2^NxhT{c){z8ic10DTcaN-CnwMI8mQ&34-* zpy@uOFpecj^b3V=)@V>IkOFPyr(695?q(^iWh0w1&gRrsG1nPWlP9KR%YbFMC(y%- zG`$ca7^M}mZn0WZo%`cz(k8jo$z<;)$C0WyGu-CE+2#^+kfv9<(oX$M`5eLw1L?w(7c~>Z&*L=N}NVug;D?!!Hgi58TUn~L~6Fx zzJ}B9CA=;|nk%wn=72Kj6nJ*rcazE4v8leVlMR(Yrrl7~Z|hkb_cO{Cyzkr(6R-MRhiXPMk0kEQ-+PpZ3xcTB;D7bh`D*42!!z3cy7`Mn&*6FVLcF|82dXMvaDQbeBw{yy+B zA;fcWckYh@fAz87vy1B*l&UViXC`Cm@Q;krH%9S`LPm*0n*>KZ~ z6C5JGAGI&ZQ*ktO>$!ru0>O5AqPh78U=#pK04c7cawC#$*6kNYhW#ikC%i6YN0-Ux zl9|m>zFfNdRKH(UPHebm+JEGiH7ewlgpkmAzBvs9l#pIy2HesD;4kta4dzT5OoW1_BBuJ zo`;p^XT@h-kg{JiAR%lw_19?|8TO4Q^JT$BQq2^XO_-8Z`^|+x`)fah^BZbXziAjN zP@?_764)DUCF5*Pk-2Rx>h|@Wrh`)bN(x#=Ma3YiS!hK$fLWF^9?sdD4p`(FW}#4} zcMr}CW#LjuN*ap1rb_lHRhvDjwQ4n16avbk@?&z}XGqm4>A*>$G+U)}fZMAIjtr*U zGP(>W;C)w4@yxBWe9MXd0l>TFH}InJK|bO8itQP9zuGY+C$p=(;`aCTeiw&v9mV5Q z_4C@Ew}1Sx-&21)DS*ngmcI6dL3%-L@%X5hn_vs!= zANs34Qud+?QUyi(Gq%XAq{)8i&O+~OwkAjmx^_0<&?cQr8zCv*(-{6IP_ z%+QlxNYtwGQkCivPabkL(D`wH7}?1k}9-VU$~s2OMTXo?r~ zA>HPA-HMyELP&~c0$*4e1-*U3<5X}P#-4uGl&YX1NZT)VB%AQU;~(dvd&hWSXQS;) zldz=F0GIgN_Kb%RFvv94LOFKd>!7H}GYwz*X6}^J7t& zap@et&s-YT2QwyB!6;vFX*y!7oN{#Fz{&QaGCSuUJ!n!yv%ckALnnJywo}c zcNOQ^Hi}Zz%xs29e)BKC?T`2UE)L^52+I?>*Uux4>mI25`KP>-H-Gqf@$c?rzgiIK z4WzuM3c$_zMK0;Jn4U>NKo?-BD6(Ci1hidlQkV;k7Qvj(wtTLQbt#)ZU=UJCL4%^O ztwxO38jUuiIUk>_j&dg7j?76eG$x_UQ>{*1OXxV($hHJGEZXTJrx|cyFwoMu(5z+7 zQ>3;%6Lx2!Sa~cxJ}4q?FVyAB@494_>-gKL3?B}hLf|mw-$ja6`_6g<6%4>Ms_Ii#l0pBURA~CJwa${}4OD>J;w{&dE2e(hO?EKSX09p-A zwO>y8bWp7ufLR#^6I?pP-*74XvAKDcsRhjIPI5HIuXpgVaK&%>LpHW;J zr1<_X$QG^LCxShwPY(ngjQ4Iy(^J+&1G=SSvmzSkDeTg-tTW70al)t)yY#uqK)U@7 zedph>WbYJAooSOuhN$+r()T@(&1Exl5V3L>3g+x_V>}1IGnE@ z_5|ABRiDocG`=9EST4d^>WU$k3PUB_KpDX+^tUn zaMSQI0H+2nJ^RpnJ+e!8t)1ik*%o(!_aR7m62>7=x&ET-%g_f_CU(GrzW zui}wt(J&LKHYKE4Qm=>*xzMc?PKaf2(r8=`D(?)(5j!V9z+UVJ#>ezG-+$2AeHJQ}pp0!CmUt$j)Neis3 zVmm_QQn#MWWl#E~k0I$hXV)4HIA{aJB~U~gyo7NTs&;@!t`>-Q_m}tSSyq6QAgB-3 zKjH5Xp`mAYJK(vS;&#pLMhUT*%!nK{{^GtJUZHI?; zUD^AQ;e@+3&U10T2Edw{^BG4!((+|GJ=*4@v*T=LE?xTc;RD=}pW}i02xqd(unA+i z;G!OLOLhf-r{oj%ER_D(M?zt+7;7nnU}A(z_joqt#kYRsps(UEuERKFRGz?*s{FgL zT&^1!4EN+5%Y3mELUVI*i3bxOflykkyn|C^Rn%u3)M+*q3#MhkVV@~0;dCR)gA)f@ z0#Hdo!^1fT`<<5%rKqT++wVYBEtlDaFLzGMxs8>~JFJpMGB>JMFH|MRG&dP@KWPPj zlW^?d#I5@YY*&H9tYg_9SgqQpa$tGFjoY&>^&>;6wFfjY9cBeXRdLVySw66PL)2bK zVHss}W;%D)_rf*ZGuD}}O(-aA4bgGcjc1`Vm!e9`dAw*joWMITr4piD_-|a z{@wSlHCCmo(yE}KzX>J#2WeCKgueTMlxCmqIt}Tf{n(fETuEVBlXISb(m`ZpR*8M>5w#=UIbKa9*$TtieMtcAAloR-4@BZ3MQ|3}XdHeGj7(YMX7N*pix& z$QTKb2n-gDMIz7`Dho54p)kDY){n0|_lNN$h(n) zyc8B`1x5(8@acu5qH4)crDuX}bx^jl$5wwCq=diwCe5f-5yBg_xiaUw*B<0*J!ER~ zSiv)pHCL*kca3dtt2T-muJ=&@DYcbg8XNy^cj`VCBmja!)~#xxuv{k1Qp3Mhv5H~o zO|jUv$oC+2Wv8Cfsv_9TTt7$F}G8M;rcA4 zO92M}@wD}a$c5&klVfZzhTOli$uO^&Ryl9>XH|Z?&GAIa8gY$7IHuKr{vpIR7d1Dr?Av>$EQYmo~GSnLpN2XzscB{*~wcFrEZ)D5kx>;$U~nX7VjXNyCjXt=xHdK*=>`wVwlHjq70|GnVXC&)ewngw;sfO z)}}dU={3;{!mfeU$fRarGJ-cr071KE5Vx@ktXzu*rf;2V8dr~awl8!Fh`JRw2@p=l z8{DVUZ9rgWjBkZtVjGIwd+4OBpRpqPCH0*j_xpn5`EJWh@pPGSy1c@Tqit%d`0&+Z zoEbZ7`P+sU`QYv;&J4G?T9-V1{2&uka6I4Tay^a!YE8{u8L%$d$Y=4GZYZ{SR_Syp zd$vF$82Mu_g`mQs5NygIa2FAT#Pb~3PXD$Nf|=DW?So4N-F)L&4&%um0@(jC<@$^# zB~a-zib^ABJxW=%dhz7wD4Gp7n1#(KL`@-TW;Q<%0Hv`iP2rdoi}C55hM`fdWwekH z;9RpmOuGMM(r`?QY)}3%C6!TGO__LnXe;8AYwooxmCcyhoXRTZ-pDP0B^gAtc3DX5 z_90_G5^yP=OlSro)dN|EvO@Y4(MqB2uL4Do7? z4+!pi>jNvsx(0_1m^NZ`37jmhqOcs#UCQQJYoFxYV#B|0Sle>I#&5{BdEe|tMsmSz#d!d>&4}Bwi=2^e`xSz90i{sn{`*j#L5bf35{bas zJc{_P@%M=w$sA2C1ZU1X(ED8;#*;J-8I>n)^fn*d2c+aeQ;K%l2LKB*oRjF5nnW|S z^ocz!C2my}C09sar`?wCNO&?z#@*GcC`@YtOPw~m%t+I(C``2d5hn3)6JOYjfvsZo z4>;@baE_F4jMI#qnaw%3*zns4C7;WC>Uw}wwqaYAM2^-n@GMRyb<69dFS>%xOa$9` z8^4z>dl6puRmFs3Y5l$8mo9}}@{5Vb+<9*xYc}#J!I`$39;uCFw;n_*{XF^p4o=-P zhIwfZq=BrFxnZX+qk#AzF>N>1Q{zOwp$TESe7ABaq^=6pc$;($_2M=xOMon8MdE(q zZ^F1qKB@c(J&&re9uE8%DGjHVNQrQ-{l6%{8Oms%=)n#KVO)4HklrF^E0`FE~ztz@BK-IZ1r<-%ZujoOsH zebrWxp&QMG7s{>z8QsdI-~gNp?W&Y?v6O`*w`K-VAmFr8oYgZ%LZB_I z%e)0lQZTY#n0Sv7Y@Gh&HLY_PPrf*;`ngWxT0KNUbxQyo@yRQ)E_I}FC5DllGxzrL zcxED$D~IS4*e>f3+U!TrsH9^H<;o#qsiX%KEs&I?DZ<~~a^}9{4^M>J3a;vs4K-_d zs^p@MWB=p%Y34rlWh@xco`||kKpo4MyWS=3*Hc|YQK182?MZG`IdbaD5z;?F0IO|q zt?e)2emGHi;VTm7Se)DiQqgcYp70&iNg6K`h6N2PS4W`Oe@E$pl{BOY83@M|Ifx<{h|IGkf*Vyx6E;HFzEDD1vH_|rNLfy(s}?ar&q&YHPrQ_{&k1sJ8MozIA@Tv>9$PDtxC8`x|m4Ct0F zclY0C?A8S)>9H8v$J2GN?fxAEv0Y<0w|;oq_sz^?g+Vfsb8=Bfh6RWfM<1__vRkM9 zfW%T8fEJ@b+cV^#c(}cOQk{fMjKKoP39N&OfMtKM6SuqK{8u=S450NLrG{?l_tKw+ zOx7c$K)kUW5-sc!;7rGvrnOS0YGD++x?rf>)BI2_khvifnoJlbx`@?4={D2qVK?o5)uVyYg&Lri4I%Z16Cx0!Rh;!j^!{u4dW1~Twl?h zFmmB4SaLLbW)Sr$?Uap)uf}4*3`40F%xuBTASI@Rvp(NO?Gw zCfCAxq}yvO^L-h#QC^?XuEN^yi9ht^2_c1zU6s4*yJbUFlA9!f1f&Rm4YViMJ|n)` zD2&t?54_U!Pv5nW017OU5CAzOfCAhHNH0yuH| z@PCI^8=~jl(Zi+yhalxJT-d|Z&l5gUol197a8Fi-LO84Sb?KD)T_DjFhlZPJDHc(o zTH1Jh^Br49OZ4*j5KRRl1R0>wI39WApctGr3T2}q3* z7@t--$UU_MTKsp|1s9pnPMDc!N_ty3Sa<$1v6@wDmX$HB)jBrM7^K2jV+Dn*DZDXQ z>YCdHDfkbo5t#X$4ymMJLMC=N*KQbV5)WQyJ^F44*aXwk|5Q)fYY&D zT&yw6a@N(1nQ&k&2+#+Genc^}toAcbkC)kw1cx}eb zV$Pn0o0;}G^914VI2aHSXH^Aa5v`Q zZ!!{dXAC7O%B*5rkI=}ty;P(s5piNlt+Am2E2}1@E|>}LrN@*m8=~|K(MqAHztM*C zu&!q9&#_Bm+R;O_m8_{byLu3HB<{Q=9heUQDf`94?S9=~DGV7-;}c4V3mWk)9(<`zDkV)Zb@xBc=4et~g$sp^ z`j|B0`I8;rlcY4ck4C-DUuOAvMz;dl*j&s2gEz-?6S@e}ERlrGyhI zS5|SMUU$tf)yy>r_2)5E=x8CAjxmi;M!l(A1Sw>@4?)Ud^u-~ga-Bqa;|or!DM-oDOX;2ztT+vZQ~h^M*A#{=wa3C{EUco$ zrB4u$EA9M6l9UiDCORi%?Po>e=PRP`vrz(4R*7hhZQ2El<-AGp2*;$P*7+eVHZcW9 zvt1slHe2T?9m7E-#g8=h>!p+l!&DcJSrIy>7rNt1*_DG*P{xXAZ!fJkp6jU`TR#8& zj9G9Xt{|o`;<1UwCVmxzlMBo7dEnpSe5olchr^<{N zs)}4W@pvvYSM)G~mToi7pzBJj<+PRDR9s?9Id|EQR>yhC@S{{#a7KCdgscTBt_6_v zMF2S6|GRMrQVwHf90HXmeuNuYm~?~YL?bDMYpK_bE=Yk!5Ss#;R6JOSnhiB$;Zr<0 znwfQakBN5(4S*%M&h97jP4~Y_Y}<{rACN{emh*jW{Zj@-CcrJ67fB-=%+Z|J>zv6i z^RdN=$TF;^;+u1HP#>4opS6wJntdz-jM_?us_GXYU!yp8Y0^y62(`5sEqo_m;jP^J zyHfX^lXSV@wwn=zsRrpM;LKMoh2u{fQy%E9jAf{*raW2bmWHJ=9i|`%WIdB2ahCj! z>G6WtAXJu352S)99`l@H!Nk@ak)0eS%ngqv9qqb|sW0|N2|H3muh>aVd?tbxcdnwMC0riQq#< z<1?v3`pS5)dF_*ZYd;CFR>CmXMW@`hNk?Wvv_Q!yb4j59>O&<}Fnu#PW+T<2tSU8M zbv^HAp4V*WfYRnLHeWH6f<{S~#Y*)hZvDA&owaACG2TnX$LaYxp6_s>TIV&JZ|8TX zx4ZXb&PW#As0@%Xl11-$A8vH3dk%_2ka8FYhUJh^xn3d{j=B#Ko|Gk~@j&qr`|o(L z(iKH6gOqmJZ?xkV6*EyWv5rkq!cbCCD%U$`Vv2ol?5m#EyPu~3rE$tN@oBp6Tqt2$ zAjRFJp%n8tNjXhK$lEvleu7nq(8JiGp_LZS||4= zb<(Xe=_?;!PEEKD(mu5$S9kwi?#kSpn_&JXI~7wd?bZlR+hb|^N_EHB1&h%1f^wh9 zB(32H*_y&Q4XbFj)g^JlN@r z{mkMHih-&rWaEJADt4qxkNNapIHzeL2DXN>OWBl8nnT&%@w zawDHnnWnRKWfg16mE_k}#nejB#0+H3ROb;iR#q}MSp+?~2QaHj)?4RiA5BbU6hm3L z>%!|$r1jNAVVPD{TR7J`vSSm|m@85Jqcl`>}}7T!wU(ePcc(if3Qv2C#8w(s_lqZx@gMu-Sj z_RIk30YND$42_tzvMRDH16lQYIfQX{g|eYbY=~9sHhoh<3}wZ7He;_I#3ytqoG>)(TZ)kO+5ZXsTAtRg4Wu+B zu~En3^()Y3SPm*}PMh8Jw|EdO0dLUlq`jpAn?N$@hkr`Y`i^R&sEqSdsjXxqpK|Bu zJkK6}oQWCml)*zB$@aK^e#AMu+T4jx6Jc)9zogfhl1^|s@YhiQ_?ZA5nrR9rj5loG_)4X8T<*AC1eZ<- z+M2}1JQ3E;Y{t5rp)hRg5xaF6C&4t`)7C09shNXPSgWEk?Y=3}GeQWQABe0yo8h|d z_N9FujvH1M zNY2^O!`^K~gEh~Pgh{3=0!}q1MTY^=3B9eYz=-Bp(h8+q)UF*sXPZsR%eG$UempaC ztggLF_h$X z(>>Q(z0(~>d%SIH{)0eF&1@RCpVR1b z<~ncbc0x#Dxoh|kg{XPqV2(th#KSAAe>~Zf5QiY;FdkJLifOOUNEwr~l(j&!Aaz)k zOUs7{X`WS4h`LopATcPP0;+5lC;Su~q}^Nrq!+_>Jy4qN&CQc`V|Op3nH|wtvrpXW z8397KT1i1O)|t&?YO3^}Gc%hpF@vNLVd6k)Q2s+h5|R8q2654fs^9Le@#3yB?F`eu90{(^_jQMK!?<=k? zZh`l3y$6?Llaw+y{x1yx2E2C5y{?iJVj2TgW31%F;7VM_zW`j9;xr94S*mnuZ|^1R z_eOKZ*Q|Yvfq3}(lgEoa32_Ke4&$+kLygLH6n(&=Te|4d8LLw|X=l~G66O#yTTqHc z1UcGIrcRr(h`oY>MkE#Qwp?a=w%^vGWU*h7+rEbAvfF4FTIa!rZp#kTIMb^p#~=2Y z9&6C^1i)6s6oPC@SQFq9QbUR>=`aLSoqJ!I_VzZ0jMH^cr8WejjUcK&as9 zi@s)nk0*N);t-@9#$y_XK;`<0m)`b4e*L3Qi+_iw)dh;er&#*5DZ!OC{vA^aK~Nh~ zL(SEY`wE<3))qjG#R z*430!Gz>*ZLxxEEKb2y^mYR?Y%|s8}`9{X7tL8V+2!Ml5W)*v~p3kDD=0zJHWnv0W zWsXUi+Z-hwb?AS~LRL2tayF%QSMOR;3THXe%ibci7M;D5Pf=R>j6> zA*Y@SWYeeN?&Q777C*S)x?^aAsWeI%go6!80a~xSk&Yn~x}`;UB#{D+J_abYK@Xp` zjM@CekxAF^FTCC_(o*HP9}iMOXWz6-a7-1YT9X8ru{l; zo8(-j-X@`XCar9d!uqN(<9tS>VL(&iH8Dl(EF8|WD@SiSiHCG!Wizw~Duz&I@3bxJ z<&=l&P0lSg5|Gmda#P&~(4njJZKI3KjjKYtdw4ef#*SvY{&*W<@WTIIg8jYgVw`bP zafwn^+>mYiu}Vr&Q~Kj9g`pI4=2oyNL+W)Ed;0hTl5QLVl*4$u;xP4dokdsN82wL> zKAq7IQXouJ?WfCCEJ3)rhZ|`(g`>QFK?zG`m)CXss9ni)2)|sIP?RtoP$XC+KB;{m zMfq~(Af`>nvvdp{R;faH(XC}ITQJc%(%Rk$wE0`E)M@M&eFkb_;tksi`&v_TrnXDOl+p$3FU)gB*#|<5R*?n`I-si`AGT*@P3t z4wvf@yS4KUk;+oaip%ww%=`L`)SOK9QDV`9AAmuO~*Ej?!*H;9OlXPNUShezt+^@=K zzYf0!$;=jLYGycLYDfWTlrKwOun;P;Il+7l!V`N#p@;Px^N{Ylj%-9%IIB9KN(mdw zkVEet_r8h1s>?W~5xigSDj($I^JC1(FrFbulToW|>i0|kq|01uIDL<8bUpT90NFRj zR7aCVmSb7>vL9gSb_h;CyO!u%cNIu!1iLCrJgk@%n=Jz3L*9%9u$}z`uH0P?66`N|>8vE6{L`oaM%9-+V{Om-w6JJLm zt}u+{JoenFY!%P!VeBmcM#8f(Sn_=;d=5d% zVLWNVK0b_!5aK6*F9FV3YoF=gI|}?9a2xPZ;5F9T%d58WXyQo?RKDo;KjOdM_iWNR zAlQh9Qs1s7CB#AgDcwm{TYzQpoa+}=WuSO+A$ADvORWn$v{+0OuCxlkUc7zQ3-Wo8A=$Adgf!*xmuU5%(#@5 zPm9(LeAtFn2~m0>a4u>Jp;=hP!m~V~=_tUaPjk-EY>2@VBIR=kP!8i$7LO03^6!8j z0{(sS-gg4OX081`A;fq3zrW-0*!hzhsDQhnhF0z1KtLhtI3ep~QtO7VH360xf^^bN zKM#PVRFx~QwT)nPT{vNFDJvFQ`R(uH`;jsq!5B;E*8alNXLmAd07KBf_|o4*MB9wr zv??gJ&5(6DXJ%ZbMJe3`F;6a+?qnXcAlr)(8~MyVf%{U_?s*I2PowEv?3We3|Bz=6 zLJ6?xOgj59H)%O?6wu#Ffg~dFG1HWma+03z`=bFdtUbx7>-=j=oORwx|%VPbEjc3 znli6qyNJrF7Jz8pYu26Fg52r|sP}BMZzVvf8EAYJn$xW~m*vcrReS%SEwvZRs&}m7 zjDk|AN8O+2v4}&Eau}bg5IjDNinaDPg%G!O-hL(UGXMG~f&alFP&_~!OY~Wt0`l# zi0K~)BHBiy697-}R0(4ZR{LS1?laSZHdv{xWWfF+)GpA2HnSwX5Lx0T@4&L?hv~YQ zGAp%_zS2iWy~?ABwz*rk(#9QME4`OoPs^#MYkRt{I@=g$bBvX~;>lIlR7P=bv4OFY z)A{Ad9tP$Cd5@k6T%QPlShD2 ziVAHdBeh^+oiECs8Td9A%`pe?Q~0!$d#|~T-Ii@Ll9n~mZ?qWVQ^lqnf|SGfl*gye znf8>m_N?2bJu8Gb`FQQ<(*mdjMk9nqdSPgXg=h(98?TeTUOEoQtggnHnLOYC2NHal z@yzDVAkOE^!??mE686={^f)byJC-1n?HhZDNQ+y^j4bK`0$^!(jJ8O0d~yv@ii$zv zYP&SSCPrRyzdECk^?}`u`@l*()|gI`&EEoKQtgsXm>SUnB>{*OQnToIsyq@elU1=F z*h!D?T2e)QV^{_Bl&}mub0LM{ba}-A6)$EzlJDUf@eNRF#*QvY8&#&)SxEH+7hGdy zO!;Ul$z_eUs$qkYG3}WFdpPsBz@&t0IRzk^ua5mqmeSaw{l(m#p z@#!{L@dvSN3Id$rnqyy_$(WMIOtNGHV_h{aW+wMcqUDNj_0X%=+DF3^k~%wj z7%SL93P#fQ4qAAjY+TnW?yrt=_uzpDY8T$&R$&;M^nH^EJei9;k#!0Y?B3;r;MBZ7>+S zBZo<_2c(1u<;U8JL=;GCyBZ0?Rni2Il#3c|B}JIX1yK+Sb*nO{IgS8WsfXqn*qc=Na^;RP`0a)5$u{#1T(p)xm2&U zmYL|H(b#y6NK5D~%+hw_coFQF5`|@AiYR=IAjyxx5PASPuyHJUr?}6YNR|k2lm}&- zY63WLC4Dtq0N_D`bAz&sL_zIq?b7&Elpr4hl*4!;#KXL$J(~D0z}Eub=l_4pNq(zjE-12;pAv4l%EKEsz~UlQ^CSeRm^o3!9X7% zsI6pD4_MDAISJMH@0@Q9)Rv~TbwX!TK?)5vda^GL`!|A@yeN;Kzou|1yVvY#n50bxT}PIFhMZ6rw0+V>=z58*sBZHvycjCfYL$H zQ~~vXG?p7j_LUSjpDkBb^;PUN>-Xz%4vK35Dd~1oPn0ya@@Z>(u~TreUaI}5w9|jg zbm{EbgpK|=SL&fN&hzgFD|;zy)TX54kJoPJSfnsZ;3WMXg3wkY;`QCFaB}MyjAtIN z=nhzAYscJGzYG_fy#wK3*T;MS}~BM0N;L4&&249;d3G*RJ^J^B?=Y zEyt$?Q2Fyuc_(lF@bh{<>z2!Qd-{Y(C#~T0dPBC;RHP6p68!c&JK|n9PlBOqu`{l! z*-{hkua5Zj5B@qva^6(qpnIQoL#zTM&;YXbgzvNg&C_r5*-gboMsm)FXD6c&)A-WR zu$#0~ark>-GA=G$8YlpkZi*_zs?y~UwNW6Ow8p9@{65S4z6OPk4N|=&%IP*AX@yQ2 zt3CAuXQTZ(A@yUdVvvCB zP$8x~7YVN8atfX_4a3vbZ-t7UbveTz*)c;(vA|fBG}&x~#0tZPoHDaT?1CJ&QwsMx zJg!Cueg}_r90HWXc*2F{Q(5)%DT_}Fpwf+QDe}_i`)C_VS#ebEGL{R*LVHVoK^4~V z4dC_z3DLs^$-11gr6!!OH+sdqY2>12LrxFee!7p95-61$6xVr?G zU_syJd++C)KQpu2efpf;o}Syc>Q)8y65h>M1>3r7#s$R+oMo@&-r*>9u9@d=5>*64 zE-%+yckdFN-J!-sr(eD{pqtEZ#DNGxBFQZ@LT`lVZET2-{Nql_p|TwECXve_!~ z(Qs(h`U#{emzO9L(UQiM2D(#PyXeE%!3{nH&Xc~!8lyoj@>nWoG8LapuDjy)vxRmU zV!jKsj%Cu7R@${qlOHQVX9pKKmh?V|U--;lwk3CDW>(Kif$+~gMu?BS=xdp z6P6tWvQ9}WKNdo*+rW|#C43pmffr@br+8qNv~*^ zkr67utmR!R?UiH;h1Bl#iu!)C8_)Uo3v4K#q}bVtkunPJ6_jJStC89rH6H`Nz0E;O z`nOW1hWgOxcb9bF!q;!0q!|vpDcAYi4HV1F8!dFOyxm%T%9!Q5&+n`%w4Q{NPFcXd z2xe530`UYzrK3`l?M}NWi@&Z;8Mb<*#oWed@M&fYUt5RZC3Ggq^tOoUVf zt}1fajZ{0#CkuAuwS-OYLgT=HFR6mCEhz9+z55Rz^nD%p%M1`98Jktuf|dQ zj61i%FH_1;(`B%&V$6(y`{1#o5~Y$Q2ID0%m5Vl}Sj^}if%>Sq9RqFMjmo%gD}AM? zK9cb^oQo^2*P7ylt_NQ~{^PLzQvxen23v)-J_xC$j|?y{YAlL!&#S)S#|}U9kLPVBhsp>V$Fo} zyY<2+&q`rmon!=R4`|yZvzBJ5G+I&*DPjcn5P5JzV$i%P9 z`r?N-@T{JNDEky=N|^lP{=fLxP>^kB7PIsQ{1I|-&-HK;TG!t(xdI7qiTF9RumoUv ztWXqRw&37iy_q}G{QTbhK_t!&5*qmfR*3mM29wm7DjB?TzlZE*FB@-qe}6zzthS}c zOifiJ=&~s#LDSMw>baFrtL~>^psU+`Q8{rrgB>M=JCJy;i&ncVCP9m};!9QIw3wN_ z(rMJ-ZyJJR&)S5)PHWcke;d7CG%kn=wAC*9qez@{(Sqm#dWto<2Sd+{>?YIgwM_Y9Z;=6airj!jZu`-R3scCt z`d2TCRWU<~ibU89YM3TgI`ruYYs3Ow<+D4lfA4Enak66H@9=ez^R0xLx0ky4-?IqfkZvnNUDTWaFnP(PZKGQ^sBIigb@t?4qp zz5m=4)XQl%F8tD<-=u~e2v;>n#Osesk&fr~fv}(_+VAbaCd+sRK;o>;fh#uR^DoK4 znhJ%81>1JD(7UrqOC2q92DiCb8OIu!d=l!pw=cl^&1J+qM79e>Fiew9Uy7a>7}00u z3QOs>AZ&%o0P*IB%_#_~3sI=-uM+?KB^1I?Id<`R zJ+&@UE{d(F5}G7xD5FU(u&NH(!+y$ibIahB*)1lUiTKjcv{p1%C>&(vWGDoCiUG=7j2q9Wq@vd@Ax|MRU040M^&Y8JIRWXeL3_${BNxtkuRz+cE+ zkJJ9mv0~O}gfLwroqOvDj{Yga(fUN-Gtxo@5^obA`EAKFG96Apyu((OA?$-u`H=1A zy|irbfMI9;ObK^6&W{zhd((AT$`=P-GOxuY`NuI1Y8zmMZ5aw_HwcrnmrIqwHNchW zQ}fJy;k6-#_OeOY{vgJ(n~8dCSy!kdzO7#h_`CEpT{YmJa`)8(vN;wEH2qlCzr%?H zs()yNWr*X3A`Kan8OzZab(cmf1O$Sx()|=whGwSO&*G35H?@GIwR@YrYTVh{^TEoCGIU z2Q(j(hU#@3V3)P{771i#HQTtIP+T|<9ONs@U9^S@DrKErNs=4M_~ns`3``C2n^N$V zJ4V-Kqb>M}O7?qwcHLrVOe@P#%F+Umm@phHrzG|RqM?d%D`w7OJcYq_E6gs{H6xry zo%`)4cL>H@=JJzE%3cXv&J;H4S0M=U+WIq283f%N_5VJ`7^k43orBtb9cZyPs$?6A zh;gnWDF>F`7bK7+g(ldXD3hbbJN=tJGNd5k?CT>W)w@3`M}_&b`|daKu3WczcnZ0R z()?8xC%v+m|m8$pDQ%9JBgKy(8#M#vHOg zaP;P5DBw%?#7xUC%I47`3TGEh@O9O~uzyda%o#F52Z>!FprmS>Q&me$QrN>_MINs1 zsyH3-DxIjT=(L1yJg+=I5{na6qY-AE9IVkEHlol#SyVqsm&^*#RB>ieH$GSY(#F;^ zh+!3$F}c(rWphJR9XDn+6(|zH%x9U?g12lZ*b+6e#brxur0!%ho>g*!{odDFpm=X6 z=shCE#jT7d=YI(0C^?i~L2G%lze5n3fZk;Z>E>3jVd?o zN|4TdXyPM!K{V9$32Vl+W~TX75&Qz7r;$i{?Bfn~*_u&6EYTf>AnwMR+p%NGdMAy* z+YB8O)sTz{d9>-o?LIK5TfL+n zVk%9Y{ENXb8-xli?lKwypy(X7*nW7FZWqGS`7Ot7Uh z#T0U7FB^?PVxM7S>O+%4m0*!KA#JWOl#^4T_AhAGb+CFLWc;YY9^fgHhDCiOcF}Ok zJWDvdkqWkG+WJ)0Y9YOrqHkn`kA^>N;y^*j)al_qob0&Hq8NZkSL9FIb*>!0Q_Z1X z)T@TAZenX$Z`$`Zko8C&Ori47%&!g$G z>b#3;d_+1cYT~{9lkdLU;u-! zt2E$rYU&w@rmsJ?gInMTjqn2+nIRaV>b+e+%`MJJ1IBH-7Pr0lkztV#~FKB6D z{i~JKeJt;0y>);X0+N8SkqzmqHz!i%wifzZoFv_{s9*uqK;0c`Qn+Wotc*YQ=b+7L ztYRZipx*4f6=O*!5%K*CNG--jwC@8%C7I_Ee-9KMCE&=q&9gJ`m?t2n#GjQT0y z&9=0l%=$mG)reZARUat)A(xso@<4<(T!Uo`O~IrTnMvT`*QBQCT>wp!ePtS85Z{IK zqHP*3Pf;cXmvbd8ppsHUb2=N~YR67ke8qPj<+4>g^&m>cM^h#>zqaStvSFyTBEPYubaF4~O z-H*TEy(8b?U*37|)j}DvUwrMPbFgOg-d|-Ob9FwxtKEU97zmKu$xx=l*l1tZ=o9~J z?J$Ep@vGeBmv3hJ%>{ldq<_9P8pjrto-wt1;_{&(SPW$q#b4Y_6h-uaF_e9|5llR? zk|Jy_?>yGH$8+|ObIus;Udk}FcP^lThkzJ#$J5G}Nw(aW;ffXS zZT9U&Z3elUnJ-gF#o>z~Nw}$e-mY0 zP+Te=Rsob)n4w8R8x24{;M`dO=snWdANuXM&>_mvtD1!}%~#T99U2`fZp+_R6~P#<=F5$Fj&`}i8(a|49AMPhM7 zNh2%h3=4X1rmj4p2HIWU{KZ)BW1G;Dq;^~5ojk`L5lYfZ<*Hd^-71VCY)2uMY&5z_ zts8&RfyX@2*;&WH!>K!wWbpk%(_pfahj!z5b%*%srCw4s4tfJav3I}M7NB2|IrCLW zyuRA3u6%?Ts$Q+elmc|uOwmRp^0e}eRgq<_BcMzWpw(M*)zCyzrlCRZJy`Cq}JFDg5z%4SEmmF%oUcO^FjHYj>Pi+7OzB)DdyZQiCn?iZ#CK>lp&_T-{+_& zxZwA_|;^-G~6qJQQwveA1$=EhBXu!5o zL!;FV{B0RtKyqQd5fe4s^#XApA+OcON}oT=1&vkT6eT{s>Wv>%^}zKKKi#XSFUL$|G{gvMp!no4 zRHSDHMwnZPThX1N%x#2`uG)hx_Qn@QMl$KN7L5&%zKA=Hq7usR)1J*?U?kNuV5A-A zi7#Hk%F}a}fRAdfUY2TWbN7b_|C?^VBA{%jBoXCW<*jlr>AoGZzFs&y+Ug-Vyq;>% z*`V!h9eu%}P>)V11zw|QsCT-J>;>EHZxc=qhN{#?#7}mU=tXpQ1Xsd@j>?#xXOF|4 zUpL30DlZP3JCF)Vu|YG}Et-RX$~DhvDaIiYjl>PwSl>FhI(Y@^
9BLSVq$7xUr2JCp7W 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 literal 0 HcmV?d00001 diff --git a/doc/_static/area_weighted_temperature.png b/doc/_static/area_weighted_temperature.png new file mode 100644 index 0000000000000000000000000000000000000000..7d3604d7c2b827f6fbaca71c5ed30b7ecddef075 GIT binary patch literal 26018 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 P6g)NMSI?`JEZ_exju}ci literal 0 HcmV?d00001 diff --git a/doc/_static/monthly-means.png b/doc/_static/monthly-means.png new file mode 100644 index 0000000000000000000000000000000000000000..da5691848b0009babd76c44e18cb6cf9883c4bdf GIT binary patch literal 454794 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�DnfE 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 gv>eySkA4Xm&h!w%UPf9XpQ{6Dy9< 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�t*3i3;Z4)CHTI_F4S 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�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 literal 0 HcmV?d00001 diff --git a/doc/conf.py b/doc/conf.py index 9379a427a2c..3a4b74d9fda 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -81,6 +81,7 @@ "nbsphinx", "sphinx_autosummary_accessors", "scanpydoc.rtd_github_links", + "sphinx_panels", ] extlinks = { diff --git a/doc/dev-guide/roadmap.rst b/doc/dev-guide/roadmap.rst index 1cbbaf8ef42..9a0349b9913 100644 --- a/doc/dev-guide/roadmap.rst +++ b/doc/dev-guide/roadmap.rst @@ -212,20 +212,80 @@ Administrative Current core developers ~~~~~~~~~~~~~~~~~~~~~~~ -- Stephan Hoyer -- Ryan Abernathey -- Joe Hamman -- Benoit Bovy -- Fabien Maussion -- Keisuke Fujii -- Maximilian Roos -- Deepak Cherian -- Spencer Clark -- Tom Nicholas -- Guido Imperiale -- Justus Magin -- Mathias Hauser -- Anderson Banihirwe +.. panels:: + :column: col-lg-4 col-md-4 col-sm-6 col-xs-12 p-2 + :card: text-center + + --- + .. image:: https://avatars.githubusercontent.com/u/1217238?v=4 + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + :link-badge:`https://github.com/shoyer,"Stephan Hoyer",cls=btn badge-light` + + --- + .. image:: https://avatars.githubusercontent.com/u/1197350?v=4 + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + :link-badge:`https://github.com/rabernat,"Ryan Abernathey",cls=btn badge-light` + + --- + .. image:: https://avatars.githubusercontent.com/u/2443309?v=4 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + :link-badge:`https://github.com/jhamman,"Joe Hamman",cls=btn badge-light` + + --- + .. image:: https://avatars.githubusercontent.com/u/4160723?v=4 + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + :link-badge:`https://github.com/benbovy,"Benoit Bovy",cls=btn badge-light` + + --- + .. image:: https://avatars.githubusercontent.com/u/10050469?v=4 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + :link-badge:`https://github.com/fmaussion,"Fabien Maussion",cls=btn badge-light` + + --- + .. image:: https://avatars.githubusercontent.com/u/6815844?v=4 + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + :link-badge:`https://github.com/fujiisoup,"Keisuke Fujii",cls=btn badge-light` + + --- + .. image:: https://avatars.githubusercontent.com/u/5635139?v=4 + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + :link-badge:`https://github.com/max-sixty,"Maximilian Roos",cls=btn badge-light` + + --- + .. image:: https://avatars.githubusercontent.com/u/2448579?v=4 + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + :link-badge:`https://github.com/dcherian,"Deepak Cherian",cls=btn badge-light` + + --- + .. image:: https://avatars.githubusercontent.com/u/6628425?v=4 + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + :link-badge:`https://github.com/spencerkclark,"Spencer Clark",cls=btn badge-light` + + --- + .. image:: https://avatars.githubusercontent.com/u/35968931?v=4 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + :link-badge:`https://github.com/TomNicholas,"Tom Nicholas",cls=btn badge-light` + + --- + .. image:: https://avatars.githubusercontent.com/u/6213168?v=4 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + :link-badge:`https://github.com/crusaderky,"Guido Imperiale",cls=btn badge-light` + + --- + .. image:: https://avatars.githubusercontent.com/u/14808389?v=4 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + :link-badge:`https://github.com/keewis,"Justus Magin",cls=btn badge-light` + + --- + .. image:: https://avatars.githubusercontent.com/u/10194086?v=4 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + :link-badge:`https://github.com/mathause,"Mathias Hauser",cls=btn badge-light` + + --- + .. image:: https://avatars.githubusercontent.com/u/13301940?v=4 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + :link-badge:`https://github.com/andersy005,"Anderson Banihirwe",cls=btn badge-light` + NumFOCUS ~~~~~~~~ diff --git a/doc/examples.rst b/doc/examples.rst index 8bced32bd5e..64f061bc76a 100644 --- a/doc/examples.rst +++ b/doc/examples.rst @@ -1,29 +1,125 @@ Examples ======== -.. toctree:: - :maxdepth: 1 +Tutorials +--------- + +.. panels:: + :container: full-width + :column: text-center col-lg-6 col-md-6 col-sm-12 col-xs-12 p-2 + :card: +my-2 + :img-top-cls: w-75 m-auto p-2 + :body: d-none + + --- + :img-top: _static/toy-weather-data.png + ++++ + .. link-button:: examples/weather-data + :type: ref + :text: Toy weather data + :classes: btn-outline-dark btn-block stretched-link + + --- + :img-top: _static/monthly-means.png + ++++ + .. link-button:: examples/monthly-means + :type: ref + :text: Calculating Seasonal Averages from Timeseries of Monthly Means + :classes: btn-outline-dark btn-block stretched-link + + --- + :img-top: _static/area_weighted_temperature.png + ++++ + .. link-button:: examples/area_weighted_temperature + :type: ref + :text: Compare weighted and unweighted mean temperature + :classes: btn-outline-dark btn-block stretched-link + + --- + :img-top: _static/multidimensional-coords.png + ++++ + .. link-button:: examples/multidimensional-coords + :type: ref + :text: Working with Multidimensional Coordinates + :classes: btn-outline-dark btn-block stretched-link + + --- + :img-top: _static/visualization_gallery.png + ++++ + .. link-button:: examples/visualization_gallery + :type: ref + :text: Visualization Gallery + :classes: btn-outline-dark btn-block stretched-link + + --- + :img-top: _static/ROMS_ocean_model.png + ++++ + .. link-button:: examples/ROMS_ocean_model + :type: ref + :text: ROMS Ocean Model Example + :classes: btn-outline-dark btn-block stretched-link + + --- + :img-top: _static/ERA5-GRIB-example.png + ++++ + .. link-button:: examples/ERA5-GRIB-example + :type: ref + :text: GRIB Data Example + :classes: btn-outline-dark btn-block stretched-link + + --- + :img-top: _static/dataset-diagram-square-logo.png + ++++ + .. link-button:: examples/apply_ufunc_vectorize_1d + :type: ref + :text: Applying unvectorized functions with apply_ufunc + :classes: btn-outline-dark btn-block stretched-link - ../examples/weather-data - ../examples/monthly-means - ../examples/area_weighted_temperature - ../examples/multidimensional-coords - ../examples/visualization_gallery - ../examples/ROMS_ocean_model - ../examples/ERA5-GRIB-example -Using apply_ufunc ------------------- .. toctree:: :maxdepth: 1 + :hidden: - ../examples/apply_ufunc_vectorize_1d + examples/weather-data + examples/monthly-means + examples/area_weighted_temperature + examples/multidimensional-coords + examples/visualization_gallery + examples/ROMS_ocean_model + examples/ERA5-GRIB-example + examples/apply_ufunc_vectorize_1d External Examples ----------------- -.. toctree:: - :maxdepth: 2 - Managing raster data with rioxarray - Xarray with dask - Xarray and dask on the cloud with Pangeo + +.. panels:: + :container: full-width + :column: text-center col-lg-6 col-md-6 col-sm-12 col-xs-12 p-2 + :card: +my-2 + :img-top-cls: w-75 m-auto p-2 + :body: d-none + + --- + :img-top: _static/dataset-diagram-square-logo.png + ++++ + .. link-button:: https://corteva.github.io/rioxarray/stable/examples/examples.html + :type: url + :text: Managing raster data with rioxarray + :classes: btn-outline-dark btn-block stretched-link + + --- + :img-top: https://avatars.githubusercontent.com/u/60833341?s=200&v=4 + ++++ + .. link-button:: http://gallery.pangeo.io/ + :type: url + :text: Xarray and dask on the cloud with Pangeo + :classes: btn-outline-dark btn-block stretched-link + + --- + :img-top: _static/dataset-diagram-square-logo.png + ++++ + .. link-button:: https://examples.dask.org/xarray.html + :type: url + :text: Xarray with Dask Arrays + :classes: btn-outline-dark btn-block stretched-link From 358997fcea4e04e6675ad17d1b76aafb3c0dada0 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Wed, 3 Feb 2021 21:28:12 -0700 Subject: [PATCH 20/51] examples --> gallery --- doc/conf.py | 3 +++ doc/dev-guide/index.rst | 1 + doc/{examples.rst => gallery.rst} | 15 +++++++++++---- doc/index.rst | 3 +-- 4 files changed, 16 insertions(+), 6 deletions(-) rename doc/{examples.rst => gallery.rst} (91%) diff --git a/doc/conf.py b/doc/conf.py index 3a4b74d9fda..5935e94dbc3 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -249,6 +249,9 @@ "github_url": "https://github.com/pydata/xarray", "twitter_url": "https://twitter.com/xarray_dev", "use_edit_page_button": True, + "external_links": [ + {"name": "Forum", "url": "https://github.com/pydata/xarray/discussions"} + ], } # Add any paths that contain custom themes here, relative to this directory. diff --git a/doc/dev-guide/index.rst b/doc/dev-guide/index.rst index b96f50e0890..137f13d45db 100644 --- a/doc/dev-guide/index.rst +++ b/doc/dev-guide/index.rst @@ -9,3 +9,4 @@ Development contributing internals roadmap + ../whats-new diff --git a/doc/examples.rst b/doc/gallery.rst similarity index 91% rename from doc/examples.rst rename to doc/gallery.rst index 64f061bc76a..19237711356 100644 --- a/doc/examples.rst +++ b/doc/gallery.rst @@ -1,8 +1,14 @@ -Examples -======== +Gallery +======= -Tutorials ---------- +Here's a list of examples on how to use xarray. We will be adding more examples soon. +Contributions are highly welcomed and appreciated. So, if you are interested in contributing, please consult the +contributing guide :doc:`dev-guide/contributing`. + + + +Notebook Examples +----------------- .. panels:: :container: full-width @@ -89,6 +95,7 @@ Tutorials examples/ERA5-GRIB-example examples/apply_ufunc_vectorize_1d + External Examples ----------------- diff --git a/doc/index.rst b/doc/index.rst index 73bf8f97d56..9f3b29cf99d 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -29,12 +29,11 @@ Documentation :maxdepth: 1 Getting Started - Examples + Gallery User Guide Ecosystem API Reference Development - What’s New From 5176e3e39285f940523a1d718592f5a175302e12 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Wed, 3 Feb 2021 21:39:09 -0700 Subject: [PATCH 21/51] [skip-ci] create thumbnail folder --- .../{ => thumbnails}/ERA5-GRIB-example.png | Bin .../{ => thumbnails}/ROMS_ocean_model.png | Bin .../area_weighted_temperature.png | Bin doc/_static/{ => thumbnails}/monthly-means.png | Bin .../multidimensional-coords.png | Bin .../{ => thumbnails}/toy-weather-data.png | Bin .../{ => thumbnails}/visualization_gallery.png | Bin doc/gallery.rst | 16 ++++++++-------- 8 files changed, 8 insertions(+), 8 deletions(-) rename doc/_static/{ => thumbnails}/ERA5-GRIB-example.png (100%) rename doc/_static/{ => thumbnails}/ROMS_ocean_model.png (100%) rename doc/_static/{ => thumbnails}/area_weighted_temperature.png (100%) rename doc/_static/{ => thumbnails}/monthly-means.png (100%) rename doc/_static/{ => thumbnails}/multidimensional-coords.png (100%) rename doc/_static/{ => thumbnails}/toy-weather-data.png (100%) rename doc/_static/{ => thumbnails}/visualization_gallery.png (100%) diff --git a/doc/_static/ERA5-GRIB-example.png b/doc/_static/thumbnails/ERA5-GRIB-example.png similarity index 100% rename from doc/_static/ERA5-GRIB-example.png rename to doc/_static/thumbnails/ERA5-GRIB-example.png diff --git a/doc/_static/ROMS_ocean_model.png b/doc/_static/thumbnails/ROMS_ocean_model.png similarity index 100% rename from doc/_static/ROMS_ocean_model.png rename to doc/_static/thumbnails/ROMS_ocean_model.png diff --git a/doc/_static/area_weighted_temperature.png b/doc/_static/thumbnails/area_weighted_temperature.png similarity index 100% rename from doc/_static/area_weighted_temperature.png rename to doc/_static/thumbnails/area_weighted_temperature.png diff --git a/doc/_static/monthly-means.png b/doc/_static/thumbnails/monthly-means.png similarity index 100% rename from doc/_static/monthly-means.png rename to doc/_static/thumbnails/monthly-means.png diff --git a/doc/_static/multidimensional-coords.png b/doc/_static/thumbnails/multidimensional-coords.png similarity index 100% rename from doc/_static/multidimensional-coords.png rename to doc/_static/thumbnails/multidimensional-coords.png diff --git a/doc/_static/toy-weather-data.png b/doc/_static/thumbnails/toy-weather-data.png similarity index 100% rename from doc/_static/toy-weather-data.png rename to doc/_static/thumbnails/toy-weather-data.png diff --git a/doc/_static/visualization_gallery.png b/doc/_static/thumbnails/visualization_gallery.png similarity index 100% rename from doc/_static/visualization_gallery.png rename to doc/_static/thumbnails/visualization_gallery.png diff --git a/doc/gallery.rst b/doc/gallery.rst index 19237711356..e25b2ece8b8 100644 --- a/doc/gallery.rst +++ b/doc/gallery.rst @@ -3,7 +3,7 @@ Gallery Here's a list of examples on how to use xarray. We will be adding more examples soon. Contributions are highly welcomed and appreciated. So, if you are interested in contributing, please consult the -contributing guide :doc:`dev-guide/contributing`. +:doc:`dev-guide/contributing` guide. @@ -18,7 +18,7 @@ Notebook Examples :body: d-none --- - :img-top: _static/toy-weather-data.png + :img-top: _static/thumbnails/toy-weather-data.png ++++ .. link-button:: examples/weather-data :type: ref @@ -26,7 +26,7 @@ Notebook Examples :classes: btn-outline-dark btn-block stretched-link --- - :img-top: _static/monthly-means.png + :img-top: _static/thumbnails/monthly-means.png ++++ .. link-button:: examples/monthly-means :type: ref @@ -34,7 +34,7 @@ Notebook Examples :classes: btn-outline-dark btn-block stretched-link --- - :img-top: _static/area_weighted_temperature.png + :img-top: _static/thumbnails/area_weighted_temperature.png ++++ .. link-button:: examples/area_weighted_temperature :type: ref @@ -42,7 +42,7 @@ Notebook Examples :classes: btn-outline-dark btn-block stretched-link --- - :img-top: _static/multidimensional-coords.png + :img-top: _static/thumbnails/multidimensional-coords.png ++++ .. link-button:: examples/multidimensional-coords :type: ref @@ -50,7 +50,7 @@ Notebook Examples :classes: btn-outline-dark btn-block stretched-link --- - :img-top: _static/visualization_gallery.png + :img-top: _static/thumbnails/visualization_gallery.png ++++ .. link-button:: examples/visualization_gallery :type: ref @@ -58,7 +58,7 @@ Notebook Examples :classes: btn-outline-dark btn-block stretched-link --- - :img-top: _static/ROMS_ocean_model.png + :img-top: _static/thumbnails/ROMS_ocean_model.png ++++ .. link-button:: examples/ROMS_ocean_model :type: ref @@ -66,7 +66,7 @@ Notebook Examples :classes: btn-outline-dark btn-block stretched-link --- - :img-top: _static/ERA5-GRIB-example.png + :img-top: _static/thumbnails/ERA5-GRIB-example.png ++++ .. link-button:: examples/ERA5-GRIB-example :type: ref From 6e40a2084a54dda9458e4d7372ed84bcdae954a6 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Wed, 3 Feb 2021 22:36:24 -0700 Subject: [PATCH 22/51] [skip-ci] Refactor index.rst --- doc/conf.py | 2 +- doc/index.rst | 58 ++++++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 54 insertions(+), 6 deletions(-) diff --git a/doc/conf.py b/doc/conf.py index 5935e94dbc3..c1b8b474606 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -250,7 +250,7 @@ "twitter_url": "https://twitter.com/xarray_dev", "use_edit_page_button": True, "external_links": [ - {"name": "Forum", "url": "https://github.com/pydata/xarray/discussions"} + {"name": "Community", "url": "https://github.com/pydata/xarray/discussions"} ], } diff --git a/doc/index.rst b/doc/index.rst index 9f3b29cf99d..cf2ccfdc3d8 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -22,11 +22,62 @@ computing. .. _dask: http://dask.org .. _netCDF: http://www.unidata.ucar.edu/software/netcdf -Documentation -------------- + +.. panels:: + :container: full-width + :column: text-center col-lg-6 col-md-6 col-sm-12 col-xs-12 p-2 + :card: +my-2 + :body: d-none + + --- + :fa:`walking, fa-9x` + + Getting started guide + ^^^^^^^^^^^^^^^^^^^^^ + +++ + The getting started guide aims to get you using xarray productively as quickly as possible. + It is designed as an entry point for new users, and it provided an introduction to xarray's main concepts. + + .. link-button:: getting-started-guide/index + :type: ref + :text: To the getting started guide + :classes: btn-outline-dark btn-block stretched-link + + --- + :fa:`book-reader, fa-9x` + + User guide + ^^^^^^^^^^ + + +++ + In this user guide, you will find detailed descriptions and + examples that describe many common tasks that you can accomplish with xarray. + + .. link-button:: user-guide/index + :type: ref + :text: To the user guide + :classes: btn-outline-dark btn-block stretched-link + + --- + :fa:`laptop-code, fa-9x` + + Developer guide + ^^^^^^^^^^^^^^^ + + +++ + Contributions are highly welcomed and appreciated. Every little help counts, so do not hesitate! + The contribution guide explains how to structure your contributions. + + .. link-button:: reference-guide/index + :type: ref + :text: To the development guide + :classes: btn-outline-dark btn-block stretched-link + .. toctree:: :maxdepth: 1 + :caption: Documentation + :hidden: Getting Started Gallery @@ -36,9 +87,6 @@ Documentation Development - - - See also -------- From 189f64aed815de3b45d7646f00a4299550cf6071 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Thu, 4 Feb 2021 11:43:12 -0700 Subject: [PATCH 23/51] [skip-ci] Revert heading changes --- ci/requirements/doc.yml | 2 ++ doc/conf.py | 14 ++++++++++++ doc/user-guide/dask.rst | 15 +++++++------ doc/user-guide/data-structures.rst | 8 +++---- doc/user-guide/duckarrays.rst | 6 ++--- doc/user-guide/groupby.rst | 2 ++ doc/user-guide/indexing.rst | 35 +++++++++++++++--------------- doc/user-guide/interpolation.rst | 14 ++++++------ doc/user-guide/io.rst | 29 +++++++++++++------------ doc/user-guide/plotting.rst | 14 ++++++------ doc/user-guide/reshaping.rst | 18 ++++++++------- doc/user-guide/terminology.rst | 2 +- doc/user-guide/time-series.rst | 11 +++++----- doc/user-guide/weather-climate.rst | 7 +++--- 14 files changed, 101 insertions(+), 76 deletions(-) diff --git a/ci/requirements/doc.yml b/ci/requirements/doc.yml index fa8863f247d..51eb7e83e0d 100644 --- a/ci/requirements/doc.yml +++ b/ci/requirements/doc.yml @@ -31,6 +31,8 @@ dependencies: - zarr>=2.4 - pip - pip: + - sphinx-reredirects + - sphinxext-opengraph - scanpydoc # relative to this file. Needs to be editable to be accepted. - -e ../.. diff --git a/doc/conf.py b/doc/conf.py index c1b8b474606..15824a91ffc 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -82,6 +82,8 @@ "sphinx_autosummary_accessors", "scanpydoc.rtd_github_links", "sphinx_panels", + "sphinxext.opengraph", + "sphinx_reredirects", ] extlinks = { @@ -254,6 +256,18 @@ ], } + +# redirects = {} + +# configuration for sphinxext.opengraph +ogp_site_url = "https://xarray.pydata.org/en/latest/" +ogp_image = "https://xarray.pydata.org/en/stable/_static/dataset-diagram-logo.png" +ogp_custom_meta_tags = [ + '', + '', +] + # Add any paths that contain custom themes here, relative to this directory. # html_theme_path = [] diff --git a/doc/user-guide/dask.rst b/doc/user-guide/dask.rst index 6ea1c709ed8..e92aacbe511 100644 --- a/doc/user-guide/dask.rst +++ b/doc/user-guide/dask.rst @@ -1,8 +1,9 @@ .. currentmodule:: xarray + .. _dask: Parallel computing with Dask ------------------------------ +============================ xarray integrates with `Dask `__ to support parallel computations and streaming computation on datasets that don't fit into memory. @@ -18,7 +19,7 @@ and at the `Dask examples website `_. .. _blog post introducing xarray and Dask: http://stephanhoyer.com/2015/06/11/xray-dask-out-of-core-labeled-arrays/ What is a Dask array? -===================== +--------------------- .. image:: ../_static/dask_array.png :width: 40 % @@ -44,7 +45,7 @@ Note that xarray only makes use of ``dask.array`` and ``dask.delayed``. .. _dask.io: Reading and writing data -======================== +------------------------ The usual way to create a ``Dataset`` filled with Dask arrays is to load the data from a netCDF file or files. You can do this by supplying a ``chunks`` @@ -155,7 +156,7 @@ Dask DataFrames do not support multi-indexes so the coordinate variables from th os.remove("manipulated-example-data.nc") Using Dask with xarray -====================== +---------------------- Nearly all existing xarray methods (including those for indexing, computation, concatenating and grouped operations) have been extended to work automatically @@ -286,7 +287,7 @@ loaded into Dask or not: .. _dask.automatic-parallelization: Automatic parallelization with ``apply_ufunc`` and ``map_blocks`` -================================================================= +----------------------------------------------------------------- Almost all of xarray's built-in operations work on Dask arrays. If you want to use a function that isn't wrapped by xarray, and have it applied in parallel on @@ -511,7 +512,7 @@ Notice that the 0-shaped sizes were not printed to screen. Since ``template`` ha Chunking and performance -======================== +------------------------ The ``chunks`` parameter has critical performance implications when using Dask arrays. If your chunks are too small, queueing up operations will be extremely @@ -534,7 +535,7 @@ larger chunksizes. Optimization Tips -================= +----------------- With analysis pipelines involving both spatial subsetting and temporal resampling, Dask performance can become very slow in certain cases. Here are some optimization tips we have found through experience: diff --git a/doc/user-guide/data-structures.rst b/doc/user-guide/data-structures.rst index 1d231cbb4af..14881e0c261 100644 --- a/doc/user-guide/data-structures.rst +++ b/doc/user-guide/data-structures.rst @@ -1,7 +1,7 @@ .. _data structures: Data Structures ---------------- +=============== .. ipython:: python :suppress: @@ -14,7 +14,7 @@ Data Structures np.set_printoptions(threshold=10) DataArray -========= +--------- :py:class:`xarray.DataArray` is xarray's implementation of a labeled, multi-dimensional array. It has several key properties: @@ -219,7 +219,7 @@ Coordinates can also be set or removed by using the dictionary like syntax: For more details, see :ref:`coordinates` below. Dataset -======= +------- :py:class:`xarray.Dataset` is xarray's multi-dimensional equivalent of a :py:class:`~pandas.DataFrame`. It is a dict-like @@ -483,7 +483,7 @@ dimension and non-dimension variables: .. _coordinates: Coordinates -=========== +----------- Coordinates are ancillary variables stored for ``DataArray`` and ``Dataset`` objects in the ``coords`` attribute: diff --git a/doc/user-guide/duckarrays.rst b/doc/user-guide/duckarrays.rst index 9fa399b2814..ba13d5160ae 100644 --- a/doc/user-guide/duckarrays.rst +++ b/doc/user-guide/duckarrays.rst @@ -1,7 +1,7 @@ .. currentmodule:: xarray Working with numpy-like arrays ------------------------------- +============================== .. warning:: @@ -20,7 +20,7 @@ long as they satisfy certain conditions (see :ref:`internals.duck_arrays`). Missing features -================ +---------------- Most of the API does support :term:`duck array` objects, but there are a few areas where the code will still cast to ``numpy`` arrays: @@ -58,7 +58,7 @@ the code will still cast to ``numpy`` arrays: Extensions using duck arrays -============================ +---------------------------- Here's a list of libraries extending ``xarray`` to make working with wrapped duck arrays easier: diff --git a/doc/user-guide/groupby.rst b/doc/user-guide/groupby.rst index 5c47ebdef63..d0c0b1849f9 100644 --- a/doc/user-guide/groupby.rst +++ b/doc/user-guide/groupby.rst @@ -1,3 +1,5 @@ +.. _groupby: + GroupBy: split-apply-combine ---------------------------- diff --git a/doc/user-guide/indexing.rst b/doc/user-guide/indexing.rst index d5aba0cb999..78766b8fd81 100644 --- a/doc/user-guide/indexing.rst +++ b/doc/user-guide/indexing.rst @@ -1,6 +1,7 @@ +.. _indexing: Indexing and selecting data ---------------------------- +=========================== .. ipython:: python :suppress: @@ -52,7 +53,7 @@ See :ref:`vectorized_indexing` for the details. Positional indexing -=================== +------------------- Indexing a :py:class:`~xarray.DataArray` directly works (mostly) just like it does for numpy arrays, except that the returned object is always another @@ -107,7 +108,7 @@ Setting values with label based indexing is also supported: Indexing with dimension names -============================= +----------------------------- With the dimension names, we do not have to rely on dimension order and can use them explicitly to slice data. There are two ways to do this: @@ -150,7 +151,7 @@ __ http://legacy.python.org/dev/peps/pep-0472/ .. _nearest neighbor lookups: Nearest neighbor lookups -======================== +------------------------ The label based selection methods :py:meth:`~xarray.Dataset.sel`, :py:meth:`~xarray.Dataset.reindex` and :py:meth:`~xarray.Dataset.reindex_like` all @@ -206,7 +207,7 @@ Indexing axes with monotonic decreasing labels also works, as long as the Dataset indexing -================ +---------------- We can also use these methods to index all variables in a dataset simultaneously, returning a new dataset: @@ -237,7 +238,7 @@ Using indexing to *assign* values to a subset of dataset (e.g., ``ds[dict(space=0)] = 1``) is not yet supported. Dropping labels and dimensions -============================== +------------------------------ The :py:meth:`~xarray.Dataset.drop_sel` method returns a new object with the listed index labels along a dimension dropped: @@ -258,7 +259,7 @@ Any variables with these dimensions are also dropped: .. _masking with where: Masking with ``where`` -====================== +---------------------- Indexing methods on xarray objects generally return a subset of the original data. However, it is sometimes useful to select an object with the same shape as the @@ -292,7 +293,7 @@ elements that are fully masked: .. _selecting values with isin: Selecting values with ``isin`` -=============================== +------------------------------ To check whether elements of an xarray object contain a single object, you can compare with the equality operator ``==`` (e.g., ``arr == 3``). To check @@ -318,7 +319,7 @@ is significantly slower than using :py:meth:`~xarray.DataArray.sel`. .. _vectorized_indexing: Vectorized Indexing -==================== +------------------- Like numpy and pandas, xarray supports indexing many array elements at once in a `vectorized` manner. @@ -412,7 +413,7 @@ These methods may also be applied to ``Dataset`` objects .. _assigning_values: Assigning values with indexing -============================== +------------------------------ To select and assign values to a portion of a :py:meth:`~xarray.DataArray` you can use indexing with ``.loc`` : @@ -523,7 +524,7 @@ __ https://docs.scipy.org/doc/numpy/user/basics.indexing.html#assigning-values-t .. _more_advanced_indexing: More advanced indexing -====================== +----------------------- The use of :py:meth:`~xarray.DataArray` objects as indexers enables very flexible indexing. The following is an example of the pointwise indexing: @@ -568,7 +569,7 @@ method: .. _align and reindex: Align and reindex -================= +----------------- xarray's ``reindex``, ``reindex_like`` and ``align`` impose a ``DataArray`` or ``Dataset`` onto a new set of coordinates corresponding to dimensions. The @@ -631,7 +632,7 @@ Both ``reindex_like`` and ``align`` work interchangeably between .. _indexing.missing_coordinates: Missing coordinate labels -========================= +------------------------- Coordinate labels for each dimension are optional (as of xarray v0.9). Label based indexing with ``.sel`` and ``.loc`` uses standard positional, @@ -653,7 +654,7 @@ Otherwise, it raises an informative error: ValueError: arguments without labels along dimension 'x' cannot be aligned because they have different dimension sizes: {2, 3} Underlying Indexes -================== +------------------ xarray uses the :py:class:`pandas.Index` internally to perform indexing operations. If you need to access the underlying indexes, they are available @@ -686,7 +687,7 @@ labels: .. _copies_vs_views: Copies vs. Views -================ +---------------- Whether array indexing returns a view or a copy of the underlying data depends on the nature of the labels. @@ -715,7 +716,7 @@ should still avoid assignment with chained indexing. .. _multi-level indexing: Multi-level indexing -==================== +-------------------- Just like pandas, advanced indexing on multi-level indexes is possible with ``loc`` and ``sel``. You can slice a multi-index by providing multiple indexers, @@ -773,7 +774,7 @@ above, ``mda.loc[{'one': 'a', 'two': 0}, :]`` or ``mda.loc[('a', 0), ...]``. .. _indexing.rules: Indexing rules -============== +-------------- Here we describe the full rules xarray uses for vectorized indexing. Note that this is for the purposes of explanation: for the sake of efficiency and to diff --git a/doc/user-guide/interpolation.rst b/doc/user-guide/interpolation.rst index 8deee664f62..8a7f9ebe911 100644 --- a/doc/user-guide/interpolation.rst +++ b/doc/user-guide/interpolation.rst @@ -1,7 +1,7 @@ .. _interp: Interpolating data -------------------- +================== .. ipython:: python :suppress: @@ -21,7 +21,7 @@ to our :ref:`indexing `. Scalar and 1-dimensional interpolation -======================================= +-------------------------------------- Interpolating a :py:class:`~xarray.DataArray` works mostly like labeled indexing of a :py:class:`~xarray.DataArray`, @@ -78,7 +78,7 @@ allowed. See :ref:`CFTimeIndex` for examples. Multi-dimensional Interpolation -================================ +------------------------------- Like :py:meth:`~xarray.DataArray.sel`, :py:meth:`~xarray.DataArray.interp` accepts multiple coordinates. In this case, multidimensional interpolation @@ -130,7 +130,7 @@ It is now possible to safely compute the difference ``other - interpolated``. Interpolation methods -===================== +--------------------- We use :py:class:`scipy.interpolate.interp1d` for 1-dimensional interpolation and :py:func:`scipy.interpolate.interpn` for multi-dimensional interpolation. @@ -169,7 +169,7 @@ Additional keyword arguments can be passed to scipy's functions. Advanced Interpolation -====================== +---------------------- :py:meth:`~xarray.DataArray.interp` accepts :py:class:`~xarray.DataArray` as similar to :py:meth:`~xarray.DataArray.sel`, which enables us more advanced interpolation. @@ -221,7 +221,7 @@ see :ref:`more advanced indexing `. Interpolating arrays with NaN -============================= +----------------------------- Our :py:meth:`~xarray.DataArray.interp` works with arrays with NaN the same way that @@ -268,7 +268,7 @@ see :ref:`Missing values `. Example -======= +------- Let's see how :py:meth:`~xarray.DataArray.interp` works on real data. diff --git a/doc/user-guide/io.rst b/doc/user-guide/io.rst index 902ac114a4b..7f5874fea05 100644 --- a/doc/user-guide/io.rst +++ b/doc/user-guide/io.rst @@ -1,7 +1,8 @@ .. currentmodule:: xarray +.. _io: Reading and writing files -------------------------- +========================= xarray supports direct serialization and IO to several file formats, from simple :ref:`io.pickle` files to the more flexible :ref:`io.netcdf` @@ -19,7 +20,7 @@ format (recommended). .. _io.netcdf: netCDF -====== +------ The recommended way to store xarray data structures is `netCDF`__, which is a binary file format for self-described datasets that originated @@ -500,7 +501,7 @@ and currently raises a warning unless ``invalid_netcdf=True`` is set: .. _io.iris: Iris -==== +---- The Iris_ tool allows easy reading of common meteorological and climate model formats (including GRIB and UK MetOffice PP files) into ``Cube`` objects which are in many ways very @@ -532,7 +533,7 @@ Conversely, we can create a new ``DataArray`` object from a ``Cube`` using OPeNDAP -======= +------- xarray includes support for `OPeNDAP`__ (via the netCDF4 library or Pydap), which lets us access large datasets over HTTP. @@ -554,7 +555,7 @@ __ http://iri.columbia.edu/ tmax = remote_data.tmax[:500, ::3, ::3] tmax - @savefig ../_static/opendap-prism-tmax.png + @savefig opendap-prism-tmax.png tmax[0].plot() .. ipython:: @@ -657,7 +658,7 @@ __ http://pydap.readthedocs.io/en/latest/client.html#authentication .. _io.pickle: Pickle -====== +------ The simplest way to serialize an xarray object is to use Python's built-in pickle module: @@ -692,7 +693,7 @@ this version of xarray will work in future versions. .. _dictionary io: Dictionary -========== +---------- We can convert a ``Dataset`` (or a ``DataArray``) to a dict using :py:meth:`Dataset.to_dict`: @@ -735,7 +736,7 @@ search indices or other automated data discovery tools. .. _io.rasterio: Rasterio -======== +-------- GeoTIFFs and other gridded raster datasets can be opened using `rasterio`_, if rasterio is installed. Here is an example of how to use @@ -825,7 +826,7 @@ GDAL readable raster data using `rasterio`_ as well as for exporting to a geoTIF .. _io.zarr: Zarr -==== +---- `Zarr`_ is a Python package that provides an implementation of chunked, compressed, N-dimensional arrays. @@ -1075,7 +1076,7 @@ with ``mode='a'``. shutil.rmtree("path/to/directory.zarr") GRIB format via cfgrib -====================== +---------------------- xarray supports reading GRIB files via ECMWF cfgrib_ python driver, if it is installed. To open a GRIB file supply ``engine='cfgrib'`` @@ -1095,7 +1096,7 @@ We recommend installing cfgrib via conda:: .. _io.pynio: Formats supported by PyNIO -=========================== +-------------------------- xarray can also read GRIB, HDF4 and other file formats supported by PyNIO_, if PyNIO is installed. To use PyNIO to read such files, supply @@ -1115,7 +1116,7 @@ We recommend installing PyNIO via conda:: .. _io.PseudoNetCDF: Formats supported by PseudoNetCDF -================================= +--------------------------------- xarray can also read CAMx, BPCH, ARL PACKED BIT, and many other file formats supported by PseudoNetCDF_, if PseudoNetCDF is installed. @@ -1135,7 +1136,7 @@ options are listed on the PseudoNetCDF page. CSV and other formats supported by Pandas -========================================= +----------------------------------------- For more options (tabular formats and CSV files in particular), consider exporting your objects to pandas and using its broad range of `IO tools`_. @@ -1147,7 +1148,7 @@ For CSV files, one might also consider `xarray_extras`_. Third party libraries -===================== +--------------------- More formats are supported by extension libraries: diff --git a/doc/user-guide/plotting.rst b/doc/user-guide/plotting.rst index 43d5880ab9b..3699f794ae8 100644 --- a/doc/user-guide/plotting.rst +++ b/doc/user-guide/plotting.rst @@ -2,10 +2,10 @@ .. _plotting: Plotting --------- +======== Introduction -============ +------------ Labeled data enables expressive computations. These same labels can also be used to easily create informative plots. @@ -49,7 +49,7 @@ For more extensive plotting applications consider the following projects: tools. Imports -======= +~~~~~~~ .. ipython:: python :suppress: @@ -87,7 +87,7 @@ For these examples we'll use the North American air temperature dataset. DataArrays -========== +---------- One Dimension ~~~~~~~~~~~~~ @@ -704,7 +704,7 @@ TODO: add an example of using the ``map`` method to plot dataset variables .. _plot-dataset: Datasets -======== +-------- ``xarray`` has limited support for plotting Dataset variables against each other. Consider this dataset @@ -766,7 +766,7 @@ For more advanced scatter plots, we recommend converting the relevant data varia .. _plot-maps: Maps -==== +---- To follow this section you'll need to have Cartopy installed and working. @@ -808,7 +808,7 @@ by faceting are accessible in the object returned by ``plot``: Details -======= +------- Ways to Use ~~~~~~~~~~~ diff --git a/doc/user-guide/reshaping.rst b/doc/user-guide/reshaping.rst index 1a4b08e2b35..81fd4a6d35e 100644 --- a/doc/user-guide/reshaping.rst +++ b/doc/user-guide/reshaping.rst @@ -1,6 +1,8 @@ +.. _reshape: +############################### Reshaping and reorganizing data -------------------------------- +############################### These methods allow you to reorganize @@ -14,7 +16,7 @@ These methods allow you to reorganize np.random.seed(123456) Reordering dimensions -===================== +--------------------- To reorder dimensions on a :py:class:`~xarray.DataArray` or across all variables on a :py:class:`~xarray.Dataset`, use :py:meth:`~xarray.DataArray.transpose`. An @@ -28,7 +30,7 @@ ellipsis (`...`) can be use to represent all other dimensions: ds.transpose() # reverses all dimensions Expand and squeeze dimensions -============================= +----------------------------- To expand a :py:class:`~xarray.DataArray` or all variables on a :py:class:`~xarray.Dataset` along a new dimension, @@ -50,7 +52,7 @@ use :py:meth:`~xarray.DataArray.squeeze` expanded.squeeze("w") Converting between datasets and arrays -====================================== +-------------------------------------- To convert from a Dataset to a DataArray, use :py:meth:`~xarray.Dataset.to_array`: @@ -94,7 +96,7 @@ If you use ``to_dataset`` without supplying the ``dim`` argument, the DataArray .. _reshape.stack: Stack and unstack -================= +----------------- As part of xarray's nascent support for :py:class:`pandas.MultiIndex`, we have implemented :py:meth:`~xarray.DataArray.stack` and @@ -190,7 +192,7 @@ numerical method. .. _reshape.set_index: Set and reset index -=================== +------------------- Complementary to stack / unstack, xarray's ``.set_index``, ``.reset_index`` and ``.reorder_levels`` allow easy manipulation of ``DataArray`` or ``Dataset`` @@ -250,7 +252,7 @@ labels for one or several dimensions: .. _reshape.shift_and_roll: Shift and roll -=============== +-------------- To adjust coordinate labels, you can use the :py:meth:`~xarray.Dataset.shift` and :py:meth:`~xarray.Dataset.roll` methods: @@ -264,7 +266,7 @@ To adjust coordinate labels, you can use the :py:meth:`~xarray.Dataset.shift` an .. _reshape.sort: Sort -==== +---- One may sort a DataArray/Dataset via :py:meth:`~xarray.DataArray.sortby` and :py:meth:`~xarray.DataArray.sortby`. The input can be an individual or list of diff --git a/doc/user-guide/terminology.rst b/doc/user-guide/terminology.rst index 3fa944af32d..1876058323e 100644 --- a/doc/user-guide/terminology.rst +++ b/doc/user-guide/terminology.rst @@ -2,7 +2,7 @@ .. _terminology: Terminology ------------ +=========== *Xarray terminology differs slightly from CF, mathematical conventions, and pandas; so we've put together a glossary of its terms. Here,* ``arr`` * diff --git a/doc/user-guide/time-series.rst b/doc/user-guide/time-series.rst index 57fb2d80738..f9d341ff25d 100644 --- a/doc/user-guide/time-series.rst +++ b/doc/user-guide/time-series.rst @@ -1,7 +1,8 @@ .. _time-series: +================ Time series data ------------------ +================ A major use case for xarray is multi-dimensional time-series data. Accordingly, we've copied many of features that make working with time-series @@ -18,7 +19,7 @@ core functionality. np.random.seed(123456) Creating datetime64 data -======================== +------------------------ xarray uses the numpy dtypes ``datetime64[ns]`` and ``timedelta64[ns]`` to represent datetime data, which offer vectorized (if sometimes buggy) operations @@ -78,7 +79,7 @@ packaged with earlier versions ``netCDF4``). See :ref:`CFTimeIndex` for more information. Datetime indexing -================= +----------------- xarray borrows powerful indexing machinery from pandas (see :ref:`indexing`). @@ -105,7 +106,7 @@ For more details, read the pandas documentation. .. _dt_accessor: Datetime components -=================== +------------------- Similar `to pandas`_, the components of datetime objects contained in a given ``DataArray`` can be quickly computed using a special ``.dt`` accessor. @@ -167,7 +168,7 @@ for arrays utilising the same formatting as the standard `datetime.strftime`_. .. _resampling: Resampling and grouped operations -================================= +--------------------------------- Datetime components couple particularly well with grouped operations (see :ref:`groupby`) for analyzing features that repeat over time. Here's how to diff --git a/doc/user-guide/weather-climate.rst b/doc/user-guide/weather-climate.rst index afa0ab45ccd..db612d74859 100644 --- a/doc/user-guide/weather-climate.rst +++ b/doc/user-guide/weather-climate.rst @@ -1,6 +1,7 @@ +.. _weather-climate: Weather and climate data ------------------------- +======================== .. ipython:: python :suppress: @@ -14,7 +15,7 @@ Weather and climate data .. _metpy_accessor: CF-compliant coordinate variables -================================= +--------------------------------- `MetPy`_ adds a ``metpy`` accessor that allows accessing coordinates with appropriate CF metadata using generic names ``x``, ``y``, ``vertical`` and ``time``. There is also a `cartopy_crs` attribute that provides projection information, parsed from the appropriate CF metadata, as a `Cartopy`_ projection object. See `their documentation`_ for more information. @@ -25,7 +26,7 @@ CF-compliant coordinate variables .. _CFTimeIndex: Non-standard calendars and dates outside the Timestamp-valid range -================================================================== +------------------------------------------------------------------ Through the standalone ``cftime`` library and a custom subclass of :py:class:`pandas.Index`, xarray supports a subset of the indexing From 5e15d0b6d68175eab0bbc83caa72e1c6704b9ddf Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Wed, 17 Feb 2021 10:29:43 -0700 Subject: [PATCH 24/51] Declare the extension safe for parallel reads --- doc/conf.py | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/conf.py b/doc/conf.py index d292eb5ce8f..db9e7092b9c 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -452,3 +452,4 @@ def escape_underscores(string): def setup(app): DEFAULT_FILTERS["escape_underscores"] = escape_underscores + return {"parallel_read_safe": True} From 323276445d6d1ee21a8535a5efcca0d85b55c67f Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Wed, 17 Feb 2021 11:05:55 -0700 Subject: [PATCH 25/51] [skip-ci] Fix parallel read and write settings --- doc/Makefile | 8 ++++++++ doc/conf.py | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/doc/Makefile b/doc/Makefile index d88a8a59c39..8b08d3a2dbe 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -19,6 +19,7 @@ I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . help: @echo "Please use \`make ' where is one of" @echo " html to make standalone HTML files" + @echo " rtdhtml Build html using same settings used on ReadtheDocs" @echo " livehtml Make standalone HTML files and rebuild the documentation when a change is detected. Also includes a livereload enabled web server" @echo " dirhtml to make HTML files named index.html in directories" @echo " singlehtml to make a single large HTML file" @@ -58,6 +59,13 @@ html: @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." +.PHONY: rtdhtml +rtdhtml: + $(SPHINXBUILD) -T -j auto -E -W --keep-going -b html -d $(BUILDDIR)/doctrees -D language=en . $(BUILDDIR)/html + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + + .PHONY: livehtml livehtml: # @echo "$(SPHINXATUOBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html" diff --git a/doc/conf.py b/doc/conf.py index db9e7092b9c..ededa1af217 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -452,4 +452,4 @@ def escape_underscores(string): def setup(app): DEFAULT_FILTERS["escape_underscores"] = escape_underscores - return {"parallel_read_safe": True} + return dict(version=version, parallel_read_safe=False, parallel_write_safe=True) From de220db86c9a8c9f1e6271dc0972c80e522dcbd7 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Wed, 3 Mar 2021 04:35:52 -0700 Subject: [PATCH 26/51] Use sphinx book theme --- ci/requirements/doc.yml | 7 ++--- doc/conf.py | 57 +++++++++++++++++++++++++---------------- 2 files changed, 39 insertions(+), 25 deletions(-) diff --git a/ci/requirements/doc.yml b/ci/requirements/doc.yml index aeb0144d632..be212253536 100644 --- a/ci/requirements/doc.yml +++ b/ci/requirements/doc.yml @@ -20,16 +20,17 @@ dependencies: - numba - numpy>=1.17 - pandas>=1.0 + - pip - pydata-sphinx-theme>=0.4.3 - rasterio>=1.1 - seaborn - setuptools - sparse - - sphinx>=3.3 - - sphinx-panels - sphinx-autosummary-accessors + - sphinx-book-theme >= 0.0.38 + - sphinx-panels + - sphinx>=3.3 - zarr>=2.4 - - pip - pip: - sphinx-reredirects - sphinxext-opengraph diff --git a/doc/conf.py b/doc/conf.py index ededa1af217..302a42ea674 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -239,23 +239,49 @@ # -- Options for HTML output ---------------------------------------------- - # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = "pydata_sphinx_theme" +html_theme = "sphinx_book_theme" + +# html_theme = "vaex_theme" +# html_theme_path = ['_theme'] # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -html_theme_options = { - "github_url": "https://github.com/pydata/xarray", - "twitter_url": "https://twitter.com/xarray_dev", - "use_edit_page_button": True, - "external_links": [ - {"name": "Community", "url": "https://github.com/pydata/xarray/discussions"} - ], +html_theme_options = dict( + # analytics_id='' this is configured in rtfd.io + # canonical_url="", + repository_url="https://github.com/pydata/xarray", + use_edit_page_button=True, + use_repository_button=True, + use_issues_button=True, + path_to_docs="doc/", + home_page_in_toc=True, + extra_navbar="", + navbar_footer_text="", + extra_footer='Theme by the Executable Book Project', + twitter_url="https://twitter.com/xarray_devs", +) + + +html_sidebars = { + "**": ["sbt-sidebar-footer.html", "sbt-sidebar-nav.html", "sidebar-search-bs.html"] } +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +html_logo = "_static/dataset-diagram-logo.png" + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +html_favicon = "_static/favicon.ico" + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ["_static"] # redirects = {} @@ -278,19 +304,6 @@ # A shorter title for the navigation bar. Default is the same as html_title. # html_short_title = None -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -html_logo = "_static/dataset-diagram-logo.png" - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -html_favicon = "_static/favicon.ico" - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ["_static"] # Sometimes the savefig directory doesn't exist and needs to be created # https://github.com/ipython/ipython/issues/8733 From abbf6cebc2512ab00ba89e6d0d5066f6a2f70c56 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Wed, 3 Mar 2021 07:19:03 -0700 Subject: [PATCH 27/51] [skip-ci] Use sphinx-book-theme --- ci/requirements/doc.yml | 1 + doc/conf.py | 226 +++++------------------- doc/dev-guide/index.rst | 11 +- doc/getting-started-guide/index.rst | 8 +- doc/getting-started-guide/tutorials.rst | 21 +++ doc/index.rst | 78 +------- doc/user-guide/index.rst | 7 +- 7 files changed, 85 insertions(+), 267 deletions(-) create mode 100644 doc/getting-started-guide/tutorials.rst diff --git a/ci/requirements/doc.yml b/ci/requirements/doc.yml index be212253536..527a57961fb 100644 --- a/ci/requirements/doc.yml +++ b/ci/requirements/doc.yml @@ -15,6 +15,7 @@ dependencies: - iris>=2.3 - jupyter_client - matplotlib-base + - myst-nb - nbsphinx - netcdf4>=1.5 - numba diff --git a/doc/conf.py b/doc/conf.py index 302a42ea674..fe1079368b9 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -78,12 +78,11 @@ "sphinx.ext.napoleon", "IPython.sphinxext.ipython_directive", "IPython.sphinxext.ipython_console_highlighting", - "nbsphinx", + "myst_nb", "sphinx_autosummary_accessors", "scanpydoc.rtd_github_links", "sphinx_panels", "sphinxext.opengraph", - "sphinx_reredirects", ] extlinks = { @@ -91,33 +90,36 @@ "pull": ("https://github.com/pydata/xarray/pull/%s", "PR"), } -nbsphinx_timeout = 600 -nbsphinx_execute = "always" -nbsphinx_prolog = """ -{% set docname = env.doc2path(env.docname, base=None) %} +# myst-nb configurations +# https://myst-nb.readthedocs.io/en/latest/use/start.html -You can run this notebook in a `live session `_ |Binder| or view it `on Github `_. +jupyter_execute_notebooks = "cache" +execution_allow_errors = True +execution_timeout = 600 -.. |Binder| image:: https://mybinder.org/badge.svg - :target: https://mybinder.org/v2/gh/pydata/xarray/master?urlpath=lab/tree/doc/{{ docname }} -""" + +# nbsphinx_execute = "always" +# nbsphinx_prolog = """ +# {% set docname = env.doc2path(env.docname, base=None) %} + +# You can run this notebook in a `live session `_ |Binder| or view it `on Github `_. + +# .. |Binder| image:: https://mybinder.org/badge.svg +# :target: https://mybinder.org/v2/gh/pydata/xarray/master?urlpath=lab/tree/doc/{{ docname }} +# """ autosummary_generate = True # for scanpydoc's jinja filter project_dir = pathlib.Path(__file__).parent.parent -html_context = { - "github_user": "pydata", - "github_repo": "xarray", - "github_version": "master", - "doc_path": "doc", -} + autodoc_typehints = "none" +# Napoleon configurations + napoleon_google_docstring = False napoleon_numpy_docstring = True - napoleon_use_param = False napoleon_use_rtype = False napoleon_preprocess_types = True @@ -171,6 +173,9 @@ "pd.NaT": "~pandas.NaT", } + +# Numpydoc configurations + numpydoc_class_members_toctree = True numpydoc_show_class_members = False @@ -178,10 +183,8 @@ templates_path = ["_templates", sphinx_autosummary_accessors.templates_path] # The suffix of source filenames. -source_suffix = ".rst" +# source_suffix = ".rst" -# The encoding of source files. -# source_encoding = 'utf-8-sig' # The master toctree document. master_doc = "index" @@ -190,19 +193,11 @@ project = "xarray" copyright = "2014-%s, xarray Developers" % datetime.datetime.now().year -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# # The short X.Y version. version = xarray.__version__.split("+")[0] # The full version, including alpha/beta/rc tags. release = xarray.__version__ -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# language = None - # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: # today = '' @@ -213,38 +208,23 @@ # directories to ignore when looking for source files. exclude_patterns = ["_build", "**.ipynb_checkpoints"] -# The reST default role (used for this markup: `text`) to use for all -# documents. -# default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -# add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -# add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -# show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = "sphinx" -# A list of ignored prefixes for module index sorting. -# modindex_common_prefix = [] - -# If true, keep warnings as "system message" paragraphs in the built documents. -# keep_warnings = False - # -- Options for HTML output ---------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. html_theme = "sphinx_book_theme" +html_title = "" -# html_theme = "vaex_theme" -# html_theme_path = ['_theme'] +html_context = { + "github_user": "pydata", + "github_repo": "xarray", + "github_version": "master", + "doc_path": "doc", +} # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the @@ -257,7 +237,7 @@ use_repository_button=True, use_issues_button=True, path_to_docs="doc/", - home_page_in_toc=True, + home_page_in_toc=False, extra_navbar="", navbar_footer_text="", extra_footer='Theme by the Executable Book Project', @@ -265,9 +245,9 @@ ) -html_sidebars = { - "**": ["sbt-sidebar-footer.html", "sbt-sidebar-nav.html", "sidebar-search-bs.html"] -} +# html_sidebars = { +# "**": ["sbt-sidebar-footer.html", "sbt-sidebar-nav.html", "sidebar-search-bs.html"] +# } # The name of an image file (relative to this directory) to place at the top # of the sidebar. @@ -294,15 +274,15 @@ '', ] -# Add any paths that contain custom themes here, relative to this directory. -# html_theme_path = [] - -# The name for this set of Sphinx documents. If None, it defaults to -# " v documentation". -# html_title = None - -# A shorter title for the navigation bar. Default is the same as html_title. -# html_short_title = None +# myst_enable_extensions = [ +# "amsmath", +# "colon_fence", +# "deflist", +# "dollarmath", +# "html_image", +# ] +# myst_url_schemes = ("http", "https", "mailto") +# panels_add_bootstrap_css = False # Sometimes the savefig directory doesn't exist and needs to be created @@ -314,135 +294,15 @@ if not os.path.exists(ipython_savefig_dir): os.makedirs(ipython_savefig_dir) -# Add any extra paths that contain custom files (such as robots.txt or -# .htaccess) here, relative to this directory. These files are copied -# directly to the root of the documentation. -# html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. html_last_updated_fmt = today_fmt -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -# html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -# html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -# html_additional_pages = {} - -# If false, no module index is generated. -# html_domain_indices = True - -# If false, no index is generated. -# html_use_index = True - -# If true, the index is split into individual pages for each letter. -# html_split_index = False - -# If true, links to the reST sources are added to the pages. -# html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -# html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -# html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -# html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -# html_file_suffix = None - # Output file base name for HTML help builder. htmlhelp_basename = "xarraydoc" -# -- Options for LaTeX output --------------------------------------------- - -# latex_elements = { -# # The paper size ('letterpaper' or 'a4paper'). -# # 'papersize': 'letterpaper', -# # The font size ('10pt', '11pt' or '12pt'). -# # 'pointsize': '10pt', -# # Additional stuff for the LaTeX preamble. -# # 'preamble': '', -# } - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, -# author, documentclass [howto, manual, or own class]). -# latex_documents = [ -# ("index", "xarray.tex", "xarray Documentation", "xarray Developers", "manual") -# ] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -# latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -# latex_use_parts = False - -# If true, show page references after internal links. -# latex_show_pagerefs = False - -# If true, show URL addresses after external links. -# latex_show_urls = False - -# Documents to append as an appendix to all manuals. -# latex_appendices = [] - -# If false, no module index is generated. -# latex_domain_indices = True - - -# -- Options for manual page output --------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -# man_pages = [("index", "xarray", "xarray Documentation", ["xarray Developers"], 1)] - -# If true, show URL addresses after external links. -# man_show_urls = False - - -# -- Options for Texinfo output ------------------------------------------- - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -# texinfo_documents = [ -# ( -# "index", -# "xarray", -# "xarray Documentation", -# "xarray Developers", -# "xarray", -# "N-D labeled arrays and datasets in Python.", -# "Miscellaneous", -# ) -# ] - -# Documents to append as an appendix to all manuals. -# texinfo_appendices = [] - -# If false, no module index is generated. -# texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -# texinfo_show_urls = 'footnote' - -# If true, do not generate a @detailmenu in the "Top" node's menu. -# texinfo_no_detailmenu = False - - # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { "python": ("https://docs.python.org/3/", None), diff --git a/doc/dev-guide/index.rst b/doc/dev-guide/index.rst index 137f13d45db..4a8be6470be 100644 --- a/doc/dev-guide/index.rst +++ b/doc/dev-guide/index.rst @@ -1,12 +1,15 @@ -############ -Development -############ +################ +Developer Guide +################ +Contributions are highly welcomed and appreciated. Every little help counts, so do not hesitate! +The contribution guide explains how to structure your contributions. + .. toctree:: :maxdepth: 2 + :hidden: contributing internals roadmap - ../whats-new diff --git a/doc/getting-started-guide/index.rst b/doc/getting-started-guide/index.rst index 24c5ba8d9c9..ef53d7aa11b 100644 --- a/doc/getting-started-guide/index.rst +++ b/doc/getting-started-guide/index.rst @@ -2,13 +2,15 @@ Getting Started ################ -This guide provides a quick overview and showcases some example notebooks. - +The getting started guide aims to get you using xarray productively as quickly as possible. +It is designed as an entry point for new users, and it provided an introduction to xarray's main concepts. .. toctree:: - :maxdepth: 1 + :maxdepth: 2 + :hidden: why-xarray faq quick-overview + tutorials installing diff --git a/doc/getting-started-guide/tutorials.rst b/doc/getting-started-guide/tutorials.rst new file mode 100644 index 00000000000..93eb1ef39fc --- /dev/null +++ b/doc/getting-started-guide/tutorials.rst @@ -0,0 +1,21 @@ + +Tutorials +---------- + +- `Xarray's Tutorial`_ presented at the 2020 SciPy Conference (`video recording`_). +- Stephan Hoyer and Joe Hamman's `Journal of Open Research Software paper`_ describing the xarray project. +- The `UW eScience Institute's Geohackweek`_ tutorial on xarray for geospatial data scientists. +- Stephan Hoyer's `SciPy2015 talk`_ introducing xarray to a general audience. +- Stephan Hoyer's `2015 Unidata Users Workshop talk`_ and `tutorial`_ (`with answers`_) introducing + xarray to users familiar with netCDF. +- `Nicolas Fauchereau's tutorial`_ on xarray for netCDF users. + +.. _Xarray's Tutorial: https://xarray-contrib.github.io/xarray-tutorial/ +.. _video recording: https://youtu.be/mecN-Ph_-78 +.. _Journal of Open Research Software paper: http://doi.org/10.5334/jors.148 +.. _UW eScience Institute's Geohackweek : https://geohackweek.github.io/nDarrays/ +.. _SciPy2015 talk: https://www.youtube.com/watch?v=X0pAhJgySxk +.. _2015 Unidata Users Workshop talk: https://www.youtube.com/watch?v=J9ypQOnt5l8 +.. _tutorial: https://github.com/Unidata/unidata-users-workshop/blob/master/notebooks/xray-tutorial.ipynb +.. _with answers: https://github.com/Unidata/unidata-users-workshop/blob/master/notebooks/xray-tutorial-with-answers.ipynb +.. _Nicolas Fauchereau's tutorial: http://nbviewer.iPython.org/github/nicolasfauchereau/metocean/blob/master/notebooks/xray.ipynb diff --git a/doc/index.rst b/doc/index.rst index cf2ccfdc3d8..dcfa703a30b 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -23,90 +23,18 @@ computing. .. _netCDF: http://www.unidata.ucar.edu/software/netcdf -.. panels:: - :container: full-width - :column: text-center col-lg-6 col-md-6 col-sm-12 col-xs-12 p-2 - :card: +my-2 - :body: d-none - - --- - :fa:`walking, fa-9x` - - Getting started guide - ^^^^^^^^^^^^^^^^^^^^^ - +++ - The getting started guide aims to get you using xarray productively as quickly as possible. - It is designed as an entry point for new users, and it provided an introduction to xarray's main concepts. - - .. link-button:: getting-started-guide/index - :type: ref - :text: To the getting started guide - :classes: btn-outline-dark btn-block stretched-link - - --- - :fa:`book-reader, fa-9x` - - User guide - ^^^^^^^^^^ - - +++ - In this user guide, you will find detailed descriptions and - examples that describe many common tasks that you can accomplish with xarray. - - .. link-button:: user-guide/index - :type: ref - :text: To the user guide - :classes: btn-outline-dark btn-block stretched-link - - --- - :fa:`laptop-code, fa-9x` - - Developer guide - ^^^^^^^^^^^^^^^ - - +++ - Contributions are highly welcomed and appreciated. Every little help counts, so do not hesitate! - The contribution guide explains how to structure your contributions. - - .. link-button:: reference-guide/index - :type: ref - :text: To the development guide - :classes: btn-outline-dark btn-block stretched-link - - .. toctree:: - :maxdepth: 1 - :caption: Documentation - :hidden: + :maxdepth: 2 Getting Started Gallery User Guide Ecosystem API Reference - Development - + Developer Guide + What’s New -See also --------- -- `Xarray's Tutorial`_ presented at the 2020 SciPy Conference (`video recording`_). -- Stephan Hoyer and Joe Hamman's `Journal of Open Research Software paper`_ describing the xarray project. -- The `UW eScience Institute's Geohackweek`_ tutorial on xarray for geospatial data scientists. -- Stephan Hoyer's `SciPy2015 talk`_ introducing xarray to a general audience. -- Stephan Hoyer's `2015 Unidata Users Workshop talk`_ and `tutorial`_ (`with answers`_) introducing - xarray to users familiar with netCDF. -- `Nicolas Fauchereau's tutorial`_ on xarray for netCDF users. - -.. _Xarray's Tutorial: https://xarray-contrib.github.io/xarray-tutorial/ -.. _video recording: https://youtu.be/mecN-Ph_-78 -.. _Journal of Open Research Software paper: http://doi.org/10.5334/jors.148 -.. _UW eScience Institute's Geohackweek : https://geohackweek.github.io/nDarrays/ -.. _SciPy2015 talk: https://www.youtube.com/watch?v=X0pAhJgySxk -.. _2015 Unidata Users Workshop talk: https://www.youtube.com/watch?v=J9ypQOnt5l8 -.. _tutorial: https://github.com/Unidata/unidata-users-workshop/blob/master/notebooks/xray-tutorial.ipynb -.. _with answers: https://github.com/Unidata/unidata-users-workshop/blob/master/notebooks/xray-tutorial-with-answers.ipynb -.. _Nicolas Fauchereau's tutorial: http://nbviewer.iPython.org/github/nicolasfauchereau/metocean/blob/master/notebooks/xray.ipynb Get in touch ------------ diff --git a/doc/user-guide/index.rst b/doc/user-guide/index.rst index ebbce00c18c..edeb0aac632 100644 --- a/doc/user-guide/index.rst +++ b/doc/user-guide/index.rst @@ -2,10 +2,13 @@ User Guide ########### -This guide is an overview and explains the important features. +In this user guide, you will find detailed descriptions and +examples that describe many common tasks that you can accomplish with xarray. + .. toctree:: - :maxdepth: 1 + :maxdepth: 2 + :hidden: terminology data-structures From d12874aad52e3f49c26d9007e5674c4cd8fce350 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Wed, 3 Mar 2021 10:32:02 -0700 Subject: [PATCH 28/51] [skip-ci] Revert back to nbsphinx --- ci/requirements/doc.yml | 1 - doc/conf.py | 26 ++++++++++---------------- 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/ci/requirements/doc.yml b/ci/requirements/doc.yml index 527a57961fb..be212253536 100644 --- a/ci/requirements/doc.yml +++ b/ci/requirements/doc.yml @@ -15,7 +15,6 @@ dependencies: - iris>=2.3 - jupyter_client - matplotlib-base - - myst-nb - nbsphinx - netcdf4>=1.5 - numba diff --git a/doc/conf.py b/doc/conf.py index fe1079368b9..dc6167f8133 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -78,7 +78,7 @@ "sphinx.ext.napoleon", "IPython.sphinxext.ipython_directive", "IPython.sphinxext.ipython_console_highlighting", - "myst_nb", + "nbsphinx", "sphinx_autosummary_accessors", "scanpydoc.rtd_github_links", "sphinx_panels", @@ -90,24 +90,18 @@ "pull": ("https://github.com/pydata/xarray/pull/%s", "PR"), } -# myst-nb configurations -# https://myst-nb.readthedocs.io/en/latest/use/start.html +# nbsphinx configurations -jupyter_execute_notebooks = "cache" -execution_allow_errors = True -execution_timeout = 600 +nbsphinx_timeout = 600 +nbsphinx_execute = "always" +nbsphinx_prolog = """ +{% set docname = env.doc2path(env.docname, base=None) %} +You can run this notebook in a `live session `_ |Binder| or view it `on Github `_. +.. |Binder| image:: https://mybinder.org/badge.svg + :target: https://mybinder.org/v2/gh/pydata/xarray/master?urlpath=lab/tree/doc/{{ docname }} +""" -# nbsphinx_execute = "always" -# nbsphinx_prolog = """ -# {% set docname = env.doc2path(env.docname, base=None) %} - -# You can run this notebook in a `live session `_ |Binder| or view it `on Github `_. - -# .. |Binder| image:: https://mybinder.org/badge.svg -# :target: https://mybinder.org/v2/gh/pydata/xarray/master?urlpath=lab/tree/doc/{{ docname }} -# """ - autosummary_generate = True # for scanpydoc's jinja filter From 211b7122f9488b2f349cccab0b49a22fe917a319 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Wed, 3 Mar 2021 11:06:52 -0700 Subject: [PATCH 29/51] Split internals.rst into multiple pages --- doc/{dev-guide => }/contributing.rst | 0 doc/dev-guide/index.rst | 15 -- doc/dev-guide/internals.rst | 250 ---------------------- doc/index.rst | 8 +- doc/internals/duck-arrays-integration.rst | 51 +++++ doc/internals/extending-xarray.rst | 103 +++++++++ doc/internals/index.rst | 19 ++ doc/internals/variable-objects.rst | 31 +++ doc/internals/zarr-encoding-spec.rst | 53 +++++ doc/{dev-guide => }/roadmap.rst | 0 10 files changed, 263 insertions(+), 267 deletions(-) rename doc/{dev-guide => }/contributing.rst (100%) delete mode 100644 doc/dev-guide/index.rst delete mode 100644 doc/dev-guide/internals.rst create mode 100644 doc/internals/duck-arrays-integration.rst create mode 100644 doc/internals/extending-xarray.rst create mode 100644 doc/internals/index.rst create mode 100644 doc/internals/variable-objects.rst create mode 100644 doc/internals/zarr-encoding-spec.rst rename doc/{dev-guide => }/roadmap.rst (100%) diff --git a/doc/dev-guide/contributing.rst b/doc/contributing.rst similarity index 100% rename from doc/dev-guide/contributing.rst rename to doc/contributing.rst diff --git a/doc/dev-guide/index.rst b/doc/dev-guide/index.rst deleted file mode 100644 index 4a8be6470be..00000000000 --- a/doc/dev-guide/index.rst +++ /dev/null @@ -1,15 +0,0 @@ -################ -Developer Guide -################ - - -Contributions are highly welcomed and appreciated. Every little help counts, so do not hesitate! -The contribution guide explains how to structure your contributions. - -.. toctree:: - :maxdepth: 2 - :hidden: - - contributing - internals - roadmap diff --git a/doc/dev-guide/internals.rst b/doc/dev-guide/internals.rst deleted file mode 100644 index 0b46e6c5241..00000000000 --- a/doc/dev-guide/internals.rst +++ /dev/null @@ -1,250 +0,0 @@ -.. _internals: - -xarray Internals -================ - -.. currentmodule:: xarray - -xarray builds upon two of the foundational libraries of the scientific Python -stack, NumPy and pandas. It is written in pure Python (no C or Cython -extensions), which makes it easy to develop and extend. Instead, we push -compiled code to :ref:`optional dependencies`. - -.. ipython:: python - :suppress: - - import dask.array as da - import numpy as np - import pandas as pd - import sparse - import xarray as xr - - np.random.seed(123456) - -Variable objects ----------------- - -The core internal data structure in xarray is the :py:class:`~xarray.Variable`, -which is used as the basic building block behind xarray's -:py:class:`~xarray.Dataset` and :py:class:`~xarray.DataArray` types. A -``Variable`` consists of: - -- ``dims``: A tuple of dimension names. -- ``data``: The N-dimensional array (typically, a NumPy or Dask array) storing - the Variable's data. It must have the same number of dimensions as the length - of ``dims``. -- ``attrs``: An ordered dictionary of metadata associated with this array. By - convention, xarray's built-in operations never use this metadata. -- ``encoding``: Another ordered dictionary used to store information about how - these variable's data is represented on disk. See :ref:`io.encoding` for more - details. - -``Variable`` has an interface similar to NumPy arrays, but extended to make use -of named dimensions. For example, it uses ``dim`` in preference to an ``axis`` -argument for methods like ``mean``, and supports :ref:`compute.broadcasting`. - -However, unlike ``Dataset`` and ``DataArray``, the basic ``Variable`` does not -include coordinate labels along each axis. - -``Variable`` is public API, but because of its incomplete support for labeled -data, it is mostly intended for advanced uses, such as in xarray itself or for -writing new backends. You can access the variable objects that correspond to -xarray objects via the (readonly) :py:attr:`Dataset.variables -` and -:py:attr:`DataArray.variable ` attributes. - - -.. _internals.duck_arrays: - -Integrating with duck arrays ----------------------------- - -.. warning:: - - This is a experimental feature. - -xarray can wrap custom :term:`duck array` objects as long as they define numpy's -``shape``, ``dtype`` and ``ndim`` properties and the ``__array__``, -``__array_ufunc__`` and ``__array_function__`` methods. - -In certain situations (e.g. when printing the collapsed preview of -variables of a ``Dataset``), xarray will display the repr of a :term:`duck array` -in a single line, truncating it to a certain number of characters. If that -would drop too much information, the :term:`duck array` may define a -``_repr_inline_`` method that takes ``max_width`` (number of characters) as an -argument: - -.. code:: python - - class MyDuckArray: - ... - - def _repr_inline_(self, max_width): - """ format to a single line with at most max_width characters """ - ... - - ... - -To avoid duplicated information, this method must omit information about the shape and -:term:`dtype`. For example, the string representation of a ``dask`` array or a -``sparse`` matrix would be: - -.. ipython:: python - - a = da.linspace(0, 1, 20, chunks=2) - a - - b = np.eye(10) - b[[5, 7, 3, 0], [6, 8, 2, 9]] = 2 - b = sparse.COO.from_numpy(b) - b - - xr.Dataset({"a": ("x", a), "b": (("y", "z"), b)}) - -Extending xarray ----------------- - -xarray is designed as a general purpose library, and hence tries to avoid -including overly domain specific functionality. But inevitably, the need for more -domain specific logic arises. - -One standard solution to this problem is to subclass Dataset and/or DataArray to -add domain specific functionality. However, inheritance is not very robust. It's -easy to inadvertently use internal APIs when subclassing, which means that your -code may break when xarray upgrades. Furthermore, many builtin methods will -only return native xarray objects. - -The standard advice is to use `composition over inheritance`__, but -reimplementing an API as large as xarray's on your own objects can be an onerous -task, even if most methods are only forwarding to xarray implementations. - -__ https://github.com/pydata/xarray/issues/706 - -If you simply want the ability to call a function with the syntax of a -method call, then the builtin :py:meth:`~xarray.DataArray.pipe` method (copied -from pandas) may suffice. - -To resolve this issue for more complex cases, xarray has the -:py:func:`~xarray.register_dataset_accessor` and -:py:func:`~xarray.register_dataarray_accessor` decorators for adding custom -"accessors" on xarray objects. Here's how you might use these decorators to -write a custom "geo" accessor implementing a geography specific extension to -xarray: - -.. literalinclude:: ../examples/_code/accessor_example.py - -In general, the only restriction on the accessor class is that the ``__init__`` method -must have a single parameter: the ``Dataset`` or ``DataArray`` object it is supposed -to work on. - -This achieves the same result as if the ``Dataset`` class had a cached property -defined that returns an instance of your class: - -.. code-block:: python - - class Dataset: - ... - - @property - def geo(self): - return GeoAccessor(self) - -However, using the register accessor decorators is preferable to simply adding -your own ad-hoc property (i.e., ``Dataset.geo = property(...)``), for several -reasons: - -1. It ensures that the name of your property does not accidentally conflict with - any other attributes or methods (including other accessors). -2. Instances of accessor object will be cached on the xarray object that creates - them. This means you can save state on them (e.g., to cache computed - properties). -3. Using an accessor provides an implicit namespace for your custom - functionality that clearly identifies it as separate from built-in xarray - methods. - -.. note:: - - Accessors are created once per DataArray and Dataset instance. New - instances, like those created from arithmetic operations or when accessing - a DataArray from a Dataset (ex. ``ds[var_name]``), will have new - accessors created. - -Back in an interactive IPython session, we can use these properties: - -.. ipython:: python - :suppress: - - exec(open("examples/_code/accessor_example.py").read()) - -.. ipython:: python - - ds = xr.Dataset({"longitude": np.linspace(0, 10), "latitude": np.linspace(0, 20)}) - ds.geo.center - ds.geo.plot() - -The intent here is that libraries that extend xarray could add such an accessor -to implement subclass specific functionality rather than using actual subclasses -or patching in a large number of domain specific methods. For further reading -on ways to write new accessors and the philosophy behind the approach, see -:issue:`1080`. - -To help users keep things straight, please `let us know -`_ if you plan to write a new accessor -for an open source library. In the future, we will maintain a list of accessors -and the libraries that implement them on this page. - -To make documenting accessors with ``sphinx`` and ``sphinx.ext.autosummary`` -easier, you can use `sphinx-autosummary-accessors`_. - -.. _sphinx-autosummary-accessors: https://sphinx-autosummary-accessors.readthedocs.io/ - -.. _zarr_encoding: - -Zarr Encoding Specification ---------------------------- - -In implementing support for the `Zarr `_ storage -format, Xarray developers made some *ad hoc* choices about how to store -NetCDF data in Zarr. -Future versions of the Zarr spec will likely include a more formal convention -for the storage of the NetCDF data model in Zarr; see -`Zarr spec repo `_ for ongoing -discussion. - -First, Xarray can only read and write Zarr groups. There is currently no support -for reading / writting individual Zarr arrays. Zarr groups are mapped to -Xarray ``Dataset`` objects. - -Second, from Xarray's point of view, the key difference between -NetCDF and Zarr is that all NetCDF arrays have *dimension names* while Zarr -arrays do not. Therefore, in order to store NetCDF data in Zarr, Xarray must -somehow encode and decode the name of each array's dimensions. - -To accomplish this, Xarray developers decided to define a special Zarr array -attribute: ``_ARRAY_DIMENSIONS``. The value of this attribute is a list of -dimension names (strings), for example ``["time", "lon", "lat"]``. When writing -data to Zarr, Xarray sets this attribute on all variables based on the variable -dimensions. When reading a Zarr group, Xarray looks for this attribute on all -arrays, raising an error if it can't be found. The attribute is used to define -the variable dimension names and then removed from the attributes dictionary -returned to the user. - -Because of these choices, Xarray cannot read arbitrary array data, but only -Zarr data with valid ``_ARRAY_DIMENSIONS`` attributes on each array. - -After decoding the ``_ARRAY_DIMENSIONS`` attribute and assigning the variable -dimensions, Xarray proceeds to [optionally] decode each variable using its -standard CF decoding machinery used for NetCDF data (see :py:func:`decode_cf`). - -As a concrete example, here we write a tutorial dataset to Zarr and then -re-open it directly with Zarr: - -.. ipython:: python - - ds = xr.tutorial.load_dataset("rasm") - ds.to_zarr("rasm.zarr", mode="w") - import zarr - - zgroup = zarr.open("rasm.zarr") - print(zgroup.tree()) - dict(zgroup["Tair"].attrs) diff --git a/doc/index.rst b/doc/index.rst index dcfa703a30b..c715d91c531 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -25,13 +25,17 @@ computing. .. toctree:: :maxdepth: 2 + :hidden: Getting Started Gallery User Guide + API Reference + How do I ... + Contributing + Internals Ecosystem - API Reference - Developer Guide + Roadmap What’s New diff --git a/doc/internals/duck-arrays-integration.rst b/doc/internals/duck-arrays-integration.rst new file mode 100644 index 00000000000..eb5c4d8592f --- /dev/null +++ b/doc/internals/duck-arrays-integration.rst @@ -0,0 +1,51 @@ + +.. _internals.duck_arrays: + +Integrating with duck arrays +============================= + +.. warning:: + + This is a experimental feature. + +xarray can wrap custom :term:`duck array` objects as long as they define numpy's +``shape``, ``dtype`` and ``ndim`` properties and the ``__array__``, +``__array_ufunc__`` and ``__array_function__`` methods. + +In certain situations (e.g. when printing the collapsed preview of +variables of a ``Dataset``), xarray will display the repr of a :term:`duck array` +in a single line, truncating it to a certain number of characters. If that +would drop too much information, the :term:`duck array` may define a +``_repr_inline_`` method that takes ``max_width`` (number of characters) as an +argument: + +.. code:: python + + class MyDuckArray: + ... + + def _repr_inline_(self, max_width): + """ format to a single line with at most max_width characters """ + ... + + ... + +To avoid duplicated information, this method must omit information about the shape and +:term:`dtype`. For example, the string representation of a ``dask`` array or a +``sparse`` matrix would be: + +.. ipython:: python + + import dask.array as da + import xarray as xr + import sparse + + a = da.linspace(0, 1, 20, chunks=2) + a + + b = np.eye(10) + b[[5, 7, 3, 0], [6, 8, 2, 9]] = 2 + b = sparse.COO.from_numpy(b) + b + + xr.Dataset({"a": ("x", a), "b": (("y", "z"), b)}) diff --git a/doc/internals/extending-xarray.rst b/doc/internals/extending-xarray.rst new file mode 100644 index 00000000000..ef26f30689e --- /dev/null +++ b/doc/internals/extending-xarray.rst @@ -0,0 +1,103 @@ + +Extending xarray +================ + +.. ipython:: python + :suppress: + + import xarray as xr + + +xarray is designed as a general purpose library, and hence tries to avoid +including overly domain specific functionality. But inevitably, the need for more +domain specific logic arises. + +One standard solution to this problem is to subclass Dataset and/or DataArray to +add domain specific functionality. However, inheritance is not very robust. It's +easy to inadvertently use internal APIs when subclassing, which means that your +code may break when xarray upgrades. Furthermore, many builtin methods will +only return native xarray objects. + +The standard advice is to use `composition over inheritance`__, but +reimplementing an API as large as xarray's on your own objects can be an onerous +task, even if most methods are only forwarding to xarray implementations. + +__ https://github.com/pydata/xarray/issues/706 + +If you simply want the ability to call a function with the syntax of a +method call, then the builtin :py:meth:`~xarray.DataArray.pipe` method (copied +from pandas) may suffice. + +To resolve this issue for more complex cases, xarray has the +:py:func:`~xarray.register_dataset_accessor` and +:py:func:`~xarray.register_dataarray_accessor` decorators for adding custom +"accessors" on xarray objects. Here's how you might use these decorators to +write a custom "geo" accessor implementing a geography specific extension to +xarray: + +.. literalinclude:: ../examples/_code/accessor_example.py + +In general, the only restriction on the accessor class is that the ``__init__`` method +must have a single parameter: the ``Dataset`` or ``DataArray`` object it is supposed +to work on. + +This achieves the same result as if the ``Dataset`` class had a cached property +defined that returns an instance of your class: + +.. code-block:: python + + class Dataset: + ... + + @property + def geo(self): + return GeoAccessor(self) + +However, using the register accessor decorators is preferable to simply adding +your own ad-hoc property (i.e., ``Dataset.geo = property(...)``), for several +reasons: + +1. It ensures that the name of your property does not accidentally conflict with + any other attributes or methods (including other accessors). +2. Instances of accessor object will be cached on the xarray object that creates + them. This means you can save state on them (e.g., to cache computed + properties). +3. Using an accessor provides an implicit namespace for your custom + functionality that clearly identifies it as separate from built-in xarray + methods. + +.. note:: + + Accessors are created once per DataArray and Dataset instance. New + instances, like those created from arithmetic operations or when accessing + a DataArray from a Dataset (ex. ``ds[var_name]``), will have new + accessors created. + +Back in an interactive IPython session, we can use these properties: + +.. ipython:: python + :suppress: + + exec(open("examples/_code/accessor_example.py").read()) + +.. ipython:: python + + ds = xr.Dataset({"longitude": np.linspace(0, 10), "latitude": np.linspace(0, 20)}) + ds.geo.center + ds.geo.plot() + +The intent here is that libraries that extend xarray could add such an accessor +to implement subclass specific functionality rather than using actual subclasses +or patching in a large number of domain specific methods. For further reading +on ways to write new accessors and the philosophy behind the approach, see +:issue:`1080`. + +To help users keep things straight, please `let us know +`_ if you plan to write a new accessor +for an open source library. In the future, we will maintain a list of accessors +and the libraries that implement them on this page. + +To make documenting accessors with ``sphinx`` and ``sphinx.ext.autosummary`` +easier, you can use `sphinx-autosummary-accessors`_. + +.. _sphinx-autosummary-accessors: https://sphinx-autosummary-accessors.readthedocs.io/ diff --git a/doc/internals/index.rst b/doc/internals/index.rst new file mode 100644 index 00000000000..94da77bb5ad --- /dev/null +++ b/doc/internals/index.rst @@ -0,0 +1,19 @@ +.. _internals: + +xarray Internals +================ + +xarray builds upon two of the foundational libraries of the scientific Python +stack, NumPy and pandas. It is written in pure Python (no C or Cython +extensions), which makes it easy to develop and extend. Instead, we push +compiled code to :ref:`optional dependencies`. + + +.. toctree:: + :maxdepth: 2 + :hidden: + + variable-objects + duck-arrays-integration + extending-xarray + zarr-encoding-spec diff --git a/doc/internals/variable-objects.rst b/doc/internals/variable-objects.rst new file mode 100644 index 00000000000..6ae3c2f7e6d --- /dev/null +++ b/doc/internals/variable-objects.rst @@ -0,0 +1,31 @@ +Variable objects +================ + +The core internal data structure in xarray is the :py:class:`~xarray.Variable`, +which is used as the basic building block behind xarray's +:py:class:`~xarray.Dataset` and :py:class:`~xarray.DataArray` types. A +``Variable`` consists of: + +- ``dims``: A tuple of dimension names. +- ``data``: The N-dimensional array (typically, a NumPy or Dask array) storing + the Variable's data. It must have the same number of dimensions as the length + of ``dims``. +- ``attrs``: An ordered dictionary of metadata associated with this array. By + convention, xarray's built-in operations never use this metadata. +- ``encoding``: Another ordered dictionary used to store information about how + these variable's data is represented on disk. See :ref:`io.encoding` for more + details. + +``Variable`` has an interface similar to NumPy arrays, but extended to make use +of named dimensions. For example, it uses ``dim`` in preference to an ``axis`` +argument for methods like ``mean``, and supports :ref:`compute.broadcasting`. + +However, unlike ``Dataset`` and ``DataArray``, the basic ``Variable`` does not +include coordinate labels along each axis. + +``Variable`` is public API, but because of its incomplete support for labeled +data, it is mostly intended for advanced uses, such as in xarray itself or for +writing new backends. You can access the variable objects that correspond to +xarray objects via the (readonly) :py:attr:`Dataset.variables +` and +:py:attr:`DataArray.variable ` attributes. diff --git a/doc/internals/zarr-encoding-spec.rst b/doc/internals/zarr-encoding-spec.rst new file mode 100644 index 00000000000..aea75155e80 --- /dev/null +++ b/doc/internals/zarr-encoding-spec.rst @@ -0,0 +1,53 @@ + +.. _zarr_encoding: + +Zarr Encoding Specification +============================ + +In implementing support for the `Zarr `_ storage +format, Xarray developers made some *ad hoc* choices about how to store +NetCDF data in Zarr. +Future versions of the Zarr spec will likely include a more formal convention +for the storage of the NetCDF data model in Zarr; see +`Zarr spec repo `_ for ongoing +discussion. + +First, Xarray can only read and write Zarr groups. There is currently no support +for reading / writting individual Zarr arrays. Zarr groups are mapped to +Xarray ``Dataset`` objects. + +Second, from Xarray's point of view, the key difference between +NetCDF and Zarr is that all NetCDF arrays have *dimension names* while Zarr +arrays do not. Therefore, in order to store NetCDF data in Zarr, Xarray must +somehow encode and decode the name of each array's dimensions. + +To accomplish this, Xarray developers decided to define a special Zarr array +attribute: ``_ARRAY_DIMENSIONS``. The value of this attribute is a list of +dimension names (strings), for example ``["time", "lon", "lat"]``. When writing +data to Zarr, Xarray sets this attribute on all variables based on the variable +dimensions. When reading a Zarr group, Xarray looks for this attribute on all +arrays, raising an error if it can't be found. The attribute is used to define +the variable dimension names and then removed from the attributes dictionary +returned to the user. + +Because of these choices, Xarray cannot read arbitrary array data, but only +Zarr data with valid ``_ARRAY_DIMENSIONS`` attributes on each array. + +After decoding the ``_ARRAY_DIMENSIONS`` attribute and assigning the variable +dimensions, Xarray proceeds to [optionally] decode each variable using its +standard CF decoding machinery used for NetCDF data (see :py:func:`decode_cf`). + +As a concrete example, here we write a tutorial dataset to Zarr and then +re-open it directly with Zarr: + +.. ipython:: python + + import xarray as xr + import zarr + + ds = xr.tutorial.load_dataset("rasm") + ds.to_zarr("rasm.zarr", mode="w") + + zgroup = zarr.open("rasm.zarr") + print(zgroup.tree()) + dict(zgroup["Tair"].attrs) diff --git a/doc/dev-guide/roadmap.rst b/doc/roadmap.rst similarity index 100% rename from doc/dev-guide/roadmap.rst rename to doc/roadmap.rst From ece07de6391369cd406d70148aa0840c537736ae Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Wed, 3 Mar 2021 11:07:22 -0700 Subject: [PATCH 30/51] remove reference guide directory --- doc/{reference-guide => }/api-hidden.rst | 0 doc/{reference-guide => }/api.rst | 0 doc/contributing.rst | 4 +--- doc/{reference-guide => }/howdoi.rst | 0 doc/reference-guide/index.rst | 13 ------------- 5 files changed, 1 insertion(+), 16 deletions(-) rename doc/{reference-guide => }/api-hidden.rst (100%) rename doc/{reference-guide => }/api.rst (100%) rename doc/{reference-guide => }/howdoi.rst (100%) delete mode 100644 doc/reference-guide/index.rst diff --git a/doc/reference-guide/api-hidden.rst b/doc/api-hidden.rst similarity index 100% rename from doc/reference-guide/api-hidden.rst rename to doc/api-hidden.rst diff --git a/doc/reference-guide/api.rst b/doc/api.rst similarity index 100% rename from doc/reference-guide/api.rst rename to doc/api.rst diff --git a/doc/contributing.rst b/doc/contributing.rst index 1514aa91a28..345443001a0 100644 --- a/doc/contributing.rst +++ b/doc/contributing.rst @@ -4,8 +4,6 @@ Contributing to xarray ********************** -.. contents:: Table of contents: - :local: .. note:: @@ -399,7 +397,7 @@ A pull-request will be considered for merging when you have an all 'green' build tests are failing, then you will get a red 'X', where you can click through to see the individual failed tests. This is an example of a green build. -.. image:: ../_static/ci.png +.. image:: _static/ci.png .. note:: diff --git a/doc/reference-guide/howdoi.rst b/doc/howdoi.rst similarity index 100% rename from doc/reference-guide/howdoi.rst rename to doc/howdoi.rst diff --git a/doc/reference-guide/index.rst b/doc/reference-guide/index.rst deleted file mode 100644 index 9136b199cee..00000000000 --- a/doc/reference-guide/index.rst +++ /dev/null @@ -1,13 +0,0 @@ -################# -Xarray Reference -################# - -This reference manual details functions, modules, and objects -included in Xarray, describing what they are and what they do. - - -.. toctree:: - :maxdepth: 2 - - api - howdoi From d17df97ca20618a3c0d34f6b97fcc315e3bc594f Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Wed, 3 Mar 2021 11:21:16 -0700 Subject: [PATCH 31/51] [skip-ci] Trigger another build --- doc/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/index.rst b/doc/index.rst index c715d91c531..e3154b9f3d8 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -33,7 +33,7 @@ computing. API Reference How do I ... Contributing - Internals + xarray Internals Ecosystem Roadmap What’s New From 30be7970eee90480992699cf39b880fe531cad50 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Wed, 3 Mar 2021 12:28:47 -0700 Subject: [PATCH 32/51] [skip-ci] Fix references --- doc/conf.py | 13 +++++++------ doc/gallery.rst | 2 +- doc/index.rst | 2 +- doc/whats-new.rst | 2 +- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/doc/conf.py b/doc/conf.py index dc6167f8133..130c6cc428b 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -94,12 +94,12 @@ nbsphinx_timeout = 600 nbsphinx_execute = "always" -nbsphinx_prolog = """ -{% set docname = env.doc2path(env.docname, base=None) %} -You can run this notebook in a `live session `_ |Binder| or view it `on Github `_. -.. |Binder| image:: https://mybinder.org/badge.svg - :target: https://mybinder.org/v2/gh/pydata/xarray/master?urlpath=lab/tree/doc/{{ docname }} -""" +# nbsphinx_prolog = """ +# {% set docname = env.doc2path(env.docname, base=None) %} +# You can run this notebook in a `live session `_ |Binder| or view it `on Github `_. +# .. |Binder| image:: https://mybinder.org/badge.svg +# :target: https://mybinder.org/v2/gh/pydata/xarray/master?urlpath=lab/tree/doc/{{ docname }} +# """ autosummary_generate = True @@ -236,6 +236,7 @@ navbar_footer_text="", extra_footer='Theme by the Executable Book Project', twitter_url="https://twitter.com/xarray_devs", + launch_buttons={"binderhub_url": "https://mybinder.org", "thebe": True}, ) diff --git a/doc/gallery.rst b/doc/gallery.rst index e25b2ece8b8..4fe7804a733 100644 --- a/doc/gallery.rst +++ b/doc/gallery.rst @@ -3,7 +3,7 @@ Gallery Here's a list of examples on how to use xarray. We will be adding more examples soon. Contributions are highly welcomed and appreciated. So, if you are interested in contributing, please consult the -:doc:`dev-guide/contributing` guide. +:doc:`contributing` guide. diff --git a/doc/index.rst b/doc/index.rst index e3154b9f3d8..d1fac405002 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -28,8 +28,8 @@ computing. :hidden: Getting Started - Gallery User Guide + Gallery API Reference How do I ... Contributing diff --git a/doc/whats-new.rst b/doc/whats-new.rst index 35a1ac56cd8..b1063fb6775 100644 --- a/doc/whats-new.rst +++ b/doc/whats-new.rst @@ -469,7 +469,7 @@ New Features By `Aaron Spring `_. - Use a wrapped array's ``_repr_inline_`` method to construct the collapsed ``repr`` of :py:class:`DataArray` and :py:class:`Dataset` objects and - document the new method in :doc:`dev-guide/internals`. (:pull:`4248`). + document the new method in :doc:`internals/index`. (:pull:`4248`). By `Justus Magin `_. - Allow per-variable fill values in most functions. (:pull:`4237`). By `Justus Magin `_. From 135ee66b36b696892be2b5ca57f3800a7265a899 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Wed, 3 Mar 2021 13:44:30 -0700 Subject: [PATCH 33/51] [skip-ci] First stab at enabling live execution via thebe --- ci/requirements/doc.yml | 1 + doc/conf.py | 1 + 2 files changed, 2 insertions(+) diff --git a/ci/requirements/doc.yml b/ci/requirements/doc.yml index be212253536..ce4fdc06bc0 100644 --- a/ci/requirements/doc.yml +++ b/ci/requirements/doc.yml @@ -32,6 +32,7 @@ dependencies: - sphinx>=3.3 - zarr>=2.4 - pip: + - sphinx-thebe - sphinx-reredirects - sphinxext-opengraph - scanpydoc diff --git a/doc/conf.py b/doc/conf.py index 130c6cc428b..cd8d9741121 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -83,6 +83,7 @@ "scanpydoc.rtd_github_links", "sphinx_panels", "sphinxext.opengraph", + "sphinx_thebe", ] extlinks = { From 3463688c5fb8378c6ceab7c6c1471f0611d396b6 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Thu, 4 Mar 2021 04:40:39 -0700 Subject: [PATCH 34/51] [skip-ci] Disable thebe for the time being --- ci/requirements/doc.yml | 1 - doc/conf.py | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/ci/requirements/doc.yml b/ci/requirements/doc.yml index ce4fdc06bc0..be212253536 100644 --- a/ci/requirements/doc.yml +++ b/ci/requirements/doc.yml @@ -32,7 +32,6 @@ dependencies: - sphinx>=3.3 - zarr>=2.4 - pip: - - sphinx-thebe - sphinx-reredirects - sphinxext-opengraph - scanpydoc diff --git a/doc/conf.py b/doc/conf.py index cd8d9741121..0352639555c 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -83,7 +83,6 @@ "scanpydoc.rtd_github_links", "sphinx_panels", "sphinxext.opengraph", - "sphinx_thebe", ] extlinks = { @@ -237,7 +236,7 @@ navbar_footer_text="", extra_footer='Theme by the Executable Book Project', twitter_url="https://twitter.com/xarray_devs", - launch_buttons={"binderhub_url": "https://mybinder.org", "thebe": True}, + launch_buttons={"binderhub_url": "https://mybinder.org"}, ) From c5a5e2739988196b4299f5aa74f3f597ff102e7f Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Thu, 4 Mar 2021 05:45:08 -0700 Subject: [PATCH 35/51] Update install instructions --- doc/getting-started-guide/installing.rst | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/getting-started-guide/installing.rst b/doc/getting-started-guide/installing.rst index 375a6cd48ce..fb88c223c98 100644 --- a/doc/getting-started-guide/installing.rst +++ b/doc/getting-started-guide/installing.rst @@ -144,15 +144,15 @@ being updated in the default channel. If you don't use conda, be sure you have the required dependencies (numpy and pandas) installed first. Then, install xarray with pip:: - $ pip install xarray + $ python -m pip install xarray We also maintain other dependency sets for different subsets of functionality:: - $ pip install "xarray[io]" # Install optional dependencies for handling I/O - $ pip install "xarray[accel]" # Install optional dependencies for accelerating xarray - $ pip install "xarray[parallel]" # Install optional dependencies for dask arrays - $ pip install "xarray[viz]" # Install optional dependencies for visualization - $ pip install "xarray[complete]" # Install all the above + $ python -m pip install "xarray[io]" # Install optional dependencies for handling I/O + $ python -m pip install "xarray[accel]" # Install optional dependencies for accelerating xarray + $ python -m pip install "xarray[parallel]" # Install optional dependencies for dask arrays + $ python -m pip install "xarray[viz]" # Install optional dependencies for visualization + $ python -m pip install "xarray[complete]" # Install all the above The above commands should install most of the `optional dependencies`_. However, some packages which are either not listed on PyPI or require extra From b3529fb2036ff60c383aff303a3aafc9370ef90b Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Thu, 4 Mar 2021 05:47:40 -0700 Subject: [PATCH 36/51] Add sphinx copybutton --- ci/requirements/doc.yml | 1 + doc/conf.py | 1 + 2 files changed, 2 insertions(+) diff --git a/ci/requirements/doc.yml b/ci/requirements/doc.yml index be212253536..db0b4f2d8f3 100644 --- a/ci/requirements/doc.yml +++ b/ci/requirements/doc.yml @@ -28,6 +28,7 @@ dependencies: - sparse - sphinx-autosummary-accessors - sphinx-book-theme >= 0.0.38 + - sphinx-copybutton - sphinx-panels - sphinx>=3.3 - zarr>=2.4 diff --git a/doc/conf.py b/doc/conf.py index 0352639555c..df47aaffdd3 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -83,6 +83,7 @@ "scanpydoc.rtd_github_links", "sphinx_panels", "sphinxext.opengraph", + "sphinx_copybutton", ] extlinks = { From c21d5966db9211c2f29ef40665e78e2d0e5535cf Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Thu, 4 Mar 2021 06:09:03 -0700 Subject: [PATCH 37/51] [skip-ci] Add external resources page --- doc/conf.py | 4 ++ doc/external-resources.rst | 64 +++++++++++++++++++++++++ doc/getting-started-guide/index.rst | 5 +- doc/getting-started-guide/tutorials.rst | 21 -------- doc/index.rst | 44 ++++++++++++----- 5 files changed, 102 insertions(+), 36 deletions(-) create mode 100644 doc/external-resources.rst delete mode 100644 doc/getting-started-guide/tutorials.rst diff --git a/doc/conf.py b/doc/conf.py index df47aaffdd3..59b535aebee 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -91,6 +91,10 @@ "pull": ("https://github.com/pydata/xarray/pull/%s", "PR"), } +# sphinx-copybutton configurations +copybutton_prompt_text = r">>> |\.\.\. |\$ |In \[\d*\]: | {2,5}\.\.\.: | {5,8}: " +copybutton_prompt_is_regexp = True + # nbsphinx configurations nbsphinx_timeout = 600 diff --git a/doc/external-resources.rst b/doc/external-resources.rst new file mode 100644 index 00000000000..244532ad8f2 --- /dev/null +++ b/doc/external-resources.rst @@ -0,0 +1,64 @@ + +External Resources +================== + + +Tutorials +---------- + +- `Xarray's Tutorials`_ repository +- The `UW eScience Institute's Geohackweek`_ tutorial on xarray for geospatial data scientists. +- `Nicolas Fauchereau's 2015 tutorial`_ on xarray for netCDF users. + + + +Videos +------- + +.. panels:: + :card: text-center + + --- + + Xarray's virtual tutorial | October 2020 | Anderson Banihirwe, Deepak Cherian, and Martin Durant + ^^^ + .. raw:: html + + + + --- + Xarray's Tutorial presented at the 2020 SciPy Conference | Joe Hamman, Ryan Abernathey, + Deepak Cherian, and Stephan Hoyer + ^^^ + .. raw:: html + + + + --- + Scipy 2015 talk introducing xarray to a general audience | Stephan Hoyer + ^^^ + .. raw:: html + + + + --- + 2015 Unidata Users Workshop talk and tutorial with (`with answers`_) introducing + xarray to users familiar with netCDF | Stephan Hoyer + ^^^ + .. raw:: html + + + + +Books, Chapters and Articles +----------------------------- + +- Stephan Hoyer and Joe Hamman's `Journal of Open Research Software paper`_ describing the xarray project. + + +.. _Xarray's Tutorials: https://xarray-contrib.github.io/xarray-tutorial/ +.. _Journal of Open Research Software paper: http://doi.org/10.5334/jors.148 +.. _UW eScience Institute's Geohackweek : https://geohackweek.github.io/nDarrays/ +.. _tutorial: https://github.com/Unidata/unidata-users-workshop/blob/master/notebooks/xray-tutorial.ipynb +.. _with answers: https://github.com/Unidata/unidata-users-workshop/blob/master/notebooks/xray-tutorial-with-answers.ipynb +.. _Nicolas Fauchereau's 2015 tutorial: http://nbviewer.iPython.org/github/nicolasfauchereau/metocean/blob/master/notebooks/xray.ipynb diff --git a/doc/getting-started-guide/index.rst b/doc/getting-started-guide/index.rst index ef53d7aa11b..20fd49fb2c4 100644 --- a/doc/getting-started-guide/index.rst +++ b/doc/getting-started-guide/index.rst @@ -10,7 +10,6 @@ It is designed as an entry point for new users, and it provided an introduction :hidden: why-xarray - faq - quick-overview - tutorials installing + quick-overview + faq diff --git a/doc/getting-started-guide/tutorials.rst b/doc/getting-started-guide/tutorials.rst deleted file mode 100644 index 93eb1ef39fc..00000000000 --- a/doc/getting-started-guide/tutorials.rst +++ /dev/null @@ -1,21 +0,0 @@ - -Tutorials ----------- - -- `Xarray's Tutorial`_ presented at the 2020 SciPy Conference (`video recording`_). -- Stephan Hoyer and Joe Hamman's `Journal of Open Research Software paper`_ describing the xarray project. -- The `UW eScience Institute's Geohackweek`_ tutorial on xarray for geospatial data scientists. -- Stephan Hoyer's `SciPy2015 talk`_ introducing xarray to a general audience. -- Stephan Hoyer's `2015 Unidata Users Workshop talk`_ and `tutorial`_ (`with answers`_) introducing - xarray to users familiar with netCDF. -- `Nicolas Fauchereau's tutorial`_ on xarray for netCDF users. - -.. _Xarray's Tutorial: https://xarray-contrib.github.io/xarray-tutorial/ -.. _video recording: https://youtu.be/mecN-Ph_-78 -.. _Journal of Open Research Software paper: http://doi.org/10.5334/jors.148 -.. _UW eScience Institute's Geohackweek : https://geohackweek.github.io/nDarrays/ -.. _SciPy2015 talk: https://www.youtube.com/watch?v=X0pAhJgySxk -.. _2015 Unidata Users Workshop talk: https://www.youtube.com/watch?v=J9ypQOnt5l8 -.. _tutorial: https://github.com/Unidata/unidata-users-workshop/blob/master/notebooks/xray-tutorial.ipynb -.. _with answers: https://github.com/Unidata/unidata-users-workshop/blob/master/notebooks/xray-tutorial-with-answers.ipynb -.. _Nicolas Fauchereau's tutorial: http://nbviewer.iPython.org/github/nicolasfauchereau/metocean/blob/master/notebooks/xray.ipynb diff --git a/doc/index.rst b/doc/index.rst index d1fac405002..9cb52f13acf 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -26,31 +26,51 @@ computing. .. toctree:: :maxdepth: 2 :hidden: + :caption: For users Getting Started User Guide - Gallery - API Reference - How do I ... - Contributing - xarray Internals - Ecosystem - Roadmap - What’s New + Gallery + External Resources + API Reference + How do I ... + Related Projects + +.. toctree:: + :maxdepth: 2 + :hidden: + :caption: For developers/contributors + + Contributing Guide + Xarray Internals + Roadmap + What’s New + +.. toctree:: + :maxdepth: 1 + :hidden: + :caption: Community + + GitHub repository + GitHub discussions + StackOverflow + Get in touch ------------ -- Ask usage questions ("How do I?") on `StackOverflow`_. +- If you have a question like "How do I concatenate a list of datasets?", ask on `GitHub discussions`_ or `StackOverflow`_. + Please include a self-contained reproducible example if possible. - Report bugs, suggest features or view the source code `on GitHub`_. - For less well defined questions or ideas, or to announce other projects of - interest to xarray users, use the `mailing list`_. + interest to xarray users, use `GitHub discussions`_ or the `mailing list`_. -.. _StackOverFlow: http://stackoverflow.com/questions/tagged/python-xarray +.. _StackOverFlow: https://stackoverflow.com/questions/tagged/python-xarray +.. _Github discussions: https://github.com/pydata/xarray/discussions .. _mailing list: https://groups.google.com/forum/#!forum/xarray -.. _on GitHub: http://github.com/pydata/xarray +.. _on GitHub: https://github.com/pydata/xarray NumFOCUS -------- From 5ec298afb44562c19f2de4f287f50f7be70ef0f0 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Thu, 4 Mar 2021 07:09:52 -0700 Subject: [PATCH 38/51] [skip-ci] Define redirects for moved pages --- doc/conf.py | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/doc/conf.py b/doc/conf.py index 59b535aebee..7984c39e729 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -84,6 +84,7 @@ "sphinx_panels", "sphinxext.opengraph", "sphinx_copybutton", + "sphinx_reredirects", ] extlinks = { @@ -239,7 +240,9 @@ home_page_in_toc=False, extra_navbar="", navbar_footer_text="", - extra_footer='Theme by the Executable Book Project', + extra_footer="""

Xarray is a fiscally sponsored project of NumFOCUS, + a nonprofit dedicated to supporting the open-source scientific computing community.


+ Theme by the Executable Book Project""", twitter_url="https://twitter.com/xarray_devs", launch_buttons={"binderhub_url": "https://mybinder.org"}, ) @@ -274,16 +277,24 @@ '', ] -# myst_enable_extensions = [ -# "amsmath", -# "colon_fence", -# "deflist", -# "dollarmath", -# "html_image", -# ] -# myst_url_schemes = ("http", "https", "mailto") -# panels_add_bootstrap_css = False - +# Redirects for pages that were moved to new locations +redirects = { + "terminology": "user-guide/terminology.html", + "data-structures.html": "user-guide/data-structures.html", + "indexing.html": "user-guide/indexing.html", + "interpolation.html": "user-guide/interpolation.html", + "computation.html": "user-guide/computation.html", + "groupby.html": "user-guide/groupby.html", + "reshaping.html": "user-guide/reshaping.html", + "combining.html": "user-guide/combining.html", + "time-series.html": "user-guide/time-series.html", + "weather-climate.html": "user-guide/weather-climate.html", + "pandas.html": "user-guide/pandas.html", + "io.html": "user-guide/io.html", + "dask.html": "user-guide/dask.html", + "plotting.html": "user-guide/plotting.html", + "duckarrays.html": "user-guide/duckarrays.html", +} # Sometimes the savefig directory doesn't exist and needs to be created # https://github.com/ipython/ipython/issues/8733 @@ -325,4 +336,4 @@ def escape_underscores(string): def setup(app): DEFAULT_FILTERS["escape_underscores"] = escape_underscores - return dict(version=version, parallel_read_safe=False, parallel_write_safe=True) + return dict(version=version, parallel_read_safe=True, parallel_write_safe=True) From b7a4cc7ccee76911eb8f0418ef315a718fe49bc7 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Thu, 4 Mar 2021 07:26:07 -0700 Subject: [PATCH 39/51] [skip-ci] Disable redirects for the time being --- doc/conf.py | 55 +++++++++++++++++++++++++++------------------------ doc/index.rst | 2 +- 2 files changed, 30 insertions(+), 27 deletions(-) diff --git a/doc/conf.py b/doc/conf.py index 7984c39e729..b21c0306f78 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -84,7 +84,7 @@ "sphinx_panels", "sphinxext.opengraph", "sphinx_copybutton", - "sphinx_reredirects", + # "sphinx_reredirects", ] extlinks = { @@ -100,12 +100,12 @@ nbsphinx_timeout = 600 nbsphinx_execute = "always" -# nbsphinx_prolog = """ -# {% set docname = env.doc2path(env.docname, base=None) %} -# You can run this notebook in a `live session `_ |Binder| or view it `on Github `_. -# .. |Binder| image:: https://mybinder.org/badge.svg -# :target: https://mybinder.org/v2/gh/pydata/xarray/master?urlpath=lab/tree/doc/{{ docname }} -# """ +nbsphinx_prolog = """ +{% set docname = env.doc2path(env.docname, base=None) %} +You can run this notebook in a `live session `_ |Binder| or view it `on Github `_. +.. |Binder| image:: https://mybinder.org/badge.svg + :target: https://mybinder.org/v2/gh/pydata/xarray/master?urlpath=lab/tree/doc/{{ docname }} +""" autosummary_generate = True @@ -241,8 +241,8 @@ extra_navbar="", navbar_footer_text="", extra_footer="""

Xarray is a fiscally sponsored project of NumFOCUS, - a nonprofit dedicated to supporting the open-source scientific computing community.


- Theme by the Executable Book Project""", + a nonprofit dedicated to supporting the open-source scientific computing community.
+ Theme by the Executable Book Project

""", twitter_url="https://twitter.com/xarray_devs", launch_buttons={"binderhub_url": "https://mybinder.org"}, ) @@ -278,23 +278,26 @@ ] # Redirects for pages that were moved to new locations -redirects = { - "terminology": "user-guide/terminology.html", - "data-structures.html": "user-guide/data-structures.html", - "indexing.html": "user-guide/indexing.html", - "interpolation.html": "user-guide/interpolation.html", - "computation.html": "user-guide/computation.html", - "groupby.html": "user-guide/groupby.html", - "reshaping.html": "user-guide/reshaping.html", - "combining.html": "user-guide/combining.html", - "time-series.html": "user-guide/time-series.html", - "weather-climate.html": "user-guide/weather-climate.html", - "pandas.html": "user-guide/pandas.html", - "io.html": "user-guide/io.html", - "dask.html": "user-guide/dask.html", - "plotting.html": "user-guide/plotting.html", - "duckarrays.html": "user-guide/duckarrays.html", -} +# Enable this once there's a workaround for the following warning +# WARNING: the sphinx_reredirects extension does not declare if it is safe for parallel reading, assuming it isn't - please ask the extension author to check and make it explicit + +# redirects = { +# "terminology": "user-guide/terminology.html", +# "data-structures.html": "user-guide/data-structures.html", +# "indexing.html": "user-guide/indexing.html", +# "interpolation.html": "user-guide/interpolation.html", +# "computation.html": "user-guide/computation.html", +# "groupby.html": "user-guide/groupby.html", +# "reshaping.html": "user-guide/reshaping.html", +# "combining.html": "user-guide/combining.html", +# "time-series.html": "user-guide/time-series.html", +# "weather-climate.html": "user-guide/weather-climate.html", +# "pandas.html": "user-guide/pandas.html", +# "io.html": "user-guide/io.html", +# "dask.html": "user-guide/dask.html", +# "plotting.html": "user-guide/plotting.html", +# "duckarrays.html": "user-guide/duckarrays.html", +# } # Sometimes the savefig directory doesn't exist and needs to be created # https://github.com/ipython/ipython/issues/8733 diff --git a/doc/index.rst b/doc/index.rst index 9cb52f13acf..6c690e40ee5 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -45,13 +45,13 @@ computing. Xarray Internals Roadmap What’s New + GitHub repository .. toctree:: :maxdepth: 1 :hidden: :caption: Community - GitHub repository GitHub discussions StackOverflow From f4ece77134346e52115f6964e8b365ea03649d25 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Thu, 4 Mar 2021 09:49:16 -0700 Subject: [PATCH 40/51] [skip-ci] Add Team page and update roadmap --- doc/index.rst | 1 + doc/roadmap.rst | 79 +------------------------------------------- doc/team.rst | 87 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 89 insertions(+), 78 deletions(-) create mode 100644 doc/team.rst diff --git a/doc/index.rst b/doc/index.rst index 6c690e40ee5..a985c7ceb4c 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -44,6 +44,7 @@ computing. Contributing Guide Xarray Internals Roadmap + Team What’s New GitHub repository diff --git a/doc/roadmap.rst b/doc/roadmap.rst index 9a0349b9913..dd5235bfb16 100644 --- a/doc/roadmap.rst +++ b/doc/roadmap.rst @@ -206,87 +206,10 @@ In order to lower this adoption barrier, we propose to: - Write a basic glossary that defines terms that might not be familiar to all (e.g. "lazy", "labeled", "serialization", "indexing", "backend"). + Administrative -------------- -Current core developers -~~~~~~~~~~~~~~~~~~~~~~~ - -.. panels:: - :column: col-lg-4 col-md-4 col-sm-6 col-xs-12 p-2 - :card: text-center - - --- - .. image:: https://avatars.githubusercontent.com/u/1217238?v=4 - +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - :link-badge:`https://github.com/shoyer,"Stephan Hoyer",cls=btn badge-light` - - --- - .. image:: https://avatars.githubusercontent.com/u/1197350?v=4 - +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - :link-badge:`https://github.com/rabernat,"Ryan Abernathey",cls=btn badge-light` - - --- - .. image:: https://avatars.githubusercontent.com/u/2443309?v=4 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - :link-badge:`https://github.com/jhamman,"Joe Hamman",cls=btn badge-light` - - --- - .. image:: https://avatars.githubusercontent.com/u/4160723?v=4 - +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - :link-badge:`https://github.com/benbovy,"Benoit Bovy",cls=btn badge-light` - - --- - .. image:: https://avatars.githubusercontent.com/u/10050469?v=4 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - :link-badge:`https://github.com/fmaussion,"Fabien Maussion",cls=btn badge-light` - - --- - .. image:: https://avatars.githubusercontent.com/u/6815844?v=4 - +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - :link-badge:`https://github.com/fujiisoup,"Keisuke Fujii",cls=btn badge-light` - - --- - .. image:: https://avatars.githubusercontent.com/u/5635139?v=4 - +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - :link-badge:`https://github.com/max-sixty,"Maximilian Roos",cls=btn badge-light` - - --- - .. image:: https://avatars.githubusercontent.com/u/2448579?v=4 - +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - :link-badge:`https://github.com/dcherian,"Deepak Cherian",cls=btn badge-light` - - --- - .. image:: https://avatars.githubusercontent.com/u/6628425?v=4 - +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - :link-badge:`https://github.com/spencerkclark,"Spencer Clark",cls=btn badge-light` - - --- - .. image:: https://avatars.githubusercontent.com/u/35968931?v=4 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - :link-badge:`https://github.com/TomNicholas,"Tom Nicholas",cls=btn badge-light` - - --- - .. image:: https://avatars.githubusercontent.com/u/6213168?v=4 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - :link-badge:`https://github.com/crusaderky,"Guido Imperiale",cls=btn badge-light` - - --- - .. image:: https://avatars.githubusercontent.com/u/14808389?v=4 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - :link-badge:`https://github.com/keewis,"Justus Magin",cls=btn badge-light` - - --- - .. image:: https://avatars.githubusercontent.com/u/10194086?v=4 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - :link-badge:`https://github.com/mathause,"Mathias Hauser",cls=btn badge-light` - - --- - .. image:: https://avatars.githubusercontent.com/u/13301940?v=4 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - :link-badge:`https://github.com/andersy005,"Anderson Banihirwe",cls=btn badge-light` - - NumFOCUS ~~~~~~~~ diff --git a/doc/team.rst b/doc/team.rst new file mode 100644 index 00000000000..7b185dc3a52 --- /dev/null +++ b/doc/team.rst @@ -0,0 +1,87 @@ +Team +----- + +Current core developers +~~~~~~~~~~~~~~~~~~~~~~~ + +Xarray core developers are responsible for the ongoing organizational maintenance and technical direction of the xarray project. + +The current core developers team comprises: + +.. panels:: + :column: col-lg-4 col-md-4 col-sm-6 col-xs-12 p-2 + :card: text-center + + --- + .. image:: https://avatars.githubusercontent.com/u/1217238?v=4 + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + :link-badge:`https://github.com/shoyer,"Stephan Hoyer",cls=btn badge-light` + + --- + .. image:: https://avatars.githubusercontent.com/u/1197350?v=4 + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + :link-badge:`https://github.com/rabernat,"Ryan Abernathey",cls=btn badge-light` + + --- + .. image:: https://avatars.githubusercontent.com/u/2443309?v=4 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + :link-badge:`https://github.com/jhamman,"Joe Hamman",cls=btn badge-light` + + --- + .. image:: https://avatars.githubusercontent.com/u/4160723?v=4 + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + :link-badge:`https://github.com/benbovy,"Benoit Bovy",cls=btn badge-light` + + --- + .. image:: https://avatars.githubusercontent.com/u/10050469?v=4 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + :link-badge:`https://github.com/fmaussion,"Fabien Maussion",cls=btn badge-light` + + --- + .. image:: https://avatars.githubusercontent.com/u/6815844?v=4 + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + :link-badge:`https://github.com/fujiisoup,"Keisuke Fujii",cls=btn badge-light` + + --- + .. image:: https://avatars.githubusercontent.com/u/5635139?v=4 + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + :link-badge:`https://github.com/max-sixty,"Maximilian Roos",cls=btn badge-light` + + --- + .. image:: https://avatars.githubusercontent.com/u/2448579?v=4 + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + :link-badge:`https://github.com/dcherian,"Deepak Cherian",cls=btn badge-light` + + --- + .. image:: https://avatars.githubusercontent.com/u/6628425?v=4 + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + :link-badge:`https://github.com/spencerkclark,"Spencer Clark",cls=btn badge-light` + + --- + .. image:: https://avatars.githubusercontent.com/u/35968931?v=4 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + :link-badge:`https://github.com/TomNicholas,"Tom Nicholas",cls=btn badge-light` + + --- + .. image:: https://avatars.githubusercontent.com/u/6213168?v=4 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + :link-badge:`https://github.com/crusaderky,"Guido Imperiale",cls=btn badge-light` + + --- + .. image:: https://avatars.githubusercontent.com/u/14808389?v=4 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + :link-badge:`https://github.com/keewis,"Justus Magin",cls=btn badge-light` + + --- + .. image:: https://avatars.githubusercontent.com/u/10194086?v=4 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + :link-badge:`https://github.com/mathause,"Mathias Hauser",cls=btn badge-light` + + --- + .. image:: https://avatars.githubusercontent.com/u/13301940?v=4 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + :link-badge:`https://github.com/andersy005,"Anderson Banihirwe",cls=btn badge-light` + + + +The full list of contributors is on our `GitHub Contributors Page `__. From 0c45e14d6381b2d0af025deac8ac607717f9e38c Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Thu, 4 Mar 2021 09:49:46 -0700 Subject: [PATCH 41/51] [skip-ci] Fix nbsphinx prolog --- doc/conf.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/conf.py b/doc/conf.py index b21c0306f78..ed42283d258 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -102,7 +102,9 @@ nbsphinx_execute = "always" nbsphinx_prolog = """ {% set docname = env.doc2path(env.docname, base=None) %} + You can run this notebook in a `live session `_ |Binder| or view it `on Github `_. + .. |Binder| image:: https://mybinder.org/badge.svg :target: https://mybinder.org/v2/gh/pydata/xarray/master?urlpath=lab/tree/doc/{{ docname }} """ From ae70707da4edd7d3b816a7636301ead678412131 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Thu, 4 Mar 2021 10:23:32 -0700 Subject: [PATCH 42/51] [skip-ci] Attempt at using binder launch button --- doc/conf.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/doc/conf.py b/doc/conf.py index ed42283d258..57acb45b1a4 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -100,14 +100,14 @@ nbsphinx_timeout = 600 nbsphinx_execute = "always" -nbsphinx_prolog = """ -{% set docname = env.doc2path(env.docname, base=None) %} +# nbsphinx_prolog = """ +# {% set docname = env.doc2path(env.docname, base=None) %} -You can run this notebook in a `live session `_ |Binder| or view it `on Github `_. +# You can run this notebook in a `live session `_ |Binder| or view it `on Github `_. -.. |Binder| image:: https://mybinder.org/badge.svg - :target: https://mybinder.org/v2/gh/pydata/xarray/master?urlpath=lab/tree/doc/{{ docname }} -""" +# .. |Binder| image:: https://mybinder.org/badge.svg +# :target: https://mybinder.org/v2/gh/pydata/xarray/master?urlpath=lab/tree/doc/{{ docname }} +# """ autosummary_generate = True @@ -235,10 +235,11 @@ # analytics_id='' this is configured in rtfd.io # canonical_url="", repository_url="https://github.com/pydata/xarray", + repository_branch="master", + path_to_docs="doc/", use_edit_page_button=True, use_repository_button=True, use_issues_button=True, - path_to_docs="doc/", home_page_in_toc=False, extra_navbar="", navbar_footer_text="", @@ -246,7 +247,10 @@ a nonprofit dedicated to supporting the open-source scientific computing community.
Theme by the Executable Book Project

""", twitter_url="https://twitter.com/xarray_devs", - launch_buttons={"binderhub_url": "https://mybinder.org"}, + launch_buttons={ + "binderhub_url": "https://mybinder.org", + "notebook_interface": "jupyterlab", + }, ) From 204bd8a2790848dc435403b304fba83d50c9554c Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Thu, 4 Mar 2021 11:02:30 -0700 Subject: [PATCH 43/51] [skip-ci] Enable nbsphinx prolog --- doc/conf.py | 18 +++++++----------- doc/gallery.rst | 2 -- 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/doc/conf.py b/doc/conf.py index 57acb45b1a4..86f0eb50863 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -100,14 +100,14 @@ nbsphinx_timeout = 600 nbsphinx_execute = "always" -# nbsphinx_prolog = """ -# {% set docname = env.doc2path(env.docname, base=None) %} +nbsphinx_prolog = """ +{% set docname = env.doc2path(env.docname, base=None) %} -# You can run this notebook in a `live session `_ |Binder| or view it `on Github `_. +You can run this notebook in a `live session `_ |Binder| or view it `on Github `_. -# .. |Binder| image:: https://mybinder.org/badge.svg -# :target: https://mybinder.org/v2/gh/pydata/xarray/master?urlpath=lab/tree/doc/{{ docname }} -# """ +.. |Binder| image:: https://mybinder.org/badge.svg + :target: https://mybinder.org/v2/gh/pydata/xarray/master?urlpath=lab/tree/doc/{{ docname }} +""" autosummary_generate = True @@ -236,7 +236,7 @@ # canonical_url="", repository_url="https://github.com/pydata/xarray", repository_branch="master", - path_to_docs="doc/", + path_to_docs="doc", use_edit_page_button=True, use_repository_button=True, use_issues_button=True, @@ -247,10 +247,6 @@ a nonprofit dedicated to supporting the open-source scientific computing community.
Theme by the Executable Book Project

""", twitter_url="https://twitter.com/xarray_devs", - launch_buttons={ - "binderhub_url": "https://mybinder.org", - "notebook_interface": "jupyterlab", - }, ) diff --git a/doc/gallery.rst b/doc/gallery.rst index 4fe7804a733..9e5284cc2ee 100644 --- a/doc/gallery.rst +++ b/doc/gallery.rst @@ -11,7 +11,6 @@ Notebook Examples ----------------- .. panels:: - :container: full-width :column: text-center col-lg-6 col-md-6 col-sm-12 col-xs-12 p-2 :card: +my-2 :img-top-cls: w-75 m-auto p-2 @@ -101,7 +100,6 @@ External Examples .. panels:: - :container: full-width :column: text-center col-lg-6 col-md-6 col-sm-12 col-xs-12 p-2 :card: +my-2 :img-top-cls: w-75 m-auto p-2 From 5d8e155737641b438b40f6e2d7fd3fa71d88935b Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Fri, 5 Mar 2021 06:39:56 -0700 Subject: [PATCH 44/51] [skip-ci] related-projects -> ecosystem | external-resources -> tutorials & videos --- doc/{related-projects.rst => ecosystem.rst} | 2 +- doc/getting-started-guide/faq.rst | 2 +- doc/index.rst | 4 ++-- doc/{external-resources.rst => tutorials-and-videos.rst} | 4 ++-- doc/user-guide/weather-climate.rst | 2 +- doc/whats-new.rst | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) rename doc/{related-projects.rst => ecosystem.rst} (99%) rename doc/{external-resources.rst => tutorials-and-videos.rst} (98%) diff --git a/doc/related-projects.rst b/doc/ecosystem.rst similarity index 99% rename from doc/related-projects.rst rename to doc/ecosystem.rst index 0a010195d6d..01f5c29b9f5 100644 --- a/doc/related-projects.rst +++ b/doc/ecosystem.rst @@ -1,4 +1,4 @@ -.. _related-projects: +.. _ecosystem: Xarray related projects ----------------------- diff --git a/doc/getting-started-guide/faq.rst b/doc/getting-started-guide/faq.rst index a2151cc4b37..4cf3cc5b63d 100644 --- a/doc/getting-started-guide/faq.rst +++ b/doc/getting-started-guide/faq.rst @@ -185,7 +185,7 @@ for more details. What other projects leverage xarray? ------------------------------------ -See section :ref:`related-projects`. +See section :ref:`ecosystem`. How should I cite xarray? ------------------------- diff --git a/doc/index.rst b/doc/index.rst index a985c7ceb4c..50eec487fc5 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -31,10 +31,10 @@ computing. Getting Started User Guide Gallery - External Resources + Tutorials & Videos API Reference How do I ... - Related Projects + Ecosystem .. toctree:: :maxdepth: 2 diff --git a/doc/external-resources.rst b/doc/tutorials-and-videos.rst similarity index 98% rename from doc/external-resources.rst rename to doc/tutorials-and-videos.rst index 244532ad8f2..6189fb745db 100644 --- a/doc/external-resources.rst +++ b/doc/tutorials-and-videos.rst @@ -1,6 +1,6 @@ -External Resources -================== +Tutorials and Videos +==================== Tutorials diff --git a/doc/user-guide/weather-climate.rst b/doc/user-guide/weather-climate.rst index 068edba1e64..e14b77386b2 100644 --- a/doc/user-guide/weather-climate.rst +++ b/doc/user-guide/weather-climate.rst @@ -8,7 +8,7 @@ Weather and climate data import xarray as xr -``xarray`` can leverage metadata that follows the `Climate and Forecast (CF) conventions`_ if present. Examples include automatic labelling of plots with descriptive names and units if proper metadata is present (see :ref:`plotting`) and support for non-standard calendars used in climate science through the ``cftime`` module (see :ref:`CFTimeIndex`). There are also a number of geosciences-focused projects that build on xarray (see :ref:`related-projects`). +``xarray`` can leverage metadata that follows the `Climate and Forecast (CF) conventions`_ if present. Examples include automatic labelling of plots with descriptive names and units if proper metadata is present (see :ref:`plotting`) and support for non-standard calendars used in climate science through the ``cftime`` module (see :ref:`CFTimeIndex`). There are also a number of geosciences-focused projects that build on xarray (see :ref:`ecosystem`). .. _Climate and Forecast (CF) conventions: http://cfconventions.org diff --git a/doc/whats-new.rst b/doc/whats-new.rst index 75812795a90..26031f7a0a6 100644 --- a/doc/whats-new.rst +++ b/doc/whats-new.rst @@ -2475,7 +2475,7 @@ non-standard calendars used in climate modeling. Documentation ~~~~~~~~~~~~~ -- New FAQ entry, :ref:`related-projects`. +- New FAQ entry, :ref:`ecosystem`. By `Deepak Cherian `_. - :ref:`assigning_values` now includes examples on how to select and assign values to a :py:class:`~xarray.DataArray` with ``.loc``. From 66e39df360bbbf845f8218096f45f916db9ae738 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Fri, 5 Mar 2021 10:04:39 -0700 Subject: [PATCH 45/51] [skip-ci] Remove numpydoc configurations --- doc/conf.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/doc/conf.py b/doc/conf.py index 86f0eb50863..4e7d7391458 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -176,11 +176,6 @@ } -# Numpydoc configurations - -numpydoc_class_members_toctree = True -numpydoc_show_class_members = False - # Add any paths that contain templates here, relative to this directory. templates_path = ["_templates", sphinx_autosummary_accessors.templates_path] From 6ddf2badeb412415684d2b1a024a127810627597 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Sat, 6 Mar 2021 19:08:25 -0700 Subject: [PATCH 46/51] [skip-ci] Fix edit on page button --- ci/requirements/doc.yml | 1 - doc/_templates/autosummary/base.rst | 3 -- doc/conf.py | 70 ++++++++++++++++++++++++----- 3 files changed, 59 insertions(+), 15 deletions(-) delete mode 100644 doc/_templates/autosummary/base.rst diff --git a/ci/requirements/doc.yml b/ci/requirements/doc.yml index db0b4f2d8f3..25125320a5f 100644 --- a/ci/requirements/doc.yml +++ b/ci/requirements/doc.yml @@ -35,6 +35,5 @@ dependencies: - pip: - sphinx-reredirects - sphinxext-opengraph - - scanpydoc # relative to this file. Needs to be editable to be accepted. - -e ../.. diff --git a/doc/_templates/autosummary/base.rst b/doc/_templates/autosummary/base.rst deleted file mode 100644 index 53f2a29c193..00000000000 --- a/doc/_templates/autosummary/base.rst +++ /dev/null @@ -1,3 +0,0 @@ -:github_url: {{ fullname | github_url | escape_underscores }} - -{% extends "!autosummary/base.rst" %} diff --git a/doc/conf.py b/doc/conf.py index 4e7d7391458..36603c9b12d 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -13,14 +13,13 @@ import datetime +import inspect import os -import pathlib import subprocess import sys from contextlib import suppress import sphinx_autosummary_accessors -from jinja2.defaults import DEFAULT_FILTERS import xarray @@ -80,7 +79,7 @@ "IPython.sphinxext.ipython_console_highlighting", "nbsphinx", "sphinx_autosummary_accessors", - "scanpydoc.rtd_github_links", + "sphinx.ext.linkcode", "sphinx_panels", "sphinxext.opengraph", "sphinx_copybutton", @@ -109,13 +108,7 @@ :target: https://mybinder.org/v2/gh/pydata/xarray/master?urlpath=lab/tree/doc/{{ docname }} """ - autosummary_generate = True - -# for scanpydoc's jinja filter -project_dir = pathlib.Path(__file__).parent.parent - - autodoc_typehints = "none" # Napoleon configurations @@ -334,6 +327,61 @@ def escape_underscores(string): return string.replace("_", r"\_") +# based on numpy doc/source/conf.py +def linkcode_resolve(domain, info): + """ + Determine the URL corresponding to Python object + """ + if domain != "py": + return None + + modname = info["module"] + fullname = info["fullname"] + + submod = sys.modules.get(modname) + if submod is None: + return None + + obj = submod + for part in fullname.split("."): + try: + obj = getattr(obj, part) + except AttributeError: + return None + + try: + fn = inspect.getsourcefile(inspect.unwrap(obj)) + except TypeError: + fn = None + if not fn: + return None + + try: + source, lineno = inspect.getsourcelines(obj) + except OSError: + lineno = None + + if lineno: + linespec = f"#L{lineno}-L{lineno + len(source) - 1}" + else: + linespec = "" + + fn = os.path.relpath(fn, start=os.path.dirname(xarray.__file__)) + + if "+" in xarray.__version__: + return f"https://github.com/pydata/xarray/blob/master/xarray/{fn}{linespec}" + else: + return ( + f"https://github.com/pydata/xarray/blob/" + f"v{xarray.__version__}/xarray/{fn}{linespec}" + ) + + +def html_page_context(app, pagename, templatename, context, doctree): + # Disable edit button for docstring generated pages + if "generated" in pagename: + context["theme_use_edit_page_button"] = False + + def setup(app): - DEFAULT_FILTERS["escape_underscores"] = escape_underscores - return dict(version=version, parallel_read_safe=True, parallel_write_safe=True) + app.connect("html-page-context", html_page_context) From 114eb7ab4832f971d77bc0493a9a49d3ed11ea42 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Sat, 6 Mar 2021 19:10:48 -0700 Subject: [PATCH 47/51] [skip-ci] Update whats-new --- doc/whats-new.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/whats-new.rst b/doc/whats-new.rst index ca2f543ae8c..903e9f58a73 100644 --- a/doc/whats-new.rst +++ b/doc/whats-new.rst @@ -44,6 +44,8 @@ Bug fixes Documentation ~~~~~~~~~~~~~ +- New sphinx theme & rearrangement of the docs (:pull:`4835`). + By `Anderson Banihirwe `_. Internal Changes ~~~~~~~~~~~~~~~~ From 266cd6c2240dd3eb6f41b04b88830cfb20a217cc Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Sat, 6 Mar 2021 19:12:42 -0700 Subject: [PATCH 48/51] [skip-ci] Revert to original heading --- doc/user-guide/computation.rst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/user-guide/computation.rst b/doc/user-guide/computation.rst index a7f5d42c1b6..28804bcba6f 100644 --- a/doc/user-guide/computation.rst +++ b/doc/user-guide/computation.rst @@ -2,8 +2,10 @@ .. _comput: +########### Computation ------------ +########### + The labels associated with :py:class:`~xarray.DataArray` and :py:class:`~xarray.Dataset` objects enables some powerful shortcuts for From f506538314ecb59418a9fbf10cc7b9584d1a1613 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Sun, 7 Mar 2021 06:13:19 -0700 Subject: [PATCH 49/51] [skip-ci] Enable redirects via rediraffe ext --- ci/requirements/doc.yml | 2 +- doc/conf.py | 42 ++++++++++++++++++++--------------------- 2 files changed, 21 insertions(+), 23 deletions(-) diff --git a/ci/requirements/doc.yml b/ci/requirements/doc.yml index 25125320a5f..fe6dead5434 100644 --- a/ci/requirements/doc.yml +++ b/ci/requirements/doc.yml @@ -33,7 +33,7 @@ dependencies: - sphinx>=3.3 - zarr>=2.4 - pip: - - sphinx-reredirects + - sphinxext-rediraffe - sphinxext-opengraph # relative to this file. Needs to be editable to be accepted. - -e ../.. diff --git a/doc/conf.py b/doc/conf.py index 36603c9b12d..16c400c8db6 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -83,7 +83,7 @@ "sphinx_panels", "sphinxext.opengraph", "sphinx_copybutton", - # "sphinx_reredirects", + "sphinxext.rediraffe", ] extlinks = { @@ -239,7 +239,7 @@ # html_sidebars = { -# "**": ["sbt-sidebar-footer.html", "sbt-sidebar-nav.html", "sidebar-search-bs.html"] +# "**": ["sbt-sidebar-footer.rst", "sbt-sidebar-nav.rst", "sidebar-search-bs.rst"] # } # The name of an image file (relative to this directory) to place at the top @@ -268,26 +268,24 @@ ] # Redirects for pages that were moved to new locations -# Enable this once there's a workaround for the following warning -# WARNING: the sphinx_reredirects extension does not declare if it is safe for parallel reading, assuming it isn't - please ask the extension author to check and make it explicit - -# redirects = { -# "terminology": "user-guide/terminology.html", -# "data-structures.html": "user-guide/data-structures.html", -# "indexing.html": "user-guide/indexing.html", -# "interpolation.html": "user-guide/interpolation.html", -# "computation.html": "user-guide/computation.html", -# "groupby.html": "user-guide/groupby.html", -# "reshaping.html": "user-guide/reshaping.html", -# "combining.html": "user-guide/combining.html", -# "time-series.html": "user-guide/time-series.html", -# "weather-climate.html": "user-guide/weather-climate.html", -# "pandas.html": "user-guide/pandas.html", -# "io.html": "user-guide/io.html", -# "dask.html": "user-guide/dask.html", -# "plotting.html": "user-guide/plotting.html", -# "duckarrays.html": "user-guide/duckarrays.html", -# } + +rediraffe_redirects = { + "terminology.rst": "user-guide/terminology.rst", + "data-structures.rst": "user-guide/data-structures.rst", + "indexing.rst": "user-guide/indexing.rst", + "interpolation.rst": "user-guide/interpolation.rst", + "computation.rst": "user-guide/computation.rst", + "groupby.rst": "user-guide/groupby.rst", + "reshaping.rst": "user-guide/reshaping.rst", + "combining.rst": "user-guide/combining.rst", + "time-series.rst": "user-guide/time-series.rst", + "weather-climate.rst": "user-guide/weather-climate.rst", + "pandas.rst": "user-guide/pandas.rst", + "io.rst": "user-guide/io.rst", + "dask.rst": "user-guide/dask.rst", + "plotting.rst": "user-guide/plotting.rst", + "duckarrays.rst": "user-guide/duckarrays.rst", +} # Sometimes the savefig directory doesn't exist and needs to be created # https://github.com/ipython/ipython/issues/8733 From b7fa2efcd54c708f8747bbd6e8f8ffc340d6d0b4 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Sun, 7 Mar 2021 16:57:57 -0700 Subject: [PATCH 50/51] [skip-ci] Sticky left sidebar --- doc/_static/style.css | 134 ++++++++++++++++++++++++++++++++----- doc/_templates/layout.html | 2 - doc/conf.py | 11 +-- doc/index.rst | 2 +- 4 files changed, 126 insertions(+), 23 deletions(-) delete mode 100644 doc/_templates/layout.html diff --git a/doc/_static/style.css b/doc/_static/style.css index b7d30f429cf..5884d003eb8 100644 --- a/doc/_static/style.css +++ b/doc/_static/style.css @@ -1,27 +1,131 @@ -@import url("theme.css"); +table.colwidths-given { + table-layout: fixed; + width: 100%; +} +table.docutils td { + white-space: unset; + word-wrap: break-word; +} + +/* based on bokeh sphinx/source/boken/static/custom.css +*/ + +@media (min-width: 768px) { + .bd-sidebar { + border-right: 1px solid rgba(0, 0, 0, 0.1); + } + @supports ((position: -webkit-sticky) or (position: sticky)) { + .bd-sidebar { + position: -webkit-sticky; + position: sticky; + top: var(--navbar-height); + z-index: 1000; + height: calc(100vh - var(--navbar-height)); + } + } +} -.wy-side-nav-search>a img.logo, -.wy-side-nav-search .wy-dropdown>a img.logo { - width: 12rem +@media (min-width: 1200px) { + .bd-sidebar { + -ms-flex: 0 1 320px; + flex: 0 1 320px; + } } -.wy-side-nav-search { - background-color: #eee; +.bd-links { + padding-top: 1rem; + padding-bottom: 1rem; + margin-right: -15px; + margin-left: -15px; } -.wy-side-nav-search>div.version { +@media (min-width: 768px) { + @supports ((position: -webkit-sticky) or (position: sticky)) { + .bd-links { + max-height: calc(100vh - 9rem); + overflow-y: auto; + } + } +} + +@media (min-width: 768px) { + .bd-links { + display: block !important; + } +} + +.bd-sidenav { display: none; } -.wy-nav-top { - background-color: #555; +.bd-toc-link { + display: block; + padding: 0.25rem 1.5rem; + font-weight: 400; + color: rgba(0, 0, 0, 0.65); } -table.colwidths-given { - table-layout: fixed; - width: 100%; +.bd-toc-link:hover { + color: rgba(0, 0, 0, 0.85); + text-decoration: none; } -table.docutils td { - white-space: unset; - word-wrap: break-word; + +.bd-toc-item.active { + margin-bottom: 1rem; +} + +.bd-toc-item.active:not(:first-child) { + margin-top: 1rem; +} + +.bd-toc-item.active > .bd-toc-link { + color: rgba(0, 0, 0, 0.85); +} + +.bd-toc-item.active > .bd-toc-link:hover { + background-color: transparent; +} + +.bd-toc-item.active > .bd-sidenav { + display: block; +} + +.bd-sidebar .nav > li > a { + display: block; + padding: 0.25rem 1.5rem; + font-size: 90%; + color: rgba(0, 0, 0, 0.65); +} + +.bd-sidebar .nav > li > a:hover { + color: rgba(0, 0, 0, 0.85); + text-decoration: none; + background-color: transparent; +} + +.bd-sidebar .nav > .active > a, +.bd-sidebar .nav > .active:hover > a { + font-weight: 400; + color: #130654; + /* adjusted from original + color: rgba(0, 0, 0, 0.85); + background-color: transparent; */ +} + +.bd-sidebar .nav > li > ul { + list-style: none; + padding: 0.25rem 1.5rem; +} + +.bd-sidebar .nav > li > ul > li > a { + display: block; + padding: 0.25rem 1.5rem; + font-size: 90%; + color: rgba(0, 0, 0, 0.65); +} + +.bd-sidebar .nav > li > ul > .active > a, +.bd-sidebar .nav > li > ul > .active:hover > a { + font-weight: 400; + color: #542437; } diff --git a/doc/_templates/layout.html b/doc/_templates/layout.html deleted file mode 100644 index 4c57ba83056..00000000000 --- a/doc/_templates/layout.html +++ /dev/null @@ -1,2 +0,0 @@ -{% extends "!layout.html" %} -{% set css_files = css_files + ["_static/style.css"] %} diff --git a/doc/conf.py b/doc/conf.py index 16c400c8db6..cdddcb40df2 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -238,10 +238,6 @@ ) -# html_sidebars = { -# "**": ["sbt-sidebar-footer.rst", "sbt-sidebar-nav.rst", "sidebar-search-bs.rst"] -# } - # The name of an image file (relative to this directory) to place at the top # of the sidebar. html_logo = "_static/dataset-diagram-logo.png" @@ -255,8 +251,8 @@ # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ["_static"] +html_css_files = ["style.css"] -# redirects = {} # configuration for sphinxext.opengraph ogp_site_url = "https://xarray.pydata.org/en/latest/" @@ -285,6 +281,11 @@ "dask.rst": "user-guide/dask.rst", "plotting.rst": "user-guide/plotting.rst", "duckarrays.rst": "user-guide/duckarrays.rst", + "related-projects.rst": "ecosystem.rst", + "faq.rst": "getting-started-guide/faq.rst", + "why-xarray.rst": "getting-started-guide/why-xarray.rst", + "installing.rst": "getting-started-guide/installing.rst", + "quick-overview.rst": "getting-started-guide/quick-overview.rst", } # Sometimes the savefig directory doesn't exist and needs to be created diff --git a/doc/index.rst b/doc/index.rst index 50eec487fc5..c4c9d89264b 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -43,7 +43,7 @@ computing. Contributing Guide Xarray Internals - Roadmap + Development Roadmap Team What’s New GitHub repository From e56b44359f47c1a3da3c361d8a4c1df28ea14c06 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Mon, 8 Mar 2021 19:10:18 -0700 Subject: [PATCH 51/51] [skip-ci] Reduce left and right margins -> more screen estate --- doc/_static/style.css | 123 +++--------------------------------------- doc/conf.py | 4 -- 2 files changed, 6 insertions(+), 121 deletions(-) diff --git a/doc/_static/style.css b/doc/_static/style.css index 5884d003eb8..66983bb1b38 100644 --- a/doc/_static/style.css +++ b/doc/_static/style.css @@ -7,125 +7,14 @@ table.docutils td { word-wrap: break-word; } -/* based on bokeh sphinx/source/boken/static/custom.css -*/ +/* Reduce left and right margins */ -@media (min-width: 768px) { - .bd-sidebar { - border-right: 1px solid rgba(0, 0, 0, 0.1); - } - @supports ((position: -webkit-sticky) or (position: sticky)) { - .bd-sidebar { - position: -webkit-sticky; - position: sticky; - top: var(--navbar-height); - z-index: 1000; - height: calc(100vh - var(--navbar-height)); - } - } +.container, .container-lg, .container-md, .container-sm, .container-xl { + max-width: 1600px !important; } -@media (min-width: 1200px) { - .bd-sidebar { - -ms-flex: 0 1 320px; - flex: 0 1 320px; - } -} - -.bd-links { - padding-top: 1rem; - padding-bottom: 1rem; - margin-right: -15px; - margin-left: -15px; -} - -@media (min-width: 768px) { - @supports ((position: -webkit-sticky) or (position: sticky)) { - .bd-links { - max-height: calc(100vh - 9rem); - overflow-y: auto; - } - } -} - -@media (min-width: 768px) { - .bd-links { - display: block !important; - } -} - -.bd-sidenav { - display: none; -} - -.bd-toc-link { - display: block; - padding: 0.25rem 1.5rem; - font-weight: 400; - color: rgba(0, 0, 0, 0.65); -} - -.bd-toc-link:hover { - color: rgba(0, 0, 0, 0.85); - text-decoration: none; -} - -.bd-toc-item.active { - margin-bottom: 1rem; -} - -.bd-toc-item.active:not(:first-child) { - margin-top: 1rem; -} - -.bd-toc-item.active > .bd-toc-link { - color: rgba(0, 0, 0, 0.85); -} - -.bd-toc-item.active > .bd-toc-link:hover { - background-color: transparent; -} - -.bd-toc-item.active > .bd-sidenav { - display: block; -} - -.bd-sidebar .nav > li > a { - display: block; - padding: 0.25rem 1.5rem; - font-size: 90%; - color: rgba(0, 0, 0, 0.65); -} - -.bd-sidebar .nav > li > a:hover { - color: rgba(0, 0, 0, 0.85); - text-decoration: none; - background-color: transparent; -} - -.bd-sidebar .nav > .active > a, -.bd-sidebar .nav > .active:hover > a { - font-weight: 400; - color: #130654; - /* adjusted from original - color: rgba(0, 0, 0, 0.85); - background-color: transparent; */ -} - -.bd-sidebar .nav > li > ul { - list-style: none; - padding: 0.25rem 1.5rem; -} - -.bd-sidebar .nav > li > ul > li > a { - display: block; - padding: 0.25rem 1.5rem; - font-size: 90%; - color: rgba(0, 0, 0, 0.65); -} +/* Make sidebar sticky */ -.bd-sidebar .nav > li > ul > .active > a, -.bd-sidebar .nav > li > ul > .active:hover > a { - font-weight: 400; - color: #542437; +.bd-sidebar { + position: sticky !important; } diff --git a/doc/conf.py b/doc/conf.py index cdddcb40df2..86ff3768411 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -322,10 +322,6 @@ } -def escape_underscores(string): - return string.replace("_", r"\_") - - # based on numpy doc/source/conf.py def linkcode_resolve(domain, info): """

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 Wj%6BpnfG9TAuFjQQ7LBh`Tqb=$Enl+ literal 0 HcmV?d00001 diff --git a/doc/_static/multidimensional-coords.png b/doc/_static/multidimensional-coords.png new file mode 100644 index 0000000000000000000000000000000000000000..b0d893d6894665cbcfd8e46a437c2fa39bf6ece7 GIT binary patch literal 57609 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 z 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 E07uc0f&c&j literal 0 HcmV?d00001 diff --git a/doc/_static/visualization_gallery.png b/doc/_static/visualization_gallery.png new file mode 100644 index 0000000000000000000000000000000000000000..9e6c2436be5e505726261a46aa49d4f9dc863b11 GIT binary patch literal 43053 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