Package: python-dogpile.cache Version: 0.6.2-5 Severity: normal Tags: patch User: ubuntu-de...@lists.ubuntu.com Usertags: origin-ubuntu cosmic ubuntu-patch
Dear Maintainer, In Ubuntu, the attached patch was applied to achieve the following: * d/p/py37-compat.patch: Compat fixes for Python 3.7. The patch was picked from the upstream VCS. Thanks for considering the patch. -- System Information: Debian Release: buster/sid APT prefers cosmic APT policy: (500, 'cosmic') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.15.0-23-generic (SMP w/4 CPU cores) Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE=en_GB:en (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled
diff -Nru python-dogpile.cache-0.6.2/debian/patches/py37-compat.patch python-dogpile.cache-0.6.2/debian/patches/py37-compat.patch --- python-dogpile.cache-0.6.2/debian/patches/py37-compat.patch 1969-12-31 18:00:00.000000000 -0600 +++ python-dogpile.cache-0.6.2/debian/patches/py37-compat.patch 2018-07-05 05:30:20.000000000 -0500 @@ -0,0 +1,118 @@ +commit 3c4351c11f79e0c458dc281ee9745e29feee993b +Author: Brian Sheldon <trash.bl...@gmail.com> +Date: Mon Mar 5 09:18:16 2018 -0500 + + Rename "async" variable for python 3.7 + + Fixed import issue for Python 3.7 where a variable named "async" was + used, leading to syntax errors. Pull request courtesy Brian Sheldon. + + Fixes: #119 + Change-Id: I5189eaaca07e4eb369daa655a54791dfa915c034 + Pull-request: https://bitbucket.org/zzzeek/dogpile.cache/pull-requests/64 + +--- /dev/null ++++ b/docs/build/unreleased/119.rst +@@ -0,0 +1,8 @@ ++.. change:: ++ :tags: bug ++ :tickets: 119 ++ ++ Fixed import issue for Python 3.7 where several variables named "async" ++ were, leading to syntax errors. Pull request courtesy Brian Sheldon. ++ ++ +--- a/dogpile/lock.py ++++ b/dogpile/lock.py +@@ -112,7 +112,7 @@ class Lock(object): + if not self._is_expired(createdtime): + return NOT_REGENERATED + +- async = False ++ _async = False + + if self._has_value(createdtime): + if not self.mutex.acquire(False): +@@ -138,14 +138,14 @@ class Lock(object): + elif self.async_creator: + log.debug("Passing creation lock to async runner") + self.async_creator(self.mutex) +- async = True ++ _async = True + return value, createdtime + + log.debug("Calling creation function") + created = self.creator() + return created + finally: +- if not async: ++ if not _async: + self.mutex.release() + log.debug("Released creation lock") + +--- a/dogpile/util/readwrite_lock.py ++++ b/dogpile/util/readwrite_lock.py +@@ -23,7 +23,7 @@ class ReadWriteMutex(object): + + def __init__(self): + # counts how many asynchronous methods are executing +- self.async = 0 ++ self.async_ = 0 + + # pointer to thread that is the current sync operation + self.current_sync_operation = None +@@ -31,7 +31,7 @@ class ReadWriteMutex(object): + # condition object to lock on + self.condition = threading.Condition(threading.Lock()) + +- def acquire_read_lock(self, wait = True): ++ def acquire_read_lock(self, wait=True): + """Acquire the 'read' lock.""" + self.condition.acquire() + try: +@@ -45,7 +45,7 @@ class ReadWriteMutex(object): + if self.current_sync_operation is not None: + return False + +- self.async += 1 ++ self.async_ += 1 + log.debug("%s acquired read lock", self) + finally: + self.condition.release() +@@ -57,23 +57,23 @@ class ReadWriteMutex(object): + """Release the 'read' lock.""" + self.condition.acquire() + try: +- self.async -= 1 ++ self.async_ -= 1 + + # check if we are the last asynchronous reader thread + # out the door. +- if self.async == 0: ++ if self.async_ == 0: + # yes. so if a sync operation is waiting, notifyAll to wake + # it up + if self.current_sync_operation is not None: + self.condition.notifyAll() +- elif self.async < 0: ++ elif self.async_ < 0: + raise LockError("Synchronizer error - too many " + "release_read_locks called") + log.debug("%s released read lock", self) + finally: + self.condition.release() + +- def acquire_write_lock(self, wait = True): ++ def acquire_write_lock(self, wait=True): + """Acquire the 'write' lock.""" + self.condition.acquire() + try: +@@ -96,7 +96,7 @@ class ReadWriteMutex(object): + self.current_sync_operation = threading.currentThread() + + # now wait again for asyncs to finish +- if self.async > 0: ++ if self.async_ > 0: + if wait: + # wait + self.condition.wait() diff -Nru python-dogpile.cache-0.6.2/debian/patches/series python-dogpile.cache-0.6.2/debian/patches/series --- python-dogpile.cache-0.6.2/debian/patches/series 2017-04-25 09:27:04.000000000 -0500 +++ python-dogpile.cache-0.6.2/debian/patches/series 2018-07-05 05:09:54.000000000 -0500 @@ -1,2 +1,3 @@ no-intersphinx.patch remove-non-deterministic-tests.patch +py37-compat.patch