Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
d0a75cf
update travis (#3350)
bjlittle Jul 9, 2019
8137e98
single merge for load_cube
rcomer Jun 18, 2019
eebd1d5
license headers
rcomer Jun 18, 2019
e688664
Merge pull request #3335 from rcomer/load-cube-single-merge
bjlittle Jul 9, 2019
7440781
IEP 1 (#1988)
rhattersley Jul 10, 2019
4520590
added note about laziness of operations to statistical functions (#3293)
corinnebosley Jul 10, 2019
2aa93ad
Save docs patch (#3354)
stephenworsley Jul 11, 2019
76cee31
Update collections for Python3.8
znicholls Jul 16, 2019
4d06023
Merge pull request #3320 from znicholls/collections-deprecation-warning
ajdawson Jul 16, 2019
5d49766
Unpin dask (#3355)
bjlittle Jul 18, 2019
c412966
Partial Collapse of Multidimensional Auxcoords with Bounds (#3302)
rcomer Aug 19, 2019
d0213d8
Dress naked excepts #2 (#3369)
pp-mo Aug 20, 2019
3618edb
Mentioned random CubeList order in the docs (#3370)
stephenworsley Aug 22, 2019
255e5a0
Remove version pin on proj4.
pp-mo Jul 10, 2019
f402a19
Chunk control (#3361)
pp-mo Aug 23, 2019
e22b355
Adding date range time example to docs. (#3352)
stephenworsley Aug 27, 2019
1f02565
Whatsnew for new chunking strategy.
pp-mo Aug 27, 2019
2110f4e
Merge pull request #3381 from pp-mo/chunk_whatsnew
lbdreyer Aug 27, 2019
29f0bef
Replace pin with proj4<6.
pp-mo Aug 27, 2019
00e43c7
Merge pull request #3374 from pp-mo/unpin_proj4_x2
lbdreyer Aug 27, 2019
151fcae
collapsed lazy coord points should stay lazy (#3364)
rcomer Aug 28, 2019
d2e950a
Fix circular quiver plots (#3371)
stephenworsley Aug 30, 2019
9717759
Fix naming of cubes from abf/abl files (#3384)
lbdreyer Sep 2, 2019
e69b81b
metadata translations may 2019 (#3315)
Sep 2, 2019
cd76a67
Fix bug with html_repr (#3373)
stephenworsley Sep 6, 2019
0831ba2
Make PointInCell regridding scheme public (#2732) (#3390)
alastair-gemmell Sep 9, 2019
ec46449
Auto branch docs (#3397)
pp-mo Sep 16, 2019
5eb3779
Support name tokens (#3399)
bjlittle Sep 20, 2019
c4791b1
colourised logos (#3002)
meganfitzsimons Sep 23, 2019
6bb3fa4
Support Standard Name Modifers (not units!) (#3393)
lbdreyer Sep 24, 2019
de2d62a
Added axes to _invert_yaxis call
pdearnshaw Sep 24, 2019
24c6fef
Merge pull request #3414 from pdearnshaw/add_axes_to_invert_yaxis_call
ajdawson Sep 24, 2019
a0089e5
update readme.md docs badges (#3405)
bjlittle Sep 24, 2019
a09aa38
iris image: crop and resize plus add favicons (#3412)
bjlittle Sep 24, 2019
cb678c7
NEMO Ocean Data Gallery Example (#3398)
jonseddon Sep 24, 2019
1266d1b
Update docchange_2019-Sep-13_nemo_gallery_example.txt
bjlittle Sep 25, 2019
534b408
update logo banner (#3418)
bjlittle Sep 25, 2019
db76d2f
Fix _repr_html_ shapes row, close with a </tr> tag
stephenworsley Sep 25, 2019
635ff1d
Support volcello loading even if volcello referenced in cell_measures…
znicholls Sep 25, 2019
1f6d7c2
Support climatological bounds for NetCDF Save and Load (#3395)
trexfeathers Sep 26, 2019
5e760da
Add climatological xml element
bjlittle Sep 26, 2019
ede76ca
add cml update
bjlittle Sep 26, 2019
3712cf6
Merge pull request #3420 from stephenworsley/patch-1
lbdreyer Sep 27, 2019
5de1406
Removal of a cube's cell measure by name (#3081) (#3295)
alastair-gemmell Sep 27, 2019
b103f0b
Merge pull request #3425 from bjlittle/climatological-xml
lbdreyer Sep 27, 2019
ccd2058
Make MEAN with weights lazy (#3299)
bouweandela Sep 27, 2019
ad6e270
use @property everywhere (#3421)
bjlittle Sep 27, 2019
83c19a4
Correct handling of NetCDF VerticalPerspective and Geostationary coor…
trexfeathers Sep 30, 2019
bed6743
Adds lazy version of aggregated_by routine to Cube. (#3281)
Sep 30, 2019
6c03554
only build docs for latest python (#3426)
bjlittle Sep 30, 2019
17d69e9
Allow non-float cell measures (#3428)
lbdreyer Oct 1, 2019
652af7a
Modify CF conventions attribute from 1.5 to 1.7; purge old results fi…
lbdreyer Oct 1, 2019
40b892f
Fix handling of cell measures during transposes (#3434)
lbdreyer Oct 1, 2019
a52dce2
ENH: Working cube data equality (#3431)
Oct 2, 2019
5cdb823
Shift boolean data compare fix to 2.3 whatsnew.
pp-mo Oct 2, 2019
dcc8d4b
Require dask>=1.2, for use of da.allclose.
pp-mo Oct 2, 2019
1fc375a
Tests for cube data equality.
pp-mo Oct 2, 2019
ca2f9be
Whatsnew for new cube equality behaviour.
pp-mo Oct 2, 2019
2532b16
Review changes.
pp-mo Oct 2, 2019
713cf00
Merge pull request #3435 from pp-mo/cp_boolean_data_compare_plus
lbdreyer Oct 2, 2019
8ca7e85
Add repr_html for CubeLists (#3313)
DPeterK Oct 2, 2019
a441c6e
whatsnew entry for CubeList _repr_html_
bjlittle Oct 2, 2019
1d6a57f
Merge pull request #3436 from bjlittle/whatsnew-entry-cubelist-repr-html
DPeterK Oct 2, 2019
3a6a2b9
enforce non-masked dimension coordinate points/bounds (#3427)
bjlittle Oct 2, 2019
15c924d
bump version to 3.0.dev0
bjlittle Oct 3, 2019
6c05e2b
Merge pull request #3445 from bjlittle/bump-version-3p0pdev0
lbdreyer Oct 4, 2019
8280d49
Updates for auto docs on master branch for Iris 3 release (#3448)
lbdreyer Oct 4, 2019
35e1540
disable python2 travis-ci (#3446)
bjlittle Oct 4, 2019
c832f58
change deprecation warning to regular warning (#3449)
lbdreyer Oct 4, 2019
f4b54ac
Improve warning and error messages for old routine. (#3452)
pp-mo Oct 4, 2019
472e500
Add more What's New entries (#3441)
stephenworsley Oct 3, 2019
368e131
Additional whatsnew contributions for v2.3 release. (#3442)
pp-mo Oct 3, 2019
17753d7
Iris 2.3 What's New (#3450)
trexfeathers Oct 4, 2019
c892fa7
Merge pull request #3454 from lbdreyer/mergebackv2.3_1
bjlittle Oct 8, 2019
9c3eec7
tidied up test_co_realise_cubes
stephenworsley Oct 11, 2019
72465a8
Added comment explaining number of accesses
stephenworsley Oct 15, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
146 changes: 72 additions & 74 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,53 +5,40 @@
# we will use conda to give us a much faster setup time.


language: python
python:
- 2.7
- 3.6
sudo: false
language: minimal
dist: xenial

env:
matrix:
- TEST_TARGET=default TEST_MINIMAL=true
- TEST_TARGET=default
- TEST_TARGET=example
- TEST_TARGET=doctest

global:
# The decryption key for the encrypted .github/deploy_key.scitools-docs.enc.
- secure: "N9/qBUT5CqfC7KQBDy5mIWZcGNuUJk3e/qmKJpotWYV+zwOI4GghJsRce6nFnlRiwl65l5oBEcvf3+sBvUfbZqh7U0MdHpw2tHhr2FSCmMB3bkvARZblh9M37f4da9G9VmRkqnyBM5G5TImXtoq4dusvNWKvLW0qETciaipq7ws="
matrix:
- PYTHON_VERSION=3.6 TEST_TARGET=default TEST_MINIMAL=true
- PYTHON_VERSION=3.6 TEST_TARGET=default
- PYTHON_VERSION=3.6 TEST_TARGET=example

- PYTHON_VERSION=3.7 TEST_TARGET=default TEST_MINIMAL=true
- PYTHON_VERSION=3.7 TEST_TARGET=default
- PYTHON_VERSION=3.7 TEST_TARGET=example
- PYTHON_VERSION=3.7 TEST_TARGET=doctest PUSH_BUILT_DOCS=true

git:
# We need a deep clone so that we can compute the age of the files using their git history.
depth: 10000

install:
- >
export IRIS_TEST_DATA_REF="dba47566a9147645fea586f94a138e0a8d45a48e";
export IRIS_TEST_DATA_REF="1696ac3a823a06b95f430670f285ee97671d2cf2";
export IRIS_TEST_DATA_SUFFIX=$(echo "${IRIS_TEST_DATA_REF}" | sed "s/^v//");

# Cut short doctest phase under Python 2 : now only supports Python 3
# SEE : https://github.com/SciTools/iris/pull/3134
# ------------
- >
if [[ $TEST_TARGET == 'doctest' && ${TRAVIS_PYTHON_VERSION} != 3* ]]; then
echo "DOCTEST phase only valid in Python 3 : ABORTING during 'install'."
exit 0
fi

# Install miniconda
# -----------------
- >
echo 'Installing miniconda';
export CONDA_BASE=https://repo.continuum.io/miniconda/Miniconda;
if [[ "$TRAVIS_PYTHON_VERSION" == 2* ]]; then
wget --quiet ${CONDA_BASE}2-latest-Linux-x86_64.sh -O miniconda.sh;
else
wget --quiet ${CONDA_BASE}3-latest-Linux-x86_64.sh -O miniconda.sh;
fi;
bash miniconda.sh -b -p $HOME/miniconda;
export PATH="$HOME/miniconda/bin:$PATH";
export CONDA_BASE="https://repo.continuum.io/miniconda/Miniconda";
wget --quiet ${CONDA_BASE}3-latest-Linux-x86_64.sh -O miniconda.sh;
bash miniconda.sh -b -p ${HOME}/miniconda;
export PATH="${HOME}/miniconda/bin:${PATH}";

# Create the basic testing environment
# ------------------------------------
Expand All @@ -63,35 +50,31 @@ install:
conda config --add channels conda-forge;
conda update --quiet conda;
ENV_NAME='test-environment';
conda create --quiet -n $ENV_NAME python=$TRAVIS_PYTHON_VERSION pip;
source activate $ENV_NAME;
conda create --quiet -n ${ENV_NAME} python=${PYTHON_VERSION} pip;
source activate ${ENV_NAME};

# Customise the testing environment
# ---------------------------------
- >
echo 'Install Iris dependencies';
CONDA_REQS_FLAGS="";
CONDA_REQS_GROUPS="test";
if [[ "$TRAVIS_PYTHON_VERSION" == 2* ]]; then
CONDA_REQS_FLAGS="${CONDA_REQS_FLAGS} --py2";
fi;
if [[ "$TEST_MINIMAL" != true ]]; then
if [[ "${TEST_MINIMAL}" != true ]]; then
CONDA_REQS_GROUPS="${CONDA_REQS_GROUPS} all";
fi;
if [[ "${TEST_TARGET}" == 'doctest' ]]; then
CONDA_REQS_GROUPS="${CONDA_REQS_GROUPS} docs";
fi;
CONDA_REQS_FILE=conda-requirements.txt;
python requirements/gen_conda_requirements.py ${CONDA_REQS_FLAGS} --groups ${CONDA_REQS_GROUPS} > ${CONDA_REQS_FILE};
CONDA_REQS_FILE="conda-requirements.txt";
python requirements/gen_conda_requirements.py --groups ${CONDA_REQS_GROUPS} > ${CONDA_REQS_FILE};
cat ${CONDA_REQS_FILE};
conda install --quiet -n $ENV_NAME --file ${CONDA_REQS_FILE};
conda install --quiet -n ${ENV_NAME} --file ${CONDA_REQS_FILE};

- PREFIX=$HOME/miniconda/envs/$ENV_NAME
- PREFIX="${HOME}/miniconda/envs/${ENV_NAME}"

# Output debug info
- >
conda list -n $ENV_NAME;
conda list -n $ENV_NAME --explicit;
conda list -n ${ENV_NAME};
conda list -n ${ENV_NAME} --explicit;
conda info -a;

# Pre-load Natural Earth data to avoid multiple, overlapping downloads.
Expand All @@ -100,71 +83,86 @@ install:

# iris test data
- >
if [[ "$TEST_MINIMAL" != true ]]; then
if [[ "${TEST_MINIMAL}" != true ]]; then
wget --quiet -O iris-test-data.zip https://github.com/SciTools/iris-test-data/archive/${IRIS_TEST_DATA_REF}.zip;
unzip -q iris-test-data.zip;
mv "iris-test-data-${IRIS_TEST_DATA_SUFFIX}" iris-test-data;
fi

# set config paths
- >
SITE_CFG=lib/iris/etc/site.cfg;
echo "[Resources]" > $SITE_CFG;
echo "test_data_dir = $(pwd)/iris-test-data/test_data" >> $SITE_CFG;
echo "doc_dir = $(pwd)/docs/iris" >> $SITE_CFG;
echo "[System]" >> $SITE_CFG;
echo "udunits2_path = $PREFIX/lib/libudunits2.so" >> $SITE_CFG;
SITE_CFG="lib/iris/etc/site.cfg";
echo "[Resources]" > ${SITE_CFG};
echo "test_data_dir = $(pwd)/iris-test-data/test_data" >> ${SITE_CFG};
echo "doc_dir = $(pwd)/docs/iris" >> ${SITE_CFG};
echo "[System]" >> ${SITE_CFG};
echo "udunits2_path = ${PREFIX}/lib/libudunits2.so" >> ${SITE_CFG};

- python setup.py --quiet install

# JUST FOR NOW : Install latest version of iris-grib.
# TODO : remove when iris doesn't do an integration test requiring iris-grib.
- if [[ "$TEST_MINIMAL" != true && ${TRAVIS_PYTHON_VERSION} == 2* ]]; then
conda install --quiet -n $ENV_NAME python-ecmwf_grib;
pip install git+https://github.com/SciTools/[email protected];
fi
# TODO: uncomment and address the 5 failures and 10 errors in iris-grib.
# - if [[ "${TEST_MINIMAL}" != true ]]; then
# conda install --quiet -n ${ENV_NAME} python-eccodes;
# conda install --quiet -n ${ENV_NAME} --no-deps iris-grib;
# fi

script:
# Capture install-dir: As a test command must be last for get Travis to check
# the RC, so it's best to start each operation with an absolute cd.
- INSTALL_DIR=$(pwd)

- >
if [[ $TEST_TARGET == 'default' ]]; then
export IRIS_REPO_DIR=$INSTALL_DIR;
python -m iris.tests.runner --default-tests --system-tests --print-failed-images --num-processors=3;
if [[ ${TEST_TARGET} == 'default' ]]; then
export IRIS_REPO_DIR=${INSTALL_DIR};
python -m iris.tests.runner --default-tests --system-tests --print-failed-images;
fi

- if [[ $TEST_TARGET == 'example' ]]; then
python -m iris.tests.runner --example-tests --print-failed-images --num-processors=3;
- if [[ ${TEST_TARGET} == 'example' ]]; then
python -m iris.tests.runner --example-tests --print-failed-images;
fi

# A call to check "whatsnew" contributions are valid, because the Iris test
# for it needs a *developer* install to be able to find the docs.
- if [[ ${TEST_TARGET} == 'doctest' ]]; then
cd ${INSTALL_DIR}/docs/iris/src/whatsnew;
python aggregate_directory.py --checkonly;
fi

# When pushing built docs, attempt to make a preliminary whatsnew by calling
# 'aggregate_directory.py', before the build.
- >
if [[ $TEST_TARGET == 'doctest' ]]; then
MPL_RC_DIR=$HOME/.config/matplotlib;
mkdir -p $MPL_RC_DIR;
echo 'backend : agg' > $MPL_RC_DIR/matplotlibrc;
echo 'image.cmap : viridis' >> $MPL_RC_DIR/matplotlibrc;
cd $INSTALL_DIR/docs/iris;
if [[ ${PUSH_BUILT_DOCS} == 'true' ]]; then
cd ${INSTALL_DIR}/docs/iris/src/whatsnew;
WHATSNEW=$(ls -d contributions_* 2>/dev/null);
if [[ "$WHATSNEW" != "" ]]; then
python aggregate_directory.py --unreleased;
fi;
fi

# Build the docs.
- >
if [[ ${TEST_TARGET} == 'doctest' ]]; then
MPL_RC_DIR="${HOME}/.config/matplotlib";
mkdir -p ${MPL_RC_DIR};
echo 'backend : agg' > ${MPL_RC_DIR}/matplotlibrc;
echo 'image.cmap : viridis' >> ${MPL_RC_DIR}/matplotlibrc;
cd ${INSTALL_DIR}/docs/iris;
make clean html && make doctest;
fi

# Split the organisation out of the slug. See https://stackoverflow.com/a/5257398/741316 for description.
- ORG=(${TRAVIS_REPO_SLUG//\// })

# When we merge a change, and we are running in python 3, push some docs.
- if [[ $TEST_TARGET == 'doctest' && ${TRAVIS_EVENT_TYPE} == 'push' && ${TRAVIS_PYTHON_VERSION} == 3* && ${ORG} == "SciTools" ]]; then
cd $INSTALL_DIR;
# When we merge a change to SciTools/iris, we can push docs to github pages.
# At present, only the Python 3.7 "doctest" job does this.
# Results appear at https://scitools-docs.github.io/iris/<<branchname>>/index.html
- if [[ ${ORG} == "SciTools" && ${TRAVIS_EVENT_TYPE} == 'push' && ${PUSH_BUILT_DOCS} == 'true' ]]; then
cd ${INSTALL_DIR};
pip install doctr;
doctr deploy --deploy-repo SciTools-docs/iris --built-docs docs/iris/build/html
--key-path .github/deploy_key.scitools-docs.enc
--no-require-master
${TRAVIS_BRANCH:-${TRAVIS_TAG}};
fi

# An extra call to check "whatsnew" contributions are valid, because the
# Iris test for it needs a *developer* install to be able to find the docs.
- if [[ $TEST_TARGET == 'doctest' ]]; then
cd $INSTALL_DIR/docs/iris/src/whatsnew;
python aggregate_directory.py --checkonly;
fi
24 changes: 16 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,27 @@

<p align="center">
<!-- https://shields.io/ is a good source of these -->
<a href="https://travis-ci.org/SciTools/iris/branches">
<img src="https://api.travis-ci.org/repositories/SciTools/iris.svg?branch=master"
alt="Travis-CI" /></a>
<a href="https://anaconda.org/conda-forge/iris">
<img src="https://img.shields.io/conda/dn/conda-forge/iris.svg"
alt="conda-forge downloads" /></a>
<a href="https://github.com/SciTools/iris/graphs/contributors">
<img src="https://img.shields.io/github/contributors/SciTools/iris.svg"
alt="# contributors" /></a>
<a href="https://github.com/SciTools/iris/releases">
<img src="https://img.shields.io/github/tag/SciTools/iris.svg"
alt="Latest version" /></a>
<a href="https://scitools.org.uk/iris/docs/latest/index.html">
<img src="https://img.shields.io/badge/docs-stable-green.svg"
alt="Stable docs" /></a>
<a href="https://github.com/SciTools/iris/commits/master">
<img src="https://img.shields.io/github/commits-since/SciTools/iris/latest.svg"
alt="Commits since last release" /></a>
<a href="https://github.com/SciTools/iris/graphs/contributors">
<img src="https://img.shields.io/github/contributors/SciTools/iris.svg"
alt="# contributors" /></a>
<a href="https://travis-ci.org/SciTools/iris/branches">
<img src="https://api.travis-ci.org/repositories/SciTools/iris.svg?branch=master"
alt="Travis-CI" /></a>
<a href="https://scitools-docs.github.io/iris/master/index.html">
<img src="https://img.shields.io/badge/docs-latest-blue.svg"
alt="Latest docs" /></a>
<a href="https://zenodo.org/badge/latestdoi/5312648">
<img src="https://zenodo.org/badge/5312648.svg"
alt="zenodo" /></a>
Expand Down Expand Up @@ -82,8 +88,10 @@ use of standard NumPy/dask arrays as its underlying data storage.

# Documentation

The documentation for Iris is available at <https://scitools.org.uk/iris/docs/latest>,
including a user guide, example code, and gallery.
<a href="https://scitools.org.uk/iris/docs/latest/index.html"> <img src="https://img.shields.io/badge/docs-stable-green.svg" alt="Stable docs" /></a> The documentation for *stable released versions* of Iris, including a user guide, example code, and gallery.

<a href="https://scitools-docs.github.io/iris/master/index.html"> <img src="https://img.shields.io/badge/docs-latest-blue.svg" alt="Latest docs" /></a> The documentation for the *latest development version* of Iris.


# Installation

Expand Down
59 changes: 59 additions & 0 deletions docs/iris/example_code/Oceanography/load_nemo.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
"""
Load a time series of data from the NEMO model
==============================================

This example demonstrates how to load multiple files containing data output by
the NEMO model and combine them into a time series in a single cube. The
different time dimensions in these files can prevent Iris from concatenating
them without the intervention shown here.
"""
from __future__ import unicode_literals

import iris
import iris.plot as iplt
import iris.quickplot as qplt
import matplotlib.pyplot as plt
from iris.util import promote_aux_coord_to_dim_coord


def main():
# Load the three files of sample NEMO data.
fname = iris.sample_data_path('NEMO/nemo_1m_*.nc')
cubes = iris.load(fname)

# Some attributes are unique to each file and must be blanked
# to allow concatenation.
differing_attrs = ['file_name', 'name', 'timeStamp', 'TimeStamp']
for cube in cubes:
for attribute in differing_attrs:
cube.attributes[attribute] = ''

# The cubes still cannot be concatenated because their time dimension is
# time_counter rather than time. time needs to be promoted to allow
# concatenation.
for cube in cubes:
promote_aux_coord_to_dim_coord(cube, 'time')

# The cubes can now be concatenated into a single time series.
cube = cubes.concatenate_cube()

# Generate a time series plot of a single point
plt.figure()
y_point_index = 100
x_point_index = 100
qplt.plot(cube[:, y_point_index, x_point_index], 'o-')

# Include the point's position in the plot's title
lat_point = cube.coord('latitude').points[y_point_index, x_point_index]
lat_string = '{:.3f}\u00B0 {}'.format(abs(lat_point),
'N' if lat_point > 0. else 'S')
lon_point = cube.coord('longitude').points[y_point_index, x_point_index]
lon_string = '{:.3f}\u00B0 {}'.format(abs(lon_point),
'E' if lon_point > 0. else 'W')
plt.title('{} at {} {}'.format(cube.long_name.capitalize(),
lat_string, lon_string))
iplt.show()


if __name__ == '__main__':
main()
41 changes: 41 additions & 0 deletions docs/iris/example_tests/test_load_nemo.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# (C) British Crown Copyright 2019, Met Office
#
# This file is part of Iris.
#
# Iris is free software: you can redistribute it and/or modify it under
# the terms of the GNU Lesser General Public License as published by the
# Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Iris is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with Iris. If not, see <http://www.gnu.org/licenses/>.

from __future__ import (absolute_import, division, print_function)
from six.moves import (filter, input, map, range, zip) # noqa

# Import Iris tests first so that some things can be initialised before
# importing anything else.
import iris.tests as tests

from .extest_util import (add_examples_to_path,
show_replaced_by_check_graphic,
fail_any_deprecation_warnings)


class TestLoadNemo(tests.GraphicsTest):
"""Test the load_nemo example code."""
def test_load_nemo(self):
with fail_any_deprecation_warnings():
with add_examples_to_path():
import load_nemo
with show_replaced_by_check_graphic(self):
load_nemo.main()


if __name__ == '__main__':
tests.main()
Loading