PyOptik 1.10.1__tar.gz → 1.10.4__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 (126) hide show
  1. {pyoptik-1.10.1 → pyoptik-1.10.4}/PKG-INFO +2 -2
  2. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/_version.py +2 -2
  3. pyoptik-1.10.4/PyOptik/utils.py +45 -0
  4. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik.egg-info/PKG-INFO +2 -2
  5. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik.egg-info/requires.txt +1 -1
  6. {pyoptik-1.10.1 → pyoptik-1.10.4}/docs/source/conf.py +0 -1
  7. {pyoptik-1.10.1 → pyoptik-1.10.4}/meta.yaml +1 -1
  8. {pyoptik-1.10.1 → pyoptik-1.10.4}/pyproject.toml +1 -1
  9. {pyoptik-1.10.1 → pyoptik-1.10.4}/tests/test_utils.py +8 -10
  10. pyoptik-1.10.1/PyOptik/utils.py +0 -45
  11. {pyoptik-1.10.1 → pyoptik-1.10.4}/.flake8 +0 -0
  12. {pyoptik-1.10.1 → pyoptik-1.10.4}/.github/dependabot.yml +0 -0
  13. {pyoptik-1.10.1 → pyoptik-1.10.4}/.github/workflows/deploy_PyPi.yml +0 -0
  14. {pyoptik-1.10.1 → pyoptik-1.10.4}/.github/workflows/deploy_anaconda.yml +0 -0
  15. {pyoptik-1.10.1 → pyoptik-1.10.4}/.github/workflows/deploy_coverage.yml +0 -0
  16. {pyoptik-1.10.1 → pyoptik-1.10.4}/.github/workflows/deploy_documentation.yml +0 -0
  17. {pyoptik-1.10.1 → pyoptik-1.10.4}/.gitignore +0 -0
  18. {pyoptik-1.10.1 → pyoptik-1.10.4}/.readthedocs.yml +0 -0
  19. {pyoptik-1.10.1 → pyoptik-1.10.4}/LICENSE +0 -0
  20. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/__init__.py +0 -0
  21. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/__main__.py +0 -0
  22. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/__init__.py +0 -0
  23. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/sellmeier/BAF10.yml +0 -0
  24. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/sellmeier/BAK1.yml +0 -0
  25. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/sellmeier/FK51A.yml +0 -0
  26. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/sellmeier/LASF9.yml +0 -0
  27. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/sellmeier/SF10.yml +0 -0
  28. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/sellmeier/SF11.yml +0 -0
  29. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/sellmeier/SF5.yml +0 -0
  30. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/sellmeier/ZBLAN.yml +0 -0
  31. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/sellmeier/acetone.yml +0 -0
  32. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/sellmeier/acetylene.yml +0 -0
  33. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/sellmeier/air.yml +0 -0
  34. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/sellmeier/argon.yml +0 -0
  35. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/sellmeier/cellulose.yml +0 -0
  36. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/sellmeier/crown.yml +0 -0
  37. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/sellmeier/ethane.yml +0 -0
  38. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/sellmeier/ethanol.yml +0 -0
  39. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/sellmeier/ethylene.yml +0 -0
  40. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/sellmeier/flint.yml +0 -0
  41. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/sellmeier/fused_silica.yml +0 -0
  42. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/sellmeier/germanium.yml +0 -0
  43. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/sellmeier/glycerol.yml +0 -0
  44. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/sellmeier/lithium_niobate.yml +0 -0
  45. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/sellmeier/methane.yml +0 -0
  46. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/sellmeier/methanol.yml +0 -0
  47. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/sellmeier/polycarbonate.yml +0 -0
  48. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/sellmeier/polystyren.yml +0 -0
  49. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/sellmeier/polystyrene.yml +0 -0
  50. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/sellmeier/propanol.yml +0 -0
  51. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/sellmeier/pvc.yml +0 -0
  52. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/sellmeier/soda_lime_glass.yml +0 -0
  53. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/sellmeier/water.yml +0 -0
  54. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/tabulated/BK7.yml +0 -0
  55. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/tabulated/aluminium.yml +0 -0
  56. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/tabulated/bismuth.yml +0 -0
  57. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/tabulated/calcium.yml +0 -0
  58. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/tabulated/chromium.yml +0 -0
  59. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/tabulated/copper.yml +0 -0
  60. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/tabulated/gold.yml +0 -0
  61. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/tabulated/iron.yml +0 -0
  62. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/tabulated/lead.yml +0 -0
  63. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/tabulated/magnesium.yml +0 -0
  64. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/tabulated/nickel.yml +0 -0
  65. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/tabulated/paladium.yml +0 -0
  66. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/tabulated/polyetylene.yml +0 -0
  67. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/tabulated/pva.yml +0 -0
  68. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/tabulated/rhodium.yml +0 -0
  69. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/tabulated/silicon.yml +0 -0
  70. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/tabulated/silver.yml +0 -0
  71. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/tabulated/sodium.yml +0 -0
  72. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/tabulated/tantalum.yml +0 -0
  73. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/tabulated/titanium.yml +0 -0
  74. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/tabulated/tungsten.yml +0 -0
  75. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/tabulated/vanadium.yml +0 -0
  76. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/data/tabulated/zinc.yml +0 -0
  77. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/directories.py +0 -0
  78. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/libraries/__init__.py +0 -0
  79. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/libraries/classics.yml +0 -0
  80. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/libraries/dielectrics.yml +0 -0
  81. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/libraries/metals.yml +0 -0
  82. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/libraries/minimal.yml +0 -0
  83. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/libraries/organics.yml +0 -0
  84. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/libraries/others.yml +0 -0
  85. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/libraries/polymers.yml +0 -0
  86. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/libraries/repertoire.yml +0 -0
  87. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/material/__init__.py +0 -0
  88. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/material/base_class.py +0 -0
  89. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/material/sellmeier_class.py +0 -0
  90. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/material/tabulated_class.py +0 -0
  91. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/material_bank.py +0 -0
  92. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/material_type.py +0 -0
  93. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik/units.py +0 -0
  94. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik.egg-info/SOURCES.txt +0 -0
  95. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik.egg-info/dependency_links.txt +0 -0
  96. {pyoptik-1.10.1 → pyoptik-1.10.4}/PyOptik.egg-info/top_level.txt +0 -0
  97. {pyoptik-1.10.1 → pyoptik-1.10.4}/README.rst +0 -0
  98. {pyoptik-1.10.1 → pyoptik-1.10.4}/development/dev_0.py +0 -0
  99. {pyoptik-1.10.1 → pyoptik-1.10.4}/docs/Makefile +0 -0
  100. {pyoptik-1.10.1 → pyoptik-1.10.4}/docs/examples/README.rst +0 -0
  101. {pyoptik-1.10.1 → pyoptik-1.10.4}/docs/examples/sellmeier/README.rst +0 -0
  102. {pyoptik-1.10.1 → pyoptik-1.10.4}/docs/examples/sellmeier/plot_bk7.py +0 -0
  103. {pyoptik-1.10.1 → pyoptik-1.10.4}/docs/examples/sellmeier/plot_silica.py +0 -0
  104. {pyoptik-1.10.1 → pyoptik-1.10.4}/docs/examples/sellmeier/plot_water.py +0 -0
  105. {pyoptik-1.10.1 → pyoptik-1.10.4}/docs/examples/tabulated/README.rst +0 -0
  106. {pyoptik-1.10.1 → pyoptik-1.10.4}/docs/examples/tabulated/plot_sf5.py +0 -0
  107. {pyoptik-1.10.1 → pyoptik-1.10.4}/docs/examples/tabulated/plot_silver.py +0 -0
  108. {pyoptik-1.10.1 → pyoptik-1.10.4}/docs/examples/utils/README.rst +0 -0
  109. {pyoptik-1.10.1 → pyoptik-1.10.4}/docs/examples/utils/__download_yml_file.py +0 -0
  110. {pyoptik-1.10.1 → pyoptik-1.10.4}/docs/examples/utils/build_library.py +0 -0
  111. {pyoptik-1.10.1 → pyoptik-1.10.4}/docs/examples/utils/create_sellmeier_file.py +0 -0
  112. {pyoptik-1.10.1 → pyoptik-1.10.4}/docs/examples/utils/create_tabulated_file.py +0 -0
  113. {pyoptik-1.10.1 → pyoptik-1.10.4}/docs/images/example_bk7.png +0 -0
  114. {pyoptik-1.10.1 → pyoptik-1.10.4}/docs/images/logo.png +0 -0
  115. {pyoptik-1.10.1 → pyoptik-1.10.4}/docs/make.bat +0 -0
  116. {pyoptik-1.10.1 → pyoptik-1.10.4}/docs/source/_static/default.css +0 -0
  117. {pyoptik-1.10.1 → pyoptik-1.10.4}/docs/source/_static/thumbnail.png +0 -0
  118. {pyoptik-1.10.1 → pyoptik-1.10.4}/docs/source/code.rst +0 -0
  119. {pyoptik-1.10.1 → pyoptik-1.10.4}/docs/source/gallery/index.rst +0 -0
  120. {pyoptik-1.10.1 → pyoptik-1.10.4}/docs/source/index.rst +0 -0
  121. {pyoptik-1.10.1 → pyoptik-1.10.4}/docs/source/references.rst +0 -0
  122. {pyoptik-1.10.1 → pyoptik-1.10.4}/setup.cfg +0 -0
  123. {pyoptik-1.10.1 → pyoptik-1.10.4}/tests/__init__.py +0 -0
  124. {pyoptik-1.10.1 → pyoptik-1.10.4}/tests/test_sellmeier.py +0 -0
  125. {pyoptik-1.10.1 → pyoptik-1.10.4}/tests/test_tabulated.py +0 -0
  126. {pyoptik-1.10.1 → pyoptik-1.10.4}/tests/test_usual_material.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyOptik
3
- Version: 1.10.1
3
+ Version: 1.10.4
4
4
  Summary: A package for refractive index values.
5
5
  Author-email: Martin Poinsinet de Sivry-Houle <martin.poinsinet.de.sivry@gmail.com>
6
6
  License: MIT License
@@ -43,7 +43,7 @@ Requires-Dist: numpy
43
43
  Requires-Dist: matplotlib~=3.8
44
44
  Requires-Dist: requests~=2.31
45
45
  Requires-Dist: pyyaml~=6.0
46
- Requires-Dist: MPSPlots~=1.5.1
46
+ Requires-Dist: MPSPlots>=1.6
47
47
  Requires-Dist: tabulate~=0.9
48
48
  Provides-Extra: testing
49
49
  Requires-Dist: pytest<9.0,>=7.4; extra == "testing"
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '1.10.1'
21
- __version_tuple__ = version_tuple = (1, 10, 1)
20
+ __version__ = version = '1.10.4'
21
+ __version_tuple__ = version_tuple = (1, 10, 4)
@@ -0,0 +1,45 @@
1
+ from PyOptik.directories import sellmeier_data_path, tabulated_data_path
2
+ from PyOptik.material_type import MaterialType
3
+ import requests
4
+ import logging
5
+
6
+
7
+ logging.basicConfig(
8
+ level=logging.INFO,
9
+ format="%(asctime)s %(levelname)s %(message)s",
10
+ )
11
+
12
+ def download_yml_file(url: str, filename: str, location: MaterialType) -> None:
13
+ """
14
+ Downloads a .yml file from a specified URL and saves it locally.
15
+ """
16
+ match location:
17
+ case MaterialType.SELLMEIER:
18
+ file_path = sellmeier_data_path / f"{filename}.yml"
19
+ case MaterialType.TABULATED:
20
+ file_path = tabulated_data_path / f"{filename}.yml"
21
+ case _:
22
+ raise ValueError(f"Location [{location}] is invalid, it can be either MaterialType.SELLMEIER or MaterialType.TABULATED")
23
+
24
+
25
+ logging.info(f"Starting download of {url!r} → {file_path!s}")
26
+ try:
27
+ response = requests.get(url, timeout=10)
28
+ logging.info(f"Received response: HTTP {response.status_code}")
29
+ response.raise_for_status()
30
+
31
+ file_path.parent.mkdir(parents=True, exist_ok=True)
32
+
33
+ with open(file_path, "wb") as f:
34
+ f.write(response.content)
35
+ logging.info(f"File downloaded and saved to {file_path}")
36
+
37
+ except requests.exceptions.Timeout as e:
38
+ logging.error(f"Timeout after 10 s when fetching {url!r}: {e}")
39
+ raise
40
+ except requests.exceptions.HTTPError as e:
41
+ logging.error(f"HTTP error while fetching {url!r}: {e}")
42
+ raise
43
+ except Exception as e:
44
+ logging.error(f"Unexpected error: {e}")
45
+ raise
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyOptik
3
- Version: 1.10.1
3
+ Version: 1.10.4
4
4
  Summary: A package for refractive index values.
5
5
  Author-email: Martin Poinsinet de Sivry-Houle <martin.poinsinet.de.sivry@gmail.com>
6
6
  License: MIT License
@@ -43,7 +43,7 @@ Requires-Dist: numpy
43
43
  Requires-Dist: matplotlib~=3.8
44
44
  Requires-Dist: requests~=2.31
45
45
  Requires-Dist: pyyaml~=6.0
46
- Requires-Dist: MPSPlots~=1.5.1
46
+ Requires-Dist: MPSPlots>=1.6
47
47
  Requires-Dist: tabulate~=0.9
48
48
  Provides-Extra: testing
49
49
  Requires-Dist: pytest<9.0,>=7.4; extra == "testing"
@@ -5,7 +5,7 @@ numpy
5
5
  matplotlib~=3.8
6
6
  requests~=2.31
7
7
  pyyaml~=6.0
8
- MPSPlots~=1.5.1
8
+ MPSPlots>=1.6
9
9
  tabulate~=0.9
10
10
 
11
11
  [dev]
@@ -35,7 +35,6 @@ author = 'Martin Poinsinet de Sivry-Houle'
35
35
 
36
36
  extensions = [
37
37
  'sphinx.ext.mathjax',
38
- 'pyvista.ext.plot_directive',
39
38
  'sphinx_gallery.gen_gallery',
40
39
  'sphinx.ext.autodoc',
41
40
  'sphinx.ext.napoleon',
@@ -25,7 +25,7 @@ requirements:
25
25
  run:
26
26
  - flexparser <0.4 # This is due to a dataclass inheritance problem coming from the pint package
27
27
  - pint ~= 0.24
28
- - martinpdes::mpsplots
28
+ - martinpdes::mpsplots >=1.6
29
29
  - pyyaml ~=6.0
30
30
  - requests ~=2.31
31
31
  - matplotlib ~=3.8
@@ -30,7 +30,7 @@ dependencies = [
30
30
  "matplotlib ~=3.8",
31
31
  "requests ~=2.31",
32
32
  "pyyaml ~=6.0",
33
- "MPSPlots ~=1.5.1",
33
+ "MPSPlots >=1.6",
34
34
  "tabulate ~=0.9",
35
35
  ]
36
36
 
@@ -154,15 +154,13 @@ def test_create_custom_tabulated_file():
154
154
  )
155
155
 
156
156
 
157
- def test_download_yml_file_http_error_log(caplog):
158
- download_yml_file(
159
- filename='example_download',
160
- url='__invalid_url__.com',
161
- location=MaterialType.SELLMEIER
162
- )
163
-
164
- assert 'An error occurred' in caplog.text, "Warning was not raised: {caplog.text}"
165
-
157
+ def _test_download_yml_file_http_error_log(caplog):
158
+ with pytest.raises(ValueError):
159
+ download_yml_file(
160
+ filename='example_download',
161
+ url='__invalid_url__.com',
162
+ location=MaterialType.SELLMEIER
163
+ )
166
164
 
167
165
  if __name__ == "__main__":
168
- pytest.main(["-W error", __file__])
166
+ pytest.main(["-W error", "-s", __file__])
@@ -1,45 +0,0 @@
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
- def download_yml_file(url: str, filename: str, location: MaterialType) -> None:
7
- """
8
- Downloads a .yml file from a specified URL and saves it locally.
9
-
10
- Parameters
11
- ----------
12
- url : str
13
- The URL of the .yml file to download.
14
- save_path : str
15
- The local path where the .yml file should be saved.
16
-
17
- Raises
18
- ------
19
- HTTPError: If the download fails due to an HTTP error.
20
- """
21
- match location:
22
- case MaterialType.SELLMEIER:
23
- file_path = sellmeier_data_path / f"{filename}.yml"
24
- case MaterialType.TABULATED:
25
- file_path = tabulated_data_path / f"{filename}.yml"
26
- case _:
27
- raise ValueError(f"Location [{location}] is invalid, it can be either MaterialType.SELLMEIER or MaterialType.TABULATED")
28
-
29
- try:
30
- # Send a GET request to the URL
31
- response = requests.get(url)
32
- response.raise_for_status() # Raise an error for bad status codes
33
-
34
- # Save the content of the response as a file
35
- file_path.parent.mkdir(parents=True, exist_ok=True) # Create directories if they don't exist
36
-
37
- with open(file_path, 'wb') as file:
38
- file.write(response.content)
39
-
40
- logging.info(f"File downloaded and saved to {file_path}")
41
-
42
- except requests.exceptions.HTTPError as http_err:
43
- logging.warning(f"HTTP error occurred: {http_err}")
44
- except Exception as err:
45
- logging.error(f"An error occurred: {err}")
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes