syncem 0.6.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 (305) hide show
  1. syncem-0.6.0/.readthedocs.yaml +18 -0
  2. syncem-0.6.0/CHANGELOG.md +1213 -0
  3. syncem-0.6.0/LICENSE +21 -0
  4. syncem-0.6.0/MANIFEST.in +7 -0
  5. syncem-0.6.0/PKG-INFO +1263 -0
  6. syncem-0.6.0/README.md +1234 -0
  7. syncem-0.6.0/docs/DESIGN.md +2284 -0
  8. syncem-0.6.0/docs/api/core.rst +85 -0
  9. syncem-0.6.0/docs/api/fit.rst +49 -0
  10. syncem-0.6.0/docs/api/index.rst +13 -0
  11. syncem-0.6.0/docs/api/model.rst +85 -0
  12. syncem-0.6.0/docs/changelog.md +2 -0
  13. syncem-0.6.0/docs/conf.py +52 -0
  14. syncem-0.6.0/docs/guide/faraday.md +15 -0
  15. syncem-0.6.0/docs/guide/fixed_harmonic.md +6 -0
  16. syncem-0.6.0/docs/guide/high_order_harmonic.md +403 -0
  17. syncem-0.6.0/docs/guide/model.md +11 -0
  18. syncem-0.6.0/docs/guide/radiation.md +6 -0
  19. syncem-0.6.0/docs/guide/reconstruction.md +249 -0
  20. syncem-0.6.0/docs/guide/transfer.md +6 -0
  21. syncem-0.6.0/docs/index.md +30 -0
  22. syncem-0.6.0/docs/installation.md +13 -0
  23. syncem-0.6.0/docs/scope.md +6 -0
  24. syncem-0.6.0/pyproject.toml +45 -0
  25. syncem-0.6.0/scripts/application_foreground.py +112 -0
  26. syncem-0.6.0/scripts/compare_moment_cumulant.py +116 -0
  27. syncem-0.6.0/scripts/model_examples.py +249 -0
  28. syncem-0.6.0/scripts/model_examples_continuum.py +315 -0
  29. syncem-0.6.0/scripts/model_examples_fit.py +95 -0
  30. syncem-0.6.0/scripts/plot_derivative_spectra.py +141 -0
  31. syncem-0.6.0/scripts/plot_transfer.py +217 -0
  32. syncem-0.6.0/scripts/reference_constants.py +139 -0
  33. syncem-0.6.0/scripts/review_radiation.py +254 -0
  34. syncem-0.6.0/scripts/run_all.py +85 -0
  35. syncem-0.6.0/scripts/sed_reconstruction_checks.py +191 -0
  36. syncem-0.6.0/scripts/sed_reconstruction_direct.py +247 -0
  37. syncem-0.6.0/scripts/sed_reconstruction_example.py +217 -0
  38. syncem-0.6.0/scripts/sed_reconstruction_figure.py +283 -0
  39. syncem-0.6.0/scripts/sed_reconstruction_report.py +292 -0
  40. syncem-0.6.0/scripts/sed_reconstruction_setup.py +131 -0
  41. syncem-0.6.0/scripts/sed_reconstruction_summary.py +141 -0
  42. syncem-0.6.0/scripts/test_design.py +64 -0
  43. syncem-0.6.0/scripts/validate_cumulants.py +114 -0
  44. syncem-0.6.0/scripts/validate_kirchhoff.py +188 -0
  45. syncem-0.6.0/scripts/validate_model.py +171 -0
  46. syncem-0.6.0/scripts/validate_rt_moments.py +171 -0
  47. syncem-0.6.0/scripts/validate_sed.py +147 -0
  48. syncem-0.6.0/scripts/validate_transfer.py +141 -0
  49. syncem-0.6.0/setup.cfg +4 -0
  50. syncem-0.6.0/syncem/__init__.py +98 -0
  51. syncem-0.6.0/syncem/_expm.py +125 -0
  52. syncem-0.6.0/syncem/bessel.py +268 -0
  53. syncem-0.6.0/syncem/constants.py +23 -0
  54. syncem-0.6.0/syncem/conversion.py +50 -0
  55. syncem-0.6.0/syncem/cumulants.py +132 -0
  56. syncem-0.6.0/syncem/derivatives.py +57 -0
  57. syncem-0.6.0/syncem/expansion.py +321 -0
  58. syncem-0.6.0/syncem/faraday.py +214 -0
  59. syncem-0.6.0/syncem/kirchhoff.py +336 -0
  60. syncem-0.6.0/syncem/los_moments.py +132 -0
  61. syncem-0.6.0/syncem/magnus.py +57 -0
  62. syncem-0.6.0/syncem/model/__init__.py +174 -0
  63. syncem-0.6.0/syncem/model/_allowances.py +87 -0
  64. syncem-0.6.0/syncem/model/_angular_faint_bounds.py +284 -0
  65. syncem-0.6.0/syncem/model/_angular_global_bounds.py +457 -0
  66. syncem-0.6.0/syncem/model/_basis_checks.py +195 -0
  67. syncem-0.6.0/syncem/model/_basis_core.py +347 -0
  68. syncem-0.6.0/syncem/model/_basis_taylor.py +221 -0
  69. syncem-0.6.0/syncem/model/_bessel_recurrence.py +200 -0
  70. syncem-0.6.0/syncem/model/_bound_helpers.py +44 -0
  71. syncem-0.6.0/syncem/model/_budget_terms.py +387 -0
  72. syncem-0.6.0/syncem/model/_certified_angular_i00.py +484 -0
  73. syncem-0.6.0/syncem/model/_certified_dense_harmonic.py +344 -0
  74. syncem-0.6.0/syncem/model/_certified_high_order_basis.py +540 -0
  75. syncem-0.6.0/syncem/model/_certified_sparse_harmonic.py +457 -0
  76. syncem-0.6.0/syncem/model/_channel_shapes.py +94 -0
  77. syncem-0.6.0/syncem/model/_continuum.py +296 -0
  78. syncem-0.6.0/syncem/model/_depth_bound.py +103 -0
  79. syncem-0.6.0/syncem/model/_direct.py +322 -0
  80. syncem-0.6.0/syncem/model/_factor.py +412 -0
  81. syncem-0.6.0/syncem/model/_factorisation_bounds.py +106 -0
  82. syncem-0.6.0/syncem/model/_harmonic_cells.py +306 -0
  83. syncem-0.6.0/syncem/model/_harmonic_ranges.py +140 -0
  84. syncem-0.6.0/syncem/model/_harmonic_tail.py +112 -0
  85. syncem-0.6.0/syncem/model/_harmonic_taylor.py +409 -0
  86. syncem-0.6.0/syncem/model/_interval_angular_geometry.py +208 -0
  87. syncem-0.6.0/syncem/model/_kernel_helpers.py +208 -0
  88. syncem-0.6.0/syncem/model/_polynomial.py +139 -0
  89. syncem-0.6.0/syncem/model/_population.py +291 -0
  90. syncem-0.6.0/syncem/model/_prediction.py +125 -0
  91. syncem-0.6.0/syncem/model/_project.py +399 -0
  92. syncem-0.6.0/syncem/model/_provenance.py +213 -0
  93. syncem-0.6.0/syncem/model/_refine.py +99 -0
  94. syncem-0.6.0/syncem/model/_registry.py +388 -0
  95. syncem-0.6.0/syncem/model/_remainder_probe.py +396 -0
  96. syncem-0.6.0/syncem/model/_remainder_route.py +207 -0
  97. syncem-0.6.0/syncem/model/_ridge_interval_cells.py +226 -0
  98. syncem-0.6.0/syncem/model/_support_check.py +130 -0
  99. syncem-0.6.0/syncem/model/_verified_airy.py +265 -0
  100. syncem-0.6.0/syncem/model/_verified_bessel.py +174 -0
  101. syncem-0.6.0/syncem/model/adapters.py +277 -0
  102. syncem-0.6.0/syncem/model/assumptions.py +436 -0
  103. syncem-0.6.0/syncem/model/basis.py +438 -0
  104. syncem-0.6.0/syncem/model/bounds.py +395 -0
  105. syncem-0.6.0/syncem/model/channels.py +435 -0
  106. syncem-0.6.0/syncem/model/errors.py +287 -0
  107. syncem-0.6.0/syncem/model/fit/__init__.py +68 -0
  108. syncem-0.6.0/syncem/model/fit/_bfgs.py +114 -0
  109. syncem-0.6.0/syncem/model/fit/_combination_core.py +344 -0
  110. syncem-0.6.0/syncem/model/fit/_combination_errors.py +165 -0
  111. syncem-0.6.0/syncem/model/fit/_combination_json.py +216 -0
  112. syncem-0.6.0/syncem/model/fit/_discrepancy.py +45 -0
  113. syncem-0.6.0/syncem/model/fit/_feasibility.py +245 -0
  114. syncem-0.6.0/syncem/model/fit/_feasibility_rules.py +173 -0
  115. syncem-0.6.0/syncem/model/fit/_identifiability.py +118 -0
  116. syncem-0.6.0/syncem/model/fit/_linear_core.py +169 -0
  117. syncem-0.6.0/syncem/model/fit/_nodal.py +185 -0
  118. syncem-0.6.0/syncem/model/fit/_reduction_checks.py +136 -0
  119. syncem-0.6.0/syncem/model/fit/_relations.py +326 -0
  120. syncem-0.6.0/syncem/model/fit/_result_build.py +304 -0
  121. syncem-0.6.0/syncem/model/fit/_result_core.py +293 -0
  122. syncem-0.6.0/syncem/model/fit/_transform.py +204 -0
  123. syncem-0.6.0/syncem/model/fit/combination_result.py +369 -0
  124. syncem-0.6.0/syncem/model/fit/combinations.py +332 -0
  125. syncem-0.6.0/syncem/model/fit/diagnostics.py +277 -0
  126. syncem-0.6.0/syncem/model/fit/layout.py +278 -0
  127. syncem-0.6.0/syncem/model/fit/linear.py +304 -0
  128. syncem-0.6.0/syncem/model/fit/nonlinear.py +391 -0
  129. syncem-0.6.0/syncem/model/fit/observation.py +367 -0
  130. syncem-0.6.0/syncem/model/fit/reduction.py +334 -0
  131. syncem-0.6.0/syncem/model/fit/result.py +215 -0
  132. syncem-0.6.0/syncem/model/harmonic.py +695 -0
  133. syncem-0.6.0/syncem/model/high_order_basis.py +440 -0
  134. syncem-0.6.0/syncem/model/high_order_harmonic.py +948 -0
  135. syncem-0.6.0/syncem/model/index.py +388 -0
  136. syncem-0.6.0/syncem/model/kernels.py +153 -0
  137. syncem-0.6.0/syncem/model/moments.py +363 -0
  138. syncem-0.6.0/syncem/model/phase.py +378 -0
  139. syncem-0.6.0/syncem/model/predict.py +300 -0
  140. syncem-0.6.0/syncem/model/screens.py +172 -0
  141. syncem-0.6.0/syncem/rm.py +400 -0
  142. syncem-0.6.0/syncem/sed.py +183 -0
  143. syncem-0.6.0/syncem/solutions.py +56 -0
  144. syncem-0.6.0/syncem/stokes.py +102 -0
  145. syncem-0.6.0/syncem/transfer.py +399 -0
  146. syncem-0.6.0/syncem/ultrarel.py +48 -0
  147. syncem-0.6.0/syncem.egg-info/PKG-INFO +1263 -0
  148. syncem-0.6.0/syncem.egg-info/SOURCES.txt +303 -0
  149. syncem-0.6.0/syncem.egg-info/dependency_links.txt +1 -0
  150. syncem-0.6.0/syncem.egg-info/requires.txt +20 -0
  151. syncem-0.6.0/syncem.egg-info/top_level.txt +1 -0
  152. syncem-0.6.0/tests/_ad_matrix.py +252 -0
  153. syncem-0.6.0/tests/_ad_matrix_cases.py +331 -0
  154. syncem-0.6.0/tests/_ad_matrix_model_cases.py +188 -0
  155. syncem-0.6.0/tests/conftest.py +31 -0
  156. syncem-0.6.0/tests/model/_basis_fixtures.py +78 -0
  157. syncem-0.6.0/tests/model/_basis_stub.py +179 -0
  158. syncem-0.6.0/tests/model/_benchmark_helpers.py +191 -0
  159. syncem-0.6.0/tests/model/_boundary_oracles.py +251 -0
  160. syncem-0.6.0/tests/model/_diagnostics_fixtures.py +176 -0
  161. syncem-0.6.0/tests/model/_harmonic_oracles.py +77 -0
  162. syncem-0.6.0/tests/model/_integration_fixtures.py +172 -0
  163. syncem-0.6.0/tests/model/_linear_fixtures.py +60 -0
  164. syncem-0.6.0/tests/model/_nonlinear_oracles.py +193 -0
  165. syncem-0.6.0/tests/model/_predict_helpers.py +179 -0
  166. syncem-0.6.0/tests/model/_reduction_fixtures.py +300 -0
  167. syncem-0.6.0/tests/model/conftest.py +31 -0
  168. syncem-0.6.0/tests/model/reference/README.md +19 -0
  169. syncem-0.6.0/tests/model/reference/validation/__init__.py +1 -0
  170. syncem-0.6.0/tests/model/reference/validation/full_response.py +452 -0
  171. syncem-0.6.0/tests/model/reference/validation/full_response_product.py +100 -0
  172. syncem-0.6.0/tests/model/reference/validation/full_response_results.json +1039 -0
  173. syncem-0.6.0/tests/model/test_adapters.py +318 -0
  174. syncem-0.6.0/tests/model/test_angular_faint_bounds.py +228 -0
  175. syncem-0.6.0/tests/model/test_angular_global_bounds.py +312 -0
  176. syncem-0.6.0/tests/model/test_assumptions.py +1035 -0
  177. syncem-0.6.0/tests/model/test_assumptions_jit.py +88 -0
  178. syncem-0.6.0/tests/model/test_assumptions_keyword.py +852 -0
  179. syncem-0.6.0/tests/model/test_assumptions_regressions.py +212 -0
  180. syncem-0.6.0/tests/model/test_b_analytic_derivatives.py +260 -0
  181. syncem-0.6.0/tests/model/test_basis.py +308 -0
  182. syncem-0.6.0/tests/model/test_basis_build.py +290 -0
  183. syncem-0.6.0/tests/model/test_basis_convergence.py +211 -0
  184. syncem-0.6.0/tests/model/test_basis_convergence_regressions.py +233 -0
  185. syncem-0.6.0/tests/model/test_benchmark.py +344 -0
  186. syncem-0.6.0/tests/model/test_bessel_recurrence.py +219 -0
  187. syncem-0.6.0/tests/model/test_boundaries.py +376 -0
  188. syncem-0.6.0/tests/model/test_boundaries_continuum.py +211 -0
  189. syncem-0.6.0/tests/model/test_boundaries_corners.py +129 -0
  190. syncem-0.6.0/tests/model/test_boundaries_depth.py +400 -0
  191. syncem-0.6.0/tests/model/test_boundaries_fit.py +314 -0
  192. syncem-0.6.0/tests/model/test_boundaries_quadrature.py +299 -0
  193. syncem-0.6.0/tests/model/test_bounds.py +373 -0
  194. syncem-0.6.0/tests/model/test_bounds_regressions.py +294 -0
  195. syncem-0.6.0/tests/model/test_budget_regressions.py +309 -0
  196. syncem-0.6.0/tests/model/test_capped_derivatives.py +298 -0
  197. syncem-0.6.0/tests/model/test_certif_wording_fit.py +53 -0
  198. syncem-0.6.0/tests/model/test_certified_angular_i00.py +160 -0
  199. syncem-0.6.0/tests/model/test_certified_dense_harmonic.py +121 -0
  200. syncem-0.6.0/tests/model/test_certified_high_order_basis.py +482 -0
  201. syncem-0.6.0/tests/model/test_certified_sparse_harmonic.py +123 -0
  202. syncem-0.6.0/tests/model/test_channels.py +415 -0
  203. syncem-0.6.0/tests/model/test_combinations.py +380 -0
  204. syncem-0.6.0/tests/model/test_combinations_accuracy.py +201 -0
  205. syncem-0.6.0/tests/model/test_combinations_errors.py +336 -0
  206. syncem-0.6.0/tests/model/test_combinations_modes.py +218 -0
  207. syncem-0.6.0/tests/model/test_combinations_recovery.py +199 -0
  208. syncem-0.6.0/tests/model/test_continuum.py +203 -0
  209. syncem-0.6.0/tests/model/test_diagnostics.py +240 -0
  210. syncem-0.6.0/tests/model/test_direct_allowances_round3.py +214 -0
  211. syncem-0.6.0/tests/model/test_docstrings.py +186 -0
  212. syncem-0.6.0/tests/model/test_errors.py +524 -0
  213. syncem-0.6.0/tests/model/test_example_continuum_budget.py +71 -0
  214. syncem-0.6.0/tests/model/test_feasibility.py +258 -0
  215. syncem-0.6.0/tests/model/test_fit_integration.py +346 -0
  216. syncem-0.6.0/tests/model/test_fit_integration_nonlinear.py +210 -0
  217. syncem-0.6.0/tests/model/test_harmonic.py +310 -0
  218. syncem-0.6.0/tests/model/test_harmonic_doc_claims.py +60 -0
  219. syncem-0.6.0/tests/model/test_harmonic_projection.py +213 -0
  220. syncem-0.6.0/tests/model/test_harmonic_ranges.py +299 -0
  221. syncem-0.6.0/tests/model/test_high_order_basis.py +354 -0
  222. syncem-0.6.0/tests/model/test_high_order_harmonic.py +487 -0
  223. syncem-0.6.0/tests/model/test_index.py +434 -0
  224. syncem-0.6.0/tests/model/test_interval_angular_geometry.py +169 -0
  225. syncem-0.6.0/tests/model/test_interval_bump_response.py +118 -0
  226. syncem-0.6.0/tests/model/test_jit_ad.py +244 -0
  227. syncem-0.6.0/tests/model/test_json_strict_regressions.py +112 -0
  228. syncem-0.6.0/tests/model/test_kernel_chunking.py +226 -0
  229. syncem-0.6.0/tests/model/test_kernels.py +273 -0
  230. syncem-0.6.0/tests/model/test_linear.py +277 -0
  231. syncem-0.6.0/tests/model/test_linear_policies.py +213 -0
  232. syncem-0.6.0/tests/model/test_linear_regressions.py +200 -0
  233. syncem-0.6.0/tests/model/test_lower_set_remainder.py +253 -0
  234. syncem-0.6.0/tests/model/test_lower_set_truncation.py +348 -0
  235. syncem-0.6.0/tests/model/test_memory_numerics.py +267 -0
  236. syncem-0.6.0/tests/model/test_moments.py +603 -0
  237. syncem-0.6.0/tests/model/test_nonlinear.py +384 -0
  238. syncem-0.6.0/tests/model/test_nonlinear_bias_regressions.py +114 -0
  239. syncem-0.6.0/tests/model/test_nonlinear_boundaries.py +167 -0
  240. syncem-0.6.0/tests/model/test_nonlinear_fit.py +310 -0
  241. syncem-0.6.0/tests/model/test_nonlinear_regressions.py +68 -0
  242. syncem-0.6.0/tests/model/test_observation.py +562 -0
  243. syncem-0.6.0/tests/model/test_phase.py +326 -0
  244. syncem-0.6.0/tests/model/test_predict.py +345 -0
  245. syncem-0.6.0/tests/model/test_predict_assumptions.py +115 -0
  246. syncem-0.6.0/tests/model/test_predict_direct_regressions.py +378 -0
  247. syncem-0.6.0/tests/model/test_predict_routes.py +146 -0
  248. syncem-0.6.0/tests/model/test_probe_memory_budget.py +266 -0
  249. syncem-0.6.0/tests/model/test_probe_taylor.py +251 -0
  250. syncem-0.6.0/tests/model/test_product_cells_regressions.py +190 -0
  251. syncem-0.6.0/tests/model/test_reduction.py +316 -0
  252. syncem-0.6.0/tests/model/test_reduction_scope.py +206 -0
  253. syncem-0.6.0/tests/model/test_reference_provenance.py +25 -0
  254. syncem-0.6.0/tests/model/test_remainder_probe.py +296 -0
  255. syncem-0.6.0/tests/model/test_remainder_probe_route.py +232 -0
  256. syncem-0.6.0/tests/model/test_result.py +348 -0
  257. syncem-0.6.0/tests/model/test_ridge_interval_cells.py +201 -0
  258. syncem-0.6.0/tests/model/test_screens.py +239 -0
  259. syncem-0.6.0/tests/model/test_sed_example.py +264 -0
  260. syncem-0.6.0/tests/model/test_stokes_nodes.py +67 -0
  261. syncem-0.6.0/tests/model/test_support_check_regressions.py +165 -0
  262. syncem-0.6.0/tests/model/test_symmetry_assumptions.py +239 -0
  263. syncem-0.6.0/tests/model/test_symmetry_factorisation.py +195 -0
  264. syncem-0.6.0/tests/model/test_symmetry_fixed_table.py +236 -0
  265. syncem-0.6.0/tests/model/test_truncation_provenance.py +228 -0
  266. syncem-0.6.0/tests/model/test_verified_airy.py +83 -0
  267. syncem-0.6.0/tests/model/test_verified_bessel.py +62 -0
  268. syncem-0.6.0/tests/model/test_version_provenance.py +19 -0
  269. syncem-0.6.0/tests/test_ad_transform_matrix.py +147 -0
  270. syncem-0.6.0/tests/test_ad_transform_matrix_nested.py +199 -0
  271. syncem-0.6.0/tests/test_ad_transform_matrix_v020.py +94 -0
  272. syncem-0.6.0/tests/test_audit_provenance.py +45 -0
  273. syncem-0.6.0/tests/test_bessel_autodiff_accuracy.py +73 -0
  274. syncem-0.6.0/tests/test_distributed_faraday.py +414 -0
  275. syncem-0.6.0/tests/test_docs_fences.py +32 -0
  276. syncem-0.6.0/tests/test_docs_tables.py +64 -0
  277. syncem-0.6.0/tests/test_mixed_population.py +281 -0
  278. syncem-0.6.0/tests/test_package_improvements.py +203 -0
  279. syncem-0.6.0/tests/test_radiation_regressions.py +296 -0
  280. syncem-0.6.0/tests/test_rm_regressions.py +138 -0
  281. syncem-0.6.0/tests/test_slow_gating.py +85 -0
  282. syncem-0.6.0/tests/test_transfer_batched_reverse.py +204 -0
  283. syncem-0.6.0/tests/test_transfer_companion_boundaries.py +196 -0
  284. syncem-0.6.0/tests/test_transfer_derivatives.py +240 -0
  285. syncem-0.6.0/tests/test_transfer_eager.py +110 -0
  286. syncem-0.6.0/tests/test_transfer_expm_boundaries.py +136 -0
  287. syncem-0.6.0/tests/test_transfer_extreme_jacobians.py +111 -0
  288. syncem-0.6.0/tests/test_transfer_higher_order.py +232 -0
  289. syncem-0.6.0/tests/test_transfer_length_derivative.py +206 -0
  290. syncem-0.6.0/tests/test_transfer_refusals.py +155 -0
  291. syncem-0.6.0/tests/test_transfer_regressions.py +202 -0
  292. syncem-0.6.0/tests/test_transfer_scale_and_budget.py +89 -0
  293. syncem-0.6.0/tests/test_transfer_scaling.py +133 -0
  294. syncem-0.6.0/tests/test_transfer_third_order.py +110 -0
  295. syncem-0.6.0/tests/test_transfer_value_accuracy.py +209 -0
  296. syncem-0.6.0/tests/test_transfer_value_boundaries.py +150 -0
  297. syncem-0.6.0/tests/test_validation.py +654 -0
  298. syncem-0.6.0/tests/test_version.py +22 -0
  299. syncem-0.6.0/tests/test_weight_normalisation.py +168 -0
  300. syncem-0.6.0/tests/test_weight_normalisation_edges.py +200 -0
  301. syncem-0.6.0/tests/test_weight_normalisation_errors.py +178 -0
  302. syncem-0.6.0/tests/test_weight_normalisation_hessian.py +151 -0
  303. syncem-0.6.0/tests/test_weight_normalisation_mixed.py +140 -0
  304. syncem-0.6.0/tests/test_weight_normalisation_oracle.py +197 -0
  305. syncem-0.6.0/tests/test_weight_normalisation_second_order.py +233 -0
@@ -0,0 +1,18 @@
1
+ # Read the Docs build configuration: https://docs.readthedocs.io/en/stable/config-file/v2.html
2
+ version: 2
3
+
4
+ build:
5
+ os: ubuntu-24.04
6
+ tools:
7
+ python: "3.12"
8
+
9
+ sphinx:
10
+ configuration: docs/conf.py
11
+ fail_on_warning: true
12
+
13
+ python:
14
+ install:
15
+ - method: pip
16
+ path: .
17
+ extra_requirements:
18
+ - docs