PyOptik 1.8.3.post0__tar.gz → 1.8.5.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.3.post0 → pyoptik-1.8.5.post0}/PKG-INFO +13 -11
  2. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/_version.py +2 -2
  3. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/material_bank.py +143 -58
  4. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik.egg-info/PKG-INFO +13 -11
  5. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik.egg-info/SOURCES.txt +2 -2
  6. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik.egg-info/requires.txt +8 -6
  7. pyoptik-1.8.5.post0/development/dev_0.py +13 -0
  8. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/examples/utils/build_library.py +1 -1
  9. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/conf.py +0 -2
  10. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/utils/build_library.ipynb +1 -1
  11. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/utils/build_library.py +1 -1
  12. pyoptik-1.8.5.post0/docs/source/gallery/utils/build_library.py.md5 +1 -0
  13. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/utils/build_library.rst +2 -2
  14. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/utils/build_library_codeobj.pickle +0 -0
  15. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/utils/sg_execution_times.rst +5 -5
  16. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/meta.yaml +10 -7
  17. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/pyproject.toml +20 -18
  18. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/tests/test_usual_material.py +1 -1
  19. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/tests/test_utils.py +0 -2
  20. pyoptik-1.8.3.post0/development/dev_0.py +0 -6
  21. pyoptik-1.8.3.post0/docs/source/gallery/utils/build_library.py.md5 +0 -1
  22. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/.github/dependabot.yml +0 -0
  23. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/.github/workflows/deploy_anaconda.yml +0 -0
  24. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/.github/workflows/deploy_coverage.yml +0 -0
  25. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/.github/workflows/deploy_documentation.yml +0 -0
  26. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/.github/workflows/deploy_workflow.yml +0 -0
  27. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/.gitignore +0 -0
  28. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/.readthedocs.yml +0 -0
  29. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/LICENSE +0 -0
  30. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/__init__.py +0 -0
  31. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/__main__.py +0 -0
  32. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/data/__init__.py +0 -0
  33. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/data/classics.yml +0 -0
  34. pyoptik-1.8.3.post0/PyOptik/data/glasses.yml → pyoptik-1.8.5.post0/PyOptik/data/dielectrics.yml +0 -0
  35. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/data/metals.yml +0 -0
  36. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/data/minimal.yml +0 -0
  37. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/data/organics.yml +0 -0
  38. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/data/others.yml +0 -0
  39. pyoptik-1.8.3.post0/PyOptik/data/plastics.yml → pyoptik-1.8.5.post0/PyOptik/data/polymers.yml +0 -0
  40. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/data/sellmeier/BAK1.yml +0 -0
  41. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/data/sellmeier/BK7.yml +0 -0
  42. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/data/sellmeier/SF5.yml +0 -0
  43. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/data/sellmeier/ZBLAN.yml +0 -0
  44. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/data/sellmeier/air.yml +0 -0
  45. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/data/sellmeier/argon.yml +0 -0
  46. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/data/sellmeier/crown.yml +0 -0
  47. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/data/sellmeier/flint.yml +0 -0
  48. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/data/sellmeier/fused_silica.yml +0 -0
  49. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/data/sellmeier/germanium.yml +0 -0
  50. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/data/sellmeier/lithium_niobate.yml +0 -0
  51. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/data/sellmeier/polystyren.yml +0 -0
  52. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/data/sellmeier/silicon.yml +0 -0
  53. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/data/sellmeier/soda_lime_glass.yml +0 -0
  54. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/data/sellmeier/water.yml +0 -0
  55. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/data/tabulated/aluminium.yml +0 -0
  56. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/data/tabulated/calcium.yml +0 -0
  57. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/data/tabulated/copper.yml +0 -0
  58. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/data/tabulated/gold.yml +0 -0
  59. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/data/tabulated/iron.yml +0 -0
  60. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/data/tabulated/nickel.yml +0 -0
  61. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/data/tabulated/silver.yml +0 -0
  62. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/data/tabulated/sodium.yml +0 -0
  63. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/data/tabulated/zinc.yml +0 -0
  64. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/directories.py +0 -0
  65. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/material/__init__.py +0 -0
  66. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/material/base_class.py +0 -0
  67. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/material/sellmeier_class.py +0 -0
  68. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/material/tabulated_class.py +0 -0
  69. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/units.py +0 -0
  70. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik/utils.py +0 -0
  71. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik.egg-info/dependency_links.txt +0 -0
  72. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/PyOptik.egg-info/top_level.txt +0 -0
  73. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/README.rst +4 -4
  74. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/Makefile +0 -0
  75. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/examples/README.rst +0 -0
  76. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/examples/sellmeier/README.rst +0 -0
  77. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/examples/sellmeier/plot_bk7.py +0 -0
  78. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/examples/sellmeier/plot_silica.py +0 -0
  79. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/examples/sellmeier/plot_water.py +0 -0
  80. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/examples/tabulated/README.rst +0 -0
  81. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/examples/tabulated/plot_sf5.py +0 -0
  82. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/examples/tabulated/plot_silver.py +0 -0
  83. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/examples/utils/README.rst +0 -0
  84. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/examples/utils/create_sellmeier_file.py +0 -0
  85. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/examples/utils/create_tabulated_file.py +0 -0
  86. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/examples/utils/download_yml_file.py +0 -0
  87. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/images/example_bk7.png +0 -0
  88. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/images/logo.png +0 -0
  89. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/make.bat +0 -0
  90. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/_static/default.css +0 -0
  91. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/code.rst +0 -0
  92. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/index.rst +0 -0
  93. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/sellmeier/images/sphx_glr_plot_bk7_001.png +0 -0
  94. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/sellmeier/images/sphx_glr_plot_silica_001.png +0 -0
  95. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/sellmeier/images/sphx_glr_plot_water_001.png +0 -0
  96. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/sellmeier/images/thumb/sphx_glr_plot_bk7_thumb.png +0 -0
  97. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/sellmeier/images/thumb/sphx_glr_plot_silica_thumb.png +0 -0
  98. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/sellmeier/images/thumb/sphx_glr_plot_water_thumb.png +0 -0
  99. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/sellmeier/index.rst +0 -0
  100. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/sellmeier/plot_bk7.ipynb +0 -0
  101. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/sellmeier/plot_bk7.py +0 -0
  102. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/sellmeier/plot_bk7.py.md5 +0 -0
  103. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/sellmeier/plot_bk7.rst +0 -0
  104. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/sellmeier/plot_bk7_codeobj.pickle +0 -0
  105. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/sellmeier/plot_silica.ipynb +0 -0
  106. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/sellmeier/plot_silica.py +0 -0
  107. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/sellmeier/plot_silica.py.md5 +0 -0
  108. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/sellmeier/plot_silica.rst +0 -0
  109. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/sellmeier/plot_silica_codeobj.pickle +0 -0
  110. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/sellmeier/plot_water.ipynb +0 -0
  111. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/sellmeier/plot_water.py +0 -0
  112. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/sellmeier/plot_water.py.md5 +0 -0
  113. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/sellmeier/plot_water.rst +0 -0
  114. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/sellmeier/plot_water_codeobj.pickle +0 -0
  115. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/sellmeier/sg_execution_times.rst +0 -0
  116. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/tabulated/images/sphx_glr_plot_sf5_001.png +0 -0
  117. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/tabulated/images/sphx_glr_plot_silver_001.png +0 -0
  118. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/tabulated/images/thumb/sphx_glr_plot_sf5_thumb.png +0 -0
  119. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/tabulated/images/thumb/sphx_glr_plot_silver_thumb.png +0 -0
  120. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/tabulated/index.rst +0 -0
  121. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/tabulated/plot_sf5.ipynb +0 -0
  122. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/tabulated/plot_sf5.py +0 -0
  123. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/tabulated/plot_sf5.py.md5 +0 -0
  124. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/tabulated/plot_sf5.rst +0 -0
  125. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/tabulated/plot_sf5_codeobj.pickle +0 -0
  126. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/tabulated/plot_silver.ipynb +0 -0
  127. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/tabulated/plot_silver.py +0 -0
  128. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/tabulated/plot_silver.py.md5 +0 -0
  129. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/tabulated/plot_silver.rst +0 -0
  130. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/tabulated/plot_silver_codeobj.pickle +0 -0
  131. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/tabulated/sg_execution_times.rst +0 -0
  132. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/utils/create_sellmeier_file.ipynb +0 -0
  133. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/utils/create_sellmeier_file.py +0 -0
  134. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/utils/create_sellmeier_file.py.md5 +0 -0
  135. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/utils/create_sellmeier_file.rst +0 -0
  136. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/utils/create_sellmeier_file_codeobj.pickle +0 -0
  137. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/utils/create_tabulated_file.ipynb +0 -0
  138. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/utils/create_tabulated_file.py +0 -0
  139. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/utils/create_tabulated_file.py.md5 +0 -0
  140. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/utils/create_tabulated_file.rst +0 -0
  141. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/utils/create_tabulated_file_codeobj.pickle +0 -0
  142. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/utils/download_yml_file.ipynb +0 -0
  143. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/utils/download_yml_file.py +0 -0
  144. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/utils/download_yml_file.py.md5 +0 -0
  145. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/utils/download_yml_file.rst +0 -0
  146. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/utils/download_yml_file_codeobj.pickle +0 -0
  147. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/utils/images/sphx_glr_create_sellmeier_file_001.png +0 -0
  148. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/utils/images/sphx_glr_create_tabulated_file_001.png +0 -0
  149. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/utils/images/sphx_glr_download_yml_file_001.png +0 -0
  150. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/utils/images/thumb/sphx_glr_build_library_thumb.png +0 -0
  151. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/utils/images/thumb/sphx_glr_create_sellmeier_file_thumb.png +0 -0
  152. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/utils/images/thumb/sphx_glr_create_tabulated_file_thumb.png +0 -0
  153. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/utils/images/thumb/sphx_glr_download_yml_file_thumb.png +0 -0
  154. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/gallery/utils/index.rst +0 -0
  155. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/index.rst +0 -0
  156. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/docs/source/references.rst +0 -0
  157. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/setup.cfg +0 -0
  158. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/tests/__init__.py +0 -0
  159. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/tests/test_sellmeier.py +0 -0
  160. {pyoptik-1.8.3.post0 → pyoptik-1.8.5.post0}/tests/test_tabulated.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyOptik
3
- Version: 1.8.3.post0
3
+ Version: 1.8.5.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
@@ -36,12 +36,14 @@ Classifier: Intended Audience :: Science/Research
36
36
  Requires-Python: >=3.10
37
37
  Description-Content-Type: text/x-rst
38
38
  License-File: LICENSE
39
- Requires-Dist: pint
40
- Requires-Dist: pydantic>=2.6.3
41
- Requires-Dist: numpy
42
- Requires-Dist: pyyaml
43
- Requires-Dist: MPSPlots
44
- Requires-Dist: tabulate
39
+ Requires-Dist: pint~=0.24
40
+ Requires-Dist: pydantic~=2.9
41
+ Requires-Dist: numpy~=1.26
42
+ Requires-Dist: matplotlib~=3.8
43
+ Requires-Dist: requests~=2.31
44
+ Requires-Dist: pyyaml~=6.0
45
+ Requires-Dist: MPSPlots~=1.5.1
46
+ Requires-Dist: tabulate~=0.9
45
47
  Provides-Extra: testing
46
48
  Requires-Dist: pytest>=0.6; extra == "testing"
47
49
  Requires-Dist: pytest-cov>=2.0; extra == "testing"
@@ -274,10 +276,6 @@ As of 2024, PyOptik is still under development. If you would like to collaborate
274
276
  :alt: PyPi version
275
277
  :target: https://pypistats.org/packages/pyoptik
276
278
 
277
- .. |anaconda_download| image:: https://anaconda.org/martinpdes/pyoptik/badges/downloads.svg
278
- :alt: Anaconda downloads
279
- :target: https://anaconda.org/martinpdes/pyoptik
280
-
281
279
  .. |coverage| image:: https://raw.githubusercontent.com/MartinPdeS/PyOptik/python-coverage-comment-action-data/badge.svg
282
280
  :alt: Unittest coverage
283
281
  :target: https://htmlpreview.github.io/?https://github.com/MartinPdeS/PyOptik/blob/python-coverage-comment-action-data/htmlcov/index.html
@@ -285,3 +283,7 @@ As of 2024, PyOptik is still under development. If you would like to collaborate
285
283
  .. |anaconda| image:: https://anaconda.org/martinpdes/pyoptik/badges/version.svg
286
284
  :alt: Anaconda version
287
285
  :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.3.post0'
16
- __version_tuple__ = version_tuple = (1, 8, 3)
15
+ __version__ = version = '1.8.5.post0'
16
+ __version_tuple__ = version_tuple = (1, 8, 5)
@@ -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.3.post0
3
+ Version: 1.8.5.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
@@ -36,12 +36,14 @@ Classifier: Intended Audience :: Science/Research
36
36
  Requires-Python: >=3.10
37
37
  Description-Content-Type: text/x-rst
38
38
  License-File: LICENSE
39
- Requires-Dist: pint
40
- Requires-Dist: pydantic>=2.6.3
41
- Requires-Dist: numpy
42
- Requires-Dist: pyyaml
43
- Requires-Dist: MPSPlots
44
- Requires-Dist: tabulate
39
+ Requires-Dist: pint~=0.24
40
+ Requires-Dist: pydantic~=2.9
41
+ Requires-Dist: numpy~=1.26
42
+ Requires-Dist: matplotlib~=3.8
43
+ Requires-Dist: requests~=2.31
44
+ Requires-Dist: pyyaml~=6.0
45
+ Requires-Dist: MPSPlots~=1.5.1
46
+ Requires-Dist: tabulate~=0.9
45
47
  Provides-Extra: testing
46
48
  Requires-Dist: pytest>=0.6; extra == "testing"
47
49
  Requires-Dist: pytest-cov>=2.0; extra == "testing"
@@ -274,10 +276,6 @@ As of 2024, PyOptik is still under development. If you would like to collaborate
274
276
  :alt: PyPi version
275
277
  :target: https://pypistats.org/packages/pyoptik
276
278
 
277
- .. |anaconda_download| image:: https://anaconda.org/martinpdes/pyoptik/badges/downloads.svg
278
- :alt: Anaconda downloads
279
- :target: https://anaconda.org/martinpdes/pyoptik
280
-
281
279
  .. |coverage| image:: https://raw.githubusercontent.com/MartinPdeS/PyOptik/python-coverage-comment-action-data/badge.svg
282
280
  :alt: Unittest coverage
283
281
  :target: https://htmlpreview.github.io/?https://github.com/MartinPdeS/PyOptik/blob/python-coverage-comment-action-data/htmlcov/index.html
@@ -285,3 +283,7 @@ As of 2024, PyOptik is still under development. If you would like to collaborate
285
283
  .. |anaconda| image:: https://anaconda.org/martinpdes/pyoptik/badges/version.svg
286
284
  :alt: Anaconda version
287
285
  :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
@@ -1,9 +1,11 @@
1
- pint
2
- pydantic>=2.6.3
3
- numpy
4
- pyyaml
5
- MPSPlots
6
- tabulate
1
+ pint~=0.24
2
+ pydantic~=2.9
3
+ numpy~=1.26
4
+ matplotlib~=3.8
5
+ requests~=2.31
6
+ pyyaml~=6.0
7
+ MPSPlots~=1.5.1
8
+ tabulate~=0.9
7
9
 
8
10
  [documentation]
9
11
  numpydoc==1.6.0
@@ -0,0 +1,13 @@
1
+ import yaml
2
+ from PyOptik import MaterialBank
3
+
4
+ # MaterialBank.build_library('classics')
5
+ # MaterialBank.only_sellmeier = True
6
+
7
+ MaterialBank.set_filter(only_sellmeier=False)
8
+
9
+ # mater = MaterialBank.gold
10
+
11
+ # MaterialBank.print_available()
12
+
13
+ print(MaterialBank.all)
@@ -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
 
@@ -99,8 +99,6 @@ exclude_trees = []
99
99
  pygments_style = "sphinx"
100
100
 
101
101
  # -- Sphinx-gallery configuration --------------------------------------------
102
- binder_branch = "main"
103
-
104
102
  major, minor = version[:2]
105
103
  binder_branch = f"v{major}.{minor}.x"
106
104
 
@@ -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
  +---------------------------------------------------------------------------------------+-----------+--------+
@@ -25,12 +25,12 @@ requirements:
25
25
  - martinpdes::mpsplots
26
26
  run:
27
27
  - martinpdes::mpsplots
28
- - pyyaml >=6.0
29
- - requests >=2.31
30
- - matplotlib >=3.8
31
- - numpy >=1.26
32
- - pydantic >=2.9
33
- - tabulate >=0.9
28
+ - pyyaml ~=6.0
29
+ - requests ~=2.31
30
+ - matplotlib ~=3.8
31
+ - numpy ~=1.26
32
+ - pydantic ~=2.9
33
+ - tabulate ~=0.9
34
34
 
35
35
  about:
36
36
  home: https://github.com/MartinPdeS/PyOptik
@@ -40,7 +40,10 @@ about:
40
40
  dev_url: https://github.com/MartinPdeS/PyOptik
41
41
  doc_url: https://pyoptik.readthedocs.io
42
42
  license_file: LICENSE
43
-
43
+ keywords:
44
+ - optics
45
+ - refractive index
46
+ - material
44
47
 
45
48
  test:
46
49
  imports:
@@ -23,12 +23,14 @@ classifiers = [
23
23
  keywords = ["refracive index", "optics"]
24
24
 
25
25
  dependencies = [
26
- "pint",
27
- "pydantic>=2.6.3",
28
- "numpy",
29
- "pyyaml",
30
- "MPSPlots",
31
- "tabulate",
26
+ "pint ~=0.24",
27
+ "pydantic ~=2.9",
28
+ "numpy ~=1.26",
29
+ "matplotlib ~=3.8",
30
+ "requests ~=2.31",
31
+ "pyyaml ~=6.0",
32
+ "MPSPlots ~=1.5.1",
33
+ "tabulate ~=0.9",
32
34
  ]
33
35
 
34
36
  [tool.setuptools]
@@ -43,21 +45,21 @@ local_scheme = "no-local-version"
43
45
 
44
46
  [project.optional-dependencies]
45
47
  testing = [
46
- "pytest>=0.6",
47
- "pytest-cov>=2.0",
48
- "pytest-json-report==1.5.0",
49
- "mypy>=0.910",
50
- "flake8>=3.9",
51
- "tox>=3.24",
52
- "coverage==6.5.0"
48
+ "pytest >=0.6",
49
+ "pytest-cov >=2.0",
50
+ "pytest-json-report ==1.5.0",
51
+ "mypy >=0.910",
52
+ "flake8 >=3.9",
53
+ "tox >=3.24",
54
+ "coverage ==6.5.0"
53
55
  ]
54
56
 
55
57
  documentation = [
56
- "numpydoc==1.6.0",
57
- "sphinx>=5.1.1",
58
- "sphinx-gallery==0.15.0",
59
- "sphinx-rtd-theme==2.0.0",
60
- "pydata-sphinx-theme==0.14.1",
58
+ "numpydoc ==1.6.0",
59
+ "sphinx >=5.1.1",
60
+ "sphinx-gallery ==0.15.0",
61
+ "sphinx-rtd-theme ==2.0.0",
62
+ "pydata-sphinx-theme ==0.14.1",
61
63
  ]
62
64
 
63
65
  [tool.pytest.ini_options]
@@ -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