head 1.17; access; symbols pkgsrc-2023Q4:1.14.0.2 pkgsrc-2023Q4-base:1.14 pkgsrc-2023Q3:1.13.0.2 pkgsrc-2023Q3-base:1.13 pkgsrc-2023Q2:1.12.0.2 pkgsrc-2023Q2-base:1.12 pkgsrc-2023Q1:1.9.0.10 pkgsrc-2023Q1-base:1.9 pkgsrc-2022Q4:1.9.0.8 pkgsrc-2022Q4-base:1.9 pkgsrc-2022Q3:1.9.0.6 pkgsrc-2022Q3-base:1.9 pkgsrc-2022Q2:1.9.0.4 pkgsrc-2022Q2-base:1.9 pkgsrc-2022Q1:1.9.0.2 pkgsrc-2022Q1-base:1.9 pkgsrc-2021Q4:1.7.0.2 pkgsrc-2021Q4-base:1.7 pkgsrc-2021Q3:1.5.0.12 pkgsrc-2021Q3-base:1.5 pkgsrc-2021Q2:1.5.0.10 pkgsrc-2021Q2-base:1.5 pkgsrc-2021Q1:1.5.0.8 pkgsrc-2021Q1-base:1.5 pkgsrc-2020Q4:1.5.0.6 pkgsrc-2020Q4-base:1.5 pkgsrc-2020Q3:1.5.0.4 pkgsrc-2020Q3-base:1.5 pkgsrc-2020Q2:1.5.0.2 pkgsrc-2020Q2-base:1.5 pkgsrc-2020Q1:1.4.0.10 pkgsrc-2020Q1-base:1.4 pkgsrc-2019Q4:1.4.0.12 pkgsrc-2019Q4-base:1.4 pkgsrc-2019Q3:1.4.0.8 pkgsrc-2019Q3-base:1.4 pkgsrc-2019Q2:1.4.0.6 pkgsrc-2019Q2-base:1.4 pkgsrc-2019Q1:1.4.0.4 pkgsrc-2019Q1-base:1.4 pkgsrc-2018Q4:1.4.0.2 pkgsrc-2018Q4-base:1.4 pkgsrc-2018Q3:1.3.0.2 pkgsrc-2018Q3-base:1.3 pkgsrc-2018Q2:1.2.0.10 pkgsrc-2018Q2-base:1.2 pkgsrc-2018Q1:1.2.0.8 pkgsrc-2018Q1-base:1.2 pkgsrc-2017Q4:1.2.0.6 pkgsrc-2017Q4-base:1.2 pkgsrc-2017Q3:1.2.0.4 pkgsrc-2017Q3-base:1.2 pkgsrc-2017Q2:1.1.0.2 pkgsrc-2017Q2-base:1.1; locks; strict; comment @# @; 1.17 date 2024.02.22.17.35.14; author adam; state Exp; branches; next 1.16; commitid ae2jG4pmPnfkcsZE; 1.16 date 2024.02.08.06.05.26; author adam; state Exp; branches; next 1.15; commitid xzxquBq5vRyCPAXE; 1.15 date 2024.01.12.11.55.50; author adam; state Exp; branches; next 1.14; commitid bZM6qn35ztCyD9UE; 1.14 date 2023.11.07.22.37.59; author wiz; state Exp; branches; next 1.13; commitid 0SUcCzviRXnrjJLE; 1.13 date 2023.07.10.12.59.00; author adam; state Exp; branches; next 1.12; commitid nUq27P9tfTdVXfwE; 1.12 date 2023.05.22.12.46.29; author adam; state Exp; branches; next 1.11; commitid SPu8kbA766xjtXpE; 1.11 date 2023.05.05.19.51.22; author adam; state Exp; branches; next 1.10; commitid 4PEFUYM09MoYmOnE; 1.10 date 2023.04.23.10.56.24; author adam; state Exp; branches; next 1.9; commitid O2Thw4yfYVEgNdmE; 1.9 date 2022.01.31.13.56.06; author adam; state Exp; branches; next 1.8; commitid y9ZEMHNB96AQ9NqD; 1.8 date 2022.01.04.20.53.01; author wiz; state Exp; branches; next 1.7; commitid CYyhdK9qtoffkmnD; 1.7 date 2021.12.06.20.39.06; author adam; state Exp; branches; next 1.6; commitid ggKFhTUgiKXKbDjD; 1.6 date 2021.11.14.15.16.19; author adam; state Exp; branches; next 1.5; commitid VLyagBOza70o6MgD; 1.5 date 2020.05.16.13.56.47; author adam; state Exp; branches; next 1.4; commitid VYrNrSIE6Jkfft8C; 1.4 date 2018.12.18.11.24.45; author adam; state Exp; branches; next 1.3; commitid VYovyJVFAJKIXg4B; 1.3 date 2018.08.18.21.06.24; author adam; state Exp; branches; next 1.2; commitid XW60wqVb3dVh6EOA; 1.2 date 2017.09.17.13.39.11; author adam; state Exp; branches; next 1.1; commitid qndRnJqRdYnDoy7A; 1.1 date 2017.04.14.13.53.25; author leot; state Exp; branches; next ; commitid gAPXIidV5KEguvNz; desc @@ 1.17 log @py-dogpile-cache: updated to 1.3.2 1.3.2 [usecase] [redis] Added a new backend RedisClusterBackend, allowing support for Redis Cluster. Pull request courtesy Maël Naccache Tüfekçi. [usecase] [redis] Added support for additional Redis client parameters RedisBackend.socket_connect_timeout, RedisBackend.socket_keepalive and RedisBackend.socket_keepalive_options. Pull request courtesy Takashi Kajinami. @ text @# $NetBSD: Makefile,v 1.16 2024/02/08 06:05:26 adam Exp $ DISTNAME= dogpile.cache-1.3.2 PKGNAME= ${PYPKGPREFIX}-${DISTNAME:S/./-/} CATEGORIES= devel python MASTER_SITES= ${MASTER_SITE_PYPI:=d/dogpile.cache/} MAINTAINER= pkgsrc-users@@NetBSD.org HOMEPAGE= https://bitbucket.org/zzzeek/dogpile.cache COMMENT= Caching front-end based on the Dogpile lock LICENSE= modified-bsd TOOL_DEPENDS+= ${PYPKGPREFIX}-setuptools>=61.2:../../devel/py-setuptools TOOL_DEPENDS+= ${PYPKGPREFIX}-wheel-[0-9]*:../../devel/py-wheel DEPENDS+= ${PYPKGPREFIX}-decorator>=4.0.0:../../devel/py-decorator DEPENDS+= ${PYPKGPREFIX}-stevedore>=3.0.0:../../devel/py-stevedore TEST_DEPENDS+= ${PYPKGPREFIX}-mako-[0-9]*:../../devel/py-mako TEST_DEPENDS+= ${PYPKGPREFIX}-mock-[0-9]*:../../devel/py-mock TEST_DEPENDS+= ${PYPKGPREFIX}-test-cov-[0-9]*:../../devel/py-test-cov USE_LANGUAGES= # none PYTHON_VERSIONS_INCOMPATIBLE= 27 38 .include "../../lang/python/pyversion.mk" .if ${PYTHON_VERSION} < 311 DEPENDS+= ${PYPKGPREFIX}-typing-extensions>=4.0.1:../../devel/py-typing-extensions .endif .include "../../lang/python/wheel.mk" .include "../../mk/bsd.pkg.mk" @ 1.16 log @py-dogpile-cache: updated to 1.3.1 1.3.1 Added new parameter RedisBackend.username to the Redis backend, and RedisSentinelBackend.username to the Redis Sentinel backend. These parameters allow for username authentication in Redis when RBAC is enabled. Pull request courtesy Takashi Kajinami. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.15 2024/01/12 11:55:50 adam Exp $ d3 1 a3 1 DISTNAME= dogpile.cache-1.3.1 @ 1.15 log @py-dogpile-cache: updated to 1.3.0 1.3.0 feature Added new method CacheRegion.get_value_metadata() which can be used to get a value from the cache along with its metadata, including timestamp of when the value was cached. The CachedValue object is returned which features new accessors to retrieve cached time and current age. Pull request courtesy Grégoire Deveaux. misc Minimum Python version is now Python 3.8; prior versions Python 3.7 and 3.6 are EOL. Project setup is now based on pep-621 pyproject.toml configuration. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.14 2023/11/07 22:37:59 wiz Exp $ d3 1 a3 1 DISTNAME= dogpile.cache-1.3.0 @ 1.14 log @*: latest py-sphinx only support Python 3.9+ @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.13 2023/07/10 12:59:00 adam Exp $ d3 1 a3 1 DISTNAME= dogpile.cache-1.2.2 d13 2 a19 1 #TEST_DEPENDS+= ${PYPKGPREFIX}-test-runner-[0-9]*:../../devel/py-test-runner a22 2 #PYSETUPTESTTARGET= pytest d30 1 a30 4 do-test: cd ${WRKSRC} && ${SETENV} ${TEST_ENV} pytest-${PYVERSSUFFIX} tests .include "../../lang/python/egg.mk" @ 1.13 log @py-dogpile-cache: updated to 1.2.2 1.2.2 [bug] [typing] Made use of pep-673 Self type for method chained methods such as CacheRegion.configure() and ProxyBackend.wrap(). @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.12 2023/05/22 12:46:29 adam Exp $ d24 1 a24 1 PYTHON_VERSIONS_INCOMPATIBLE= 27 @ 1.12 log @py-dogpile-cache: updated to 1.2.1 1.2.1 Added py.typed file to root so that typing tools such as Mypy recognize dogpile as typed. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.11 2023/05/05 19:51:22 adam Exp $ d3 1 a3 1 DISTNAME= dogpile.cache-1.2.1 d18 1 a18 1 TEST_DEPENDS+= ${PYPKGPREFIX}-test-runner-[0-9]*:../../devel/py-test-runner d22 1 a22 1 PYSETUPTESTTARGET= pytest d26 8 @ 1.11 log @py-dogpile-cache: updated to 1.2.0 1.2.0 [feature] [region] Added new construct api.CantDeserializeException which can be raised by user-defined deserializer functions which would be passed to CacheRegion.deserializer, to indicate a cache value that can’t be deserialized and therefore should be regenerated. This can allow an application that’s been updated to gracefully re-cache old items that were persisted from a previous version of the application. Pull request courtesy Simon Hewitt. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.10 2023/04/23 10:56:24 adam Exp $ d3 1 a3 1 DISTNAME= dogpile.cache-1.2.0 @ 1.10 log @py-dogpile-cache: updated to 1.1.8 1.1.8 bug [bug] [memcached] Moved the MemcacheArgs.dead_retry argument and the MemcacheArgs.socket_timeout argument which were erroneously added to the “set_parameters”, where they have no effect, to be part of the Memcached connection arguments MemcachedBackend.dead_retry, MemcachedBackend.socket_timeout. 1.1.7 usecase [usecase] [memcached] Added MemcacheArgs.dead_retry and MemcacheArgs.socket_timeout to the dictionary of additional keyword arguments that will be passed directly to GenericMemcachedBackend(). 1.1.6 usecase [usecase] [redis] Added RedisBackend.connection_kwargs parameter, which is a dictionary of additional keyword arguments that will be passed directly to StrictRedis() or StrictRedis.from_url(), in the same way that this parameter works with the RedisSentinelBackend already. bug [bug] [redis] Fixed regression caused by backwards-incompatible API changes in Redis that caused the “distributed lock” feature to not function. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.9 2022/01/31 13:56:06 adam Exp $ d3 1 a3 1 DISTNAME= dogpile.cache-1.1.8 @ 1.9 log @py-dogpile-cache: updated to 1.1.5 1.1.5: Unknown changes @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.8 2022/01/04 20:53:01 wiz Exp $ d3 1 a3 1 DISTNAME= dogpile.cache-1.1.5 @ 1.8 log @*: bump PKGREVISION for egg.mk users They now have a tool dependency on py-setuptools instead of a DEPENDS @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.7 2021/12/06 20:39:06 adam Exp $ d3 1 a3 1 DISTNAME= dogpile.cache-1.1.4 a4 1 PKGREVISION= 1 @ 1.7 log @py-dogpile-cache: fix py-stevedore path @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.6 2021/11/14 15:16:19 adam Exp $ d5 1 @ 1.6 log @py-dogpile-cache: updated to 1.1.4 1.1.4 usecase [usecase] [memcached] Added support for pymemcache socket keepalive and retrying client. See also PyMemcacheBackend.socket_keepalive PyMemcacheBackend.enable_retry_client bug [bug] [general] Fixed Python 3.10 deprecation warning involving threading 1.1.3 bug [bug] [regression] [tests] Repaired the test suite to work with the 5.x series of the decorator module, which now appears to make use of the __signature__ attribute. [bug] [regression] Fixed regression where ProxyBackend was missing several methods that were added as part of the 1.1 release. 1.1.2 feature [feature] [region] Added new region method CacheRegion.key_is_locked(). Returns True if the given key is subject to the dogpile lock, which would indicate that the generator function is running at that time. Pull request courtesy Bastien Gerard. [feature] [memcached] Added support for the pymemcache backend, using the "dogpile.cache.pymemcache" backend identifier. Pull request courtesy Moisés Guimarães de Medeiros. See also PyMemcacheBackend 1.1.1 bug [bug] [region] Fixed regression where the serialization and deserialization functions could be inadvertently turned into instance methods with an unexpected argument signature, namely when pickle.dumps and pickle.loads are the pure Python version as is the case in pypy. 1.1.0 feature [feature] [region] Reworked the means by which values are serialized and deserialized from backends, and provided for custom serialization of values. Added the CacheRegion.serializer and CacheRegion.deserializer parameters which may be set to any serializer. Serialization and deserialization now take place within the CacheRegion so that backends may now assume string values in all cases. This simplifies the existing backends and also makes custom backends easier to write and maintain. Additionally, the serializer is now applied to the user-defined value portion of the CachedValue and not to the metadata or other portions of CachedValue object itself, so the serialized portion is effectively a “payload” within the larger CachedValue structure that is passed as part of the larger string format. The overall format is a separate JSON of the cached value metadata, followed by the serialized form. This allows for end-user serialization schemes that are hardwired to the values themselves without the need to serialize dogpile’s internal structures as well. Existing custom backends should continue to work without issue; they now have the option to forego any separate serialization steps, and can also subclass a new backend BytesBackend that marks them as a backend that only deals with bytes coming in and out; all internal serialization logic from such a backend can be removed. Pull request courtesy Alessio Bogon. misc [change] Added pep-484 annotations to most of the dogpile.cache package. 1.0.2 feature [feature] [memcached] Added support for TLS connections to the bmemcached backend. Pull request courtesy Moisés Guimarães de Medeiros. bug [bug] [installation] Repaired the setup.cfg file so that the source and wheel distributions will not add the “tests” directory to the Python environment. Pull request courtesy Michał Górny. 1.0.1 bug [bug] [install] dogpile.cache 1.0.0 was released with a minimum Python version of 3.5. However, due to a dependency issue, the minimum version is now Python 3.6. The 1.0.0 release will be removed from PyPI so that Python versions prior to 3.6 will continue to make use of the previous dogpile.cache 0.9.2. [bug] [installation] Removed the “universal=1” directive from setup.cfg as this would create py2/py3 wheels. dogpile 1.0.x is Python 3 only so a py3-only wheel is now created. 1.0.0 feature [feature] Improved plugin scanner performance by switching from pkg_resources to stevedore. [feature] [redis] Added support for Redis Sentinel. Pull request courtesy Stéphane Brunner. See RedisSentinelBackend. misc [change: py3k] For version 1.0.0, dogpile.cache now supports Python 3.5 and above only. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.5 2020/05/16 13:56:47 adam Exp $ d14 1 a14 1 DEPENDS+= ${PYPKGPREFIX}-stevedore>=3.0.0:../../devel/py-decorator @ 1.5 log @py-dogpile-cache: updated to 0.9.2 0.9.2: [bug] [installation] Ensured that the “pyproject.toml” file is not included in builds, as the presence of this file indicates to pip that a pep-517 installation process should be used. As this mode of operation appears to be not well supported by current tools / distros, these problems are avoided within the scope of dogpile.cache installation by omitting the file. 0.9.1: [bug] [tests] Added decorator module as a required testing dependency to tox.ini so that tests work when this is not pre-installed. [bug] [redis] Added option to the Redis backend RedisBackend.thread_local_lock, which when set to False will disable the use of a threading local by the redis module in its distributed lock service, which is known to interfere with the lock’s behavior when used in an “async” use case, within dogpile this would be when using the CacheRegion.async_creation_runner feature. The default is conservatively being left at True, but it’s likely this should be set to False in all cases, so a warning is emitted if this flag is not set to False in conjunction with the distributed lock. Added an optional argument to RedisBackend that specifies whether or not a thread-local Redis lock should be used. This is the default, but it breaks asynchronous runner compatibility. 0.9.0: [feature] Added logging facililities into CacheRegion, to indicate key events such as cache keys missing or regeneration of values. As these can be very high volume log messages, logging.DEBUG is used as the log level for the events. Pull request courtesy Stéphane Brunner. 0.8.0: [bug] [setup] Removed the “python setup.py test” feature in favor of a straight run of “tox”. Per Pypa / pytest developers, “setup.py” commands are in general headed towards deprecation in favor of tox. The tox.ini script has been updated such that running “tox” with no arguments will perform a single run of the test suite against the default installed Python interpreter. [bug] [py3k] Replaced the Python compatbility routines for getfullargspec() with a fully vendored version from Python 3.3. Originally, Python was emitting deprecation warnings for this function in Python 3.8 alphas. While this change was reverted, it was observed that Python 3 implementations for getfullargspec() are an order of magnitude slower as of the 3.4 series where it was rewritten against Signature. While Python plans to improve upon this situation, SQLAlchemy projects for now are using a simple replacement to avoid any future issues. [bug] [installation] Pinned minimum version of Python decorator module at 4.0.0 (July, 2015) as previous versions don’t provide the API that dogpile is using. [bug] [py3k] Fixed the sha1_mangle_key() key mangler to coerce incoming Unicode objects into bytes as is required by the Py3k version of this function. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.4 2018/12/18 11:24:45 adam Exp $ d3 1 a3 1 DISTNAME= dogpile.cache-0.9.2 d13 2 a14 1 DEPENDS+= ${PYPKGPREFIX}-decorator-[0-9]*:../../devel/py-decorator d24 2 @ 1.4 log @py-dogpile-cache: updated to 0.7.1 0.7.1 [bug] [region] Fixed regression in 0.7.0 caused by 136 where the assumed arguments for the CacheRegion.async_creation_runner expanded to include the new CacheRegion.get_or_create.creator_args parameter, as it was not tested that the async runner would be implicitly called with these arguments when the CacheRegion.cache_on_arguments() decorator was used. The exact signature of async_creation_runner is now restored to have the same arguments in all cases. 0.7.0 [bug] The decorator module is now used when creating function decorators within CacheRegion.cache_on_arguments() and CacheRegion.cache_multi_on_arguments() so that function signatures are preserved. Pull request courtesy ankitpatel96. Additionally adds a small performance enhancement which is to avoid internally creating a @@wraps() decorator for the creator function on every get operation, by allowing the arguments to the creator be passed separately to CacheRegion.get_or_create(). [bug] [py3k] Fixed all Python 3.x deprecation warnings including inspect.getargspec() @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.3 2018/08/18 21:06:24 adam Exp $ d3 1 a3 1 DISTNAME= dogpile.cache-0.7.1 a15 1 TEST_DEPENDS+= ${PYPKGPREFIX}-test-[0-9]*:../../devel/py-test d17 1 d21 2 @ 1.3 log @py-dogpile-cache: updated to 0.6.7 0.6.7: [bug] Fixed issue in the CacheRegion.get_or_create_multi() method which was erroneously considering the cached value as the timestamp field if the CacheRegion.invalidate() method had ben used, usually causing a TypeError to occur, or in less frequent cases an invalid result for whether or not the cached value was invalid, leading to excessive caching or regeneration. The issue was a regression caused by an implementation issue in the pluggable invalidation feature added in 38. 0.6.6: [feature] Added method CacheRegion.actual_backend which calculates and caches the actual backend for the region, which may be abstracted by the use of one or more ProxyBackend subclasses. [bug] Fixed a condition in the Lock where the “get” function could be called a second time unnecessarily, when returning an existing, expired value from the cache. 0.6.5: [bug] Fixed import issue for Python 3.7 where several variables named “async” were, leading to syntax errors. Pull request courtesy Brian Sheldon. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.2 2017/09/17 13:39:11 adam Exp $ d3 1 a3 1 DISTNAME= dogpile.cache-0.6.7 d13 1 @ 1.2 log @py-dogpile-cache: update to 0.6.4 0.6.4 [bug] The method Region.get_or_create_multi() will not pass to the cache backend if no values are ultimately to be stored, based on the use of the Region.get_or_create_multi.should_cache_fn function. This empty dictionary is unnecessary and can cause API problems for backends like that of Redis. Pull request courtesy Tobias Sauerwein. [bug] The api.NO_VALUE constant now has a fixed __repr__() output, so that scenarios where this constant’s string value ends up being used as a cache key do not create multiple values. Pull request courtesy Paul Brown. [bug] A new exception class exception.PluginNotFound is now raised when a particular cache plugin class cannot be located either as a setuptools entrypoint or as a registered backend. Previously, a plain Exception was thrown. Pull request courtesy Jamie Lennox. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.1 2017/04/14 13:53:25 leot Exp $ d3 1 a3 1 DISTNAME= dogpile.cache-0.6.4 d5 1 a5 1 CATEGORIES= devel d13 5 @ 1.1 log @Import py-dogpile-cache-0.6.2 as devel/py-dogpile-cache Dogpile consists of two subsystems, one building on top of the other. dogpile provides the concept of a "dogpile lock", a control structure which allows a single thread of execution to be selected as the "creator" of some resource, while allowing other threads of execution to refer to the previous version of this resource as the creation proceeds; if there is no previous version, then those threads block until the object is available. dogpile.cache is a caching API which provides a generic interface to caching backends of any variety, and additionally provides API hooks which integrate these cache backends with the locking mechanism of dogpile. Overall, dogpile.cache is intended as a replacement to the Beaker caching system, the internals of which are written by the same author. All the ideas of Beaker which "work" are re- implemented in dogpile.cache in a more efficient and succinct manner, and all the cruft (Beaker's internals were first written in 2005) relegated to the trash heap. @ text @d1 1 a1 1 # $NetBSD$ d3 1 a3 1 DISTNAME= dogpile.cache-0.6.2 @