Skip to content

Commit

Permalink
drop python<=37 support
Browse files Browse the repository at this point in the history
Python 3.7 has been EOSed at 27 Jun 2023 (https://endoflife.date/python)
Filter all code over `pyupgrade --py38'.

Signed-off-by: Tomasz Kłoczko <[email protected]>
  • Loading branch information
kloczek committed Mar 17, 2024
1 parent 1b3898a commit d6f2d8c
Show file tree
Hide file tree
Showing 6 changed files with 13 additions and 25 deletions.
5 changes: 1 addition & 4 deletions src/attr/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,10 +98,7 @@ def __getattr__(name: str) -> str:
import sys
import warnings

if sys.version_info < (3, 8):
from importlib_metadata import metadata
else:
from importlib.metadata import metadata
from importlib.metadata import metadata

if name not in ("__version__", "__version_info__"):
warnings.warn(
Expand Down
8 changes: 1 addition & 7 deletions src/attr/_compat.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,7 @@
PY_3_13_PLUS = sys.version_info[:2] >= (3, 13)


if sys.version_info < (3, 8):
try:
from typing_extensions import Protocol
except ImportError: # pragma: no cover
Protocol = object
else:
from typing import Protocol # noqa: F401
from typing import Protocol # noqa: F401


class _AnnotationExtractor:
Expand Down
14 changes: 7 additions & 7 deletions src/attr/_make.py
Original file line number Diff line number Diff line change
Expand Up @@ -1979,9 +1979,9 @@ def _make_repr(attrs, ns, cls):
"self." + name if i else 'getattr(self, "' + name + '", NOTHING)'
)
fragment = (
"%s={%s!r}" % (name, accessor)
"{}={{{}!r}}".format(name, accessor)
if r == repr
else "%s={%s_repr(%s)}" % (name, name, accessor)
else "{}={{{}_repr({})}}".format(name, name, accessor)
)
attribute_fragments.append(fragment)
repr_fragment = ", ".join(attribute_fragments)
Expand Down Expand Up @@ -2208,7 +2208,7 @@ def _setattr_with_converter(attr_name, value_var, has_on_setattr):
Use the cached object.setattr to set *attr_name* to *value_var*, but run
its converter first.
"""
return "_setattr('%s', %s(%s))" % (
return "_setattr('{}', {}({}))".format(
attr_name,
_INIT_CONVERTER_PAT % (attr_name,),
value_var,
Expand All @@ -2234,7 +2234,7 @@ def _assign_with_converter(attr_name, value_var, has_on_setattr):
if has_on_setattr:
return _setattr_with_converter(attr_name, value_var, True)

return "self.%s = %s(%s)" % (
return "self.{} = {}({})".format(
attr_name,
_INIT_CONVERTER_PAT % (attr_name,),
value_var,
Expand Down Expand Up @@ -2267,7 +2267,7 @@ def fmt_setter_with_converter(attr_name, value_var, has_on_setattr):
attr_name, value_var, has_on_setattr
)

return "_inst_dict['%s'] = %s(%s)" % (
return "_inst_dict['{}'] = {}({})".format(
attr_name,
_INIT_CONVERTER_PAT % (attr_name,),
value_var,
Expand Down Expand Up @@ -2514,12 +2514,12 @@ def _attrs_to_init_script(
args = ", ".join(args)
pre_init_args = args
if kw_only_args:
args += "%s*, %s" % (
args += "{}*, {}".format(
", " if args else "", # leading comma
", ".join(kw_only_args), # kw_only args
)
pre_init_kw_only_args = ", ".join(
["%s=%s" % (kw_arg, kw_arg) for kw_arg in kw_only_args]
["{}={}".format(kw_arg, kw_arg) for kw_arg in kw_only_args]
)
pre_init_args += (
", " if pre_init_args else ""
Expand Down
5 changes: 1 addition & 4 deletions tests/test_packaging.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,7 @@
import attrs


if sys.version_info < (3, 8):
import importlib_metadata as metadata
else:
from importlib import metadata
from importlib import metadata


@pytest.fixture(name="mod", params=(attr, attrs))
Expand Down
4 changes: 2 additions & 2 deletions tests/test_slots.py
Original file line number Diff line number Diff line change
Expand Up @@ -597,7 +597,7 @@ class C:
field = attr.ib()

def f(self, a):
super(C, self).__init__() # noqa: UP008
super().__init__() # noqa: UP008

C(field=1)

Expand Down Expand Up @@ -685,7 +685,7 @@ def f(self):
class C(A):
@property
def f(self):
return super(C, self).f ** 2 # noqa: UP008
return super().f ** 2 # noqa: UP008

assert B(11).f == 121
assert B(17).f == 289
Expand Down
2 changes: 1 addition & 1 deletion tests/typing_example.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ class DD:

@attr.s
class EE:
y: "list[int]" = attr.ib()
y: list[int] = attr.ib()


@attr.s
Expand Down

0 comments on commit d6f2d8c

Please sign in to comment.