erlab 1.4.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. erlab-1.4.0/.github/workflows/pr.yml +62 -0
  2. erlab-1.4.0/.github/workflows/release.yml +97 -0
  3. erlab-1.4.0/.gitignore +166 -0
  4. erlab-1.4.0/.readthedocs.yaml +31 -0
  5. erlab-1.4.0/CHANGELOG.md +1322 -0
  6. erlab-1.4.0/LICENSE +674 -0
  7. erlab-1.4.0/PKG-INFO +121 -0
  8. erlab-1.4.0/PythonInterface.ipf +58 -0
  9. erlab-1.4.0/README.md +76 -0
  10. erlab-1.4.0/docs/Makefile +20 -0
  11. erlab-1.4.0/docs/environment.yml +41 -0
  12. erlab-1.4.0/docs/make.bat +35 -0
  13. erlab-1.4.0/docs/requirements.txt +36 -0
  14. erlab-1.4.0/docs/source/bibliography.rst +5 -0
  15. erlab-1.4.0/docs/source/conf.py +298 -0
  16. erlab-1.4.0/docs/source/development.rst +33 -0
  17. erlab-1.4.0/docs/source/erlab.accessors.rst +13 -0
  18. erlab-1.4.0/docs/source/erlab.analysis.rst +11 -0
  19. erlab-1.4.0/docs/source/erlab.characterization.rst +23 -0
  20. erlab-1.4.0/docs/source/erlab.constants.rst +55 -0
  21. erlab-1.4.0/docs/source/erlab.interactive.rst +23 -0
  22. erlab-1.4.0/docs/source/erlab.io.rst +5 -0
  23. erlab-1.4.0/docs/source/erlab.lattice.rst +33 -0
  24. erlab-1.4.0/docs/source/erlab.parallel.rst +31 -0
  25. erlab-1.4.0/docs/source/erlab.plotting.rst +29 -0
  26. erlab-1.4.0/docs/source/images/imagetool_dark.png +0 -0
  27. erlab-1.4.0/docs/source/images/imagetool_light.png +0 -0
  28. erlab-1.4.0/docs/source/index.rst +59 -0
  29. erlab-1.4.0/docs/source/notebooks/indexing.ipynb +1452 -0
  30. erlab-1.4.0/docs/source/notebooks/io.ipynb +59 -0
  31. erlab-1.4.0/docs/source/notebooks/plotting.ipynb +1508 -0
  32. erlab-1.4.0/docs/source/pyplots/norms.py +107 -0
  33. erlab-1.4.0/docs/source/readme.rst +168 -0
  34. erlab-1.4.0/docs/source/reference.rst +49 -0
  35. erlab-1.4.0/docs/source/refs.bib +40 -0
  36. erlab-1.4.0/docs/source/userguide.rst +25 -0
  37. erlab-1.4.0/environment.yml +58 -0
  38. erlab-1.4.0/environment_apple.yml +62 -0
  39. erlab-1.4.0/environment_nogit.yml +59 -0
  40. erlab-1.4.0/environment_nogit_mkl.yml +59 -0
  41. erlab-1.4.0/pyproject.toml +125 -0
  42. erlab-1.4.0/requirements.txt +27 -0
  43. erlab-1.4.0/setup.cfg +4 -0
  44. erlab-1.4.0/src/erlab/__init__.py +1 -0
  45. erlab-1.4.0/src/erlab/accessors.py +898 -0
  46. erlab-1.4.0/src/erlab/analysis/__init__.py +84 -0
  47. erlab-1.4.0/src/erlab/analysis/correlation.py +175 -0
  48. erlab-1.4.0/src/erlab/analysis/fit/__init__.py +32 -0
  49. erlab-1.4.0/src/erlab/analysis/fit/functions/__init__.py +49 -0
  50. erlab-1.4.0/src/erlab/analysis/fit/functions/dynamic.py +302 -0
  51. erlab-1.4.0/src/erlab/analysis/fit/functions/general.py +240 -0
  52. erlab-1.4.0/src/erlab/analysis/fit/minuit.py +206 -0
  53. erlab-1.4.0/src/erlab/analysis/fit/models.py +349 -0
  54. erlab-1.4.0/src/erlab/analysis/fit/spline.py +42 -0
  55. erlab-1.4.0/src/erlab/analysis/gold.py +474 -0
  56. erlab-1.4.0/src/erlab/analysis/interpolate.py +318 -0
  57. erlab-1.4.0/src/erlab/analysis/kspace.py +326 -0
  58. erlab-1.4.0/src/erlab/analysis/mask/__init__.py +108 -0
  59. erlab-1.4.0/src/erlab/analysis/mask/polygon.py +251 -0
  60. erlab-1.4.0/src/erlab/analysis/transform.py +24 -0
  61. erlab-1.4.0/src/erlab/analysis/utilities.py +85 -0
  62. erlab-1.4.0/src/erlab/characterization/__init__.py +15 -0
  63. erlab-1.4.0/src/erlab/characterization/resistance.py +113 -0
  64. erlab-1.4.0/src/erlab/characterization/xrd.py +70 -0
  65. erlab-1.4.0/src/erlab/constants.py +81 -0
  66. erlab-1.4.0/src/erlab/interactive/__init__.py +27 -0
  67. erlab-1.4.0/src/erlab/interactive/bzplot.py +395 -0
  68. erlab-1.4.0/src/erlab/interactive/colors.py +680 -0
  69. erlab-1.4.0/src/erlab/interactive/curvefittingtool.py +470 -0
  70. erlab-1.4.0/src/erlab/interactive/exampledata.py +302 -0
  71. erlab-1.4.0/src/erlab/interactive/goldtool.py +524 -0
  72. erlab-1.4.0/src/erlab/interactive/imagetool/__init__.py +547 -0
  73. erlab-1.4.0/src/erlab/interactive/imagetool/_deprecated/__init__.py +0 -0
  74. erlab-1.4.0/src/erlab/interactive/imagetool/_deprecated/imagetool_mpl.py +1450 -0
  75. erlab-1.4.0/src/erlab/interactive/imagetool/_deprecated/imagetool_old.py +3229 -0
  76. erlab-1.4.0/src/erlab/interactive/imagetool/controls.py +733 -0
  77. erlab-1.4.0/src/erlab/interactive/imagetool/core.py +1598 -0
  78. erlab-1.4.0/src/erlab/interactive/imagetool/fastbinning.py +356 -0
  79. erlab-1.4.0/src/erlab/interactive/imagetool/slicer.py +658 -0
  80. erlab-1.4.0/src/erlab/interactive/ktool.py +441 -0
  81. erlab-1.4.0/src/erlab/interactive/ktool.ui +576 -0
  82. erlab-1.4.0/src/erlab/interactive/ktool_old.py +552 -0
  83. erlab-1.4.0/src/erlab/interactive/masktool.py +116 -0
  84. erlab-1.4.0/src/erlab/interactive/noisetool.py +518 -0
  85. erlab-1.4.0/src/erlab/interactive/utilities.py +1584 -0
  86. erlab-1.4.0/src/erlab/io/__init__.py +87 -0
  87. erlab-1.4.0/src/erlab/io/dataloader.py +898 -0
  88. erlab-1.4.0/src/erlab/io/igor.py +274 -0
  89. erlab-1.4.0/src/erlab/io/plugins/__init__.py +39 -0
  90. erlab-1.4.0/src/erlab/io/plugins/da30.py +120 -0
  91. erlab-1.4.0/src/erlab/io/plugins/kriss.py +41 -0
  92. erlab-1.4.0/src/erlab/io/plugins/merlin.py +238 -0
  93. erlab-1.4.0/src/erlab/io/plugins/ssrl52.py +242 -0
  94. erlab-1.4.0/src/erlab/io/utilities.py +296 -0
  95. erlab-1.4.0/src/erlab/lattice.py +97 -0
  96. erlab-1.4.0/src/erlab/parallel.py +81 -0
  97. erlab-1.4.0/src/erlab/plotting/IgorCT/Blue-White.txt +256 -0
  98. erlab-1.4.0/src/erlab/plotting/IgorCT/BlueHot.ibw +0 -0
  99. erlab-1.4.0/src/erlab/plotting/IgorCT/CTBlueWhite.ibw +0 -0
  100. erlab-1.4.0/src/erlab/plotting/IgorCT/CTRainbowLIght.ibw +0 -0
  101. erlab-1.4.0/src/erlab/plotting/IgorCT/CTRedTemperature.ibw +0 -0
  102. erlab-1.4.0/src/erlab/plotting/IgorCT/ColdWarm.ibw +0 -0
  103. erlab-1.4.0/src/erlab/plotting/IgorCT/PlanetEarth.ibw +0 -0
  104. erlab-1.4.0/src/erlab/plotting/IgorCT/ametrine.ibw +0 -0
  105. erlab-1.4.0/src/erlab/plotting/IgorCT/isolum.ibw +0 -0
  106. erlab-1.4.0/src/erlab/plotting/IgorCT/morgenstemning.ibw +0 -0
  107. erlab-1.4.0/src/erlab/plotting/__init__.py +73 -0
  108. erlab-1.4.0/src/erlab/plotting/annotations.py +1081 -0
  109. erlab-1.4.0/src/erlab/plotting/atoms.py +516 -0
  110. erlab-1.4.0/src/erlab/plotting/bz.py +136 -0
  111. erlab-1.4.0/src/erlab/plotting/colors.py +1052 -0
  112. erlab-1.4.0/src/erlab/plotting/erplot.py +138 -0
  113. erlab-1.4.0/src/erlab/plotting/general.py +941 -0
  114. erlab-1.4.0/src/erlab/plotting/plot3d.py +87 -0
  115. erlab-1.4.0/src/erlab/plotting/stylelib/fira.mplstyle +131 -0
  116. erlab-1.4.0/src/erlab/plotting/stylelib/firalight.mplstyle +131 -0
  117. erlab-1.4.0/src/erlab/plotting/stylelib/khan.mplstyle +416 -0
  118. erlab-1.4.0/src/erlab/plotting/stylelib/nature.mplstyle +227 -0
  119. erlab-1.4.0/src/erlab/plotting/stylelib/poster.mplstyle +30 -0
  120. erlab-1.4.0/src/erlab/plotting/stylelib/times.mplstyle +151 -0
  121. erlab-1.4.0/src/erlab.egg-info/PKG-INFO +121 -0
  122. erlab-1.4.0/src/erlab.egg-info/SOURCES.txt +126 -0
  123. erlab-1.4.0/src/erlab.egg-info/dependency_links.txt +1 -0
  124. erlab-1.4.0/src/erlab.egg-info/requires.txt +32 -0
  125. erlab-1.4.0/src/erlab.egg-info/top_level.txt +1 -0
  126. erlab-1.4.0/tests/test_fastbinning.py +15 -0
  127. erlab-1.4.0/tests/test_interpolate.py +23 -0
  128. erlab-1.4.0/tests/test_kspace.py +69 -0
@@ -0,0 +1,62 @@
1
+ # This workflow will install Python dependencies, run tests and lint with a variety of Python versions
2
+ # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
3
+
4
+ name: Test
5
+
6
+ on:
7
+ pull_request:
8
+ workflow_dispatch:
9
+
10
+ jobs:
11
+ test:
12
+ name: Python ${{ matrix.python-version }} tests
13
+ runs-on: ubuntu-latest
14
+ strategy:
15
+ matrix:
16
+ python-version: ["3.11", "3.12"]
17
+
18
+ steps:
19
+ - uses: actions/checkout@v4
20
+ with:
21
+ fetch-depth: 0
22
+ - name: Set up Python ${{ matrix.python-version }}
23
+ uses: actions/setup-python@v5
24
+ with:
25
+ python-version: ${{ matrix.python-version }}
26
+
27
+ - name: Install pytest and dependencies
28
+ run: |
29
+ sudo apt update && sudo apt install -y libegl1-mesa-dev
30
+ python -m pip install --upgrade pip
31
+ python -m pip install -v . pytest
32
+ python -m pip install -r requirements.txt
33
+
34
+
35
+ - name: Test with pytest
36
+ run: |
37
+ pytest -v
38
+
39
+ lint:
40
+ runs-on: ubuntu-latest
41
+
42
+ steps:
43
+ - uses: actions/checkout@v4
44
+ with:
45
+ fetch-depth: 0
46
+ - name: Set up Python 3.11
47
+ uses: actions/setup-python@v5
48
+ with:
49
+ python-version: 3.11
50
+ - name: Install flake8 and dependencies
51
+ run: |
52
+ sudo apt update && sudo apt install -y libegl1-mesa-dev
53
+ python -m pip install --upgrade pip
54
+ python -m pip install -v . flake8
55
+
56
+ - name: Lint with flake8
57
+ run: |
58
+ # stop the build if there are Python syntax errors or undefined names
59
+ flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
60
+ # exit-zero treats all errors as warnings.
61
+ flake8 . --count --extend-ignore=E203,F401 --exit-zero --max-line-length=88 --statistics --exclude _deprecated
62
+
@@ -0,0 +1,97 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ branches: [ "main" ]
6
+ workflow_dispatch:
7
+
8
+ jobs:
9
+ test:
10
+ name: Python ${{ matrix.python-version }} tests
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ matrix:
14
+ python-version: ["3.11", "3.12"]
15
+
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+ with:
19
+ fetch-depth: 0
20
+ - name: Set up Python ${{ matrix.python-version }}
21
+ uses: actions/setup-python@v5
22
+ with:
23
+ python-version: ${{ matrix.python-version }}
24
+
25
+ - name: Install pytest and dependencies
26
+ run: |
27
+ sudo apt update && sudo apt install -y libegl1-mesa-dev
28
+ python -m pip install --upgrade pip
29
+ python -m pip install -v . pytest
30
+ python -m pip install -r requirements.txt
31
+
32
+
33
+ - name: Test with pytest
34
+ run: |
35
+ pytest -v
36
+
37
+ lint:
38
+ runs-on: ubuntu-latest
39
+
40
+ steps:
41
+ - uses: actions/checkout@v4
42
+ with:
43
+ fetch-depth: 0
44
+ - name: Set up Python 3.11
45
+ uses: actions/setup-python@v5
46
+ with:
47
+ python-version: 3.11
48
+ - name: Install flake8 and dependencies
49
+ run: |
50
+ sudo apt update && sudo apt install -y libegl1-mesa-dev
51
+ python -m pip install --upgrade pip
52
+ python -m pip install -v . flake8
53
+
54
+ - name: Lint with flake8
55
+ run: |
56
+ # stop the build if there are Python syntax errors or undefined names
57
+ flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
58
+ # exit-zero treats all errors as warnings.
59
+ flake8 . --count --extend-ignore=E203,F401 --exit-zero --max-line-length=88 --statistics --exclude _deprecated
60
+
61
+ release:
62
+ name: Release
63
+ runs-on: ubuntu-latest
64
+ concurrency: push
65
+ needs: [test, lint]
66
+ environment:
67
+ name: pypi
68
+ url: https://pypi.org/p/erlab
69
+ permissions:
70
+ id-token: write
71
+ contents: write
72
+
73
+ steps:
74
+ - uses: actions/checkout@v4
75
+ with:
76
+ fetch-depth: 0
77
+
78
+ - name: Python Semantic Release
79
+ id: release
80
+ uses: python-semantic-release/python-semantic-release@master
81
+ with:
82
+ github_token: ${{ secrets.GITHUB_TOKEN }}
83
+
84
+ - name: Publish package distributions to PyPI
85
+ id: pypi-publish
86
+ if: steps.release.outputs.released == 'true'
87
+ uses: pypa/gh-action-pypi-publish@release/v1
88
+ with:
89
+ verbose: true
90
+
91
+ - name: Publish package distributions to GitHub Releases
92
+ id: github-release
93
+ if: steps.release.outputs.released == 'true'
94
+ uses: python-semantic-release/upload-to-gh-release@main
95
+ with:
96
+ github_token: ${{ secrets.GITHUB_TOKEN }}
97
+ tag: ${{ steps.release.outputs.tag }}
erlab-1.4.0/.gitignore ADDED
@@ -0,0 +1,166 @@
1
+ # macOS
2
+ .DS_Store
3
+
4
+ # Byte-compiled / optimized / DLL files
5
+ __pycache__/
6
+ *.py[cod]
7
+ *$py.class
8
+
9
+ # C extensions
10
+ *.so
11
+
12
+ # Distribution / packaging
13
+ .Python
14
+ build/
15
+ develop-eggs/
16
+ dist/
17
+ downloads/
18
+ eggs/
19
+ .eggs/
20
+ lib/
21
+ lib64/
22
+ parts/
23
+ sdist/
24
+ var/
25
+ wheels/
26
+ share/python-wheels/
27
+ *.egg-info/
28
+ .installed.cfg
29
+ *.egg
30
+ MANIFEST
31
+
32
+ # PyInstaller
33
+ # Usually these files are written by a python script from a template
34
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
35
+ *.manifest
36
+ *.spec
37
+
38
+ # Installer logs
39
+ pip-log.txt
40
+ pip-delete-this-directory.txt
41
+
42
+ # Unit test / coverage reports
43
+ htmlcov/
44
+ .tox/
45
+ .nox/
46
+ .coverage
47
+ .coverage.*
48
+ .cache
49
+ nosetests.xml
50
+ coverage.xml
51
+ *.cover
52
+ *.py,cover
53
+ .hypothesis/
54
+ .pytest_cache/
55
+ cover/
56
+ *.prof
57
+ *.pstats
58
+ *.pstats.png
59
+ *.austin
60
+
61
+ # Translations
62
+ *.mo
63
+ *.pot
64
+
65
+ # Django stuff:
66
+ *.log
67
+ local_settings.py
68
+ db.sqlite3
69
+ db.sqlite3-journal
70
+
71
+ # Flask stuff:
72
+ instance/
73
+ .webassets-cache
74
+
75
+ # Scrapy stuff:
76
+ .scrapy
77
+
78
+ # Sphinx documentation
79
+ docs/_build/
80
+ docs/source/generated
81
+
82
+ # PyBuilder
83
+ .pybuilder/
84
+ target/
85
+
86
+ # Jupyter Notebook
87
+ .ipynb_checkpoints
88
+
89
+ # IPython
90
+ profile_default/
91
+ ipython_config.py
92
+
93
+ # pyenv
94
+ # For a library or package, you might want to ignore these files since the code is
95
+ # intended to run in multiple environments; otherwise, check them in:
96
+ # .python-version
97
+
98
+ # pipenv
99
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
100
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
101
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
102
+ # install all needed dependencies.
103
+ #Pipfile.lock
104
+
105
+ # poetry
106
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
107
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
108
+ # commonly ignored for libraries.
109
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
110
+ #poetry.lock
111
+
112
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
113
+ __pypackages__/
114
+
115
+ # Celery stuff
116
+ celerybeat-schedule
117
+ celerybeat.pid
118
+
119
+ # SageMath parsed files
120
+ *.sage.py
121
+
122
+ # Environments
123
+ .env
124
+ .venv
125
+ env/
126
+ venv/
127
+ ENV/
128
+ env.bak/
129
+ venv.bak/
130
+
131
+ # Spyder project settings
132
+ .spyderproject
133
+ .spyproject
134
+
135
+ # Rope project settings
136
+ .ropeproject
137
+
138
+ # mkdocs documentation
139
+ /site
140
+
141
+ # mypy
142
+ .mypy_cache/
143
+ .dmypy.json
144
+ dmypy.json
145
+
146
+ # Pyre type checker
147
+ .pyre/
148
+
149
+ # pytype static type analyzer
150
+ .pytype/
151
+
152
+ # Cython debug symbols
153
+ cython_debug/
154
+
155
+ # PyCharm
156
+ # JetBrains specific template is maintainted in a separate JetBrains.gitignore that can
157
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
158
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
159
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
160
+ #.idea/
161
+
162
+ # VS Code
163
+ .vscode/*
164
+
165
+ # Misc. files
166
+ itool_testing.ipynb
@@ -0,0 +1,31 @@
1
+ # Read the Docs configuration file for Sphinx projects
2
+ # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
3
+
4
+ # Required
5
+ version: 2
6
+
7
+ # Set the OS, Python version and other tools you might need
8
+ build:
9
+ os: ubuntu-22.04
10
+ tools:
11
+ # python: "mambaforge-22.9"
12
+ python: "3.11"
13
+
14
+ # Build documentation in the "docs/" directory with Sphinx
15
+ sphinx:
16
+ configuration: docs/source/conf.py
17
+
18
+ # Optionally build your docs in additional formats such as PDF and ePub
19
+ # formats:
20
+ # - pdf
21
+ # - epub
22
+
23
+ # Optional but recommended, declare the Python requirements required
24
+ # to build your documentation
25
+ # See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
26
+ python:
27
+ install:
28
+ - requirements: docs/requirements.txt
29
+
30
+ # conda:
31
+ # environment: docs/environment.yml