src/eric7/Globals/__init__.py

branch
eric7-maintenance
changeset 10814
ba20efe10336
parent 10460
3b34efa2857c
parent 10806
2f6df822e3b9
child 10941
07cad049002c
--- a/src/eric7/Globals/__init__.py	Sun Jun 02 09:51:47 2024 +0200
+++ b/src/eric7/Globals/__init__.py	Wed Jul 03 09:20:41 2024 +0200
@@ -13,10 +13,19 @@
 
 import os
 
-import semver
+from PyQt6.QtCore import QProcess, qVersion
 
-from PyQt6.QtCore import QByteArray, QCoreApplication, QProcess, qVersion
-
+from eric7.EricUtilities import (  # noqa
+    dataString,
+    strGroup,
+    strToQByteArray,
+    toBool,
+    toByteArray,
+    toDict,
+    toList,
+    versionIsValid,
+    versionToTuple,
+)
 from eric7.SystemUtilities import PythonUtilities
 
 try:
@@ -94,219 +103,6 @@
 
 
 ###############################################################################
-## functions for version handling
-###############################################################################
-
-
-def versionIsValid(version):
-    """
-    Function to check, if the given version string is valid.
-
-    @param version version string
-    @type str
-    @return flag indicating validity
-    @rtype bool
-    """
-    try:
-        return semver.VersionInfo.is_valid(version)
-    except AttributeError:
-        return semver.VersionInfo.isvalid(version)
-
-
-def versionToTuple(version):
-    """
-    Module function to convert a version string into a tuple.
-
-    Note: A version string consists of non-negative decimals separated by "."
-    optionally followed by a suffix. Suffix is everything after the last
-    decimal.
-
-    @param version version string
-    @type str
-    @return version named tuple containing the version parts
-    @rtype semver.VersionInfo
-    """
-    while version and not version[0].isdecimal():
-        # sanitize version string (get rid of leading non-decimal characters)
-        version = version[1:]
-
-    while len(version.split(".")) < 3:
-        # ensure the version string contains at least three parts
-        version += ".0"
-
-    if versionIsValid(version):
-        return semver.VersionInfo.parse(version)
-    else:
-        return semver.VersionInfo(0, 0, 0)
-
-
-###############################################################################
-## functions for extended string handling
-###############################################################################
-
-
-def strGroup(txt, sep, groupLen=4):
-    """
-    Module function to group a string into sub-strings separated by a
-    separator.
-
-    @param txt text to be grouped
-    @type str
-    @param sep separator string
-    @type str
-    @param groupLen length of each group
-    @type int
-    @return result string
-    @rtype str
-    """
-    groups = []
-
-    while len(txt) // groupLen != 0:
-        groups.insert(0, txt[-groupLen:])
-        txt = txt[:-groupLen]
-    if len(txt) > 0:
-        groups.insert(0, txt)
-    return sep.join(groups)
-
-
-def strToQByteArray(txt):
-    """
-    Module function to convert a Python string into a QByteArray.
-
-    @param txt Python string to be converted
-    @type str, bytes, bytearray
-    @return converted QByteArray
-    @rtype QByteArray
-    """
-    if isinstance(txt, str):
-        txt = txt.encode("utf-8")
-
-    return QByteArray(txt)
-
-
-def dataString(size, loc=None):
-    """
-    Module function to generate a formatted size string.
-
-    @param size size to be formatted
-    @type int
-    @param loc locale to be used for localized size strings (defaults to None)
-    @type QLocale (optional)
-    @return formatted data string
-    @rtype str
-    """
-    if loc is None:
-        if size < 1024:
-            return QCoreApplication.translate("Globals", "{0:4.2f} Bytes").format(size)
-        elif size < 1024 * 1024:
-            size /= 1024
-            return QCoreApplication.translate("Globals", "{0:4.2f} KiB").format(size)
-        elif size < 1024 * 1024 * 1024:
-            size /= 1024 * 1024
-            return QCoreApplication.translate("Globals", "{0:4.2f} MiB").format(size)
-        elif size < 1024 * 1024 * 1024 * 1024:
-            size /= 1024 * 1024 * 1024
-            return QCoreApplication.translate("Globals", "{0:4.2f} GiB").format(size)
-        else:
-            size /= 1024 * 1024 * 1024 * 1024
-            return QCoreApplication.translate("Globals", "{0:4.2f} TiB").format(size)
-    else:
-        if size < 1024:
-            return QCoreApplication.translate("Globals", "{0} Bytes").format(
-                loc.toString(size, "f", 2)
-            )
-        elif size < 1024 * 1024:
-            size /= 1024
-            return QCoreApplication.translate("Globals", "{0} KiB").format(
-                loc.toString(size, "f", 2)
-            )
-        elif size < 1024 * 1024 * 1024:
-            size /= 1024 * 1024
-            return QCoreApplication.translate("Globals", "{0} MiB").format(
-                loc.toString(size, "f", 2)
-            )
-        elif size < 1024 * 1024 * 1024 * 1024:
-            size /= 1024 * 1024 * 1024
-            return QCoreApplication.translate("Globals", "{0} GiB").format(
-                loc.toString(size, "f", 2)
-            )
-        else:
-            size /= 1024 * 1024 * 1024 * 1024
-            return QCoreApplication.translate("Globals", "{0} TiB").format(
-                loc.toString(size, "f", 2)
-            )
-
-
-###############################################################################
-## functions for converting QSetting return types to valid types
-###############################################################################
-
-
-def toBool(value):
-    """
-    Module function to convert a value to bool.
-
-    @param value value to be converted
-    @type str
-    @return converted data
-    @rtype bool
-    """
-    if value in ["True", "true", "1", "Yes", "yes"]:
-        return True
-    elif value in ["False", "false", "0", "No", "no"]:
-        return False
-    else:
-        return bool(value)
-
-
-def toList(value):
-    """
-    Module function to convert a value to a list.
-
-    @param value value to be converted
-    @type None, list or Any
-    @return converted data
-    @rtype list
-    """
-    if value is None:
-        return []
-    elif not isinstance(value, list):
-        return [value]
-    else:
-        return value
-
-
-def toByteArray(value):
-    """
-    Module function to convert a value to a byte array.
-
-    @param value value to be converted
-    @type QByteArray or None
-    @return converted data
-    @rtype QByteArray
-    """
-    if value is None:
-        return QByteArray()
-    else:
-        return value
-
-
-def toDict(value):
-    """
-    Module function to convert a value to a dictionary.
-
-    @param value value to be converted
-    @type dict or None
-    @return converted data
-    @rtype dict
-    """
-    if value is None:
-        return {}
-    else:
-        return value
-
-
-###############################################################################
 ## functions for web browser variant detection
 ###############################################################################
 

eric ide

mercurial