You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by jd...@apache.org on 2023/04/10 20:49:25 UTC

[qpid-python] branch main updated: QPID-8631: use the `in` operator for collection membership checks (#13)

This is an automated email from the ASF dual-hosted git repository.

jdanek pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/qpid-python.git


The following commit(s) were added to refs/heads/main by this push:
     new 9a45701  QPID-8631: use the `in` operator for collection membership checks (#13)
9a45701 is described below

commit 9a457018654d7bcd6e6304d1dbd74c2d52adb715
Author: Jiri Daněk <jd...@redhat.com>
AuthorDate: Mon Apr 10 22:49:20 2023 +0200

    QPID-8631: use the `in` operator for collection membership checks (#13)
    
    ```
    python-modernize -wnf fissix.fixes.fix_has_key
    ```
---
 qpid/__init__.py                 |  4 ++--
 qpid/client.py                   |  6 +++---
 qpid/codec.py                    |  6 +++---
 qpid/codec010.py                 |  6 +++---
 qpid/connection.py               |  2 +-
 qpid/connection08.py             |  4 ++--
 qpid/datatypes.py                |  4 ++--
 qpid/framing.py                  |  4 ++--
 qpid/message.py                  |  4 ++--
 qpid/messaging/driver.py         |  4 ++--
 qpid/messaging/endpoints.py      |  2 +-
 qpid/ops.py                      |  4 ++--
 qpid/spec08.py                   | 18 +++++++++---------
 qpid/tests/framing.py            |  2 +-
 qpid/tests/messaging/__init__.py |  2 +-
 15 files changed, 36 insertions(+), 36 deletions(-)

diff --git a/qpid/__init__.py b/qpid/__init__.py
index 780cab4..98c42c3 100644
--- a/qpid/__init__.py
+++ b/qpid/__init__.py
@@ -41,11 +41,11 @@ class Struct:
     return field
 
   def exists(self, attr):
-    return self.type.fields.byname.has_key(attr)
+    return attr in self.type.fields.byname
 
   def has(self, attr):
     self._check(attr)
-    return self._values.has_key(attr)
+    return attr in self._values
 
   def set(self, attr, value):
     self._check(attr)
diff --git a/qpid/client.py b/qpid/client.py
index b147062..b4dba9e 100644
--- a/qpid/client.py
+++ b/qpid/client.py
@@ -122,7 +122,7 @@ class Client:
     try:
       id = None
       for i in range(1, 64*1024):
-        if not self.sessions.has_key(i):
+        if i not in self.sessions:
           id = i
           break
     finally:
@@ -257,9 +257,9 @@ class StructFactory:
     self.factories = {}
 
   def __getattr__(self, name):
-    if self.factories.has_key(name):
+    if name in self.factories:
       return self.factories[name]
-    elif self.spec.domains.byname.has_key(name):
+    elif name in self.spec.domains.byname:
       f = lambda *args, **kwargs: self.struct(name, *args, **kwargs)
       self.factories[name] = f
       return f
diff --git a/qpid/codec.py b/qpid/codec.py
index a4c5424..8f9d374 100644
--- a/qpid/codec.py
+++ b/qpid/codec.py
@@ -131,7 +131,7 @@ class Codec:
         return "signed_long"
       else:
         raise ValueError('Integer value is outwith the supported 64bit signed range')
-    if self.encodings.has_key(klass):
+    if klass in self.encodings:
       return self.encodings[klass]
     for base in klass.__bases__:
       result = self.resolve(base, value)
@@ -461,7 +461,7 @@ class Codec:
       log.debug("Field table entry key: %r", key)
       code = self.decode_octet()
       log.debug("Field table entry type code: %r", code)
-      if self.types.has_key(code):
+      if code in self.types:
         value = self.decode(self.types[code])
       else:
         w = width(code)
@@ -649,7 +649,7 @@ class Codec:
     count = self.decode_long()
     result = []
     for i in range(0, count):
-      if self.types.has_key(code):
+      if code in self.types:
         value = self.decode(self.types[code])
       else:
         w = width(code)
diff --git a/qpid/codec010.py b/qpid/codec010.py
index f4dc60f..78cd592 100644
--- a/qpid/codec010.py
+++ b/qpid/codec010.py
@@ -60,7 +60,7 @@ class Codec(Packer):
     return PRIMITIVE[enc]
 
   def _encoding(self, klass, obj):
-    if self.ENCODINGS.has_key(klass):
+    if klass in self.ENCODINGS:
       return self.ENCODINGS[klass](obj)
     for base in klass.__bases__:
       result = self._encoding(base, obj)
@@ -339,7 +339,7 @@ class Codec(Packer):
     for i in range(len(op.FIELDS)):
       f = op.FIELDS[i]
       if flags & (0x1 << i):
-        if COMPOUND.has_key(f.type):
+        if f.type in COMPOUND:
           value = self.read_compound(COMPOUND[f.type])
         else:
           value = getattr(self, "read_%s" % f.type)()
@@ -360,7 +360,7 @@ class Codec(Packer):
     for i in range(len(op.FIELDS)):
       f = op.FIELDS[i]
       if flags & (0x1 << i):
-        if COMPOUND.has_key(f.type):
+        if f.type in COMPOUND:
           enc = self.write_compound
         else:
           enc = getattr(self, "write_%s" % f.type)
diff --git a/qpid/connection.py b/qpid/connection.py
index 8d5f037..65c8ed7 100644
--- a/qpid/connection.py
+++ b/qpid/connection.py
@@ -112,7 +112,7 @@ class Connection(Framer):
 
   def __channel(self):
     for i in range(1, self.channel_max):
-      if not self.attached.has_key(i):
+      if i not in self.attached:
         return i
     else:
       raise ChannelsBusy()
diff --git a/qpid/connection08.py b/qpid/connection08.py
index 2c4fc91..23f75a2 100644
--- a/qpid/connection08.py
+++ b/qpid/connection08.py
@@ -310,10 +310,10 @@ class Frame:
 
     def __new__(cls, name, bases, dict):
       for attr in ("encode", "decode", "type"):
-        if not dict.has_key(attr):
+        if attr not in dict:
           raise TypeError("%s must define %s" % (name, attr))
       dict["decode"] = staticmethod(dict["decode"])
-      if dict.has_key("__init__"):
+      if "__init__" in dict:
         __init__ = dict["__init__"]
         def init(self, *args, **kwargs):
           args = list(args)
diff --git a/qpid/datatypes.py b/qpid/datatypes.py
index 06528a5..2f8a5d3 100644
--- a/qpid/datatypes.py
+++ b/qpid/datatypes.py
@@ -33,10 +33,10 @@ class Struct:
     for field in _type.fields:
       if idx < len(args):
         arg = args[idx]
-        if kwargs.has_key(field.name):
+        if field.name in kwargs:
           raise TypeError("%s() got multiple values for keyword argument '%s'" %
                           (_type.name, field.name))
-      elif kwargs.has_key(field.name):
+      elif field.name in kwargs:
         arg = kwargs.pop(field.name)
       else:
         arg = field.default()
diff --git a/qpid/framing.py b/qpid/framing.py
index 389b607..96af231 100644
--- a/qpid/framing.py
+++ b/qpid/framing.py
@@ -208,11 +208,11 @@ class OpEncoder:
 
   def write(self, *ops):
     for op in ops:
-      if COMMANDS.has_key(op.NAME):
+      if op.NAME in COMMANDS:
         seg_type = segment_type.command
         seg_track = track.command
         enc = self.encode_command(op)
-      elif CONTROLS.has_key(op.NAME):
+      elif op.NAME in CONTROLS:
         seg_type = segment_type.control
         seg_track = track.control
         enc = self.encode_compound(op)
diff --git a/qpid/message.py b/qpid/message.py
index 4d31da2..85de440 100644
--- a/qpid/message.py
+++ b/qpid/message.py
@@ -43,7 +43,7 @@ class Message:
 
   def __getattr__(self, attr):
     fields = self.method.fields.byname
-    if fields.has_key(attr):
+    if attr in fields:
       f = fields[attr]
       result = self[self.method.fields.index(f)]
     else:
@@ -51,7 +51,7 @@ class Message:
         if attr == r.name:
           def respond(*args, **kwargs):
             batch=0
-            if kwargs.has_key("batchoffset"):
+            if "batchoffset" in kwargs:
               batch=kwargs.pop("batchoffset")
             self.channel.respond(Method(r, r.arguments(*args, **kwargs)), batch, self.frame)
           result = respond
diff --git a/qpid/messaging/driver.py b/qpid/messaging/driver.py
index 2ca20b3..e6f7749 100644
--- a/qpid/messaging/driver.py
+++ b/qpid/messaging/driver.py
@@ -820,7 +820,7 @@ class Engine:
 
     if not sc.commands.empty():
       while sst.min_completion in sc.commands:
-        if sst.actions.has_key(sst.min_completion):
+        if sst.min_completion in sst.actions:
           sst.actions.pop(sst.min_completion)()
         sst.min_completion += 1
 
@@ -895,7 +895,7 @@ class Engine:
     sst = self._attachments.get(ssn)
     if sst is None:
       for i in range(0, self.channel_max):
-        if not self._sessions.has_key(i):
+        if i not in self._sessions:
           ch = i
           break
       else:
diff --git a/qpid/messaging/endpoints.py b/qpid/messaging/endpoints.py
index d2a19d9..55ee1d1 100644
--- a/qpid/messaging/endpoints.py
+++ b/qpid/messaging/endpoints.py
@@ -298,7 +298,7 @@ class Connection(Endpoint):
     else:
       name = "%s:%s" % (self.id, name)
 
-    if self.sessions.has_key(name):
+    if name in self.sessions:
       return self.sessions[name]
     else:
       ssn = Session(self, name, transactional)
diff --git a/qpid/ops.py b/qpid/ops.py
index 2b07836..acaadb1 100644
--- a/qpid/ops.py
+++ b/qpid/ops.py
@@ -226,8 +226,8 @@ def qualify(nd, field="@name"):
 def resolve(nd, domains):
   candidates = qualify(nd, "@type"), pythonize(nd["@type"])
   for c in candidates:
-    if domains.has_key(c):
-      while domains.has_key(c):
+    if c in domains:
+      while c in domains:
         c = domains[c]
       return c
   else:
diff --git a/qpid/spec08.py b/qpid/spec08.py
index 64ebdd6..d027720 100644
--- a/qpid/spec08.py
+++ b/qpid/spec08.py
@@ -42,11 +42,11 @@ class SpecContainer:
     self.indexes = {}
 
   def add(self, item):
-    if self.byname.has_key(item.name):
+    if item.name in self.byname:
       raise ValueError("duplicate name: %s" % item)
     if item.id == None:
       item.id = len(self)
-    elif self.byid.has_key(item.id):
+    elif item.id in self.byid:
       raise ValueError("duplicate id: %s" % item)
     self.indexes[item] = len(self.items)
     self.items.append(item)
@@ -101,12 +101,12 @@ class Spec(Metadata):
     self.klass = self.define_class("Amqp%s%s" % (self.major, self.minor))
 
   def method(self, name):
-    if not self.methods.has_key(name):
+    if name not in self.methods:
       for cls in self.classes:
         clen = len(cls.name)
         if name.startswith(cls.name) and name[clen] == "_":
           end = name[clen + 1:]
-          if cls.methods.byname.has_key(end):
+          if end in cls.methods.byname:
             self.methods[name] = cls.methods.byname[end]
     return self.methods.get(name)
 
@@ -226,12 +226,12 @@ class Method(Metadata):
       idx = self.fields.index(f)
       if idx < len(args):
         result.append(args[idx])
-      elif kwargs.has_key(f.name):
+      elif f.name in kwargs:
         result.append(kwargs.pop(f.name))
       else:
         result.append(Method.DEFAULTS[f.type])
     for key, value in kwargs.items():
-      if self.fields.byname.has_key(key):
+      if key in self.fields.byname:
         self._type_error("got multiple values for keyword argument '%s'", key)
       else:
         self._type_error("got an unexpected keyword argument '%s'", key)
@@ -352,7 +352,7 @@ def load_fields(nd, l, domains):
       type = f_nd["@type"]
     type = pythonize(type)
     domain = None
-    while domains.has_key(type) and domains[type].type != type:
+    while type in domains and domains[type].type != type:
       domain = domains[type]
       type = domain.type
     l.add(Field(pythonize(f_nd["@name"]), f_nd.index(), type, domain,
@@ -403,7 +403,7 @@ def load(specfile, *errata):
     # classes
     for c_nd in root.query["class"]:
       cname = pythonize(c_nd["@name"])
-      if spec.classes.byname.has_key(cname):
+      if cname in spec.classes.byname:
         klass = spec.classes.byname[cname]
       else:
         klass = Class(spec, cname, int(c_nd["@index"]), c_nd["@handler"],
@@ -414,7 +414,7 @@ def load(specfile, *errata):
       load_fields(c_nd, klass.fields, spec.domains.byname)
       for m_nd in c_nd.query["method"]:
         mname = pythonize(m_nd["@name"])
-        if klass.methods.byname.has_key(mname):
+        if mname in klass.methods.byname:
           meth = klass.methods.byname[mname]
         else:
           meth = Method(klass, mname,
diff --git a/qpid/tests/framing.py b/qpid/tests/framing.py
index 0b33df8..c421513 100644
--- a/qpid/tests/framing.py
+++ b/qpid/tests/framing.py
@@ -65,7 +65,7 @@ class Base(Test):
     for f in cls.FIELDS:
       v1 = getattr(op1, f.name)
       v2 = getattr(op2, f.name)
-      if COMPOUND.has_key(f.type) or f.type == "struct32":
+      if f.type in COMPOUND or f.type == "struct32":
         self.cmp_ops(v1, v2)
       elif f.type in ("list", "array"):
         self.cmp_list(v1, v2)
diff --git a/qpid/tests/messaging/__init__.py b/qpid/tests/messaging/__init__.py
index dd86d9f..45d7eb8 100644
--- a/qpid/tests/messaging/__init__.py
+++ b/qpid/tests/messaging/__init__.py
@@ -125,7 +125,7 @@ class Base(Test):
       if redelivered:
         assert echo.redelivered, \
             "expected %s to be redelivered: %s" % (msg, echo)
-        if delta.has_key("redelivered"):
+        if "redelivered" in delta:
           del delta["redelivered"]
       assert mttl is not None and ettl is not None, "%s, %s" % (mttl, ettl)
       assert mttl >= ettl, "%s, %s" % (mttl, ettl)


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org