From 516eb0f1e6ea5e0fdae5362c9c281249802261f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Larivi=C3=A8re?= Date: Sun, 5 Sep 2021 23:15:50 -0400 Subject: [PATCH] Fix 'Protocols cannot be instantiated' with Python 3.9.7 --- CHANGELOG.md | 15 ++++++++++----- HEARTBEAT | 2 +- README.md | 2 +- VERSION | 2 +- readerwriterlock/rwlock.py | 18 ------------------ readerwriterlock/rwlock_async.py | 18 ------------------ setup.cfg | 3 ++- 7 files changed, 15 insertions(+), 45 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9dd8334..ce0c2b2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,9 +6,15 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## [Unreleased] +## [Released] - 1.0.9 2021-09-05 + +### Fixed + +- Fix error *Protocols cannot be instantiated*, occurring with Python 3.9.7 + ## [Released] - 1.0.8 2021-01-27 -## Added +### Added - rwlock_async (Thanks to Mike Merrill) - Support for python 3.9 @@ -19,7 +25,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## [Released] - 1.0.7 2020-04-26 -## Added +### Added - Code coverage badge to README.md using [codecov](https://codecov.io) - Download count related badges to README.md @@ -40,12 +46,12 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## [Released] - 1.0.6 2020-01-14 -## Fixed +### Fixed - Add missing runtime dependency 'typing_extensions' to setup.py ## [Released] - 1.0.5 2020-01-14 -## Fixed +### Fixed - README.rst is now included in source tar ### Changed @@ -54,7 +60,6 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## [Released] - 1.0.4 2019-06-29 - ### Removed - Python 3.4 from the list of supported python version diff --git a/HEARTBEAT b/HEARTBEAT index 512c16b..7342936 100644 --- a/HEARTBEAT +++ b/HEARTBEAT @@ -1 +1 @@ -2021-01 +2021-09 diff --git a/README.md b/README.md index 49b3dda..c49e83e 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ Reader Writer Lock ================== -**A python implementation of the three Reader-Writer problems.** +**A python implementation of a solution for the three Reader-Writer problems.** [![repo status Active](https://www.repostatus.org/badges/latest/active.svg "repo status Active")](https://www.repostatus.org/#active) [![Build Status](https://travis-ci.org/elarivie/pyReaderWriterLock.svg?branch=master)](https://travis-ci.org/elarivie/pyReaderWriterLock) diff --git a/VERSION b/VERSION index b0f3d96..66c4c22 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.0.8 +1.0.9 diff --git a/readerwriterlock/rwlock.py b/readerwriterlock/rwlock.py index b2c14ff..a70509e 100755 --- a/readerwriterlock/rwlock.py +++ b/readerwriterlock/rwlock.py @@ -124,13 +124,11 @@ def __init__(self, lock_factory: Callable[[], Lockable] = threading.Lock, time_s self.c_time_source = time_source self.c_resource = lock_factory() self.c_lock_read_count = lock_factory() - super().__init__() class _aReader(Lockable): def __init__(self, p_RWLock: "RWLockRead") -> None: self.c_rw_lock = p_RWLock self.v_locked: bool = False - super().__init__() def acquire(self, blocking: bool = True, timeout: float = -1) -> bool: """Acquire a lock.""" @@ -166,7 +164,6 @@ class _aWriter(Lockable): def __init__(self, p_RWLock: "RWLockRead") -> None: self.c_rw_lock = p_RWLock self.v_locked: bool = False - super().__init__() def acquire(self, blocking: bool = True, timeout: float = -1) -> bool: """Acquire a lock.""" @@ -206,13 +203,11 @@ def __init__(self, lock_factory: Callable[[], Lockable] = threading.Lock, time_s self.c_lock_read_entry = lock_factory() self.c_lock_read_try = lock_factory() self.c_resource = lock_factory() - super().__init__() class _aReader(Lockable): def __init__(self, p_RWLock: "RWLockWrite") -> None: self.c_rw_lock = p_RWLock self.v_locked: bool = False - super().__init__() def acquire(self, blocking: bool = True, timeout: float = -1) -> bool: """Acquire a lock.""" @@ -259,7 +254,6 @@ class _aWriter(Lockable): def __init__(self, p_RWLock: "RWLockWrite") -> None: self.c_rw_lock = p_RWLock self.v_locked: bool = False - super().__init__() def acquire(self, blocking: bool = True, timeout: float = -1) -> bool: """Acquire a lock.""" @@ -318,13 +312,11 @@ def __init__(self, lock_factory: Callable[[], Lockable] = threading.Lock, time_s self.c_lock_read_count = lock_factory() self.c_lock_read = lock_factory() self.c_lock_write = lock_factory() - super().__init__() class _aReader(Lockable): def __init__(self, p_RWLock: "RWLockFair") -> None: self.c_rw_lock = p_RWLock self.v_locked: bool = False - super().__init__() def acquire(self, blocking: bool = True, timeout: float = -1) -> bool: """Acquire a lock.""" @@ -365,7 +357,6 @@ class _aWriter(Lockable): def __init__(self, p_RWLock: "RWLockFair") -> None: self.c_rw_lock = p_RWLock self.v_locked: bool = False - super().__init__() def acquire(self, blocking: bool = True, timeout: float = -1) -> bool: """Acquire a lock.""" @@ -408,13 +399,11 @@ def __init__(self, lock_factory: Callable[[], Lockable] = threading.Lock, time_s self.c_time_source = time_source self.c_resource = lock_factory() self.c_lock_read_count = lock_factory() - super().__init__() class _aReader(Lockable): def __init__(self, p_RWLock: "RWLockReadD") -> None: self.c_rw_lock = p_RWLock self.v_locked: bool = False - super().__init__() def acquire(self, blocking: bool = True, timeout: float = -1) -> bool: """Acquire a lock.""" @@ -450,7 +439,6 @@ class _aWriter(LockableD): def __init__(self, p_RWLock: "RWLockReadD") -> None: self.c_rw_lock = p_RWLock self.v_locked: bool = False - super().__init__() def acquire(self, blocking: bool = True, timeout: float = -1) -> bool: """Acquire a lock.""" @@ -515,13 +503,11 @@ def __init__(self, lock_factory: Callable[[], Lockable] = threading.Lock, time_s self.c_lock_read_entry = lock_factory() self.c_lock_read_try = lock_factory() self.c_resource = lock_factory() - super().__init__() class _aReader(Lockable): def __init__(self, p_RWLock: "RWLockWriteD") -> None: self.c_rw_lock = p_RWLock self.v_locked: bool = False - super().__init__() def acquire(self, blocking: bool = True, timeout: float = -1) -> bool: """Acquire a lock.""" @@ -568,7 +554,6 @@ class _aWriter(LockableD): def __init__(self, p_RWLock: "RWLockWriteD") -> None: self.c_rw_lock = p_RWLock self.v_locked: bool = False - super().__init__() def acquire(self, blocking: bool = True, timeout: float = -1) -> bool: """Acquire a lock.""" @@ -643,13 +628,11 @@ def __init__(self, lock_factory: Callable[[], Lockable] = threading.Lock, time_s self.c_lock_read_count = lock_factory() self.c_lock_read = lock_factory() self.c_lock_write = lock_factory() - super().__init__() class _aReader(Lockable): def __init__(self, p_RWLock: "RWLockFairD") -> None: self.c_rw_lock = p_RWLock self.v_locked: bool = False - super().__init__() def acquire(self, blocking: bool = True, timeout: float = -1) -> bool: """Acquire a lock.""" @@ -690,7 +673,6 @@ class _aWriter(LockableD): def __init__(self, p_RWLock: "RWLockFairD") -> None: self.c_rw_lock = p_RWLock self.v_locked: bool = False - super().__init__() def acquire(self, blocking: bool = True, timeout: float = -1) -> bool: """Acquire a lock.""" diff --git a/readerwriterlock/rwlock_async.py b/readerwriterlock/rwlock_async.py index 2f754bc..19e377b 100755 --- a/readerwriterlock/rwlock_async.py +++ b/readerwriterlock/rwlock_async.py @@ -130,13 +130,11 @@ def __init__(self, lock_factory: Union[Callable[[], Lockable], Type[asyncio.Lock self.c_time_source = time_source self.c_resource = lock_factory() self.c_lock_read_count = lock_factory() - super().__init__() class _aReader(Lockable): def __init__(self, p_RWLock: "RWLockRead") -> None: self.c_rw_lock = p_RWLock self.v_locked: bool = False - super().__init__() async def acquire(self, blocking: bool = True, timeout: float = -1) -> bool: """Acquire a lock.""" @@ -176,7 +174,6 @@ class _aWriter(Lockable): def __init__(self, p_RWLock: "RWLockRead") -> None: self.c_rw_lock = p_RWLock self.v_locked: bool = False - super().__init__() async def acquire(self, blocking: bool = True, timeout: float = -1) -> bool: """Acquire a lock.""" @@ -222,13 +219,11 @@ def __init__(self, lock_factory: Union[Callable[[], Lockable], Type[asyncio.Lock self.c_lock_read_entry = lock_factory() self.c_lock_read_try = lock_factory() self.c_resource = lock_factory() - super().__init__() class _aReader(Lockable): def __init__(self, p_RWLock: "RWLockWrite") -> None: self.c_rw_lock = p_RWLock self.v_locked: bool = False - super().__init__() async def acquire(self, blocking: bool = True, timeout: float = -1) -> bool: """Acquire a lock.""" @@ -283,7 +278,6 @@ class _aWriter(Lockable): def __init__(self, p_RWLock: "RWLockWrite") -> None: self.c_rw_lock = p_RWLock self.v_locked: bool = False - super().__init__() async def acquire(self, blocking: bool = True, timeout: float = -1) -> bool: """Acquire a lock.""" @@ -348,13 +342,11 @@ def __init__(self, lock_factory: Union[Callable[[], Lockable], Type[asyncio.Lock self.c_lock_read_count = lock_factory() self.c_lock_read = lock_factory() self.c_lock_write = lock_factory() - super().__init__() class _aReader(Lockable): def __init__(self, p_RWLock: "RWLockFair") -> None: self.c_rw_lock = p_RWLock self.v_locked: bool = False - super().__init__() async def acquire(self, blocking: bool = True, timeout: float = -1) -> bool: """Acquire a lock.""" @@ -401,7 +393,6 @@ class _aWriter(Lockable): def __init__(self, p_RWLock: "RWLockFair") -> None: self.c_rw_lock = p_RWLock self.v_locked: bool = False - super().__init__() async def acquire(self, blocking: bool = True, timeout: float = -1) -> bool: """Acquire a lock.""" @@ -448,13 +439,11 @@ def __init__(self, lock_factory: Union[Callable[[], Lockable], Type[asyncio.Lock self.c_time_source = time_source self.c_resource = lock_factory() self.c_lock_read_count = lock_factory() - super().__init__() class _aReader(Lockable): def __init__(self, p_RWLock: "RWLockReadD") -> None: self.c_rw_lock = p_RWLock self.v_locked: bool = False - super().__init__() async def acquire(self, blocking: bool = True, timeout: float = -1) -> bool: """Acquire a lock.""" @@ -494,7 +483,6 @@ class _aWriter(LockableD): def __init__(self, p_RWLock: "RWLockReadD") -> None: self.c_rw_lock = p_RWLock self.v_locked: bool = False - super().__init__() async def acquire(self, blocking: bool = True, timeout: float = -1) -> bool: """Acquire a lock.""" @@ -567,13 +555,11 @@ def __init__(self, lock_factory: Union[Callable[[], Lockable], Type[asyncio.Lock self.c_lock_read_entry = lock_factory() self.c_lock_read_try = lock_factory() self.c_resource = lock_factory() - super().__init__() class _aReader(Lockable): def __init__(self, p_RWLock: "RWLockWriteD") -> None: self.c_rw_lock = p_RWLock self.v_locked: bool = False - super().__init__() async def acquire(self, blocking: bool = True, timeout: float = -1) -> bool: """Acquire a lock.""" @@ -628,7 +614,6 @@ class _aWriter(LockableD): def __init__(self, p_RWLock: "RWLockWriteD") -> None: self.c_rw_lock = p_RWLock self.v_locked: bool = False - super().__init__() async def acquire(self, blocking: bool = True, timeout: float = -1) -> bool: """Acquire a lock.""" @@ -709,13 +694,11 @@ def __init__(self, lock_factory: Union[Callable[[], Lockable], Type[asyncio.Lock self.c_lock_read_count = lock_factory() self.c_lock_read = lock_factory() self.c_lock_write = lock_factory() - super().__init__() class _aReader(Lockable): def __init__(self, p_RWLock: "RWLockFairD") -> None: self.c_rw_lock = p_RWLock self.v_locked: bool = False - super().__init__() async def acquire(self, blocking: bool = True, timeout: float = -1) -> bool: """Acquire a lock.""" @@ -762,7 +745,6 @@ class _aWriter(LockableD): def __init__(self, p_RWLock: "RWLockFairD") -> None: self.c_rw_lock = p_RWLock self.v_locked: bool = False - super().__init__() async def acquire(self, blocking: bool = True, timeout: float = -1) -> bool: """Acquire a lock.""" diff --git a/setup.cfg b/setup.cfg index 0333f27..40fd28c 100644 --- a/setup.cfg +++ b/setup.cfg @@ -36,7 +36,8 @@ disable = unsubscriptable-object, invalid-name, bad-continuation, - duplicate-code + duplicate-code, + super-init-not-called indent-string='\t' include-naming-hint=yes overgeneral-exceptions=Exception