Title: [283824] trunk/Tools
Revision
283824
Author
jbed...@apple.com
Date
2021-10-08 12:19:16 -0700 (Fri, 08 Oct 2021)

Log Message

[webkitcorepy] Not possible to autoinstall a package with micro version 0
https://bugs.webkit.org/show_bug.cgi?id=230540
<rdar://problem/83613371>

Reviewed by Michael Catanzaro.

* Scripts/libraries/webkitcorepy/setup.py: Bump version.
* Scripts/libraries/webkitcorepy/webkitcorepy/__init__.py: Ditto.
* Scripts/libraries/webkitcorepy/webkitcorepy/tests/version_unittest.py:
(VersionTestCase.test_int_constructor): Default values are 'None.'
* Scripts/libraries/webkitcorepy/webkitcorepy/version.py:
(Version.from_iterable):
(Version.__init__): Use 'None' as the default value instead of 0.
(Version.__setitem__): Support 'None' as a version value.
(Version.__contains__): Ditto.
(Version.__hash__): Ditto.
(Version.__cmp__): Ditto.

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (283823 => 283824)


--- trunk/Tools/ChangeLog	2021-10-08 19:16:57 UTC (rev 283823)
+++ trunk/Tools/ChangeLog	2021-10-08 19:19:16 UTC (rev 283824)
@@ -1,3 +1,23 @@
+2021-10-08  Jonathan Bedard  <jbed...@apple.com>
+
+        [webkitcorepy] Not possible to autoinstall a package with micro version 0
+        https://bugs.webkit.org/show_bug.cgi?id=230540
+        <rdar://problem/83613371>
+
+        Reviewed by Michael Catanzaro.
+
+        * Scripts/libraries/webkitcorepy/setup.py: Bump version.
+        * Scripts/libraries/webkitcorepy/webkitcorepy/__init__.py: Ditto.
+        * Scripts/libraries/webkitcorepy/webkitcorepy/tests/version_unittest.py:
+        (VersionTestCase.test_int_constructor): Default values are 'None.'
+        * Scripts/libraries/webkitcorepy/webkitcorepy/version.py:
+        (Version.from_iterable):
+        (Version.__init__): Use 'None' as the default value instead of 0.
+        (Version.__setitem__): Support 'None' as a version value.
+        (Version.__contains__): Ditto.
+        (Version.__hash__): Ditto.
+        (Version.__cmp__): Ditto.
+
 2021-10-08  Andres Gonzalez  <andresg...@apple.com>
 
         AX: AXMathRootRadicand should return an array of elements, not just the first

Modified: trunk/Tools/Scripts/libraries/webkitcorepy/setup.py (283823 => 283824)


--- trunk/Tools/Scripts/libraries/webkitcorepy/setup.py	2021-10-08 19:16:57 UTC (rev 283823)
+++ trunk/Tools/Scripts/libraries/webkitcorepy/setup.py	2021-10-08 19:19:16 UTC (rev 283824)
@@ -30,7 +30,7 @@
 
 setup(
     name='webkitcorepy',
-    version='0.11.1',
+    version='0.11.2',
     description='Library containing various Python support classes and functions.',
     long_description=readme(),
     classifiers=[

Modified: trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/__init__.py (283823 => 283824)


--- trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/__init__.py	2021-10-08 19:16:57 UTC (rev 283823)
+++ trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/__init__.py	2021-10-08 19:19:16 UTC (rev 283824)
@@ -43,7 +43,7 @@
 from webkitcorepy.editor import Editor
 from webkitcorepy.file_lock import FileLock
 
-version = Version(0, 11, 1)
+version = Version(0, 11, 2)
 
 from webkitcorepy.autoinstall import Package, AutoInstall
 if sys.version_info > (3, 0):

Modified: trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/tests/version_unittest.py (283823 => 283824)


--- trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/tests/version_unittest.py	2021-10-08 19:16:57 UTC (rev 283823)
+++ trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/tests/version_unittest.py	2021-10-08 19:19:16 UTC (rev 283824)
@@ -52,10 +52,10 @@
     def test_int_constructor(self):
         v = Version(1)
         self.assertEqual(v.major, 1)
-        self.assertEqual(v.minor, 0)
-        self.assertEqual(v.tiny, 0)
-        self.assertEqual(v.micro, 0)
-        self.assertEqual(v.nano, 0)
+        self.assertEqual(v.minor, None)
+        self.assertEqual(v.tiny, None)
+        self.assertEqual(v.micro, None)
+        self.assertEqual(v.nano, None)
 
     def test_len(self):
         self.assertEqual(len(Version(1, 2, 3, 4, 5)), 5)

Modified: trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/version.py (283823 => 283824)


--- trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/version.py	2021-10-08 19:16:57 UTC (rev 283823)
+++ trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/version.py	2021-10-08 19:19:16 UTC (rev 283824)
@@ -37,7 +37,7 @@
     def from_iterable(val):
         result = Version()
         for i in range(len(val)):
-            result[i] = int(val[i])
+            result[i] = None if val[i] is None else int(val[i])
         return result
 
     @staticmethod
@@ -45,12 +45,12 @@
         from webkitpy.common.version_name_map import VersionNameMap
         return VersionNameMap.map().from_name(name)[1]
 
-    def __init__(self, major=0, minor=0, tiny=0, micro=0, nano=0):
+    def __init__(self, major=0, minor=None, tiny=None, micro=None, nano=None):
         self.major = int(major)
-        self.minor = int(minor)
-        self.tiny = int(tiny)
-        self.micro = int(micro)
-        self.nano = int(nano)
+        self.minor = None if minor is None else int(minor)
+        self.tiny = None if tiny is None else int(tiny)
+        self.micro = None if micro is None else int(micro)
+        self.nano = None if nano is None else int(nano)
 
     def __len__(self):
         return 5
@@ -75,21 +75,22 @@
         raise ValueError('Expected version key to be string or integer')
 
     def __setitem__(self, key, value):
+        value = None if value is None else int(value)
         if isinstance(key, int):
             if key == 0:
-                self.major = int(value)
+                self.major = value
                 return self.major
             elif key == 1:
-                self.minor = int(value)
+                self.minor = value
                 return self.minor
             elif key == 2:
-                self.tiny = int(value)
+                self.tiny = value
                 return self.tiny
             elif key == 3:
-                self.micro = int(value)
+                self.micro = value
                 return self.micro
             elif key == 4:
-                self.nano = int(value)
+                self.nano = value
                 return self.nano
             raise ValueError('Version key must be between 0 and 4')
         elif isinstance(key, str):
@@ -136,9 +137,9 @@
         assert isinstance(version, Version)
         does_match = True
         for i in range(len(version)):
-            if self[i] != version[i]:
+            if (self[i] or 0) != (version[i] or 0):
                 does_match = False
-            if not does_match and self[i] != 0:
+            if not does_match and self[i] is not None:
                 return False
         return True
 
@@ -156,7 +157,7 @@
         result = 0
         for index in range(len(self)):
             result *= 1000
-            result += self[index]
+            result += -1 if self[index] is None else self[index]
         return result
 
     def __cmp__(self, other):
@@ -163,7 +164,7 @@
         if other is None:
             return 1
         for i in range(len(self)):
-            diff = self[i] - other[i]
+            diff = (self[i] or 0) - (other[i] or 0)
             if diff:
                 return diff
         return 0
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to