Skip to content

Commit

Permalink
v2.0.0 (#92)
Browse files Browse the repository at this point in the history
- Remove Python 3.5 from testing.
- Remove deprecated functions.
- Use f-strings for printing.
* Replace numexpr by numba (#77)
* Shorten runtime of examples
* Deg/Unwrap/Lag => closes #76 (#78)
* f-strings: fix existing and implement forgotten (#80)
* Change `htarg`/`ftarg` to dicts internally (#81)
* Always assume isotropy for {e;m}perm by default
* Rename `transform.get_spline_values` -> `transform.get_dlf_points`
* Undo #26 for consistency reasons
* Documentation (#82)
* Ensure src/rec are not altered (#83)
* Renaming (#84)
* Renaming all Hankel- and Fourier-routines
* `factAng` -> `ang_fact`
* `{fht;qwe;quad}arg{s}` -> `htarg`
* `{qwe}arg{s}` -> `ftarg`
* Closes #13
* Use `kwargs` for settings (#85)
* All settings (`xdirect`, `ht`, `htarg`, `ft`, `ftarg`, `loop`, `verb`) are now extracted from `kwargs`. This makes it possible that all model-functions take the same keyword-arguments; warnings are raised if a particular parameter is not used in this function, but it doesn't fail (it fails, however, for unknown parameters). Pure positional calls including those parameters will therefore not work any longer. Closes #14
* Adjust manual and docstrings, intersphinx (#86)
* EMArray: .amp and .pha are now methods (#87)
* Fix dlf if 'fht' provided (#88)
* Replace outer by broadcasting
* htarg and ftarg MUST be dicts (#89)
* Only one possibility for each method of `ht` and `ft`
* Undo #7a9437ca
* Reduce top namespace (#91)
  • Loading branch information
prisae authored Apr 29, 2020
1 parent d18c208 commit eeba70b
Show file tree
Hide file tree
Showing 55 changed files with 3,247 additions and 3,323 deletions.
18 changes: 18 additions & 0 deletions .readthedocs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Required
version: 2

# Build documentation in the docs/ directory with Sphinx
sphinx:
configuration: docs/conf.py

# Optionally build your docs in additional formats such as PDF and ePub
formats: all

# Optionally set the version of Python and requirements required to build your
# docs
python:
version: 3.7
install:
- requirements: requirements-dev.txt
- method: pip
path: .
32 changes: 16 additions & 16 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,20 @@ language: python
# which follows the `PYTHON=X.Y` var.
matrix:
include:
- python: 3.5
env: PYTHON=3.5 CHAN="defaults" PCKGS="numexpr matplotlib" TEST="--mpl" INST="pytest-mpl scooby"
- python: 3.6
env: PYTHON=3.6 CHAN="defaults" PCKGS="numexpr matplotlib" TEST="--mpl" INST="pytest-mpl scooby"
env: PYTHON=3.6 PCKGS="matplotlib" TEST="--mpl" INST="pytest-mpl scooby"
- python: 3.7
env: PYTHON=3.7 CHAN="defaults" DEPLOY_PYPI=true PCKGS="numexpr matplotlib" TEST="--mpl" INST="pytest-mpl scooby"
- python: 3.8 # => without matplotlib, numexpr
env: PYTHON=3.8 CHAN="defaults" PCKGS="" TEST="" INST=""
- python: 3.7 # => with conda-forge
env: PYTHON=3.7 CHAN="conda-forge" PCKGS="" TEST="" INST=""
- python: 3.7 # => without matplotlib, numexpr
env: PYTHON=3.7 CHAN="defaults" PCKGS="" TEST="" INST=""
env: PYTHON=3.7 DEPLOY_PYPI=true PCKGS="matplotlib" TEST="--mpl" INST="pytest-mpl scooby"
- python: 3.8 # => without matplotlib
env: PYTHON=3.8 PCKGS="" TEST="" INST=""
- python: 3.7 # => without matplotlib
env: PYTHON=3.7 PCKGS="" TEST="" INST=""
- python: 3.7 # => just linkcheck
env: PYTHON=3.7 CHAN="defaults" CHCKLNKS=true PCKGS="" TEST="" INST="sphinx numpydoc sphinx_rtd_theme sphinx_numfig sphinx_gallery memory_profiler"
env: PYTHON=3.7 CHCKLNKS=true PCKGS="matplotlib pillow" TEST="" INST="sphinx numpydoc sphinx_rtd_theme sphinx_numfig sphinx_gallery memory_profiler"

jobs:
allow_failures: # env must be EXACTLY as env allowed to fail.
- env: PYTHON=3.7 CHAN="defaults" CHCKLNKS=true PCKGS="" TEST="" INST="sphinx numpydoc sphinx_rtd_theme sphinx_numfig sphinx_gallery memory_profiler"
- env: PYTHON=3.7 CHCKLNKS=true PCKGS="matplotlib pillow" TEST="" INST="sphinx numpydoc sphinx_rtd_theme sphinx_numfig sphinx_gallery memory_profiler"

install:
- sudo apt-get update
Expand All @@ -37,10 +33,14 @@ install:
- conda info -a

# Install and activate environment, install packages
- conda create -q -n test-environment -c $CHAN python=$PYTHON numpy scipy pytest pytest-cov $PCKGS
- conda create -q -n test-environment python=$PYTHON numpy scipy numba pytest pytest-cov $PCKGS
- source activate test-environment
- pip install setuptools_scm coveralls pytest-flake8 $INST
- python setup.py install
- if [ "$CHCKLNKS" = true ]; then
pip install .;
else
python setup.py install;
fi
- cp tests/matplotlibrc .

script: # No pytest for linkcheck-run.
Expand All @@ -50,8 +50,8 @@ script: # No pytest for linkcheck-run.
pytest --cov=empymod --flake8 $TEST;
fi

after_success: # No coveralls for linkcheck-run.
- if [ "$CHCKLNKS" = "" ]; then coveralls; fi
after_success:
- if [ "$CHCKLNKS" == "" ]; then coveralls; fi

deploy:
provider: pypi
Expand Down
134 changes: 111 additions & 23 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,98 @@ Changelog
#########


Minor v1.10.x
"""""""""""""
Version 2
~~~~~~~~~


v2.0.x
""""""


v2.0.0: Numba
-------------

**2020-04-29**

This version is backwards incompatible and requires Python 3.6+.

- Numba:

- Using ``numexpr`` is no longer a possibility. Instead, ``numba`` is a new
dependency. All four kernel routines (``wavenumber``, ``greenfct``,
``reflections``, and ``fields``) are now numba-jitted functions.

- Removed:

- Removed all deprecated functions.
- Dropped support for Python 3.5; moved to f-strings.
- Dropped testing for channel conda-forge. The problems encountered at the
early development cycle of empymod with conda-forge do not exist any
longer.

- New defaults:

- ``EMArray``: ``.amp`` and ``.pha`` are now methods, not properties. Phase
takes three optional boolean parameters ``deg=False``, ``unwrap=True``, and
``lag=True``, to get radians or degrees; unwrapped or not; and lag or lead
defined phases.
- The parameters ``epermV`` and ``mpermV`` are set to the values of
``epermH`` and ``mpermH``, respectively, if not provided (hence assuming
isotropic behaviour). Before they were set to ones if not provided.

- Renaming:

- ``transform.fht`` -> ``transform.hankel_dlf``
- ``transform.hqwe`` -> ``transform.hankel_qwe``
- ``transform.hquad`` -> ``transform.hankel_quad``
- ``transform.ffht`` -> ``transform.fourier_dlf``
- ``transform.fqwe`` -> ``transform.fourier_qwe``
- ``transform.fftlog`` -> ``transform.fourier_fftlog``
- ``transform.fft`` -> ``transform.fourier_fft``
- ``transform.fhti`` -> ``transform.get_fftlog_input``
- ``transform.get_spline_values`` -> ``transform.get_dlf_points``.
- ``factAng`` -> ``ang_fact``
- In ``htarg``-dict: ``fftfilt``-> ``dlf`` (filter name for Hankel-DLF)
- In ``ftarg``-dict: ``fhtfilt``-> ``dlf`` (filter name for Fourier-DLF)
- In ``ftarg``-dict: ``ft``-> ``kind`` (method in Fourier-DLF [sine/cosine])
- Only dictionaries allowed for ``htarg`` and ``ftarg``; strings, lists, or
tuples are not allowed any longer. They are also dictionaries internally
now.
- ``ht``: There is only one unique name for each method: 'dlf', 'qwe',
'quad'.
- ``ft``: There is only one unique name for each method: 'dlf', 'qwe',
'fftlog', 'fft'.
- Within ``transform``, change ``fhtarg``, ``qweargs``, and ``quadargs`` to
``htarg``; ``qweargs`` to ``ftarg``.

- Other changes:

- All settings (``xdirect``, ``ht``, ``htarg``, ``ft``, ``ftarg``, ``loop``,
``verb``) are now extracted from ``kwargs``. This makes it possible that
all ``model``-functions take the same keyword-arguments; warnings are
raised if a particular parameter is not used in this function, but it
doesn't fail (it fails, however, for unknown parameters). Pure positional
calls including those parameters will therefore not work any longer.
- Undo a change introduced in v1.8.0: ``get_dlf_points`` is calculated
directly within ``transform.fht`` [`empymod#26
<https://github.com/empymod/empymod/issues/26>`_].
- Ensured that source and receiver inputs are not altered.
- Significantly reduced top namespace; only functions from ``model`` are
loaded into the top namespace now.


Version 1
~~~~~~~~~


v1.10.x
"""""""

v1.10.6: Various azimuths and dips at same depth
------------------------------------------------

**2020-03-04**

- ``empymod.bipole``

- In the source and receiver format ``[x, y, z, azimuth, dip]``, azimuth and
Expand All @@ -22,6 +108,8 @@ v1.10.6: Various azimuths and dips at same depth
v1.10.5: Continuously in- or decreasing
---------------------------------------

**2020-02-21**

This is a small appendix to v1.10.4: Depths can now be defined in increasing or
decreasing order, as long as they are consistent. Model parameters have to be
defined in the same order. Hence all these are possible:
Expand Down Expand Up @@ -104,8 +192,8 @@ v1.10.0: Loop source and receiver
more inclusive and open the project for new contributors.


Minor v1.9.x
"""""""""""""
v1.9.x
"""""""

v1.9.0 : Laplace
----------------
Expand All @@ -128,8 +216,8 @@ v1.9.0 : Laplace
- Other tiny improvements and bug fixes.


Minor v1.8.x
""""""""""""
v1.8.x
""""""


v1.8.3 : Scooby
Expand Down Expand Up @@ -196,7 +284,7 @@ v1.8.0 : Hook for Cole-Cole IP and similar

- ``model.wavenumber`` renamed to ``model.dipole_k`` to avoid name clash with
``kernel.wavenumber``. For now ``model.wavenumber`` continues to exist, but
raises a depreciation warning.
raises a deprecation warning.

- ``xdirect`` default value changed from ``True`` to ``False``.

Expand All @@ -217,8 +305,8 @@ for the user-facing routines in ``model``:
Move there in version 2.0.


Minor v1.7.x
""""""""""""
v1.7.x
""""""


v1.7.3 : Speed improvements following benchmarks
Expand Down Expand Up @@ -320,8 +408,8 @@ Merge ``empyscripts`` into ``empymod`` under ``empymod.scripts``.
``empymod`` directly.


Minor v1.6.x
""""""""""""
v1.6.x
""""""


v1.6.2 : Speed improvements for QUAD/QWE
Expand Down Expand Up @@ -431,8 +519,8 @@ are affected.
- Bugfix in ``model.wavenumber`` for ``ab=[36, 63]`` (zeroes).


Minor v1.5.x
""""""""""""
v1.5.x
""""""


v1.5.2 : Improved DLF
Expand Down Expand Up @@ -498,8 +586,8 @@ v1.5.0 : Hankel filter wer_201_2018
- Version of manuscript submission to geophysics for the DLF article.


Minor v1.4.x
""""""""""""
v1.4.x
""""""


v1.4.4 : TE/TM split
Expand Down Expand Up @@ -570,8 +658,8 @@ push it to 1.4.1; so there isn't really a version 1.4.0.]
only fullspace solution (all for the diffusive approximation).


Minor v1.3.x
"""""""""""""
v1.3.x
"""""""


v1.3.0 : New transforms QUAD (Hankel) and FFT (Fourier)
Expand Down Expand Up @@ -607,8 +695,8 @@ v1.3.0 : New transforms QUAD (Hankel) and FFT (Fourier)
- Bug fixes and documentation improvements


Minor v1.2.x
""""""""""""
v1.2.x
""""""


v1.2.1 : Installable via pip and conda
Expand Down Expand Up @@ -661,8 +749,8 @@ v1.2.0 : Bipole
- Bug fixes


Minor v1.1.x
""""""""""""
v1.1.x
""""""


v1.1.0 : Include source bipole
Expand Down Expand Up @@ -692,8 +780,8 @@ v1.1.0 : Include source bipole
- Bug fixes


Minor v1.0.x
""""""""""""
v1.0.x
""""""


v1.0.0 : Initial release
Expand Down
18 changes: 14 additions & 4 deletions CREDITS.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,15 @@ Credits
This project was initiated and is still mainly maintained by **Dieter
Werthmüller**. However, it is a community effort as many people helped to
improve it over time. The copyright is therefore attributed to «The empymod
Developers», which includes everyone involved in the project. In the following
some particular credits.
Developers», which includes everyone involved in the project.

Code contributors:

- `Dieter Werthmüller <https://github.com/prisae>`_


There are various other ways how people have contributed. In the following some
particular credits.

Special thanks to

Expand All @@ -27,14 +33,18 @@ Special thanks to
`github.com/empymod/article-fdesign
<https://github.com/empymod/article-fdesign>`_).

- **The electromagnetic group** of Aleksander Mousatov at the Mexican Petroleum
Institute, Mexico City (see note below).


Many more helped through their feedback, feature request, bug reports etc. A
certainly incomplete list (get in touch if you think you should appear here):

- Seogi Kang
- `Seogi Kang <https://github.com/sgkang>`_
- Svein-Erik Hamran
- Peter van der Sman
- Ralph-Uwe Börner
- `Ralph-Uwe Börner <https://github.com/ruboerner>`_
- `Leon Foks <https://github.com/leonfoks>`_


.. note::
Expand Down
Loading

0 comments on commit eeba70b

Please sign in to comment.