[PATCH] Drop python2 support and the dependency on python-six

Maurizio Lombardi mlombard at arkamax.eu
Wed Jul 1 05:36:15 PDT 2026


Christoph? This patch is intended for nvmetcli.

What do you think about it? Python3 is now the default on all major
distros, AFAIK.

Can we drop the python-six dependency?

Maurizio

On Tue Jun 23, 2026 at 2:24 PM CEST, Tomas Hrnciar wrote:
> Hi,
>
> I'd like to propose a patch which removes support for Python 2 and
> drops the dependency on python-six. Python 2 has been EOL since
> January 2020 and we are trying to remove python-six from distribution.
> This patch drops the remaining six usage.
>
> Thanks,
> Tomáš Hrnčiar
> ---
>  README                 | 3 ---
>  nvmet/nvme.py          | 7 +++----
>  rpm/nvmetcli.spec.tmpl | 2 +-
>  3 files changed, 4 insertions(+), 8 deletions(-)
>
> diff --git a/README b/README
> index 6ebe666..7df25f1 100644
> --- a/README
> +++ b/README
> @@ -14,9 +14,6 @@ using setup.py.
>
>  Common Package Dependencies and Problems
>  -----------------------------------------
> -Both python2 and python3 are supported via use of the 'python-six'
> -package.
> -
>  nvmetcli uses the 'pyparsing' package -- running nvmetcli without this
>  package may produce hard-to-decipher errors.
>
> diff --git a/nvmet/nvme.py b/nvmet/nvme.py
> index 59efdb5..4c63eb1 100644
> --- a/nvmet/nvme.py
> +++ b/nvmet/nvme.py
> @@ -23,7 +23,6 @@ import stat
>  import uuid
>  import json
>  from glob import iglob as glob
> -from six import iteritems, moves
>
>  DEFAULT_SAVE_FILE = '/etc/nvmet/config.json'
>
> @@ -220,7 +219,7 @@ class CFSNode(object):
>
>      def _setup_attrs(self, attr_dict, err_func):
>          for group in self.attr_groups:
> -            for name, value in iteritems(attr_dict.get(group, {})):
> +            for name, value in attr_dict.get(group, {}).items():
>                  try:
>                      self.set_attr(group, name, value)
>                  except CFSError as e:
> @@ -556,7 +555,7 @@ class Namespace(CFSNode):
>                  raise CFSError("Need NSID for lookup")
>
>              nsids = [n.nsid for n in subsystem.namespaces]
> -            for index in moves.xrange(1, self.MAX_NSID + 1):
> +            for index in range(1, self.MAX_NSID + 1):
>                  if index not in nsids:
>                      nsid = index
>                      break
> @@ -816,7 +815,7 @@ class ANAGroup(CFSNode):
>                  raise CFSError("Need grpid for lookup")
>
>              grpids = [n.grpid for n in port.ana_groups]
> -            for index in moves.xrange(2, self.MAX_GRPID + 1):
> +            for index in range(2, self.MAX_GRPID + 1):
>                  if index not in grpids:
>                      grpid = index
>                      break
> diff --git a/rpm/nvmetcli.spec.tmpl b/rpm/nvmetcli.spec.tmpl
> index f1b5533..ce454a2 100644
> --- a/rpm/nvmetcli.spec.tmpl
> +++ b/rpm/nvmetcli.spec.tmpl
> @@ -9,7 +9,7 @@ Source:         nvmetcli-%{version}.tar.gz
>  BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-rpmroot
>  BuildArch:      noarch
>  BuildRequires:  python-devel python-setuptools systemd-units
> -Requires:    python-configshell python-kmod python-six
> +Requires:    python-configshell python-kmod
>  Requires(post): systemd
>  Requires(preun): systemd
>  Requires(postun): systemd




More information about the Linux-nvme mailing list