[PATCH] Remove requirement on python-six.

Anne Mulhern amulhern at redhat.com
Fri Sep 5 20:00:10 UTC 2014





----- Original Message -----
> From: "David Lehman" <dlehman at redhat.com>
> To: anaconda-patches at lists.fedorahosted.org
> Sent: Friday, September 5, 2014 10:16:49 AM
> Subject: [PATCH] Remove requirement on python-six.
> 
> Related: rhbz#1075561
> ---
>  blivet/devicelibs/raid.py        |  6 ++----
>  blivet/devices.py                |  7 +++----
>  blivet/formats/fs.py             |  5 -----
>  blivet/formats/fslabel.py        |  4 +---
>  blivet/formats/fslabeling.py     |  4 +---
>  blivet/size.py                   | 22 ++++++----------------
>  blivet/util.py                   |  4 +---
>  python-blivet.spec               |  1 -
>  tests/formats_test/fslabeling.py |  3 +--
>  tests/size_test.py               |  5 -----
>  10 files changed, 15 insertions(+), 46 deletions(-)
> 
> diff --git a/blivet/devicelibs/raid.py b/blivet/devicelibs/raid.py
> index 50d19dc..f2facec 100644
> --- a/blivet/devicelibs/raid.py
> +++ b/blivet/devicelibs/raid.py
> @@ -23,8 +23,6 @@
>  
>  import abc
>  
> -from six import add_metaclass
> -
>  from ..errors import RaidError
>  
>  def div_up(a,b):
> @@ -35,7 +33,6 @@ def div_up(a,b):
>      """
>      return (a + (b - 1))//b
>  
> - at add_metaclass(abc.ABCMeta)
>  class RAIDLevel(object):
>      """An abstract class which is the parent of all classes which represent
>         a RAID level.
> @@ -43,6 +40,7 @@ class RAIDLevel(object):
>         It ensures that RAIDLevel objects will really be singleton objects
>         by overriding copy methods.
>      """
> +    __metaclass__ = abc.ABCMeta
>  
>      name = abc.abstractproperty(doc="The canonical name for this level")
>      names = abc.abstractproperty(doc="List of recognized names for this
>      level.")
> @@ -65,7 +63,6 @@ class RAIDLevel(object):
>          return self
>  
>  
> - at add_metaclass(abc.ABCMeta)
>  class RAIDn(RAIDLevel):
>  
>      """An abstract class which is the parent of classes which represent a
> @@ -92,6 +89,7 @@ class RAIDn(RAIDLevel):
>          singleton object of the class.
>      """
>  
> +    __metaclass__ = abc.ABCMeta
>  
>      # ABSTRACT PROPERTIES
>      level = abc.abstractproperty(doc="A code representing the level")
> diff --git a/blivet/devices.py b/blivet/devices.py
> index c3da7f6..d585023 100644
> --- a/blivet/devices.py
> +++ b/blivet/devices.py
> @@ -28,8 +28,6 @@ import abc
>  from decimal import Decimal
>  import re
>  
> -from six import add_metaclass
> -
>  # device backend modules
>  from .devicelibs import mdraid
>  from .devicelibs import lvm
> @@ -2240,7 +2238,6 @@ class LUKSDevice(DMCryptDevice):
>          data.encrypted = True
>          super(LUKSDevice, self).populateKSData(data)
>  
> - at add_metaclass(abc.ABCMeta)
>  class ContainerDevice(StorageDevice):
>      """ A device that aggregates a set of member devices.
>  
> @@ -2257,6 +2254,7 @@ class ContainerDevice(StorageDevice):
>          within :meth:`.deviceaction.ActionAddMember.execute` and
>          :meth:`.deviceaction.ActionRemoveMember.execute`.
>      """
> +    __metaclass__ = abc.ABCMeta
>  
>      _formatClassName = abc.abstractproperty(lambda s: None,
>          doc="The type of member devices' required format")
> @@ -3131,7 +3129,6 @@ class LVMLogicalVolumeDevice(DMDevice):
>  
>          return True
>  
> - at add_metaclass(abc.ABCMeta)
>  class LVMSnapShotBase(object):
>      """ Abstract base class for lvm snapshots
>  
> @@ -3148,6 +3145,8 @@ class LVMSnapShotBase(object):
>          It is also impossible to set the format for a snapshot explicitly as
>          it
>          always has the same format as its origin.
>      """
> +    __metaclass__ = abc.ABCMeta
> +
>      _type = "lvmsnapshotbase"
>  
>      def __init__(self, origin=None, vorigin=False, exists=False):
> diff --git a/blivet/formats/fs.py b/blivet/formats/fs.py
> index 06d12d5..7305106 100644
> --- a/blivet/formats/fs.py
> +++ b/blivet/formats/fs.py
> @@ -25,7 +25,6 @@
>  from decimal import Decimal
>  import os
>  import tempfile
> -import six
>  
>  from . import fslabeling
>  from ..errors import FormatCreateError, FSError, FSResizeError
> @@ -43,10 +42,6 @@ from .. import udev
>  import logging
>  log = logging.getLogger("blivet")
>  
> -if six.PY3:
> -    long = int # pylint: disable=redefined-builtin
> -
> -
>  fs_configs = {}
>  
>  kernel_filesystems = []
> diff --git a/blivet/formats/fslabel.py b/blivet/formats/fslabel.py
> index 2c6fce2..2d35f61 100644
> --- a/blivet/formats/fslabel.py
> +++ b/blivet/formats/fslabel.py
> @@ -22,15 +22,13 @@
>  import abc
>  import re
>  
> -from six import add_metaclass
> -
>  from .. import errors
>  
> - at add_metaclass(abc.ABCMeta)
>  class FSLabelApp(object):
>      """An abstract class that represents actions associated with a
>         filesystem's labeling application.
>      """
> +    __metaclass__ = abc.ABCMeta
>  
>      name = abc.abstractproperty(
>         doc="The name of the filesystem labeling application.")
> diff --git a/blivet/formats/fslabeling.py b/blivet/formats/fslabeling.py
> index f8d7b42..bdd78d0 100644
> --- a/blivet/formats/fslabeling.py
> +++ b/blivet/formats/fslabeling.py
> @@ -21,14 +21,12 @@
>  
>  import abc
>  
> -from six import add_metaclass
> -
>  from . import fslabel
>  
> - at add_metaclass(abc.ABCMeta)
>  class FSLabeling(object):
>      """An abstract class that represents filesystem labeling actions.
>      """
> +    __metaclass__ = abc.ABCMeta
>  
>      default_label = abc.abstractproperty(
>         doc="Default label set on this filesystem at creation.")
> diff --git a/blivet/size.py b/blivet/size.py
> index b9f0089..4dbe0ab 100644
> --- a/blivet/size.py
> +++ b/blivet/size.py
> @@ -27,7 +27,6 @@ from collections import namedtuple
>  from decimal import Decimal
>  from decimal import InvalidOperation
>  from decimal import ROUND_DOWN
> -import six
>  
>  from .errors import SizePlacesError
>  from .i18n import _, P_, N_
> @@ -135,14 +134,9 @@ def _parseSpec(spec):
>      try:
>          # This will raise UnicodeDecodeError if specifier contains non-ascii
>          # characters
> -        if six.PY2:
> -            spec_ascii = specifier.decode("ascii")
> -            # Convert back to a str type to match the _bytes and _prefixes
> arrays
> -            spec_ascii = str(spec_ascii)
> -        else:
> -            # This will raise UnicodeEncodeError if specifier contains any
> non-ascii
> -            # in Python3 `bytes` are new Python2 `str`
> -            spec_ascii = bytes(specifier, 'ascii')
> +        spec_ascii = specifier.decode("ascii")
> +        # Convert back to a str type to match the _bytes and _prefixes
> arrays
> +        spec_ascii = str(spec_ascii)
>  
>          # Use the ASCII-only lowercase mapping
>          spec_ascii = _lowerASCII(spec_ascii)
> @@ -163,11 +157,7 @@ def _parseSpec(spec):
>  
>      # No English match found, try localized size specs. Accept any utf-8
>      # character and leave the result as a (unicode object.
> -    if six.PY2:
> -        spec_local = specifier.decode("utf-8")
> -    else:
> -        # str = unicode in Python3
> -        spec_local = specifier
> +    spec_local = specifier.decode("utf-8")
>  
>      # Use the locale-specific lowercasing
>      spec_local = spec_local.lower()
> @@ -209,9 +199,9 @@ class Size(Decimal):
>              If you want to use a spec value to represent a bytes value,
>              you can use the letter 'b' or 'B' or omit the size specifier.
>          """
> -        if isinstance(value, (six.string_types, bytes)):
> +        if isinstance(value, (unicode, str)):
>              size = _parseSpec(value)
> -        elif isinstance(value, (six.integer_types, float, Decimal)):
> +        elif isinstance(value, (int, long, float, Decimal)):
>              size = Decimal(value)
>          elif isinstance(value, Size):
>              size = Decimal(value.convertTo("b"))
> diff --git a/blivet/util.py b/blivet/util.py
> index 1e28ddc..52e798e 100644
> --- a/blivet/util.py
> +++ b/blivet/util.py
> @@ -10,8 +10,6 @@ import sys
>  import tempfile
>  from decimal import Decimal
>  
> -import six
> -
>  from .size import Size
>  
>  import logging
> @@ -324,7 +322,7 @@ def numeric_type(num):
>      """
>      if num is None:
>          num = 0
> -    elif not isinstance(num, (six.integer_types, float, Size, Decimal)):
> +    elif not isinstance(num, (int, long, float, Size, Decimal)):
>          raise ValueError("value (%s) must be either a number or None" % num)
>  
>      return num
> diff --git a/python-blivet.spec b/python-blivet.spec
> index abbbb0f..c82aeba 100644
> --- a/python-blivet.spec
> +++ b/python-blivet.spec
> @@ -25,7 +25,6 @@ BuildRequires: gettext
>  BuildRequires: python-setuptools
>  
>  Requires: python
> -Requires: python-six
>  Requires: pykickstart >= %{pykickstartver}
>  Requires: util-linux >= %{utillinuxver}
>  Requires: parted >= %{partedver}
> diff --git a/tests/formats_test/fslabeling.py
> b/tests/formats_test/fslabeling.py
> index 22d74ee..a878409 100644
> --- a/tests/formats_test/fslabeling.py
> +++ b/tests/formats_test/fslabeling.py
> @@ -1,18 +1,17 @@
>  #!/usr/bin/python
>  
>  import abc
> -from six import add_metaclass
>  
>  from tests import loopbackedtestcase
>  from blivet.errors import FSError
>  
> - at add_metaclass(abc.ABCMeta)
>  class LabelingAsRoot(loopbackedtestcase.LoopBackedTestCase):
>      """Tests various aspects of labeling a filesystem where there
>         is no easy way to read the filesystem's label once it has been
>         set and where the filesystem can not be relabeled.
>      """
>  
> +    __metaclass__ = abc.ABCMeta
>  
>      _fs_class = abc.abstractproperty(
>         doc="The class of the filesystem being tested on.")
> diff --git a/tests/size_test.py b/tests/size_test.py
> index e2288e0..289394d 100644
> --- a/tests/size_test.py
> +++ b/tests/size_test.py
> @@ -23,14 +23,9 @@
>  
>  import unittest
>  
> -import six
> -
>  from blivet.errors import SizePlacesError
>  from blivet.size import Size, _prefixes
>  
> -if six.PY3:
> -    long = int # pylint: disable=redefined-builtin
> -
>  class SizeTestCase(unittest.TestCase):
>      def testExceptions(self):
>          zero = Size(0)
> --
> 1.9.3
> 
> _______________________________________________
> anaconda-patches mailing list
> anaconda-patches at lists.fedorahosted.org
> https://lists.fedorahosted.org/mailman/listinfo/anaconda-patches
> 

Ack.

- mulhern


More information about the anaconda-patches mailing list