Subject: [PATCH v2] gnu: Add python-aiohttp-client-cache.

From: gemmaro <[email-masked]>
Date: Mon, 5 May 2025 09:09:55 +0900

* gnu/packages/python-web.scm (python-aiohttp-client-cache): New variable.

Change-Id: Iea3f8ad33cbb2ee8979cb59071653ddb54e5111b
---
I used the for-each to remove failing test files and applied the Guix style to
the description section.

 gnu/packages/python-web.scm | 53 ++++++++++++++++++++++++++++++++++++-
 1 file changed, 52 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index c0c9e244f8..7fa0c8ea9e 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -71,6 +71,7 @@
 ;;; Copyright © 2024 Spencer King <[email-masked]>
 ;;; Copyright © 2024 Attila Lendvai <[email-masked]>
 ;;; Copyright © 2025 Daniel Ziltener <[email-masked]>
+;;; Copyright © 2025 gemmaro <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1123,6 +1124,56 @@ (define-public python-aiohttp
 @end itemize")
     (license license:asl2.0)))
 
+(define-public python-aiohttp-client-cache
+  (package
+    (name "python-aiohttp-client-cache")
+    (version "0.13.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "aiohttp_client_cache" version))
+       (sha256
+        (base32 "0lrq8fh94whvfmfr9ncfizq2ssa2fp1v1izd1y7f3gmd80ixcp6w"))
+       (modules '((guix build utils)))
+       (snippet '(begin
+                   (with-directory-excursion "test/integration"
+                     (for-each delete-file
+                               '("test_dynamodb.py" "test_mongodb.py"
+                                 ;; These tests require running Redis, SQLite,
+                                 ;; and HTTP servers.
+                                 "test_redis.py"
+                                 "test_sqlite.py"
+                                 "test_memory.py"
+                                 "test_filesystem.py")))))))
+    (build-system pyproject-build-system)
+    (native-inputs (list python-poetry-core
+                         ;; TODO: Missing packages: pytest-clarity,
+                         ;; nox-poetry, types-aiofiles.
+                         python-async-timeout
+                         python-brotli
+                         python-faker
+                         python-pytest
+                         python-pytest-aiohttp
+                         python-pytest-asyncio
+                         python-pytest-cov
+                         python-pytest-xdist))
+    (propagated-inputs (list python-aiofiles
+                             python-aiohttp
+                             python-aiosqlite
+                             python-attrs
+                             python-itsdangerous
+                             python-redis
+                             python-url-normalize))
+    (home-page "https://github.com/requests-cache/aiohttp-client-cache")
+    (synopsis "Persistent cache for aiohttp requests")
+    (description
+     "This package is an asynchronous persistent caching library specifically
+designed for @samp{aiohttp} requests in Python.  With support for various
+storage backends, it offers flexibility in how and where the cache is stored.
+Please note that MongoDB and DynamoDB backends are not currently supported due
+to the absence of the @samp{motor} and @samp{aioboto3} package dependencies.")
+    (license license:expat)))
+
 (define-public python-aiohttp-socks
   (package
     (name "python-aiohttp-socks")
@@ -1135,7 +1186,7 @@ (define-public python-aiohttp-socks
         (base32
          "0s70jpcr9wc8ld2v1w309cz7r8mm2bipf6zbkdqqaa0z0pwf3wj9"))))
     (build-system pyproject-build-system)
-    (arguments (list #:tests? #false)) ;none included
+    (arguments (list #:tests? #false))  ;none included
     (propagated-inputs
      (list python-aiohttp python-socks))
     (native-inputs (list python-setuptools python-wheel))

base-commit: 16ee065aa006e4cd8982e26cd0430f9e018874ad
prerequisite-patch-id: 59d7206b9e057a16723e7daeec5fbfe6fe4bcda8
prerequisite-patch-id: 8dee9c68dfc367b217b4ff8aae0391477d5e9910
prerequisite-patch-id: a1ddcbb34b1cc5a32ad2679597ec1a8632150d7a
prerequisite-patch-id: c390d6eabe5f8727806599bfd13461043d749436
prerequisite-patch-id: 1cb7277769c4e60f07c8435c99c4a6dfc464f005
prerequisite-patch-id: 266082644d86f910711f97a0ed7eb7277b03a937
prerequisite-patch-id: 7139c981c6c1e25b1920d176f6ba9ae4044b2a33
prerequisite-patch-id: 8d4fb61237866e7390e54df79973ffa58ba62746
prerequisite-patch-id: 127e4eec9cc3b232543c77766e2be8a82458744b
prerequisite-patch-id: a6c060f97910f31a772bec4ab201282e8082445f
prerequisite-patch-id: 2766f951811bd99594fe1d7af2df1c402fd65615
prerequisite-patch-id: 04dcd4b935c917f456cb03242431b7ba57bc8744
prerequisite-patch-id: 3487c506246a50f0ac11b6ae2300260a800aa078
prerequisite-patch-id: 3de566804aaf1ce064096457e745d7371ac5b313
prerequisite-patch-id: 39d0d1ed8407708224f7a7c56cc970dc380f0f8d
prerequisite-patch-id: 9a1cbbecfce76172bbb103727695662588d71830
prerequisite-patch-id: 08e7b0f76b582a669f8141647c745edabe64cadf
prerequisite-patch-id: f1f9a3aee69d5b5bf1943919be20b97bd2493bba
prerequisite-patch-id: a8415a9a6272989aaa39b7f70aeeb16331869d57
prerequisite-patch-id: 02b2a0449164a3b0751bcc4e575d056faa4d7bb3
prerequisite-patch-id: 0de01f0c79fe22f0d4bc479c1b1bb5fafd4063e9
prerequisite-patch-id: e8c71fbd8ecfcf5bd3209253f95ab513c4de1233
prerequisite-patch-id: dbfa908f540926e895914460219fd45a198e9d40
prerequisite-patch-id: 7ef5a2e5357d5dc1a21cbff576f9128bac39d2f7
prerequisite-patch-id: 444e3168704cd182fe741b5fec040532e9a0eb7f
prerequisite-patch-id: f2813d580d42ada7b3c67d38f39f0acdac72dd47
prerequisite-patch-id: 6cefa59c6e63efadccc7a6b7315617cd21241c6e
prerequisite-patch-id: 8979fb84ad9d0c56da97bb6af7623685b2f1c555
prerequisite-patch-id: b33bcbb6908577c17739add725150d66727608eb
prerequisite-patch-id: fa38b4cea65fb35abf46a80192a7cdc0f074ec2d
prerequisite-patch-id: 5e6d999cab2251df756c9620c26b0896d57aba51
prerequisite-patch-id: 20174e33e6f290ee94eedf4c1b1b72241d05f2be
prerequisite-patch-id: 266be7ae89dfa104b3da4e210da64c696d0b96d4
prerequisite-patch-id: d9ddf3c4b0f366151f97a920d6b39444e1bfb1ca
prerequisite-patch-id: 49a720a863fd8d88aea302a5e966adb93cf2fa74
prerequisite-patch-id: 43980432f654ad35c7c0b20ee85f164d65a773b6
prerequisite-patch-id: d3e821bedd6f26b3f2c3a1730c184ea9b63eede2
prerequisite-patch-id: 1cf66cfe4931295ac80bb5bdc3ed4bf055dd5abb
prerequisite-patch-id: 1e7b5df0fd2b11050dd4efdf58c8c8396a823203
prerequisite-patch-id: b4265c08389f4f8d7e659684d1d52def71ac156c
prerequisite-patch-id: 22bafc40fc456fc2d8172334cac26d47683c2aaf
prerequisite-patch-id: a35b19bbb8dde2413fc0d90e124f6f49022a64cd
prerequisite-patch-id: e84996913c42a3d145103141eec73ee405300f0c
prerequisite-patch-id: 30a25429bba9ff969cf2081a595c6dd80e58fb84
-- 
2.49.0