CUQIpy 1.3.0.post0.dev20__tar.gz → 1.3.0.post0.dev31__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.

Potentially problematic release.


This version of CUQIpy might be problematic. Click here for more details.

Files changed (126) hide show
  1. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/CUQIpy.egg-info/PKG-INFO +2 -2
  2. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/PKG-INFO +2 -2
  3. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/_version.py +3 -3
  4. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/distribution/_beta.py +1 -1
  5. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/distribution/_cauchy.py +2 -2
  6. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/distribution/_truncated_normal.py +1 -1
  7. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/pyproject.toml +1 -1
  8. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/CUQIpy.egg-info/SOURCES.txt +0 -0
  9. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/CUQIpy.egg-info/dependency_links.txt +0 -0
  10. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/CUQIpy.egg-info/requires.txt +0 -0
  11. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/CUQIpy.egg-info/top_level.txt +0 -0
  12. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/LICENSE +0 -0
  13. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/README.md +0 -0
  14. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/__init__.py +0 -0
  15. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/_messages.py +0 -0
  16. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/array/__init__.py +0 -0
  17. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/array/_array.py +0 -0
  18. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/config.py +0 -0
  19. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/data/__init__.py +0 -0
  20. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/data/_data.py +0 -0
  21. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/data/astronaut.npz +0 -0
  22. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/data/camera.npz +0 -0
  23. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/data/cat.npz +0 -0
  24. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/data/cookie.png +0 -0
  25. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/data/satellite.mat +0 -0
  26. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/density/__init__.py +0 -0
  27. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/density/_density.py +0 -0
  28. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/diagnostics.py +0 -0
  29. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/distribution/__init__.py +0 -0
  30. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/distribution/_cmrf.py +0 -0
  31. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/distribution/_custom.py +0 -0
  32. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/distribution/_distribution.py +0 -0
  33. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/distribution/_gamma.py +0 -0
  34. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/distribution/_gaussian.py +0 -0
  35. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/distribution/_gmrf.py +0 -0
  36. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/distribution/_inverse_gamma.py +0 -0
  37. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/distribution/_joint_distribution.py +0 -0
  38. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/distribution/_laplace.py +0 -0
  39. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/distribution/_lmrf.py +0 -0
  40. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/distribution/_lognormal.py +0 -0
  41. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/distribution/_modifiedhalfnormal.py +0 -0
  42. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/distribution/_normal.py +0 -0
  43. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/distribution/_posterior.py +0 -0
  44. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/distribution/_smoothed_laplace.py +0 -0
  45. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/distribution/_uniform.py +0 -0
  46. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/experimental/__init__.py +0 -0
  47. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/experimental/algebra/__init__.py +0 -0
  48. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/experimental/algebra/_ast.py +0 -0
  49. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/experimental/algebra/_orderedset.py +0 -0
  50. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/experimental/algebra/_randomvariable.py +0 -0
  51. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/experimental/geometry/__init__.py +0 -0
  52. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/experimental/geometry/_productgeometry.py +0 -0
  53. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/experimental/mcmc/__init__.py +0 -0
  54. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/experimental/mcmc/_conjugate.py +0 -0
  55. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/experimental/mcmc/_conjugate_approx.py +0 -0
  56. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/experimental/mcmc/_cwmh.py +0 -0
  57. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/experimental/mcmc/_direct.py +0 -0
  58. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/experimental/mcmc/_gibbs.py +0 -0
  59. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/experimental/mcmc/_hmc.py +0 -0
  60. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/experimental/mcmc/_langevin_algorithm.py +0 -0
  61. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/experimental/mcmc/_laplace_approximation.py +0 -0
  62. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/experimental/mcmc/_mh.py +0 -0
  63. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/experimental/mcmc/_pcn.py +0 -0
  64. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/experimental/mcmc/_rto.py +0 -0
  65. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/experimental/mcmc/_sampler.py +0 -0
  66. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/experimental/mcmc/_utilities.py +0 -0
  67. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/geometry/__init__.py +0 -0
  68. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/geometry/_geometry.py +0 -0
  69. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/implicitprior/__init__.py +0 -0
  70. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/implicitprior/_regularizedGMRF.py +0 -0
  71. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/implicitprior/_regularizedGaussian.py +0 -0
  72. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/implicitprior/_regularizedUnboundedUniform.py +0 -0
  73. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/implicitprior/_restorator.py +0 -0
  74. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/likelihood/__init__.py +0 -0
  75. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/likelihood/_likelihood.py +0 -0
  76. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/model/__init__.py +0 -0
  77. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/model/_model.py +0 -0
  78. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/operator/__init__.py +0 -0
  79. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/operator/_operator.py +0 -0
  80. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/pde/__init__.py +0 -0
  81. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/pde/_pde.py +0 -0
  82. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/problem/__init__.py +0 -0
  83. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/problem/_problem.py +0 -0
  84. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/sampler/__init__.py +0 -0
  85. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/sampler/_conjugate.py +0 -0
  86. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/sampler/_conjugate_approx.py +0 -0
  87. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/sampler/_cwmh.py +0 -0
  88. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/sampler/_gibbs.py +0 -0
  89. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/sampler/_hmc.py +0 -0
  90. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/sampler/_langevin_algorithm.py +0 -0
  91. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/sampler/_laplace_approximation.py +0 -0
  92. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/sampler/_mh.py +0 -0
  93. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/sampler/_pcn.py +0 -0
  94. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/sampler/_rto.py +0 -0
  95. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/sampler/_sampler.py +0 -0
  96. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/samples/__init__.py +0 -0
  97. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/samples/_samples.py +0 -0
  98. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/solver/__init__.py +0 -0
  99. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/solver/_solver.py +0 -0
  100. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/testproblem/__init__.py +0 -0
  101. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/testproblem/_testproblem.py +0 -0
  102. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/utilities/__init__.py +0 -0
  103. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/utilities/_get_python_variable_name.py +0 -0
  104. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/cuqi/utilities/_utilities.py +0 -0
  105. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/requirements.txt +0 -0
  106. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/setup.cfg +0 -0
  107. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/setup.py +0 -0
  108. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/tests/test_MRFs.py +0 -0
  109. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/tests/test_abstract_distribution_density.py +0 -0
  110. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/tests/test_bayesian_inversion.py +0 -0
  111. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/tests/test_density.py +0 -0
  112. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/tests/test_distribution.py +0 -0
  113. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/tests/test_distributions_shape.py +0 -0
  114. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/tests/test_geometry.py +0 -0
  115. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/tests/test_implicit_priors.py +0 -0
  116. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/tests/test_joint_distribution.py +0 -0
  117. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/tests/test_likelihood.py +0 -0
  118. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/tests/test_model.py +0 -0
  119. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/tests/test_pde.py +0 -0
  120. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/tests/test_posterior.py +0 -0
  121. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/tests/test_problem.py +0 -0
  122. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/tests/test_sampler.py +0 -0
  123. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/tests/test_samples.py +0 -0
  124. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/tests/test_solver.py +0 -0
  125. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/tests/test_testproblem.py +0 -0
  126. {cuqipy-1.3.0.post0.dev20 → cuqipy-1.3.0.post0.dev31}/tests/test_utilities.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: CUQIpy
3
- Version: 1.3.0.post0.dev20
3
+ Version: 1.3.0.post0.dev31
4
4
  Summary: Computational Uncertainty Quantification for Inverse problems in Python
5
5
  Maintainer-email: "Nicolai A. B. Riis" <nabr@dtu.dk>, "Jakob S. Jørgensen" <jakj@dtu.dk>, "Amal M. Alghamdi" <amaal@dtu.dk>, Chao Zhang <chaz@dtu.dk>
6
6
  License: Apache License
@@ -197,7 +197,7 @@ Project-URL: Source, https://github.com/CUQI-DTU/CUQIpy
197
197
  Project-URL: Documentation, https://cuqi-dtu.github.io/CUQIpy/
198
198
  Project-URL: Download, https://github.com/CUQI-DTU/CUQIpy/releases
199
199
  Project-URL: Tracker, https://github.com/CUQI-DTU/CUQIpy/issues
200
- Requires-Python: >=3.8
200
+ Requires-Python: >=3.9
201
201
  Description-Content-Type: text/markdown
202
202
  License-File: LICENSE
203
203
  Requires-Dist: matplotlib
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: CUQIpy
3
- Version: 1.3.0.post0.dev20
3
+ Version: 1.3.0.post0.dev31
4
4
  Summary: Computational Uncertainty Quantification for Inverse problems in Python
5
5
  Maintainer-email: "Nicolai A. B. Riis" <nabr@dtu.dk>, "Jakob S. Jørgensen" <jakj@dtu.dk>, "Amal M. Alghamdi" <amaal@dtu.dk>, Chao Zhang <chaz@dtu.dk>
6
6
  License: Apache License
@@ -197,7 +197,7 @@ Project-URL: Source, https://github.com/CUQI-DTU/CUQIpy
197
197
  Project-URL: Documentation, https://cuqi-dtu.github.io/CUQIpy/
198
198
  Project-URL: Download, https://github.com/CUQI-DTU/CUQIpy/releases
199
199
  Project-URL: Tracker, https://github.com/CUQI-DTU/CUQIpy/issues
200
- Requires-Python: >=3.8
200
+ Requires-Python: >=3.9
201
201
  Description-Content-Type: text/markdown
202
202
  License-File: LICENSE
203
203
  Requires-Dist: matplotlib
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2025-03-17T12:59:53+0100",
11
+ "date": "2025-03-18T12:15:45+0300",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "f5b55b44a116f72579cc778177a558d773646dae",
15
- "version": "1.3.0.post0.dev20"
14
+ "full-revisionid": "61f29c79e738c5a49f246ab10bb96bace115c9d4",
15
+ "version": "1.3.0.post0.dev31"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -48,7 +48,7 @@ class Beta(Distribution):
48
48
 
49
49
  # Check bounds
50
50
  if np.any(x<=0) or np.any(x>=1) or np.any(self.alpha<=0) or np.any(self.beta<=0):
51
- return -np.Inf
51
+ return -np.inf
52
52
 
53
53
  # Compute logpdf
54
54
  return np.sum(sps.beta.logpdf(x, a=self.alpha, b=self.beta))
@@ -75,14 +75,14 @@ class Cauchy(Distribution):
75
75
  def logpdf(self, x):
76
76
 
77
77
  if self._is_out_of_bounds(x):
78
- return -np.Inf
78
+ return -np.inf
79
79
 
80
80
  return np.sum(-np.log(np.pi*self.scale*(1+((x-self.location)/self.scale)**2)))
81
81
 
82
82
  def cdf(self, x):
83
83
 
84
84
  if self._is_out_of_bounds(x):
85
- return -np.Inf
85
+ return -np.inf
86
86
 
87
87
  return np.sum(sps.cauchy.cdf(x, loc=self.location, scale=self.scale))
88
88
 
@@ -97,7 +97,7 @@ class TruncatedNormal(Distribution):
97
97
  # the unnormalized logpdf
98
98
  # check if x falls in the range between np.array a and b
99
99
  if np.any(x < self.low) or np.any(x > self.high):
100
- return -np.Inf
100
+ return -np.inf
101
101
  else:
102
102
  return self._normal.logpdf(x)
103
103
 
@@ -12,7 +12,7 @@ maintainers = [
12
12
  {name = "Chao Zhang", email = "chaz@dtu.dk"}
13
13
  ]
14
14
  readme = "README.md"
15
- requires-python = ">=3.8"
15
+ requires-python = ">=3.9"
16
16
  license = {file = "LICENSE"}
17
17
  dynamic = ["dependencies", "version"]
18
18