PyOptik 1.9.8__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.
- PyOptik/__init__.py +15 -0
- PyOptik/__main__.py +7 -0
- PyOptik/_version.py +16 -0
- PyOptik/data/__init__.py +0 -0
- PyOptik/data/sellmeier/BAK1.yml +60 -0
- PyOptik/data/sellmeier/BK7.yml +60 -0
- PyOptik/data/sellmeier/SF5.yml +54 -0
- PyOptik/data/sellmeier/ZBLAN.yml +10 -0
- PyOptik/data/sellmeier/air.yml +15 -0
- PyOptik/data/sellmeier/argon.yml +14 -0
- PyOptik/data/sellmeier/crown.yml +58 -0
- PyOptik/data/sellmeier/flint.yml +57 -0
- PyOptik/data/sellmeier/fused_silica.yml +15 -0
- PyOptik/data/sellmeier/germanium.yml +10 -0
- PyOptik/data/sellmeier/lithium_niobate.yml +10 -0
- PyOptik/data/sellmeier/polystyren.yml +14 -0
- PyOptik/data/sellmeier/silicon.yml +10 -0
- PyOptik/data/sellmeier/soda_lime_glass.yml +118 -0
- PyOptik/data/sellmeier/water.yml +14 -0
- PyOptik/data/tabulated/aluminium.yml +215 -0
- PyOptik/data/tabulated/calcium.yml +72 -0
- PyOptik/data/tabulated/copper.yml +58 -0
- PyOptik/data/tabulated/gold.yml +58 -0
- PyOptik/data/tabulated/iron.yml +58 -0
- PyOptik/data/tabulated/nickel.yml +58 -0
- PyOptik/data/tabulated/silver.yml +58 -0
- PyOptik/data/tabulated/sodium.yml +34 -0
- PyOptik/data/tabulated/zinc.yml +162 -0
- PyOptik/directories.py +44 -0
- PyOptik/libraries/__init__.py +0 -0
- PyOptik/libraries/classics.yml +28 -0
- PyOptik/libraries/dielectrics.yml +20 -0
- PyOptik/libraries/metals.yml +20 -0
- PyOptik/libraries/minimal.yml +9 -0
- PyOptik/libraries/organics.yml +11 -0
- PyOptik/libraries/others.yml +4 -0
- PyOptik/libraries/polymers.yml +8 -0
- PyOptik/material/__init__.py +3 -0
- PyOptik/material/base_class.py +90 -0
- PyOptik/material/sellmeier_class.py +198 -0
- PyOptik/material/tabulated_class.py +180 -0
- PyOptik/material_bank.py +466 -0
- PyOptik/material_type.py +9 -0
- PyOptik/units.py +56 -0
- PyOptik/utils.py +46 -0
- PyOptik-1.9.8.0.dist-info/LICENSE +21 -0
- PyOptik-1.9.8.0.dist-info/METADATA +295 -0
- PyOptik-1.9.8.0.dist-info/RECORD +50 -0
- PyOptik-1.9.8.0.dist-info/WHEEL +5 -0
- PyOptik-1.9.8.0.dist-info/top_level.txt +1 -0
PyOptik/units.py
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
import pint
|
|
3
|
+
|
|
4
|
+
ureg = pint.UnitRegistry()
|
|
5
|
+
pint.set_application_registry(ureg)
|
|
6
|
+
|
|
7
|
+
# Define a list of base units to scale
|
|
8
|
+
BASE_UNITS = [
|
|
9
|
+
'meter'
|
|
10
|
+
]
|
|
11
|
+
|
|
12
|
+
# Define prefixes for scaling units
|
|
13
|
+
SCALES = ['nano', 'micro', 'milli', '', 'kilo', 'mega']
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def initialize_registry(ureg: Optional[pint.UnitRegistry] = None) -> None:
|
|
17
|
+
"""
|
|
18
|
+
Initialize and set up a unit registry. This function also leaks
|
|
19
|
+
the units into the global namespace for easy access throughout
|
|
20
|
+
the module.
|
|
21
|
+
|
|
22
|
+
Parameters
|
|
23
|
+
----------
|
|
24
|
+
ureg: Optional[pint.UnitRegistry]
|
|
25
|
+
A UnitRegistry object to use. If None, the default PintType.ureg will be used.
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
# If no unit registry is provided, use the default
|
|
29
|
+
ureg = ureg or pint.UnitRegistry()
|
|
30
|
+
|
|
31
|
+
# Set up matplotlib integration and unit formatting
|
|
32
|
+
ureg.setup_matplotlib()
|
|
33
|
+
ureg.formatter.default_format = '~P' # Compact format without units like 'meter'
|
|
34
|
+
|
|
35
|
+
# Leak scaled units into the global namespace
|
|
36
|
+
for unit in BASE_UNITS:
|
|
37
|
+
for scale in SCALES:
|
|
38
|
+
scaled_unit_name = scale + unit
|
|
39
|
+
globals()[scaled_unit_name] = getattr(ureg, scaled_unit_name)
|
|
40
|
+
|
|
41
|
+
# Leak commonly used specific units into the global namespace
|
|
42
|
+
common_units = {
|
|
43
|
+
'RIU': ureg.refractive_index_unit,
|
|
44
|
+
'refractive_index_unit': ureg.refractive_index_unit,
|
|
45
|
+
'AU': ureg.dimensionless,
|
|
46
|
+
'distance': ureg.meter.dimensionality,
|
|
47
|
+
'Quantity': ureg.Quantity
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
# Leak the common units into the global namespace
|
|
51
|
+
globals().update(common_units)
|
|
52
|
+
|
|
53
|
+
globals()['ureg'] = ureg
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
initialize_registry(ureg)
|
PyOptik/utils.py
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import requests
|
|
2
|
+
import logging
|
|
3
|
+
from PyOptik.directories import sellmeier_data_path, tabulated_data_path
|
|
4
|
+
from PyOptik.material_type import MaterialType
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def download_yml_file(url: str, filename: str, location: MaterialType) -> None:
|
|
8
|
+
"""
|
|
9
|
+
Downloads a .yml file from a specified URL and saves it locally.
|
|
10
|
+
|
|
11
|
+
Parameters
|
|
12
|
+
----------
|
|
13
|
+
url : str
|
|
14
|
+
The URL of the .yml file to download.
|
|
15
|
+
save_path : str
|
|
16
|
+
The local path where the .yml file should be saved.
|
|
17
|
+
|
|
18
|
+
Raises
|
|
19
|
+
------
|
|
20
|
+
HTTPError: If the download fails due to an HTTP error.
|
|
21
|
+
"""
|
|
22
|
+
match location:
|
|
23
|
+
case MaterialType.SELLMEIER:
|
|
24
|
+
file_path = sellmeier_data_path / f"{filename}.yml"
|
|
25
|
+
case MaterialType.TABULATED:
|
|
26
|
+
file_path = tabulated_data_path / f"{filename}.yml"
|
|
27
|
+
case _:
|
|
28
|
+
raise ValueError(f"Location [{location}] is invalid, it can be either MaterialType.SELLMEIER or MaterialType.TABULATED")
|
|
29
|
+
|
|
30
|
+
try:
|
|
31
|
+
# Send a GET request to the URL
|
|
32
|
+
response = requests.get(url)
|
|
33
|
+
response.raise_for_status() # Raise an error for bad status codes
|
|
34
|
+
|
|
35
|
+
# Save the content of the response as a file
|
|
36
|
+
file_path.parent.mkdir(parents=True, exist_ok=True) # Create directories if they don't exist
|
|
37
|
+
|
|
38
|
+
with open(file_path, 'wb') as file:
|
|
39
|
+
file.write(response.content)
|
|
40
|
+
|
|
41
|
+
logging.info(f"File downloaded and saved to {file_path}")
|
|
42
|
+
|
|
43
|
+
except requests.exceptions.HTTPError as http_err:
|
|
44
|
+
logging.warning(f"HTTP error occurred: {http_err}")
|
|
45
|
+
except Exception as err:
|
|
46
|
+
logging.error(f"An error occurred: {err}")
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2020 Martin de Sivry
|
|
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,295 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: PyOptik
|
|
3
|
+
Version: 1.9.8.0
|
|
4
|
+
Summary: A package for refractive index values.
|
|
5
|
+
Author-email: Martin Poinsinet de Sivry-Houle <martin.poinsinet.de.sivry@gmail.com>
|
|
6
|
+
License: MIT License
|
|
7
|
+
|
|
8
|
+
Copyright (c) 2020 Martin de Sivry
|
|
9
|
+
|
|
10
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
11
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
12
|
+
in the Software without restriction, including without limitation the rights
|
|
13
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
14
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
15
|
+
furnished to do so, subject to the following conditions:
|
|
16
|
+
|
|
17
|
+
The above copyright notice and this permission notice shall be included in all
|
|
18
|
+
copies or substantial portions of the Software.
|
|
19
|
+
|
|
20
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
21
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
22
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
23
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
24
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
25
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
26
|
+
SOFTWARE.
|
|
27
|
+
|
|
28
|
+
Keywords: refracive index,optics
|
|
29
|
+
Classifier: Programming Language :: Python
|
|
30
|
+
Classifier: Programming Language :: Python :: 3
|
|
31
|
+
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
32
|
+
Classifier: Development Status :: 4 - Beta
|
|
33
|
+
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
34
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
35
|
+
Classifier: Intended Audience :: Science/Research
|
|
36
|
+
Requires-Python: >=3.10
|
|
37
|
+
Description-Content-Type: text/x-rst
|
|
38
|
+
License-File: LICENSE
|
|
39
|
+
Requires-Dist: flexparser<0.4
|
|
40
|
+
Requires-Dist: pint~=0.24
|
|
41
|
+
Requires-Dist: pydantic~=2.9
|
|
42
|
+
Requires-Dist: numpy~=1.26
|
|
43
|
+
Requires-Dist: matplotlib~=3.8
|
|
44
|
+
Requires-Dist: requests~=2.31
|
|
45
|
+
Requires-Dist: pyyaml~=6.0
|
|
46
|
+
Requires-Dist: MPSPlots~=1.5.1
|
|
47
|
+
Requires-Dist: tabulate~=0.9
|
|
48
|
+
Provides-Extra: dev
|
|
49
|
+
Requires-Dist: flake8==7.1.1; extra == "dev"
|
|
50
|
+
Provides-Extra: documentation
|
|
51
|
+
Requires-Dist: numpydoc==1.6.0; extra == "documentation"
|
|
52
|
+
Requires-Dist: sphinx>=5.1.1; extra == "documentation"
|
|
53
|
+
Requires-Dist: sphinx-gallery==0.15.0; extra == "documentation"
|
|
54
|
+
Requires-Dist: sphinx-rtd-theme==2.0.0; extra == "documentation"
|
|
55
|
+
Requires-Dist: pydata-sphinx-theme==0.14.1; extra == "documentation"
|
|
56
|
+
Provides-Extra: testing
|
|
57
|
+
Requires-Dist: pytest<9.0,>=7.4; extra == "testing"
|
|
58
|
+
Requires-Dist: pytest-cov<6,>=2; extra == "testing"
|
|
59
|
+
Requires-Dist: pytest-json-report~=1.5; extra == "testing"
|
|
60
|
+
Requires-Dist: coverage~=7.6; extra == "testing"
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|logo|
|
|
64
|
+
|
|
65
|
+
.. list-table::
|
|
66
|
+
:widths: 10 25 25
|
|
67
|
+
:header-rows: 0
|
|
68
|
+
|
|
69
|
+
* - Meta
|
|
70
|
+
- |python|
|
|
71
|
+
- |docs|
|
|
72
|
+
* - Testing
|
|
73
|
+
- |ci/cd|
|
|
74
|
+
- |coverage|
|
|
75
|
+
* - PyPi
|
|
76
|
+
- |PyPi|
|
|
77
|
+
- |PyPi_download|
|
|
78
|
+
* - Anaconda
|
|
79
|
+
- |anaconda|
|
|
80
|
+
- |anaconda_download|
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
PyOptik
|
|
84
|
+
=======
|
|
85
|
+
|
|
86
|
+
PyOptik is a Python tool designed to import refractive indexes and extinction coefficients for various materials across different wavelengths. The data provided by PyOptik can be used in numerous applications, including simulating light interactions with particles. All data is sourced from the reputable RefractiveIndex.INFO database.
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
Features
|
|
91
|
+
********
|
|
92
|
+
|
|
93
|
+
- **Comprehensive Database Access**: Seamlessly import refractive index and extinction coefficient data for a wide range of materials.
|
|
94
|
+
- **Simulation Ready**: Ideal for light-matter interaction simulations, particularly in optics and photonics.
|
|
95
|
+
- **Simple API**: Easy-to-use API that integrates well with other Python libraries.
|
|
96
|
+
- **Open Source**: Fully open-source.
|
|
97
|
+
|
|
98
|
+
Installation
|
|
99
|
+
************
|
|
100
|
+
|
|
101
|
+
To install PyOptik, simply use `pip` or `conda`:
|
|
102
|
+
|
|
103
|
+
.. code:: bash
|
|
104
|
+
|
|
105
|
+
pip install PyOptik
|
|
106
|
+
conda install --channels martinpdes pyoptik
|
|
107
|
+
|
|
108
|
+
Building the Material Library
|
|
109
|
+
*****************************
|
|
110
|
+
|
|
111
|
+
PyOptik allows you to build and customize a local material library, importing material data from various categories. You can download the following categories of materials from the RefractiveIndex.INFO database:
|
|
112
|
+
|
|
113
|
+
- `classics`: Commonly used optical materials.
|
|
114
|
+
- `glasses`: Various types of glass materials.
|
|
115
|
+
- `metals`: Different metal materials for optical simulations.
|
|
116
|
+
- `organics`: Organic materials with optical properties.
|
|
117
|
+
- `others`: Other optical materials.
|
|
118
|
+
- `all`: Download all available categories at once.
|
|
119
|
+
|
|
120
|
+
To build a material library, use the `build_library` function. This will download and save the material data to your local machine.
|
|
121
|
+
|
|
122
|
+
**Example: Building the Material Library:**
|
|
123
|
+
|
|
124
|
+
In this example, we will download the `others` category of materials and remove any previously existing data in that category:
|
|
125
|
+
|
|
126
|
+
.. code:: python
|
|
127
|
+
|
|
128
|
+
from PyOptik import MaterialBank
|
|
129
|
+
|
|
130
|
+
# Download the 'classics' category and remove previous files
|
|
131
|
+
MaterialBank.build_library('classics', remove_previous=True)
|
|
132
|
+
|
|
133
|
+
**Available Categories:**
|
|
134
|
+
|
|
135
|
+
To download materials from another category, simply pass the category name as an argument to `build_library`. For example:
|
|
136
|
+
|
|
137
|
+
.. code:: python
|
|
138
|
+
|
|
139
|
+
# Download materials from the 'glasses' category
|
|
140
|
+
MaterialBank.build_library('glasses')
|
|
141
|
+
|
|
142
|
+
To download all material categories at once:
|
|
143
|
+
|
|
144
|
+
.. code:: python
|
|
145
|
+
|
|
146
|
+
# Download all available material categories
|
|
147
|
+
MaterialBank.build_library('all')
|
|
148
|
+
|
|
149
|
+
You can also set the `remove_previous` parameter to `True` to remove old data before downloading new material data.
|
|
150
|
+
|
|
151
|
+
Viewing Available Materials
|
|
152
|
+
***************************
|
|
153
|
+
|
|
154
|
+
Once you have built the material library, you can view all the available materials using the `MaterialBank` class. This will print a list of materials stored in your local library.
|
|
155
|
+
|
|
156
|
+
**Example:**
|
|
157
|
+
|
|
158
|
+
.. code:: python
|
|
159
|
+
|
|
160
|
+
from PyOptik import MaterialBank
|
|
161
|
+
|
|
162
|
+
# Print the available materials in a tabulated format
|
|
163
|
+
MaterialBank.print_materials()
|
|
164
|
+
|
|
165
|
+
Simple Usage
|
|
166
|
+
************
|
|
167
|
+
|
|
168
|
+
After installing PyOptik and building the material library, you can easily access material properties:
|
|
169
|
+
|
|
170
|
+
.. code:: python
|
|
171
|
+
|
|
172
|
+
from PyOptik import MaterialBank
|
|
173
|
+
|
|
174
|
+
# Access the refractive index of BK7 glass
|
|
175
|
+
bk7 = MaterialBank.BK7
|
|
176
|
+
n = bk7.compute_refractive_index(0.55e-6)
|
|
177
|
+
print(f"Refractive index at 0.55 µm: {n}")
|
|
178
|
+
|
|
179
|
+
Example
|
|
180
|
+
*******
|
|
181
|
+
|
|
182
|
+
Here is a quick example demonstrating how to use PyOptik to retrieve and plot the refractive index of a material:
|
|
183
|
+
|
|
184
|
+
.. code:: python
|
|
185
|
+
|
|
186
|
+
import numpy as np
|
|
187
|
+
from PyOptik import MaterialBank
|
|
188
|
+
|
|
189
|
+
# Define wavelength range
|
|
190
|
+
wavelengths = np.linspace(0.3e-6, 2.5e-6, 100)
|
|
191
|
+
|
|
192
|
+
# Retrieve refractive index for BK7 glass
|
|
193
|
+
bk7 = MaterialBank.BK7
|
|
194
|
+
n_values = bk7.compute_refractive_index(wavelengths)
|
|
195
|
+
|
|
196
|
+
# Plot the results
|
|
197
|
+
bk7.plot()
|
|
198
|
+
|
|
199
|
+
This code produces the following figure: |example_bk7|
|
|
200
|
+
|
|
201
|
+
Adding and Removing Custom Materials
|
|
202
|
+
************************************
|
|
203
|
+
|
|
204
|
+
You can add a custom material to your library by providing a URL from `refractiveindex.info <https://refractiveindex.info>`_.
|
|
205
|
+
|
|
206
|
+
**Adding a Custom Material:**
|
|
207
|
+
|
|
208
|
+
.. code:: python
|
|
209
|
+
|
|
210
|
+
from PyOptik import MaterialBank, MaterialType
|
|
211
|
+
|
|
212
|
+
# Define the URL of the YAML file and the destination
|
|
213
|
+
# Call the function to download the file
|
|
214
|
+
MaterialBank.add_material_to_bank(
|
|
215
|
+
filename='example_download',
|
|
216
|
+
material_type=MaterialType.SELLMEIER,
|
|
217
|
+
url='https://refractiveindex.info/database/data-nk/main/H2O/Daimon-19.0C.yml'
|
|
218
|
+
)
|
|
219
|
+
|
|
220
|
+
MaterialBank.print_available()
|
|
221
|
+
|
|
222
|
+
**Removing a Material:**
|
|
223
|
+
|
|
224
|
+
You can also remove a material from the library as follows:
|
|
225
|
+
|
|
226
|
+
.. code:: python
|
|
227
|
+
|
|
228
|
+
from PyOptik.utils import remove_element
|
|
229
|
+
|
|
230
|
+
MaterialBank.remove_item(filename='example_download')
|
|
231
|
+
|
|
232
|
+
Testing
|
|
233
|
+
*******
|
|
234
|
+
|
|
235
|
+
To test locally after cloning the GitHub repository, install the dependencies and run the tests:
|
|
236
|
+
|
|
237
|
+
.. code:: bash
|
|
238
|
+
|
|
239
|
+
git clone https://github.com/MartinPdeS/PyOptik.git
|
|
240
|
+
cd PyOptik
|
|
241
|
+
pip install .
|
|
242
|
+
pytest
|
|
243
|
+
|
|
244
|
+
Contributing
|
|
245
|
+
************
|
|
246
|
+
|
|
247
|
+
PyOptik is open to contributions. Whether you're fixing bugs, adding new features, or improving documentation, your help is welcome! Please feel free to fork the repository and submit pull requests.
|
|
248
|
+
|
|
249
|
+
Contact Information
|
|
250
|
+
*******************
|
|
251
|
+
|
|
252
|
+
As of 2024, PyOptik is still under development. If you would like to collaborate, it would be a pleasure to hear from you. Contact me at:
|
|
253
|
+
|
|
254
|
+
**Author**: `Martin Poinsinet de Sivry-Houle <https://github.com/MartinPdS>`_
|
|
255
|
+
|
|
256
|
+
**Email**: `martin.poinsinet.de.sivry@gmail.com <mailto:martin.poinsinet.de.sivry@gmail.com?subject=PyOptik>`_
|
|
257
|
+
|
|
258
|
+
.. |python| image:: https://img.shields.io/pypi/pyversions/pyoptik.svg
|
|
259
|
+
:alt: Python
|
|
260
|
+
:target: https://www.python.org/
|
|
261
|
+
|
|
262
|
+
.. |logo| image:: https://github.com/MartinPdeS/PyOptik/raw/master/docs/images/logo.png
|
|
263
|
+
:alt: PyOptik logo
|
|
264
|
+
|
|
265
|
+
.. |example_bk7| image:: https://github.com/MartinPdeS/PyOptik/raw/master/docs/images/example_bk7.png
|
|
266
|
+
:alt: PyOptik example: BK7
|
|
267
|
+
:target: https://github.com/MartinPdeS/PyOptik/blob/master/docs/images/example_bk7.png
|
|
268
|
+
|
|
269
|
+
.. |docs| image:: https://github.com/martinpdes/pyoptik/actions/workflows/deploy_documentation.yml/badge.svg
|
|
270
|
+
:target: https://martinpdes.github.io/PyOptik/
|
|
271
|
+
:alt: Documentation Status
|
|
272
|
+
|
|
273
|
+
.. |ci/cd| image:: https://github.com/martinpdes/pyoptik/actions/workflows/deploy_coverage.yml/badge.svg
|
|
274
|
+
:target: https://martinpdes.github.io/PyOptik/actions
|
|
275
|
+
:alt: Unittest Status
|
|
276
|
+
|
|
277
|
+
.. |PyPi| image:: https://badge.fury.io/py/pyoptik.svg
|
|
278
|
+
:alt: PyPi version
|
|
279
|
+
:target: https://badge.fury.io/py/pyoptik
|
|
280
|
+
|
|
281
|
+
.. |PyPi_download| image:: https://img.shields.io/pypi/dm/pyoptik.svg
|
|
282
|
+
:alt: PyPi version
|
|
283
|
+
:target: https://pypistats.org/packages/pyoptik
|
|
284
|
+
|
|
285
|
+
.. |anaconda_download| image:: https://anaconda.org/martinpdes/pyoptik/badges/downloads.svg
|
|
286
|
+
:alt: Anaconda downloads
|
|
287
|
+
:target: https://anaconda.org/martinpdes/pyoptik
|
|
288
|
+
|
|
289
|
+
.. |coverage| image:: https://raw.githubusercontent.com/MartinPdeS/PyOptik/python-coverage-comment-action-data/badge.svg
|
|
290
|
+
:alt: Unittest coverage
|
|
291
|
+
:target: https://htmlpreview.github.io/?https://github.com/MartinPdeS/PyOptik/blob/python-coverage-comment-action-data/htmlcov/index.html
|
|
292
|
+
|
|
293
|
+
.. |anaconda| image:: https://anaconda.org/martinpdes/pyoptik/badges/version.svg
|
|
294
|
+
:alt: Anaconda version
|
|
295
|
+
:target: https://anaconda.org/martinpdes/pyoptik
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
PyOptik/__init__.py,sha256=KWTEeNX6WB_LSvjtks_KIsUL62lgv4m_Y6GgcFUYytY,364
|
|
2
|
+
PyOptik/__main__.py,sha256=GG4Hib_1ouWvHBexSTXF1NXIc6Vd3-lgnOnfQcGCqB4,166
|
|
3
|
+
PyOptik/_version.py,sha256=ww4t_XNUVgmR-vflLfkYIvQwzjnLzxJfdUKiVD9Cjjg,416
|
|
4
|
+
PyOptik/directories.py,sha256=eOQQ6FmMdLX4X6f3jMgNg73ZkaIZ7lct1xK5cr2JgFw,916
|
|
5
|
+
PyOptik/material_bank.py,sha256=a8lcMGAGC4VmtyEXQP6tzk-btjMrmpsTmFna1IXDxKU,16833
|
|
6
|
+
PyOptik/material_type.py,sha256=tF0-_5oyhAJJP7AXFtTs5cMlx-K99__Jw_5AsxSkWKc,153
|
|
7
|
+
PyOptik/units.py,sha256=j4Kvmj-JN92O9_pEFAnUGuMrAuPXGgvvy_hqvHAlDjo,1619
|
|
8
|
+
PyOptik/utils.py,sha256=EcyPJEtD-MXH9cBmphI85BtL7ctx12zg04kVOW_bf8E,1612
|
|
9
|
+
PyOptik/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
|
+
PyOptik/data/sellmeier/BAK1.yml,sha256=DFeUQ3cO_gRxjsWbspIIIhYomkraFGNlPUSK2vhM1Y0,2093
|
|
11
|
+
PyOptik/data/sellmeier/BK7.yml,sha256=QRA_2LJqpDsr5fN_qs7wyKLN9xQtaqwgAbWA3F9evIQ,2101
|
|
12
|
+
PyOptik/data/sellmeier/SF5.yml,sha256=ADIMWCQwi8DokOnXaKefVOgM9nBbVS0_3C2TAFeMO7s,1956
|
|
13
|
+
PyOptik/data/sellmeier/ZBLAN.yml,sha256=z7xj98GmREpvWmyZctkeWwL14t7u73cimOWAkXJ5E4Q,498
|
|
14
|
+
PyOptik/data/sellmeier/air.yml,sha256=cy0gqR7a84YpedKCKoaricbGQjFGa3nWj-US8jYuG9A,1000
|
|
15
|
+
PyOptik/data/sellmeier/argon.yml,sha256=NoNBb5_xhAvtbLzm3AsGA3mjJqE86hxGznqYgp9vXYs,1176
|
|
16
|
+
PyOptik/data/sellmeier/crown.yml,sha256=xmiEl5Fd9-5n3jQzI4i3RrKn8d2_ia-mYeFcXAT6Ues,2049
|
|
17
|
+
PyOptik/data/sellmeier/flint.yml,sha256=zV-_VZPFJVKQtpwqG-XI1BgcUruhlfvZhZaRziObqfQ,2042
|
|
18
|
+
PyOptik/data/sellmeier/fused_silica.yml,sha256=WBcZxonM7oZ6GHFC6hxH8xM77eshmKFoPl3Kq1ZxbGw,1023
|
|
19
|
+
PyOptik/data/sellmeier/germanium.yml,sha256=8pGjyaHGcDUIdumb9hC7w2y60iuH67nkHtXSHiu1i9Y,837
|
|
20
|
+
PyOptik/data/sellmeier/lithium_niobate.yml,sha256=_kNo_aXQN148tSm9Mo2dSTVrrq0sagb6p5iPV5DTk4s,659
|
|
21
|
+
PyOptik/data/sellmeier/polystyren.yml,sha256=8wD6LsHnL5VQ7NmjEa59iV0lp5FlrNvXRdKX8oltO1c,698
|
|
22
|
+
PyOptik/data/sellmeier/silicon.yml,sha256=lwvE7Y6ZTIBZ8FqvqKixmsmXFXPJEJKLHKCPDDHRkLM,834
|
|
23
|
+
PyOptik/data/sellmeier/soda_lime_glass.yml,sha256=_h65OrsirpfHZqK5kRWRT0vRrdGVLRdv8LhRQMKLock,2983
|
|
24
|
+
PyOptik/data/sellmeier/water.yml,sha256=1GgeHdtymY7WABw0nrwz4bARKzcLB5LJv2RKTD6w478,800
|
|
25
|
+
PyOptik/data/tabulated/aluminium.yml,sha256=cyaun8GEOjh_84oOthSGjA4cdqFMeneksjem9FWbLt0,9366
|
|
26
|
+
PyOptik/data/tabulated/calcium.yml,sha256=6L2_8hwB9t0ZsjSj-OqE4KUW0IS9sR4bcQpgIf4YOnQ,2486
|
|
27
|
+
PyOptik/data/tabulated/copper.yml,sha256=SKrKPd_vaUw4dIqDqyM7BxX2rRYzuReV9-B_xX9RVxk,1751
|
|
28
|
+
PyOptik/data/tabulated/gold.yml,sha256=fJG4A7rh08heYb4Po7OLxMFN2PNhB8rJf2vQRcWpxgc,1751
|
|
29
|
+
PyOptik/data/tabulated/iron.yml,sha256=rHq148cXs1PKE9GWJCJEMLjVCopHwkqtH8q-LH639eY,1689
|
|
30
|
+
PyOptik/data/tabulated/nickel.yml,sha256=QrQm7tE7W7qXFEfLr8PlXW8LyfAUATo1zMvN5y2E6Cw,1689
|
|
31
|
+
PyOptik/data/tabulated/silver.yml,sha256=hpbFAAJFeUAhwseySE7g2FQUUTX1HF9sOQHdG9-bPyM,1751
|
|
32
|
+
PyOptik/data/tabulated/sodium.yml,sha256=lHc2E9JZFGPIEDsVyuS74W-6j4iJy8rEA5C34p3JPEY,1318
|
|
33
|
+
PyOptik/data/tabulated/zinc.yml,sha256=BVjj3pLBWGsZc0kl9cxhXLKksNENnLJwuD5TQTa4vx4,5440
|
|
34
|
+
PyOptik/libraries/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
35
|
+
PyOptik/libraries/classics.yml,sha256=oDZliRP5xTsTMruL1uFHI_wH3gRDm1jvcxpCoUlxOyc,2033
|
|
36
|
+
PyOptik/libraries/dielectrics.yml,sha256=Kp6t7BBiUC1XTjtVf2d-pkJr42nSs57UHeSGSbD9yGg,1492
|
|
37
|
+
PyOptik/libraries/metals.yml,sha256=nFFKP5R-ZtU6z3X6gAZsDhuPY3hIdCcL1_Sec_vvek8,1457
|
|
38
|
+
PyOptik/libraries/minimal.yml,sha256=M2nkZ-L2cGnW-8uxWG5av_6lFqnxbZRwuuStgx_RmQc,523
|
|
39
|
+
PyOptik/libraries/organics.yml,sha256=7YIP3tI1n86yBJmJlHZgGWWwHtbDEI5wf4VbORXKTuo,879
|
|
40
|
+
PyOptik/libraries/others.yml,sha256=SkI9wlLqlgol1KhoHzag64Hw9AcCLYc8tT5Sv237574,258
|
|
41
|
+
PyOptik/libraries/polymers.yml,sha256=XEo71yJiZRn8Pw7e0TJDrVunCVuLmVEgKa5ILoXkWp8,787
|
|
42
|
+
PyOptik/material/__init__.py,sha256=2NkDtoPUboanWquiU_ljxqHc9Y6j2sVLZ_3epuT5xWQ,131
|
|
43
|
+
PyOptik/material/base_class.py,sha256=L5nOTRIBsFo0h3FVcD1yb9iLu2svhgXG8Muz9baNMnY,2890
|
|
44
|
+
PyOptik/material/sellmeier_class.py,sha256=7l5qCXGRtF9ewXPP8KrZUXS7MF6XPO9zYTbL-lMEGuI,7259
|
|
45
|
+
PyOptik/material/tabulated_class.py,sha256=2uBLGwTR57OXQ8yadltHEMKcOTakcz1NRyWOuOeR-0c,6190
|
|
46
|
+
PyOptik-1.9.8.0.dist-info/LICENSE,sha256=U6YG4UEW9XJzHa53oijR0qw6JNN_SZ38WOBmYn3NPd0,1072
|
|
47
|
+
PyOptik-1.9.8.0.dist-info/METADATA,sha256=ZMjAeDEbGSdvism5R9KCLQZG9ipj7-TKqm_d9003aU4,10253
|
|
48
|
+
PyOptik-1.9.8.0.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
|
|
49
|
+
PyOptik-1.9.8.0.dist-info/top_level.txt,sha256=LDypi2J9ytpLl-OYs1sacn8X6O7-WdNgFPjlfVbNpI0,8
|
|
50
|
+
PyOptik-1.9.8.0.dist-info/RECORD,,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
PyOptik
|