From 4c68f67331028612fc8076823d23218f370076c9 Mon Sep 17 00:00:00 2001 From: jlaehne Date: Tue, 16 Jan 2024 22:25:45 +0100 Subject: [PATCH 1/9] add logo --- doc/_static/exspy-banner-dark.svg | 128 +++++++++++++++++++++++++++++ doc/_static/exspy-banner-light.svg | 128 +++++++++++++++++++++++++++++ doc/_static/exspy-logo-dark.svg | 92 +++++++++++++++++++++ doc/_static/exspy-logo-light.svg | 92 +++++++++++++++++++++ doc/_static/exspy.ico | Bin 0 -> 320411 bytes doc/_static/hyperspy.ico | Bin 67646 -> 0 bytes doc/_static/hyperspy_logo.png | Bin 18979 -> 0 bytes doc/conf.py | 12 +-- 8 files changed, 447 insertions(+), 5 deletions(-) create mode 100644 doc/_static/exspy-banner-dark.svg create mode 100644 doc/_static/exspy-banner-light.svg create mode 100644 doc/_static/exspy-logo-dark.svg create mode 100644 doc/_static/exspy-logo-light.svg create mode 100644 doc/_static/exspy.ico delete mode 100644 doc/_static/hyperspy.ico delete mode 100644 doc/_static/hyperspy_logo.png diff --git a/doc/_static/exspy-banner-dark.svg b/doc/_static/exspy-banner-dark.svg new file mode 100644 index 000000000..ba26da19b --- /dev/null +++ b/doc/_static/exspy-banner-dark.svg @@ -0,0 +1,128 @@ + + + + + + + + + eXSp + + + + + + + + + + + + + + diff --git a/doc/_static/exspy-banner-light.svg b/doc/_static/exspy-banner-light.svg new file mode 100644 index 000000000..f744f237f --- /dev/null +++ b/doc/_static/exspy-banner-light.svg @@ -0,0 +1,128 @@ + + + + + + + + + eXSp + + + + + + + + + + + + + + diff --git a/doc/_static/exspy-logo-dark.svg b/doc/_static/exspy-logo-dark.svg new file mode 100644 index 000000000..f6c2ab7e7 --- /dev/null +++ b/doc/_static/exspy-logo-dark.svg @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + diff --git a/doc/_static/exspy-logo-light.svg b/doc/_static/exspy-logo-light.svg new file mode 100644 index 000000000..1499bb4c1 --- /dev/null +++ b/doc/_static/exspy-logo-light.svg @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + diff --git a/doc/_static/exspy.ico b/doc/_static/exspy.ico new file mode 100644 index 0000000000000000000000000000000000000000..acc4ce4e9b832ccfe55a52082a35692a6cf4bf30 GIT binary patch literal 320411 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 literal 0 HcmV?d00001 diff --git a/doc/_static/hyperspy.ico b/doc/_static/hyperspy.ico deleted file mode 100644 index 6da884b1bb3fbd9ce02624012f6f533a80e865d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67646 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 K|5cUnum1xgz?Av` diff --git a/doc/_static/hyperspy_logo.png b/doc/_static/hyperspy_logo.png deleted file mode 100644 index 48659a0d35c65d02b7643e0d3d233ef5ba635a36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18979 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%0Awoz#9Y}K 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 O0000 Date: Tue, 16 Jan 2024 22:33:12 +0100 Subject: [PATCH 2/9] change capitalization, copyright --- CHANGES.rst | 4 +- CONTRIBUTING.rst | 16 +++---- README.md | 6 +-- doc/citing.rst | 8 ++-- doc/conf.py | 2 +- doc/intro.rst | 34 +++++++------- doc/user_guide/eds.rst | 16 +++---- doc/user_guide/install.rst | 46 +++++++++---------- doc/user_guide/metadata_structure.rst | 6 +-- exspy/__init__.py | 2 +- exspy/_defaults_parser.py | 2 +- exspy/components/eels_arctan.py | 2 +- exspy/components/eels_cl_edge.py | 2 +- exspy/components/eels_double_power_law.py | 2 +- exspy/components/eels_vignetting.py | 2 +- exspy/components/pes_core_line_shape.py | 2 +- exspy/components/pes_see.py | 2 +- exspy/components/pes_voigt.py | 2 +- exspy/components/volume_plasmon_drude.py | 2 +- exspy/conftest.py | 2 +- exspy/data/__init__.py | 2 +- exspy/docstrings/model.py | 2 +- exspy/misc/eds/eds.py | 2 +- exspy/misc/eds/utils.py | 2 +- exspy/misc/eels/base_gos.py | 2 +- exspy/misc/eels/eelsdb.py | 2 +- exspy/misc/eels/effective_angle.py | 2 +- .../eels/electron_inelastic_mean_free_path.py | 2 +- exspy/misc/eels/gosh_gos.py | 2 +- exspy/misc/eels/hartree_slater_gos.py | 2 +- exspy/misc/eels/hydrogenic_gos.py | 2 +- exspy/misc/eels/tools.py | 2 +- exspy/misc/material.py | 2 +- exspy/models/edsmodel.py | 2 +- exspy/models/edssemmodel.py | 2 +- exspy/models/edstemmodel.py | 2 +- exspy/models/eelsmodel.py | 2 +- exspy/signals/dielectric_function.py | 2 +- exspy/signals/eds.py | 2 +- exspy/signals/eds_sem.py | 2 +- exspy/signals/eds_tem.py | 2 +- exspy/signals/eels.py | 2 +- exspy/tests/components/test_EELSarctan.py | 2 +- exspy/tests/components/test_ceels_cl_edge.py | 2 +- .../tests/components/test_double_power_law.py | 2 +- .../components/test_pes_core_line_shape.py | 2 +- exspy/tests/components/test_pes_see.py | 2 +- exspy/tests/components/test_pes_voigt.py | 2 +- .../components/test_volume_plasmon_drude.py | 2 +- exspy/tests/data/test_data.py | 2 +- exspy/tests/data/test_eelsdb.py | 2 +- exspy/tests/drawing/test_plot_model.py | 2 +- exspy/tests/misc/test_eds.py | 2 +- exspy/tests/misc/test_eds_utils.py | 2 +- exspy/tests/misc/test_eels.py | 2 +- exspy/tests/misc/test_gos.py | 2 +- exspy/tests/misc/test_material.py | 2 +- exspy/tests/models/test_edsmodel.py | 2 +- exspy/tests/models/test_eelsmodel.py | 2 +- exspy/tests/models/test_linear_model.py | 2 +- exspy/tests/signals/test_binned.py | 2 +- exspy/tests/signals/test_edges_range.py | 2 +- exspy/tests/signals/test_eds_sem.py | 2 +- exspy/tests/signals/test_eds_tem.py | 2 +- exspy/tests/signals/test_eels.py | 2 +- .../signals/test_kramers_kronig_transform.py | 2 +- .../tests/test_non-uniform_not-implemented.py | 2 +- releasing_guide.md | 8 ++-- 68 files changed, 131 insertions(+), 131 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index c1e15bba0..46e383cd4 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -39,8 +39,8 @@ Maintenance Initiation (2023-10-28) ======================= -- exSpy was split out of the `HyperSpy repository +- eXSpy was split out of the `HyperSpy repository `_ on Oct. 28, 2023. The X-ray energy dispersive spectroscopy (EDS) and energy electron loss spectroscopy (EELS) functionalities so far developed in HyperSpy were moved to the - `exSpy repository `_. + `eXSpy repository `_. diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index faa461d2e..75a7e0bdd 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -3,7 +3,7 @@ Contributing ************ -exSpy is meant to be a community maintained project. We welcome contributions +eXSpy is meant to be a community maintained project. We welcome contributions in the form of bug reports, documentation, code, feature requests, and more. In the following we refer to some resources to help you make useful contributions. @@ -20,7 +20,7 @@ useful: Pull Requests ============= -If you want to contribute to the exSpy source code, you can send us a +If you want to contribute to the eXSpy source code, you can send us a `pull request `_. Small bug fixes or corrections to the user guide are typically a good starting point. But don't hesitate also for significant code contributions - if needed, we'll help you @@ -44,7 +44,7 @@ other member of the development team before being merged. Documentation ============= -The exSpy documentation consists of three elements: +The eXSpy documentation consists of three elements: - Docstrings following the `numpy standard `_ @@ -54,7 +54,7 @@ The exSpy documentation consists of three elements: `_ and hosted on `Read the Docs `_. The source is part of the `GitHub repository `_. -- Jupyter notebooks in the `exSpy demos repository +- Jupyter notebooks in the `eXSpy demos repository `_ on GitHub that provide tutorials and example workflows. @@ -64,7 +64,7 @@ functionality. You can contribute through pull requests to the respective reposi Code style ========== -exSpy follows `Style Guide for Python Code `_ +eXSpy follows `Style Guide for Python Code `_ with `The Black Code style `_. @@ -81,9 +81,9 @@ them: Writing tests ============= -All functionality in exSpy is tested via the `pytest `_ +All functionality in eXSpy is tested via the `pytest `_ framework. The tests reside in the ``test`` directory. Tests are short methods that call -functions in exSpy and compare resulting output values with known answers. +functions in eXSpy and compare resulting output values with known answers. Please refer to the `HyperSpy development guide `_ for further information on tests. @@ -91,7 +91,7 @@ information on tests. Releasing a new version ======================= -exSpy versioning follows `semantic versioning `_ +eXSpy versioning follows `semantic versioning `_ and the version number is therefore a three-part number: MAJOR.MINOR.PATCH. Each number will change depending on the type of changes according to the following: diff --git a/README.md b/README.md index c24ecc4e2..ab2375190 100644 --- a/README.md +++ b/README.md @@ -4,16 +4,16 @@ [![codecov](https://codecov.io/gh/hyperspy/exspy/graph/badge.svg?token=X7T3LE121Q)](https://codecov.io/gh/hyperspy/exspy) [![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) -**exSpy** is a Python package extending the functionality for multi-dimensional +**eXSpy** is a Python package extending the functionality for multi-dimensional data analysis provided by the [HyperSpy](https://hyperspy.org) library. It is aimed at helping with the analysis of X-rays Energy Dispersive Spectroscopy (EDS) and Electron Energy Loss Spectroscopy (EELS). -Go to the documentation for instructions on how to install exSpy and start an +Go to the documentation for instructions on how to install eXSpy and start an analysis: [Read the docs](https://exspy.readthedocs.io). Everyone is welcome to contribute. Please read our [contributing guidelines](https://github.com/hyperspy/exspy/blob/main/CONTRIBUTING.rst) and get started! -Development of exSpy is documented in the +Development of eXSpy is documented in the [changelog](https://github.com/hyperspy/exspy/blob/main/CHANGES.rst). diff --git a/doc/citing.rst b/doc/citing.rst index abb8985c7..b2837f723 100644 --- a/doc/citing.rst +++ b/doc/citing.rst @@ -1,10 +1,10 @@ -Citing exSpy +Citing eXSpy ************ -**exSpy** is maintained by the exSpy community -`_. +**eXSpy** is maintained by the eXSpy community +`_. -If exSpy has been significant to a project that leads to an academic +If eXSpy has been significant to a project that leads to an academic publication, please acknowledge that fact by citing it. The DOI in the badge below is the `Concept DOI `_ -- it can be used to cite the project without referring to a specific diff --git a/doc/conf.py b/doc/conf.py index ecb5b34c0..fe307856d 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -27,7 +27,7 @@ # -- Project information ----------------------------------------------------- project = "eXSpy" -copyright = "2023, exSpy Developers" +copyright = "2023, eSpy Developers" author = "eXSpy Developers" diff --git a/doc/intro.rst b/doc/intro.rst index 2ef27a63f..4d07730b5 100644 --- a/doc/intro.rst +++ b/doc/intro.rst @@ -1,6 +1,6 @@ -Welcome to exSpy's documentation! +Welcome to eXSpy's documentation! *********************************** -**exSpy** is a Python package extending the functionality for multi-dimensional +**eXSpy** is a Python package extending the functionality for multi-dimensional data analysis provided by the `HyperSpy `_ library. It is aimed at helping with the analysis of X-rays Energy Dispersive Spectroscopy (EDS) and Electron Energy Loss Spectroscopy (EELS). @@ -27,8 +27,8 @@ Learning resources :octicon:`rocket;2em;sd-text-info` Getting Started ^^^ - New to exSpy or the HyperSpy ecosystem? The getting started guide provides an - introduction on basic usage of exSpy and how to install it. + New to eXSpy or the HyperSpy ecosystem? The getting started guide provides an + introduction on basic usage of eXSpy and how to install it. .. grid-item-card:: :link: user_guide/index @@ -37,7 +37,7 @@ Learning resources :octicon:`book;2em;sd-text-info` User Guide ^^^ - The user guide provides in-depth information on key concepts of exSpy + The user guide provides in-depth information on key concepts of eXSpy and how to use it along with background information and explanations. .. grid-item-card:: @@ -48,7 +48,7 @@ Learning resources ^^^ Documentation of the metadata specification and of the Application Progamming Interface (API), - which describe how exSpy functions work and which parameters can be used. + which describe how eXSpy functions work and which parameters can be used. .. grid-item-card:: :link: auto_examples/index @@ -58,7 +58,7 @@ Learning resources ^^^ Gallery of short examples illustrating simple tasks that - can be performed with exSpy and HyperSpy. + can be performed with eXSpy and HyperSpy. .. grid-item-card:: :link: https://github.com/hyperspy/exspy-demos @@ -67,7 +67,7 @@ Learning resources ^^^ Tutorials in form of Jupyter Notebooks to learn how to process - multi-dimensional electron/X-ray spectroscopy data using exSpy. + multi-dimensional electron/X-ray spectroscopy data using eXSpy. .. grid-item-card:: :link: contributing @@ -76,17 +76,17 @@ Learning resources :octicon:`people;2em;sd-text-info` Contributing ^^^ - exSpy and the whole HyperSpy ecosystem are a community project + eXSpy and the whole HyperSpy ecosystem are a community project maintained for and by its users. There are many ways you can help! -Citing exSpy +Citing eXSpy ============ -If exSpy has been significant to a project that leads to an academic +If eXSpy has been significant to a project that leads to an academic publication, please acknowledge that fact by citing it. The DOI in the badge below is the `Concept DOI `_ of -exSpy. It can be used to cite the project without referring to a specific -version. If you are citing exSpy because you have used it to process data, +eXSpy. It can be used to cite the project without referring to a specific +version. If you are citing eXSpy because you have used it to process data, please use the DOI of the specific version that you have employed. You can find it by clicking on the DOI badge below. @@ -98,8 +98,8 @@ Citation in the scientific literature Given the increasing number of articles that cite HyperSpy and its extension packages, we do not maintain a list of -articles citing exSpy or HyperSpy. For an up to date list search for -exSpy/HyperSpy in a scientific database e.g. `Google Scholar +articles citing eXSpy or HyperSpy. For an up to date list search for +eXSpy/HyperSpy in a scientific database e.g. `Google Scholar `_. .. Warning:: @@ -110,13 +110,13 @@ exSpy/HyperSpy in a scientific database e.g. `Google Scholar License ======= -**exSpy** is free software: you can redistribute it and/or modify +**eXSpy** is free software: you can redistribute it and/or modify it under the terms of the `GNU General Public License (GPL) `_ as published by the Free Software Foundation, either version 3 of the license, or (at your option) any later version. -**exSpy** is distributed in the hope that it will be useful, +**eXSpy** is distributed in the hope that it will be useful, but **without any warranty**; without even the implied warranty of **merchantability** or **fitness for a particular purpose**. See the `GNU General Public License `_ diff --git a/doc/user_guide/eds.rst b/doc/user_guide/eds.rst index eee7ce488..d87c2b97a 100644 --- a/doc/user_guide/eds.rst +++ b/doc/user_guide/eds.rst @@ -149,13 +149,13 @@ will be set by default. These default values can be changed in the .. code-block:: python - >>> exspy.preferences.EDS.eds_detector_elevation = 37 + >>> eXSpy.preferences.EDS.eds_detector_elevation = 37 or through the GUI: .. code-block:: python - >>> exspy.preferences.gui() + >>> eXSpy.preferences.gui() .. figure:: images/EDS_preferences_gui.png :align: center @@ -222,7 +222,7 @@ The description of the sample is also stored in the .. code-block:: python - >>> s = exspy.data.EDS_TEM_FePt_nanoparticles() + >>> s = eXSpy.data.EDS_TEM_FePt_nanoparticles() >>> s.add_lines() >>> s.metadata.Sample.thickness = 100 >>> s.metadata.Sample @@ -247,7 +247,7 @@ abbreviations are accepted: .. code-block:: python - >>> s = exspy.data.EDS_TEM_FePt_nanoparticles() + >>> s = eXSpy.data.EDS_TEM_FePt_nanoparticles() >>> s.set_elements(['Fe', 'Pt']) >>> s.add_elements(['Cu']) >>> s.metadata.Sample @@ -264,7 +264,7 @@ Several lines per element can be defined at once. .. code-block:: python - >>> s = exspy.data.EDS_TEM_FePt_nanoparticles() + >>> s = eXSpy.data.EDS_TEM_FePt_nanoparticles() >>> s.set_elements(['Fe', 'Pt']) >>> s.set_lines(['Fe_Ka', 'Pt_La']) >>> s.add_lines(['Fe_La']) @@ -476,7 +476,7 @@ Finally, the windows of integration can be visualised using .. code-block:: python - >>> s = exspy.data.EDS_TEM_FePt_nanoparticles().isig[5.:13.] + >>> s = eXSpy.data.EDS_TEM_FePt_nanoparticles().isig[5.:13.] >>> s.add_lines() >>> s.plot(integration_windows='auto') @@ -504,7 +504,7 @@ using :py:meth:`~.signals.EDSSpectrum.plot`: .. code-block:: python - >>> s = exspy.data.EDS_TEM_FePt_nanoparticles().isig[5.:13.] + >>> s = eXSpy.data.EDS_TEM_FePt_nanoparticles().isig[5.:13.] >>> s.add_lines() >>> bw = s.estimate_background_windows(line_width=[5.0, 2.0]) >>> s.plot(background_windows=bw) @@ -700,7 +700,7 @@ out as follows: .. code-block:: python - >>> s = exspy.data.EDS_TEM_FePt_nanoparticles() + >>> s = eXSpy.data.EDS_TEM_FePt_nanoparticles() >>> s.add_lines() >>> kfactors = [1.450226, 5.075602] #For Fe Ka and Pt La >>> bw = s.estimate_background_windows(line_width=[5.0, 2.0]) diff --git a/doc/user_guide/install.rst b/doc/user_guide/install.rst index bd595ae8c..c3b877703 100644 --- a/doc/user_guide/install.rst +++ b/doc/user_guide/install.rst @@ -2,23 +2,23 @@ .. _install-label: .. warning:: - These installation instructions are pending the release of the first version of exSpy. + These installation instructions are pending the release of the first version of eXSpy. In the meantime, you will need to install the development version, see instructions below. Installation ************ -To install exSpy, you have the following options (independent of the operating system you use): +To install eXSpy, you have the following options (independent of the operating system you use): -1. exSpy is included in the `HyperSpy Bundle `_, +1. eXSpy is included in the `HyperSpy Bundle `_, a standalone program that includes a python distribution and all relevant libraries (recommended if you do not use *python* for anything else). 2. :ref:`conda` (recommended if you are also working with other *python* packages). 3. :ref:`pip`. -4. Installing the development version from `GitHub `_. +4. Installing the development version from `GitHub `_. Refer to the appropriate section in the :external+hyperspy:ref:`HyperSpy user guide - ` (replacing ``hyperspy`` by ``exSpy``). + ` (replacing ``hyperspy`` by ``eXSpy``). .. _conda: @@ -26,15 +26,15 @@ To install exSpy, you have the following options (independent of the operating s Installation using conda ======================== -Follow these 3 steps to install exSpy using **conda** and start using it. +Follow these 3 steps to install eXSpy using **conda** and start using it. 1. Creating a conda environment ------------------------------- -exSpy requires Python 3 and ``conda`` -- we suggest using the Python 3 version +eXSpy requires Python 3 and ``conda`` -- we suggest using the Python 3 version of `Miniforge `_. -We recommend creating a new environment for the exSpy package (or installing +We recommend creating a new environment for the eXSpy package (or installing it in the :external+hyperspy:ref:`HyperSpy ` environment, if you have one already). To create a new environment: @@ -43,18 +43,18 @@ environment, if you have one already). To create a new environment: .. code-block:: bash - (base) conda create -n exspy -y + (base) conda create -n eXSpy -y 2. Installing the package in the new environment ------------------------------------------------ -Now activate the exSpy environment and install the package from ``conda-forge``: +Now activate the eXSpy environment and install the package from ``conda-forge``: .. code-block:: bash - (base) conda activate exspy - (exspy) conda install -c conda-forge exspy -y + (base) conda activate eXSpy + (eXSpy) conda install -c conda-forge eXSpy -y Required dependencies will be installed automatically. @@ -69,16 +69,16 @@ Installation is completed! To start using it, check the next section. 3. Getting Started ------------------ -To get started using exSpy, especially if you are unfamiliar with Python, we +To get started using eXSpy, especially if you are unfamiliar with Python, we recommend using `Jupyter notebooks `_. Having installed -exSpy as above, a Jupyter notebook can be installed and opened using the following commands +eXSpy as above, a Jupyter notebook can be installed and opened using the following commands entered into an anaconda prompt (from scratch): .. code-block:: bash - (base) conda activate exspy - (exspy) conda install -c conda-forge jupyterlab -y - (exspy) jupyter lab + (base) conda activate eXSpy + (eXSpy) conda install -c conda-forge jupyterlab -y + (eXSpy) jupyter lab .. _pip: @@ -86,12 +86,12 @@ entered into an anaconda prompt (from scratch): Installation using pip ====================== -Alternatively, you can also find exSpy in the `Python Package Index (PyPI) `_ +Alternatively, you can also find eXSpy in the `Python Package Index (PyPI) `_ and install it using (requires ``pip``): .. code-block:: bash - pip install exspy + pip install eXSpy Required dependencies will be installed automatically. @@ -103,15 +103,15 @@ Using **conda**: .. code-block:: bash - conda update exspy -c conda-forge + conda update eXSpy -c conda-forge Using **pip**: .. code-block:: bash - pip install exspy --upgrade + pip install eXSpy --upgrade .. Note:: - If you want to be notified about new releases, please *Watch (Releases only)* the `exSpy repository - on GitHub `_ (requires a GitHub account). + If you want to be notified about new releases, please *Watch (Releases only)* the `eXSpy repository + on GitHub `_ (requires a GitHub account). diff --git a/doc/user_guide/metadata_structure.rst b/doc/user_guide/metadata_structure.rst index f82115a38..cdbaa1a7d 100644 --- a/doc/user_guide/metadata_structure.rst +++ b/doc/user_guide/metadata_structure.rst @@ -1,9 +1,9 @@ .. _metadata_structure: -exSpy Metadata Structure +eXSpy Metadata Structure ************************ -**exSpy** extends the :external+hyperspy:ref:`HyperSpy metadata structure +**eXSpy** extends the :external+hyperspy:ref:`HyperSpy metadata structure ` with conventions for metadata specific to its signal types. Refer to the :external+hyperspy:ref:`HyperSpy metadata documentation ` @@ -125,7 +125,7 @@ Signal signal_type type: string - String that describes the type of signal. Currently, the only exSpy + String that describes the type of signal. Currently, the only eXSpy specific signal class is ``EELS``, ``EDS``, ``EDS_SEM`` or ``EDS_TEM``. See also :external+hyperspy:ref:`HyperSpy-Metadata-Sample `. diff --git a/exspy/__init__.py b/exspy/__init__.py index f3cf1bb7c..3111bb8e9 100644 --- a/exspy/__init__.py +++ b/exspy/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/_defaults_parser.py b/exspy/_defaults_parser.py index 41b2a7b22..dc918c7bd 100644 --- a/exspy/_defaults_parser.py +++ b/exspy/_defaults_parser.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/components/eels_arctan.py b/exspy/components/eels_arctan.py index 333d4edea..0fa18c494 100644 --- a/exspy/components/eels_arctan.py +++ b/exspy/components/eels_arctan.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/components/eels_cl_edge.py b/exspy/components/eels_cl_edge.py index 2d82b788d..9dea897dc 100644 --- a/exspy/components/eels_cl_edge.py +++ b/exspy/components/eels_cl_edge.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/components/eels_double_power_law.py b/exspy/components/eels_double_power_law.py index 9d44ca7b7..bdd68dbc9 100644 --- a/exspy/components/eels_double_power_law.py +++ b/exspy/components/eels_double_power_law.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/components/eels_vignetting.py b/exspy/components/eels_vignetting.py index b5b7c9cd3..1fdcb71dc 100644 --- a/exspy/components/eels_vignetting.py +++ b/exspy/components/eels_vignetting.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/components/pes_core_line_shape.py b/exspy/components/pes_core_line_shape.py index 4f4b62e18..a0966ba2d 100644 --- a/exspy/components/pes_core_line_shape.py +++ b/exspy/components/pes_core_line_shape.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The HyperSpy developers +# Copyright 2007-2024 The HyperSpy developers # # This file is part of HyperSpy. # diff --git a/exspy/components/pes_see.py b/exspy/components/pes_see.py index 3e65f48db..806d8a07c 100644 --- a/exspy/components/pes_see.py +++ b/exspy/components/pes_see.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The HyperSpy developers +# Copyright 2007-2024 The HyperSpy developers # # This file is part of HyperSpy. # diff --git a/exspy/components/pes_voigt.py b/exspy/components/pes_voigt.py index de17fe2e2..2ec27030e 100644 --- a/exspy/components/pes_voigt.py +++ b/exspy/components/pes_voigt.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The HyperSpy developers +# Copyright 2007-2024 The HyperSpy developers # # This file is part of HyperSpy. # diff --git a/exspy/components/volume_plasmon_drude.py b/exspy/components/volume_plasmon_drude.py index 9d3b60def..bbe040f51 100644 --- a/exspy/components/volume_plasmon_drude.py +++ b/exspy/components/volume_plasmon_drude.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The HyperSpy developers +# Copyright 2007-2024 The HyperSpy developers # # This file is part of HyperSpy. # diff --git a/exspy/conftest.py b/exspy/conftest.py index 12e1ae351..df247a4f8 100644 --- a/exspy/conftest.py +++ b/exspy/conftest.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/data/__init__.py b/exspy/data/__init__.py index da919842d..61a1c5c7a 100644 --- a/exspy/data/__init__.py +++ b/exspy/data/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/docstrings/model.py b/exspy/docstrings/model.py index 2a90ae712..654e016c6 100644 --- a/exspy/docstrings/model.py +++ b/exspy/docstrings/model.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/misc/eds/eds.py b/exspy/misc/eds/eds.py index cf4db0b11..23aeff233 100644 --- a/exspy/misc/eds/eds.py +++ b/exspy/misc/eds/eds.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/misc/eds/utils.py b/exspy/misc/eds/utils.py index 559ea7818..1ce9899f6 100644 --- a/exspy/misc/eds/utils.py +++ b/exspy/misc/eds/utils.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/misc/eels/base_gos.py b/exspy/misc/eels/base_gos.py index 1c6471b1b..91b762b55 100644 --- a/exspy/misc/eels/base_gos.py +++ b/exspy/misc/eels/base_gos.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/misc/eels/eelsdb.py b/exspy/misc/eels/eelsdb.py index e4c003efb..8f4a14b8e 100644 --- a/exspy/misc/eels/eelsdb.py +++ b/exspy/misc/eels/eelsdb.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/misc/eels/effective_angle.py b/exspy/misc/eels/effective_angle.py index 94fcde51d..002dc7f53 100644 --- a/exspy/misc/eels/effective_angle.py +++ b/exspy/misc/eels/effective_angle.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/misc/eels/electron_inelastic_mean_free_path.py b/exspy/misc/eels/electron_inelastic_mean_free_path.py index 003e65a1c..9f00b5250 100644 --- a/exspy/misc/eels/electron_inelastic_mean_free_path.py +++ b/exspy/misc/eels/electron_inelastic_mean_free_path.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/misc/eels/gosh_gos.py b/exspy/misc/eels/gosh_gos.py index dd0a12380..73bcf79ba 100644 --- a/exspy/misc/eels/gosh_gos.py +++ b/exspy/misc/eels/gosh_gos.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/misc/eels/hartree_slater_gos.py b/exspy/misc/eels/hartree_slater_gos.py index bfed4be03..a4126650b 100644 --- a/exspy/misc/eels/hartree_slater_gos.py +++ b/exspy/misc/eels/hartree_slater_gos.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/misc/eels/hydrogenic_gos.py b/exspy/misc/eels/hydrogenic_gos.py index 3ea56ca7d..f045eb080 100644 --- a/exspy/misc/eels/hydrogenic_gos.py +++ b/exspy/misc/eels/hydrogenic_gos.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/misc/eels/tools.py b/exspy/misc/eels/tools.py index e7ec11b88..c210e0496 100644 --- a/exspy/misc/eels/tools.py +++ b/exspy/misc/eels/tools.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/misc/material.py b/exspy/misc/material.py index de068afee..77cc655fe 100644 --- a/exspy/misc/material.py +++ b/exspy/misc/material.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/models/edsmodel.py b/exspy/models/edsmodel.py index e2657ba7e..627ab4bc9 100644 --- a/exspy/models/edsmodel.py +++ b/exspy/models/edsmodel.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/models/edssemmodel.py b/exspy/models/edssemmodel.py index 3d720bb50..e02cb0b99 100644 --- a/exspy/models/edssemmodel.py +++ b/exspy/models/edssemmodel.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/models/edstemmodel.py b/exspy/models/edstemmodel.py index 1e07c2a79..c1da3d8de 100644 --- a/exspy/models/edstemmodel.py +++ b/exspy/models/edstemmodel.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/models/eelsmodel.py b/exspy/models/eelsmodel.py index 2b413ace6..d6d4814ec 100644 --- a/exspy/models/eelsmodel.py +++ b/exspy/models/eelsmodel.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/signals/dielectric_function.py b/exspy/signals/dielectric_function.py index b6bdf2699..3c950a116 100644 --- a/exspy/signals/dielectric_function.py +++ b/exspy/signals/dielectric_function.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/signals/eds.py b/exspy/signals/eds.py index da088ef6f..232f16e22 100644 --- a/exspy/signals/eds.py +++ b/exspy/signals/eds.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/signals/eds_sem.py b/exspy/signals/eds_sem.py index 59714d284..ea5859e2a 100644 --- a/exspy/signals/eds_sem.py +++ b/exspy/signals/eds_sem.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/signals/eds_tem.py b/exspy/signals/eds_tem.py index e5639469b..24809d9b7 100755 --- a/exspy/signals/eds_tem.py +++ b/exspy/signals/eds_tem.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/signals/eels.py b/exspy/signals/eels.py index 036cce7c9..08c8040dd 100644 --- a/exspy/signals/eels.py +++ b/exspy/signals/eels.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/tests/components/test_EELSarctan.py b/exspy/tests/components/test_EELSarctan.py index 55d7d20b2..afcb71dc1 100644 --- a/exspy/tests/components/test_EELSarctan.py +++ b/exspy/tests/components/test_EELSarctan.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/tests/components/test_ceels_cl_edge.py b/exspy/tests/components/test_ceels_cl_edge.py index 5dbb1aec5..31a28e856 100644 --- a/exspy/tests/components/test_ceels_cl_edge.py +++ b/exspy/tests/components/test_ceels_cl_edge.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/tests/components/test_double_power_law.py b/exspy/tests/components/test_double_power_law.py index bde908c3d..6bad2097a 100644 --- a/exspy/tests/components/test_double_power_law.py +++ b/exspy/tests/components/test_double_power_law.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/tests/components/test_pes_core_line_shape.py b/exspy/tests/components/test_pes_core_line_shape.py index 914f1d3c8..f25089f6e 100644 --- a/exspy/tests/components/test_pes_core_line_shape.py +++ b/exspy/tests/components/test_pes_core_line_shape.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The HyperSpy developers +# Copyright 2007-2024 The HyperSpy developers # # This file is part of HyperSpy. # diff --git a/exspy/tests/components/test_pes_see.py b/exspy/tests/components/test_pes_see.py index b3506bb1f..43d95d636 100644 --- a/exspy/tests/components/test_pes_see.py +++ b/exspy/tests/components/test_pes_see.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The HyperSpy developers +# Copyright 2007-2024 The HyperSpy developers # # This file is part of HyperSpy. # diff --git a/exspy/tests/components/test_pes_voigt.py b/exspy/tests/components/test_pes_voigt.py index de3025182..ad60e8c2d 100644 --- a/exspy/tests/components/test_pes_voigt.py +++ b/exspy/tests/components/test_pes_voigt.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The HyperSpy developers +# Copyright 2007-2024 The HyperSpy developers # # This file is part of HyperSpy. # diff --git a/exspy/tests/components/test_volume_plasmon_drude.py b/exspy/tests/components/test_volume_plasmon_drude.py index 506bdb747..e97ff87bc 100644 --- a/exspy/tests/components/test_volume_plasmon_drude.py +++ b/exspy/tests/components/test_volume_plasmon_drude.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The HyperSpy developers +# Copyright 2007-2024 The HyperSpy developers # # This file is part of HyperSpy. # diff --git a/exspy/tests/data/test_data.py b/exspy/tests/data/test_data.py index b5e690a02..56da05545 100644 --- a/exspy/tests/data/test_data.py +++ b/exspy/tests/data/test_data.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/tests/data/test_eelsdb.py b/exspy/tests/data/test_eelsdb.py index f8d1f5040..709849698 100644 --- a/exspy/tests/data/test_eelsdb.py +++ b/exspy/tests/data/test_eelsdb.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/tests/drawing/test_plot_model.py b/exspy/tests/drawing/test_plot_model.py index b76a463f4..16c04734e 100644 --- a/exspy/tests/drawing/test_plot_model.py +++ b/exspy/tests/drawing/test_plot_model.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The HyperSpy developers +# Copyright 2007-2024 The HyperSpy developers # # This file is part of HyperSpy. # diff --git a/exspy/tests/misc/test_eds.py b/exspy/tests/misc/test_eds.py index 51a170b4d..c68b5a3e6 100644 --- a/exspy/tests/misc/test_eds.py +++ b/exspy/tests/misc/test_eds.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/tests/misc/test_eds_utils.py b/exspy/tests/misc/test_eds_utils.py index 02eec2ff9..3c6e9fb8b 100644 --- a/exspy/tests/misc/test_eds_utils.py +++ b/exspy/tests/misc/test_eds_utils.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/tests/misc/test_eels.py b/exspy/tests/misc/test_eels.py index 7aebc2d00..21a3a843f 100644 --- a/exspy/tests/misc/test_eels.py +++ b/exspy/tests/misc/test_eels.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/tests/misc/test_gos.py b/exspy/tests/misc/test_gos.py index 3e53fcdf3..6d84b24f3 100644 --- a/exspy/tests/misc/test_gos.py +++ b/exspy/tests/misc/test_gos.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/tests/misc/test_material.py b/exspy/tests/misc/test_material.py index d9d1b7173..194b473b1 100644 --- a/exspy/tests/misc/test_material.py +++ b/exspy/tests/misc/test_material.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/tests/models/test_edsmodel.py b/exspy/tests/models/test_edsmodel.py index ea711246d..20274fa7a 100644 --- a/exspy/tests/models/test_edsmodel.py +++ b/exspy/tests/models/test_edsmodel.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/tests/models/test_eelsmodel.py b/exspy/tests/models/test_eelsmodel.py index 8ebbb2681..93dbe6ab7 100644 --- a/exspy/tests/models/test_eelsmodel.py +++ b/exspy/tests/models/test_eelsmodel.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/tests/models/test_linear_model.py b/exspy/tests/models/test_linear_model.py index e7e75f14c..e690fa711 100644 --- a/exspy/tests/models/test_linear_model.py +++ b/exspy/tests/models/test_linear_model.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/tests/signals/test_binned.py b/exspy/tests/signals/test_binned.py index 6d597c8b5..be2ff2581 100644 --- a/exspy/tests/signals/test_binned.py +++ b/exspy/tests/signals/test_binned.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/tests/signals/test_edges_range.py b/exspy/tests/signals/test_edges_range.py index 6c89032f1..8204af2be 100644 --- a/exspy/tests/signals/test_edges_range.py +++ b/exspy/tests/signals/test_edges_range.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/tests/signals/test_eds_sem.py b/exspy/tests/signals/test_eds_sem.py index c177c72e8..2be9fe7f7 100644 --- a/exspy/tests/signals/test_eds_sem.py +++ b/exspy/tests/signals/test_eds_sem.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/tests/signals/test_eds_tem.py b/exspy/tests/signals/test_eds_tem.py index 50f92348f..a5569ab25 100644 --- a/exspy/tests/signals/test_eds_tem.py +++ b/exspy/tests/signals/test_eds_tem.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/tests/signals/test_eels.py b/exspy/tests/signals/test_eels.py index 98f54c709..7fc2610b0 100644 --- a/exspy/tests/signals/test_eels.py +++ b/exspy/tests/signals/test_eels.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/tests/signals/test_kramers_kronig_transform.py b/exspy/tests/signals/test_kramers_kronig_transform.py index 07c13523e..e83aaf6a7 100644 --- a/exspy/tests/signals/test_kramers_kronig_transform.py +++ b/exspy/tests/signals/test_kramers_kronig_transform.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/exspy/tests/test_non-uniform_not-implemented.py b/exspy/tests/test_non-uniform_not-implemented.py index e6b7f6a22..f2796bf44 100644 --- a/exspy/tests/test_non-uniform_not-implemented.py +++ b/exspy/tests/test_non-uniform_not-implemented.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2023 The exSpy developers +# Copyright 2007-2024 The exSpy developers # # This file is part of exSpy. # diff --git a/releasing_guide.md b/releasing_guide.md index 2524ea949..5eb46383f 100644 --- a/releasing_guide.md +++ b/releasing_guide.md @@ -1,6 +1,6 @@ -# Releasing a new exSpy version +# Releasing a new eXSpy version -To publish a new exSpy release do the following steps: +To publish a new eXSpy release do the following steps: ## Preparation @@ -14,10 +14,10 @@ To publish a new exSpy release do the following steps: ## Tag and Release -- Create a tag e.g. `git tag -a v0.1.1 -m "exSpy version 0.1.1"` +- Create a tag e.g. `git tag -a v0.1.1 -m "eXSpy version 0.1.1"` - Push tag to user fork for a test run `git push origin v0.1.1`. Will run the release workflow without uploading to PyPi -- Push tag to exSpy repository to trigger release `git push upstream v0.1.1` +- Push tag to eXSpy repository to trigger release `git push upstream v0.1.1` (this triggers the GitHub action to create the sdist and wheel and upload to PyPi automatically). :warning: this is a point of no return :warning: From b72e3c832a9efd782b63353fd656532fbfa05dad Mon Sep 17 00:00:00 2001 From: jlaehne Date: Tue, 16 Jan 2024 22:33:52 +0100 Subject: [PATCH 3/9] additional capitalization --- exspy/__init__.py | 10 +++++----- exspy/_defaults_parser.py | 10 +++++----- exspy/components/eels_arctan.py | 10 +++++----- exspy/components/eels_cl_edge.py | 18 +++++++++--------- exspy/components/eels_double_power_law.py | 10 +++++----- exspy/components/eels_vignetting.py | 10 +++++----- exspy/conftest.py | 10 +++++----- exspy/data/__init__.py | 10 +++++----- exspy/docstrings/model.py | 10 +++++----- exspy/misc/eds/eds.py | 10 +++++----- exspy/misc/eds/utils.py | 10 +++++----- exspy/misc/eels/base_gos.py | 10 +++++----- exspy/misc/eels/eelsdb.py | 12 ++++++------ exspy/misc/eels/effective_angle.py | 10 +++++----- .../eels/electron_inelastic_mean_free_path.py | 10 +++++----- exspy/misc/eels/gosh_gos.py | 10 +++++----- exspy/misc/eels/hartree_slater_gos.py | 10 +++++----- exspy/misc/eels/hydrogenic_gos.py | 10 +++++----- exspy/misc/eels/tools.py | 12 ++++++------ exspy/misc/elements.py | 2 +- exspy/misc/material.py | 10 +++++----- exspy/models/edsmodel.py | 10 +++++----- exspy/models/edssemmodel.py | 10 +++++----- exspy/models/edstemmodel.py | 10 +++++----- exspy/models/eelsmodel.py | 10 +++++----- exspy/signals/__init__.py | 2 +- exspy/signals/dielectric_function.py | 10 +++++----- exspy/signals/eds.py | 10 +++++----- exspy/signals/eds_sem.py | 10 +++++----- exspy/signals/eds_tem.py | 10 +++++----- exspy/signals/eels.py | 10 +++++----- exspy/tests/components/test_EELSarctan.py | 10 +++++----- exspy/tests/components/test_ceels_cl_edge.py | 10 +++++----- .../tests/components/test_double_power_law.py | 10 +++++----- exspy/tests/data/test_data.py | 10 +++++----- exspy/tests/data/test_eelsdb.py | 10 +++++----- exspy/tests/misc/test_eds.py | 10 +++++----- exspy/tests/misc/test_eds_utils.py | 10 +++++----- exspy/tests/misc/test_eels.py | 10 +++++----- exspy/tests/misc/test_gos.py | 10 +++++----- exspy/tests/misc/test_material.py | 10 +++++----- exspy/tests/models/test_edsmodel.py | 10 +++++----- exspy/tests/models/test_eelsmodel.py | 10 +++++----- exspy/tests/models/test_linear_model.py | 10 +++++----- exspy/tests/signals/test_binned.py | 10 +++++----- exspy/tests/signals/test_edges_range.py | 10 +++++----- exspy/tests/signals/test_eds_sem.py | 10 +++++----- exspy/tests/signals/test_eds_tem.py | 10 +++++----- exspy/tests/signals/test_eels.py | 10 +++++----- .../signals/test_kramers_kronig_transform.py | 10 +++++----- .../tests/test_non-uniform_not-implemented.py | 10 +++++----- 51 files changed, 253 insertions(+), 253 deletions(-) diff --git a/exspy/__init__.py b/exspy/__init__.py index 3111bb8e9..121b0ee7e 100644 --- a/exspy/__init__.py +++ b/exspy/__init__.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . from importlib.metadata import version from pathlib import Path diff --git a/exspy/_defaults_parser.py b/exspy/_defaults_parser.py index dc918c7bd..07f0db3d0 100644 --- a/exspy/_defaults_parser.py +++ b/exspy/_defaults_parser.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import configparser import logging diff --git a/exspy/components/eels_arctan.py b/exspy/components/eels_arctan.py index 0fa18c494..99b190f5a 100644 --- a/exspy/components/eels_arctan.py +++ b/exspy/components/eels_arctan.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . from hyperspy._components.expression import Expression diff --git a/exspy/components/eels_cl_edge.py b/exspy/components/eels_cl_edge.py index 9dea897dc..0e414776f 100644 --- a/exspy/components/eels_cl_edge.py +++ b/exspy/components/eels_cl_edge.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import functools @@ -78,11 +78,11 @@ class EELSCLEdge(Component): https://zenodo.org/record/6599071 while information on the GOSH format are available at: https://gitlab.com/gguzzina/gosh . - exSpy also supports Peter Rez's Hartree Slater cross sections + eXSpy also supports Peter Rez's Hartree Slater cross sections parametrised as distributed by Gatan in their Digital Micrograph (DM) - software. If Digital Micrograph is installed in the system exSpy in the - standard location exSpy should find the path to the HS GOS folder. - Otherwise, the location of the folder can be defined in exSpy + software. If Digital Micrograph is installed in the system eXSpy in the + standard location eXSpy should find the path to the HS GOS folder. + Otherwise, the location of the folder can be defined in eXSpy preferences, which can be done through ~:func:`~.api.preferences.gui` or the :attr:`~api.preferences.EELS.eels_gos_files_path` variable. diff --git a/exspy/components/eels_double_power_law.py b/exspy/components/eels_double_power_law.py index bdd68dbc9..dd8cb5336 100644 --- a/exspy/components/eels_double_power_law.py +++ b/exspy/components/eels_double_power_law.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import numpy as np diff --git a/exspy/components/eels_vignetting.py b/exspy/components/eels_vignetting.py index 1fdcb71dc..84fb4de0c 100644 --- a/exspy/components/eels_vignetting.py +++ b/exspy/components/eels_vignetting.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import numpy as np diff --git a/exspy/conftest.py b/exspy/conftest.py index df247a4f8..175717ab6 100644 --- a/exspy/conftest.py +++ b/exspy/conftest.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . try: # Set traits toolkit to work in a headless system diff --git a/exspy/data/__init__.py b/exspy/data/__init__.py index 61a1c5c7a..5e1ee1089 100644 --- a/exspy/data/__init__.py +++ b/exspy/data/__init__.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import functools from pathlib import Path diff --git a/exspy/docstrings/model.py b/exspy/docstrings/model.py index 654e016c6..847adbe34 100644 --- a/exspy/docstrings/model.py +++ b/exspy/docstrings/model.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . """Common docstring snippets for model. diff --git a/exspy/misc/eds/eds.py b/exspy/misc/eds/eds.py index 23aeff233..5b0e0e764 100644 --- a/exspy/misc/eds/eds.py +++ b/exspy/misc/eds/eds.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . from exspy.misc.eds.utils import ( diff --git a/exspy/misc/eds/utils.py b/exspy/misc/eds/utils.py index 1ce9899f6..2d023f417 100644 --- a/exspy/misc/eds/utils.py +++ b/exspy/misc/eds/utils.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import numpy as np diff --git a/exspy/misc/eels/base_gos.py b/exspy/misc/eels/base_gos.py index 91b762b55..49f045d00 100644 --- a/exspy/misc/eels/base_gos.py +++ b/exspy/misc/eels/base_gos.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import math diff --git a/exspy/misc/eels/eelsdb.py b/exspy/misc/eels/eelsdb.py index 8f4a14b8e..ce0cb92e5 100644 --- a/exspy/misc/eels/eelsdb.py +++ b/exspy/misc/eels/eelsdb.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . """This module provides tools to interact with The EELS Database.""" @@ -255,7 +255,7 @@ def eelsdb( if "message" in jsons: # Invalid query, EELSdb raises error. raise IOError( - "Please report the following error to the exSpy developers: " + "Please report the following error to the eXSpy developers: " f"{jsons['message']}." ) diff --git a/exspy/misc/eels/effective_angle.py b/exspy/misc/eels/effective_angle.py index 002dc7f53..dabbf1944 100644 --- a/exspy/misc/eels/effective_angle.py +++ b/exspy/misc/eels/effective_angle.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import math diff --git a/exspy/misc/eels/electron_inelastic_mean_free_path.py b/exspy/misc/eels/electron_inelastic_mean_free_path.py index 9f00b5250..d9fa9b231 100644 --- a/exspy/misc/eels/electron_inelastic_mean_free_path.py +++ b/exspy/misc/eels/electron_inelastic_mean_free_path.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import numpy as np diff --git a/exspy/misc/eels/gosh_gos.py b/exspy/misc/eels/gosh_gos.py index 73bcf79ba..122d2e794 100644 --- a/exspy/misc/eels/gosh_gos.py +++ b/exspy/misc/eels/gosh_gos.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import logging diff --git a/exspy/misc/eels/hartree_slater_gos.py b/exspy/misc/eels/hartree_slater_gos.py index a4126650b..c622416fe 100644 --- a/exspy/misc/eels/hartree_slater_gos.py +++ b/exspy/misc/eels/hartree_slater_gos.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import logging from pathlib import Path diff --git a/exspy/misc/eels/hydrogenic_gos.py b/exspy/misc/eels/hydrogenic_gos.py index f045eb080..1980eea87 100644 --- a/exspy/misc/eels/hydrogenic_gos.py +++ b/exspy/misc/eels/hydrogenic_gos.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import math import logging diff --git a/exspy/misc/eels/tools.py b/exspy/misc/eels/tools.py index c210e0496..d487b7bee 100644 --- a/exspy/misc/eels/tools.py +++ b/exspy/misc/eels/tools.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import math import numbers @@ -207,7 +207,7 @@ def estimate_variance_parameters( noisy_signal.metadata.set_item( "Signal.Noise_properties.Variance_linear_model." + "parameters_estimation_method", - "exSpy", + "eXSpy", ) if return_results is True: diff --git a/exspy/misc/elements.py b/exspy/misc/elements.py index 81a46be28..a8f3cd153 100644 --- a/exspy/misc/elements.py +++ b/exspy/misc/elements.py @@ -4338,7 +4338,7 @@ elements_db = DictionaryTreeBrowser(elements) -# read dictionary of atomic numbers from exSpy, and add the elements that +# read dictionary of atomic numbers from eXSpy, and add the elements that # do not currently exist in the database (in case anyone is doing EDS on # Ununpentium...) atomic_number2name = dict((p.General_properties.Z, e) diff --git a/exspy/misc/material.py b/exspy/misc/material.py index 77cc655fe..071b458a7 100644 --- a/exspy/misc/material.py +++ b/exspy/misc/material.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . from collections.abc import Iterable import numpy as np diff --git a/exspy/models/edsmodel.py b/exspy/models/edsmodel.py index 627ab4bc9..f2c08ff28 100644 --- a/exspy/models/edsmodel.py +++ b/exspy/models/edsmodel.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . from __future__ import division diff --git a/exspy/models/edssemmodel.py b/exspy/models/edssemmodel.py index e02cb0b99..f05a7ec24 100644 --- a/exspy/models/edssemmodel.py +++ b/exspy/models/edssemmodel.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . from exspy.models.edsmodel import EDSModel diff --git a/exspy/models/edstemmodel.py b/exspy/models/edstemmodel.py index c1da3d8de..d64b69e63 100644 --- a/exspy/models/edstemmodel.py +++ b/exspy/models/edstemmodel.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . from exspy.models.edsmodel import EDSModel diff --git a/exspy/models/eelsmodel.py b/exspy/models/eelsmodel.py index d6d4814ec..b6b6a8d8d 100644 --- a/exspy/models/eelsmodel.py +++ b/exspy/models/eelsmodel.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import copy import logging diff --git a/exspy/signals/__init__.py b/exspy/signals/__init__.py index cf60e926f..6b0d65889 100644 --- a/exspy/signals/__init__.py +++ b/exspy/signals/__init__.py @@ -1,5 +1,5 @@ """ -Modules containing the exSpy signals and their lazy counterparts. +Modules containing the eXSpy signals and their lazy counterparts. EELSSpectrum For electron energy-loss data with ``signal_dimension`` equal one, i.e. diff --git a/exspy/signals/dielectric_function.py b/exspy/signals/dielectric_function.py index 3c950a116..eb05c45ad 100644 --- a/exspy/signals/dielectric_function.py +++ b/exspy/signals/dielectric_function.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import numpy as np from scipy import constants diff --git a/exspy/signals/eds.py b/exspy/signals/eds.py index 232f16e22..f890be523 100644 --- a/exspy/signals/eds.py +++ b/exspy/signals/eds.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import itertools import logging diff --git a/exspy/signals/eds_sem.py b/exspy/signals/eds_sem.py index ea5859e2a..15d7e85c8 100644 --- a/exspy/signals/eds_sem.py +++ b/exspy/signals/eds_sem.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import logging diff --git a/exspy/signals/eds_tem.py b/exspy/signals/eds_tem.py index 24809d9b7..dd2acaa80 100755 --- a/exspy/signals/eds_tem.py +++ b/exspy/signals/eds_tem.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import warnings diff --git a/exspy/signals/eels.py b/exspy/signals/eels.py index 08c8040dd..c70dbdd72 100644 --- a/exspy/signals/eels.py +++ b/exspy/signals/eels.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import numbers import logging diff --git a/exspy/tests/components/test_EELSarctan.py b/exspy/tests/components/test_EELSarctan.py index afcb71dc1..86f7b9bde 100644 --- a/exspy/tests/components/test_EELSarctan.py +++ b/exspy/tests/components/test_EELSarctan.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import numpy as np diff --git a/exspy/tests/components/test_ceels_cl_edge.py b/exspy/tests/components/test_ceels_cl_edge.py index 31a28e856..dccad8723 100644 --- a/exspy/tests/components/test_ceels_cl_edge.py +++ b/exspy/tests/components/test_ceels_cl_edge.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . def test_eels_cl_edge(): diff --git a/exspy/tests/components/test_double_power_law.py b/exspy/tests/components/test_double_power_law.py index 6bad2097a..58c4b0b4d 100644 --- a/exspy/tests/components/test_double_power_law.py +++ b/exspy/tests/components/test_double_power_law.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import numpy as np import pytest diff --git a/exspy/tests/data/test_data.py b/exspy/tests/data/test_data.py index 56da05545..724bf9fbc 100644 --- a/exspy/tests/data/test_data.py +++ b/exspy/tests/data/test_data.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import pytest diff --git a/exspy/tests/data/test_eelsdb.py b/exspy/tests/data/test_eelsdb.py index 709849698..6cdc43eb7 100644 --- a/exspy/tests/data/test_eelsdb.py +++ b/exspy/tests/data/test_eelsdb.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import warnings diff --git a/exspy/tests/misc/test_eds.py b/exspy/tests/misc/test_eds.py index c68b5a3e6..db250c903 100644 --- a/exspy/tests/misc/test_eds.py +++ b/exspy/tests/misc/test_eds.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import numpy as np diff --git a/exspy/tests/misc/test_eds_utils.py b/exspy/tests/misc/test_eds_utils.py index 3c6e9fb8b..08888807c 100644 --- a/exspy/tests/misc/test_eds_utils.py +++ b/exspy/tests/misc/test_eds_utils.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import pytest diff --git a/exspy/tests/misc/test_eels.py b/exspy/tests/misc/test_eels.py index 21a3a843f..fc202b2f4 100644 --- a/exspy/tests/misc/test_eels.py +++ b/exspy/tests/misc/test_eels.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import pytest diff --git a/exspy/tests/misc/test_gos.py b/exspy/tests/misc/test_gos.py index 6d84b24f3..dccb8bc0c 100644 --- a/exspy/tests/misc/test_gos.py +++ b/exspy/tests/misc/test_gos.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . from pathlib import Path diff --git a/exspy/tests/misc/test_material.py b/exspy/tests/misc/test_material.py index 194b473b1..7b5a2927e 100644 --- a/exspy/tests/misc/test_material.py +++ b/exspy/tests/misc/test_material.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import numpy as np import pytest diff --git a/exspy/tests/models/test_edsmodel.py b/exspy/tests/models/test_edsmodel.py index 20274fa7a..7df158fe3 100644 --- a/exspy/tests/models/test_edsmodel.py +++ b/exspy/tests/models/test_edsmodel.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import numpy as np import pytest diff --git a/exspy/tests/models/test_eelsmodel.py b/exspy/tests/models/test_eelsmodel.py index 93dbe6ab7..008baed93 100644 --- a/exspy/tests/models/test_eelsmodel.py +++ b/exspy/tests/models/test_eelsmodel.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import contextlib import io diff --git a/exspy/tests/models/test_linear_model.py b/exspy/tests/models/test_linear_model.py index e690fa711..2382ee60e 100644 --- a/exspy/tests/models/test_linear_model.py +++ b/exspy/tests/models/test_linear_model.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import numpy as np import pytest diff --git a/exspy/tests/signals/test_binned.py b/exspy/tests/signals/test_binned.py index be2ff2581..7eacbdec5 100644 --- a/exspy/tests/signals/test_binned.py +++ b/exspy/tests/signals/test_binned.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import numpy as np import hyperspy.api as hs diff --git a/exspy/tests/signals/test_edges_range.py b/exspy/tests/signals/test_edges_range.py index 8204af2be..2e0d3a57b 100644 --- a/exspy/tests/signals/test_edges_range.py +++ b/exspy/tests/signals/test_edges_range.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . from copy import deepcopy import numpy as np diff --git a/exspy/tests/signals/test_eds_sem.py b/exspy/tests/signals/test_eds_sem.py index 2be9fe7f7..1e280d3d2 100644 --- a/exspy/tests/signals/test_eds_sem.py +++ b/exspy/tests/signals/test_eds_sem.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import pytest diff --git a/exspy/tests/signals/test_eds_tem.py b/exspy/tests/signals/test_eds_tem.py index a5569ab25..cb37bd5d1 100644 --- a/exspy/tests/signals/test_eds_tem.py +++ b/exspy/tests/signals/test_eds_tem.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import warnings diff --git a/exspy/tests/signals/test_eels.py b/exspy/tests/signals/test_eels.py index 7fc2610b0..de3c7be01 100644 --- a/exspy/tests/signals/test_eels.py +++ b/exspy/tests/signals/test_eels.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import numpy as np diff --git a/exspy/tests/signals/test_kramers_kronig_transform.py b/exspy/tests/signals/test_kramers_kronig_transform.py index e83aaf6a7..43223278d 100644 --- a/exspy/tests/signals/test_kramers_kronig_transform.py +++ b/exspy/tests/signals/test_kramers_kronig_transform.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import numpy as np diff --git a/exspy/tests/test_non-uniform_not-implemented.py b/exspy/tests/test_non-uniform_not-implemented.py index f2796bf44..cc067fee9 100644 --- a/exspy/tests/test_non-uniform_not-implemented.py +++ b/exspy/tests/test_non-uniform_not-implemented.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The exSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of exSpy. +# This file is part of eXSpy. # -# exSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# exSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with exSpy. If not, see . +# along with eXSpy. If not, see . import pytest From 46d86259b66892ca61a0fd7b60f8da4b3b6ee2b0 Mon Sep 17 00:00:00 2001 From: jlaehne Date: Tue, 16 Jan 2024 22:39:41 +0100 Subject: [PATCH 4/9] remove comment --- doc/conf.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/doc/conf.py b/doc/conf.py index fe307856d..f6a6f2428 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -113,10 +113,6 @@ "navigation_with_keys": False, } -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -#html_logo = "_static/exspy-bannerlogo.png" - # -- Options for sphinx_favicon extension ----------------------------------- favicons = [ From db32a3414e017f636c4ddf8f413af09a606f09fc Mon Sep 17 00:00:00 2001 From: jlaehne Date: Tue, 16 Jan 2024 22:43:41 +0100 Subject: [PATCH 5/9] replace HyperSpy developers --- .github/ISSUE_TEMPLATE/bug_report.md | 2 +- exspy/components/pes_core_line_shape.py | 10 +++++----- exspy/components/pes_see.py | 10 +++++----- exspy/components/pes_voigt.py | 10 +++++----- exspy/components/volume_plasmon_drude.py | 10 +++++----- exspy/tests/components/test_pes_core_line_shape.py | 10 +++++----- exspy/tests/components/test_pes_see.py | 10 +++++----- exspy/tests/components/test_pes_voigt.py | 10 +++++----- exspy/tests/components/test_volume_plasmon_drude.py | 10 +++++----- exspy/tests/drawing/test_plot_model.py | 10 +++++----- 10 files changed, 46 insertions(+), 46 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 949c35204..4e5ba6268 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -19,7 +19,7 @@ Minimum working example of code A clear and concise description of what you expected to happen. #### Python environement: - - exSpy version: 0.x.x + - eXSpy version: 0.x.x - HyperSpy version: 1.x.x - Python version: 3.x diff --git a/exspy/components/pes_core_line_shape.py b/exspy/components/pes_core_line_shape.py index a0966ba2d..51add6825 100644 --- a/exspy/components/pes_core_line_shape.py +++ b/exspy/components/pes_core_line_shape.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The HyperSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of HyperSpy. +# This file is part of eXSpy. # -# HyperSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# HyperSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with HyperSpy. If not, see . +# along with eXSpy. If not, see . import numpy as np import math diff --git a/exspy/components/pes_see.py b/exspy/components/pes_see.py index 806d8a07c..68445ad55 100644 --- a/exspy/components/pes_see.py +++ b/exspy/components/pes_see.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The HyperSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of HyperSpy. +# This file is part of eXSpy. # -# HyperSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# HyperSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with HyperSpy. If not, see . +# along with eXSpy. If not, see . import numpy as np diff --git a/exspy/components/pes_voigt.py b/exspy/components/pes_voigt.py index 2ec27030e..073e3a148 100644 --- a/exspy/components/pes_voigt.py +++ b/exspy/components/pes_voigt.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The HyperSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of HyperSpy. +# This file is part of eXSpy. # -# HyperSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# HyperSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with HyperSpy. If not, see . +# along with eXSpy. If not, see . import numpy as np import math diff --git a/exspy/components/volume_plasmon_drude.py b/exspy/components/volume_plasmon_drude.py index bbe040f51..751459f82 100644 --- a/exspy/components/volume_plasmon_drude.py +++ b/exspy/components/volume_plasmon_drude.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The HyperSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of HyperSpy. +# This file is part of eXSpy. # -# HyperSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# HyperSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with HyperSpy. If not, see . +# along with eXSpy. If not, see . import numpy as np diff --git a/exspy/tests/components/test_pes_core_line_shape.py b/exspy/tests/components/test_pes_core_line_shape.py index f25089f6e..1facb84e4 100644 --- a/exspy/tests/components/test_pes_core_line_shape.py +++ b/exspy/tests/components/test_pes_core_line_shape.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The HyperSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of HyperSpy. +# This file is part of eXSpy. # -# HyperSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# HyperSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with HyperSpy. If not, see . +# along with eXSpy. If not, see . import numpy as np import pytest diff --git a/exspy/tests/components/test_pes_see.py b/exspy/tests/components/test_pes_see.py index 43d95d636..4f4363a49 100644 --- a/exspy/tests/components/test_pes_see.py +++ b/exspy/tests/components/test_pes_see.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The HyperSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of HyperSpy. +# This file is part of eXSpy. # -# HyperSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# HyperSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with HyperSpy. If not, see . +# along with eXSpy. If not, see . import numpy as np diff --git a/exspy/tests/components/test_pes_voigt.py b/exspy/tests/components/test_pes_voigt.py index ad60e8c2d..d77a45d55 100644 --- a/exspy/tests/components/test_pes_voigt.py +++ b/exspy/tests/components/test_pes_voigt.py @@ -1,21 +1,21 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The HyperSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of HyperSpy. +# This file is part of eXSpy. # -# HyperSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# HyperSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with HyperSpy. If not, see . +# along with eXSpy. If not, see . import itertools diff --git a/exspy/tests/components/test_volume_plasmon_drude.py b/exspy/tests/components/test_volume_plasmon_drude.py index e97ff87bc..87abf3a24 100644 --- a/exspy/tests/components/test_volume_plasmon_drude.py +++ b/exspy/tests/components/test_volume_plasmon_drude.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The HyperSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of HyperSpy. +# This file is part of eXSpy. # -# HyperSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# HyperSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with HyperSpy. If not, see . +# along with eXSpy. If not, see . import numpy as np diff --git a/exspy/tests/drawing/test_plot_model.py b/exspy/tests/drawing/test_plot_model.py index 16c04734e..4b1a8d500 100644 --- a/exspy/tests/drawing/test_plot_model.py +++ b/exspy/tests/drawing/test_plot_model.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -# Copyright 2007-2024 The HyperSpy developers +# Copyright 2007-2024 The eXSpy developers # -# This file is part of HyperSpy. +# This file is part of eXSpy. # -# HyperSpy is free software: you can redistribute it and/or modify +# eXSpy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# HyperSpy is distributed in the hope that it will be useful, +# eXSpy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with HyperSpy. If not, see . +# along with eXSpy. If not, see . import numpy as np import pytest From e201691829f229f69d98aedff746a364603f5dcc Mon Sep 17 00:00:00 2001 From: jlaehne Date: Tue, 16 Jan 2024 22:48:50 +0100 Subject: [PATCH 6/9] changelog entry --- upcoming_changes/22.doc.rst | 1 + upcoming_changes/README.rst | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 upcoming_changes/22.doc.rst create mode 100644 upcoming_changes/README.rst diff --git a/upcoming_changes/22.doc.rst b/upcoming_changes/22.doc.rst new file mode 100644 index 000000000..f96c0720a --- /dev/null +++ b/upcoming_changes/22.doc.rst @@ -0,0 +1 @@ +Add eXSpy logo and adapt spelling to capital X diff --git a/upcoming_changes/README.rst b/upcoming_changes/README.rst new file mode 100644 index 000000000..6de80b390 --- /dev/null +++ b/upcoming_changes/README.rst @@ -0,0 +1,36 @@ +This directory contains "news fragments" which are short files that contain a small **ReST**-formatted +text that will be added to the next ``CHANGELOG``. + +The ``CHANGELOG`` will be read by **users**, so this description should be aimed to hyperspy users +instead of describing internal changes which are only relevant to the developers. + +Each file should be named like ``..rst``, where +```` is an issue number, and ```` is one of: + +* ``new``: new user facing features, like new command-line options and new behavior. +* ``bugfix``: fixes a bug. +* ``doc``: documentation improvement, like rewording an entire session or adding missing docs. +* ``deprecation``: feature deprecation. +* ``enhancements``: improvement of existing functionality, usually without requiring user intervention. +* ``api``: a change which may break an existing script, such as feature removal or behavior change. +* ``maintenance``: a change related to the test suite, packaging, etc. + +So for example ``1412.new.rst`` or ``2773.bugfix.rst``. + +If your PR fixes an issue, use the number of the issue here. If there is no issue, +then after you submit the PR and get the PR number you can add a +changelog using that instead. + +If you are not sure what issue type to use, don't hesitate to ask in your PR. + +``towncrier`` preserves multiple paragraphs and formatting (code blocks, lists, and so on), but for entries +other than ``new`` it is usually better to stick to a single paragraph to keep it concise. For ``new``, +it is recommended to add a hyperlink to the user guide. + +To make a draft of the changelog, run from the command line: + + .. code-block:: bash + + $ towncrier build --draft + +See https://github.com/twisted/towncrier for more details. From ac6ee66005712aebd35c747108db9145cc16ada8 Mon Sep 17 00:00:00 2001 From: jlaehne Date: Tue, 16 Jan 2024 22:53:54 +0100 Subject: [PATCH 7/9] vectorize fonts in banner --- doc/_static/exspy-banner-dark.svg | 16 +++++----------- doc/_static/exspy-banner-light.svg | 16 +++++----------- 2 files changed, 10 insertions(+), 22 deletions(-) diff --git a/doc/_static/exspy-banner-dark.svg b/doc/_static/exspy-banner-dark.svg index ba26da19b..37ab5de29 100644 --- a/doc/_static/exspy-banner-dark.svg +++ b/doc/_static/exspy-banner-dark.svg @@ -44,17 +44,11 @@ d="m 186.30267,65.47342 c -1.75234,1.41712 -3.08059,3.02154 -3.84245,4.6403 -0.80828,1.71742 -0.97613,3.49141 -0.2217,4.98248 0.0137,0.0271 0.0277,0.0544 0.0419,0.0816 l 0.66368,-1.33999 c -0.22233,-0.96325 -0.0452,-2.07192 0.5122,-3.25613 0.63744,-1.35442 1.77347,-2.77427 3.29979,-4.05665 z m 10.60609,-3.22333 c 2.9799,-0.21126 5.26775,0.64934 6.11726,2.3283 0.71001,1.40327 0.37965,3.25617 -0.89247,5.17959 -1.27211,1.92341 -3.46751,3.85143 -6.26217,5.26544 -3.35958,1.69985 -6.80746,2.24765 -9.27505,1.76658 l -0.50916,1.01566 c 2.84359,0.66365 6.61286,0.0547 10.28065,-1.80107 2.94583,-1.4905 5.27825,-3.51625 6.68315,-5.64043 1.40491,-2.12417 1.90167,-4.41361 0.95621,-6.28221 -1.05674,-2.08855 -3.56727,-3.0319 -6.53947,-2.96001 l -0.79128,1.14606 z" id="path1-6-5-6-0-8" sodipodi:nodetypes="cssccscccsssccsssccc" /> - eXSp + - eXSp + Date: Tue, 16 Jan 2024 22:57:37 +0100 Subject: [PATCH 8/9] add pngs --- doc/_static/exspy-banner-dark.png | Bin 0 -> 28401 bytes doc/_static/exspy-banner-dark.svg | 3 +++ doc/_static/exspy-banner-light.png | Bin 0 -> 30181 bytes doc/_static/exspy-logo-dark.png | Bin 0 -> 18129 bytes doc/_static/exspy-logo-dark.svg | 5 ++++- doc/_static/exspy-logo-light.png | Bin 0 -> 18487 bytes doc/_static/exspy-logo-light.svg | 3 +++ 7 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 doc/_static/exspy-banner-dark.png create mode 100644 doc/_static/exspy-banner-light.png create mode 100644 doc/_static/exspy-logo-dark.png create mode 100644 doc/_static/exspy-logo-light.png diff --git a/doc/_static/exspy-banner-dark.png b/doc/_static/exspy-banner-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..26485a3a9ab87669ffa24a0b7173ed3608cab614 GIT binary patch literal 28401 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 T7CgYNtAkUJQI)QeH2w5H(sJFl literal 0 HcmV?d00001 diff --git a/doc/_static/exspy-banner-dark.svg b/doc/_static/exspy-banner-dark.svg index 37ab5de29..ede290d00 100644 --- a/doc/_static/exspy-banner-dark.svg +++ b/doc/_static/exspy-banner-dark.svg @@ -9,6 +9,9 @@ id="svg1" inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)" sodipodi:docname="exspy-banner-dark.svg" + inkscape:export-filename="exspy-banner-dark.png" + inkscape:export-xdpi="150" + inkscape:export-ydpi="150" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" diff --git a/doc/_static/exspy-banner-light.png b/doc/_static/exspy-banner-light.png new file mode 100644 index 0000000000000000000000000000000000000000..6bc1aa9b6cdae6efbc4455d18a1806aefa1b8b83 GIT binary patch literal 30181 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 NIVoje*;@nu{{T~($)x}Q literal 0 HcmV?d00001 diff --git a/doc/_static/exspy-logo-dark.png b/doc/_static/exspy-logo-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..cabcfbbefd3bbf36d489ced301cc0c3649fe5f77 GIT binary patch literal 18129 zcmd>mgjdXW+-^2I2_pi9mGr;38 zocEkJ_Fj9fwT)C&mO()zLL3sl_S@Hcc;KA_rvY!^2ZEEVt}6(Hhw=6W zHAs6Y3cN|+CZ*%{$?=Pur-_RN$kWr4#oEEv)y%}ng2mCrGVMf&5CkFz$w`W7c%>g_ zc=~B*KD>&0o?In!>1vC#q{(DeXb8e)6h_@MN8X-Pzv24a4G{&6cVKK}r{#BUwft?uB5VLZQ3R!2H~tg{!$i2K~)<6cO%_VD22a4=n* zySSL~?|RN?jD+7Mr084v&?ZEbayUuowrA@S*B_+CPJNdI@o#0ZM zB;`6Ti#|RV1%EJb2US&7l5MN+?Q)66KP*;R3^hJc)ao$nueSP2)d{CBUThByl)OVj z!ehaH4xp-dy9-;1FywV1Qk9Qn8#T6bQ4WFiwP}v6sTJmTUx2^LU3G=!nLyd|I4-MO zLA;YVI`^s%cz%csKwF=koSdxx^@|qlGQqE;q?Ehrna@o)j|)nmRYJVe3o~J}93=+N zO2VTFU!mvb<@N9cQ=$`wV}d-INL(6()($`5B27+BP0Y{Bj{iPUa&~5~`ukTxVCO5$ zJ2vzFZ{Okw_EpgeqS=sP!c1VVbF@mF=L|eCs)`;HGBQY9*r9@y(s)AshGoMMf{DFOMBn%uvydqT2e-QvH2y0vS4uZr1&Mv2I1#ui?Fxx85yx9<*h%1 zxR=R-JJ2uK@mTaD66jRI{FdG>1}fEW_%17YxidmFsp8qU?GozNoW!KPv0s>ly8lBM zj*%X!!u#?Iv7m>dlPDIQa(A{^@Oz!<7H5GB3WCDoVg%Qn;f@T?6$D5h)^~PaLN0$X zkP~q@@2Ve`W6O2&TI)&MYrvB0m@sVVL8}fkZioN$^mKMr73PNzA1ZX1Eg#Kwai#Mx z7V8}QfWLwHyTI(l9OWp97PcR!RHo&Mf`S4LE@8$+vSh=TY$Ib|Z2t-a*9P&uIa&t- zz~1fT6p{ZH0(x{07)|8vqmw9O5~Am-f1OisBYQX+nY6omO}0oF8kw@TeJAXMW?55h zX({vQwhO|G`v)eb&3yIZy<4g;k88nbux$|HKIhwI&n)1gU1@vpZilsBMhGd5LJrH@ z46l4K{>BpXfA4?XbK! z2WswPa@22andf?|?TltH0hi2|7RH9=%TNY_!}@mx7K~|#BCW)yPgnu>+j!#1?xO$x z{ZlnGj3aWW|0){@JVx*BY9QqIZ$`>zH31nn&FGNi)KochgofN)aKeCj?kZ&7z9$L? z_9?+5Dk=)NE*&t&H`+!hjH%X#113tNAnU1LkpZlxys^>}c2#Mcd=3NOX>wOTp;_k= zp|jg}h9F3aJT2DRV?7&o=2%!*IJ>*MORjvXTO2WPn~-|@pcU{zwd1vpV98ccS2!Bp z+Xt0WIYRsMsQYRx8wzn?f*1GlnN5})c>gr)5OzHGn{$-v{tXL~T22GvPKQm+M%54t z){?f13&+jrDg@ZC=oK-Y;d{Sv<&+B4F?7Xi7wq&+O>_5du~?3QXhXY}=d?7MAt=?B zBJ1E*$8J)p#gzQvGi^OtsQ6a`&M)W{^c+9f&EQc(fFC1R~J*`s&Wk7bjxRo7FUjMugPVRH#MMy2Ts~ z#?V#l9;VzTx%huKC(BIp!n=HNMC_&^z<3wd29^W|f_o!qS7Q1om@x zZQJv)Bd|_PTBYdEhK>JNTJKCx&eppmPek#HW^5)_^WNJ7t5m6!qv|A`r*;;;>QLt@ zCnpDN57Af)-IJ`>C%SmKePc`<9GVAToXA+^L3oU&Wo2^&U6vHH*-~9tW<(a?&Og`M zbxf&if<|4@woorcS$!-7b}nbKk8Zpj96gp z_w9#&uuBH$dLGSFJhXV(>gwvI513QBKstJlJzR^6i*ws7F_t8Gvt_D@y%^B!dUt5GlHkh3H^AcGru)+SBFB&faB5M0+$9H9Od%4 z=$8N~FCcx9PGBR#X@B}eb*HfI#Me1!F*Y_vcczIZf*KwS%zez>sdhfE00R-_k%!=l z|E=G|SDGz-qmYmc%<_@XBb9$&{QGxjictVVeO5>atYR8ZY>-r^bA!HV z+8R#UNZ4C^?g~Tca%_91t>qVnXQZe2a=y_c`H(6aC=wqKvf(Ds!?P}gN+J+)f4NJ= z&5h%_J6eEINkQwknMajKBIsd!d$Nqr?~h9p^`s?Wfe7IyK++2#V=W>}wlLvItF#!xYnC`Y z9@jm({|Pb4Ng~KjAjmeoR;?5$vX}tA_v@lyW8zT9U~@!bGE)UB=JNTLjV#~v1v*zW zjZ`#!aPlg3@?vId`Z=*<_c84+hW)6tj{eBn-dqozhN|Sw>}SWGaIyd(q>YI@BJ(c0 zVL?Sh)6vkt$v{Yt(K#{cfyM3tV9~<5d#dDDIfh$uy-eg5AyPeSW_;Q^_MZ-;kT1pCzVhDP(m&mc(GRt2& zpEYGDl-;b?c zQph{KGF&WLMf7QiB<0tUFI_t$X$ZQw_%d-B$c7(h=gX3!Zx>hXZmrN8kt)^m|BwsyA&Rn6+U5}N+o21X$b_Fjm=Fp zLqnGOp9cQ^!W;{i}xSOAGwkg|*-tT@;Q94`7|EljYB6<&An}($3D6drh_^sPAUWjUbB-O(-@s zdQO3F2M|s4X?)#z)Jiy1tnw3iQa>C7gBhP~d}w1rK@?hI^G}#q>Q^mG;eYzErfIm? zz=dg%Nd&MTZ;r8+#{P#L(V=k>EC&-Abm|;PbhPfw23q|e*-X3NJ1yOl&8<7nndo0+ zfFIGglakHmjb2Hj^gMz#LvRAo=!&vK{=;28ct*_iS#QY)NY1d#n4@4gq_ar{R*e0_ zgOc*ze>JvazDk4r&e|`Zf%`IXPBjKz9^9QrHeoXs;AQ*JDYM|NsaE2n^NVc@0$gBA zB2#^hnvobd$o_tiZR$Qgu#uC}C&q$tV(pzbVffW3hAgL_`s9zZx~dogl|$n`t>47} z9r*EnBbv37777dW_D{*=>cE$KOMRdH0usX%1q~cr^tvCeE@1Jo_ai=iY0vKe z2xfdIkor~jHEG9eUhh)GhFMDT0Sk$d-XuhWQA$n@0l@6A*P9+q@o8z%lauNkVF;3C zTAOo5fizVYoL1xH!~$*+L7L{{1IV&!w_;I^XjN_!=q2bEb(>D5_jGo}0c60gWG9k9 z$Vfz?5+X(8B18d-B>JK(PKAEampdwop^$Yqfy#hqpCzBeGN7UYKM1%VB<{%-jP|To z=5_=S7TC9~f9w(1jj=J$@cc>!*zb9}YQq3L~cdbH) z7fP**pXLp*9&wFWbsVvVYA29&!i-;Ep23g&es^r}D1_4{#WQ5omA9W>{Wf98{R>1oDKs6-R+_y7vY1ka&VfyB0vtLMCfbjWVS^`e118;`+poQS zg`^TKWu;S>1(^JQlmqcw@?a#hI&n+ z`Zm9+7kB5&b=K}FP-F5DquMRiPwesou!aV+fXI%=ZvG?n9c%hp`+D^~+u%qWm4YCw zOR^|qiV1c96hyjUn_e&7ouYbDbdO2}|F7G=I^|F+r{(As!K?F_@a_B2b}~jk1T)XV zNk3$=Oh0_-L%FP7IT{zm5kF!dZ}AA`OETc8*tJS<00IDC0H_iJ66I+IhlW}lM25%4 z`T)SN@L`8Wp9SyB@DH(kJ(K#4t9hqVZzAMDw=A_f^+@7@gB8Ai%`~Nx>gs4T!}nu> zFIeMMr=i1XykoZ0J3!=!$j5&Vr;x%TWp95Q(T5J6GV6LBH0nf1I3@02IPi;6x?nwZ zD9TQ#S`I4vTxYse?+kuS74p9DUcW=`YPaH|6cI6WTJ8AN+)VuZa2;)Rx+Sh79d%fh zDW2?60r|`4r+dLAzla(#%wnV}whzDL)P-^f1P<8Szd*UB@44)5`P!D94SI(f()Vrx zk0%W!#n6WVh}o_yht~4kxYuN;ynP+lGJ4QxeH}+0P#{HRx}W-}T!JJ;wF{~ib=i|& zq>@GmwIB$s-{i3C*&q3-i!Z&#tgE$+r6yoZ;`@>j<#~fFbg^-8C+8;a>)qlWJ&+imoT z!`a#n8rcPI*a45QOHrSg6p7HTaDvx|`7YPy6PLeJzV+WdB82^XJKlAml&9bbbb2d< zm-TmD8enhnkcYo;8hUTzAQSNn+nyu{#iDxVBV5johC+SIo87pXwrl2e!q!4*#pf+F zr;x@aeM|vm*SoW#@;Iysv!oQUalAaB>ur%R(l3Vq{E6SygbesGGA^$7YJUofy!58a zONjJn;qN`YX6S!g7|aQx5Tej!6N zD~xPJLS~i+ef^A&EJVnn#i24J_NA{*SINRrNe)aWGvlyvadTC&M1BB(*3kEuTg<-< zz@)%0!P0qO^;yD!@8UT@dSxPyr>S#aJ=WP$6@gdLpFh$T7Bn8GE3qxUx48ucm&_J_ zIepFaT*AoHnxftj^UTZ{>)y*v^9w}j(-WB9VbT5?-V%Os9g#o!^T-&2n}LRt=+Fxh zeWB;eBO1>>8BQUTE>({V8b5b^%7bdOeLn{qD+O>9lUCkpx zf@e$)jj}NL#(++hLM6=@E}8uvCTMxHS0<_8F8?<+3v{K}S8@}brPMln0M3;6DWOs& zXVl}F`j-`FyK(+$IuY=DzMcaT=}FTmoBM$Vz_h%NlhCa+g^LeS?GPW7{Z^_$sZ=ao zD<3VQCwx)kL){NE6s2wD(9xM7qiTagNBgVY368dKX~_2};S(fh&_yT&_nFKsi4J*S z7Nu)Gf3bO|m7bZo8(29EEG#OknC507zo+xQ{{DV+{dGqGuCo!w&NuN2dA9qs=k#n# zhK_(G%0}iVjl1z?w&!(>VmV3(h=Zs@5lgcSW5oWnCm|FU)qYkpwMP1LZfI4V)l1%m z0~|X;NE4r+yk02X9wID|4`7G-*;wvb6y;N)f;nL5K6`X-*od4G$8D0Q46$1bVvCuv zBg51!#sd5W8RwT_^l7~Dm-jXHi#&-*?wN~J`d01@s#Xp?JMdJkzxiXQc#urDUAiCF z8)OOKQ+jDXvc#|PezGb7`S9`PZbizfZ~F-UNg${we+i_h*+;&Lr&Em3%->MiN23r+ za=odMP)a+K=t(0Pjg5-~z-{On@nfkZycgZF|h2A6}pxCtXai6<4Rwq&u9La*-sRIcaZ_a zF4TpbSAz z)9t||;3<0-s_@0>>FGa8NWcK6^Fw{P(^_Hy%4b5G2_w91*8mGEH|DsSn(V z*4Qp?UCpGMd}sl;7`jBvR{5pxw+>|1lb2Gw%@9VV=s3@CBYiewc_ZdIJx}yCw6sij z6kmdh|6DvAmYV@}U-tu68etR8W!zC$GCb8OKPH=3uJ-G<(4)Brulz{OeD|MOJoo^7 zWk6<8ZbtaTNfxZX@z_8ND*c1&r};qaD4cxS`iL4D+G$&(@4cPW59HR}tiU(`?W;Nk ze)Ro*tXZPvK9sBP2Sk9(4+1gnHBSi{6CC_I=G)=jnedO+D`r5l_0iqCTpE|jM5jn8 za&qtOqK{~SewjAmw-kLt7r}TG%HljTT-ve_;AZT3x(f;%gW{SXb#hWfSH+Ot? zHq7=<1N`;1xfU}JdRilVuAu%U@U=KyydU(F99&6R5Tvfv(SJ&4x3PAUwd2EMq!*)= zT7Flz(+VA2b%|ncKML<>c!Bn0^Mt)bM$j*iS5t#iqE&`zL+d86yl{38K=&n&MSDq` zRat6GX2WKkGaHS1liT`p#fhB1sT(Z$5G@GB!+iFlv&q_KLqz4}4@7zNff-0=^^s+^ zxnPzIpS?&(65VSY;$=Jw;+3CIVo=F`vz7H-5&zeUlf+I)80Bf9I!m!K!2MRk#sA z1Q^BI2|%U6RNj1X^xAeY$aHr#r2==01On(l`uKp(Sj{9FD`)R9CQgojewx6a(RoW3}1{OFVcFD3aSj>_!@wZksem=Kf7~-=(`LV%)(ty1Ok-C^Z= zmAZD#CBNDZh9@-@`c(oZXImRwYD2A4X{o;TL&BFn${bm5@lz*=qHyu|2wlL0 z$~<8v2z+J`5xPfbXNUUN5($*r?@z)_@RtH#pLbidw6wzZrwWl+_&gRYQoQ{${yx;5 zhEMd9ADabT{5BjPB?v1D-OO$^BhUBl$a=bxD(edCDqGS141bVIfwB=&4c=ZQxA6=Y zF+#dleGep2{fzVX7gu?L!gZy`pxMM0{KTWJ)3#TUOz$0ny=xz_=Oy3M7JN2iP`Wam zsi|qU24jwT@!GjpdsQphreBA4%(9VK1G+RtsGk?+R#(E>AG=`tV>v#w$WI^r99?1H z_XSv{e(T~AFrq{SC-U~p$;ZVa%HQT0D3abND8})=#+)+Yc8nmbMlz+yuGJe`6arfw z;9U6}NvY9wl4;b7&&2QKGhMXS2dWk{K5+eo@6w!qKh!6)ZvB2F;3wzP%3zycTG=eT zlB!!3--?+Q89QSKSmfe;kO_4?hrP(f6`s4#i6e?_<;j&TxJPo3&5OE_%t3kJ!sls( zca^#-gc$h_vFhDHj+ewgLEOeZR&eP@uY5=CGaCGk!Jp;vy&q}US4-!Q)>b{SnE~2? z95bvZYm!X-l>XG=>9u1WZ&PMolc_neNSU!~s^y(Yga|x}vY^Os=3{gnO&y&G6e6DV zx+fx*3TC88$w{#@ArvjX8x0s#UcNM>GmtSzng$MAT^9NG&97TWgk-gf@g)P$;aq5i zBZ3lqgH{R_ZXJ?M?WQ)PjzZtW1vT)1+DOEt3aY)=a5#w|E4+kvf;d=lm&Rr@n8Y^N zq*UL3X_%R0byx--BXhvf;$v1;wl;P(I5wY4>mbT&Y9`G^8hFMMBqxOnwixE71dqgp zRYRaIaw3hVMWE~OKf3!nwr_uZ-d!uJN{^n|ykVqQn_Pqak&(81D*ls%L=-P4NaO;x zJwMTRT<`!hYZnNJhm3}Fl(a3}KFlYg&B2FHDdwjG?r-&*IUa{~t-~^-RYCvMM$o14 zhte#P;Qax6wzgZrC5zTzD9ylua4u~famT>QrWR3~hqR~0lC$kZxPRK1JwbrHN08w} z1>f_aj6UK_T3W6XvN$fm0C|qi{Yu@%)itmfop{L7iic{R&XIn}a z3E4-}P<^8Q%!{p^KN4K7PfN^aSLB7%#*6q$LkbisfA8S{`0y&J40$KmOf4M%&_EO^ z;VLgL+0_vT)$C5x?2C-uLkH((rVq z1ka)An5Tp1n>oN_cmX2^i^LW7Kn?xw3M$+bLdp9s&XX9ZDM_!!!EY|Kv3f*p^sB}| zwb}KbpX}L6#m5}*Bmz*u{TcHa-1QL!J!w2cVT_q;R71TU2#**3z(3|07Ouj3_xYy) zvG3bsC54S`7yv|%10XScn-+lwX-6X5948q<24rAWR5!Mtd~JRonFk-~NQV)V1R^9= z@vNuu!-OJ6p#ksMa^SlCytfH_uABedCVl25aaHN{%M&VJ#3NE`p81EbIb_bx1OQPc z+ZpM6&d_<%u@{XLY(Mw{7;p7j<3?hjsXJ21kMp)yPd*AD1tdGLVKWC-=<6;*Aw+4=ar`> z5xHR33&^B#6L~UuMf6uCC=PiGhx&+l#vQbXCAIxBUq>G&tKShveJGRc8@$D+Qnh5l zDKK3l=t!p3Q3TG6$=k+u*>0()pG#Z&~QKwUC%$wY{-R z2^&OeeXxH9(C}!HtBReAH*+AR6pY?@EC0=tWL04gf92lK(n(b1_)$dyM-XJ1b9xA(4Uz%9oZ zO-Sp+ruPs88eqgwX-ayghx`0rChSgl0K&qpoq=eq9puH~33B0n`aE88tR*xZ`NQ1Y zd@WA!1l@dy008+x zBPOOrkxx_;mGHejV+=4L?paE%e?1>GRN%IuSrjs2=^M(c{fT)rn5F;b_4e_<02!Ev zC2oBTtaVzknUnW8(ave<0TG-gJH!2~%`p zKEN(4{A_oRlq2-|bSZ{`m8yrPrH|5^*m+DyXL zym0RTmg9ApsK2SNtIOHzWXmL-%d=JB4a}jRD-RA1MkG7;np9V1NA(iVm?hqHIM+J>&Xr(3ydmGVE(-*5br^gX}zrY1U z^p}1gktGBX5fs#sIQ{59J7(=XYhuuI2-bGPXY(r67Txo=vkq)(e&5F9o;k=SEKC9r zQ7PoUqi08d$1o8@rf6=(|MlCN>~UkCnSDxEBndro=9NfE4BlLgA6Q}?iMePb82@Cs zvnq)XQd1}Rqj+X`);hD@t<1Ve3B8>g(gqG(d>8J2{Yu4?j9!!t!p9bbTWHK_?h{TY zT1{?Y_QJ%qQsG}K$z6h6bL$uwoM;;X6a*hO;>&_jtMC8!0Qj+J$6{%FQ!V+g}fEo6=60Y7R}prHs+6uH0#x-nMAS{mh#L&wjeq zu$zgsm4SZ|Ms<3j`;9TAK!9s27M+Ej17ScZ9Ncoi0@3VqK&Gz^1 z&+T{U`@-%aFDKSVLay56O-u0*g#y;t&w793Kfxi z>O}d~$LOaVfHeeA)cZ3VcwI9`$$$MN7!leo6dXxsdd*SM>K#^sBFZj2c=|H^7Ts+k z>>0cU9e;M|BnsR!xK+ivAh$fOEUQdk;!QJ1@C8c`1%svM;1uTm?U3eP^gmC`;N>HeY}PM?>V*T z2k7Ic$_j(3!N}Ba-CpPa_}X6*&e}E!zF6MuTq_6IT6a>A(Qr3*w$BfJD>~@$Z3eKf za+=^+50Si2X*M#uekh*>{OLL4kn<5$MKC_-MEP`^JCq7kU7zlCzNOYS7xz6O0jR~1 zDLq=wI*}?Cn_At;1zbTK(wBXbu;4B`asTy`pz@S%`keYD-|>`7)elRW<~OIvvwg;t zD&#~TM+Ma?1!Cl`YFwLJeu~#mP{B!ki0za@;5{eZZ8ve9X#%H2K#|MkbY^)a<3br* zdt(r$zXTSO`5v*Gt_%Qnt|mVcDwB9llSU(jPJ^7MIo34~cpas9lkC=ltlJ77)Czx< z9feU2B43>a}d_BbCLOIdyLv-Q)x{*L{u2qz2-n(&G0 z*YPaaKHK5tUzr78*Sw?%%F4@k4yU#TpFV8^>KJmrAo~_-_`mk7AujX-l_T+y)6X!i zhV1NElK?2|BW_|`7y01VKn8M97?FK|cnX`|MA6O#hhwRF9PtI;ng|jGIJy`W^3TFAsuwuKc^C1m;2+M9z~U zYDkB!$B3j>y>8$&60!Ae(r`l6VADVI>t8;TXR=iD5g7N0df}u%vXR0Wi=qkyh(?ke zcHoiQ?k&i3&Oel=uzsK7ZqKowBc?*(JICNq1ZsB2jrpZMbK7an#CiBQYJI!)MQl#$OSlv0`}R zau!~Uo}g1LguLZ22%`cV1O~ME{X{$l{EE>qU>MrsE>=YPF@lta-o}~>zW2=W)uCE@ z?c=5orJ2;w){pkTWy>SZI%;Z51uwYFI_;nBnwd1TwKrRCSCH;}AX&~Ft?Q}{r@n~} zkJ$P_&+LQ*T(`*Qgs#w_Q5b2yfa}c9wIxD{Q+No7FF&$)hm_lu*Zc=2QKY`EyO3Er z&FkD7)z^=2?V^MLH_)~DOPq0iRkm*V4x!R+Jy2eDdj$L<;qRWZwAtM)`Bv>o9_iIP znY6DUfVfgfq&4)ig39Z-iJWaN<++kzTP25!^2b+1vF*O!db6n{pd_n2Mf07+6h~U) z;|-lA`5S468WD!R8!pcG(a#ik*GlS+%4?6>WU+y?&koKtuc2oS??Zh=G0U*mW+sQbk%C*~%J^B0wJG(ys2tISO6 z>ALf~Rxya0Tu!Pmwq4^b4*KYN*!^X(I2pWr)W+?$qf?aP&bH;i!qs(X6`7|mAz7=1uEjiSa@aPbh82|Yo;d+lzZ)e^L``wGX`fs>6X5VX`vB4+U z-GFs|*(-Gd!+zGYRIaC%sX|pNz(>0O^J_hIho|=<49aR=^)+vYStyv4f`0!el*p98 zN%3RU{8D6y30oLl86a`56toxC*YlaW(g74K$2shzeXn{ofkNcXK8m#iGFKo`ciJol z$nG%Oen|Y|8@>-x5ZA8$8w2JmH zz#B}m{Tm$XvQuA7%}^$#F2fdH=T%`;@T$HG1DewKe#mJ%;Q0Z(oyBVb-5&$w2&Z{( z&ULegS__D4-8*403SwYYZb?I+Gr!}5R86hB{z`?ziIOtue)u!wH)*NPn$q|6bnx{< zeU&(Uq?cH{Tw;IpM!A_wsW;OSaYJ*KMD88kY=BMCbrWC_4SGCjf`rJ4ohyS;@{%O{ z6-4{tFX+zUL65!aIum*!{ca|%ln7Fu2;lhReb}Ty7PRfeAh7c2H_g<<9&AT|h z75!(H1G@rnFCsSvEB(Einct2ezv8$cR1lQjDFdROfim%FC+98Teo*WdEG{qa13Xn! z^;xQv0G;zt`|?flzF)czYPKB7WOcFzhtp9OA0Bdj0I3w&Y1L1E_sS>`LI~|1MOQE^ z{+6Nnfx;Crn)$|nW&^IkXxMATO!|;vdNCxBe5^faz0A33Y?fN_4V$aTSuC;v!`G7r$TAX= zJZ0?K_|uWCW7J`Lye-MA#eyM}j4xT84VV(tXZ*b(WDXDUdtRxG+|xqd9C5X&Pba$_ z@5rckGMb-n7Qv4Q0?07;d)P&PhG6n;44whF_tkqrjB@||7A8XGAj#SkCsa_~P*g?b z%Bxbk-_~B3nf~|F>I{JRcvHufRe}V|rD${EXcTy1F?)S6P0)6G&v)!4`z~uZoI1z+ z1p%Sy2d5<}hA*JiB~{!i=igVVDvfNSXb9r%#{1}Kkd3f+yE{w1e@h_=AKvKxS9>LjqebO+jSTlf02O0+Ac)^G-P+O) zFrRndK6d77xEnq3A2MWZ+e5AO{r2n>scz*2hMMGhichz&e-{BsY5z3YdE)$7s^k~8 zw`T>MHh@h<)cZU@El(TC#fm$~pxb<}z|w6nfjBhS<)oc}@yb;|$a+fxHV-}JLeJ7n zS%04DOv%O4;IC%^b z!lfmUuBnf|?C4?EekC#w_wT_)Lbj<;+Xtge{lDFNF((^)Z>MX!Pbcv8aW&GL4&ZIRgwN6V@VluPK<~Z~&hsR;Php2>!fHWV z8zP&-Y)}wkp9;gYpef#p=sk>tx_6(>yt*O|1v!vGBeum?c;b;?_AerlgevhyRw z$Rpmw4ZHnf38TzUHu9fFPhmVXgsG!T;F&V{}Q?zVRE?!>W48i!l?Qcdd$^p2= zuvK5rk4=twozJFq*Zx$tf3gj0nuQ+Sf#wVPTdP9NiHI8`4=>FW-klvntp&%U3nN!r z@l>0shh&!~zZe=aE;K;!M^3TlXm}+f%DZGJl1`bp+XTACjiWl4jr-C$%bEj}-J=#g zL-QKcBUL-=!iOFY?&MI<8n6M=(EFJz_@p8uA{=rnWgC|F!Jr9!G=I`I^2Zq&ArZ}w z8qi%)Py~UxK7P;sN-YM{e%nf*Ua!p4@iJx2hc=6O4dmkKG|1LfPmhpb>)1A6G#3 zV5Okp7i?nZ@~6>+&OjKa-R2zUqZ#SD84<9S&YhLz@Nrp85g(w8`p@WLNDpVw;4`jXBD9rBuA7ppSpksI*`1gwg7gz6FhcJ96B~aFxDQ#IQeD;0n~v7few?=Bx8Kub zL(3E9;kD0jmS|T0{Qvexh^wp9(Qoj^23HWx=kyXzzQT8ZsIHxk%EEw?u!cA)Ss#{U z`bC=MkCNhHwRuz8=9%)n9OXngD40F6&RCr%j#IQvUHAb3isFb)by=me;zzm*D}3*Twi=%V zklKxsg<^3F&*WB}=qTZ&dM@6nEa-Pcle+r|@lF4WSy$VY`RaqTI%`wYy`yXx`0UQb zeUB>-pvu`-oQ{WOIayaTaw7D1)`raU*kxl|Qmt!8EcHx_fXWcs)D1f~@N11(#+O1j zrxRwupN;WfTg2k?FX?8lgZBqd$Q)OpQ8Vi*1ZbW=!61-Lsnp%?D_zr?%+8DmZ0ur) zFjmKCK+V{+S7tU)9<6;#!3puc+@WBJ6HSG*{ZOQBKJO)ZFx;9!SVzV+IIk-4-zh1BfPs46k zVH%)uhnS+ytu+ba*D7H(QGb0AIpIWnM5ZZwJh#6eTK3p=BA3k1z5`1*8Jv+QUH?dm z_q@>!kdl%)mCTz!PZQLwwo)rxiBwr4^|Bc`n|{cOG(yI&rhCndkB{aeYib-Tn4b*W zRUwtG3>~I+0z7d)z6%siDFuA=rELe~6|5o6C4)U@a3^d-x@+o849o{5{9H&!z^A;q zyRZh=T}lzdJ4|~81ti=LderqC2Kt@~L3(=EC3p9o2YG)8IsVR`YpQ9fB-`CQ9PQ8tQ$m&W*7z_Vjz>RrR z8@YH8vy73o0ZhD8WJ2N1B@km+5zkfpWg@u9dz^ zcfWVIME)>JrA6!K(gU>b*0gUt8Fz2_Wd0$&4kN)OGZ3Ic-&6U^BW>*hl&c11dh&3fY07?ogk z3z1P@X07-rD{su7Bpq^QPAu{Tm~Zxv_|_Gl!w=K5VU8oo=AnpqechY6KllK0C+OOB z;8q+!=4nJRI=X6L`A%`@>XgEaZ!VsNx-+9|SMwDG4=oP5gj~~-f3kHJ4^PgHg-)>i z89ZhKNZkZaT5b&idI#uIlW(VV*~{m+nv*thQzVv_>7!7iV796Nij3D7938XLk9i4x zQIYiCl(Yp)!FJ24ZRN$4*l$FvRTa`0_aat=j@UXM+TcIbGv(^*Xi`W*4DbMKYMii;XxKUn8|%bA2dBcF;lRUmpZ2gP2`NQ!T>hFIj|lLnGV z_pQD!?rxh#Asvkc$j8dR9`2Au2vtY~4mJodnGQ111Kt(${jlt6_rUSqEPy@%N>#X9 zvr3(_)4X90ugvIjQlZlLgOJ}cS=5p2^6}G7_ z79d;iYHPtdKbm>fx&57W2mRkbUF$CZDO}^ciiI|qIZ^iTVtk-4)VsO!J0c)>-OWab z0?edup3AEm^8rl!SQ1WugRDfLm9PO6BoIy_-GozvDo9A|p(E@t4;0CO+021=Y0cQZ zi6TWd+oE8+LftC=_|-<2A=jLPnn6Q0k?9%L6D=gqp4P6kq~lkZO|C*4UT#8arnDqdRGRCC*Ch`!kN)5xXS673sK(xlH+em?*<|c^gmzZ%K)@9a%x@kGTdiKGfgF+F4o(LEx0B%$4^+%*3 zWQbZGaQh;YW%+10y^H~#5pqt>zn55o9l%;7X&dgJ3BbThwsZSb(;MUKQ@4iJh3GZVl7U?C`DPseuhA z%hMi_AxYeywVR6tFBG&|a1fCCU#aELLWABKx5P}L ztH+$H8~e-jLkSxsW4~4=uydXKWKpSw4w_kxGN>tW&NdOAz!8da^hped1_`7>O}QF{ z%O3~|&d2>5J1aTIYJ1E8B1bZd0pqj~(5St&vy+=k$p^RGMbaV!C4n5++5TfF+qfz7 zpncofIIyd3-ryGJNW=x{6IcR*g`Ms1zVMka{l5VJ{QP7sN7Ew#|CdaK5^6XMV3n2D zC5RMXS%*jy21BtYu+e)UUR|_TEjX_^O;%$q+KP$=m!(&PCjOZ;19D+6-D;?b^Cv;! zu>+fq#;Nk0>f?{$X4EYS|F^#eAWJL(o!jsMV~>mzW8q&;hEJp)aHD-nqGsC5DH^h! z5v1Gw_rBX(`vmTiidQGOR0c$3!VEAx z6Q6!j3IrO9i0xOv1~o>Q2$K2V3S^KF+f6>rs5_mVIgkr=0jna=+*`$5nUwKnC@m-` zkbFQy!>2BGouIQp_K`8z@Ep|=Idb3(aD0Ml<1Upd;jB8qkirz!R|N%iK{QXZ0k)N0 zuC8-Y>()krLSFCI-3uUq9Ayj*GmVh|JCUK!K267SL~Mvj{I7k8VIxNW3wwV;qr_^= zLfxK!of}~aF!D|`c{+BO31lcYzp=fK2snW6(E1>te;k+m6E8l(AhR3I*LYSy$0oM^ z7Xw7jkY)$WP-J1Bq;RxU$w=n`&s_2w7eCzx#c)_f=An(fi9AVIi-jtSAN;Pr)&jtx z^1o$(z8b*r`Yrb)T2hm>0(oGS0u^V+jBlwLf$nGE*J!G&^q-glK)FV)n*p&IibO46 z1(r~!(lm7K<*m#3YCm{m!?eRc{^Nj6e9=KDtful~+aPf_{dciJ7=FBju86#m&wz&= zNii;N{{zD^)M=SkKB|puqhs7psgN0<5~lq1(ZOGB*`r_>x22Tmx2eyh+76qRz5? zMT4G+dtK)VPuB?l`UPLJgPR!vfjK4|&{768KLIbme>y!$ZjDB%Kcp z(`^=lr!*veur*X0+m(2iLqz-^-k_FFdQ#lGh<+4|JUA}yRU}jGG=B}I$HAw5&vhvZ8X3o zHieIl{5*Y8NBQXePt#jM0^a0t&yty%u_=7v#e4tq_wJSP{pMxW>BTAWYT*yZy1IP{ zz!MPs?f-6Rp26_;;hX(eYB+jL*nnke)J#TTU;_ibsFRB;j9GPc<9Y^T^XDy>liN=x zx1YVsHhVX3Sh+SZ`OcWzn^9^8%$p66?Q~xzwhD;=J>TecG`{L^JaEJ4yy|zB>yHCn z(r5brNqIb17%$t~&Q2LQ?XMadiOixR_A6Ge7QS;FxQVgt@$r*W_H5am$s6ZY;q*M< zkAu?01;CNRix)34#=iepVUTcu0k~SSXG5xpSA}4N(|NhJH zKiYC>@q>)d`)xlQV4idO=_9MdPm2nH&GHE^zFl&Q?f@NGu-mNaOU66kLgQzmlYv`G zi^bz>HohnW%C3-}>n!L{S7)c@Go#_m86O4*;Ifi!IX9hhDrY#o%!3}bGImg;!P2`}L)}yHh%(k?v5WTSB_KySt^OMFgZ9q&wt8H%OP#-S8W}YrTKPyOwxd zSI#*z&&)ir_kM1avZ5>+GBGj)0zs3PlTw91pm1M*5aGcm{~U+Czy--sPR9iTA;5b5 zff}K^5CtC+xk_uhsyUdudKfvIK|DM>*sSbrTuh7{&Db2AEwYYjnsSCi#AlNFwx#cmTva};)S8Rf?uSn*?8Jgyg!hPfVc>riBir~ir-C^NvW>n=kf zhfO)=2TK$vM~cIRNfcm)AR~uKP{HHjf(t4W1Go^XD}xJ1Nj|t3D~p30`~E+>;k4oi z5~iwEugl8G#g&wj61u%@ii?l`t-c=DxrG$`F*7q$I>AGPJ-xn`xjFvB;kvJk7$(8& zy?VN_?<$bfkYmZfkoumMp1!cQ78?o*>h$umzVQQEcylv~ z-sx$a-)XG9w`W`bty954@(ZhX$36NwmM#?Dy!ecx47D2?^-nkdXg=DVl`jo@We=W^%>h<3J`Xxih$}u#eX|9b~Hh ziQ>>Ja<^tc#N6C?8f_Piuic1A)Rh(12jWO>HzFwhJ&J@$1bJQTW_A~bcX#+bRJ-gc z##DHmZ_CG2%xdQc8$&NQIYg8yMGq!W47U5+Ao{4k43CcXJ)CqpO!6crC$s)CFbPDC zMtXd@S)=RJDxNlay1#;Lw<7et`QyRB%G%IKf}1w+Q3nSTIZT-;m9Eo}I*F2o2BxyI z61M&4T4;DU^_w^S-)tJ~mht)QSE~2FqLC37%wYZ5DsC2a3lfihb(;v@j>guLvJfe5oINVlKeVYfot|j>yT?;iPQ42b)?yOjX zS7ah>VxLy=Fec- z3oS16&3gBR4(OH-&^YUk{23yC0wTBTFmsK(whI&cT)c0vk!(m-S65FjES`xzOk|~GWvBh=HNyw|=%|zAPLEqpY8wlc8LCYN(XY{GO>`S=ktirA zG18bn7Zlp}iZQ*Smtsj}Dg_P_lUKsMoRj z)l2fLDf#&cB_q(y?C6Ds$vR)21;M1*zyI?z|L<#<%ib7PjdZD?y0SK>$p9*~I~bE} zpQ2xpTCw8(aud6aAX6%Gp-h~Fxj7wF6@y!t{Rnox+reD3%O1LoAfLmk6nGJ$r@H7n zpKBH@6{x_H5{7Ki0CMW2$VlO6rwPO`$oHPB0fVrWVkL@La^bI$6$=a63YnZ?k*v{Y zum25>OHfcyx!TZQEY8H_plL{ z8ns|O^&P3wuoE2t0fG9OVf6I|adC0ayPb5M<>8T$o{ioJBv19uMets*N!jXm`jg2fkiRjG`9?upfGJa;Oi4)@c!gC9{D-bC zaa&s(qL*f;7jQAv4r?NF?gAdiu^AbJ(BvwY;xxEDk^ROBU%8_ia{m3Zwq5JU36w<( zIa+SQ8K&-V-a)osZIkb!i53B;C+KD^AW!a7ZyX7qM3E}iX~{E9lAPoA5SFK>XLY07 zW*^f39tqcv3JVXvnW|-AWJfP3NYeRy&kU773=a&s(CWc{a2@9gTY8u8!(hI-(&Dl| zU5sHP_@~uF*435UC!#!7w_+ei&;yf%BYM5^mn0#W^;2>d%4B?is{?8Z-}0zUf&7} zYupYrfmcR!ZdqA67LqPf)oEMyHwhFu&qx~33-kRu^`_o-5nI^jx-VDQ$M(Gfq?-86 z2cvKq2J`Q~ei4IBI5a+PVKz86h7Mi|LJ{3|<{faw+HIa39nbeRS@t$My1K~p^z=5Z zlk53d(L`9tVN&slsqf!3+W&dqMRP%&JUr3lV926dKlG!2d$E2*u1u`4vUm@ z^!|2!a1f!iw6waej%J%k$5ntV9E~LW<>@3~&b>%89F-_o^!c`T$(~#8^)6pOzq2Kq zs+vaNp+gM)@4^CQcVA=4m4pH$Kj7tg&b^>pf(91_lZ-45%%`?-y66LeUWadHpscC< z$B)wBT!MgDe)PV=u|@BDadGeX`1n%g|DFxyeYr3G-I@h&LScsOBfiC zGYdioK^Pesc`q2VGBP3~BN1&{RhYqN#Y%ZH3FN|H2qD18_!1!fIo}2&Dp6<3vNqMH zKt2kUpaMZdroRtbS-ggF`o~8a=fhU3X*zW+Eu7Ox;r{;qIrnZ#EG(>M-#bna?=0-J zh~d#+DTQ{YB8ph2*+ut{1F@W94XjfM3TVAc$~3TGCn0k%7U(MUk}L zpZUsT6S-g%QxW%IIr|fDu3RUiyqu-{Q&YTopDy9@qo-9DIJ0;;0&d2Bk0jvs-|6h1 z+GASV+l6gNXk=o=EG-#8_A)XulH17Td47{TpC?U;+11+%lbf51h>kAvaD6mcsz%@3 z+FExVVJx7oT;2r+!r^|XJ@@KSE!@PZY9=$kevJn4cga=2$+J1lwXi3>-QvScO?JOh1R7L z#*q` zkFz}ZHWi;$m-5{^q9%tmbGr{9i9B4a%Xn)f5%-<%Wp}LEml97m?n)FxLxULihXyrc zBW6v+w9`hhsp&xax1SPd^hz9|Uj~vz-_zidJY>%G!j1h^0Rx2vXhO`1dOP1BQ}0L^x&oD{H+gAmVyfu)K-2sLjLhjzf|Z`(RC>+6{zL(cv586d#-oqJ=HZwue1W1b=f3 zrCUwNgaJg51B058g1S`fq^3%5=dathJ(Z3gA9%(5C`UhwH& z;c^_FGA{MUCpP#GY2nDxXf**Z{;wHNLk{1nXRkT&Td1!6$-*d7tDD0`oW1e9sxxo5 zB4S@E0-=sO>`pvRyy&`}p$|;5$23IF6sa`K1*m3T$kf-8OD!8k3A&WkMJQN4b6`)S z6=;@WVPp3QTxAb#ZA=!*0tZC5Mfd?E+P~Zm!ap_H*EG64T-()K&qfDonKJxVqr5Wb zP<6oH>fV9gev_VM8`BH5gmE?a`{GmgYKwoPbN=7}FKqhnFg>=xOfC!UMc{rgWBPfy zsFWx%*ZT04 zn))tZegsPEl{PON5Xbs~Z%xd~ig|qWO-W4^KI$0XI$Pi0AG+ns8%IbO?ClOg(BUzu zZEBL0mWDg18lEzJld|!cOS>YJ3m3QKDSn0S(iMuPzy8lgkODOv)J-8P%}y{NRkE-v zHv63hss;DBLQRti>jr+ef4CrSg|7v?Mwi`DBH%BJ6;IxQC$0LN2-CiKQ)9433X0sU zgGNKG=(_FOwVNBq1F1BX2Nq~5jKcJK*#oFXzcvLDmPLl|19s*5t#kW6AoUP=zBNH5 z<{mQdhxOD`)>(79O8z{09-q-sOyJu?X47t{QPI7cP`Pn!xQKr`<_eafuw>TywPvHC z2}va*2LS?uf|{1LZ{1H?TAEPE^DQVc2CRi$w*LK#2Btjq6tZcRK#kLl>1-12DrLp6 zw(ITMaydKxs%W|T`?tjEEE;ja0)wvz1qk0JcCv+&pTR%iPbRG!Jh$TbYz-6w2NQzP zqv9{x~(IdibYR z>!hKtPii!aFX4(fEpU7fjAFIAk;J@zQZm#^^inLQV-@~HZAkt0?^d$_nfNDY@PM%h z3V+L~nv)A)SN!|N-)ZcIV*)<2s-RGT10jCSz4ve-%8Rh+7tRvuIhUv5Qibv3$-@Kw z`3V314_o1Ur92USk7H6B!D7Xndo5YM97P0nc6MA`-0DUbjHz6yj8T zL36$CkPmmUH;(*W+aL8O>$B_-S@BZ5y9y*DB17-1+Rl;DDMTJG*P87ANGvzn=`8c` zQ70i1u<4a>I7=lZg^^6}2KH_RG2hY)=k!7u-fO$UDk@?&3-pfl6H!x8M8fz|U0;L^ z%@?n_R%vNiRa^B)e_vxYY8&K|if)Ox|Jty$q+OCf^IC8B^!9?Hx@QDE{da$F1O^r{ zK;^V+jNx|2^OSm|>!|Q!YHa2!i6tjpiP7xa_(*D7-7xOFj5)q<6eRMZM7S(#I$F;Y zyR$Vei&t=K1!>TXOBjq~S3FL&rR@vzjs_e29lZY{Q;J8PAZvbCq@WRp-}pFP6cWS|7dhomyzE?eZ{*9RjUKT8_WWvQbc$W8a;~M1uysy* zKjG6yAHt>gf-Q_twb1TxMYQ?Bs!AE0X2?lTA!LH?Ladcr7j|{g8ceCi&yRPJF)@+{ za}_pvRi3AaR-%VgP5Fuu(XzvG4@T^pt9}$(G959O!lIHowt~USZRrHRViC>T4D?F} zGAYX0!_}4lA%Swl^WmsTXPJ?ewLe!lA%MuPlsx?R4mA@Kau%P1jHV`j$J6yE#IPRX z8>`g!D=+^(S!(QB4I>JzX34KMlW|mag!T2WiRapr)TJ3_Pm*H8#HCk0el8N!|r zPVtuV^%VkzX3@=U6C1bP5-vcdwCl{#c1JUNN9H22XeNGYFoUxoQL6q80AC>GPW-*2 z^x}UmaH`Fpot?eDy$uVpw%dmX8ZaVYfzU#eBOX?Hn5kMi%G2~CZHU-^h5U$9G} zKNQeRoCnflQ#&47!gg>WlQIjlS@Q_61nfBA{x}%-b-zkpPkupr+q`D12(}>?*zB?M z20n2OIYzzV8$(Gnp!71&iQu$f;ipC`7!A`blF?8^$0gD!QFt$X_arrRO#e+_yuNCg zikcKFZ#=@!@~w_+-1bxu?&Ce0OA4o-hZ1a)TSLC=3kDu8$@X)Yke=X|cn{6FSaOiV zzwY?#>``kp^oWqqP*`73`!6&(P%wXjRD;5!?Pk@d{74&HT9fy^aaG~%lm_mgUPvRl z9aggh)mPSRn5v+s(ftB{bq!));ZxczfBBn9D$k?juUU&}fxM-SR3HMz`x7M4tgVXM ztG?51Uq?Y`3UE+x<|hSJ&*Rm+Vfp;l#a#x!6Se!{Lif_#a5DX5nHGE2-+BjBXjue) zDekbnz>ZUrGbUPbC}sTge1Xnus|bNO_%MsY0*%u3sTwktyV&k67nSTcvgU2iA`P{V zOqb-#ea6p1C~?ZRp}{lAhdBXgI!IXPT*(apX?=cvhG&k9>+bG`%FN6p z#%Fu`%{DmMf-?qR6Q2%LgtS}6pmU!@sgCrh+)BO5 zpF<O% zXpd%8`+-?wX7_!=$gyWzP0vU8P-lps$@GxYe){!5MRR_WJy;Khy8D1$Tu^ z*t+Xdb{G@A3}1Ga0mvJ5TW9}A;P&p$2>5rYL#Qs0&pUw{$@scFZfFq2j;|uz;zeYX z&&o~i_TQ(NqQeJ1597A9JXIB&09_X`xc=aM*Myj6_y0Pg|BWoE4HmIUD6C9`IR#!< z8}&}qTdB?YlZpD1Mny#tzH_Dprs`cHKW!eq7CdQFV~=p==*Bypd@Kt)_4+G4;FI#E z$g_UH5yMc`Gwj`412qjBW#cgXBv58cf&8@9+^~Q6W0cH)Mo2NvgV~1nl;03sJY3Kt zBx!FX0aV-@js_v$O9sfwmxhn)XInG>%dpcbx;C6AT)QJq_m`8;avwX#@(*{(>K>@S zAg`~FwQ+n>QMYra$c;dbhGS5u>ifm9=XB$$SaAc8Ak^$RRJA6zkiv)!^nJ)%t0`J) z9|}+dOX=tkeOG0SCl^Nc@YvnE_*D%sZ}_Wy7zimF0hXaJs=OoRmazOmqi!Do0^e?4 zQnc}J0%TQj4z5zZn40UOi=mH9RaXY|N?1SaPr`$ysk?Y;3o}AOU}|W#>Hl7UbMXpa zB{|{gR^W4)kABvlu(Uaql92L$`upM$?SsD94x6IaYUM8ay>gUCJ@pN@gq3n%-f(}~ za5^P>*;Dd2d3ul0yCU`;fjME$3?3W&X1(i|)Pwn|00BPFiF|SGT2myOEXXVJ1ps}p zQ$NUMh4wgXAH>dc-B570Vo>|+;^SJU?g(zGiF4r8$WGPRjA@kowAoD;QcC9w=J0aS zS|HhXGm1Ptb)>$qCKvV&-5N{~eY%mQ@C)Tz^G$BhhumH-J47wi@B|NZq6H;C%Z_bk zXqWL?P3ai*gxfV9{@lx6NeN8O!nSEopkLo?P|_{D+xrzrDu3?RdtX@_#HH;K`8*37+2DxEWwJ|CDD!Nn1To!-0nzY}p|2 z*tpHhMj=;mWe`GbmK$L+963i<5dkU%3F zPszj-?UogiOt170FNNZSy!U1vW9HspD~V>wJG?O2gI3_7UW{NZ4fAYtEux6m*N`Z> zUjGH|@)4Rq|ChC(9jy-)2?QAnr!Unx0I z?iRt;fQ5rI0tP5od&*?`PIeT_Y|LEwWy95*G)@0c$b3AD*lj#khOaXbn`v!K?gI7Y zd7zrjlkAaM)3HP`uSx5O^KKf7F~aYr+wWM&P_M7@bw%@dseICIw$j3g{qzS(0_o1- z3EVlxH$(54o5)08W{D_?0~2n1hOg z_a4sQ%aOQKh(8YBzTme0H-8)9)U4^t!unEa$m$ACoL>CMj4Rk@U(NKTGoi$t>U}R| z;KJSzH{kp1kC~7YPP#vHJTj%BGU*D=tJvwnB6l~UHZ^H4B>*e_L2Om;oi8NM7qREfXq z7}(AAbt_E%(8gZ9*13=U5##-qeb3k*ydV?VdAV}yrFuqqG~&yuEyGXZg_B}svvZhj zpXn)LZLgteeW^&puGfQ6$Xpr9D#gNnB3sq!eIIsCV&|)*?Nlx5YTh#3$|6@g^Z&Ff zg!KiHl&q^MT})qx3t267pZ(bMg9^NhQz?LTq*Q;uc!QG*RUs3RCsL`e(5#0Z9xw@? zV~Ang{)3tZ#bej++EpgDwwe$wATMNo{VOY~`B=79a`5KCL79h1Q|SlFM%0q_U3x=< zSmt*(j&xfB=%NAGj0yQR=3_Gqc>`NjH!g3s~n&oH>Xf6Ldi;i5aX^N`YEmFZ&E>=3e)YBhKF!I8_^-jPrR;^`9Ah?DE|>T)6)-OXC^;1m?rm zSC5@~Ffq7M9&5uZ+AF;E#E5`FeQ85m!Z2GaY1!YzTgkmBUEMpUHzmKV7_b3IGv{wc zG!iLlECav1TYi%NrvGOVpiG4{vp}d4Ex&QNHcsB+KdU^pA@_OF>G}5v`)`zVZ&aWhC~$IyV7^ zm`exZ`MHESTyj0O&yPB|@^J83?3p-B3^IvWhS9QPT zg#wUn@L72>jD|fDzg^w@UVoQ=(rKXd{(aACyN}L;*q7_0Ws|ebesjY?waw`NV0J@_ zi@T(Ml=oF({72AGI$|0d(sQUcB3IOp6cujtK=sP(%bptraG-+`Vg1JK$ z<-{8PuigE$d(He)lR#d}nEdvhq$_KKYRtpl1z}Z$N6o4jSVVY$-Yy99;qNrmPaWL3 zGk7PMh?Z7tFMV9mKgFwOG8a#Ty)XQeHd~ER%4h&^a9+F|Zkst&txCPgPned9t2P%* z{3UltWa;UMahcZlW;Yo(bAA5z6uk;N-8;VO8gGkN_zrgEUE6%@C-Mo-dnL6WXKK~yUo3uZl_o;sGh%JS_irP#mWK4gj!Wb>|_h zfIio*x5S#7nyR**W#Sk7w6~89S@Qlj-aB0WdDZ8$B%`F7^}{;lDJ{0~fx1SC}Us_+Ck4zFvtSYPGIPZ_qsoR+)-frLAv6%krQyE%W9 zAg&9>D4uUPL1KaEWCHmB^535=BLKb^2C3VSoYyn*Dn_S>NYNWNb1~M3LD6nV0n<}r zrADCy^-|1AIPh>wL%$&Sob;UYjk~|+?0Uf01(m?ztY5_0tTwm;WXAz5sCXF38T02C z;s?5Yv;a|Vbw4uR`z;DkseLQe?Ds{%+AQH9&mtuyrNocfI6RE)>Jobepx(a4^zE>F zMnv+u_X%Q{*(TxJd->1TdmDQ;cVAb_e^&G>J_K4SR+ILhM36*) zcy3nYX!ESauwZ4U6Rs9z;0JX<;{%~zx{K(CB)(@z~)hG}OWy5E}Vx6A`f0AR@5`C}rK}sw(+i%~UYv;OEb;jyl%t;`uT8#3t z6wL5*=lxWY|0t>BkB83AC3IAw!>5GmJMPHwl|y}JXKQsYreOM?XwSA|OXTCYgj{d0 zbwdLXolsB8D=TBxaD0a(8fu2cU?4lv6v0}B;l=9YC}Kky*d9c5+xc~wEgGLASy#Y2 zdGYuhICqKX(_GNXs0|7FN1uJ&qrC1t%u9Tb3-5~=ZJ`GlLDT!z;Jum-1l~YJ1k%TI zI$X}(j~^{4I97G%g07Tnqvr1zcn|`!4OoPY(HX-4V_x)!lX&&^x?_1|EyTmw>dS2?0=mnMg*kc_| zH{A%uR~@VU5rv<3MT@rx9=n<9N|pAN?FjS5eYHbul`=PZV()w-iIsV{}6Ao z)=$#57dHG6YvPNaqO{q2;xBw$vbfg;-ImwGq=mLS+uN8iiXsn(T$+=^4cpYVqB*c$ zJgq4&3*V{df>n!DHu=K8<`6&^YA^cZyGg^<`oH`3LLC87Xwhb{}8LaPte(0O{x_K*?W-K70mOFN~ixNf|SYR>a7yBcubMu+nX8B`2HAz!k^J#ET2D9 zzA~dzK5hc*pB0Foo0Fu!@5oByJrI9yzj>BY(fBVJ6G0FO9?rwq?gdE)0iCOn+3^S) zF2dZDGgQq1cWbppZ{VQ&Nbe)Dp$!{xL%vWfd(UU|rXD98 z1`eD)#I!+BGK(X_!`&F7k6laj5bb8i0{O`(&EnqN3&z_Awu_spO8&^jCw@&E^;no* z1Dh!lYLUzi+L3R@riTw~!T}Y? z8*~`&%C~Y0m$}2EcJOZfvo(qHe>voSotYd0PRA2z+U|$5Yg0*H2`$}j)0O0iF||4S zu$Fzn&Q6A$&J-MZ^#C-IKB+Oy{g}-6(zQ^cy}lh8Ile2p`jam>JDc=XIuU6Iz_8GX zP4uUS@O#4#ZD7 zq)o}ZO0fs$=WI{zLg}Y*ZR2DZ8SwgN;Uh9#nn~M!<>MXD7(+@%h9!?xcF`{jC=`No zTFWM{(^x;rum})|`upar70*KXuzx3Xqtzn__dpMv=*yJW%|Yixe4@E_@?G39b|quP@1U8uWu@`qP2{^7#;0o+yU8xBA> zlfU6WnscpJs##5tZrr=R`+tn}+bk1T7}ICz`1W$UqQlTnpif_Wdi=uJ>PBEC`j)Q> znUD*66LMVv17Nzx^Sn>+e8vxoh!M%fPQ^iKKPGd|v;W*7663kdSBg(lFKA)CNZyaV zNDRK!Td@%n<(DC5*Yoo7TKMJ0jMa(HriWOgZ9CtPYF%8-gpj8)9yUE;Upt1;O(LaSx==C=HNY-=Cv1jJh}hW4AW>_+ zPx}JJ7qKm7$&2%I0Irx*`}>^_)6>b)Lnb)8h@uupi%l9fc4&Jta;YqFOz*>ub==?# zL~9{Y{r94zk7PnMKTd3uk3>Jr6|AW^-V1HHofN=qtd9mg0Yohzj0Ij~o zWOL7oJD8eXZF36B{OShTP3+*=^jGo$H?ir9xB81TIzo_%%~I-A zWwkl(`w1V10l~u^weJ{0`8;qt3pc}VL&zDO#frJquPN`9?(UCC#F73d#*#`?#iL_B zj_e^04hX<{x)-n~Dr|6R#Rts#pv8=gsDS!XqOS@L1;0945h7+g*c+_%>GSehf+PF% zDW)S^ddLqE^nId@sLBoU@=#dF`OX_cr%SaJb4(m`e(jeYq58AWqCsN0X+fkT;wfh2cL_TC zx;8Zb&(!Abe5d5?MB9>fTYEc)*SYDOJEZF)Q(v%_E@eYLw9|0^5Tl0J59Of24KT`x zgcw5co`js;R?{7ONKUS>X{1WEc^M z*I9)LmH3<6@V#4ht#QcWYRvHiB`9$c%3q98&>Gzi`KYoNzVqa0#(cX-zcj%4)jC@` zXbDVI)1G{Hv4`V8Np?sjT^(`flVLFWEAA}7zjt8{3nFrSiEiFV(e2Gzp&Ip?k5ebN zxa57h89Sx;&%dJQ@;zV#Q7VGo8;@gJwR_HZNdP-Y%1fwfQ3-U|KGMk9rTl4wF^hVp z@Es5G>)s&l{M%~WkDQX8UUxnG`!@<85Y6lci4S96C`1IB(5+c7%~ps#o6;xUqobp%t#B^FKkL7hbv3p}#xu+C^2UoVe#>_T zABeG>(DTjyFnQk9n&;T>87-R40I+X>ovYCFhv^V*Jt>l@=s)(VVUXi_WO!JjuUN-X z>?mz~XLTCvd?3}>?N3i;Xe7GwsAJl6#b<-fFVICbb?aZxtW`;iodYyRCL<|~fTj4t zMKpi*T#7eT!D8GN0fXN0mjmyl$uH;1Tc83T$*@Xnqa_Bgj9{0sJ(E&XTnk%au(yXq zaE!WS1P)TT=Gf-P`00apVtXhA$T~w#6I|);k@BbiDf=4+Ocs1l_bH_Cc%7$FFFdt~ z-{aX}BKBdMy&{OyP0Vd6t}>)9*E06VNN~lpxG$Ca72d7r`9H(K zw1M=mRk{t)+OFq-8Lw$Hv9A{(^Zyk99m8fPDWAGgB{(xo;1kY5JryrjroIUrE(1S_ z-DyYlU$u3f3_pYiPQ5uNZ{F8AoU@?mDr2+likD5k$PaG0OddwCWjYe4{pz=+y|r@EQknKh(5vlD$rVeEL2`U z4z5ym)(A*F$C3CEFWdFWq1u2Q=xti}h(sng&RRSz%w(JI=c=A6Evy!TvH#0v!ChDi z^Zcgl=1;Z7BVX+_2`IfX%H+)4rDs^61Xjr6jcXutaiV#F!XG^BTl+h2-LBO~uvuo0 z!_jiZydL;;)&T&craj-_=!jwX6BObX-lTB(QoiW3-dJY%!DZ;Kvb_4*yP5kX%ZcDG zu5ot+ZJ9*aVLvafPzaT1x%snhk&23n`mPm4?)Pc<`4=wt~V40+zO8! zcF4mkUp1AB{H7W8n6Q;ilBKPp%5X2yoq*SfI8#K zd+tX!@_VO7(xP{x?UG;JuP8fy)Rst{9Jn`(()ss*DJtuZWVe~I*xTECzC7LNEK^CR z%0%^Ij2lf?tPxJ{=E?RE7;8QxWlS4!A9|YlE5xwr_diL0Kr`=x7VFyQ!{p6*8rF6< zCTdjZFm((hh13)6$53(ERpk^ia%+prw+^o$${jKU2B2_~E#^uOCi?c{%&wvqmzSdg z%9mzy5J*q2Wat4t`rZA|+ACJNY?_L0j}4vfIc|+SM^>ldYzGD=M9{>m3IlW7(zCK| za^F>M%?C1^W_lsZNtezl|lPgZC6ge`%B`gz27ld4Ib3td`BTIWNX2BGpJZ!W#VEM zo6aoWqduoQ%R3-=OG^C;TQ9Ruo)C>(5n}^jZD^I&jQ5w`jk5{cZd*?bF8_N74qPeT z0_Pny(+9MeC_@)|1?~C89}ihGsqoAUI!L3P*&SHhyUWBd)6FCFK=xvEwA3Iq_m#^c zeszEQ;Q)bBO>=XwHDJB-M(La3XIWJAzro$z`s<7w6@2m_d>`Y}(Ez)!S*%GbD7LL; z_B3qJUv>42ZJnC;L5yLhp~P}?gKpsr3pm4CO7TxU6PV8r#$&(I>yy00Fk84@HA^8N zCdWD;w@i>HX_cUT!&Nz>X;~foC4H3C*e5(=k0F(Q>V>}`jcBammDqm&{_>=A1`gB<1&pT8sx^f>X2i9m`Y?b$wjb3{h0m4QTHSlYdx2@ATo?oi$NhdwZz&G-O@D) z#j53tRy=oza!PK%*foYxMQoc41*z=7R#=`SL$^28ja$M-Q&r|>s^~W7*~P~FQEzLe zL&U8y>%9y+V#?_Y_O8@io}dR?c8<+4nqR;Z1lRg0F9W3A7#}##s%ddPAB#$-9Q#*r zw9GPlGL|DuM#6focyl=odoV=DmtGlIc{1p-JYgG)UdJ^YKj(zBqg0CP|F=>_2+8*A z%lOq!lHJBqmu_Z7{5?Nqn}IOmgG&o(GlI6Ja{jD%?ib{UT^<{+j+bX2>dC0&WSp(l z;kwDF21oq&9Bo#H3buFHUt8g_%;Gkgo#Y2c5s>Swzv!NBN+g?L}y}`F?hdMcc$OG1z#2Wv%;03as zS^j)}^4wT@gN**4wfl`OXx@m9SsZV1a(3>CCAyDLXo)7Rsl7qRIBIm>ao*d7 zl1SE|c!Pa{38;|Z)_f%~L1UPa%%PVD(l2wioJ>qu{DM^H2TD;2H`Ab`yu4!7yPG`? zXFqK=JOhH8jl=1;6fU_%;>gh}T~0aeL=VmY#pQ3XirQp;sl=E}@6cCK5w|@ty*^xY zbmH(;-8xy1lKw-tSy#E`#Bso@_VdNF-A|R9R#)4I$Z^r&iR34zmNxY$;ft!-rC`V_yk)W(&emrx zyeI(np*lS8z+vC+)0Z5<#)tI$X7^)AF)yplN|XDME-pT2Iy_+v*afew!R3<>IsxEe zzNNoxoqHC^#BuAeshTayG5sfDZ#LQaWy19RyYJ8(*`ccZC`G49zi0qE2TXSAaZ0QD zNsRy`Cbj5f(j#dU1sulF)LN8cr`t}5o<6im+co8(oQIF6Oz&%L@+2@Pdr?d}V}3TJ z_WqclgzLv7<=Vq+x!I52juXrk`Hk?gWbtctZS9wZ)!}lTI_o$^RHMNynw5Tv4Yp^( z&%d91T?KHnTLQQL6BSEJGMo8y*eii~H%niQVY2oQ0t=j2ynG+}wCIA%&0G8=bf9-YbOQ z;syn&WiR~{kzeO~G)o!yBQ+uQG&%flwk)cg%Vv(H`PVP(8nc+8Y0ku2x8m+$zi}En z?C8@wu8o;!h2q;0)i>Avu4oulGtW?68xToz>2D{n%Q?cf_TV5#l4Xjf;_ieqi^{LB zmXWj>l0xz?G`&7PlwgOPQ%6PX!1BKH?M;A*6_6D6vSK_SKvQ zT(~)UnqIR^ouqxfS6+v*>KeBVZiTo-r|>=nY80zHiClwI1I< zhUm#gOyq+h<~}|o{3QVM;f~UFSDm_dBv1JZ>tKgc70tWK>o$A{;=w-9-MEL&G&qr> z%*z0y6Bu$d>&34==jg_vOB1D@A~xDqX@DN7RAw#g8XnMqIbc_#dK-vd+x)U*ISeKA{=d2Qg zd$wFQHtEGxWQtY~GH>3qvN60iLt*EDzAO`PreTF@(RYwAl3cbiwsZLH)X9hIfE&7v z^8{?+8f@O@3%f9dFv+zQAViJB;RPCCnojG8#*ks&cMgc$a^g^smtDo!;4kjQq5F=P zOMsrGZuC&4C`|qrEV2D`$LH+-lGi;9i3MA6e;UV#>xbC(fBqA5b+1VCQ=Y!8Ri)GB z?yf_E$GmH>()2ygQhTr!}lqREUzvK23 zR8gK(aWS;G|8YE!hUfPcX@kF#Twj<>g#GdaDfy|q5wNy42-55ZO(anOT~ow9{$xF~ zLPCoIi9)ws#swF$DzkEm3Q`l~B0Wh?YCakQ-8DL=baN(fgh|Lfc{OpEJYOv{rcT`;-_qws!7VCtJwl;TyQo zG?k&3g>qYaXJ~H+&R8zB&}s#5l-+O00bnVao2F9ii$w># z&bsJ1k0+XcklfG53rls~>_1nC#f?INKbM+IqJD4Xzoh)w7cI(MR6`}k22+9LUqK9I z#2Mwv#5Rk3rCj;e*#Ck~fuvN8CK?q#Ia=(|EG;e-#X{wL&NpaZ^2JV%hPjU?f6f5> zE{K|jBzn}Afs>O;XZ&o9rs0>60=Mn%PqAG zk!0Ad5)!Wm{!{z*C<@9HY9AjG-@|tgTatB1?=>{=fEZP=Z?4{IdVNRZ!jwMh`zZZp1}{}vOH)FPG2*=@ zdV>PIv^(2Rmy0+>4?eiTwEs4EN<`b>Z)m(PAB0}1z?Nf?&3LmJ#>jt{x|9Z)YseB0 z@K0q%yu_CtaSk`0l=uBl_pR)rU@P~1xHBjE@C%4_L23f}ZnEFGShrOs{Z2YtGt7N% z73hS_-oZgOb*kivodPL<3K3Ez&YoeGe5C_A0TfR>BT-&H{%kP1tmF5IIlC{ez*@|j zaIBGeAA*ky+2`R!O~?4oso4HvH*7ch&_HqPzJ0Ix+7%S1=<8?mjBQTNkE%iRQ1EZJ z2e4fB!oRvIdx=d$R{LFS4M`(MAyTV4kc-{Zfq|eTvXtrbjZg#z>Dp zTAylx(QB2$QW7(fD4yN8r^vi@kqlPRpULeP9EEaVv5r}9L~DWzEdnJqG~}t6w?Ak4 zT`ZD9aifS>*>i^@hG|~J%@h(g*51C6)yhT^#Z?H!yo?~5~sl+3t zp^0ojdz%I|Z|#9}##3yYO5S2@-u-9+znb*#4$W90Ame!G<-iOM|Mk zvKpIf4TZI790{aWhhabnC#7ln&|fZLMoHc77bbwU0dAYv1BO(DLZHEH!1(m&O=5V2 z_)WPs^Qnoww>St27AB^c0Bpv-kGv>&*Wc3TI?B^ z_bzzaXG>NgCe+KQm;D)dDs+24fVvSdr#M(Cpn-t+FuF>EN#%@zC{>;@A;IJ2u8@f> zsJ6ab(YO}}$!KpESz_~h_mYd$$5EQIK+Zm_GS2o*#u}|Bm$CiuD|W$pidCA zm&1yRPM7J-?%*j8j}%N>YV3FrK_Cd_uip!hpES?nyY=BH?|I|Yj!${k+O_#fi+Akt z6jR5|w;qaoF9kJsk`$0&b-Gfs8P$LCXt^frOyAn)3~??9?Tx$LbORscVEl*IN`ndS zRr}k>1`VN8${l?V^zA;Rz7h9XYz7(y1Au98+$i1_aA<@M>{~>CqUV!tQlXMkI%NpA zQpZAu05M>-_x3yW6haYQ(o+L2RBzE9%U003(LYnFw)hJHe4PMj`Rrcnbh@Tv9ZP$a z?drWt3I7@W>*fUy(QE%59j+gJsN~`2+{t2GbC57W5|j|!+bDW7vd%+uO?pnJR`46< zoWZKR(&&tg_c;6idJrgl1FsI|>l)SaCV;Xqa%`{&h7nx&e&ux40U3v@?;A+SYC>SL zRxib!RT=ktaj3xkyf03-%YqH71XHVMCTSj_$@CYcU7-2lt=S0foXFzh;s)reKt#4C zH9H6T381tM$}m(_vF$NIgE%&m*8kfJ38Ikd5*!Vxj!5}6WeEodiLY#nacQ-oSfzEt zGQOO;_Ex);m!StM*b8_po#h%cprJj^`7M2z*c^DN zC5+*T3mV+}*8AakpRa~7NlFS?2hd$Wg>RGB2p@qm0Nq26>RF`|HxGpIHOVflNEsaZS2DbZA#{@=$VzFk;eVi5j*zUFE<4DKjG*ey?aJ z-#^0bMaMxEdYF@i=5`~X^Z4v^Lvl_85f<7PplATOBLVFcDF^+LqRAn*TrG4bF+wqA zd9cERp#{@rLG?vq!hz2iPm-PT8;)1$>s{YSl$oCY%-ZDVZkfc%gn(WYEFGW6+cQKY zBr4&`iQ%LnxhU zB?r@CCfuZ|`}gQnh9*jsyfRAC%A9O9gpARD7*GAEK+hD^lzlp7NyCS@ zd7x5=bJ`lHX=KMlOiWA+oS0CaYn01REKLMY$h`TGa}l+yk*2<$puqI~5`$krD={TRpyMT07l|A@?b| zS9{ckfRk;E0Ok3AW8!<`QnR-;FKeloSF2Q4k?5+YSsJ2JA=5Mh<3d_L9m)z3316(U zpG!5eXv#Cq1y>{989(Xl0F7v=&9!~u(Z$9mI>lTU2*Nu+AHBu*mJKQ^NfOemMc|TXi&pos6>tf-36S(KA^?k^F#&SQ+??e7W z9$=IC0cS=X$I>$3%5lLHDMrBlmD6IwybET+HgfzQKYq-(_U3+T8*q2b>9}9FmxQ%1 z1FaMm%;E1>(6nh<`hjE8A?rJW^9}~>>hv;{lv*g^n3SZH4V?7_u6y0wHiM!6@=ehG z3SbEYELj7l#kY1n$^tH#2@GA>v?!)^RngRgEXMm}#hC>8%ar6){K_U++;n`S(s1M? zpC4$?XxD=$noXOxOZdel-LSsB@n4n3l;^X#Q6n?KG2?e+Zg^YaYr z@^!4Xiv!m1-*rv|g(>KSgDqQ37#x7h3VwZi>;0x;hSSP?=&3dRHuO2p=0E#7MLEu( Uc^d_QhyE~ly85}Sb4q9e0Fa||s{jB1 literal 0 HcmV?d00001 diff --git a/doc/_static/exspy-logo-light.svg b/doc/_static/exspy-logo-light.svg index 1499bb4c1..7fd4a78cf 100644 --- a/doc/_static/exspy-logo-light.svg +++ b/doc/_static/exspy-logo-light.svg @@ -9,6 +9,9 @@ id="svg1" sodipodi:docname="exspy-logo-light.svg" inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)" + inkscape:export-filename="exspy-logo-light.png" + inkscape:export-xdpi="150" + inkscape:export-ydpi="150" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" From 8254ff3929a63ccd7bc8e622a0be3c156c83b409 Mon Sep 17 00:00:00 2001 From: jlaehne Date: Wed, 14 Feb 2024 22:27:04 +0100 Subject: [PATCH 9/9] fix eXSpy in code examples --- doc/citing.rst | 2 +- doc/intro.rst | 6 +++--- doc/user_guide/eds.rst | 16 ++++++++-------- doc/user_guide/install.rst | 24 ++++++++++++------------ upcoming_changes/README.rst | 2 +- 5 files changed, 25 insertions(+), 25 deletions(-) diff --git a/doc/citing.rst b/doc/citing.rst index b2837f723..f351798f0 100644 --- a/doc/citing.rst +++ b/doc/citing.rst @@ -2,7 +2,7 @@ Citing eXSpy ************ **eXSpy** is maintained by the eXSpy community -`_. +`_. If eXSpy has been significant to a project that leads to an academic publication, please acknowledge that fact by citing it. The DOI in the diff --git a/doc/intro.rst b/doc/intro.rst index 4d07730b5..1e8a9bce7 100644 --- a/doc/intro.rst +++ b/doc/intro.rst @@ -1,5 +1,5 @@ -Welcome to eXSpy's documentation! -*********************************** +Welcome to the documentation of eXSpy! +************************************** **eXSpy** is a Python package extending the functionality for multi-dimensional data analysis provided by the `HyperSpy `_ library. It is aimed at helping with the analysis of X-rays Energy Dispersive Spectroscopy (EDS) @@ -99,7 +99,7 @@ Citation in the scientific literature Given the increasing number of articles that cite HyperSpy and its extension packages, we do not maintain a list of articles citing eXSpy or HyperSpy. For an up to date list search for -eXSpy/HyperSpy in a scientific database e.g. `Google Scholar +exspy/HyperSpy in a scientific database e.g. `Google Scholar `_. .. Warning:: diff --git a/doc/user_guide/eds.rst b/doc/user_guide/eds.rst index d87c2b97a..eee7ce488 100644 --- a/doc/user_guide/eds.rst +++ b/doc/user_guide/eds.rst @@ -149,13 +149,13 @@ will be set by default. These default values can be changed in the .. code-block:: python - >>> eXSpy.preferences.EDS.eds_detector_elevation = 37 + >>> exspy.preferences.EDS.eds_detector_elevation = 37 or through the GUI: .. code-block:: python - >>> eXSpy.preferences.gui() + >>> exspy.preferences.gui() .. figure:: images/EDS_preferences_gui.png :align: center @@ -222,7 +222,7 @@ The description of the sample is also stored in the .. code-block:: python - >>> s = eXSpy.data.EDS_TEM_FePt_nanoparticles() + >>> s = exspy.data.EDS_TEM_FePt_nanoparticles() >>> s.add_lines() >>> s.metadata.Sample.thickness = 100 >>> s.metadata.Sample @@ -247,7 +247,7 @@ abbreviations are accepted: .. code-block:: python - >>> s = eXSpy.data.EDS_TEM_FePt_nanoparticles() + >>> s = exspy.data.EDS_TEM_FePt_nanoparticles() >>> s.set_elements(['Fe', 'Pt']) >>> s.add_elements(['Cu']) >>> s.metadata.Sample @@ -264,7 +264,7 @@ Several lines per element can be defined at once. .. code-block:: python - >>> s = eXSpy.data.EDS_TEM_FePt_nanoparticles() + >>> s = exspy.data.EDS_TEM_FePt_nanoparticles() >>> s.set_elements(['Fe', 'Pt']) >>> s.set_lines(['Fe_Ka', 'Pt_La']) >>> s.add_lines(['Fe_La']) @@ -476,7 +476,7 @@ Finally, the windows of integration can be visualised using .. code-block:: python - >>> s = eXSpy.data.EDS_TEM_FePt_nanoparticles().isig[5.:13.] + >>> s = exspy.data.EDS_TEM_FePt_nanoparticles().isig[5.:13.] >>> s.add_lines() >>> s.plot(integration_windows='auto') @@ -504,7 +504,7 @@ using :py:meth:`~.signals.EDSSpectrum.plot`: .. code-block:: python - >>> s = eXSpy.data.EDS_TEM_FePt_nanoparticles().isig[5.:13.] + >>> s = exspy.data.EDS_TEM_FePt_nanoparticles().isig[5.:13.] >>> s.add_lines() >>> bw = s.estimate_background_windows(line_width=[5.0, 2.0]) >>> s.plot(background_windows=bw) @@ -700,7 +700,7 @@ out as follows: .. code-block:: python - >>> s = eXSpy.data.EDS_TEM_FePt_nanoparticles() + >>> s = exspy.data.EDS_TEM_FePt_nanoparticles() >>> s.add_lines() >>> kfactors = [1.450226, 5.075602] #For Fe Ka and Pt La >>> bw = s.estimate_background_windows(line_width=[5.0, 2.0]) diff --git a/doc/user_guide/install.rst b/doc/user_guide/install.rst index c3b877703..dfe4dc6a0 100644 --- a/doc/user_guide/install.rst +++ b/doc/user_guide/install.rst @@ -16,9 +16,9 @@ To install eXSpy, you have the following options (independent of the operating s (recommended if you do not use *python* for anything else). 2. :ref:`conda` (recommended if you are also working with other *python* packages). 3. :ref:`pip`. -4. Installing the development version from `GitHub `_. +4. Installing the development version from `GitHub `_. Refer to the appropriate section in the :external+hyperspy:ref:`HyperSpy user guide - ` (replacing ``hyperspy`` by ``eXSpy``). + ` (replacing ``hyperspy`` by ``exspy``). .. _conda: @@ -43,7 +43,7 @@ environment, if you have one already). To create a new environment: .. code-block:: bash - (base) conda create -n eXSpy -y + (base) conda create -n exspy -y 2. Installing the package in the new environment @@ -53,8 +53,8 @@ Now activate the eXSpy environment and install the package from ``conda-forge``: .. code-block:: bash - (base) conda activate eXSpy - (eXSpy) conda install -c conda-forge eXSpy -y + (base) conda activate exspy + (exspy) conda install -c conda-forge exspy -y Required dependencies will be installed automatically. @@ -76,9 +76,9 @@ entered into an anaconda prompt (from scratch): .. code-block:: bash - (base) conda activate eXSpy - (eXSpy) conda install -c conda-forge jupyterlab -y - (eXSpy) jupyter lab + (base) conda activate exspy + (exspy) conda install -c conda-forge jupyterlab -y + (exspy) jupyter lab .. _pip: @@ -91,7 +91,7 @@ and install it using (requires ``pip``): .. code-block:: bash - pip install eXSpy + pip install exspy Required dependencies will be installed automatically. @@ -103,15 +103,15 @@ Using **conda**: .. code-block:: bash - conda update eXSpy -c conda-forge + conda update exspy -c conda-forge Using **pip**: .. code-block:: bash - pip install eXSpy --upgrade + pip install exspy --upgrade .. Note:: If you want to be notified about new releases, please *Watch (Releases only)* the `eXSpy repository - on GitHub `_ (requires a GitHub account). + on GitHub `_ (requires a GitHub account). diff --git a/upcoming_changes/README.rst b/upcoming_changes/README.rst index 6de80b390..18adee129 100644 --- a/upcoming_changes/README.rst +++ b/upcoming_changes/README.rst @@ -1,7 +1,7 @@ This directory contains "news fragments" which are short files that contain a small **ReST**-formatted text that will be added to the next ``CHANGELOG``. -The ``CHANGELOG`` will be read by **users**, so this description should be aimed to hyperspy users +The ``CHANGELOG`` will be read by **users**, so this description should be aimed to eXSpy users instead of describing internal changes which are only relevant to the developers. Each file should be named like ``..rst``, where