PyOptik 1.8.4.post0__tar.gz → 1.8.6.post0__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 (160) hide show
  1. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PKG-INFO +5 -5
  2. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/_version.py +2 -2
  3. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/material_bank.py +143 -58
  4. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik.egg-info/PKG-INFO +5 -5
  5. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik.egg-info/SOURCES.txt +2 -2
  6. pyoptik-1.8.6.post0/development/dev_0.py +9 -0
  7. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/examples/utils/build_library.py +1 -1
  8. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/utils/build_library.ipynb +1 -1
  9. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/utils/build_library.py +1 -1
  10. pyoptik-1.8.6.post0/docs/source/gallery/utils/build_library.py.md5 +1 -0
  11. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/utils/build_library.rst +2 -2
  12. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/utils/build_library_codeobj.pickle +0 -0
  13. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/utils/sg_execution_times.rst +5 -5
  14. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/meta.yaml +6 -3
  15. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/tests/test_usual_material.py +1 -1
  16. pyoptik-1.8.4.post0/development/dev_0.py +0 -6
  17. pyoptik-1.8.4.post0/docs/source/gallery/utils/build_library.py.md5 +0 -1
  18. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/.github/dependabot.yml +0 -0
  19. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/.github/workflows/deploy_anaconda.yml +0 -0
  20. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/.github/workflows/deploy_coverage.yml +0 -0
  21. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/.github/workflows/deploy_documentation.yml +0 -0
  22. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/.github/workflows/deploy_workflow.yml +0 -0
  23. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/.gitignore +0 -0
  24. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/.readthedocs.yml +0 -0
  25. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/LICENSE +0 -0
  26. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/__init__.py +0 -0
  27. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/__main__.py +0 -0
  28. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/data/__init__.py +0 -0
  29. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/data/classics.yml +0 -0
  30. pyoptik-1.8.4.post0/PyOptik/data/glasses.yml → pyoptik-1.8.6.post0/PyOptik/data/dielectrics.yml +0 -0
  31. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/data/metals.yml +0 -0
  32. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/data/minimal.yml +0 -0
  33. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/data/organics.yml +0 -0
  34. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/data/others.yml +0 -0
  35. pyoptik-1.8.4.post0/PyOptik/data/plastics.yml → pyoptik-1.8.6.post0/PyOptik/data/polymers.yml +0 -0
  36. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/data/sellmeier/BAK1.yml +0 -0
  37. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/data/sellmeier/BK7.yml +0 -0
  38. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/data/sellmeier/SF5.yml +0 -0
  39. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/data/sellmeier/ZBLAN.yml +0 -0
  40. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/data/sellmeier/air.yml +0 -0
  41. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/data/sellmeier/argon.yml +0 -0
  42. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/data/sellmeier/crown.yml +0 -0
  43. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/data/sellmeier/flint.yml +0 -0
  44. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/data/sellmeier/fused_silica.yml +0 -0
  45. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/data/sellmeier/germanium.yml +0 -0
  46. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/data/sellmeier/lithium_niobate.yml +0 -0
  47. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/data/sellmeier/polystyren.yml +0 -0
  48. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/data/sellmeier/silicon.yml +0 -0
  49. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/data/sellmeier/soda_lime_glass.yml +0 -0
  50. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/data/sellmeier/water.yml +0 -0
  51. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/data/tabulated/aluminium.yml +0 -0
  52. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/data/tabulated/calcium.yml +0 -0
  53. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/data/tabulated/copper.yml +0 -0
  54. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/data/tabulated/gold.yml +0 -0
  55. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/data/tabulated/iron.yml +0 -0
  56. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/data/tabulated/nickel.yml +0 -0
  57. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/data/tabulated/silver.yml +0 -0
  58. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/data/tabulated/sodium.yml +0 -0
  59. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/data/tabulated/zinc.yml +0 -0
  60. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/directories.py +0 -0
  61. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/material/__init__.py +0 -0
  62. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/material/base_class.py +0 -0
  63. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/material/sellmeier_class.py +0 -0
  64. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/material/tabulated_class.py +0 -0
  65. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/units.py +0 -0
  66. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik/utils.py +0 -0
  67. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik.egg-info/dependency_links.txt +0 -0
  68. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik.egg-info/requires.txt +0 -0
  69. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/PyOptik.egg-info/top_level.txt +0 -0
  70. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/README.rst +4 -4
  71. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/Makefile +0 -0
  72. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/examples/README.rst +0 -0
  73. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/examples/sellmeier/README.rst +0 -0
  74. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/examples/sellmeier/plot_bk7.py +0 -0
  75. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/examples/sellmeier/plot_silica.py +0 -0
  76. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/examples/sellmeier/plot_water.py +0 -0
  77. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/examples/tabulated/README.rst +0 -0
  78. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/examples/tabulated/plot_sf5.py +0 -0
  79. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/examples/tabulated/plot_silver.py +0 -0
  80. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/examples/utils/README.rst +0 -0
  81. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/examples/utils/create_sellmeier_file.py +0 -0
  82. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/examples/utils/create_tabulated_file.py +0 -0
  83. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/examples/utils/download_yml_file.py +0 -0
  84. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/images/example_bk7.png +0 -0
  85. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/images/logo.png +0 -0
  86. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/make.bat +0 -0
  87. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/_static/default.css +0 -0
  88. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/code.rst +0 -0
  89. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/conf.py +0 -0
  90. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/index.rst +0 -0
  91. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/sellmeier/images/sphx_glr_plot_bk7_001.png +0 -0
  92. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/sellmeier/images/sphx_glr_plot_silica_001.png +0 -0
  93. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/sellmeier/images/sphx_glr_plot_water_001.png +0 -0
  94. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/sellmeier/images/thumb/sphx_glr_plot_bk7_thumb.png +0 -0
  95. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/sellmeier/images/thumb/sphx_glr_plot_silica_thumb.png +0 -0
  96. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/sellmeier/images/thumb/sphx_glr_plot_water_thumb.png +0 -0
  97. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/sellmeier/index.rst +0 -0
  98. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/sellmeier/plot_bk7.ipynb +0 -0
  99. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/sellmeier/plot_bk7.py +0 -0
  100. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/sellmeier/plot_bk7.py.md5 +0 -0
  101. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/sellmeier/plot_bk7.rst +0 -0
  102. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/sellmeier/plot_bk7_codeobj.pickle +0 -0
  103. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/sellmeier/plot_silica.ipynb +0 -0
  104. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/sellmeier/plot_silica.py +0 -0
  105. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/sellmeier/plot_silica.py.md5 +0 -0
  106. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/sellmeier/plot_silica.rst +0 -0
  107. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/sellmeier/plot_silica_codeobj.pickle +0 -0
  108. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/sellmeier/plot_water.ipynb +0 -0
  109. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/sellmeier/plot_water.py +0 -0
  110. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/sellmeier/plot_water.py.md5 +0 -0
  111. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/sellmeier/plot_water.rst +0 -0
  112. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/sellmeier/plot_water_codeobj.pickle +0 -0
  113. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/sellmeier/sg_execution_times.rst +0 -0
  114. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/tabulated/images/sphx_glr_plot_sf5_001.png +0 -0
  115. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/tabulated/images/sphx_glr_plot_silver_001.png +0 -0
  116. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/tabulated/images/thumb/sphx_glr_plot_sf5_thumb.png +0 -0
  117. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/tabulated/images/thumb/sphx_glr_plot_silver_thumb.png +0 -0
  118. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/tabulated/index.rst +0 -0
  119. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/tabulated/plot_sf5.ipynb +0 -0
  120. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/tabulated/plot_sf5.py +0 -0
  121. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/tabulated/plot_sf5.py.md5 +0 -0
  122. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/tabulated/plot_sf5.rst +0 -0
  123. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/tabulated/plot_sf5_codeobj.pickle +0 -0
  124. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/tabulated/plot_silver.ipynb +0 -0
  125. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/tabulated/plot_silver.py +0 -0
  126. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/tabulated/plot_silver.py.md5 +0 -0
  127. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/tabulated/plot_silver.rst +0 -0
  128. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/tabulated/plot_silver_codeobj.pickle +0 -0
  129. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/tabulated/sg_execution_times.rst +0 -0
  130. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/utils/create_sellmeier_file.ipynb +0 -0
  131. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/utils/create_sellmeier_file.py +0 -0
  132. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/utils/create_sellmeier_file.py.md5 +0 -0
  133. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/utils/create_sellmeier_file.rst +0 -0
  134. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/utils/create_sellmeier_file_codeobj.pickle +0 -0
  135. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/utils/create_tabulated_file.ipynb +0 -0
  136. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/utils/create_tabulated_file.py +0 -0
  137. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/utils/create_tabulated_file.py.md5 +0 -0
  138. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/utils/create_tabulated_file.rst +0 -0
  139. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/utils/create_tabulated_file_codeobj.pickle +0 -0
  140. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/utils/download_yml_file.ipynb +0 -0
  141. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/utils/download_yml_file.py +0 -0
  142. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/utils/download_yml_file.py.md5 +0 -0
  143. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/utils/download_yml_file.rst +0 -0
  144. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/utils/download_yml_file_codeobj.pickle +0 -0
  145. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/utils/images/sphx_glr_create_sellmeier_file_001.png +0 -0
  146. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/utils/images/sphx_glr_create_tabulated_file_001.png +0 -0
  147. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/utils/images/sphx_glr_download_yml_file_001.png +0 -0
  148. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/utils/images/thumb/sphx_glr_build_library_thumb.png +0 -0
  149. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/utils/images/thumb/sphx_glr_create_sellmeier_file_thumb.png +0 -0
  150. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/utils/images/thumb/sphx_glr_create_tabulated_file_thumb.png +0 -0
  151. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/utils/images/thumb/sphx_glr_download_yml_file_thumb.png +0 -0
  152. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/gallery/utils/index.rst +0 -0
  153. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/index.rst +0 -0
  154. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/docs/source/references.rst +0 -0
  155. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/pyproject.toml +0 -0
  156. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/setup.cfg +0 -0
  157. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/tests/__init__.py +0 -0
  158. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/tests/test_sellmeier.py +0 -0
  159. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/tests/test_tabulated.py +0 -0
  160. {pyoptik-1.8.4.post0 → pyoptik-1.8.6.post0}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyOptik
3
- Version: 1.8.4.post0
3
+ Version: 1.8.6.post0
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
@@ -276,6 +276,10 @@ As of 2024, PyOptik is still under development. If you would like to collaborate
276
276
  :alt: PyPi version
277
277
  :target: https://pypistats.org/packages/pyoptik
278
278
 
279
+ .. |anaconda_download| image:: https://anaconda.org/martinpdes/pyoptik/badges/downloads.svg
280
+ :alt: Anaconda downloads
281
+ :target: https://anaconda.org/martinpdes/pyoptik
282
+
279
283
  .. |coverage| image:: https://raw.githubusercontent.com/MartinPdeS/PyOptik/python-coverage-comment-action-data/badge.svg
280
284
  :alt: Unittest coverage
281
285
  :target: https://htmlpreview.github.io/?https://github.com/MartinPdeS/PyOptik/blob/python-coverage-comment-action-data/htmlcov/index.html
@@ -283,7 +287,3 @@ As of 2024, PyOptik is still under development. If you would like to collaborate
283
287
  .. |anaconda| image:: https://anaconda.org/martinpdes/pyoptik/badges/version.svg
284
288
  :alt: Anaconda version
285
289
  :target: https://anaconda.org/martinpdes/pyoptik
286
-
287
- .. |anaconda_download| image:: https://anaconda.org/martinpdes/pyoptik/badges/downloads.svg
288
- :alt: Anaconda downloads
289
- :target: https://anaconda.org/martinpdes/pyoptik
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '1.8.4.post0'
16
- __version_tuple__ = version_tuple = (1, 8, 4)
15
+ __version__ = version = '1.8.6.post0'
16
+ __version_tuple__ = version_tuple = (1, 8, 6)
@@ -8,6 +8,7 @@ import yaml
8
8
  import logging
9
9
  from pathlib import Path
10
10
  from typing import List, Union, Optional, Tuple
11
+ from enum import Enum
11
12
  from PyOptik.directories import data_path
12
13
  from PyOptik.material.sellmeier_class import SellmeierMaterial
13
14
  from PyOptik.material.tabulated_class import TabulatedMaterial
@@ -15,6 +16,9 @@ from PyOptik.utils import download_yml_file
15
16
  from tabulate import tabulate
16
17
  from dataclasses import dataclass
17
18
 
19
+ class MaterialType(Enum):
20
+ SELLMEIER = "sellmeier"
21
+ TABULATED = "tabulated"
18
22
 
19
23
  @dataclass(frozen=True, slots=True)
20
24
  class _MaterialBank():
@@ -53,9 +57,12 @@ class _MaterialBank():
53
57
  If a material is not found in either the Sellmeier or Tabulated material lists.
54
58
  """
55
59
 
60
+ only_tabulated: bool = False
61
+ only_sellmeier: bool = False
62
+
56
63
  def __getattr__(self, material_name: str) -> Union[SellmeierMaterial, TabulatedMaterial]:
57
64
  """
58
- Retrieve a material by name dynamically at the class level.
65
+ Retrieve a material by name dynamically at the class level, respecting filter options.
59
66
 
60
67
  Parameters
61
68
  ----------
@@ -69,37 +76,123 @@ class _MaterialBank():
69
76
 
70
77
  Raises
71
78
  ------
72
- FileNotFoundError
73
- If the material is not found in either the Sellmeier or Tabulated lists.
79
+ AttributeError
80
+ If the material is not found in the filtered or unfiltered lists.
74
81
  """
75
- if material_name in self.sellmeier:
82
+ # Apply the filtering logic based on class-level attributes
83
+ if self.only_sellmeier and material_name in self.sellmeier:
76
84
  return SellmeierMaterial(filename=material_name)
77
-
78
- if material_name in self.tabulated:
85
+ elif self.only_tabulated and material_name in self.tabulated:
79
86
  return TabulatedMaterial(filename=material_name)
87
+ elif not self.only_sellmeier and not self.only_tabulated:
88
+ # If no filter is set, check in both lists
89
+ if material_name in self.sellmeier:
90
+ return SellmeierMaterial(filename=material_name)
91
+ elif material_name in self.tabulated:
92
+ return TabulatedMaterial(filename=material_name)
80
93
 
81
94
  raise AttributeError(f"'{self.__class__.__name__}' object has no attribute '{material_name}'")
82
95
 
83
- def get(self, filename: str) -> Union[SellmeierMaterial, TabulatedMaterial]:
84
- return self.__getattr__(filename)
96
+ def get(self, material_name: str) -> Union[SellmeierMaterial, TabulatedMaterial]:
97
+ """
98
+ Retrieve a material by name, respecting filter options.
85
99
 
86
- @property
87
- def sellmeier(self) -> List[str]:
100
+ Parameters
101
+ ----------
102
+ material_name : str
103
+ The name of the material to retrieve.
104
+
105
+ Returns
106
+ -------
107
+ Union[SellmeierMaterial, TabulatedMaterial]
108
+ An instance of the material if found.
109
+
110
+ Raises
111
+ ------
112
+ AttributeError
113
+ If the material is not found in the filtered or unfiltered lists.
114
+ """
115
+ return self.__getattr__(material_name)
116
+
117
+ @classmethod
118
+ def set_filter(cls, only_tabulated: bool = False, only_sellmeier: bool = False) -> None:
119
+ """
120
+ Set the filter for the MaterialBank.
121
+
122
+ Parameters
123
+ ----------
124
+ only_tabulated : bool
125
+ If True, restricts retrieval to tabulated materials only.
126
+ only_sellmeier : bool
127
+ If True, restricts retrieval to sellmeier materials only.
128
+
129
+ Raises
130
+ ------
131
+ ValueError
132
+ If both only_tabulated and only_sellmeier are set to True.
133
+ """
134
+ if only_tabulated and only_sellmeier:
135
+ raise ValueError("Cannot set both 'only_tabulated' and 'only_sellmeier' to True.")
136
+
137
+ cls.only_tabulated = only_tabulated
138
+ cls.only_sellmeier = only_sellmeier
139
+
140
+ def _list_materials(self, material_type: MaterialType) -> List[str]:
141
+ """
142
+ Helper method to list materials of a specific type.
143
+
144
+ Parameters
145
+ ----------
146
+ material_type : MaterialType
147
+ The type of materials to list (MaterialType.SELLMEIER or MaterialType.TABULATED).
148
+
149
+ Returns
150
+ -------
151
+ List[str]
152
+ A list of material names of the specified type.
153
+ """
154
+ directory = data_path / material_type.value
88
155
  return [
89
- os.path.splitext(f)[0] for f in os.listdir(data_path / 'sellmeier') if os.path.isfile(os.path.join(data_path / 'sellmeier', f)) and f.endswith('.yml')
156
+ os.path.splitext(f)[0] for f in os.listdir(directory) if os.path.isfile(directory / f) and f.endswith('.yml')
90
157
  ]
91
158
 
159
+ @property
160
+ def sellmeier(self) -> List[str]:
161
+ """
162
+ List all available Sellmeier materials.
163
+
164
+ Returns
165
+ -------
166
+ List[str]
167
+ A list of all Sellmeier material names.
168
+ """
169
+ return self._list_materials(MaterialType.SELLMEIER)
170
+
92
171
  @property
93
172
  def tabulated(self) -> List[str]:
94
- return [
95
- os.path.splitext(f)[0] for f in os.listdir(data_path / 'tabulated') if os.path.isfile(os.path.join(data_path / 'tabulated', f)) and f.endswith('.yml')
96
- ]
173
+ """
174
+ List all available Tabulated materials.
175
+
176
+ Returns
177
+ -------
178
+ List[str]
179
+ A list of all Tabulated material names.
180
+ """
181
+ return self._list_materials(MaterialType.TABULATED)
97
182
 
98
183
  @property
99
184
  def all(self) -> List[str]:
185
+ """
186
+ List all available materials, including both Sellmeier and Tabulated materials.
187
+
188
+ Returns
189
+ -------
190
+ List[str]
191
+ A combined list of all Sellmeier and Tabulated material names.
192
+ """
100
193
  return self.sellmeier + self.tabulated
101
194
 
102
- def print_materials(cls) -> None:
195
+ def print_available(cls) -> None:
103
196
  """
104
197
  Prints out all the available Sellmeier and Tabulated materials in a tabulated format.
105
198
  """
@@ -121,49 +214,41 @@ class _MaterialBank():
121
214
  print(tabulate(table_data, headers=headers, tablefmt="grid"))
122
215
 
123
216
  @classmethod
124
- def add_sellmeier_to_bank(cls, filename: str, url: str) -> None:
217
+ def add_material_to_bank(cls, filename: str, url: str, material_type: MaterialType) -> None:
125
218
  """
126
- Add a Sellmeier material to the material bank.
219
+ Add a material to the material bank.
127
220
 
128
- Downloads a YAML file containing the Sellmeier material data from a specified URL and stores it
129
- in the Sellmeier materials directory.
221
+ Downloads a YAML file containing the material data from a specified URL and stores it
222
+ in the specified materials directory.
130
223
 
131
224
  Parameters
132
225
  ----------
133
226
  filename : str
134
- The name of the file to be saved in the Sellmeier material bank.
227
+ The name of the file to be saved in the material bank.
135
228
  url : str
136
229
  The URL from where the material file is downloaded.
230
+ material_type : MaterialType
231
+ The type of material (MaterialType.SELLMEIER or MaterialType.TABULATED).
137
232
 
138
233
  Returns
139
234
  -------
140
235
  None
141
236
  """
142
- return download_yml_file(filename=filename, url=url, location=data_path / 'sellmeier')
143
-
144
- @classmethod
145
- def add_tabulated_to_bank(cls, filename: str, url: str) -> None:
146
- """
147
- Add a Tabulated material to the material bank.
237
+ if material_type not in [MaterialType.SELLMEIER, MaterialType.TABULATED]:
238
+ raise ValueError("Invalid material type. Please choose MaterialType.SELLMEIER or MaterialType.TABULATED.")
148
239
 
149
- Downloads a YAML file containing the Tabulated material data from a specified URL and stores it
150
- in the Tabulated materials directory.
240
+ return download_yml_file(filename=filename, url=url, location=data_path / material_type.value)
151
241
 
152
- Parameters
153
- ----------
154
- filename : str
155
- The name of the file to be saved in the Tabulated material bank.
156
- url : str
157
- The URL from where the material file is downloaded.
242
+ @classmethod
243
+ def add_sellmeier_to_bank(cls, filename: str, url: str) -> None:
244
+ return cls.add_material_to_bank(filename, url, MaterialType.SELLMEIER)
158
245
 
159
- Returns
160
- -------
161
- None
162
- """
163
- return download_yml_file(filename=filename, url=url, location=data_path / 'tabulated')
246
+ @classmethod
247
+ def add_tabulated_to_bank(cls, filename: str, url: str) -> None:
248
+ return cls.add_material_to_bank(filename, url, MaterialType.TABULATED)
164
249
 
165
250
  @classmethod
166
- def remove_item(cls, filename: str, location: str = 'any') -> None:
251
+ def remove_item(cls, filename: str, location: Union[str, MaterialType] = 'any') -> None:
167
252
  """
168
253
  Remove a file associated with a given element name from the specified location.
169
254
 
@@ -171,8 +256,8 @@ class _MaterialBank():
171
256
  ----------
172
257
  filename : str
173
258
  The name of the file to remove, without the '.yml' suffix.
174
- location : str
175
- The location to search for the file, either 'sellmeier', 'tabulated', or 'any' (default is 'any').
259
+ location : Union[str, MaterialType]
260
+ The location to search for the file, either 'sellmeier', 'tabulated', 'any', or a MaterialType enum (default is 'any').
176
261
 
177
262
  Raises
178
263
  ------
@@ -181,6 +266,9 @@ class _MaterialBank():
181
266
  ValueError
182
267
  If an invalid location is provided.
183
268
  """
269
+ if isinstance(location, MaterialType):
270
+ location = location.value
271
+
184
272
  location = location.lower()
185
273
 
186
274
  if location not in ['any', 'sellmeier', 'tabulated']:
@@ -196,7 +284,7 @@ class _MaterialBank():
196
284
  if tabulated_file.exists():
197
285
  tabulated_file.unlink()
198
286
 
199
- def clean_data_files(self, regex: str, location: str = 'any') -> None:
287
+ def clean_data_files(self, regex: str, location: Union[str, MaterialType] = 'any') -> None:
200
288
  """
201
289
  Remove all files matching the given regex from the specified location.
202
290
 
@@ -204,7 +292,7 @@ class _MaterialBank():
204
292
  ----------
205
293
  regex : str
206
294
  The regex pattern to match the filenames (without the '.yml' suffix).
207
- location : str
295
+ location : Union[str, MaterialType]
208
296
  The location to search for files, either 'sellmeier', 'tabulated', or 'any' (default is 'any').
209
297
 
210
298
  Raises
@@ -212,15 +300,17 @@ class _MaterialBank():
212
300
  ValueError
213
301
  If an invalid location is provided.
214
302
  """
215
- # Compile the regex pattern
216
- pattern = re.compile(regex)
303
+ if isinstance(location, MaterialType):
304
+ location = location.value
217
305
 
218
- # Normalize the location parameter
219
306
  location = location.lower()
220
307
 
221
308
  if location not in ['any', 'sellmeier', 'tabulated']:
222
309
  raise ValueError("Invalid location. Please choose 'sellmeier', 'tabulated', or 'any'.")
223
310
 
311
+ # Compile the regex pattern
312
+ pattern = re.compile(regex)
313
+
224
314
  # Function to remove matching files in a given directory
225
315
  def remove_matching_files(directory: Path):
226
316
  for file in directory.glob("*.yml"):
@@ -236,7 +326,6 @@ class _MaterialBank():
236
326
  if location in ['any', 'tabulated']:
237
327
  remove_matching_files(data_path / 'tabulated')
238
328
 
239
-
240
329
  def build_library(self, library: Union[str, List[str]] = 'classics', remove_previous: bool = False) -> None:
241
330
  """
242
331
  Downloads and saves materials data from the specified URLs.
@@ -363,15 +452,11 @@ class _MaterialBank():
363
452
  data_str = "\n".join(" ".join(map(str, row)) for row in data)
364
453
 
365
454
  # Create the data dictionary for YAML
366
- yaml_data = {
367
- 'REFERENCES': reference,
368
- 'DATA': [
369
- {
370
- 'type': 'tabulated nk',
371
- 'data': data_str,
372
- }
373
- ]
374
- }
455
+ yaml_data = {}
456
+ yaml_data['REFERENCES'] = reference
457
+ yaml_data['DATA'] = [
458
+ dict(type='tabulated nk', data=data_str)
459
+ ]
375
460
 
376
461
  # Add comments if provided
377
462
  if comments:
@@ -386,4 +471,4 @@ class _MaterialBank():
386
471
 
387
472
  logging.info(f"Tabulated nk data saved to {file_path}")
388
473
 
389
- MaterialBank = _MaterialBank()
474
+ MaterialBank = _MaterialBank()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyOptik
3
- Version: 1.8.4.post0
3
+ Version: 1.8.6.post0
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
@@ -276,6 +276,10 @@ As of 2024, PyOptik is still under development. If you would like to collaborate
276
276
  :alt: PyPi version
277
277
  :target: https://pypistats.org/packages/pyoptik
278
278
 
279
+ .. |anaconda_download| image:: https://anaconda.org/martinpdes/pyoptik/badges/downloads.svg
280
+ :alt: Anaconda downloads
281
+ :target: https://anaconda.org/martinpdes/pyoptik
282
+
279
283
  .. |coverage| image:: https://raw.githubusercontent.com/MartinPdeS/PyOptik/python-coverage-comment-action-data/badge.svg
280
284
  :alt: Unittest coverage
281
285
  :target: https://htmlpreview.github.io/?https://github.com/MartinPdeS/PyOptik/blob/python-coverage-comment-action-data/htmlcov/index.html
@@ -283,7 +287,3 @@ As of 2024, PyOptik is still under development. If you would like to collaborate
283
287
  .. |anaconda| image:: https://anaconda.org/martinpdes/pyoptik/badges/version.svg
284
288
  :alt: Anaconda version
285
289
  :target: https://anaconda.org/martinpdes/pyoptik
286
-
287
- .. |anaconda_download| image:: https://anaconda.org/martinpdes/pyoptik/badges/downloads.svg
288
- :alt: Anaconda downloads
289
- :target: https://anaconda.org/martinpdes/pyoptik
@@ -23,12 +23,12 @@ PyOptik.egg-info/requires.txt
23
23
  PyOptik.egg-info/top_level.txt
24
24
  PyOptik/data/__init__.py
25
25
  PyOptik/data/classics.yml
26
- PyOptik/data/glasses.yml
26
+ PyOptik/data/dielectrics.yml
27
27
  PyOptik/data/metals.yml
28
28
  PyOptik/data/minimal.yml
29
29
  PyOptik/data/organics.yml
30
30
  PyOptik/data/others.yml
31
- PyOptik/data/plastics.yml
31
+ PyOptik/data/polymers.yml
32
32
  PyOptik/data/sellmeier/BAK1.yml
33
33
  PyOptik/data/sellmeier/BK7.yml
34
34
  PyOptik/data/sellmeier/SF5.yml
@@ -0,0 +1,9 @@
1
+ import numpy
2
+ from PyOptik import MaterialBank
3
+ MaterialBank.build_library('classics')
4
+ MaterialBank.print_available() # <- this will provide a table of Tabulated and Sellmeier materials name (usually metals are tabulated)
5
+ material = MaterialBank.gold # <- this should be a TabulatedMaterial instance
6
+
7
+ wavelength = numpy.linspace(300e-9, 500e-9, 100)
8
+
9
+ ri = material.compute_refractive_index(wavelength)
@@ -27,5 +27,5 @@ from PyOptik import MaterialBank
27
27
  MaterialBank.build_library('glasses', remove_previous=True)
28
28
 
29
29
  # Print all the available materials (Sellmeier and Tabulated)
30
- MaterialBank.print_materials()
30
+ MaterialBank.print_available()
31
31
 
@@ -22,7 +22,7 @@
22
22
  },
23
23
  "outputs": [],
24
24
  "source": [
25
- "from PyOptik import MaterialBank\n\n# Build the 'others' material library and remove previously downloaded files\nMaterialBank.build_library('glasses', remove_previous=True)\n\n# Print all the available materials (Sellmeier and Tabulated)\nMaterialBank.print_materials()"
25
+ "from PyOptik import MaterialBank\n\n# Build the 'others' material library and remove previously downloaded files\nMaterialBank.build_library('glasses', remove_previous=True)\n\n# Print all the available materials (Sellmeier and Tabulated)\nMaterialBank.print_available()"
26
26
  ]
27
27
  }
28
28
  ],
@@ -27,5 +27,5 @@ from PyOptik import MaterialBank
27
27
  MaterialBank.build_library('glasses', remove_previous=True)
28
28
 
29
29
  # Print all the available materials (Sellmeier and Tabulated)
30
- MaterialBank.print_materials()
30
+ MaterialBank.print_available()
31
31
 
@@ -0,0 +1 @@
1
+ 42ef02d2687ccf6fb165da8831dbf098
@@ -50,7 +50,7 @@ Import necessary modules
50
50
  MaterialBank.build_library('glasses', remove_previous=True)
51
51
 
52
52
  # Print all the available materials (Sellmeier and Tabulated)
53
- MaterialBank.print_materials()
53
+ MaterialBank.print_available()
54
54
 
55
55
 
56
56
 
@@ -124,7 +124,7 @@ Import necessary modules
124
124
 
125
125
  .. rst-class:: sphx-glr-timing
126
126
 
127
- **Total running time of the script:** (0 minutes 10.767 seconds)
127
+ **Total running time of the script:** (0 minutes 11.472 seconds)
128
128
 
129
129
 
130
130
  .. _sphx_glr_download_gallery_utils_build_library.py:
@@ -6,14 +6,14 @@
6
6
 
7
7
  Computation times
8
8
  =================
9
- **00:11.893** total execution time for **gallery_utils** files:
9
+ **00:11.472** total execution time for **gallery_utils** files:
10
10
 
11
11
  +---------------------------------------------------------------------------------------+-----------+--------+
12
- | :ref:`sphx_glr_gallery_utils_build_library.py` (``build_library.py``) | 00:10.767 | 0.0 MB |
12
+ | :ref:`sphx_glr_gallery_utils_build_library.py` (``build_library.py``) | 00:11.472 | 0.0 MB |
13
13
  +---------------------------------------------------------------------------------------+-----------+--------+
14
- | :ref:`sphx_glr_gallery_utils_download_yml_file.py` (``download_yml_file.py``) | 00:00.757 | 0.0 MB |
14
+ | :ref:`sphx_glr_gallery_utils_create_sellmeier_file.py` (``create_sellmeier_file.py``) | 00:00.000 | 0.0 MB |
15
15
  +---------------------------------------------------------------------------------------+-----------+--------+
16
- | :ref:`sphx_glr_gallery_utils_create_sellmeier_file.py` (``create_sellmeier_file.py``) | 00:00.201 | 0.0 MB |
16
+ | :ref:`sphx_glr_gallery_utils_create_tabulated_file.py` (``create_tabulated_file.py``) | 00:00.000 | 0.0 MB |
17
17
  +---------------------------------------------------------------------------------------+-----------+--------+
18
- | :ref:`sphx_glr_gallery_utils_create_tabulated_file.py` (``create_tabulated_file.py``) | 00:00.169 | 0.0 MB |
18
+ | :ref:`sphx_glr_gallery_utils_download_yml_file.py` (``download_yml_file.py``) | 00:00.000 | 0.0 MB |
19
19
  +---------------------------------------------------------------------------------------+-----------+--------+
@@ -24,6 +24,7 @@ requirements:
24
24
  - pip
25
25
  - martinpdes::mpsplots
26
26
  run:
27
+ - pint ~= 0.24
27
28
  - martinpdes::mpsplots
28
29
  - pyyaml ~=6.0
29
30
  - requests ~=2.31
@@ -40,14 +41,16 @@ about:
40
41
  dev_url: https://github.com/MartinPdeS/PyOptik
41
42
  doc_url: https://pyoptik.readthedocs.io
42
43
  license_file: LICENSE
43
-
44
+ keywords:
45
+ - optics
46
+ - refractive index
47
+ - material
44
48
 
45
49
  test:
46
50
  imports:
47
51
  - PyOptik
48
52
  requires:
49
- - pip
50
- - pint
53
+ - pint ~= 0.24
51
54
  - pytest>=0.6
52
55
  - pytest-cov>=2.0
53
56
  - pytest-json-report==1.5.0
@@ -11,7 +11,7 @@ def test_usual_material(material_name):
11
11
  """
12
12
  material_instance = getattr(MaterialBank, material_name)
13
13
 
14
- MaterialBank.print_materials()
14
+ MaterialBank.print_available()
15
15
 
16
16
  assert isinstance(material_instance, (SellmeierMaterial, TabulatedMaterial)), f"{material_name} instantiation failed."
17
17
 
@@ -1,6 +0,0 @@
1
- import yaml
2
- from PyOptik import MaterialBank
3
-
4
- MaterialBank.build_library('classics')
5
-
6
-
@@ -1 +0,0 @@
1
- 2eb6578c4290b9e3f2469709b19e7c5c
File without changes
File without changes
@@ -215,6 +215,10 @@ As of 2024, PyOptik is still under development. If you would like to collaborate
215
215
  :alt: PyPi version
216
216
  :target: https://pypistats.org/packages/pyoptik
217
217
 
218
+ .. |anaconda_download| image:: https://anaconda.org/martinpdes/pyoptik/badges/downloads.svg
219
+ :alt: Anaconda downloads
220
+ :target: https://anaconda.org/martinpdes/pyoptik
221
+
218
222
  .. |coverage| image:: https://raw.githubusercontent.com/MartinPdeS/PyOptik/python-coverage-comment-action-data/badge.svg
219
223
  :alt: Unittest coverage
220
224
  :target: https://htmlpreview.github.io/?https://github.com/MartinPdeS/PyOptik/blob/python-coverage-comment-action-data/htmlcov/index.html
@@ -222,7 +226,3 @@ As of 2024, PyOptik is still under development. If you would like to collaborate
222
226
  .. |anaconda| image:: https://anaconda.org/martinpdes/pyoptik/badges/version.svg
223
227
  :alt: Anaconda version
224
228
  :target: https://anaconda.org/martinpdes/pyoptik
225
-
226
- .. |anaconda_download| image:: https://anaconda.org/martinpdes/pyoptik/badges/downloads.svg
227
- :alt: Anaconda downloads
228
- :target: https://anaconda.org/martinpdes/pyoptik
File without changes