From f3362adf93eb439e0b9c997b7b8d182da4ed6cf4 Mon Sep 17 00:00:00 2001 From: Markus Volk Date: Mon, 21 Sep 2026 13:25:01 +0200 Subject: [PATCH] drop the six dependency six is a Python 2 compatibility shim and txdbus does not need it on Python 3: the iteritems/iterkeys/itervalues helpers are the dict methods, integer_types and string_types are int and str, byte2int is indexing the bytes object, six.next is next and six.moves.cStringIO is io.StringIO. Upstream-Status: Pending AI-Generated: Uses Claude Code (Claude Opus 5) --- setup.py | 2 +- txdbus/authentication.py | 3 +-- txdbus/client.py | 5 ++--- txdbus/interface.py | 7 +++---- txdbus/introspection.py | 4 ++-- txdbus/marshal.py | 14 ++++++-------- txdbus/objects.py | 11 +++++------ txdbus/protocol.py | 3 +-- txdbus/router.py | 3 +-- 9 files changed, 22 insertions(+), 30 deletions(-) diff --git a/setup.py b/setup.py index 784cd0f..d4d2758 100755 --- a/setup.py +++ b/setup.py @@ -21,7 +21,7 @@ setup( url='https://github.com/cocagne/txdbus', author='Tom Cocagne', author_email='tom.cocagne@gmail.com', - install_requires=['twisted>=10.1', 'six'], + install_requires=['twisted>=10.1'], provides=['txdbus'], packages=['txdbus'], keywords=['dbus', 'twisted'], diff --git a/txdbus/authentication.py b/txdbus/authentication.py index 656fecf..2b91e47 100644 --- a/txdbus/authentication.py +++ b/txdbus/authentication.py @@ -11,7 +11,6 @@ import os import os.path import time -import six from twisted.internet import interfaces from twisted.python import log from zope.interface import implementer, Interface @@ -557,7 +556,7 @@ class BusAuthenticator (object): self.state = None self.current_mech = None - for n, m in six.iteritems(self.authenticators): + for n, m in self.authenticators.items(): self.mechanisms[n] = m mechNames = self.authenticators.keys() diff --git a/txdbus/client.py b/txdbus/client.py index 986da6c..53b4a25 100644 --- a/txdbus/client.py +++ b/txdbus/client.py @@ -7,7 +7,6 @@ methods over the DBus bus. @author: Tom Cocagne """ -import six from twisted.internet import defer, reactor from twisted.internet.error import ConnectError from twisted.internet.protocol import Factory @@ -472,7 +471,7 @@ class DBusClientConnection (txdbus.protocol.BasicDBusProtocol): return None # if not ( - # isinstance(msg.body[0], six.string_types) and + # isinstance(msg.body[0], str) and # msg.body[0].startswith('' % (self.name,)) - k = sorted(six.iterkeys(self.methods)) + k = sorted(self.methods) for m in (self.methods[a] for a in k): l.append(' ' % (m.name,)) for arg_sig in marshal.genCompleteTypes(m.sigIn): @@ -225,14 +224,14 @@ class DBusInterface (object): (arg_sig,)) l.append(' ') - k = sorted(six.iterkeys(self.signals)) + k = sorted(self.signals) for s in (self.signals[a] for a in k): l.append(' ' % (s.name,)) for arg_sig in marshal.genCompleteTypes(s.sig): l.append(' ' % (arg_sig,)) l.append(' ') - k = list(six.iterkeys(self.properties)) + k = list(self.properties) k.sort() for p in (self.properties[a] for a in k): l.append( diff --git a/txdbus/introspection.py b/txdbus/introspection.py index 099a74b..b8a85cc 100644 --- a/txdbus/introspection.py +++ b/txdbus/introspection.py @@ -6,7 +6,7 @@ Provides support for DBus introspection import xml.sax import xml.sax.handler -from six.moves import cStringIO +from io import StringIO from txdbus import interface @@ -96,7 +96,7 @@ def getInterfacesFromXML(xmlStr, replaceKnownInterfaces=False): p.setFeature(xml.sax.handler.feature_validation, False) p.setFeature(xml.sax.handler.feature_external_ges, False) p.setContentHandler(handler) - p.parse(cStringIO(xmlStr)) + p.parse(StringIO(xmlStr)) return handler.interfaces diff --git a/txdbus/marshal.py b/txdbus/marshal.py index 1867e0b..ac49f15 100644 --- a/txdbus/marshal.py +++ b/txdbus/marshal.py @@ -8,8 +8,6 @@ import codecs import re import struct -import six - from txdbus.error import MarshallingError @@ -262,11 +260,11 @@ def sigFromPy(pobj): return 'b' elif isinstance(pobj, int): return 'i' - elif isinstance(pobj, six.integer_types): + elif isinstance(pobj, int): return 'x' elif isinstance(pobj, float): return 'd' - elif isinstance(pobj, six.string_types): + elif isinstance(pobj, str): return 's' elif isinstance(pobj, bytearray): return 'ay' @@ -288,7 +286,7 @@ def sigFromPy(pobj): elif isinstance(pobj, dict): same = True vtype = None - for k, v in six.iteritems(pobj): + for k, v in pobj.items(): if vtype is None: vtype = type(v) elif not isinstance(v, vtype): @@ -376,7 +374,7 @@ def genCompleteTypes(compoundSig): elif c == 'a': g = genCompleteTypes(compoundSig[i + 1:]) - ct = six.next(g) + ct = next(g) i += len(ct) yield 'a' + ct @@ -468,7 +466,7 @@ def marshal_unix_fd(ct, var, start_byte, lendian, oobFDs): # 3 - terminating nul byte # def marshal_string(ct, var, start_byte, lendian, oobFDs): - if not isinstance(var, six.string_types): + if not isinstance(var, str): raise MarshallingError('Required string. Received: ' + repr(var)) if var.find('\0') != -1: raise MarshallingError( @@ -525,7 +523,7 @@ def marshal_array(ct, var, start_byte, lendian, oobFDs): if isinstance(var, (list, tuple, bytearray)): arr_list = var elif isinstance(var, dict): - arr_list = [tpl for tpl in six.iteritems(var)] + arr_list = [tpl for tpl in var.items()] else: raise MarshallingError( 'List, Tuple, Bytearray, or Dictionary required for DBus array. ' diff --git a/txdbus/objects.py b/txdbus/objects.py index 69d3a3e..e2e7523 100644 --- a/txdbus/objects.py +++ b/txdbus/objects.py @@ -7,7 +7,6 @@ DBus objects import inspect import weakref -import six from twisted.internet import defer from zope.interface import implementer, Interface @@ -400,7 +399,7 @@ class DBusObject (object): cache = {} - for name, obj in six.iteritems(base.__dict__): + for name, obj in base.__dict__.items(): self._cacheInterfaces(base, cache, name, obj) base._dbusIfaceCache = cache @@ -449,7 +448,7 @@ class DBusObject (object): if key in d: return d[key] else: - for ic in six.itervalues(cache): + for ic in cache.values(): d = getattr(ic, cacheAttr) if key in d: return d[key] @@ -588,14 +587,14 @@ class DBusObject (object): ifc = cache.get(interfaceName, None) if ifc: - for p in six.itervalues(ifc.properties): + for p in ifc.properties.values(): addp(p) break else: for cache in self._iterIFaceCaches(): - for ifc in six.itervalues(cache): - for p in six.itervalues(ifc.properties): + for ifc in cache.values(): + for p in ifc.properties.values(): addp(p) return r diff --git a/txdbus/protocol.py b/txdbus/protocol.py index 7e6ed8a..1c05f11 100644 --- a/txdbus/protocol.py +++ b/txdbus/protocol.py @@ -6,7 +6,6 @@ This module implements the wire-level DBus protocol. import os.path import struct -import six from twisted.internet import interfaces, protocol from twisted.python import log from zope.interface import implementer, Interface @@ -144,7 +143,7 @@ class BasicDBusProtocol(protocol.Protocol): self.dataReceived(b'') else: if not self._client and self._firstByte: - if six.byte2int(data) != 0: + if data[0] != 0: self.transport.loseConnection() return self._firstByte = False diff --git a/txdbus/router.py b/txdbus/router.py index a5f8e44..2a7e732 100644 --- a/txdbus/router.py +++ b/txdbus/router.py @@ -4,7 +4,6 @@ to interested connections. @author: Tom Cocagne """ -import six from twisted.python import log # XXX Replace this simple, inefficient implementation with something a bit @@ -124,5 +123,5 @@ class MessageRouter (object): def routeMessage(self, m): # print 'ROUTING MSG', m.interface, m.member - for r in six.itervalues(self._rules): + for r in self._rules.values(): r.match(m)