[Buildroot] [PATCH v2] package/python-diskcache: new package
Marcus Hoffmann
buildroot at bubu1.eu
Tue Oct 21 09:35:00 UTC 2025
The package imports itself in setup.py to get the package-name and
version number. This doesn't work during the buildroot build, so we
replace this by the hardcoded package-name and the version number stored
in buildroot.
Signed-off-by: Marcus Hoffmann <buildroot at bubu1.eu>
---
Changes v1 -> v2:
- Rebase on current master
---
DEVELOPERS | 3 +++
package/Config.in | 1 +
package/python-diskcache/Config.in | 8 ++++++++
.../python-diskcache/python-diskcache.hash | 5 +++++
package/python-diskcache/python-diskcache.mk | 20 +++++++++++++++++++
.../tests/package/sample_python_diskcache.py | 9 +++++++++
.../tests/package/test_python_diskcache.py | 12 +++++++++++
7 files changed, 58 insertions(+)
create mode 100644 package/python-diskcache/Config.in
create mode 100644 package/python-diskcache/python-diskcache.hash
create mode 100644 package/python-diskcache/python-diskcache.mk
create mode 100644 support/testing/tests/package/sample_python_diskcache.py
create mode 100644 support/testing/tests/package/test_python_diskcache.py
diff --git a/DEVELOPERS b/DEVELOPERS
index 66199a5b72..15266b4583 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2272,6 +2272,7 @@ F: package/pico-sdk/
F: package/picotool/
F: package/python-apscheduler/
F: package/python-crc/
+F: package/python-diskcache/
F: package/python-django/
F: package/python-immutabledict/
F: package/python-jc/
@@ -2287,6 +2288,7 @@ F: package/python-waitress/
F: package/python-whitenoise/
F: support/testing/tests/package/test_python_apscheduler.py
F: support/testing/tests/package/test_python_crc.py
+F: support/testing/tests/package/test_python_diskcache.py
F: support/testing/tests/package/test_python_django.py
F: support/testing/tests/package/test_python_fastapi.py
F: support/testing/tests/package/test_python_pydantic.py
@@ -2298,6 +2300,7 @@ F: support/testing/tests/package/test_python_waitress.py
F: support/testing/tests/package/test_python_whitenoise.py
F: support/testing/tests/package/sample_python_apscheduler.py
F: support/testing/tests/package/sample_python_crc.py
+F: support/testing/tests/package/sample_python_diskcache.py
F: support/testing/tests/package/sample_python_django.py
F: support/testing/tests/package/sample_python_fastapi.py
F: support/testing/tests/package/sample_python_pydantic.py
diff --git a/package/Config.in b/package/Config.in
index 161d61728b..d8d5007186 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1089,6 +1089,7 @@ menu "External python modules"
source "package/python-dictdiffer/Config.in"
source "package/python-dicttoxml/Config.in"
source "package/python-dicttoxml2/Config.in"
+ source "package/python-diskcache/Config.in"
source "package/python-distro/Config.in"
source "package/python-django/Config.in"
source "package/python-django-enumfields/Config.in"
diff --git a/package/python-diskcache/Config.in b/package/python-diskcache/Config.in
new file mode 100644
index 0000000000..4bf6c57406
--- /dev/null
+++ b/package/python-diskcache/Config.in
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_PYTHON_DISKCACHE
+ bool "python-diskcache"
+ select BR2_PACKAGE_PYTHON3_SQLITE # runtime
+ select BR2_PACKAGE_PYTHON3_ZLIB # runtime
+ help
+ Disk Cache -- Disk and file backed persistent cache.
+
+ http://www.grantjenks.com/docs/diskcache/
diff --git a/package/python-diskcache/python-diskcache.hash b/package/python-diskcache/python-diskcache.hash
new file mode 100644
index 0000000000..4befb40a4e
--- /dev/null
+++ b/package/python-diskcache/python-diskcache.hash
@@ -0,0 +1,5 @@
+# md5, sha256 from https://pypi.org/pypi/diskcache/json
+md5 d92b4afa944bb70ed38c84a622f7abb5 diskcache-5.6.3.tar.gz
+sha256 2c3a3fa2743d8535d832ec61c2054a1641f41775aa7c556758a109941e33e4fc diskcache-5.6.3.tar.gz
+# Locally computed sha256 checksums
+sha256 583546baa3fd93607d845126570677a401f508e228b5044fefbc3949af179672 LICENSE
diff --git a/package/python-diskcache/python-diskcache.mk b/package/python-diskcache/python-diskcache.mk
new file mode 100644
index 0000000000..327d076779
--- /dev/null
+++ b/package/python-diskcache/python-diskcache.mk
@@ -0,0 +1,20 @@
+################################################################################
+#
+# python-diskcache
+#
+################################################################################
+
+PYTHON_DISKCACHE_VERSION = 5.6.3
+PYTHON_DISKCACHE_SOURCE = diskcache-$(PYTHON_DISKCACHE_VERSION).tar.gz
+PYTHON_DISKCACHE_SITE = https://files.pythonhosted.org/packages/3f/21/1c1ffc1a039ddcc459db43cc108658f32c57d271d7289a2794e401d0fdb6
+PYTHON_DISKCACHE_SETUP_TYPE = setuptools
+PYTHON_DISKCACHE_LICENSE = Apache-2.0
+PYTHON_DISKCACHE_LICENSE_FILES = LICENSE
+
+define PYTHON_DISKCACHE_REMOVE_SELF_IMPORT
+ sed -i -e '/import diskcache/d' -e 's/diskcache.__title__/"diskcache"/' -e 's/diskcache.__version__/"$(PYTHON_DISKCACHE_VERSION)"/' $(@D)/setup.py
+endef
+
+PYTHON_DISKCACHE_POST_PATCH_HOOKS += PYTHON_DISKCACHE_REMOVE_SELF_IMPORT
+
+$(eval $(python-package))
diff --git a/support/testing/tests/package/sample_python_diskcache.py b/support/testing/tests/package/sample_python_diskcache.py
new file mode 100644
index 0000000000..8ba34daf6e
--- /dev/null
+++ b/support/testing/tests/package/sample_python_diskcache.py
@@ -0,0 +1,9 @@
+from diskcache import Cache
+
+cache = Cache()
+
+cache['test'] = 123
+assert cache['test'] == 123
+del cache['test']
+assert 'test' not in cache
+cache.close()
diff --git a/support/testing/tests/package/test_python_diskcache.py b/support/testing/tests/package/test_python_diskcache.py
new file mode 100644
index 0000000000..d8618c1681
--- /dev/null
+++ b/support/testing/tests/package/test_python_diskcache.py
@@ -0,0 +1,12 @@
+from tests.package.test_python import TestPythonPackageBase
+
+
+class TestPythonPy3DiskCache(TestPythonPackageBase):
+ __test__ = True
+ config = TestPythonPackageBase.config + \
+ """
+ BR2_PACKAGE_PYTHON3=y
+ BR2_PACKAGE_PYTHON_DISKCACHE=y
+ """
+ sample_scripts = ["tests/package/sample_python_diskcache.py"]
+ timeout = 10
--
2.51.1.dirty
More information about the buildroot
mailing list