summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSharlatan Hellseher <sharlatanus@gmail.com>2024-03-18 14:46:23 +0000
committerSharlatan Hellseher <sharlatanus@gmail.com>2024-03-29 15:08:12 +0000
commita0cf3af1ad75d33b52c9557c3b1cf34ffe54838b (patch)
treed2dbe3ac88c19e1b95630695b250641c1d87c21b
parent90b636e4b33a00f8c730e64df052fe2924cb5764 (diff)
gnu: Add python-pydantic-settings.
* gnu/packages/python-xyz.scm (python-pydantic-settings): New variable. Change-Id: I410edc37f17a293f3d40ce9a2ab6416ea35bae39
-rw-r--r--gnu/packages/python-xyz.scm65
1 files changed, 65 insertions, 0 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index d156a23f0d..5eb5cd958b 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -7647,6 +7647,71 @@ validation and serialization.")
Interfaces} via data models provided in the JSON format.")
(license license:expat)))
+(define-public python-pydantic-settings
+ (package
+ (name "python-pydantic-settings")
+ (version "2.2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pydantic_settings" version))
+ (sha256
+ (base32 "1vf58f398ngk6wpf0jn51ghw65mjs3m03yn06h25jlsmx6jzdf80"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags
+ #~(list "-k" (string-append
+ ;; Disable tests requiring python-ruff.
+ "not test_docs_examples[docs/index.md:24-83]"
+ " and not test_docs_examples[docs/index.md:113-137]"
+ " and not test_docs_examples[docs/index.md:148-156]"
+ " and not test_docs_examples[docs/index.md:173-183]"
+ " and not test_docs_examples[docs/index.md:193-201]"
+ " and not test_docs_examples[docs/index.md:212-243]"
+ " and not test_docs_examples[docs/index.md:286-317]"
+ " and not test_docs_examples[docs/index.md:331-372]"
+ " and not test_docs_examples[docs/index.md:430-439]"
+ " and not test_docs_examples[docs/index.md:453-459]"
+ " and not test_docs_examples[docs/index.md:514-522]"
+ " and not test_docs_examples[docs/index.md:547-549]"
+ " and not test_docs_examples[docs/index.md:553-585]"
+ " and not test_docs_examples[docs/index.md:620-645]"
+ " and not test_docs_examples[docs/index.md:654-732]"
+ " and not test_docs_examples[docs/index.md:738-772]"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'relax-requirements
+ (lambda _
+ (substitute* "pyproject.toml"
+ ;; hatchling.build failed on this line with error:
+ ;; ValueError: Unknown classifier in field
+ ;; `project.classifiers`: Framework :: Pydantic :: 2
+ (("'Framework :: Pydantic :: 2',") "")
+ ;; python-dotenv>=0.21.0
+ ((">=0.21.0") ">=0.20.0"))))
+ (add-before 'check 'set-home
+ (lambda _
+ ;; FileNotFoundError: [Errno 2] No such file or directory:
+ ;; '/homeless-shelter/
+ (setenv "HOME" "/tmp"))))))
+ (propagated-inputs
+ (list python-dotenv
+ python-pydantic-2
+ python-pyaml
+ python-tomli))
+ (native-inputs
+ (list python-hatchling
+ python-pytest
+ python-pytest-examples
+ python-pytest-mock))
+ (home-page "https://docs.pydantic.dev/latest/usage/pydantic_settings/")
+ (synopsis "Settings management using Pydantic")
+ (description
+ "Pydantic Settings provides optional Pydantic features for loading a
+settings or config class from environment variables or secrets files.")
+ (license license:expat)))
+
(define-public python-pydoc-markdown
(package
(name "python-pydoc-markdown")