From 6fa3092435934c0ee7ce044c90277fdcf37faf32 Mon Sep 17 00:00:00 2001 From: David Bold Date: Wed, 12 Jul 2023 09:57:01 +0200 Subject: [PATCH 1/2] Return dict instead of OrderedDict dict is guaranteed to preserver order in all supported versions --- .../convert-version-into-different-types.rst | 2 +- docs/usage/create-a-version.rst | 2 +- src/semver/version.py | 24 ++++++++----------- 3 files changed, 12 insertions(+), 16 deletions(-) diff --git a/docs/usage/convert-version-into-different-types.rst b/docs/usage/convert-version-into-different-types.rst index 6948438c..6a447d0d 100644 --- a/docs/usage/convert-version-into-different-types.rst +++ b/docs/usage/convert-version-into-different-types.rst @@ -17,7 +17,7 @@ It is possible to convert a :class:`~semver.version.Version` instance: >>> v = Version(major=3, minor=4, patch=5) >>> v.to_dict() - OrderedDict([('major', 3), ('minor', 4), ('patch', 5), ('prerelease', None), ('build', None)]) + {'major': 3, 'minor': 4, 'patch': 5, 'prerelease': None, 'build': None} * Into a tuple with :meth:`~semver.version.Version.to_tuple`:: diff --git a/docs/usage/create-a-version.rst b/docs/usage/create-a-version.rst index 48bb58a1..b8dfdd83 100644 --- a/docs/usage/create-a-version.rst +++ b/docs/usage/create-a-version.rst @@ -90,7 +90,7 @@ Depending on your use case, the following methods are available: To access individual parts, you can use the function :func:`semver.parse`:: >>> semver.parse("3.4.5-pre.2+build.4") - OrderedDict([('major', 3), ('minor', 4), ('patch', 5), ('prerelease', 'pre.2'), ('build', 'build.4')]) + {'major': 3, 'minor': 4, 'patch': 5, 'prerelease': 'pre.2', 'build': 'build.4'} If you pass an invalid version string you will get a :py:exc:`ValueError`:: diff --git a/src/semver/version.py b/src/semver/version.py index d2f336c0..96040cef 100644 --- a/src/semver/version.py +++ b/src/semver/version.py @@ -1,6 +1,5 @@ """Version handling by a semver compatible version class.""" -import collections import re from functools import wraps from typing import ( @@ -218,27 +217,24 @@ def to_tuple(self) -> VersionTuple: def to_dict(self) -> VersionDict: """ - Convert the Version object to an OrderedDict. + Convert the Version object to an dict. .. versionadded:: 2.10.0 Renamed :meth:`Version._asdict` to :meth:`Version.to_dict` to make this function available in the public API. - :return: an OrderedDict with the keys in the order ``major``, ``minor``, + :return: an dict with the keys in the order ``major``, ``minor``, ``patch``, ``prerelease``, and ``build``. >>> semver.Version(3, 2, 1).to_dict() - OrderedDict([('major', 3), ('minor', 2), ('patch', 1), \ -('prerelease', None), ('build', None)]) - """ - return collections.OrderedDict( - ( - ("major", self.major), - ("minor", self.minor), - ("patch", self.patch), - ("prerelease", self.prerelease), - ("build", self.build), - ) + {'major': 3, 'minor': 2, 'patch': 1, 'prerelease': None, 'build': None} + """ + return dict( + major=self.major, + minor=self.minor, + patch=self.patch, + prerelease=self.prerelease, + build=self.build, ) def __iter__(self) -> VersionIterator: From 545b2446f7ffe9b7ef3d488c57844e9d6411a320 Mon Sep 17 00:00:00 2001 From: Tom Schraitle Date: Wed, 12 Jul 2023 17:50:47 +0200 Subject: [PATCH 2/2] Add changelog file --- changelog.d/pr418.bugfix.rst | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 changelog.d/pr418.bugfix.rst diff --git a/changelog.d/pr418.bugfix.rst b/changelog.d/pr418.bugfix.rst new file mode 100644 index 00000000..6f037102 --- /dev/null +++ b/changelog.d/pr418.bugfix.rst @@ -0,0 +1,5 @@ +Replace :class:`~collection.OrderedDict` with :class:`dict`. + +The dict datatype is ordered since Python 3.7. As we do not support +Python 3.6 anymore, it can be considered safe to avoid :class:`~collection.OrderedDict`. +Related to :gh:`419`. pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy