diff --git a/.gitignore b/.gitignore index 8b7d2cc50..1f8c9a242 100644 --- a/.gitignore +++ b/.gitignore @@ -80,7 +80,7 @@ instance/ .scrapy # Sphinx documentation -docs/_build/ +formerly_docs/_build/ # PyBuilder .pybuilder/ diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 754afbad7..0f04a7190 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -97,9 +97,9 @@ repos: additional_dependencies: ["repo-review[cli]"] args: ["--show=errskip"] -# TODO: pending the addition of numpydoc, including config file(s). #- repo: https://github.com/numpy/numpydoc -# rev: v1.7.0 +# rev: v1.8.0 # hooks: # - id: numpydoc-validation +# exclude: "src/iris_grib/formerly_tests/|noxfile.py|formerly_docs/conf.py" # types: [file, python] diff --git a/docs/Makefile b/docs/Makefile deleted file mode 100644 index d9ed9c704..000000000 --- a/docs/Makefile +++ /dev/null @@ -1,233 +0,0 @@ -# Makefile for Sphinx documentation -# - -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -PAPER = -BUILDDIR = _build - -# User-friendly check for sphinx-build -ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) - $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don\'t have Sphinx installed, grab it from http://sphinx-doc.org/) -endif - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . - -# See https://www.sphinx-doc.org/en/master/man/sphinx-build.html?highlight=--keep-going#cmdoption-sphinx-build-W -WARNING_TO_ERROR = -W --keep-going - -.PHONY: help -help: - @echo "Please use \`make ' where is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " applehelp to make an Apple Help Book" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " epub3 to make an epub3" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " xml to make Docutils-native XML files" - @echo " pseudoxml to make pseudoxml-XML files for display purposes" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - @echo " coverage to run coverage check of the documentation (if enabled)" - @echo " dummy to check syntax errors of document sources" - -.PHONY: clean -clean: - rm -rf $(BUILDDIR)/* - -.PHONY: html -html: - $(SPHINXBUILD) $(WARNING_TO_ERROR) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -.PHONY: dirhtml -dirhtml: - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -.PHONY: singlehtml -singlehtml: - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -.PHONY: pickle -pickle: - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle - @echo - @echo "Build finished; now you can process the pickle files." - -.PHONY: json -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -.PHONY: htmlhelp -htmlhelp: - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -.PHONY: qthelp -qthelp: - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/iris-grib.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/iris-grib.qhc" - -.PHONY: applehelp -applehelp: - $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp - @echo - @echo "Build finished. The help book is in $(BUILDDIR)/applehelp." - @echo "N.B. You won't be able to view it unless you put it in" \ - "~/Library/Documentation/Help or install it in your application" \ - "bundle." - -.PHONY: devhelp -devhelp: - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/iris-grib" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/iris-grib" - @echo "# devhelp" - -.PHONY: epub -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -.PHONY: epub3 -epub3: - $(SPHINXBUILD) -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3 - @echo - @echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3." - -.PHONY: latex -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -.PHONY: latexpdf -latexpdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -.PHONY: latexpdfja -latexpdfja: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through platex and dvipdfmx..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -.PHONY: text -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -.PHONY: man -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -.PHONY: texinfo -texinfo: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -.PHONY: info -info: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." - -.PHONY: gettext -gettext: - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale - @echo - @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." - -.PHONY: changes -changes: - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -.PHONY: linkcheck -linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -.PHONY: doctest -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." - -.PHONY: coverage -coverage: - $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage - @echo "Testing of coverage in the sources finished, look at the " \ - "results in $(BUILDDIR)/coverage/python.txt." - -.PHONY: xml -xml: - $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml - @echo - @echo "Build finished. The XML files are in $(BUILDDIR)/xml." - -.PHONY: pseudoxml -pseudoxml: - $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml - @echo - @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." - -.PHONY: dummy -dummy: - $(SPHINXBUILD) -b dummy $(ALLSPHINXOPTS) $(BUILDDIR)/dummy - @echo - @echo "Build finished. Dummy builder generates no files." diff --git a/docs/_static/iris-logo-title-dark.svg b/docs/_static/iris-logo-title-dark.svg deleted file mode 100644 index 44d8a3bb4..000000000 --- a/docs/_static/iris-logo-title-dark.svg +++ /dev/null @@ -1,108 +0,0 @@ - - \ No newline at end of file diff --git a/docs/_static/iris-logo-title.svg b/docs/_static/iris-logo-title.svg deleted file mode 100644 index f1e7e236f..000000000 --- a/docs/_static/iris-logo-title.svg +++ /dev/null @@ -1,108 +0,0 @@ - - \ No newline at end of file diff --git a/docs/conf.py b/docs/conf.py deleted file mode 100644 index 395a8ff94..000000000 --- a/docs/conf.py +++ /dev/null @@ -1,308 +0,0 @@ -# -*- coding: utf-8 -*- -# -# iris-grib documentation build configuration file, created by -# sphinx-quickstart on Fri May 13 11:48:28 2016. -# -# This file is execfile()d with the current directory set to its -# containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -from importlib.metadata import version as get_version -import sys -import os - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.append(os.path.abspath("..")) - -# -- General configuration ------------------------------------------------ - -# If your documentation needs a minimal Sphinx version, state it here. -# needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [ - "sphinx.ext.autodoc", - "sphinx.ext.doctest", - "sphinx.ext.intersphinx", -] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ["_templates"] - -# The suffix(es) of source filenames. -# You can specify multiple suffix as a list of string: -# source_suffix = ['.rst', '.md'] -source_suffix = ".rst" - -# The encoding of source files. -# source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = "index" - -# General information about the project. -project = "iris-grib" -copyright = "2022, Met Office" -author = "Met Office" - -# 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. -# -release = get_version("iris-grib") - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# -# This is also used if you do content translation via gettext catalogs. -# Usually you set "language" from the command line for these cases. -# language = "en" - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -# today = '' -# Else, today_fmt is used as the format for a strftime call. -# today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -# This patterns also effect to html_static_path and html_extra_path -exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] - -# 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 - -# If true, `todo` and `todoList` produce output, else they produce nothing. -todo_include_todos = False - -# url link checker. Some links registering as faulty, despite being functional. -# See https://www.sphinx-doc.org/en/1.2/config.html[...] -# [...]#options-for-the-linkcheck-builder - -linkcheck_ignore = [ - "https://github.com/Scitools/iris-grib/compare" - "/c4243ae..5c314e3#diff-cf46b46880cae59e82a91c7ab6bb81ba" -] - -# -- Autodoc ------------------------------------------------------------------ - -autodoc_member_order = "groupwise" -autodoc_default_flags = ["show-inheritance"] - - -# -- 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_rtd_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 = {} - -# Add any paths that contain custom themes here, relative to this directory. -# html_theme_path = [] - -# The name for this set of Sphinx documents. -# " v documentation" by default. -# html_title = u'iris-grib v0.1.0.dev0' - -# 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 = None - -# The name of an image file (relative to this directory) to use as a favicon of -# the docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -# html_favicon = None - -# 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'] - -# 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 None, a 'Last updated on:' timestamp is inserted at every page -# bottom, using the given strftime format. -# The empty string is equivalent to '%b %d, %Y'. -# html_last_updated_fmt = None - -# 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 - -# Language to be used for generating the HTML full-text search index. -# Sphinx supports the following languages: -# 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' -# 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr', 'zh' -# html_search_language = 'en' - -# A dictionary with options for the search language support, empty by default. -# 'ja' uses this config value. -# 'zh' user can custom change `jieba` dictionary path. -# html_search_options = {'type': 'default'} - -# The name of a javascript file (relative to the configuration directory) that -# implements a search results scorer. If empty, the default will be used. -# html_search_scorer = 'scorer.js' - -# Output file base name for HTML help builder. -htmlhelp_basename = "iris-gribdoc" - -# -- 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': '', - # Latex figure (float) alignment - # 'figure_align': 'htbp', -} - -# 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 = [ - (master_doc, "iris-grib.tex", "iris-grib Documentation", "Met Office", "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 = [(master_doc, "iris-grib", "iris-grib Documentation", [author], 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 = [ - ( - master_doc, - "iris-grib", - "iris-grib Documentation", - author, - "iris-grib", - "One line description of project.", - "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), - "iris": ("https://scitools-iris.readthedocs.io/en/stable/", None), -} diff --git a/docs/index.rst b/docs/index.rst deleted file mode 100644 index 2ee206381..000000000 --- a/docs/index.rst +++ /dev/null @@ -1,258 +0,0 @@ -.. iris-grib documentation master file, created by - sphinx-quickstart on Fri May 13 11:48:28 2016. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Iris-grib v0.20 -=============== - -The library ``iris-grib`` provides functionality for converting between weather and -climate datasets that are stored as GRIB files and Iris :class:`~iris.cube.Cube`\s. -GRIB files can be loaded as Iris cubes using ``iris-grib`` so that you can use Iris -for analysing and visualising the contents of the GRIB files. Iris cubes can also be -saved to GRIB edition-2 files using ``iris-grib``. - - -Simple GRIB Loading and Saving with Iris ----------------------------------------- -You can use the functionality provided by ``iris-grib`` directly within Iris -without having to explicitly import ``iris-grib``, as long as you have both Iris -and ``iris-grib`` installed in your Python environment. - -**This is the preferred route if no special control is required.** - -.. testsetup:: - - import iris - import iris_grib - import warnings - warnings.simplefilter('ignore') - cube = iris.load_cube(iris.sample_data_path("rotated_pole.nc")) - iris.save(cube, 'testfile.grib', saver='grib2') - -For example, to load GRIB data : - - >>> cube = iris.load_cube('testfile.grib') - -Similarly, you can save cubes to a GRIB file directly from Iris : - - >>> iris.save(cube, 'my_file.grib2') - -.. note:: - As the filename suggests, **only saving to GRIB2 is currently supported**. - - -Phenomenon translation ----------------------- -``iris-grib`` attempts to translate between CF phenomenon identities -(i.e. 'standard_name' and possibly 'long_name' attributes), and GRIB parameter codes, -when converting cubes to or from the GRIB format. - -A set of tables define known CF translations for GRIB1 and GRIB2 parameters, and can be -interrogated with the functions in :mod:`iris_grib.grib_phenom_translation`. - - -Parameter loading record -^^^^^^^^^^^^^^^^^^^^^^^^ -All cubes loaded from GRIB have a ``GRIB_PARAM`` attribute, which records the parameter -encodings present in the original file message. - -Examples : - -* ``"GRIB2:d000c003n005"`` represents GRIB2, discipline=0 ("Meteorological products"), - category=3 ("Mass") and indicatorOfParameter=5 ("Geopotential height (gpm)"). - - * This translates to a standard_name and units of "geopotential_height / m" - -* ``"GRIB1:t002c007n033"`` is GRIB1 with table2Version=2, centre=7 - ("US National Weather Service - NCEP (WMC)"), and indicatorOfParameter=33 - ("U-component of wind m s**-1"). - - * This translates to a standard_name and units of "x_wind / m s-1". - -Parameter saving control -^^^^^^^^^^^^^^^^^^^^^^^^ -When a cube has a ``GRIB_PARAM`` attribute, as described above, this controls what the -relevant message keys are set to on saving. -(N.B. at present applies only to GRIB2, since we don't support GRIB1 saving) - - -Iris-grib Load and Save API ---------------------------- -In addition to direct load and save with Iris, as described above, -it is also possible to load and save GRIB data using iris-grib functions. - -Loading and saving Cubes -^^^^^^^^^^^^^^^^^^^^^^^^ -Load -~~~~ -To load from a GRIB file with ``iris-grib``, you can call the -:func:`~iris_grib.load_cubes` function : - - >>> cubes_iter = iris_grib.load_cubes('testfile.grib') - >>> print(cubes_iter) - - -As we can see, this returns a generator object. The generator object may be iterated -over to access all the Iris cubes loaded from the GRIB file, or converted directly -to a list:: - - >>> cubes = list(cubes_iter) - >>> print(cubes) - [] - -In effect, this is the same as using ``iris.load_raw(...)``. -So, in most cases, **that is preferable.** - -Save -~~~~ -To use ``iris-grib`` to save Iris cubes to a GRIB file we can make use of the -:func:`~iris_grib.save_grib2` function : - - >>> iris_grib.save_grib2(cube, 'my_file.grib2') - -In effect, this is the same as using ``iris.save(cube, ...)``. -So, in most cases, **that is preferable.** - - -Working with GRIB messages -^^^^^^^^^^^^^^^^^^^^^^^^^^ -Iris-grib also provides lower-level functions which allow the user to inspect and -adjust actual GRIB encoding details, for precise custom control of loading and saving. - -These functions use intermediate objects which represent individual GRIB file -"messages", with all the GRIB metadata. - -For example: - -* correct loading of some messages with incorrectly encoded parameter number -* save messages with adjusted parameter encodings -* load messages with an unsupported parameter definition template : adjust them to - mimic a similar type which *is* supported by cube translation, and post-modify the - resulting cubes to correct the Iris metadata - -You can load and save messages to and from files, and convert them to and from Cubes. - -.. note:: - at present this only works with GRIB2 data. - -.. note:: - Messages are not represented in the same way for loading and saving : the messages - generated by loading *from* files are represented by - :class:`iris_grib.message.GribMessage` objects, whereas messages generated from - cubes, for saving *to* files, are represented as message handles from the - `Python eccodes library `_ . - -Load -~~~~ -The key functions are :func:`~iris_grib.load_pairs_from_fields` and -:func:`~iris_grib.message.GribMessage.messages_from_filename`. -See those for more detail. - -You can load data to 'messages', and filter or modify them to enable or correct -how Iris converts them to 'raw' cubes (i.e. individual 2-dimensional fields). - -For example: - - >>> from iris_grib.message import GribMessage - >>> fields_iter = GribMessage.messages_from_filename('testfile.grib') - >>> # select only wanted data - >>> selected_fields = [ - ... field - ... for field in fields_iter - ... if field.sections[4]['parameterNumber'] == 33 - ... ] - >>> cube_field_pairs = iris_grib.load_pairs_from_fields(selected_fields) - -Filtering fields can be very useful to speed up loading, since otherwise all data must -be converted to Iris *before* selection with constraints, which can be quite costly. - - -Save -~~~~ -The key functions are :func:`~iris_grib.save_pairs_from_cubes` and -:func:`~iris_grib.save_messages`. -See those for more detail. - -You can convert Iris cubes to eccodes messages, and modify or filter them before saving. - -.. note:: - The messages here are eccodes message "ids", essentially integers, and *not* - :class:`~iris_grib.message.GribMessages`. Thus, they must be inspected and - manipulated using the eccodes library functions. - -.. testsetup:: - - from iris.coords import DimCoord - import eccodes - cube_height_2m5 = iris.load_cube(iris.sample_data_path("rotated_pole.nc")) - cube_height_2m5.add_aux_coord(DimCoord([2.5], standard_name="height", units="m"), ()) - -For example: - - >>> # translate data to grib2 fields - >>> cube_field_pairs = list(iris_grib.save_pairs_from_cube(cube_height_2m5)) - >>> # adjust some of them - >>> for cube, field in cube_field_pairs: - ... if cube.coords('height') and cube.coord('height').points[0] == 2.5: - ... # we know this will have been rounded, badly, so needs re-scaling. - ... assert eccodes.codes_get_long(field, 'scaleFactorOfFirstFixedSurface') == 0 - ... assert eccodes.codes_get_long(field, 'scaledValueOfFirstFixedSurface') == 2 - ... eccodes.codes_set_long(field, 'scaleFactorOfFirstFixedSurface', 1) - ... eccodes.codes_set_long(field, 'scaledValueOfFirstFixedSurface', 25) - ... - >>> # save to file - >>> messages = [msg for (cube, msg) in cube_field_pairs] - >>> iris_grib.save_messages(messages, 'temp.grib2') - >>> # check result - >>> print(iris.load_cube('temp.grib2').coord('height').points) - [2.5] - - -Getting Started -=============== - -To ensure all ``iris-grib`` dependencies, it is sufficient to have installed -:mod:`Iris ` itself, and -`ecCodes `_ . - -The simplest way to install is with -`conda `_ , using the -`package on conda-forge `_ , -with the command:: - - $ conda install -c conda-forge iris-grib - -Pip can also be used, to install from the -`package on PyPI `_ , -with the command:: - - $ pip install iris-grib - -Development sources are hosted at ``_ . - -Releases -======== - -For recent changes, see :ref:`release_notes` . - - -Indices and tables -================== - -Contents: - -.. toctree:: - :maxdepth: 3 - - ref/iris_grib - ref/message/message - ref/grib_phenom_translation/grib_phenom_translation - - -See also: - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - diff --git a/docs/make.bat b/docs/make.bat deleted file mode 100644 index d485d3bcf..000000000 --- a/docs/make.bat +++ /dev/null @@ -1,281 +0,0 @@ -@ECHO OFF - -REM Command file for Sphinx documentation - -if "%SPHINXBUILD%" == "" ( - set SPHINXBUILD=sphinx-build -) -set BUILDDIR=_build -set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% . -set I18NSPHINXOPTS=%SPHINXOPTS% . -if NOT "%PAPER%" == "" ( - set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% - set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS% -) - -if "%1" == "" goto help - -if "%1" == "help" ( - :help - echo.Please use `make ^` where ^ is one of - echo. html to make standalone HTML files - echo. dirhtml to make HTML files named index.html in directories - echo. singlehtml to make a single large HTML file - echo. pickle to make pickle files - echo. json to make JSON files - echo. htmlhelp to make HTML files and a HTML help project - echo. qthelp to make HTML files and a qthelp project - echo. devhelp to make HTML files and a Devhelp project - echo. epub to make an epub - echo. epub3 to make an epub3 - echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter - echo. text to make text files - echo. man to make manual pages - echo. texinfo to make Texinfo files - echo. gettext to make PO message catalogs - echo. changes to make an overview over all changed/added/deprecated items - echo. xml to make Docutils-native XML files - echo. pseudoxml to make pseudoxml-XML files for display purposes - echo. linkcheck to check all external links for integrity - echo. doctest to run all doctests embedded in the documentation if enabled - echo. coverage to run coverage check of the documentation if enabled - echo. dummy to check syntax errors of document sources - goto end -) - -if "%1" == "clean" ( - for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i - del /q /s %BUILDDIR%\* - goto end -) - - -REM Check if sphinx-build is available and fallback to Python version if any -%SPHINXBUILD% 1>NUL 2>NUL -if errorlevel 9009 goto sphinx_python -goto sphinx_ok - -:sphinx_python - -set SPHINXBUILD=python -m sphinx.__init__ -%SPHINXBUILD% 2> nul -if errorlevel 9009 ( - echo. - echo.The 'sphinx-build' command was not found. Make sure you have Sphinx - echo.installed, then set the SPHINXBUILD environment variable to point - echo.to the full path of the 'sphinx-build' executable. Alternatively you - echo.may add the Sphinx directory to PATH. - echo. - echo.If you don't have Sphinx installed, grab it from - echo.http://sphinx-doc.org/ - exit /b 1 -) - -:sphinx_ok - - -if "%1" == "html" ( - %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The HTML pages are in %BUILDDIR%/html. - goto end -) - -if "%1" == "dirhtml" ( - %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. - goto end -) - -if "%1" == "singlehtml" ( - %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. - goto end -) - -if "%1" == "pickle" ( - %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; now you can process the pickle files. - goto end -) - -if "%1" == "json" ( - %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; now you can process the JSON files. - goto end -) - -if "%1" == "htmlhelp" ( - %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; now you can run HTML Help Workshop with the ^ -.hhp project file in %BUILDDIR%/htmlhelp. - goto end -) - -if "%1" == "qthelp" ( - %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; now you can run "qcollectiongenerator" with the ^ -.qhcp project file in %BUILDDIR%/qthelp, like this: - echo.^> qcollectiongenerator %BUILDDIR%\qthelp\iris-grib.qhcp - echo.To view the help file: - echo.^> assistant -collectionFile %BUILDDIR%\qthelp\iris-grib.ghc - goto end -) - -if "%1" == "devhelp" ( - %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. - goto end -) - -if "%1" == "epub" ( - %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The epub file is in %BUILDDIR%/epub. - goto end -) - -if "%1" == "epub3" ( - %SPHINXBUILD% -b epub3 %ALLSPHINXOPTS% %BUILDDIR%/epub3 - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The epub3 file is in %BUILDDIR%/epub3. - goto end -) - -if "%1" == "latex" ( - %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. - goto end -) - -if "%1" == "latexpdf" ( - %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex - cd %BUILDDIR%/latex - make all-pdf - cd %~dp0 - echo. - echo.Build finished; the PDF files are in %BUILDDIR%/latex. - goto end -) - -if "%1" == "latexpdfja" ( - %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex - cd %BUILDDIR%/latex - make all-pdf-ja - cd %~dp0 - echo. - echo.Build finished; the PDF files are in %BUILDDIR%/latex. - goto end -) - -if "%1" == "text" ( - %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The text files are in %BUILDDIR%/text. - goto end -) - -if "%1" == "man" ( - %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The manual pages are in %BUILDDIR%/man. - goto end -) - -if "%1" == "texinfo" ( - %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo. - goto end -) - -if "%1" == "gettext" ( - %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The message catalogs are in %BUILDDIR%/locale. - goto end -) - -if "%1" == "changes" ( - %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes - if errorlevel 1 exit /b 1 - echo. - echo.The overview file is in %BUILDDIR%/changes. - goto end -) - -if "%1" == "linkcheck" ( - %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck - if errorlevel 1 exit /b 1 - echo. - echo.Link check complete; look for any errors in the above output ^ -or in %BUILDDIR%/linkcheck/output.txt. - goto end -) - -if "%1" == "doctest" ( - %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest - if errorlevel 1 exit /b 1 - echo. - echo.Testing of doctests in the sources finished, look at the ^ -results in %BUILDDIR%/doctest/output.txt. - goto end -) - -if "%1" == "coverage" ( - %SPHINXBUILD% -b coverage %ALLSPHINXOPTS% %BUILDDIR%/coverage - if errorlevel 1 exit /b 1 - echo. - echo.Testing of coverage in the sources finished, look at the ^ -results in %BUILDDIR%/coverage/python.txt. - goto end -) - -if "%1" == "xml" ( - %SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The XML files are in %BUILDDIR%/xml. - goto end -) - -if "%1" == "pseudoxml" ( - %SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml. - goto end -) - -if "%1" == "dummy" ( - %SPHINXBUILD% -b dummy %ALLSPHINXOPTS% %BUILDDIR%/dummy - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. Dummy builder generates no files. - goto end -) - -:end diff --git a/docs/ref/grib_phenom_translation/grib_phenom_translation.rst b/docs/ref/grib_phenom_translation/grib_phenom_translation.rst deleted file mode 100644 index d1f34c5ad..000000000 --- a/docs/ref/grib_phenom_translation/grib_phenom_translation.rst +++ /dev/null @@ -1,23 +0,0 @@ -iris_grib.grib_phenom_translation -================================= - -In this module: - - * :py:obj:`grib1_phenom_to_cf_info` - * :py:obj:`grib2_phenom_to_cf_info` - * :py:obj:`cf_phenom_to_grib2_info` - * :py:obj:`GRIBCode` - - -.. currentmodule:: iris_grib.grib_phenom_translation - -.. automodule:: iris_grib.grib_phenom_translation - -.. autofunction:: iris_grib.grib_phenom_translation.grib1_phenom_to_cf_info - -.. autofunction:: iris_grib.grib_phenom_translation.grib2_phenom_to_cf_info - -.. autofunction:: iris_grib.grib_phenom_translation.cf_phenom_to_grib2_info - -.. autoclass:: iris_grib.grib_phenom_translation.GRIBCode - :members: diff --git a/docs/ref/iris_grib.rst b/docs/ref/iris_grib.rst deleted file mode 100644 index 30836f852..000000000 --- a/docs/ref/iris_grib.rst +++ /dev/null @@ -1,25 +0,0 @@ -iris_grib -========= - -In this module: - - * :py:obj:`load_cubes` - * :py:obj:`save_grib2` - * :py:obj:`load_pairs_from_fields` - * :py:obj:`save_pairs_from_cube` - * :py:obj:`save_messages` - -.. currentmodule:: iris_grib - -.. automodule:: iris_grib - -.. autofunction:: iris_grib.load_cubes - -.. autofunction:: iris_grib.save_grib2 - -.. autofunction:: iris_grib.load_pairs_from_fields - -.. autofunction:: iris_grib.save_pairs_from_cube - -.. autofunction:: iris_grib.save_messages - diff --git a/docs/ref/message/message.rst b/docs/ref/message/message.rst deleted file mode 100644 index f025ce092..000000000 --- a/docs/ref/message/message.rst +++ /dev/null @@ -1,18 +0,0 @@ -iris_grib.message -================= - -In this module: - - * :py:obj:`GribMessage` - * :py:obj:`Section` - -.. currentmodule:: iris_grib.message - -.. automodule:: iris_grib.message - -.. autoclass:: iris_grib.message.GribMessage - :members: - -.. autoclass:: iris_grib.message.Section - :members: - diff --git a/docs/ref/release_notes.rst b/docs/ref/release_notes.rst deleted file mode 100644 index deed099dc..000000000 --- a/docs/ref/release_notes.rst +++ /dev/null @@ -1,672 +0,0 @@ -:orphan: - -.. _release_notes: - -Release Notes -============= - - -What's new in iris-grib v0.20.0 -------------------------------- - -:Release: 0.20.0 -:Date: 29 August 2024 - -Features -^^^^^^^^ -* `@abooton `_ added support for saving data on a - Lambert Azimuthal Equal Area (LAEA) projection, as grid definition template 3.140. - `(ISSUE#344) `_, - `(PR#343) `_ - -* `@trexfeathers `_, - `@mo-marqh `_ and - `@pp-mo `_ added support for production definition template - 4.6, i.e. percentile forecasts. - `(PR#401) `_, - `(PR#295) `_, - `(PR#271) `_ - -* `@pp-mo `_ expanded the use of the "GRIB_PARAM" - attributes to GRIB1 loading, and documented it more thoroughly. - `(ISSUE#330) `_, - `(PR#402) `_ - -* `@DPeterK `_ and - `@trexfeathers `_ added saving support for - grid definition template 20 - polar stereographic. - `(ISSUE#122) `_, - `(PR#405) `_ - - -Documentation -^^^^^^^^^^^^^ -* `@tkknight `_ fixed docs building on ReadTheDocs, and - enabled a test docs-build for each individual PR. - `(ISSUE#365) `_, - `(PR#366) `_ - -* `@tkknight `_ made docs builds treat warnings as errors. - `(PR#471) `_ - -* `@pp-mo `_ reworked the main docs page to : - headline basic load + save with Iris, rather than lower-level functions; - better explain load-pairs and save-pairs usage; make all usage examples into - doctests. - `(ISSUE#398) `_, - `(PR#402) `_ - -* `@bjlittle `_ updated the readme, replacing README.rst - with README.md and adding a logo . - `(PR#440) `_, - `(PR#447) `_ - -* `@tkknight `_ fixed the display formatting of linux - commands. - `(PR#455) `_ - - -Dependencies -^^^^^^^^^^^^ -* `@pp-mo `_ enabled support for - `eccodes v2.36 `_. - Eccodes v2.36 has implemented some backwards incompatible changes : - The ``indicatorOfUnitOfTimeRange`` key was removed, to be replaced with - ``indicatorOfUnitForForecastTime`` (but only in GRIB v2 messages, not GRIB 1); - and the ``iScansPositively`` and ``jScansPositively`` keys became read-only. - The resulting changes mean **we now only support eccodes >=2.33**. - `(PR#504) `_ - -* `@bjlittle `_ added iris-sample-data as a dependency, - as required for doctests. - `(PR#413) `_ - -* `@pp-mo `_ made essential changes for compatibility with - Iris >= 3.10. - `(PR#463) `_ - - -Internal -^^^^^^^^ -* `@trexfeathers `_ updated CONTRIBUTING.md in line with the - newer v5 SciTools CLA. `(PR#371) `_ - -* `@pp-mo `_ updated an obsolete license header in one test. - `(PR#374) `_ - -* `@trexfeathers `_ and - `@pp-mo `_ added a pre-commit configuration and got all - checks passing. - `(ISSUE#388) `_, - `(PR#400) `_, - `(PR#406) `_ - -* `@HGWright `_ and - `@trexfeathers `_ replaced setup.py with - pyproject.toml. - `(ISSUE#387) `_, - `(PR#408) `_, - `(PR#429) `_ - -* `@stephenworsley `_ configured for MyPy checking via - pre-commit. - `(ISSUE#386) `_, - `(PR#407) `_ - -* `@ESadek-MO `_ and - `@bjlittle `_ migrated CI testing from Cirrus to - GitHub Actions. - `(ISSUE#340) `_, - `(PR#415) `_, - `(PR#425) `_, - `(PR#432) `_ - -* `@trexfeathers `_ and - `@HGWright `_ adopted Ruff for code style checking. - `(ISSUE#384) `_, - `(PR#430) `_, - `(PR#419) `_ - -* `@bjlittle `_ migrated the test runs from - nose to pytest. - `(ISSUE#253) `_, - `(ISSUE#412) `_, - `(PR#420) `_, - `(PR#424) `_ - -* `@stephenworsley `_ removed the now-redundant - _iris_mercator_support.py. - `(ISSUE#431) `_, - `(PR#433) `_, - `(PR#435) `_ - -* `@bjlittle `_ added build manifest checking in GHA. - `(PR#427) `_, - `(PR#436) `_, - `(PR#441) `_ - -* `@bjlittle `_ added dependabot checking. - `(PR#426) `_ - -* `@bjlittle `_ removed 'wheel' dependency from build - system, as-per - `repo-review `_. - `(PR#437) `_ - -* `@bjlittle `_ fixed blacken-docs url in pre-commit, - as per - `repo-review `_. - `(PR#438) `_ - -* `@bjlittle `_ provided a custom per-commit.ci message, - as per - `repo-review `_. - `(PR#439) `_ - -* `@pp-mo `_ removed obsolete workaround routines relating to - older eccodes versions. - `(ISSUE#239) `_, - `(PR#410) `_ - -* `@HGWright `_ implemented version handling with - setuptools.scm . - `(ISSUE#418) `_, - `(PR#444) `_ - -* `@bjlittle `_ moved the top-level ``./iris_grib`` folder - to ``./src/iris_grib``, in line with modern practice, as per - `repo-review `_. - `(ISSUE#421) `_, - `(PR#450) `_ - -* `@bjlittle `_ adopted .git-blame-ignore-revs to exclude - some very noisy PRs from file "blame" views - `(PR#452) `_ - -* `@bjlittle `_ dropped Python 3.9 support and added 3.12, - in accordance with `nep29 `_. - `(PR#453) `_ - -* `@bjlittle `_ updated all optional dependency - requirements, and added codecov support. - `(PR#454) `_, - `(PR#459) `_ - -* `@bjlittle `_ added repository health checking with - `repo-review `_ - via pre-commit. - `(ISSUE#392) `_, - `(PR#456) `_ - -* `@bjlittle `_ added a CODE_OF_CONDUCT.md . - `(PR#460) `_ - -* `@bjlittle `_ aligned .gitignore with a suggested - standard form - `(PR#461) `_ - -* `@bjlittle `_ fixed some spelling errors to satisfy - codespell - `(PR#479) `_ - -* `@githubalexliu `_ fixed a problem with the MyPy - checking. - `(ISSUE#496) `_, - `(PR#497) `_ - -* `@trexfeathers `_ aligned the pre-commit-config with - the SciTools "reference" version. - `(PR#464) `_, - - -New Contributors -^^^^^^^^^^^^^^^^ -Welcome to - -* `@abooton `_ -* `@githubalexliu `_ -* `@stephenworsley `_ -* `@tkknight `_ fixed the display formatting of linux -* `@DPeterK `_ -* `@ESadek-MO `_ -* `@HGWright `_ - - -What's new in iris-grib v0.19.1 -------------------------------- - -:Release: 0.19.1 -:Date: 14 December 2023 - -Documentation -^^^^^^^^^^^^^ -* `@pp-mo `_ updated the release notes with v0.19 changes. - `(PR#370) `_ - - -What's new in iris-grib v0.19.0 -------------------------------- - -:Release: 0.19.0 -:Date: 16 November 2023 - -See also : -`GitHub v0.19.0 release page `_ - -Features -^^^^^^^^ -* `@lbdreyer `_ and - `@pp-mo `_ (reviewer) modified the loading of GRIB - messages with an unrecognised fixed surface type. These are now loaded in as - an unnamed coordinate with an attribute called GRIB_fixed_surface_type. - iris-grib will also save out cubes with this attribute as the given fixed - surface type. `(PR#318) `_ - -* `@trexfeathers `_ extended Transverse Mercator - to support negative scanning. - `(PR#296) `_ - -* `@trexfeathers `_ added a number of new GRIB-CF - mappings, i.e. translations from GRIB parameters to CF standard names and vice-versa. - `(PR#297) `_ - -Bugs Fixed -^^^^^^^^^^ -* `@lbdreyer `_ and - `@pp-mo `_ (reviewer) modified the GRIB1 loading - code so that it no longer assumes a spherical Earth with radius of 6371229 m - and instead uses the resolutionAndComponentFlag to determine the shape of the - Earth. This can either be a spherical Earth with radius of 6367470 m or an - oblate spheroid, the latter of which is not supported. Note that this change - in Earth's radius will result in a different coordinate system and may also - affect the coordinate values. - `(PR#316) `_ -* `@s-boardman `_ corrected the calculation of bounded - forecast periods in GRIB1 loading. - `(PR#322) `_ -* `@david-bentley `_ fixed the calculation of message - file offsets to work in Windows as well as Linux, which was causing load failures. - `(PR#287) `_ -* `@bjlittle `_ fixed an error that occurred when a - message had all-missing data points. - `(PR#362) `_ - - -Internal -^^^^^^^^ -* `@lbdreyer `_ relicensed the repo from LGPL-3 to BSD-3. - `(PR#359) `_ - -Dependencies -^^^^^^^^^^^^ -* now requires Python version >= 3.9 -* replaced deprecated eccodes-python PyPI package with new eccodes by @valeriupredoi in #357 -* `@valeriupredoi `_ replaced the deprecated - eccodes-python PyPI package with eccodes. - `(PR#357) `_ - -New Contributors -^^^^^^^^^^^^^^^^ -Welcome to - -* `@s-boardman `_ -* `@david-bentley `_ -* `@valeriupredoi `_ - - -What's new in iris-grib v0.18.0 -------------------------------- - -:Release: 0.18.0 -:Date: 14 March 2022 - -Bugs Fixed -^^^^^^^^^^ -* `@lbdreyer `_ made various updates to allow - iris-grib to work with the latest versions of - `iris `_, - `cf-units `_, - `ecCodes `_ and - `cartopy `_, including casting - the usage of :meth:`cf_units.Unit.date2num` as float. setting and setting the - values of some missing keys using ``gribapi.GRIB_MISSING_LONG``. - `(PR#288) `_ - - -Dependencies -^^^^^^^^^^^^ -* now requires Python version >= 3.8 - - -Internal -^^^^^^^^ -* `@TomDufall `_ updated the code so that it was - `flake8 `_ compliant and enabled flake8 - checks to the CI. - `(PR#271) `_ - - -What's new in iris-grib v0.17.1 -------------------------------- - -:Release: 0.17.1 -:Date: 8 June 2021 - -Bugs Fixed -^^^^^^^^^^ - -* `@TomDufall `_ removed the empty slice - handling (originally added in v0.15.1) as this used - iris.util._array_slice_ifempty which was removed in Iris v3.0.2 and is no - longer necessary. - `(PR#270) `_ - - -Dependencies -^^^^^^^^^^^^ - -* now requires Iris version >= 3.0.2. - -* now requires Python version >= 3.7. - - - -What's new in iris-grib v0.17 ------------------------------ - -:Release: 0.17.0 -:Date: 18 May 2021 - -Features -^^^^^^^^ - -* `@m1dr `_ added support for GRIB regulation 92.1.8 - for loading GRIB files where the longitude increment is not given. - `(PR#261) `_ - -* `@lbdreyer `_ added support for loading grid - point and spectral data with CCSDS recommended lossless compression, i.e. - data representation template 42. - `(PR#264) `_ - - -Internal -^^^^^^^^ - -* `@jamesp `_ moved CI testing to Cirrus CI. - `(PR#250) `_ - - - -What's new in iris-grib v0.16 ------------------------------ - -:Release: 0.16.0 -:Date: 27 Jan 2021 - -Features -^^^^^^^^ - -* `@tpowellmeto `_ added support for loading - data on a "Lambert Azimuthal Equal Area Projection", - i.e. grid definition template 3.140. - `(PR#187) `_ - -* `@bjlittle `_ made all the tests runnable for a - packaged install of iris-grib, where the grib testdata files will be missing. - `(PR#212) `_ - -* `@m1dr `_ added support for loading statistical - fields, as encoded in production definition template 3.8, even when the - "interval time increment" value is not specified (i.e. set to "missing"). - `(PR#206) `_ - -* `@pp-mo `_ ported some tests from Iris, which test - grib saving of data loaded from other formats. - `(PR#213) `_ - -* All grib-dependent testing is now contained in iris-grib : **There are no - remaining tests in Iris which use grib.** - - -Bugs Fixed -^^^^^^^^^^ - -* `@lbdreyer `_ unpinned the python-eccodes - version for Travis testing, and added a workaround for a known bug in recent - versions of python-eccodes. - Previously, we could only test against python-eccodes versions ">=0.9.1,<2". - `(PR#208) `_ - -* `@pp-mo `_ fixed save operations to round off the - the integer values of vertical surfaces, instead of truncating them. - `(PR#210) `_ - -* `@pp-mo `_ fixed loading of grid definition - template 3.90, "Space view perspective or orthographic grid", which was - **broken since Iris 2.3**. This now produces data with an iris - `Geostationary `_ - coordinate system. Prior to Iris 2.3, what is now the Iris 'Geostationary' - class was (incorrectly) named "VerticalPerspective" : When that was - `corrected in Iris 2.3 `_ , it - broke the iris-grib loading, since the data was now incorrectly - assigned the "new-style" Iris - `VerticalPerspective `_ - coordinate system, equivalent to the Cartopy - `NearsidePerspective `_ - and Proj - `"nsper" `_ . - The plotting behaviour of this is now **the same again as before Iris 2.3** : - only the Iris coordinate system has changed. - `(PR#223) `_ - -* `@pp-mo `_ fixed a problem where cubes were loading from GRIB 1 with a changed coordinate - system, since eccodes versions >= 1.19. This resulted from a change to eccodes, which now returns a different - 'shapeOfTheEarth' parameter. This resulted - in a coordinate system with a different earth radius. - For backwards compatibility, the earth radius has now been fixed to the same value as previously. - However, pending further investigation, this value may be technically incorrect and we may - yet decide to change it in a future release. - `(PR#240) `_ - - -Dependencies -^^^^^^^^^^^^ - -* now requires Iris version >= 3.0 - Needed for the bugfix in - `PR#223 `_ . - - - -What's new in iris-grib v0.15.1 -------------------------------- - -:Release: 0.15.1 -:Date: 24 Feb 2020 - -Bugs Fixed -^^^^^^^^^^ - -* `@pp-mo `_ fixed a problem that caused very slow - loading, and possible memory overflows, with Dask versions >= 2.0. - **This requires Iris >= 2.4**, as a new minimum dependency. - ( This problem was shared with UM file access in Iris, fixed in Iris 2.4. - `(PR#190) `_ - -* `@trexfeathers `_ fixed all the tests to - work with the latest Iris version, previously broken since Iris >= 2.3. - `(PR#184) `_ - and `(PR#185) `_ - -* `@lbdreyer `_ fixed a problem with the metadata - in setup.py. - `(PR#183) `_ - - -Internal -^^^^^^^^ - -* `@lbdreyer `_ and - `@pp-mo `_ ported various grib-specific tests from - Iris. - ( `PR#191 `_ , - `PR#192 `_ , - `PR#194 `_ , - `PR#195 `_ , - `PR#198 `_ , - `PR#199 `_ , - `PR#200 `_ , - `PR#201 `_ and - `PR#203 `_ ) - -Dependencies -^^^^^^^^^^^^ - -* now requires Iris version >= 2.4 - Needed for the bugfix in - `PR#190 `_ . - - -What's new in iris-grib v0.15 ------------------------------ - -:Release: 0.15.0 -:Date: 5 Dec 2019 - -Features -^^^^^^^^ - -* Updated translations between GRIB parameter code and CF standard_name or - long_name : - - * additional WAFC codes, both to and from CF - * 'mass_fraction_of_cloud_liquid_water_in_air' and 'mass_fraction_of_cloud_ice_in_air', both to and from CF - * 'surface_downwelling_longwave_flux_in_air', now translates to GRIBcode(2, 0, 5, 3) (but not the reverse). - * for full details, see : https://github.com/Scitools/iris-grib/compare/c4243ae..5c314e3#diff-cf46b46880cae59e82a91c7ab6bb81ba - -* Added support for loading GRIB messages with no fixed surface set in the - product definition section - -* Added support for loading GRIB messages where i or j increment are not set - -* Added support for saving cubes that have a "depth" coordinate - -* Cubes loaded from GRIB files now contain a new GRIB_PARAM attribute, the - value of which is an instance of - iris_grib.grib_phenom_translation.GRIBCode and represents the parameter code. - When saving, if a cube has a GRIBCode attribute, this determines the parameter code - in the created message(s): This will _override_ any translation from the CF names. - -Bug Fixes -^^^^^^^^^ - -* Reverted a bug that was fixed in v0.13 related to loading hybrid pressure - levels. It was agreed that the initial behaviour was correct - -Dependencies -^^^^^^^^^^^^ - -* Python 2 is no longer supported - - -What's new in iris-grib v0.14 ------------------------------ - -:Release: 0.14.0 -:Date: 6 Mar 2019 - -Features -^^^^^^^^ - -* Added support for WAFC aviation codes. - -* Added loading and saving of statistically processed values over a spatial - area at a horizontal level or in a horizontal layer at a point in time - (product definition template 15 in code table 4.0) - -:Release: 0.14.1 -:Date: 12 Jun 2019 - -Bug Fixes -^^^^^^^^^ - -* Added fixes to get iris-grib working with the Python 3 compatible release of - eccodes. This included workarounds such that lists that are returned by - eccodes are converted to NumPy arrays as expected. - - -What's new in iris-grib v0.13 ------------------------------ - -:Release: 0.13.0 -:Date: 15 Jun 2018 - -Features -^^^^^^^^ - -* Added saving of data on Hybrid Pressure levels (surface type 119 in - code table 4.5). - -* Added loading and saving of data on Hybrid Height levels (surface type 118 in - code table 4.5). - -* Added loading and saving of data using Mercator projection (grid definition - template 10 in template table 3.1) - - .. note:: - - Loading and saving for the Mercator projection is only available using - iris versions greater than 2.1.0. - -* Added saving for data on irregular, non-rotated grids (grid definition - template 4 in template table 3.1) - -* Added release notes for versions since 0.9. - - -Bug Fixes -^^^^^^^^^ - -* Fixed a bug with loading data on Hybrid Pressure levels (surface types 105 - and 119 in code table 4.5). - Previously, *all* hybrid coordinate values, in both 'level_pressure' and - 'sigma' coordinates, were loaded from the next level up, - i.e. (model_level_number + 1). - - .. note:: - - This changes loading behaviour for data on hybrid pressure levels only. - This is an incompatible change, but the coefficient values previously - returned were essentially useless, with some values missing. - - -What's new in iris-grib v0.12 ------------------------------ - -:Release: 0.12 -:Date: 25 Oct 2017 - -Updated to work with -`ecCodes `_ as its -interface to GRIB files. -This is ECMWF's replacement for the older GRIB-API, which is now deprecated. - - -What's new in iris-grib v0.11 ------------------------------ - -:Release: 0.11 -:Date: 25 Oct 2017 - -Update for Iris v2.0+, using `dask `_ in place of -`biggus `_ for deferred loading. - - -What's new in iris-grib v0.9 ------------------------------ - -:Release: 0.9.0 -:Date: 25 Jul 2016 - -Stable release of iris-grib to support iris v1.10 diff --git a/noxfile.py b/noxfile.py index 1b77a7d5c..ac7e9a0fb 100644 --- a/noxfile.py +++ b/noxfile.py @@ -293,7 +293,7 @@ def doctest(session: nox.sessions.Session): """ prepare_venv(session) - session.cd("docs") + session.cd("formerly_docs") session.run( "make", "clean", @@ -319,7 +319,7 @@ def linkcheck(session: nox.sessions.Session): """ prepare_venv(session) - session.cd("docs") + session.cd("formerly_docs") session.run( "make", "clean", diff --git a/pyproject.toml b/pyproject.toml index 653661f75..df0d3b454 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -154,7 +154,7 @@ ignore = [ line-length = 88 src = [ "src", - "docs", + "formerly_docs", ] [tool.ruff.format] diff --git a/src/iris_grib/__init__.py b/src/iris_grib/__init__.py index 7c35d4afa..c311a4bf1 100644 --- a/src/iris_grib/__init__.py +++ b/src/iris_grib/__init__.py @@ -7,6 +7,8 @@ See: `ECMWF GRIB API `_. +MEANINGLESS CHANGE + """ import datetime diff --git a/src/iris_grib/tests/__init__.py b/src/iris_grib/formerly_tests/__init__.py similarity index 100% rename from src/iris_grib/tests/__init__.py rename to src/iris_grib/formerly_tests/__init__.py diff --git a/src/iris_grib/tests/integration/__init__.py b/src/iris_grib/formerly_tests/integration/__init__.py similarity index 100% rename from src/iris_grib/tests/integration/__init__.py rename to src/iris_grib/formerly_tests/integration/__init__.py diff --git a/src/iris_grib/tests/integration/format_interop/__init__.py b/src/iris_grib/formerly_tests/integration/format_interop/__init__.py similarity index 100% rename from src/iris_grib/tests/integration/format_interop/__init__.py rename to src/iris_grib/formerly_tests/integration/format_interop/__init__.py diff --git a/src/iris_grib/tests/integration/format_interop/test_name_grib.py b/src/iris_grib/formerly_tests/integration/format_interop/test_name_grib.py similarity index 100% rename from src/iris_grib/tests/integration/format_interop/test_name_grib.py rename to src/iris_grib/formerly_tests/integration/format_interop/test_name_grib.py diff --git a/src/iris_grib/tests/integration/format_interop/test_pp_grib.py b/src/iris_grib/formerly_tests/integration/format_interop/test_pp_grib.py similarity index 100% rename from src/iris_grib/tests/integration/format_interop/test_pp_grib.py rename to src/iris_grib/formerly_tests/integration/format_interop/test_pp_grib.py diff --git a/src/iris_grib/tests/integration/iris_integration/__init__.py b/src/iris_grib/formerly_tests/integration/iris_integration/__init__.py similarity index 100% rename from src/iris_grib/tests/integration/iris_integration/__init__.py rename to src/iris_grib/formerly_tests/integration/iris_integration/__init__.py diff --git a/src/iris_grib/tests/integration/iris_integration/test_callback.py b/src/iris_grib/formerly_tests/integration/iris_integration/test_callback.py similarity index 100% rename from src/iris_grib/tests/integration/iris_integration/test_callback.py rename to src/iris_grib/formerly_tests/integration/iris_integration/test_callback.py diff --git a/src/iris_grib/tests/integration/iris_integration/test_pickle_message.py b/src/iris_grib/formerly_tests/integration/iris_integration/test_pickle_message.py similarity index 100% rename from src/iris_grib/tests/integration/iris_integration/test_pickle_message.py rename to src/iris_grib/formerly_tests/integration/iris_integration/test_pickle_message.py diff --git a/src/iris_grib/tests/integration/load_convert/__init__.py b/src/iris_grib/formerly_tests/integration/load_convert/__init__.py similarity index 100% rename from src/iris_grib/tests/integration/load_convert/__init__.py rename to src/iris_grib/formerly_tests/integration/load_convert/__init__.py diff --git a/src/iris_grib/tests/integration/load_convert/test_data_section.py b/src/iris_grib/formerly_tests/integration/load_convert/test_data_section.py similarity index 100% rename from src/iris_grib/tests/integration/load_convert/test_data_section.py rename to src/iris_grib/formerly_tests/integration/load_convert/test_data_section.py diff --git a/src/iris_grib/tests/integration/load_convert/test_load_hybrid_coords.py b/src/iris_grib/formerly_tests/integration/load_convert/test_load_hybrid_coords.py similarity index 100% rename from src/iris_grib/tests/integration/load_convert/test_load_hybrid_coords.py rename to src/iris_grib/formerly_tests/integration/load_convert/test_load_hybrid_coords.py diff --git a/src/iris_grib/tests/integration/load_convert/test_product_definition_section.py b/src/iris_grib/formerly_tests/integration/load_convert/test_product_definition_section.py similarity index 100% rename from src/iris_grib/tests/integration/load_convert/test_product_definition_section.py rename to src/iris_grib/formerly_tests/integration/load_convert/test_product_definition_section.py diff --git a/src/iris_grib/tests/integration/load_convert/test_sample_file_loads.py b/src/iris_grib/formerly_tests/integration/load_convert/test_sample_file_loads.py similarity index 100% rename from src/iris_grib/tests/integration/load_convert/test_sample_file_loads.py rename to src/iris_grib/formerly_tests/integration/load_convert/test_sample_file_loads.py diff --git a/src/iris_grib/tests/integration/round_trip/__init__.py b/src/iris_grib/formerly_tests/integration/round_trip/__init__.py similarity index 100% rename from src/iris_grib/tests/integration/round_trip/__init__.py rename to src/iris_grib/formerly_tests/integration/round_trip/__init__.py diff --git a/src/iris_grib/tests/integration/round_trip/test_WAFC_mapping_round_trip.py b/src/iris_grib/formerly_tests/integration/round_trip/test_WAFC_mapping_round_trip.py similarity index 100% rename from src/iris_grib/tests/integration/round_trip/test_WAFC_mapping_round_trip.py rename to src/iris_grib/formerly_tests/integration/round_trip/test_WAFC_mapping_round_trip.py diff --git a/src/iris_grib/tests/integration/round_trip/test_grid_definition_section.py b/src/iris_grib/formerly_tests/integration/round_trip/test_grid_definition_section.py similarity index 100% rename from src/iris_grib/tests/integration/round_trip/test_grid_definition_section.py rename to src/iris_grib/formerly_tests/integration/round_trip/test_grid_definition_section.py diff --git a/src/iris_grib/tests/integration/round_trip/test_hybrid_coords_round_trip.py b/src/iris_grib/formerly_tests/integration/round_trip/test_hybrid_coords_round_trip.py similarity index 100% rename from src/iris_grib/tests/integration/round_trip/test_hybrid_coords_round_trip.py rename to src/iris_grib/formerly_tests/integration/round_trip/test_hybrid_coords_round_trip.py diff --git a/src/iris_grib/tests/integration/round_trip/test_product_definition_section.py b/src/iris_grib/formerly_tests/integration/round_trip/test_product_definition_section.py similarity index 100% rename from src/iris_grib/tests/integration/round_trip/test_product_definition_section.py rename to src/iris_grib/formerly_tests/integration/round_trip/test_product_definition_section.py diff --git a/src/iris_grib/tests/integration/save_rules/__init__.py b/src/iris_grib/formerly_tests/integration/save_rules/__init__.py similarity index 100% rename from src/iris_grib/tests/integration/save_rules/__init__.py rename to src/iris_grib/formerly_tests/integration/save_rules/__init__.py diff --git a/src/iris_grib/tests/integration/save_rules/test_grib_save.py b/src/iris_grib/formerly_tests/integration/save_rules/test_grib_save.py similarity index 100% rename from src/iris_grib/tests/integration/save_rules/test_grib_save.py rename to src/iris_grib/formerly_tests/integration/save_rules/test_grib_save.py diff --git a/src/iris_grib/tests/integration/save_rules/test_grid_definition_section.py b/src/iris_grib/formerly_tests/integration/save_rules/test_grid_definition_section.py similarity index 100% rename from src/iris_grib/tests/integration/save_rules/test_grid_definition_section.py rename to src/iris_grib/formerly_tests/integration/save_rules/test_grid_definition_section.py diff --git a/src/iris_grib/tests/integration/save_rules/test_save_hybrid_coords.py b/src/iris_grib/formerly_tests/integration/save_rules/test_save_hybrid_coords.py similarity index 100% rename from src/iris_grib/tests/integration/save_rules/test_save_hybrid_coords.py rename to src/iris_grib/formerly_tests/integration/save_rules/test_save_hybrid_coords.py diff --git a/src/iris_grib/tests/results/integration/iris_integration/callback/TestCallbacks/load_callback.cml b/src/iris_grib/formerly_tests/results/integration/iris_integration/callback/TestCallbacks/load_callback.cml similarity index 100% rename from src/iris_grib/tests/results/integration/iris_integration/callback/TestCallbacks/load_callback.cml rename to src/iris_grib/formerly_tests/results/integration/iris_integration/callback/TestCallbacks/load_callback.cml diff --git a/src/iris_grib/tests/results/integration/load_convert/data_section/TestDRT3/grid_complex_spatial_differencing.cml b/src/iris_grib/formerly_tests/results/integration/load_convert/data_section/TestDRT3/grid_complex_spatial_differencing.cml similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/data_section/TestDRT3/grid_complex_spatial_differencing.cml rename to src/iris_grib/formerly_tests/results/integration/load_convert/data_section/TestDRT3/grid_complex_spatial_differencing.cml diff --git a/src/iris_grib/tests/results/integration/load_convert/data_section/TestDRT3/grid_complex_spatial_differencing.data.0.json b/src/iris_grib/formerly_tests/results/integration/load_convert/data_section/TestDRT3/grid_complex_spatial_differencing.data.0.json similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/data_section/TestDRT3/grid_complex_spatial_differencing.data.0.json rename to src/iris_grib/formerly_tests/results/integration/load_convert/data_section/TestDRT3/grid_complex_spatial_differencing.data.0.json diff --git a/src/iris_grib/tests/results/integration/load_convert/data_section/TestDataProxy/data_representation__no_bitsPerValue.cml b/src/iris_grib/formerly_tests/results/integration/load_convert/data_section/TestDataProxy/data_representation__no_bitsPerValue.cml similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/data_section/TestDataProxy/data_representation__no_bitsPerValue.cml rename to src/iris_grib/formerly_tests/results/integration/load_convert/data_section/TestDataProxy/data_representation__no_bitsPerValue.cml diff --git a/src/iris_grib/tests/results/integration/load_convert/data_section/TestGDT30/lambert.cml b/src/iris_grib/formerly_tests/results/integration/load_convert/data_section/TestGDT30/lambert.cml similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/data_section/TestGDT30/lambert.cml rename to src/iris_grib/formerly_tests/results/integration/load_convert/data_section/TestGDT30/lambert.cml diff --git a/src/iris_grib/tests/results/integration/load_convert/data_section/TestGDT30/lambert.data.0.json b/src/iris_grib/formerly_tests/results/integration/load_convert/data_section/TestGDT30/lambert.data.0.json similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/data_section/TestGDT30/lambert.data.0.json rename to src/iris_grib/formerly_tests/results/integration/load_convert/data_section/TestGDT30/lambert.data.0.json diff --git a/src/iris_grib/tests/results/integration/load_convert/data_section/TestGDT40/reduced.cml b/src/iris_grib/formerly_tests/results/integration/load_convert/data_section/TestGDT40/reduced.cml similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/data_section/TestGDT40/reduced.cml rename to src/iris_grib/formerly_tests/results/integration/load_convert/data_section/TestGDT40/reduced.cml diff --git a/src/iris_grib/tests/results/integration/load_convert/data_section/TestGDT40/reduced.data.0.json b/src/iris_grib/formerly_tests/results/integration/load_convert/data_section/TestGDT40/reduced.data.0.json similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/data_section/TestGDT40/reduced.data.0.json rename to src/iris_grib/formerly_tests/results/integration/load_convert/data_section/TestGDT40/reduced.data.0.json diff --git a/src/iris_grib/tests/results/integration/load_convert/data_section/TestGDT40/regular.cml b/src/iris_grib/formerly_tests/results/integration/load_convert/data_section/TestGDT40/regular.cml similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/data_section/TestGDT40/regular.cml rename to src/iris_grib/formerly_tests/results/integration/load_convert/data_section/TestGDT40/regular.cml diff --git a/src/iris_grib/tests/results/integration/load_convert/data_section/TestGDT40/regular.data.0.json b/src/iris_grib/formerly_tests/results/integration/load_convert/data_section/TestGDT40/regular.data.0.json similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/data_section/TestGDT40/regular.data.0.json rename to src/iris_grib/formerly_tests/results/integration/load_convert/data_section/TestGDT40/regular.data.0.json diff --git a/src/iris_grib/tests/results/integration/load_convert/data_section/TestImport/gdt1.cml b/src/iris_grib/formerly_tests/results/integration/load_convert/data_section/TestImport/gdt1.cml similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/data_section/TestImport/gdt1.cml rename to src/iris_grib/formerly_tests/results/integration/load_convert/data_section/TestImport/gdt1.cml diff --git a/src/iris_grib/tests/results/integration/load_convert/data_section/TestImport/gdt1.data.0.json b/src/iris_grib/formerly_tests/results/integration/load_convert/data_section/TestImport/gdt1.data.0.json similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/data_section/TestImport/gdt1.data.0.json rename to src/iris_grib/formerly_tests/results/integration/load_convert/data_section/TestImport/gdt1.data.0.json diff --git a/src/iris_grib/tests/results/integration/load_convert/data_section/TestImport/gdt90_with_bitmap.cml b/src/iris_grib/formerly_tests/results/integration/load_convert/data_section/TestImport/gdt90_with_bitmap.cml similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/data_section/TestImport/gdt90_with_bitmap.cml rename to src/iris_grib/formerly_tests/results/integration/load_convert/data_section/TestImport/gdt90_with_bitmap.cml diff --git a/src/iris_grib/tests/results/integration/load_convert/data_section/TestImport/gdt90_with_bitmap.data.0.json b/src/iris_grib/formerly_tests/results/integration/load_convert/data_section/TestImport/gdt90_with_bitmap.data.0.json similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/data_section/TestImport/gdt90_with_bitmap.data.0.json rename to src/iris_grib/formerly_tests/results/integration/load_convert/data_section/TestImport/gdt90_with_bitmap.data.0.json diff --git a/src/iris_grib/tests/results/integration/load_convert/sample_file_loads/3_layer.cml b/src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/3_layer.cml similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/sample_file_loads/3_layer.cml rename to src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/3_layer.cml diff --git a/src/iris_grib/tests/results/integration/load_convert/sample_file_loads/earth_shape_0.cml b/src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/earth_shape_0.cml similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/sample_file_loads/earth_shape_0.cml rename to src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/earth_shape_0.cml diff --git a/src/iris_grib/tests/results/integration/load_convert/sample_file_loads/earth_shape_1.cml b/src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/earth_shape_1.cml similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/sample_file_loads/earth_shape_1.cml rename to src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/earth_shape_1.cml diff --git a/src/iris_grib/tests/results/integration/load_convert/sample_file_loads/earth_shape_2.cml b/src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/earth_shape_2.cml similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/sample_file_loads/earth_shape_2.cml rename to src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/earth_shape_2.cml diff --git a/src/iris_grib/tests/results/integration/load_convert/sample_file_loads/earth_shape_3.cml b/src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/earth_shape_3.cml similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/sample_file_loads/earth_shape_3.cml rename to src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/earth_shape_3.cml diff --git a/src/iris_grib/tests/results/integration/load_convert/sample_file_loads/earth_shape_4.cml b/src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/earth_shape_4.cml similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/sample_file_loads/earth_shape_4.cml rename to src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/earth_shape_4.cml diff --git a/src/iris_grib/tests/results/integration/load_convert/sample_file_loads/earth_shape_5.cml b/src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/earth_shape_5.cml similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/sample_file_loads/earth_shape_5.cml rename to src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/earth_shape_5.cml diff --git a/src/iris_grib/tests/results/integration/load_convert/sample_file_loads/earth_shape_6.cml b/src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/earth_shape_6.cml similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/sample_file_loads/earth_shape_6.cml rename to src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/earth_shape_6.cml diff --git a/src/iris_grib/tests/results/integration/load_convert/sample_file_loads/earth_shape_7.cml b/src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/earth_shape_7.cml similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/sample_file_loads/earth_shape_7.cml rename to src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/earth_shape_7.cml diff --git a/src/iris_grib/tests/results/integration/load_convert/sample_file_loads/earth_shape_grib1.cml b/src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/earth_shape_grib1.cml similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/sample_file_loads/earth_shape_grib1.cml rename to src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/earth_shape_grib1.cml diff --git a/src/iris_grib/tests/results/integration/load_convert/sample_file_loads/ineg_jneg.cml b/src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/ineg_jneg.cml similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/sample_file_loads/ineg_jneg.cml rename to src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/ineg_jneg.cml diff --git a/src/iris_grib/tests/results/integration/load_convert/sample_file_loads/ineg_jpos.cml b/src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/ineg_jpos.cml similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/sample_file_loads/ineg_jpos.cml rename to src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/ineg_jpos.cml diff --git a/src/iris_grib/tests/results/integration/load_convert/sample_file_loads/ipos_jneg.cml b/src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/ipos_jneg.cml similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/sample_file_loads/ipos_jneg.cml rename to src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/ipos_jneg.cml diff --git a/src/iris_grib/tests/results/integration/load_convert/sample_file_loads/ipos_jpos.cml b/src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/ipos_jpos.cml similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/sample_file_loads/ipos_jpos.cml rename to src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/ipos_jpos.cml diff --git a/src/iris_grib/tests/results/integration/load_convert/sample_file_loads/lambert_grib1.cml b/src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/lambert_grib1.cml similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/sample_file_loads/lambert_grib1.cml rename to src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/lambert_grib1.cml diff --git a/src/iris_grib/tests/results/integration/load_convert/sample_file_loads/lambert_grib2.cml b/src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/lambert_grib2.cml similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/sample_file_loads/lambert_grib2.cml rename to src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/lambert_grib2.cml diff --git a/src/iris_grib/tests/results/integration/load_convert/sample_file_loads/missing_values_grib2.cml b/src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/missing_values_grib2.cml similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/sample_file_loads/missing_values_grib2.cml rename to src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/missing_values_grib2.cml diff --git a/src/iris_grib/tests/results/integration/load_convert/sample_file_loads/polar_stereo_grib1.cml b/src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/polar_stereo_grib1.cml similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/sample_file_loads/polar_stereo_grib1.cml rename to src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/polar_stereo_grib1.cml diff --git a/src/iris_grib/tests/results/integration/load_convert/sample_file_loads/reduced_gg_grib2.cml b/src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/reduced_gg_grib2.cml similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/sample_file_loads/reduced_gg_grib2.cml rename to src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/reduced_gg_grib2.cml diff --git a/src/iris_grib/tests/results/integration/load_convert/sample_file_loads/reduced_ll_grib1.cml b/src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/reduced_ll_grib1.cml similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/sample_file_loads/reduced_ll_grib1.cml rename to src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/reduced_ll_grib1.cml diff --git a/src/iris_grib/tests/results/integration/load_convert/sample_file_loads/regular_gg_grib1.cml b/src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/regular_gg_grib1.cml similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/sample_file_loads/regular_gg_grib1.cml rename to src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/regular_gg_grib1.cml diff --git a/src/iris_grib/tests/results/integration/load_convert/sample_file_loads/regular_gg_grib2.cml b/src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/regular_gg_grib2.cml similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/sample_file_loads/regular_gg_grib2.cml rename to src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/regular_gg_grib2.cml diff --git a/src/iris_grib/tests/results/integration/load_convert/sample_file_loads/rotated.cml b/src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/rotated.cml similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/sample_file_loads/rotated.cml rename to src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/rotated.cml diff --git a/src/iris_grib/tests/results/integration/load_convert/sample_file_loads/time_bound_grib1.cml b/src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/time_bound_grib1.cml similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/sample_file_loads/time_bound_grib1.cml rename to src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/time_bound_grib1.cml diff --git a/src/iris_grib/tests/results/integration/load_convert/sample_file_loads/time_bound_grib2.cml b/src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/time_bound_grib2.cml similarity index 100% rename from src/iris_grib/tests/results/integration/load_convert/sample_file_loads/time_bound_grib2.cml rename to src/iris_grib/formerly_tests/results/integration/load_convert/sample_file_loads/time_bound_grib2.cml diff --git a/src/iris_grib/tests/results/integration/name_grib/NAMEII/0_TRACER_AIR_CONCENTRATION.cml b/src/iris_grib/formerly_tests/results/integration/name_grib/NAMEII/0_TRACER_AIR_CONCENTRATION.cml similarity index 100% rename from src/iris_grib/tests/results/integration/name_grib/NAMEII/0_TRACER_AIR_CONCENTRATION.cml rename to src/iris_grib/formerly_tests/results/integration/name_grib/NAMEII/0_TRACER_AIR_CONCENTRATION.cml diff --git a/src/iris_grib/tests/results/integration/name_grib/NAMEII/1_TRACER_DOSAGE.cml b/src/iris_grib/formerly_tests/results/integration/name_grib/NAMEII/1_TRACER_DOSAGE.cml similarity index 100% rename from src/iris_grib/tests/results/integration/name_grib/NAMEII/1_TRACER_DOSAGE.cml rename to src/iris_grib/formerly_tests/results/integration/name_grib/NAMEII/1_TRACER_DOSAGE.cml diff --git a/src/iris_grib/tests/results/integration/name_grib/NAMEII/3_TRACER_DRY_DEPOSITION.cml b/src/iris_grib/formerly_tests/results/integration/name_grib/NAMEII/3_TRACER_DRY_DEPOSITION.cml similarity index 100% rename from src/iris_grib/tests/results/integration/name_grib/NAMEII/3_TRACER_DRY_DEPOSITION.cml rename to src/iris_grib/formerly_tests/results/integration/name_grib/NAMEII/3_TRACER_DRY_DEPOSITION.cml diff --git a/src/iris_grib/tests/results/integration/name_grib/NAMEII/4_TRACER_TOTAL_DEPOSITION.cml b/src/iris_grib/formerly_tests/results/integration/name_grib/NAMEII/4_TRACER_TOTAL_DEPOSITION.cml similarity index 100% rename from src/iris_grib/tests/results/integration/name_grib/NAMEII/4_TRACER_TOTAL_DEPOSITION.cml rename to src/iris_grib/formerly_tests/results/integration/name_grib/NAMEII/4_TRACER_TOTAL_DEPOSITION.cml diff --git a/src/iris_grib/tests/results/integration/name_grib/NAMEIII/0_TRACER_AIR_CONCENTRATION.cml b/src/iris_grib/formerly_tests/results/integration/name_grib/NAMEIII/0_TRACER_AIR_CONCENTRATION.cml similarity index 100% rename from src/iris_grib/tests/results/integration/name_grib/NAMEIII/0_TRACER_AIR_CONCENTRATION.cml rename to src/iris_grib/formerly_tests/results/integration/name_grib/NAMEIII/0_TRACER_AIR_CONCENTRATION.cml diff --git a/src/iris_grib/tests/results/integration/name_grib/NAMEIII/1_TRACER_AIR_CONCENTRATION.cml b/src/iris_grib/formerly_tests/results/integration/name_grib/NAMEIII/1_TRACER_AIR_CONCENTRATION.cml similarity index 100% rename from src/iris_grib/tests/results/integration/name_grib/NAMEIII/1_TRACER_AIR_CONCENTRATION.cml rename to src/iris_grib/formerly_tests/results/integration/name_grib/NAMEIII/1_TRACER_AIR_CONCENTRATION.cml diff --git a/src/iris_grib/tests/results/integration/name_grib/NAMEIII/2_TRACER_DRY_DEPOSITION.cml b/src/iris_grib/formerly_tests/results/integration/name_grib/NAMEIII/2_TRACER_DRY_DEPOSITION.cml similarity index 100% rename from src/iris_grib/tests/results/integration/name_grib/NAMEIII/2_TRACER_DRY_DEPOSITION.cml rename to src/iris_grib/formerly_tests/results/integration/name_grib/NAMEIII/2_TRACER_DRY_DEPOSITION.cml diff --git a/src/iris_grib/tests/results/integration/name_grib/NAMEIII/3_TRACER_WET_DEPOSITION.cml b/src/iris_grib/formerly_tests/results/integration/name_grib/NAMEIII/3_TRACER_WET_DEPOSITION.cml similarity index 100% rename from src/iris_grib/tests/results/integration/name_grib/NAMEIII/3_TRACER_WET_DEPOSITION.cml rename to src/iris_grib/formerly_tests/results/integration/name_grib/NAMEIII/3_TRACER_WET_DEPOSITION.cml diff --git a/src/iris_grib/tests/results/integration/name_grib/NAMEIII/4_TRACER_DEPOSITION.cml b/src/iris_grib/formerly_tests/results/integration/name_grib/NAMEIII/4_TRACER_DEPOSITION.cml similarity index 100% rename from src/iris_grib/tests/results/integration/name_grib/NAMEIII/4_TRACER_DEPOSITION.cml rename to src/iris_grib/formerly_tests/results/integration/name_grib/NAMEIII/4_TRACER_DEPOSITION.cml diff --git a/src/iris_grib/tests/results/unit/load_cubes/load_cubes/reduced_raw.cml b/src/iris_grib/formerly_tests/results/unit/load_cubes/load_cubes/reduced_raw.cml similarity index 100% rename from src/iris_grib/tests/results/unit/load_cubes/load_cubes/reduced_raw.cml rename to src/iris_grib/formerly_tests/results/unit/load_cubes/load_cubes/reduced_raw.cml diff --git a/src/iris_grib/tests/test_license_headers.py b/src/iris_grib/formerly_tests/test_license_headers.py similarity index 100% rename from src/iris_grib/tests/test_license_headers.py rename to src/iris_grib/formerly_tests/test_license_headers.py diff --git a/src/iris_grib/tests/testdata/CAT_T+24_0600.grib2 b/src/iris_grib/formerly_tests/testdata/CAT_T+24_0600.grib2 similarity index 100% rename from src/iris_grib/tests/testdata/CAT_T+24_0600.grib2 rename to src/iris_grib/formerly_tests/testdata/CAT_T+24_0600.grib2 diff --git a/src/iris_grib/tests/testdata/CB_T+24_0600.grib2 b/src/iris_grib/formerly_tests/testdata/CB_T+24_0600.grib2 similarity index 100% rename from src/iris_grib/tests/testdata/CB_T+24_0600.grib2 rename to src/iris_grib/formerly_tests/testdata/CB_T+24_0600.grib2 diff --git a/src/iris_grib/tests/testdata/ICING_T+24_0600.grib2 b/src/iris_grib/formerly_tests/testdata/ICING_T+24_0600.grib2 similarity index 100% rename from src/iris_grib/tests/testdata/ICING_T+24_0600.grib2 rename to src/iris_grib/formerly_tests/testdata/ICING_T+24_0600.grib2 diff --git a/src/iris_grib/tests/testdata/INCLDTURB_T+24_0600.grib2 b/src/iris_grib/formerly_tests/testdata/INCLDTURB_T+24_0600.grib2 similarity index 100% rename from src/iris_grib/tests/testdata/INCLDTURB_T+24_0600.grib2 rename to src/iris_grib/formerly_tests/testdata/INCLDTURB_T+24_0600.grib2 diff --git a/src/iris_grib/tests/testdata/faked_sample_hh_grib_data.grib2 b/src/iris_grib/formerly_tests/testdata/faked_sample_hh_grib_data.grib2 similarity index 100% rename from src/iris_grib/tests/testdata/faked_sample_hh_grib_data.grib2 rename to src/iris_grib/formerly_tests/testdata/faked_sample_hh_grib_data.grib2 diff --git a/src/iris_grib/tests/testdata/faked_sample_hp_grib_data.grib2 b/src/iris_grib/formerly_tests/testdata/faked_sample_hp_grib_data.grib2 similarity index 100% rename from src/iris_grib/tests/testdata/faked_sample_hp_grib_data.grib2 rename to src/iris_grib/formerly_tests/testdata/faked_sample_hp_grib_data.grib2 diff --git a/src/iris_grib/tests/testdata/hybrid_height.nc b/src/iris_grib/formerly_tests/testdata/hybrid_height.nc similarity index 100% rename from src/iris_grib/tests/testdata/hybrid_height.nc rename to src/iris_grib/formerly_tests/testdata/hybrid_height.nc diff --git a/src/iris_grib/tests/testdata/hybrid_pressure.nc b/src/iris_grib/formerly_tests/testdata/hybrid_pressure.nc similarity index 100% rename from src/iris_grib/tests/testdata/hybrid_pressure.nc rename to src/iris_grib/formerly_tests/testdata/hybrid_pressure.nc diff --git a/src/iris_grib/tests/unit/__init__.py b/src/iris_grib/formerly_tests/unit/__init__.py similarity index 100% rename from src/iris_grib/tests/unit/__init__.py rename to src/iris_grib/formerly_tests/unit/__init__.py diff --git a/src/iris_grib/tests/unit/grib1_load_rules/__init__.py b/src/iris_grib/formerly_tests/unit/grib1_load_rules/__init__.py similarity index 100% rename from src/iris_grib/tests/unit/grib1_load_rules/__init__.py rename to src/iris_grib/formerly_tests/unit/grib1_load_rules/__init__.py diff --git a/src/iris_grib/tests/unit/grib1_load_rules/test_grib1_convert.py b/src/iris_grib/formerly_tests/unit/grib1_load_rules/test_grib1_convert.py similarity index 100% rename from src/iris_grib/tests/unit/grib1_load_rules/test_grib1_convert.py rename to src/iris_grib/formerly_tests/unit/grib1_load_rules/test_grib1_convert.py diff --git a/src/iris_grib/tests/unit/grib1_load_rules/test_grib1_load_translations.py b/src/iris_grib/formerly_tests/unit/grib1_load_rules/test_grib1_load_translations.py similarity index 100% rename from src/iris_grib/tests/unit/grib1_load_rules/test_grib1_load_translations.py rename to src/iris_grib/formerly_tests/unit/grib1_load_rules/test_grib1_load_translations.py diff --git a/src/iris_grib/tests/unit/grib_phenom_translation/__init__.py b/src/iris_grib/formerly_tests/unit/grib_phenom_translation/__init__.py similarity index 100% rename from src/iris_grib/tests/unit/grib_phenom_translation/__init__.py rename to src/iris_grib/formerly_tests/unit/grib_phenom_translation/__init__.py diff --git a/src/iris_grib/tests/unit/grib_phenom_translation/test_grib_phenom_translation.py b/src/iris_grib/formerly_tests/unit/grib_phenom_translation/test_grib_phenom_translation.py similarity index 100% rename from src/iris_grib/tests/unit/grib_phenom_translation/test_grib_phenom_translation.py rename to src/iris_grib/formerly_tests/unit/grib_phenom_translation/test_grib_phenom_translation.py diff --git a/src/iris_grib/tests/unit/load_convert/__init__.py b/src/iris_grib/formerly_tests/unit/load_convert/__init__.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/__init__.py rename to src/iris_grib/formerly_tests/unit/load_convert/__init__.py diff --git a/src/iris_grib/tests/unit/load_convert/test__hindcast_fix.py b/src/iris_grib/formerly_tests/unit/load_convert/test__hindcast_fix.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test__hindcast_fix.py rename to src/iris_grib/formerly_tests/unit/load_convert/test__hindcast_fix.py diff --git a/src/iris_grib/tests/unit/load_convert/test_bitmap_section.py b/src/iris_grib/formerly_tests/unit/load_convert/test_bitmap_section.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_bitmap_section.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_bitmap_section.py diff --git a/src/iris_grib/tests/unit/load_convert/test_calculate_increment.py b/src/iris_grib/formerly_tests/unit/load_convert/test_calculate_increment.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_calculate_increment.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_calculate_increment.py diff --git a/src/iris_grib/tests/unit/load_convert/test_convert.py b/src/iris_grib/formerly_tests/unit/load_convert/test_convert.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_convert.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_convert.py diff --git a/src/iris_grib/tests/unit/load_convert/test_data_cutoff.py b/src/iris_grib/formerly_tests/unit/load_convert/test_data_cutoff.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_data_cutoff.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_data_cutoff.py diff --git a/src/iris_grib/tests/unit/load_convert/test_data_representation_section.py b/src/iris_grib/formerly_tests/unit/load_convert/test_data_representation_section.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_data_representation_section.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_data_representation_section.py diff --git a/src/iris_grib/tests/unit/load_convert/test_ellipsoid.py b/src/iris_grib/formerly_tests/unit/load_convert/test_ellipsoid.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_ellipsoid.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_ellipsoid.py diff --git a/src/iris_grib/tests/unit/load_convert/test_ellipsoid_geometry.py b/src/iris_grib/formerly_tests/unit/load_convert/test_ellipsoid_geometry.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_ellipsoid_geometry.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_ellipsoid_geometry.py diff --git a/src/iris_grib/tests/unit/load_convert/test_ensemble_identifier.py b/src/iris_grib/formerly_tests/unit/load_convert/test_ensemble_identifier.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_ensemble_identifier.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_ensemble_identifier.py diff --git a/src/iris_grib/tests/unit/load_convert/test_forecast_period_coord.py b/src/iris_grib/formerly_tests/unit/load_convert/test_forecast_period_coord.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_forecast_period_coord.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_forecast_period_coord.py diff --git a/src/iris_grib/tests/unit/load_convert/test_generating_process.py b/src/iris_grib/formerly_tests/unit/load_convert/test_generating_process.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_generating_process.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_generating_process.py diff --git a/src/iris_grib/tests/unit/load_convert/test_grib2_convert.py b/src/iris_grib/formerly_tests/unit/load_convert/test_grib2_convert.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_grib2_convert.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_grib2_convert.py diff --git a/src/iris_grib/tests/unit/load_convert/test_grid_definition_template_0_and_1.py b/src/iris_grib/formerly_tests/unit/load_convert/test_grid_definition_template_0_and_1.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_grid_definition_template_0_and_1.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_grid_definition_template_0_and_1.py diff --git a/src/iris_grib/tests/unit/load_convert/test_grid_definition_template_10.py b/src/iris_grib/formerly_tests/unit/load_convert/test_grid_definition_template_10.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_grid_definition_template_10.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_grid_definition_template_10.py diff --git a/src/iris_grib/tests/unit/load_convert/test_grid_definition_template_12.py b/src/iris_grib/formerly_tests/unit/load_convert/test_grid_definition_template_12.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_grid_definition_template_12.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_grid_definition_template_12.py diff --git a/src/iris_grib/tests/unit/load_convert/test_grid_definition_template_140.py b/src/iris_grib/formerly_tests/unit/load_convert/test_grid_definition_template_140.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_grid_definition_template_140.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_grid_definition_template_140.py diff --git a/src/iris_grib/tests/unit/load_convert/test_grid_definition_template_20.py b/src/iris_grib/formerly_tests/unit/load_convert/test_grid_definition_template_20.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_grid_definition_template_20.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_grid_definition_template_20.py diff --git a/src/iris_grib/tests/unit/load_convert/test_grid_definition_template_30.py b/src/iris_grib/formerly_tests/unit/load_convert/test_grid_definition_template_30.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_grid_definition_template_30.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_grid_definition_template_30.py diff --git a/src/iris_grib/tests/unit/load_convert/test_grid_definition_template_40.py b/src/iris_grib/formerly_tests/unit/load_convert/test_grid_definition_template_40.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_grid_definition_template_40.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_grid_definition_template_40.py diff --git a/src/iris_grib/tests/unit/load_convert/test_grid_definition_template_4_and_5.py b/src/iris_grib/formerly_tests/unit/load_convert/test_grid_definition_template_4_and_5.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_grid_definition_template_4_and_5.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_grid_definition_template_4_and_5.py diff --git a/src/iris_grib/tests/unit/load_convert/test_grid_definition_template_5.py b/src/iris_grib/formerly_tests/unit/load_convert/test_grid_definition_template_5.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_grid_definition_template_5.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_grid_definition_template_5.py diff --git a/src/iris_grib/tests/unit/load_convert/test_grid_definition_template_90.py b/src/iris_grib/formerly_tests/unit/load_convert/test_grid_definition_template_90.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_grid_definition_template_90.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_grid_definition_template_90.py diff --git a/src/iris_grib/tests/unit/load_convert/test_other_time_coord.py b/src/iris_grib/formerly_tests/unit/load_convert/test_other_time_coord.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_other_time_coord.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_other_time_coord.py diff --git a/src/iris_grib/tests/unit/load_convert/test_product_definition_section.py b/src/iris_grib/formerly_tests/unit/load_convert/test_product_definition_section.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_product_definition_section.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_product_definition_section.py diff --git a/src/iris_grib/tests/unit/load_convert/test_product_definition_template_0.py b/src/iris_grib/formerly_tests/unit/load_convert/test_product_definition_template_0.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_product_definition_template_0.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_product_definition_template_0.py diff --git a/src/iris_grib/tests/unit/load_convert/test_product_definition_template_1.py b/src/iris_grib/formerly_tests/unit/load_convert/test_product_definition_template_1.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_product_definition_template_1.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_product_definition_template_1.py diff --git a/src/iris_grib/tests/unit/load_convert/test_product_definition_template_10.py b/src/iris_grib/formerly_tests/unit/load_convert/test_product_definition_template_10.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_product_definition_template_10.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_product_definition_template_10.py diff --git a/src/iris_grib/tests/unit/load_convert/test_product_definition_template_11.py b/src/iris_grib/formerly_tests/unit/load_convert/test_product_definition_template_11.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_product_definition_template_11.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_product_definition_template_11.py diff --git a/src/iris_grib/tests/unit/load_convert/test_product_definition_template_15.py b/src/iris_grib/formerly_tests/unit/load_convert/test_product_definition_template_15.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_product_definition_template_15.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_product_definition_template_15.py diff --git a/src/iris_grib/tests/unit/load_convert/test_product_definition_template_31.py b/src/iris_grib/formerly_tests/unit/load_convert/test_product_definition_template_31.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_product_definition_template_31.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_product_definition_template_31.py diff --git a/src/iris_grib/tests/unit/load_convert/test_product_definition_template_32.py b/src/iris_grib/formerly_tests/unit/load_convert/test_product_definition_template_32.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_product_definition_template_32.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_product_definition_template_32.py diff --git a/src/iris_grib/tests/unit/load_convert/test_product_definition_template_40.py b/src/iris_grib/formerly_tests/unit/load_convert/test_product_definition_template_40.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_product_definition_template_40.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_product_definition_template_40.py diff --git a/src/iris_grib/tests/unit/load_convert/test_product_definition_template_6.py b/src/iris_grib/formerly_tests/unit/load_convert/test_product_definition_template_6.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_product_definition_template_6.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_product_definition_template_6.py diff --git a/src/iris_grib/tests/unit/load_convert/test_product_definition_template_8.py b/src/iris_grib/formerly_tests/unit/load_convert/test_product_definition_template_8.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_product_definition_template_8.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_product_definition_template_8.py diff --git a/src/iris_grib/tests/unit/load_convert/test_product_definition_template_9.py b/src/iris_grib/formerly_tests/unit/load_convert/test_product_definition_template_9.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_product_definition_template_9.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_product_definition_template_9.py diff --git a/src/iris_grib/tests/unit/load_convert/test_projection_centre.py b/src/iris_grib/formerly_tests/unit/load_convert/test_projection_centre.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_projection_centre.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_projection_centre.py diff --git a/src/iris_grib/tests/unit/load_convert/test_reference_time_coord.py b/src/iris_grib/formerly_tests/unit/load_convert/test_reference_time_coord.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_reference_time_coord.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_reference_time_coord.py diff --git a/src/iris_grib/tests/unit/load_convert/test_resolution_flags.py b/src/iris_grib/formerly_tests/unit/load_convert/test_resolution_flags.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_resolution_flags.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_resolution_flags.py diff --git a/src/iris_grib/tests/unit/load_convert/test_satellite_common.py b/src/iris_grib/formerly_tests/unit/load_convert/test_satellite_common.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_satellite_common.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_satellite_common.py diff --git a/src/iris_grib/tests/unit/load_convert/test_scanning_mode.py b/src/iris_grib/formerly_tests/unit/load_convert/test_scanning_mode.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_scanning_mode.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_scanning_mode.py diff --git a/src/iris_grib/tests/unit/load_convert/test_statistical_cell_method.py b/src/iris_grib/formerly_tests/unit/load_convert/test_statistical_cell_method.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_statistical_cell_method.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_statistical_cell_method.py diff --git a/src/iris_grib/tests/unit/load_convert/test_statistical_forecast_period_coord.py b/src/iris_grib/formerly_tests/unit/load_convert/test_statistical_forecast_period_coord.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_statistical_forecast_period_coord.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_statistical_forecast_period_coord.py diff --git a/src/iris_grib/tests/unit/load_convert/test_time_range_unit.py b/src/iris_grib/formerly_tests/unit/load_convert/test_time_range_unit.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_time_range_unit.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_time_range_unit.py diff --git a/src/iris_grib/tests/unit/load_convert/test_translate_phenomenon.py b/src/iris_grib/formerly_tests/unit/load_convert/test_translate_phenomenon.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_translate_phenomenon.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_translate_phenomenon.py diff --git a/src/iris_grib/tests/unit/load_convert/test_unscale.py b/src/iris_grib/formerly_tests/unit/load_convert/test_unscale.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_unscale.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_unscale.py diff --git a/src/iris_grib/tests/unit/load_convert/test_validity_time_coord.py b/src/iris_grib/formerly_tests/unit/load_convert/test_validity_time_coord.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_validity_time_coord.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_validity_time_coord.py diff --git a/src/iris_grib/tests/unit/load_convert/test_vertical_coords.py b/src/iris_grib/formerly_tests/unit/load_convert/test_vertical_coords.py similarity index 100% rename from src/iris_grib/tests/unit/load_convert/test_vertical_coords.py rename to src/iris_grib/formerly_tests/unit/load_convert/test_vertical_coords.py diff --git a/src/iris_grib/tests/unit/message/__init__.py b/src/iris_grib/formerly_tests/unit/message/__init__.py similarity index 100% rename from src/iris_grib/tests/unit/message/__init__.py rename to src/iris_grib/formerly_tests/unit/message/__init__.py diff --git a/src/iris_grib/tests/unit/message/test_GribMessage.py b/src/iris_grib/formerly_tests/unit/message/test_GribMessage.py similarity index 100% rename from src/iris_grib/tests/unit/message/test_GribMessage.py rename to src/iris_grib/formerly_tests/unit/message/test_GribMessage.py diff --git a/src/iris_grib/tests/unit/message/test_Section.py b/src/iris_grib/formerly_tests/unit/message/test_Section.py similarity index 100% rename from src/iris_grib/tests/unit/message/test_Section.py rename to src/iris_grib/formerly_tests/unit/message/test_Section.py diff --git a/src/iris_grib/tests/unit/message/test__DataProxy.py b/src/iris_grib/formerly_tests/unit/message/test__DataProxy.py similarity index 100% rename from src/iris_grib/tests/unit/message/test__DataProxy.py rename to src/iris_grib/formerly_tests/unit/message/test__DataProxy.py diff --git a/src/iris_grib/tests/unit/message/test__MessageLocation.py b/src/iris_grib/formerly_tests/unit/message/test__MessageLocation.py similarity index 100% rename from src/iris_grib/tests/unit/message/test__MessageLocation.py rename to src/iris_grib/formerly_tests/unit/message/test__MessageLocation.py diff --git a/src/iris_grib/tests/unit/message/test__RawGribMessage.py b/src/iris_grib/formerly_tests/unit/message/test__RawGribMessage.py similarity index 100% rename from src/iris_grib/tests/unit/message/test__RawGribMessage.py rename to src/iris_grib/formerly_tests/unit/message/test__RawGribMessage.py diff --git a/src/iris_grib/tests/unit/save_rules/__init__.py b/src/iris_grib/formerly_tests/unit/save_rules/__init__.py similarity index 100% rename from src/iris_grib/tests/unit/save_rules/__init__.py rename to src/iris_grib/formerly_tests/unit/save_rules/__init__.py diff --git a/src/iris_grib/tests/unit/save_rules/test__missing_forecast_period.py b/src/iris_grib/formerly_tests/unit/save_rules/test__missing_forecast_period.py similarity index 100% rename from src/iris_grib/tests/unit/save_rules/test__missing_forecast_period.py rename to src/iris_grib/formerly_tests/unit/save_rules/test__missing_forecast_period.py diff --git a/src/iris_grib/tests/unit/save_rules/test__non_missing_forecast_period.py b/src/iris_grib/formerly_tests/unit/save_rules/test__non_missing_forecast_period.py similarity index 100% rename from src/iris_grib/tests/unit/save_rules/test__non_missing_forecast_period.py rename to src/iris_grib/formerly_tests/unit/save_rules/test__non_missing_forecast_period.py diff --git a/src/iris_grib/tests/unit/save_rules/test__product_definition_template_8_10_and_11.py b/src/iris_grib/formerly_tests/unit/save_rules/test__product_definition_template_8_10_and_11.py similarity index 100% rename from src/iris_grib/tests/unit/save_rules/test__product_definition_template_8_10_and_11.py rename to src/iris_grib/formerly_tests/unit/save_rules/test__product_definition_template_8_10_and_11.py diff --git a/src/iris_grib/tests/unit/save_rules/test_data_section.py b/src/iris_grib/formerly_tests/unit/save_rules/test_data_section.py similarity index 100% rename from src/iris_grib/tests/unit/save_rules/test_data_section.py rename to src/iris_grib/formerly_tests/unit/save_rules/test_data_section.py diff --git a/src/iris_grib/tests/unit/save_rules/test_grid_definition_template_0.py b/src/iris_grib/formerly_tests/unit/save_rules/test_grid_definition_template_0.py similarity index 100% rename from src/iris_grib/tests/unit/save_rules/test_grid_definition_template_0.py rename to src/iris_grib/formerly_tests/unit/save_rules/test_grid_definition_template_0.py diff --git a/src/iris_grib/tests/unit/save_rules/test_grid_definition_template_1.py b/src/iris_grib/formerly_tests/unit/save_rules/test_grid_definition_template_1.py similarity index 100% rename from src/iris_grib/tests/unit/save_rules/test_grid_definition_template_1.py rename to src/iris_grib/formerly_tests/unit/save_rules/test_grid_definition_template_1.py diff --git a/src/iris_grib/tests/unit/save_rules/test_grid_definition_template_10.py b/src/iris_grib/formerly_tests/unit/save_rules/test_grid_definition_template_10.py similarity index 100% rename from src/iris_grib/tests/unit/save_rules/test_grid_definition_template_10.py rename to src/iris_grib/formerly_tests/unit/save_rules/test_grid_definition_template_10.py diff --git a/src/iris_grib/tests/unit/save_rules/test_grid_definition_template_12.py b/src/iris_grib/formerly_tests/unit/save_rules/test_grid_definition_template_12.py similarity index 100% rename from src/iris_grib/tests/unit/save_rules/test_grid_definition_template_12.py rename to src/iris_grib/formerly_tests/unit/save_rules/test_grid_definition_template_12.py diff --git a/src/iris_grib/tests/unit/save_rules/test_grid_definition_template_140.py b/src/iris_grib/formerly_tests/unit/save_rules/test_grid_definition_template_140.py similarity index 100% rename from src/iris_grib/tests/unit/save_rules/test_grid_definition_template_140.py rename to src/iris_grib/formerly_tests/unit/save_rules/test_grid_definition_template_140.py diff --git a/src/iris_grib/tests/unit/save_rules/test_grid_definition_template_20.py b/src/iris_grib/formerly_tests/unit/save_rules/test_grid_definition_template_20.py similarity index 100% rename from src/iris_grib/tests/unit/save_rules/test_grid_definition_template_20.py rename to src/iris_grib/formerly_tests/unit/save_rules/test_grid_definition_template_20.py diff --git a/src/iris_grib/tests/unit/save_rules/test_grid_definition_template_30.py b/src/iris_grib/formerly_tests/unit/save_rules/test_grid_definition_template_30.py similarity index 100% rename from src/iris_grib/tests/unit/save_rules/test_grid_definition_template_30.py rename to src/iris_grib/formerly_tests/unit/save_rules/test_grid_definition_template_30.py diff --git a/src/iris_grib/tests/unit/save_rules/test_grid_definition_template_4.py b/src/iris_grib/formerly_tests/unit/save_rules/test_grid_definition_template_4.py similarity index 100% rename from src/iris_grib/tests/unit/save_rules/test_grid_definition_template_4.py rename to src/iris_grib/formerly_tests/unit/save_rules/test_grid_definition_template_4.py diff --git a/src/iris_grib/tests/unit/save_rules/test_grid_definition_template_5.py b/src/iris_grib/formerly_tests/unit/save_rules/test_grid_definition_template_5.py similarity index 100% rename from src/iris_grib/tests/unit/save_rules/test_grid_definition_template_5.py rename to src/iris_grib/formerly_tests/unit/save_rules/test_grid_definition_template_5.py diff --git a/src/iris_grib/tests/unit/save_rules/test_identification.py b/src/iris_grib/formerly_tests/unit/save_rules/test_identification.py similarity index 100% rename from src/iris_grib/tests/unit/save_rules/test_identification.py rename to src/iris_grib/formerly_tests/unit/save_rules/test_identification.py diff --git a/src/iris_grib/tests/unit/save_rules/test_product_definition_template_1.py b/src/iris_grib/formerly_tests/unit/save_rules/test_product_definition_template_1.py similarity index 100% rename from src/iris_grib/tests/unit/save_rules/test_product_definition_template_1.py rename to src/iris_grib/formerly_tests/unit/save_rules/test_product_definition_template_1.py diff --git a/src/iris_grib/tests/unit/save_rules/test_product_definition_template_10.py b/src/iris_grib/formerly_tests/unit/save_rules/test_product_definition_template_10.py similarity index 100% rename from src/iris_grib/tests/unit/save_rules/test_product_definition_template_10.py rename to src/iris_grib/formerly_tests/unit/save_rules/test_product_definition_template_10.py diff --git a/src/iris_grib/tests/unit/save_rules/test_product_definition_template_11.py b/src/iris_grib/formerly_tests/unit/save_rules/test_product_definition_template_11.py similarity index 100% rename from src/iris_grib/tests/unit/save_rules/test_product_definition_template_11.py rename to src/iris_grib/formerly_tests/unit/save_rules/test_product_definition_template_11.py diff --git a/src/iris_grib/tests/unit/save_rules/test_product_definition_template_15.py b/src/iris_grib/formerly_tests/unit/save_rules/test_product_definition_template_15.py similarity index 100% rename from src/iris_grib/tests/unit/save_rules/test_product_definition_template_15.py rename to src/iris_grib/formerly_tests/unit/save_rules/test_product_definition_template_15.py diff --git a/src/iris_grib/tests/unit/save_rules/test_product_definition_template_40.py b/src/iris_grib/formerly_tests/unit/save_rules/test_product_definition_template_40.py similarity index 100% rename from src/iris_grib/tests/unit/save_rules/test_product_definition_template_40.py rename to src/iris_grib/formerly_tests/unit/save_rules/test_product_definition_template_40.py diff --git a/src/iris_grib/tests/unit/save_rules/test_product_definition_template_6.py b/src/iris_grib/formerly_tests/unit/save_rules/test_product_definition_template_6.py similarity index 100% rename from src/iris_grib/tests/unit/save_rules/test_product_definition_template_6.py rename to src/iris_grib/formerly_tests/unit/save_rules/test_product_definition_template_6.py diff --git a/src/iris_grib/tests/unit/save_rules/test_product_definition_template_8.py b/src/iris_grib/formerly_tests/unit/save_rules/test_product_definition_template_8.py similarity index 100% rename from src/iris_grib/tests/unit/save_rules/test_product_definition_template_8.py rename to src/iris_grib/formerly_tests/unit/save_rules/test_product_definition_template_8.py diff --git a/src/iris_grib/tests/unit/save_rules/test_reference_time.py b/src/iris_grib/formerly_tests/unit/save_rules/test_reference_time.py similarity index 100% rename from src/iris_grib/tests/unit/save_rules/test_reference_time.py rename to src/iris_grib/formerly_tests/unit/save_rules/test_reference_time.py diff --git a/src/iris_grib/tests/unit/save_rules/test_set_discipline_and_parameter.py b/src/iris_grib/formerly_tests/unit/save_rules/test_set_discipline_and_parameter.py similarity index 100% rename from src/iris_grib/tests/unit/save_rules/test_set_discipline_and_parameter.py rename to src/iris_grib/formerly_tests/unit/save_rules/test_set_discipline_and_parameter.py diff --git a/src/iris_grib/tests/unit/save_rules/test_set_fixed_surfaces.py b/src/iris_grib/formerly_tests/unit/save_rules/test_set_fixed_surfaces.py similarity index 100% rename from src/iris_grib/tests/unit/save_rules/test_set_fixed_surfaces.py rename to src/iris_grib/formerly_tests/unit/save_rules/test_set_fixed_surfaces.py diff --git a/src/iris_grib/tests/unit/save_rules/test_set_time_increment.py b/src/iris_grib/formerly_tests/unit/save_rules/test_set_time_increment.py similarity index 100% rename from src/iris_grib/tests/unit/save_rules/test_set_time_increment.py rename to src/iris_grib/formerly_tests/unit/save_rules/test_set_time_increment.py diff --git a/src/iris_grib/tests/unit/save_rules/test_set_time_range.py b/src/iris_grib/formerly_tests/unit/save_rules/test_set_time_range.py similarity index 100% rename from src/iris_grib/tests/unit/save_rules/test_set_time_range.py rename to src/iris_grib/formerly_tests/unit/save_rules/test_set_time_range.py diff --git a/src/iris_grib/tests/unit/test_GribWrapper.py b/src/iris_grib/formerly_tests/unit/test_GribWrapper.py similarity index 100% rename from src/iris_grib/tests/unit/test_GribWrapper.py rename to src/iris_grib/formerly_tests/unit/test_GribWrapper.py diff --git a/src/iris_grib/tests/unit/test__load_generate.py b/src/iris_grib/formerly_tests/unit/test__load_generate.py similarity index 100% rename from src/iris_grib/tests/unit/test__load_generate.py rename to src/iris_grib/formerly_tests/unit/test__load_generate.py diff --git a/src/iris_grib/tests/unit/test_load_cubes.py b/src/iris_grib/formerly_tests/unit/test_load_cubes.py similarity index 100% rename from src/iris_grib/tests/unit/test_load_cubes.py rename to src/iris_grib/formerly_tests/unit/test_load_cubes.py diff --git a/src/iris_grib/tests/unit/test_load_pairs_from_fields.py b/src/iris_grib/formerly_tests/unit/test_load_pairs_from_fields.py similarity index 100% rename from src/iris_grib/tests/unit/test_load_pairs_from_fields.py rename to src/iris_grib/formerly_tests/unit/test_load_pairs_from_fields.py diff --git a/src/iris_grib/tests/unit/test_save_grib2.py b/src/iris_grib/formerly_tests/unit/test_save_grib2.py similarity index 100% rename from src/iris_grib/tests/unit/test_save_grib2.py rename to src/iris_grib/formerly_tests/unit/test_save_grib2.py diff --git a/src/iris_grib/tests/unit/test_save_messages.py b/src/iris_grib/formerly_tests/unit/test_save_messages.py similarity index 100% rename from src/iris_grib/tests/unit/test_save_messages.py rename to src/iris_grib/formerly_tests/unit/test_save_messages.py