py-lfkit 0.3.0__tar.gz → 0.4.0__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 (304) hide show
  1. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/PKG-INFO +1 -1
  2. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/docs/about/photometry_overview.rst +1 -1
  3. py_lfkit-0.4.0/docs/api/index.rst +8 -0
  4. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/docs/examples/conditional_luminosity_function.rst +3 -3
  5. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/docs/examples/lf_models/composite_models.rst +2 -2
  6. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/docs/examples/lf_models/power_law_models.rst +4 -4
  7. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/docs/examples/lf_models/schechter_models.rst +1 -1
  8. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/pyproject.toml +15 -27
  9. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/_version.py +3 -3
  10. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/api/_namespaces.py +52 -9
  11. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/api/conditional_luminosity_function.py +46 -40
  12. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/api/luminosity_function.py +74 -51
  13. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/luminosity_functions/_discovery.py +6 -2
  14. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/luminosity_functions/conditional_integrals.py +8 -8
  15. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/luminosity_functions/conditional_models.py +37 -6
  16. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/luminosity_functions/integrals.py +86 -7
  17. py_lfkit-0.4.0/src/lfkit/luminosity_functions/models/composite.py +178 -0
  18. py_lfkit-0.4.0/src/lfkit/luminosity_functions/models/gamma.py +145 -0
  19. py_lfkit-0.4.0/src/lfkit/luminosity_functions/models/gaussian.py +167 -0
  20. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/luminosity_functions/models/modifiers.py +21 -1
  21. py_lfkit-0.4.0/src/lfkit/luminosity_functions/models/non_parametric.py +718 -0
  22. py_lfkit-0.4.0/src/lfkit/luminosity_functions/models/power_law.py +242 -0
  23. py_lfkit-0.4.0/src/lfkit/luminosity_functions/models/saunders.py +230 -0
  24. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/luminosity_functions/models/schechter.py +135 -45
  25. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/luminosity_functions/parameter_models.py +82 -52
  26. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/luminosity_functions/redshift_density.py +37 -11
  27. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/luminosity_functions/registry.py +118 -18
  28. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/photometry/luminosities.py +6 -7
  29. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/utils/integrators.py +13 -0
  30. py_lfkit-0.4.0/src/lfkit/utils/validators.py +241 -0
  31. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/py_lfkit.egg-info/PKG-INFO +1 -1
  32. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/py_lfkit.egg-info/SOURCES.txt +14 -41
  33. py_lfkit-0.4.0/tests/test_api_conditional_luminosity_function.py +230 -0
  34. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/tests/test_api_corrections.py +1 -1
  35. py_lfkit-0.4.0/tests/test_api_luminosity_function.py +900 -0
  36. py_lfkit-0.4.0/tests/test_api_namespaces.py +282 -0
  37. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/tests/test_corrections_color_anchors.py +1 -1
  38. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/tests/test_corrections_filters.py +1 -1
  39. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/tests/test_corrections_kcorrect_backend.py +1 -1
  40. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/tests/test_corrections_kcorrect_from_color.py +1 -1
  41. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/tests/test_corrections_kcorrrect_grids.py +1 -1
  42. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/tests/test_corrections_poggianti1997.py +1 -1
  43. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/tests/test_corrections_responses.py +1 -1
  44. py_lfkit-0.4.0/tests/test_cosmo_cosmology.py +182 -0
  45. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/tests/test_lumfuncs_completeness.py +12 -1
  46. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/tests/test_lumfuncs_completeness_fake_catalog.py +43 -0
  47. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/tests/test_lumfuncs_conditional_integrals.py +88 -1
  48. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/tests/test_lumfuncs_conditional_models.py +105 -1
  49. py_lfkit-0.4.0/tests/test_lumfuncs_discovery.py +220 -0
  50. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/tests/test_lumfuncs_integrals.py +102 -1
  51. py_lfkit-0.4.0/tests/test_lumfuncs_models_composite.py +367 -0
  52. py_lfkit-0.4.0/tests/test_lumfuncs_models_gamma.py +387 -0
  53. py_lfkit-0.4.0/tests/test_lumfuncs_models_gaussian.py +420 -0
  54. py_lfkit-0.4.0/tests/test_lumfuncs_models_modifiers.py +193 -0
  55. py_lfkit-0.4.0/tests/test_lumfuncs_models_non_parametric.py +515 -0
  56. py_lfkit-0.4.0/tests/test_lumfuncs_models_power_law.py +417 -0
  57. py_lfkit-0.4.0/tests/test_lumfuncs_models_saunders.py +505 -0
  58. py_lfkit-0.4.0/tests/test_lumfuncs_models_schechter.py +815 -0
  59. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/tests/test_lumfuncs_parameter_models.py +44 -1
  60. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/tests/test_lumfuncs_redshift_density.py +68 -1
  61. py_lfkit-0.4.0/tests/test_lumfuncs_registry.py +463 -0
  62. py_lfkit-0.4.0/tests/test_photometry_luminosities.py +274 -0
  63. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/tests/test_photometry_magnitudes.py +130 -1
  64. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/tests/test_utils_download_pogg97_data.py +1 -1
  65. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/tests/test_utils_evaluators.py +176 -1
  66. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/tests/test_utils_integrators.py +191 -1
  67. py_lfkit-0.4.0/tests/test_utils_interpolation.py +360 -0
  68. py_lfkit-0.4.0/tests/test_utils_io.py +347 -0
  69. py_lfkit-0.4.0/tests/test_utils_types.py +75 -0
  70. py_lfkit-0.4.0/tests/test_utils_units.py +199 -0
  71. py_lfkit-0.4.0/tests/test_utils_validators.py +663 -0
  72. py_lfkit-0.3.0/docs/api/index.rst +0 -16
  73. py_lfkit-0.3.0/docs/api/lfkit.api.conditional_luminosity_function.rst +0 -12
  74. py_lfkit-0.3.0/docs/api/lfkit.api.corrections.rst +0 -12
  75. py_lfkit-0.3.0/docs/api/lfkit.api.luminosity_function.rst +0 -12
  76. py_lfkit-0.3.0/docs/api/lfkit.api.rst +0 -15
  77. py_lfkit-0.3.0/docs/api/lfkit.corrections.color_anchors.rst +0 -12
  78. py_lfkit-0.3.0/docs/api/lfkit.corrections.filters.rst +0 -17
  79. py_lfkit-0.3.0/docs/api/lfkit.corrections.kcorrect_backend.rst +0 -12
  80. py_lfkit-0.3.0/docs/api/lfkit.corrections.kcorrect_from_color.rst +0 -12
  81. py_lfkit-0.3.0/docs/api/lfkit.corrections.kcorrect_grids.rst +0 -14
  82. py_lfkit-0.3.0/docs/api/lfkit.corrections.poggianti1997.rst +0 -21
  83. py_lfkit-0.3.0/docs/api/lfkit.corrections.responses.rst +0 -16
  84. py_lfkit-0.3.0/docs/api/lfkit.corrections.rst +0 -19
  85. py_lfkit-0.3.0/docs/api/lfkit.cosmo.cosmology.rst +0 -17
  86. py_lfkit-0.3.0/docs/api/lfkit.cosmo.rst +0 -13
  87. py_lfkit-0.3.0/docs/api/lfkit.luminosity_functions.completeness.rst +0 -16
  88. py_lfkit-0.3.0/docs/api/lfkit.luminosity_functions.conditional_integrals.rst +0 -14
  89. py_lfkit-0.3.0/docs/api/lfkit.luminosity_functions.conditional_models.rst +0 -12
  90. py_lfkit-0.3.0/docs/api/lfkit.luminosity_functions.integrals.rst +0 -21
  91. py_lfkit-0.3.0/docs/api/lfkit.luminosity_functions.models.composite.rst +0 -13
  92. py_lfkit-0.3.0/docs/api/lfkit.luminosity_functions.models.gaussian.rst +0 -13
  93. py_lfkit-0.3.0/docs/api/lfkit.luminosity_functions.models.modifiers.rst +0 -12
  94. py_lfkit-0.3.0/docs/api/lfkit.luminosity_functions.models.power_law.rst +0 -15
  95. py_lfkit-0.3.0/docs/api/lfkit.luminosity_functions.models.rst +0 -17
  96. py_lfkit-0.3.0/docs/api/lfkit.luminosity_functions.models.schechter.rst +0 -19
  97. py_lfkit-0.3.0/docs/api/lfkit.luminosity_functions.parameter_models.rst +0 -23
  98. py_lfkit-0.3.0/docs/api/lfkit.luminosity_functions.redshift_density.rst +0 -13
  99. py_lfkit-0.3.0/docs/api/lfkit.luminosity_functions.registry.rst +0 -24
  100. py_lfkit-0.3.0/docs/api/lfkit.luminosity_functions.rst +0 -20
  101. py_lfkit-0.3.0/docs/api/lfkit.photometry.luminosities.rst +0 -16
  102. py_lfkit-0.3.0/docs/api/lfkit.photometry.magnitudes.rst +0 -16
  103. py_lfkit-0.3.0/docs/api/lfkit.photometry.rst +0 -14
  104. py_lfkit-0.3.0/docs/api/lfkit.rst +0 -18
  105. py_lfkit-0.3.0/docs/api/lfkit.utils.download_poggianti97_data.rst +0 -12
  106. py_lfkit-0.3.0/docs/api/lfkit.utils.evaluators.rst +0 -16
  107. py_lfkit-0.3.0/docs/api/lfkit.utils.integrators.rst +0 -13
  108. py_lfkit-0.3.0/docs/api/lfkit.utils.interpolation.rst +0 -15
  109. py_lfkit-0.3.0/docs/api/lfkit.utils.io.rst +0 -18
  110. py_lfkit-0.3.0/docs/api/lfkit.utils.rst +0 -20
  111. py_lfkit-0.3.0/docs/api/lfkit.utils.types.rst +0 -6
  112. py_lfkit-0.3.0/docs/api/lfkit.utils.units.rst +0 -17
  113. py_lfkit-0.3.0/docs/api/lfkit.utils.validators.rst +0 -14
  114. py_lfkit-0.3.0/src/lfkit/luminosity_functions/models/composite.py +0 -96
  115. py_lfkit-0.3.0/src/lfkit/luminosity_functions/models/gaussian.py +0 -89
  116. py_lfkit-0.3.0/src/lfkit/luminosity_functions/models/power_law.py +0 -115
  117. py_lfkit-0.3.0/src/lfkit/utils/validators.py +0 -63
  118. py_lfkit-0.3.0/tests/test_api_conditional_luminosity_function.py +0 -140
  119. py_lfkit-0.3.0/tests/test_api_luminosity_function.py +0 -498
  120. py_lfkit-0.3.0/tests/test_cosmo_cosmology.py +0 -74
  121. py_lfkit-0.3.0/tests/test_lumfuncs_models_schechter.py +0 -254
  122. py_lfkit-0.3.0/tests/test_photometry_luminosities.py +0 -82
  123. py_lfkit-0.3.0/tests/test_utils_interpolation.py +0 -131
  124. py_lfkit-0.3.0/tests/test_utils_io.py +0 -128
  125. py_lfkit-0.3.0/tests/test_utils_units.py +0 -90
  126. py_lfkit-0.3.0/tests/test_utils_validators.py +0 -184
  127. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/.github/workflows/ci.yml +0 -0
  128. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/.github/workflows/docs.yml +0 -0
  129. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/.github/workflows/publish.yml +0 -0
  130. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/.gitignore +0 -0
  131. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/CITATION.cff +0 -0
  132. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/LICENSE +0 -0
  133. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/MANIFEST.in +0 -0
  134. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/README.md +0 -0
  135. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/docs/Makefile +0 -0
  136. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/docs/_static/custom.css +0 -0
  137. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/docs/_static/logos/lfkit_logo-icon.png +0 -0
  138. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/docs/_static/logos/lfkit_logo.pdf +0 -0
  139. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/docs/_static/logos/lfkit_logo.png +0 -0
  140. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/docs/_static/logos/lfkit_logo.svg +0 -0
  141. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/docs/_templates/pages_redirect.html +0 -0
  142. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/docs/_templates/sidebar/brand.html +0 -0
  143. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/docs/about/corrections_overview.rst +0 -0
  144. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/docs/about/index.rst +0 -0
  145. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/docs/citation.rst +0 -0
  146. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/docs/conf.py +0 -0
  147. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/docs/contributing.rst +0 -0
  148. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/docs/examples/catalog_completeness.rst +0 -0
  149. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/docs/examples/index.rst +0 -0
  150. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/docs/examples/kcorrect_examples.rst +0 -0
  151. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/docs/examples/lf_models/gaussian_models.rst +0 -0
  152. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/docs/examples/lf_models/index.rst +0 -0
  153. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/docs/examples/lf_models/model_registry.rst +0 -0
  154. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/docs/examples/magnitude_integrals.rst +0 -0
  155. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/docs/examples/magnitudes_and_luminosities.rst +0 -0
  156. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/docs/examples/poggianti_examples.rst +0 -0
  157. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/docs/examples/redshift_density.rst +0 -0
  158. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/docs/index.rst +0 -0
  159. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/docs/installation.rst +0 -0
  160. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/docs/license.rst +0 -0
  161. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/docs/make.bat +0 -0
  162. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/logo/lfkit_github_banner.png +0 -0
  163. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/logo/lfkit_logo-icon.png +0 -0
  164. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/logo/lfkit_logo.pdf +0 -0
  165. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/logo/lfkit_logo.png +0 -0
  166. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/logo/lfkit_logo.svg +0 -0
  167. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/logo/make_gh_banner.py +0 -0
  168. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/logo/make_logo.py +0 -0
  169. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/compare_kcorrect_surveys_color_split/kcorr__band-g__blue-red__surveys-native-gr.pdf +0 -0
  170. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/compare_kcorrect_surveys_color_split/kcorr__band-g__blue-red__surveys-native-gr.png +0 -0
  171. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/compare_kcorrect_surveys_color_split/kcorr__band-i__blue-red__surveys-native-gr.pdf +0 -0
  172. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/compare_kcorrect_surveys_color_split/kcorr__band-i__blue-red__surveys-native-gr.png +0 -0
  173. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/compare_kcorrect_surveys_color_split/kcorr__band-r__blue-red__surveys-native-gr.pdf +0 -0
  174. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/compare_kcorrect_surveys_color_split/kcorr__band-r__blue-red__surveys-native-gr.png +0 -0
  175. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/compare_kcorrect_surveys_color_split/kcorr__band-u__blue-red__surveys-native-gr.pdf +0 -0
  176. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/compare_kcorrect_surveys_color_split/kcorr__band-u__blue-red__surveys-native-gr.png +0 -0
  177. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/compare_kcorrect_surveys_color_split/kcorr__band-z__blue-red__surveys-native-gr.pdf +0 -0
  178. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/compare_kcorrect_surveys_color_split/kcorr__band-z__blue-red__surveys-native-gr.png +0 -0
  179. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/compare_poggianti_to_kcorrect/bessell/Kcurves__system-bessell__band-B__zmax-3.5__nz-401__pchip__extrap-1__anchorz0-1.pdf +0 -0
  180. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/compare_poggianti_to_kcorrect/bessell/Kcurves__system-bessell__band-B__zmax-3.5__nz-401__pchip__extrap-1__anchorz0-1.png +0 -0
  181. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/compare_poggianti_to_kcorrect/bessell/Kcurves__system-bessell__band-I__zmax-3.5__nz-401__pchip__extrap-1__anchorz0-1.pdf +0 -0
  182. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/compare_poggianti_to_kcorrect/bessell/Kcurves__system-bessell__band-I__zmax-3.5__nz-401__pchip__extrap-1__anchorz0-1.png +0 -0
  183. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/compare_poggianti_to_kcorrect/bessell/Kcurves__system-bessell__band-R__zmax-3.5__nz-401__pchip__extrap-1__anchorz0-1.pdf +0 -0
  184. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/compare_poggianti_to_kcorrect/bessell/Kcurves__system-bessell__band-R__zmax-3.5__nz-401__pchip__extrap-1__anchorz0-1.png +0 -0
  185. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/compare_poggianti_to_kcorrect/bessell/Kcurves__system-bessell__band-U__zmax-3.5__nz-401__pchip__extrap-1__anchorz0-1.pdf +0 -0
  186. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/compare_poggianti_to_kcorrect/bessell/Kcurves__system-bessell__band-U__zmax-3.5__nz-401__pchip__extrap-1__anchorz0-1.png +0 -0
  187. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/compare_poggianti_to_kcorrect/bessell/Kcurves__system-bessell__band-V__zmax-3.5__nz-401__pchip__extrap-1__anchorz0-1.pdf +0 -0
  188. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/compare_poggianti_to_kcorrect/bessell/Kcurves__system-bessell__band-V__zmax-3.5__nz-401__pchip__extrap-1__anchorz0-1.png +0 -0
  189. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/compare_poggianti_to_kcorrect/sdss/Kcurves__system-sdss__band-g__zmax-3.5__nz-401__pchip__extrap-1__anchorz0-1.pdf +0 -0
  190. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/compare_poggianti_to_kcorrect/sdss/Kcurves__system-sdss__band-g__zmax-3.5__nz-401__pchip__extrap-1__anchorz0-1.png +0 -0
  191. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/compare_poggianti_to_kcorrect/sdss/Kcurves__system-sdss__band-i__zmax-3.5__nz-401__pchip__extrap-1__anchorz0-1.pdf +0 -0
  192. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/compare_poggianti_to_kcorrect/sdss/Kcurves__system-sdss__band-i__zmax-3.5__nz-401__pchip__extrap-1__anchorz0-1.png +0 -0
  193. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/compare_poggianti_to_kcorrect/sdss/Kcurves__system-sdss__band-r__zmax-3.5__nz-401__pchip__extrap-1__anchorz0-1.pdf +0 -0
  194. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/compare_poggianti_to_kcorrect/sdss/Kcurves__system-sdss__band-r__zmax-3.5__nz-401__pchip__extrap-1__anchorz0-1.png +0 -0
  195. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/kcorrect/kcorrect__bessell__z0.0000_4.0__Nz801__bsnone/K__band_bessell_B.pdf +0 -0
  196. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/kcorrect/kcorrect__bessell__z0.0000_4.0__Nz801__bsnone/K__band_bessell_I.pdf +0 -0
  197. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/kcorrect/kcorrect__bessell__z0.0000_4.0__Nz801__bsnone/K__band_bessell_R.pdf +0 -0
  198. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/kcorrect/kcorrect__bessell__z0.0000_4.0__Nz801__bsnone/K__band_bessell_U.pdf +0 -0
  199. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/kcorrect/kcorrect__bessell__z0.0000_4.0__Nz801__bsnone/K__band_bessell_V.pdf +0 -0
  200. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/kcorrect/kcorrect__decam__z0.0000_4.0__Nz801__bsnone/K__band_decam_Y.pdf +0 -0
  201. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/kcorrect/kcorrect__decam__z0.0000_4.0__Nz801__bsnone/K__band_decam_g.pdf +0 -0
  202. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/kcorrect/kcorrect__decam__z0.0000_4.0__Nz801__bsnone/K__band_decam_i.pdf +0 -0
  203. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/kcorrect/kcorrect__decam__z0.0000_4.0__Nz801__bsnone/K__band_decam_r.pdf +0 -0
  204. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/kcorrect/kcorrect__decam__z0.0000_4.0__Nz801__bsnone/K__band_decam_u.pdf +0 -0
  205. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/kcorrect/kcorrect__decam__z0.0000_4.0__Nz801__bsnone/K__band_decam_z.pdf +0 -0
  206. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/kcorrect/kcorrect__sdss__z0.0000_4.0__Nz801__bsnone/K__band_sdss_g0.pdf +0 -0
  207. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/kcorrect/kcorrect__sdss__z0.0000_4.0__Nz801__bsnone/K__band_sdss_i0.pdf +0 -0
  208. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/kcorrect/kcorrect__sdss__z0.0000_4.0__Nz801__bsnone/K__band_sdss_r0.pdf +0 -0
  209. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/kcorrect/kcorrect__sdss__z0.0000_4.0__Nz801__bsnone/K__band_sdss_u0.pdf +0 -0
  210. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/kcorrect/kcorrect__sdss__z0.0000_4.0__Nz801__bsnone/K__band_sdss_z0.pdf +0 -0
  211. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/kcorrect/kcorrect__subaru_suprimecam__z0.0000_4.0__Nz801__bsnone/K__band_subaru_suprimecam_B.pdf +0 -0
  212. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/kcorrect/kcorrect__subaru_suprimecam__z0.0000_4.0__Nz801__bsnone/K__band_subaru_suprimecam_Ic.pdf +0 -0
  213. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/kcorrect/kcorrect__subaru_suprimecam__z0.0000_4.0__Nz801__bsnone/K__band_subaru_suprimecam_Rc.pdf +0 -0
  214. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/kcorrect/kcorrect__subaru_suprimecam__z0.0000_4.0__Nz801__bsnone/K__band_subaru_suprimecam_V.pdf +0 -0
  215. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/kcorrect/kcorrect__subaru_suprimecam__z0.0000_4.0__Nz801__bsnone/K__band_subaru_suprimecam_g.pdf +0 -0
  216. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/kcorrect/kcorrect__subaru_suprimecam__z0.0000_4.0__Nz801__bsnone/K__band_subaru_suprimecam_i.pdf +0 -0
  217. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/kcorrect/kcorrect__subaru_suprimecam__z0.0000_4.0__Nz801__bsnone/K__band_subaru_suprimecam_r.pdf +0 -0
  218. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/kcorrect/kcorrect__subaru_suprimecam__z0.0000_4.0__Nz801__bsnone/K__band_subaru_suprimecam_z.pdf +0 -0
  219. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_B_type_E.pdf +0 -0
  220. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_B_type_E2.pdf +0 -0
  221. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_B_type_Sa.pdf +0 -0
  222. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_B_type_Sc.pdf +0 -0
  223. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_H_type_E.pdf +0 -0
  224. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_H_type_E2.pdf +0 -0
  225. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_H_type_Sa.pdf +0 -0
  226. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_H_type_Sc.pdf +0 -0
  227. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_I_type_E.pdf +0 -0
  228. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_I_type_E2.pdf +0 -0
  229. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_I_type_Sa.pdf +0 -0
  230. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_I_type_Sc.pdf +0 -0
  231. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_Ic_type_E.pdf +0 -0
  232. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_Ic_type_Sc.pdf +0 -0
  233. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_J_type_E.pdf +0 -0
  234. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_J_type_E2.pdf +0 -0
  235. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_J_type_Sa.pdf +0 -0
  236. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_J_type_Sc.pdf +0 -0
  237. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_K_type_E.pdf +0 -0
  238. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_K_type_E2.pdf +0 -0
  239. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_K_type_Sa.pdf +0 -0
  240. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_K_type_Sc.pdf +0 -0
  241. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_R_type_E.pdf +0 -0
  242. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_R_type_E2.pdf +0 -0
  243. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_R_type_Sa.pdf +0 -0
  244. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_R_type_Sc.pdf +0 -0
  245. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_Rc_type_E.pdf +0 -0
  246. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_Rc_type_Sc.pdf +0 -0
  247. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_U_type_E.pdf +0 -0
  248. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_U_type_E2.pdf +0 -0
  249. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_U_type_Sa.pdf +0 -0
  250. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_U_type_Sc.pdf +0 -0
  251. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_V_type_E.pdf +0 -0
  252. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_V_type_E2.pdf +0 -0
  253. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_V_type_Sa.pdf +0 -0
  254. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_V_type_Sc.pdf +0 -0
  255. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_g_type_E.pdf +0 -0
  256. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_g_type_E2.pdf +0 -0
  257. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_g_type_Sa.pdf +0 -0
  258. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/output/plots/poggianti1997/ke_pogg1997_band_g_type_Sc.pdf +0 -0
  259. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/scripts/compare_kcorr_surveys.py +0 -0
  260. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/scripts/compare_poggianti_to_kcorrect.py +0 -0
  261. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/scripts/make_fake_magnitude_limited_catalog.py +0 -0
  262. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/scripts/plot_poggianti1997_corrections.py +0 -0
  263. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/setup.cfg +0 -0
  264. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/__init__.py +0 -0
  265. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/api/__init__.py +0 -0
  266. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/api/corrections.py +0 -0
  267. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/corrections/__init__.py +0 -0
  268. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/corrections/color_anchors.py +0 -0
  269. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/corrections/filters.py +0 -0
  270. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/corrections/kcorrect_backend.py +0 -0
  271. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/corrections/kcorrect_from_color.py +0 -0
  272. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/corrections/kcorrect_grids.py +0 -0
  273. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/corrections/poggianti1997.py +0 -0
  274. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/corrections/responses.py +0 -0
  275. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/cosmo/__init__.py +0 -0
  276. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/cosmo/cosmology.py +0 -0
  277. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/data/demo_catalogs/fake_magnitude_limited_catalog.csv +0 -0
  278. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/data/kcorrect/grids/kcorrect__bessell__z0.0000_4.0__Nz801__bsnone.npz +0 -0
  279. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/data/kcorrect/grids/kcorrect__decam__z0.0000_4.0__Nz801__bsnone.npz +0 -0
  280. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/data/kcorrect/grids/kcorrect__sdss__z0.0000_4.0__Nz801__bsnone.npz +0 -0
  281. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/data/kcorrect/grids/kcorrect__subaru_suprimecam__z0.0000_4.0__Nz801__bsnone.npz +0 -0
  282. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/data/poggianti1997/__init__.py +0 -0
  283. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/data/poggianti1997/ecorr.csv +0 -0
  284. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/data/poggianti1997/filters.csv +0 -0
  285. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/data/poggianti1997/kcorr.csv +0 -0
  286. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/data/poggianti1997/kcorrv.csv +0 -0
  287. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/data/poggianti1997/sed.csv +0 -0
  288. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/luminosity_functions/__init__.py +0 -0
  289. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/luminosity_functions/completeness.py +0 -0
  290. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/luminosity_functions/models/__init__.py +0 -0
  291. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/photometry/__init__.py +0 -0
  292. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/photometry/magnitudes.py +0 -0
  293. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/utils/__init__.py +0 -0
  294. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/utils/download_poggianti97_data.py +0 -0
  295. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/utils/evaluators.py +0 -0
  296. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/utils/interpolation.py +0 -0
  297. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/utils/io.py +0 -0
  298. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/utils/types.py +0 -0
  299. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/lfkit/utils/units.py +0 -0
  300. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/py_lfkit.egg-info/dependency_links.txt +0 -0
  301. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/py_lfkit.egg-info/requires.txt +0 -0
  302. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/src/py_lfkit.egg-info/top_level.txt +0 -0
  303. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/tests/benchmarks/test_cacciato_clf_reference.py +0 -0
  304. {py_lfkit-0.3.0 → py_lfkit-0.4.0}/tests/benchmarks/test_cacciato_hod_reference.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: py-lfkit
3
- Version: 0.3.0
3
+ Version: 0.4.0
4
4
  Summary: Luminosity functions and photometric corrections toolkit.
5
5
  Requires-Python: >=3.10
6
6
  Description-Content-Type: text/markdown
@@ -202,7 +202,7 @@ Here:
202
202
  - :math:`\alpha` is the faint-end slope,
203
203
  - :math:`x` is the luminosity ratio :math:`L/L_\star` written in magnitude form.
204
204
 
205
- The parameter :math:`M_\star` marks the transition between the power-law part of
205
+ The parameter :math:`M_\star` marks the transition between the power law part of
206
206
  the luminosity function and the exponential bright-end cutoff. The parameter
207
207
  :math:`\alpha` controls how rapidly the abundance rises toward fainter
208
208
  magnitudes. More negative values of :math:`\alpha` produce a steeper faint end.
@@ -0,0 +1,8 @@
1
+ API reference
2
+ =============
3
+
4
+ .. autosummary::
5
+ :toctree: generated
6
+ :recursive:
7
+
8
+ lfkit
@@ -25,7 +25,7 @@ mass, or another quantity.
25
25
 
26
26
  LFKit exposes conditional luminosity functions through
27
27
  :class:`lfkit.ConditionalLuminosityFunction`. Each constructor returns a
28
- luminosity-function object that can be evaluated with
28
+ luminosity function object that can be evaluated with
29
29
  ``lf.phi`` and integrated through the usual ``lf.integrals`` namespace.
30
30
 
31
31
  The examples below use redshift as the conditioning variable because this is
@@ -127,7 +127,7 @@ population evolves.
127
127
  Conditional Schechter surface
128
128
  -----------------------------
129
129
 
130
- The same conditional Schechter model can be evaluated over the full
130
+ The same conditional luminosity function model can be evaluated over the full
131
131
  magnitude-redshift plane rather than at a few selected redshifts.
132
132
 
133
133
  The filled colour scale shows :math:`\log_{10}\Phi(M \mid z)`. The contours
@@ -423,7 +423,7 @@ It is useful to compare the component shapes at fixed condition before combining
423
423
  them into more complicated models. This separates differences in functional
424
424
  form from differences caused by redshift or halo-mass evolution.
425
425
 
426
- The standard Schechter form has a power-law faint end and an exponential
426
+ The standard Schechter form has a power law faint end and an exponential
427
427
  bright-end cutoff. The modified Schechter component has a broader bright-end
428
428
  shape. The lognormal component is localized around a characteristic luminosity.
429
429
  Together, these examples show the kinds of galaxy populations each component is
@@ -5,7 +5,7 @@
5
5
  |lfkitlogo| Composite models
6
6
  =============================
7
7
 
8
- Composite models combine multiple luminosity-function components. They are
8
+ Composite models combine multiple luminosity function components. They are
9
9
  useful when a population is better described as a mixture rather than by one
10
10
  single analytic shape.
11
11
 
@@ -83,7 +83,7 @@ function with a suppressed bright end.
83
83
  Luminosity cutoff modifier
84
84
  --------------------------
85
85
 
86
- A luminosity cutoff can be applied to an existing luminosity-function object.
86
+ A luminosity cutoff can be applied to an existing luminosity function object.
87
87
  This keeps the base model unchanged and returns a new object whose
88
88
  :meth:`lfkit.LuminosityFunction.phi` values are multiplied by a bright-end
89
89
  cutoff.
@@ -13,7 +13,7 @@ a Schechter-like exponential cutoff.
13
13
  Single power law
14
14
  ----------------
15
15
 
16
- The single power-law model has one slope. In magnitude space, this gives a
16
+ The single power law model has one slope. In magnitude space, this gives a
17
17
  straight-line trend when shown on a logarithmic :math:`\Phi(M)` axis.
18
18
 
19
19
  .. plot::
@@ -58,7 +58,7 @@ straight-line trend when shown on a logarithmic :math:`\Phi(M)` axis.
58
58
  r"$\Phi(M)$ [$\mathrm{Mpc}^{-3}\,\mathrm{mag}^{-1}$]",
59
59
  fontsize=LABEL_SIZE,
60
60
  )
61
- ax.set_title("Single power-law luminosity functions", fontsize=TITLE_SIZE)
61
+ ax.set_title("Single power law luminosity functions", fontsize=TITLE_SIZE)
62
62
  ax.tick_params(axis="both", labelsize=TICK_SIZE)
63
63
  ax.legend(frameon=True, fontsize=LEGEND_SIZE, loc="best")
64
64
  plt.tight_layout()
@@ -148,7 +148,7 @@ and faint sides need different behaviour without using a Schechter cutoff.
148
148
  Log-normalized power law
149
149
  ------------------------
150
150
 
151
- The log-normalized power-law model is the same power-law shape, but the
151
+ The log-normalized power law model is the same power law shape, but the
152
152
  normalization is supplied as ``log_phi_star``. This is convenient for fitting
153
153
  or sampling applications where the normalization is naturally varied in
154
154
  logarithmic space.
@@ -199,7 +199,7 @@ logarithmic space.
199
199
  r"$\Phi(M)$ [$\mathrm{Mpc}^{-3}\,\mathrm{mag}^{-1}$]",
200
200
  fontsize=LABEL_SIZE,
201
201
  )
202
- ax.set_title("Log-normalized power-law models", fontsize=TITLE_SIZE)
202
+ ax.set_title("Log-normalized power law models", fontsize=TITLE_SIZE)
203
203
  ax.tick_params(axis="both", labelsize=TICK_SIZE)
204
204
  ax.legend(frameon=True, fontsize=LEGEND_SIZE, loc="best")
205
205
  plt.tight_layout()
@@ -5,7 +5,7 @@
5
5
  |lfkitlogo| Schechter family models
6
6
  ===================================
7
7
 
8
- The Schechter family contains luminosity functions with a power-law faint end
8
+ The Schechter family contains luminosity functions with a power law faint end
9
9
  and a bright-end cutoff. These models are commonly used when the abundance of
10
10
  faint galaxies rises approximately as a power law, while the most luminous
11
11
  galaxies are exponentially rare.
@@ -120,20 +120,18 @@ commands = [
120
120
  ]
121
121
 
122
122
  [tool.tox.env.docs]
123
- description = "Build docs with Sphinx and doctest"
123
+ description = "Build docs with Sphinx"
124
124
  extras = ["docs", "viz"]
125
125
  commands = [
126
126
  [
127
- "sphinx-apidoc",
128
- "-d", "2",
129
- "-o", "{tox_root}/docs/api",
130
- "{tox_root}/src/lfkit",
131
- "--separate",
132
- "--no-toc",
133
- "-f",
127
+ "rm",
128
+ "-rf",
129
+ "{tox_root}/docs/_build",
130
+ "{tox_root}/docs/api/generated",
134
131
  ],
135
132
  [
136
133
  "sphinx-build",
134
+ "-E",
137
135
  "-c", "{tox_root}/docs",
138
136
  "-b", "{posargs:html}",
139
137
  "{tox_root}/docs",
@@ -144,27 +142,18 @@ commands = [
144
142
 
145
143
  [tool.tox.env.do]
146
144
  description = "Run doctests + html build and open local docs"
147
- recreate = true
148
145
  extras = ["docs", "viz"]
149
146
  allowlist_externals = ["open", "rm"]
150
147
  commands = [
151
148
  [
152
149
  "rm",
153
150
  "-rf",
154
- "{tox_root}/docs/_build/doctest",
155
- "{tox_root}/docs/_build/html",
156
- ],
157
- [
158
- "sphinx-apidoc",
159
- "-d", "2",
160
- "-o", "{tox_root}/docs/api",
161
- "{tox_root}/src/lfkit",
162
- "--separate",
163
- "--no-toc",
164
- "-f",
151
+ "{tox_root}/docs/_build",
152
+ "{tox_root}/docs/api/generated",
165
153
  ],
166
154
  [
167
155
  "sphinx-build",
156
+ "-E",
168
157
  "-b", "doctest",
169
158
  "{tox_root}/docs",
170
159
  "{tox_root}/docs/_build/doctest",
@@ -172,6 +161,7 @@ commands = [
172
161
  ],
173
162
  [
174
163
  "sphinx-build",
164
+ "-E",
175
165
  "-b", "html",
176
166
  "{tox_root}/docs",
177
167
  "{tox_root}/docs/_build/html",
@@ -183,15 +173,13 @@ commands = [
183
173
  [tool.tox.env.docs-releases]
184
174
  description = "Build the documentation for lfkit releases using Sphinx"
185
175
  extras = ["docs", "viz"]
186
- allowlist_externals = ["cp"]
176
+ allowlist_externals = ["cp", "rm"]
187
177
  commands = [
188
178
  [
189
- "sphinx-apidoc",
190
- "-d", "2",
191
- "-o", "{tox_root}/docs/api",
192
- "{tox_root}/src/lfkit",
193
- "--separate",
194
- "-f",
179
+ "rm",
180
+ "-rf",
181
+ "{tox_root}/docs/_build",
182
+ "{tox_root}/docs/api/generated",
195
183
  ],
196
184
  [
197
185
  "sphinx-multiversion",
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '0.3.0'
22
- __version_tuple__ = version_tuple = (0, 3, 0)
21
+ __version__ = version = '0.4.0'
22
+ __version_tuple__ = version_tuple = (0, 4, 0)
23
23
 
24
- __commit_id__ = commit_id = 'gd79ca3a8b'
24
+ __commit_id__ = commit_id = 'g2dc465b25'
@@ -1,4 +1,4 @@
1
- """User-facing luminosity-function API namespaces."""
1
+ """User-facing luminosity function API namespaces."""
2
2
 
3
3
  from __future__ import annotations
4
4
 
@@ -14,28 +14,43 @@ from lfkit.photometry import magnitudes as photo_magnitudes
14
14
 
15
15
 
16
16
  class LFIntegralsAPI:
17
- """Grouped API for luminosity function integrals."""
17
+ """Grouped API for luminosity function integrals.
18
+
19
+ Args:
20
+ lf: Luminosity function object whose callable form is used by bound
21
+ integral methods.
22
+ """
18
23
 
19
24
  def __init__(self, lf) -> None:
20
25
  self.lf = lf
21
26
 
22
27
 
23
28
  class LFCompletenessAPI:
24
- """Grouped API for catalog-completeness calculations."""
29
+ """Grouped API for catalog completeness calculations.
30
+
31
+ Args:
32
+ lf: Luminosity function object whose callable form is used by bound
33
+ completeness methods.
34
+ """
25
35
 
26
36
  def __init__(self, lf) -> None:
27
37
  self.lf = lf
28
38
 
29
39
 
30
40
  class LFRedshiftDensityAPI:
31
- """Grouped API for LF-weighted redshift-density calculations."""
41
+ """Grouped API for luminosity function weighted redshift density calculations.
42
+
43
+ Args:
44
+ lf: Luminosity function object whose callable form is used by bound
45
+ redshift density methods.
46
+ """
32
47
 
33
48
  def __init__(self, lf) -> None:
34
49
  self.lf = lf
35
50
 
36
51
 
37
52
  class LFMagnitudesAPI:
38
- """Grouped API for apparent- and absolute-magnitude conversions."""
53
+ """Grouped API for apparent magnitude and absolute magnitude conversions."""
39
54
 
40
55
 
41
56
  class LFLuminositiesAPI:
@@ -76,7 +91,20 @@ def expose_lf_function(
76
91
  lf_arg_position: int | None = None,
77
92
  lf_arg_name: str | None = None,
78
93
  ) -> Callable[..., Any]:
79
- """Expose a low-level LF function as a bound API method."""
94
+ """Expose a low level luminosity function helper as a bound API method.
95
+
96
+ Args:
97
+ function: Low level function to expose as a method.
98
+ lf_arg_position: Positional index where the luminosity function callable
99
+ should be inserted. If ``None``, no positional luminosity function
100
+ argument is inserted.
101
+ lf_arg_name: Keyword name used to pass the luminosity function callable.
102
+ If provided, this takes priority over ``lf_arg_position``.
103
+
104
+ Returns:
105
+ Bound method that injects ``self.lf._as_callable()`` before calling
106
+ ``function``.
107
+ """
80
108
 
81
109
  @wraps(function)
82
110
  def method(self, *args, **kwargs):
@@ -97,7 +125,14 @@ def expose_lf_function(
97
125
 
98
126
 
99
127
  def _public_functions(module: object) -> dict[str, Callable[..., Any]]:
100
- """Return callable public functions declared by a module."""
128
+ """Return callable public functions declared by a module.
129
+
130
+ Args:
131
+ module: Module object with an optional ``__all__`` declaration.
132
+
133
+ Returns:
134
+ Dictionary mapping public function names to callable objects.
135
+ """
101
136
  return {
102
137
  name: getattr(module, name)
103
138
  for name in getattr(module, "__all__", [])
@@ -106,13 +141,21 @@ def _public_functions(module: object) -> dict[str, Callable[..., Any]]:
106
141
 
107
142
 
108
143
  def _method_name(module: object, function_name: str) -> str:
109
- """Return API method name for a low-level function."""
144
+ """Return the API method name for a low level function.
145
+
146
+ Args:
147
+ module: Module object that may define ``__api_aliases__``.
148
+ function_name: Name of the low level function.
149
+
150
+ Returns:
151
+ Public API method name, using ``__api_aliases__`` when available.
152
+ """
110
153
  aliases = getattr(module, "__api_aliases__", {})
111
154
  return aliases.get(function_name, function_name)
112
155
 
113
156
 
114
157
  def _attach_api_methods() -> None:
115
- """Attach low-level functions to their API namespace classes."""
158
+ """Attach low level functions to their API namespace classes."""
116
159
  for api_cls, spec in _API_NAMESPACES.items():
117
160
  module = spec["module"]
118
161
  bound_to_lf = spec.get("bound_to_lf", False)
@@ -21,21 +21,13 @@ __all__ = ["ConditionalLuminosityFunction"]
21
21
  class ConditionalLuminosityFunction(LuminosityFunction):
22
22
  """User-facing wrapper for conditional luminosity function models.
23
23
 
24
- A conditional luminosity function evaluates ``Phi(M | x)``, where
25
- ``M`` is absolute magnitude and ``x`` is an external conditioning
26
- variable such as redshift, halo mass, or another model-specific quantity.
24
+ A conditional luminosity function evaluates ``Phi(M | x)``, where ``M`` is
25
+ absolute magnitude and ``x`` is an external conditioning variable such as
26
+ redshift, halo mass, environment, richness, stellar mass, or another
27
+ model-specific quantity.
27
28
 
28
29
  Instances can be created either with the generic constructor or with
29
30
  automatically generated model constructors.
30
-
31
- Examples:
32
- >>> clf = ConditionalLuminosityFunction(
33
- ... model="schechter",
34
- ... parameters={"phi_star": 1e-3, "m_star": -20.5, "alpha": -1.1},
35
- ... )
36
- >>> phi = clf.phi(absolute_mag=-20.0, condition=0.5)
37
-
38
- >>> ConditionalLuminosityFunction.available_models()
39
31
  """
40
32
 
41
33
  def phi(
@@ -47,16 +39,16 @@ class ConditionalLuminosityFunction(LuminosityFunction):
47
39
 
48
40
  Args:
49
41
  absolute_mag: Absolute magnitude value or array.
50
- condition: Conditioning variable value or array. The meaning of
51
- this variable depends on the selected conditional LF model.
42
+ condition: Conditioning variable value or array. The meaning of this
43
+ variable depends on the selected conditional luminosity function model.
52
44
 
53
45
  Returns:
54
46
  Conditional luminosity function evaluated at ``absolute_mag`` and
55
47
  ``condition``.
56
48
 
57
49
  Raises:
58
- ValueError: If ``condition`` is not provided or the model is not
59
- registered as a conditional luminosity function.
50
+ ValueError: If ``condition`` is not provided or the model is not registered
51
+ as a conditional luminosity function.
60
52
  """
61
53
  model_spec = get_conditional_lf_model(self.model)
62
54
 
@@ -74,7 +66,11 @@ class ConditionalLuminosityFunction(LuminosityFunction):
74
66
 
75
67
  @staticmethod
76
68
  def available_models() -> list[str]:
77
- """Return conditional luminosity function model names."""
69
+ """Return registered conditional luminosity function model names.
70
+
71
+ Returns:
72
+ Sorted list of registered conditional luminosity function model names.
73
+ """
78
74
  return sorted(CONDITIONAL_LF_MODELS)
79
75
 
80
76
 
@@ -83,7 +79,15 @@ def _make_conditional_constructor(
83
79
  model_name: str,
84
80
  function: Any,
85
81
  ):
86
- """Create a classmethod constructor from a registered conditional LF model."""
82
+ """Create a classmethod constructor from a registered conditional model.
83
+
84
+ Args:
85
+ model_name: Name of the registered conditional luminosity function model.
86
+ function: Registered low level conditional luminosity function callable.
87
+
88
+ Returns:
89
+ Classmethod constructor for ``ConditionalLuminosityFunction``.
90
+ """
87
91
  signature = inspect.signature(function)
88
92
 
89
93
  @classmethod
@@ -106,22 +110,23 @@ def _make_conditional_constructor(
106
110
  constructor.__name__ = model_name
107
111
  constructor.__qualname__ = f"ConditionalLuminosityFunction.{model_name}"
108
112
  constructor.__doc__ = f"""Create a ``{model_name}`` conditional luminosity function.
109
-
110
- The keyword arguments are inferred from the registered low-level model
111
- function. Required model parameters must be supplied by the user. Optional
112
- model parameters use their low-level defaults unless explicitly provided.
113
-
114
- Args:
115
- meta: Optional metadata stored on the luminosity function object.
116
- **parameters: Parameters passed to the registered conditional LF model.
117
-
118
- Returns:
119
- ConditionalLuminosityFunction: Configured conditional luminosity function.
120
-
121
- Examples:
122
- >>> clf = ConditionalLuminosityFunction.{model_name}(...)
123
- >>> phi = clf.phi(absolute_mag=-20.0, condition=0.5)
124
- """
113
+
114
+ The keyword arguments are inferred from the registered low level model
115
+ function. Required model parameters must be supplied by the user. Optional
116
+ model parameters use their low level defaults unless explicitly provided.
117
+
118
+ Args:
119
+ meta: Optional metadata stored on the luminosity function object.
120
+ **parameters: Parameters passed to the registered conditional luminosity
121
+ function model.
122
+
123
+ Returns:
124
+ Configured conditional luminosity function.
125
+
126
+ Examples:
127
+ >>> clf = ConditionalLuminosityFunction.{model_name}(...)
128
+ >>> phi = clf.phi(absolute_mag=-20.0, condition=0.5)
129
+ """
125
130
 
126
131
  return constructor
127
132
 
@@ -131,22 +136,23 @@ def _parameters_from_signature(
131
136
  signature: inspect.Signature,
132
137
  provided: Mapping[str, Any],
133
138
  ) -> dict[str, Any]:
134
- """Build stored parameters using function defaults plus user values.
139
+ """Build stored parameters from a function signature and user values.
135
140
 
136
- Independent variables such as ``absolute_mag`` and ``condition`` are not
137
- stored as model parameters. They are supplied later when calling
141
+ Independent variables such as ``absolute_mag`` and ``condition`` are not stored
142
+ as model parameters. They are supplied later when calling
138
143
  :meth:`ConditionalLuminosityFunction.phi`.
139
144
 
140
145
  Args:
141
- signature: Signature of the registered low-level conditional LF model.
146
+ signature: Signature of the registered low level conditional luminosity
147
+ function model.
142
148
  provided: User-supplied constructor keyword arguments.
143
149
 
144
150
  Returns:
145
- Dictionary of model parameters to store on the API object.
151
+ Dictionary of model parameters stored on the API object.
146
152
 
147
153
  Raises:
148
154
  TypeError: If the user provides a keyword that is not accepted by the
149
- registered low-level model function.
155
+ registered low level model function.
150
156
  """
151
157
  payload: dict[str, Any] = {}
152
158