eagleplot 3.0.0__py3-none-any.whl

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 (73) hide show
  1. eagleplot/Home.py +362 -0
  2. eagleplot/__init__.py +19 -0
  3. eagleplot/annotations.py +215 -0
  4. eagleplot/assets/logo.ico +0 -0
  5. eagleplot/assets/logo.png +0 -0
  6. eagleplot/assets/nccu-horiz-logo.png +0 -0
  7. eagleplot/assets/nccu-wings.png +0 -0
  8. eagleplot/batch.py +446 -0
  9. eagleplot/cli.py +719 -0
  10. eagleplot/data_tools.py +849 -0
  11. eagleplot/example-data/Artificial/bimodal_distribution.csv +501 -0
  12. eagleplot/example-data/Artificial/correlation_matrix.npy +0 -0
  13. eagleplot/example-data/Artificial/gaussian_surface.npy +0 -0
  14. eagleplot/example-data/Artificial/grouped_categorical.csv +241 -0
  15. eagleplot/example-data/Artificial/ir_spectrum.csv +1802 -0
  16. eagleplot/example-data/Artificial/molecular_properties.csv +121 -0
  17. eagleplot/example-data/Artificial/normal_distribution.csv +401 -0
  18. eagleplot/example-data/Artificial/reaction_kinetics.csv +121 -0
  19. eagleplot/example-data/Artificial/scatter_correlation.csv +201 -0
  20. eagleplot/example-data/Artificial/sine_cosine_waves.csv +301 -0
  21. eagleplot/gallery/box_plot.png +0 -0
  22. eagleplot/gallery/contour_plot.png +0 -0
  23. eagleplot/gallery/distribution_plot.png +0 -0
  24. eagleplot/gallery/heatmap.png +0 -0
  25. eagleplot/gallery/histogram.png +0 -0
  26. eagleplot/gallery/interactive_3d_surface.png +0 -0
  27. eagleplot/gallery/interactive_heatmap.png +0 -0
  28. eagleplot/gallery/interactive_histogram.png +0 -0
  29. eagleplot/gallery/interactive_line.png +0 -0
  30. eagleplot/gallery/interactive_scatter.png +0 -0
  31. eagleplot/gallery/line_plot.png +0 -0
  32. eagleplot/gallery/manifest.json +196 -0
  33. eagleplot/gallery/regression_plot.png +0 -0
  34. eagleplot/gallery/scatter_plot.png +0 -0
  35. eagleplot/io.py +1008 -0
  36. eagleplot/math.py +1210 -0
  37. eagleplot/molecular/__init__.py +21 -0
  38. eagleplot/molecular/atom_data.py +287 -0
  39. eagleplot/molecular/parsers.py +747 -0
  40. eagleplot/nist.py +241 -0
  41. eagleplot/pages/10_Molecular_Viz.py +225 -0
  42. eagleplot/pages/11_Batch_Analysis.py +325 -0
  43. eagleplot/pages/12_Help.py +199 -0
  44. eagleplot/pages/13_Settings.py +388 -0
  45. eagleplot/pages/1_Data_Upload.py +521 -0
  46. eagleplot/pages/2_Quick_Plot.py +1693 -0
  47. eagleplot/pages/3_Analysis_Tools.py +2510 -0
  48. eagleplot/pages/4_Multi_Plot_Dashboard.py +791 -0
  49. eagleplot/pages/5_Advanced_Plotting.py +691 -0
  50. eagleplot/pages/6_Export_Results.py +442 -0
  51. eagleplot/pages/7_Gallery.py +201 -0
  52. eagleplot/pages/8_Data_Tools.py +434 -0
  53. eagleplot/pages/9_Spectroscopy.py +821 -0
  54. eagleplot/pages/__init__.py +8 -0
  55. eagleplot/peaks.py +513 -0
  56. eagleplot/plotting.py +2630 -0
  57. eagleplot/plugin_loader.py +208 -0
  58. eagleplot/report.py +448 -0
  59. eagleplot/signal.py +494 -0
  60. eagleplot/spectroscopy.py +830 -0
  61. eagleplot/utils/__init__.py +76 -0
  62. eagleplot/utils/access.py +77 -0
  63. eagleplot/utils/data_preview.py +352 -0
  64. eagleplot/utils/plot_config.py +2721 -0
  65. eagleplot/utils/session_state.py +535 -0
  66. eagleplot/utils/theming.py +312 -0
  67. eagleplot/utils/user_settings.py +294 -0
  68. eagleplot-3.0.0.dist-info/METADATA +304 -0
  69. eagleplot-3.0.0.dist-info/RECORD +73 -0
  70. eagleplot-3.0.0.dist-info/WHEEL +5 -0
  71. eagleplot-3.0.0.dist-info/entry_points.txt +2 -0
  72. eagleplot-3.0.0.dist-info/licenses/LICENSE +21 -0
  73. eagleplot-3.0.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,304 @@
1
+ Metadata-Version: 2.4
2
+ Name: eagleplot
3
+ Version: 3.0.0
4
+ Summary: A general-purpose Python toolkit for scientific data visualization and analysis
5
+ Author-email: "Jonathan D. Schultz" <jschult3@nccu.edu>
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/The-Schultz-Lab/eagleplot
8
+ Project-URL: Repository, https://github.com/The-Schultz-Lab/eagleplot
9
+ Project-URL: Documentation, https://the-schultz-lab.github.io/eagleplot/
10
+ Project-URL: Bug Tracker, https://github.com/The-Schultz-Lab/eagleplot/issues
11
+ Project-URL: Changelog, https://github.com/The-Schultz-Lab/eagleplot/blob/main/CHANGELOG.md
12
+ Keywords: visualization,plotting,science,chemistry,matplotlib,plotly,streamlit
13
+ Classifier: Development Status :: 5 - Production/Stable
14
+ Classifier: Intended Audience :: Science/Research
15
+ Classifier: Intended Audience :: Education
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.9
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Topic :: Scientific/Engineering :: Visualization
22
+ Classifier: Topic :: Scientific/Engineering :: Chemistry
23
+ Requires-Python: !=3.9.7,>=3.9
24
+ Description-Content-Type: text/markdown
25
+ License-File: LICENSE
26
+ Requires-Dist: numpy>=1.24.0
27
+ Requires-Dist: scipy>=1.10.0
28
+ Requires-Dist: pandas>=2.0.0
29
+ Requires-Dist: matplotlib>=3.7.0
30
+ Requires-Dist: seaborn>=0.12.0
31
+ Requires-Dist: plotly>=5.14.0
32
+ Requires-Dist: streamlit>=1.49.0
33
+ Requires-Dist: openpyxl>=3.1.0
34
+ Requires-Dist: PyYAML>=6.0
35
+ Requires-Dist: tomli>=2.0.0; python_version < "3.11"
36
+ Provides-Extra: formats
37
+ Requires-Dist: h5py>=3.0.0; extra == "formats"
38
+ Requires-Dist: xarray>=0.20.0; extra == "formats"
39
+ Requires-Dist: netcdf4>=1.6.0; extra == "formats"
40
+ Provides-Extra: nist
41
+ Requires-Dist: requests>=2.28.0; extra == "nist"
42
+ Provides-Extra: docs
43
+ Requires-Dist: markdown>=3.5; extra == "docs"
44
+ Provides-Extra: test
45
+ Requires-Dist: pytest>=7.4.0; extra == "test"
46
+ Requires-Dist: pytest-cov>=4.1.0; extra == "test"
47
+ Provides-Extra: dev
48
+ Requires-Dist: eagleplot[test]; extra == "dev"
49
+ Requires-Dist: ruff==0.17.3; extra == "dev"
50
+ Requires-Dist: mypy==2.4.1; extra == "dev"
51
+ Requires-Dist: types-PyYAML>=6.0.12.20250915; extra == "dev"
52
+ Requires-Dist: types-requests>=2.28.0; extra == "dev"
53
+ Requires-Dist: build>=1.4.3; extra == "dev"
54
+ Requires-Dist: twine>=5.0.0; extra == "dev"
55
+ Provides-Extra: all
56
+ Requires-Dist: eagleplot[formats,nist]; extra == "all"
57
+ Dynamic: license-file
58
+
59
+ # EaglePlot
60
+
61
+ [![Tests](https://github.com/The-Schultz-Lab/eagleplot/actions/workflows/tests.yml/badge.svg)](https://github.com/The-Schultz-Lab/eagleplot/actions/workflows/tests.yml)
62
+ [![PyPI](https://img.shields.io/pypi/v/eagleplot)](https://pypi.org/project/eagleplot/)
63
+ [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/The-Schultz-Lab/eagleplot/main)
64
+
65
+ A general-purpose Python toolkit for scientific data visualization and analysis, developed for research and teaching in computational science at North Carolina Central University.
66
+
67
+ > **EaglePlot was called Plottle until version 3.0.** If you used Plottle, change
68
+ > `import plottle` / `from plottle.… import …` to `eagleplot`, and run the `eagleplot`
69
+ > command instead of `plottle`. Session files saved by Plottle still load.
70
+
71
+ ## Overview
72
+
73
+ EaglePlot provides a unified interface for scientific data work:
74
+
75
+ - **Data I/O** — 18 file formats (CSV, Excel, TSV, JSON, Parquet, NumPy, Pickle, JCAMP-DX, HDF5, NetCDF, SPC, ASC, mzML/mzXML, and more)
76
+ - **Mathematical analysis** — statistics, curve fitting, signal processing, peak analysis, hypothesis testing, optimization, linear algebra
77
+ - **Multi-library plotting** — 27 plot types across Matplotlib (static), Seaborn (statistical), and Plotly (interactive)
78
+ - **14-page Streamlit GUI** — exploratory data analysis without writing code
79
+ - **CLI** — batch processing and scripted workflows
80
+ - **Plugin system** — drop `plugin_*.py` into `plugins/` for custom plot types and tools
81
+
82
+ ## Quick Start
83
+
84
+ ### Clone the repository
85
+
86
+ #### 1 — Clone and enter the repository
87
+
88
+ ```bash
89
+ git clone https://github.com/The-Schultz-Lab/eagleplot.git
90
+ cd eagleplot
91
+ ```
92
+
93
+ #### 2 — Set up and launch (double-click, no terminal needed)
94
+
95
+ **Windows:**
96
+ 1. Double-click **`setup.bat`** — creates the virtual environment and installs all dependencies.
97
+ 2. Double-click **`launch.bat`** — starts EaglePlot. Use this every time you want to open the app.
98
+
99
+ **macOS:**
100
+ 1. Double-click **`setup.command`** — creates the virtual environment and installs all dependencies.
101
+ *(If macOS asks "Are you sure you want to open it?", click Open.)*
102
+ 2. Double-click **`launch.command`** — starts EaglePlot. Use this every time you want to open the app.
103
+
104
+ **Linux:**
105
+ 1. Run **`./setup.sh`** in a terminal — creates the virtual environment and installs all dependencies.
106
+ *(On Debian/Ubuntu you may first need `sudo apt install python3-venv`.)*
107
+ 2. Run **`./launch.sh`** — starts EaglePlot.
108
+
109
+ After the app starts, open **`http://localhost:8501`** in your browser (Streamlit usually opens it automatically).
110
+
111
+ #### 2 (alternative) — Set up and launch from the terminal
112
+
113
+ ```bash
114
+ python -m venv .venv
115
+
116
+ # Windows
117
+ .venv\Scripts\activate
118
+
119
+ # macOS / Linux
120
+ source .venv/bin/activate
121
+
122
+ # Install EaglePlot and its dependencies. The editable install is what puts the
123
+ # `eagleplot` command on your PATH.
124
+ pip install -e ".[formats,nist]"
125
+
126
+ streamlit run eagleplot/Home.py
127
+ ```
128
+
129
+ #### 3 — Or use the CLI
130
+
131
+ ```bash
132
+ eagleplot --help
133
+ eagleplot plot data.csv --plot scatter --x-column x --y-column y
134
+ eagleplot stats data.csv
135
+ ```
136
+
137
+ The `eagleplot` command comes from the `pip install` above. From a source checkout
138
+ without installing, use `python -m eagleplot.cli` instead.
139
+
140
+ ## GUI Pages
141
+
142
+ | Page | Description |
143
+ | --- | --- |
144
+ | **Home** | Dashboard overview and help tabs |
145
+ | **1 — Data Upload** | Upload files in 18 formats; preview shape, column types, and summary statistics; batch folder import |
146
+ | **2 — Quick Plot** | 27 plot types with live style controls, annotation panel, and Convert to Plotly toggle |
147
+ | **3 — Analysis Tools** | 8 tabs: Statistics, Distribution, Curve Fit, Optimization, Linear Algebra, Signal Processing, Peak Analysis, Statistical Tests |
148
+ | **4 — Multi-Plot Dashboard** | Up to 4×4 grid layouts with axis sharing and combined PNG/PDF export |
149
+ | **5 — Advanced Plotting** | Seaborn statistical plots and Plotly interactive charts with HTML export |
150
+ | **7 — Export Results** | Export plots, data, and analyses; save/load full sessions; generate PDF reports |
151
+ | **8 — Gallery** | Pre-generated figure gallery with Load this config buttons |
152
+ | **9 — Data Tools** | 10 operation tabs: formula columns, normalization, transpose, pivot/melt, filter, sort, merge, fill/drop NaN, resample, rolling transforms |
153
+ | **10 — Spectroscopy** | IR/Raman, NMR, UV-Vis, Mass Spec tools; NIST WebBook spectral lookup by CAS number |
154
+ | **11 — Molecular Viz** | Upload Gaussian/ORCA/Molden output files; 3D molecular structure and vibrational mode display |
155
+ | **12 — Batch Analysis** | Batch statistics, curve fitting, and peak analysis with workflow presets |
156
+ | **13 — Help** | Getting Started, Plot Types, Analysis Tools, Supported Formats, Tips |
157
+ | **14 — Settings** | Theme, DPI, plot defaults, named preset CRUD, plugin status |
158
+
159
+ ## Supported File Formats (18)
160
+
161
+ | Category | Formats |
162
+ | --- | --- |
163
+ | Tabular | `.csv`, `.tsv`, `.xlsx`, `.xls`, `.json`, `.parquet` |
164
+ | Array | `.npy`, `.npz`, `.pkl` |
165
+ | Instrument / Spectral | `.jdx` / `.dx` (JCAMP-DX), `.h5` / `.hdf5` (HDF5), `.nc` / `.cdf` (NetCDF), `.spc` (Thermo Fisher), `.asc` (generic text), `.mzml` / `.mzxml` (mass spectrometry, optional) |
166
+
167
+ ## CLI
168
+
169
+ EaglePlot includes a command-line interface with 5 subcommands:
170
+
171
+ ```bash
172
+ eagleplot plot <file> --plot <type> --x-column X --y-column Y [--output out.png]
173
+ eagleplot stats <file>
174
+ eagleplot batch <config.json> [--verbose]
175
+ eagleplot compare <file1> <file2> --plot line [--output comparison.png]
176
+ eagleplot convert <input> <output>
177
+ ```
178
+
179
+ See the [CLI Tutorial](docs/tutorials/cli_guide.md) for full usage and examples.
180
+
181
+ ## Python API
182
+
183
+ EaglePlot's modules can be used directly in scripts or Jupyter notebooks:
184
+
185
+ ```python
186
+ from eagleplot.io import load_data
187
+ from eagleplot.plotting import line_plot, save_figure
188
+ import numpy as np
189
+
190
+ wavelength = np.linspace(400, 800, 200)
191
+ absorbance = 0.8 * np.exp(-((wavelength - 520) ** 2) / (2 * 30**2))
192
+
193
+ fig, ax, info = line_plot(
194
+ wavelength,
195
+ [absorbance],
196
+ xlabel="Wavelength (nm)",
197
+ ylabel="Absorbance",
198
+ title="UV-Vis Spectrum",
199
+ labels=["Sample A"],
200
+ )
201
+ save_figure(fig, "spectrum.png", dpi=300)
202
+ ```
203
+
204
+ ### Key modules
205
+
206
+ | Module | Description |
207
+ | --- | --- |
208
+ | `eagleplot.io` | `load_data()` / `save_data()` — auto-detects format from extension |
209
+ | `eagleplot.math` | 25 functions — statistics, curve fitting, hypothesis tests, optimization, linear algebra |
210
+ | `eagleplot.plotting` | 27 plot types; Matplotlib → `(fig, ax, info)`, Plotly → `(fig, info)` |
211
+ | `eagleplot.signal` | 16 functions — smoothing, filtering, FFT, derivatives, baseline correction, interpolation |
212
+ | `eagleplot.peaks` | 5 functions — find, integrate, FWHM, fit (Gaussian/Lorentzian/Voigt/pseudo-Voigt) |
213
+ | `eagleplot.data_tools` | 12 non-destructive DataFrame operations |
214
+ | `eagleplot.spectroscopy` | 18 functions — IR/Raman, UV-Vis, NMR, MS |
215
+ | `eagleplot.nist` | NIST WebBook integration — fetch IR spectra by CAS number |
216
+ | `eagleplot.batch` | Batch load, statistics, curve fit, peak analysis |
217
+ | `eagleplot.annotations` | 7 overlay types (hline, vline, hspan, vspan, text, rectangle, ellipse) |
218
+ | `eagleplot.report` | PDF report generation via `matplotlib.PdfPages` |
219
+ | `eagleplot.molecular` | CPK atom data, Gaussian/ORCA/Molden parsers, Plotly 3D molecule builder |
220
+
221
+ ## Plugin System
222
+
223
+ Drop a `plugin_*.py` file into `plugins/` to add custom plot types or analysis tools.
224
+ See [`plugins/plugin_example.py`](plugins/plugin_example.py) for the starter template.
225
+
226
+ ## Dependencies
227
+
228
+ | Package | Purpose |
229
+ | --- | --- |
230
+ | `numpy` | Numerical computing |
231
+ | `scipy` | Scientific algorithms, curve fitting, signal processing |
232
+ | `pandas` | Tabular data |
233
+ | `matplotlib` | Static plotting |
234
+ | `seaborn` | Statistical visualizations |
235
+ | `plotly` | Interactive plots |
236
+ | `streamlit` | GUI framework |
237
+ | `openpyxl` | Excel file support |
238
+ | `requests` | NIST WebBook HTTP integration |
239
+ | `h5py` | HDF5 file support |
240
+ | `xarray` / `netcdf4` | NetCDF file support |
241
+
242
+ **Optional:**
243
+
244
+ | Package | Purpose |
245
+ | --- | --- |
246
+ | `statsmodels` | Two-way ANOVA (`anova_twoway` in `eagleplot.math`) |
247
+ | `pymzml` | mzML/mzXML mass spectrometry files |
248
+ | `jcamp` | Alternative JCAMP-DX parser |
249
+
250
+ See [`requirements.txt`](requirements.txt) for pinned version ranges.
251
+
252
+ ## Project Structure
253
+
254
+ ```text
255
+ eagleplot/ ← repository root
256
+ ├── eagleplot/ ← the installable package
257
+ │ ├── Home.py ← Streamlit entry point
258
+ │ ├── cli.py ← CLI entry point (5 subcommands)
259
+ │ ├── io.py ← 18-format data loader/saver
260
+ │ ├── math.py ← 25 analysis functions
261
+ │ ├── plotting.py ← 27 plot types (Matplotlib, Seaborn, Plotly)
262
+ │ ├── signal.py ← 16 signal processing functions
263
+ │ ├── peaks.py ← 5 peak analysis functions
264
+ │ ├── data_tools.py ← 12 non-destructive DataFrame operations
265
+ │ ├── annotations.py ← 7 Matplotlib overlay types
266
+ │ ├── spectroscopy.py ← 18 spectroscopy functions
267
+ │ ├── nist.py ← NIST WebBook integration
268
+ │ ├── batch.py ← 5 batch processing functions
269
+ │ ├── report.py ← PDF report generation
270
+ │ ├── plugin_loader.py ← plugin discovery and loading
271
+ │ ├── molecular/ ← CPK atom data + vibrational parsers
272
+ │ ├── pages/ ← 13 Streamlit pages (1_*.py – 13_*.py)
273
+ │ ├── utils/ ← session state, plot config, user settings
274
+ │ ├── assets/ ← logo + NCCU branding (shipped in the wheel)
275
+ │ ├── gallery/ ← pre-rendered gallery PNGs + manifest.json
276
+ │ └── example-data/Artificial/ ← built-in sample datasets
277
+ ├── tests/ ← pytest suite, 1,000+ tests
278
+ ├── plugins/ ← plugin_example.py starter template
279
+ ├── examples/ ← 15+ standalone scripts + batch_config.json
280
+ ├── docs/ ← tutorials, cheatsheet, site built by build_docs.py
281
+ ├── generate_gallery.py ← regenerates eagleplot/gallery/
282
+ ├── requirements.txt
283
+ ├── pyproject.toml
284
+ ├── setup.bat / .command / .sh ← First-run setup (Windows / macOS / Linux)
285
+ └── launch.bat / .command / .sh ← App launcher (Windows / macOS / Linux)
286
+ ```
287
+
288
+ Runtime assets (`assets/`, `gallery/`, `example-data/`) live **inside** the package
289
+ rather than at the repository root, so they are present after `pip install`.
290
+
291
+ ## Documentation
292
+
293
+ - [Getting Started](docs/getting_started.md) — installation walkthrough and API examples
294
+ - [Cheatsheet](docs/cheatsheet.md) — quick reference for all plot functions
295
+ - [CLI Tutorial](docs/tutorials/cli_guide.md) — step-by-step guide to all 5 CLI commands
296
+ - [GUI Tutorial](docs/tutorials/gui_guide.md) — page-by-page walkthrough of the Streamlit app
297
+ - [Examples](examples/) — 15+ standalone runnable scripts covering all major workflows
298
+
299
+ ## About
300
+
301
+ **Author:** Jonathan D. Schultz, PhD — NCCU Department of Chemistry and Biochemistry
302
+ **Institution:** North Carolina Central University
303
+ **Use:** Research and teaching in computational science
304
+ **License:** See [LICENSE](LICENSE)
@@ -0,0 +1,73 @@
1
+ eagleplot/Home.py,sha256=B9NEeR4SCGRVl1v20tsC5_PsVFM_MyOgdqRGCuHYyRM,13790
2
+ eagleplot/__init__.py,sha256=JhPnQzhP0sX70UsgrID6954YKt0_PY9kHHGKQigz1PI,635
3
+ eagleplot/annotations.py,sha256=XTyeK27Llpttw-nk7I0yov-ln9u9G7cZSNxp6nsAIYU,6849
4
+ eagleplot/batch.py,sha256=JBYNBs6Aj5Kr8jwSvlanj87USgT7DKW6G5uJitLlDrI,15117
5
+ eagleplot/cli.py,sha256=3Ik4Hn-4WyhXN4wcsahWEZz2b-KhZz9rqp1D-VgZ3zo,25279
6
+ eagleplot/data_tools.py,sha256=p33S_wt0rhDxiHWifNChdhO6azRA8iimXfD5hJb9TzE,28562
7
+ eagleplot/io.py,sha256=yrRyEl88GcG8_Q3IKp___nxTCPLH2PBkaeJSaMOxOYI,30507
8
+ eagleplot/math.py,sha256=AkWdZXx_90TxfoF0PpQDBaOS8nOV9qeCcjCb_IVnZB0,36154
9
+ eagleplot/nist.py,sha256=zhlNVVLz9ac6rtKYaDyyI8-Hglj4mw18aR5YjJ5x2dY,7736
10
+ eagleplot/peaks.py,sha256=fXv7jtbK47HVqCNphRJ6mSDDvaAFqSxGdrLjZ2ofB7w,18127
11
+ eagleplot/plotting.py,sha256=NjzzOPK2Ua_rf_pv4BrLjb86x4p2AySRDD8dyzIkbuc,77189
12
+ eagleplot/plugin_loader.py,sha256=WTIe-vxRcbiGHTz4of5B1Vn2hOxJlFejDwMxxS-Jx4U,6580
13
+ eagleplot/report.py,sha256=WyeWACuQtKiO6jtdzPJ3VAnKcGJSw6Q2ZwUITIlyWnM,13833
14
+ eagleplot/signal.py,sha256=4GfhfUYkg0NrFV9Zc5rNr23LT-Si3u_0UmA98BSI3-A,14204
15
+ eagleplot/spectroscopy.py,sha256=scn0dwTfU9POCCpYwasZe47VUje4YGJQVQrHM9uBubg,25601
16
+ eagleplot/assets/logo.ico,sha256=pUnVhEqcPQTIhLmJ6yvHMUP9i0Dsu8Ff1vKSXRFpZMg,56347
17
+ eagleplot/assets/logo.png,sha256=gwF99wRnwiuaPfywYuLUi99l0UJAfT3TjoDBTQ2OIPY,92472
18
+ eagleplot/assets/nccu-horiz-logo.png,sha256=VpYkKNrHvuVhOqgKgJu5Ig5A6PWJ_lgHhGRXko6dyF4,58567
19
+ eagleplot/assets/nccu-wings.png,sha256=OJupRLZheTeGEqie4ojR9otRJ3jILPxq9iBHXjRMgHA,13519
20
+ eagleplot/example-data/Artificial/bimodal_distribution.csv,sha256=VVHEzznKTQnB73QQGet1C1zo-e4ecqIQZWdknrBiF28,10076
21
+ eagleplot/example-data/Artificial/correlation_matrix.npy,sha256=-ZoDYsPOyrZzdesPqSHAEDFsN4hmx9WxJOn7JIve7ZQ,928
22
+ eagleplot/example-data/Artificial/gaussian_surface.npy,sha256=MaUGDziJe07DbB04Pn0CQWJ0ikJ8gqzM1JL_FpudbjU,28928
23
+ eagleplot/example-data/Artificial/grouped_categorical.csv,sha256=5ieUCm-CL67xnLFe7l5T_4NGAdnx81mLHE6m2-qHuSw,3526
24
+ eagleplot/example-data/Artificial/ir_spectrum.csv,sha256=oFSh5xIiwy2LtgRJBCu9A6uUBazmhiBAwyHQI3GNqBs,22960
25
+ eagleplot/example-data/Artificial/molecular_properties.csv,sha256=v1_gJDaKQ59NJSOTTLHh8jqxqTKf1rYENouqPYod-tA,5062
26
+ eagleplot/example-data/Artificial/normal_distribution.csv,sha256=J6GZuQAhKCvmZCQ0XVA6kBb9nF_102S_mXoVGvortt8,7742
27
+ eagleplot/example-data/Artificial/reaction_kinetics.csv,sha256=8v5L31tsrCyUll65-dt1CoNhLJOIT5Ah0QjT7OPUFU0,4034
28
+ eagleplot/example-data/Artificial/scatter_correlation.csv,sha256=Y6kFsaytH-mtQgrrdtRdPJzbEo3dtbdoxPMFez36Uf4,11245
29
+ eagleplot/example-data/Artificial/sine_cosine_waves.csv,sha256=6mvFkMsEyZxKzcRDmCz8kHi9a3j36e_1fi49yPG9l24,23596
30
+ eagleplot/gallery/box_plot.png,sha256=KVnpqeMrfHo2zx2QGouROyHqJ0JmnRZdFGUO7mtVzrE,15941
31
+ eagleplot/gallery/contour_plot.png,sha256=fam_0N-rDnbxHIvDjH3d3_A1v02I257HZTzW7Hgeuy8,27932
32
+ eagleplot/gallery/distribution_plot.png,sha256=HIft4Ok4oApE-jnjmQnMfQMWaOj1pBEqlfj-2b90b1g,28556
33
+ eagleplot/gallery/heatmap.png,sha256=ASlMnGs6EifLTGU-ArChSrEI8Uoh0kUhhKwVlSq_UWM,17607
34
+ eagleplot/gallery/histogram.png,sha256=H5xq90-WF_2fTurL6ehRjCBfVJW56R0ZMEYNWts6rXU,19093
35
+ eagleplot/gallery/interactive_3d_surface.png,sha256=C7j5Z3VDxI1ukQhKDfxYzhaqR6M1XewY9qLDNgci4wY,7263
36
+ eagleplot/gallery/interactive_heatmap.png,sha256=_TNCSogJzynTtLQqHCfhew1EeR_5M7AsBS7Fbcrphh0,6881
37
+ eagleplot/gallery/interactive_histogram.png,sha256=jzMcbYqLRcs6QFnPMuJRIZV54ntAiNWGJtwWX2lzL_Q,7286
38
+ eagleplot/gallery/interactive_line.png,sha256=fiUuxO5HG1P95lgj3pZCbX2QpY4b7NS-hz34DqSobAg,6403
39
+ eagleplot/gallery/interactive_scatter.png,sha256=LhP3Au5ob78vVuE5M3TMj8w9lo9n6g0gPXqjn3sFSJM,6656
40
+ eagleplot/gallery/line_plot.png,sha256=GMvuX9kswNnqXWz1kcyXj2-gRqDlTj6mc6bO_HG1pP0,48283
41
+ eagleplot/gallery/manifest.json,sha256=KzueWvn7vy-v48TH9c_XvlrPgkEUJ-zB5ZXx-LPAMio,6001
42
+ eagleplot/gallery/regression_plot.png,sha256=RTh1G-YdOA31Urd7akPPp1cvlYt-weeoT_y9hRTLFY0,60898
43
+ eagleplot/gallery/scatter_plot.png,sha256=S7GNfOjk-1odf_HvldvVq3yagfEsYYSIYagAerbGRps,43074
44
+ eagleplot/molecular/__init__.py,sha256=7aD36Ub5U2GupkDWPBmfoTTvIeWn_rmzdsz5HpIYya8,501
45
+ eagleplot/molecular/atom_data.py,sha256=6VkUsHt95Is_PhNEi1mRvjMaBeDep1lPaUdzP86ZSLg,5680
46
+ eagleplot/molecular/parsers.py,sha256=OOjYv4OTzk2AvwsdRTuezb7GuX0OS81BDfisCD79zy8,26735
47
+ eagleplot/pages/10_Molecular_Viz.py,sha256=DSNLxIXlWUeo2ah1UKrU8fQsNQYwZiLmEhKyzypW0Ew,10130
48
+ eagleplot/pages/11_Batch_Analysis.py,sha256=c8I91Kbm2HxwwMETSZoUlPqx_E-XsrQid_nuvwiENro,13770
49
+ eagleplot/pages/12_Help.py,sha256=P6-sGiJypnlYfKXb0lvRCn1UVxiHxsc7scb72quBhRs,7101
50
+ eagleplot/pages/13_Settings.py,sha256=YV_p9pGMDat2JHq1IpdynhYic685Y34tydaNXvVrkdY,15133
51
+ eagleplot/pages/1_Data_Upload.py,sha256=Pd1eI97qAOOLFM_WLwHKewkq687_R-CK7kOzOvdCC-o,22125
52
+ eagleplot/pages/2_Quick_Plot.py,sha256=mqscCU2VB_zwcDTOWRiM1JgfYGvx_BUygqhU3lj86zY,67364
53
+ eagleplot/pages/3_Analysis_Tools.py,sha256=BG4TJZwgDHXblN6Mj22GKutmVDh1b6MvSwSZk0vEJjE,116553
54
+ eagleplot/pages/4_Multi_Plot_Dashboard.py,sha256=eq8_VcukGSbnHIKEhxFPMK3vlfRPGKyXPP12AltTWcc,31691
55
+ eagleplot/pages/5_Advanced_Plotting.py,sha256=Zi18V9ANoIfsjSuUfDWSMgYIUYr4xrDc5poneiNs3Zg,28329
56
+ eagleplot/pages/6_Export_Results.py,sha256=eTeijzp7yJkbCJ1NOmJSLJGJVeAtU6uAbw7uW8nfmzA,17877
57
+ eagleplot/pages/7_Gallery.py,sha256=2PdV8FWyS3y75syeNP7lg72AqbECimBzfivHZxETY4Q,8348
58
+ eagleplot/pages/8_Data_Tools.py,sha256=NR73Tidp1dptz6Hi4J7dtAk6ZBCH7mzX8cRkqKCUi1o,18267
59
+ eagleplot/pages/9_Spectroscopy.py,sha256=r44iUKvjHQAT4KP7WepfYjJ09EvhXMp5Ktk0SaVkyxY,36091
60
+ eagleplot/pages/__init__.py,sha256=H2ljfsftbhToVfM1VevqMWf5mBF-prpnm5vI3Q6qjEw,217
61
+ eagleplot/utils/__init__.py,sha256=xRn-6VvE7D8KwILI9kLmVyZ-LTKEhLbA6WTouuPrkwQ,1662
62
+ eagleplot/utils/access.py,sha256=71FX8OlnxuDvzbLeu2nNkyC3fzGT6BTo7Un5_gHv9Ns,2990
63
+ eagleplot/utils/data_preview.py,sha256=ZdUE8zTZ06W72JW8u1yJsJbixhS3l0HXiUTeOr8jNN0,11313
64
+ eagleplot/utils/plot_config.py,sha256=QTzTFMuQm1xYkuyVGdjVng-VLnnkq2V9YAi3RD9Pzr0,98332
65
+ eagleplot/utils/session_state.py,sha256=6AoqaX4S_W7zla2nevqXQJiEXSeHaooA_IOkYL2XfI0,17945
66
+ eagleplot/utils/theming.py,sha256=dxLK8q9nB4-Qana82cVBtV5S6Zr-6LECTvaUevmhJas,11546
67
+ eagleplot/utils/user_settings.py,sha256=G-4-oaZkityPl0MZjsDkwDF6DreY1qovGEp1cVtNbYE,8359
68
+ eagleplot-3.0.0.dist-info/licenses/LICENSE,sha256=4TxSFox-_MUF6u6M1DUW1o_U1pEJW5YRcclXAzA_r2I,1111
69
+ eagleplot-3.0.0.dist-info/METADATA,sha256=K8T5cXc5K3ANZFNUd_Mjs4X6sZ-eHnv3oIAGatymUdg,14383
70
+ eagleplot-3.0.0.dist-info/WHEEL,sha256=mOdXR9C3wMVov7cSY8PY-XCzo3SmmWCHvGQr5csJoao,91
71
+ eagleplot-3.0.0.dist-info/entry_points.txt,sha256=rxSm-wH9IHMOAZFdbGOJ00HgatrVaz4WFXmBZTY_AOo,49
72
+ eagleplot-3.0.0.dist-info/top_level.txt,sha256=I1QYUIHDjTCVn2iZ_Kzi9Og14Lh86UqPQpVXJ4ziE-s,10
73
+ eagleplot-3.0.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (84.2.1)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ eagleplot = eagleplot.cli:main
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Jonathan D. Schultz, North Carolina Central University
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1 @@
1
+ eagleplot