https://docs.python.org/3/whatsnew/3.11.html crypt: management/univention-directory-manager-modules/modules/univention/admin/password.py: from crypt import crypt as _crypt management/univention-self-service/unittests/test_verify_user.py:import crypt test/ucs-test/tests/10_ldap/50ppolicy_account_lockout: python3 -c "import crypt, univention.uldap; lo = univention.uldap.getMachineConnection(); password = lo.getAttr('${test_userdn}', 'userPassword')[0].decode( test/ucs-test/tests/10_ldap/56ppolicy_account_lockout_concurrent: python3 -c "import crypt, univention.uldap; lo = univention.uldap.getMachineConnection(); password = lo.getAttr('${test_userdn}', 'u cgi: base/univention-system-activation/src/wsgi.py:import cgi management/univention-appcenter/conffiles/usr/share/univention-management-console/modules/apps.xml: from cgi import escape management/univention-directory-reports/modules/univention/directory/reports/admin.py: from cgi import escape management/univention-management-console/univention-management-console-web-server: from cgi import escape test/ucs-test/univention/testing/license_client.py:import cgi imghdr: management/univention-directory-manager-modules/modules/univention/admin/syntax.py:import imghdr management/univention-portal/python/univention/portal/extensions/reloader.py:from imghdr import what pipes: base/univention-config-registry/python/univention-install-config-registry: from pipes import quote base/univention-config-registry/python/univention/config_registry/misc.py:from pipes import quote as escape_value base/univention-grub/conffiles/etc/default/grub:from pipes import quote base/univention-home-mounter/univention-mount-homedir:import pipes base/univention-lib/debian/python3-univention-lib.postinst:import pipes base/univention-lib/python/admember.py:import pipes base/univention-lib/python/listenerSharePath.py:import pipes base/univention-system-setup/umc/python/setup/checks/ldap.py:from pipes import quote base/univention-system-setup/umc/python/setup/checks/univention_join.py:import pipes base/univention-updater/umc/python/updater/__init__.py:import pipes management/univention-appcenter/python/appcenter/actions/get.py:from pipes import quote management/univention-appcenter/python/appcenter/utils.py:import pipes management/univention-directory-listener/conffiles/etc/default/univention-directory-listener:from pipes import quote management/univention-directory-manager-modules/scripts/udm-remap-country-from-st-to-c:import pipes management/univention-join/dh-univention-join-install:from pipes import quote management/univention-management-console-module-diagnostic/umc/python/diagnostic/plugins/63_proof_uniqueMembers.py:import pipes management/univention-management-console-module-diagnostic/umc/python/diagnostic/plugins/66_udm_country_remap_from_st_to_c.py:import pipes management/univention-management-console/src/univention/management/console/protocol/session.py:import pipes monitoring/univention-monitoring-client/alerts/check_univention_joinstatus:import pipes monitoring/univention-monitoring-client/alerts/check_univention_nmbd:import pipes services/univention-ad-connector/conffiles/ad-certificate.py:import pipes services/univention-ad-connector/umc/python/adconnector/__init__.py:import pipes services/univention-printserver/cups-printers.py:import pipes services/univention-printserver/ppds.py:import pipes services/univention-squid/conffiles/etc/squid/squid.conf:import pipes test/ucs-test/tests/59_udm/71_test_udm_settings.py:import pipes test/ucs-test/tests/99_end/01_var_log_tracebacks.py:import pipes test/ucs-test/univention/testing/udm.py:import pipes SafeConfigParser: test/ucs-gui-tests/installation/conftest.py:config = ConfigParser.SafeConfigParser() configparser.RawConfigParser.readfp(): management/univention-appcenter/python/appcenter/actions/get.py: config_parser.readfp(f) management/univention-appcenter/python/appcenter/actions/get.py: config_parser.readfp(f) management/univention-appcenter/python/appcenter/ini_parser.py: parser.readfp(f) management/univention-appcenter/python/appcenter/utils.py: parser.readfp(f) services/univention-ad-connector/modules/univention/connector/ad/query_config.py:config.readfp(open(configfile)) services/univention-s4-connector/modules/univention/s4connector/s4/query_config.py:config.readfp(open(configfile)) locale.getdefaultlocale base/univention-lib/python/umc.py: self._language = language or locale.getdefaultlocale()[0] or '' management/univention-management-console/scripts/univention-management-console-client: self.language = (locale.getlocale()[0] or locale.getdefaultlocale()[0] or 'en-US').replace('_', '-') management/univention-management-console/src/univention/management/console/tools.py: lang, encoding = locale.getdefaultlocale(locale.LC_MESSAGES) test/ucs-test/univention/appcenter/testing/_umc.py: self._language = language or locale.getdefaultlocale()[0] or '' typing.Text base/univention-config-registry/python/univention/config_registry/misc.py: from typing import IO, Dict, List, Text # noqa: F401 base/univention-lib/python/i18n.py:from typing import Optional, Text # noqa: F401 base/univention-lib/python/locking.py:from typing import IO, Optional, Text # noqa: F401 base/univention-updater/conftest.py: from typing import IO, Any, Dict, List, Sequence, Text, Union # noqa: F401 management/univention-directory-listener/python/listener.py: from typing import Any, Callable, List, Optional, Text, Type, TypeVar, Union # noqa: F401 management/univention-directory-listener/tools/univention-get-ldif-from-master.py:from typing import IO, Text # noqa: F401 management/univention-directory-manager-modules/modules/univention/admin/handlers/__init__.py:from typing import Any, Dict, Iterable, List, Optional, Set, Text, Tuple, Union # noqa: F401 management/univention-directory-manager-modules/modules/univention/admin/mapping.py: from typing import List, Text, Tuple, TypeVar, Union # noqa: F401 management/univention-directory-manager-modules/modules/univention/admin/modules.py:from typing import Any, Dict, List, Optional, Set, Text, Union # noqa: F401 management/univention-directory-manager-modules/modules/univention/udm/base.pyi:from typing import Any, Dict, Iterable, Iterator, List, Optional, Text, TypeVar, Union # noqa: F401 management/univention-directory-manager-modules/modules/univention/udm/binary_props.pyi:from typing import BinaryIO, Optional, Text, Union # noqa: F401 management/univention-directory-manager-modules/modules/univention/udm/connections.pyi:from typing import Any, Callable, Dict, Optional, Text, Tuple # noqa: F401 management/univention-directory-manager-modules/modules/univention/udm/encoders.pyi:from typing import Any, Dict, List, Optional, Text, Type, TypeVar # noqa: F401 management/univention-directory-manager-modules/modules/univention/udm/exceptions.pyi:from typing import Iterable, Optional, Text # noqa: F401 management/univention-directory-manager-modules/modules/univention/udm/helpers.pyi:from typing import List, Text # noqa: F401 management/univention-directory-manager-modules/modules/univention/udm/modules/generic.pyi:from typing import Any, Dict, Iterable, Iterator, List, Optional, Text, Tuple, Type, TypeVar, Union # noqa: F401 management/univention-directory-manager-modules/modules/univention/udm/modules/mail_all.pyi:from typing import Dict, Text # noqa: F401 management/univention-directory-manager-modules/modules/univention/udm/plugins.pyi:from typing import Any, Dict, Iterable, Text, TypeVar # noqa: F401 management/univention-directory-manager-modules/modules/univention/udm/udm.pyi:from typing import Any, Dict, List, Optional, Text, Tuple, Type # noqa: F401 management/univention-directory-manager-modules/modules/univention/udm/utils.pyi:from typing import Any, Text # noqa: F401 management/univention-directory-manager-rest/src/univention/admin/rest/client/__init__.py:from typing import Any, Callable, Dict, Iterator, List, Mapping, Optional, Text, Type, Union # noqa: F401 management/univention-management-console/src/univention/management/console/pam.py: from typing import Any, Dict, Iterator, List, Optional, Pattern, Sequence, Text, Tuple, Union # noqa: F401 management/univention-management-console/src/univention/management/console/protocol/message.py: from typing import Any, Dict, List, Optional, Text, Union # noqa: F401 packaging/univention-debhelper/univention/debhelper.py: from typing import Dict, List, Optional, Sequence, Text # noqa: F401 saml/univention-saml/listener/univention-saml-simplesamlphp-configuration.py:from typing import Dict, List, Text, Tuple test/ucs-test/univention/appcenter/testing/_udm_rest.py:from typing import Any, Callable, Dict, Iterator, List, Mapping, Optional, Text, Type, Union # noqa: F401 test/ucs-test/univention/testing/connector_common.py:from typing import Text, Union # noqa: F401 test/ucs-test/univention/testing/ldif.py:from typing import Any, Dict, Iterable, Iterator, List, NoReturn, Set, Text, Tuple # noqa: F401 test/ucs-test/univention/testing/strings.py:from typing import Iterator, Optional, Text, Tuple # noqa: F401 test/ucs-test/univention/testing/udm.py:from typing import Any, Dict, Iterable, List, Mapping, Optional, Text, Tuple, Union # noqa: F401 imp: base/univention-lib/python/ldap_extension.py: import imp base/univention-pam/well-known-sid-name-mapping.py: import imp base/univention-system-setup/umc/python/setup/netconf/modules/__init__.py:import imp management/univention-portal/unittests/test_config.py:from imp import reload management/univention-portal/unittests/test_reloader.py:from imp import reload services/univention-ad-connector/modules/univention/connector/ad/mapping.py: import imp services/univention-s4-connector/modules/univention/s4connector/s4/mapping.py: import imp test/ucs-test/tests/10_ldap/110_univention_lastbind.py:import imp inspect.getargspec management/univention-appcenter/python/appcenter/app.py:from inspect import getargspec management/univention-appcenter/python/appcenter/app.py: arguments = getargspec(method).args[1:] # remove self management/univention-directory-manager-modules/modules/univention/admin/handlers/__init__.py:getfullargspec = getattr(inspect, 'getfullargspec', inspect.getargspec) management/univention-directory-manager-modules/modules/univention/admin/mapping.py:getfullargspec = getattr(inspect, 'getfullargspec', inspect.getargspec) management/univention-directory-manager-modules/modules/univention/udm/modules/generic.py:getfullargspec = getattr(inspect, 'getfullargspec', inspect.getargspec) management/univention-management-console-module-udm/umc/python/udm/udm_ldap.py:getfullargspec = getattr(inspect, 'getfullargspec', inspect.getargspec) management/univention-management-console/src/univention/management/console/modules/decorators.py: getfullargspec = getattr(inspect, 'getfullargspec', inspect.getargspec) management/univention-portal/univention-portal: spec = inspect.getargspec(klass.__init__) test/ucs-test/univention/testing/udm.py: from inspect import getfullargspec as getargspec test/ucs-test/univention/testing/udm.py: from inspect import getargspec # Python 2 test/ucs-test/univention/testing/udm.py: if 'prop' in getargspec(func).args: https://docs.python.org/3/whatsnew/3.10.html distutils: base/univention-debug-python/setup.py:from distutils.core import Extension, setup base/univention-python/setup.py:from distutils.core import setup base/univention-system-setup/umc/python/setup/checks/univention_join.py:from distutils.version import LooseVersion base/univention-updater/script/check.sh:from distutils.version import LooseVersion base/univention-updater/script/check.sh:from distutils.version import LooseVersion management/univention-appcenter/packaging.py:from distutils.core import setup as orig_setup management/univention-appcenter/python/appcenter/app.py:from distutils.version import LooseVersion management/univention-directory-listener/conffiles/etc/default/univention-directory-listener:from distutils.spawn import find_executable management/univention-directory-listener/setup.py:from distutils.core import setup management/univention-management-console/setup.py:from distutils import cmd management/univention-management-console/setup.py:from distutils.command.build import build management/univention-management-console/setup.py:from distutils.core import setup management/univention-portal/setup.py:from distutils.core import setup packaging/univention-debhelper/setup.py:from distutils.core import setup services/univention-radius/setup.py:from distutils.core import setup test/ucs-test/tests/00_checks/30_compare_package_versions.py:from distutils.version import StrictVersion test/ucs-test/univention/testing/coverage.py:import distutils.spawn threading.Thread.setDaemon => threading.Thread.daemon: base/univention-system-setup/umc/python/setup/util.py: stderr_thread.setDaemon(True) ssl.wrap_socket(): management/univention-appcenter/python/appcenter/utils.py: self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file, cert_reqs=ssl.CERT_REQUIRED, ca_certs="/etc/ssl/certs/ca-certificates.crt") management/univention-appcenter/umc/python/appcenter/util.py: self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file, cert_reqs=ssl.CERT_REQUIRED, ca_certs="/etc/ssl/certs/ca-certificates.crt") test/ucs-test/tests/60_umc/21_request_new_license.py: httpd.socket = ssl.wrap_socket( ssl.match_hostname: test/ucs-test/tests/40_mail/48_check_ssl_sni.py: ssl.match_hostname(cert, servername) OP_NO_SSLv2 / OP_NO_SSLv3: management/univention-management-console/src/univention/management/console/protocol/client.py: self.__crypto_context.set_options(SSL.OP_NO_SSLv2) management/univention-management-console/src/univention/management/console/protocol/client.py: self.__crypto_context.set_options(SSL.OP_NO_SSLv3) management/univention-management-console/src/univention/management/console/protocol/server.py: self.crypto_context.set_options(SSL.OP_NO_SSLv2) management/univention-management-console/src/univention/management/console/protocol/server.py: self.crypto_context.set_options(SSL.OP_NO_SSLv3) Using NotImplemented in a boolean context has been deprecated base/univention-lib/python/ucs.py: return self.mmp < other.mmp if isinstance(other, UCS_Version) else NotImplemented base/univention-lib/python/ucs.py: return self.mmp <= other.mmp if isinstance(other, UCS_Version) else NotImplemented base/univention-lib/python/ucs.py: return self.mmp >= other.mmp if isinstance(other, UCS_Version) else NotImplemented base/univention-lib/python/ucs.py: return self.mmp > other.mmp if isinstance(other, UCS_Version) else NotImplemented base/univention-system-setup/umc/python/setup/netconf/__init__.py: return (self.priority, str(self)) < (other.priority, str(other)) if isinstance(other, Phase) else NotImplemented base/univention-system-setup/umc/python/setup/netconf/__init__.py: return (self.priority, str(self)) <= (other.priority, str(other)) if isinstance(other, Phase) else NotImplemented base/univention-system-setup/umc/python/setup/netconf/__init__.py: return (self.priority, str(self)) == (other.priority, str(other)) if isinstance(other, Phase) else NotImplemented base/univention-system-setup/umc/python/setup/netconf/__init__.py: return (self.priority, str(self)) != (other.priority, str(other)) if isinstance(other, Phase) else NotImplemented base/univention-system-setup/umc/python/setup/netconf/__init__.py: return (self.priority, str(self)) >= (other.priority, str(other)) if isinstance(other, Phase) else NotImplemented base/univention-system-setup/umc/python/setup/netconf/__init__.py: return (self.priority, str(self)) > (other.priority, str(other)) if isinstance(other, Phase) else NotImplemented base/univention-updater/modules/univention/updater/tools.py: return self.name < other.name if isinstance(other, Component) else NotImplemented base/univention-updater/modules/univention/updater/tools.py: return self.name <= other.name if isinstance(other, Component) else NotImplemented base/univention-updater/modules/univention/updater/tools.py: return self.name >= other.name if isinstance(other, Component) else NotImplemented base/univention-updater/modules/univention/updater/tools.py: return self.name > other.name if isinstance(other, Component) else NotImplemented management/univention-appcenter/python/appcenter/app.py: return (self.id, LooseVersion(self.get_ucs_version()), LooseVersion(self.version), self.component_id) < (other.id, LooseVersion(other.get_ucs_versio management/univention-appcenter/python/appcenter/app.py: return (self.id, LooseVersion(self.get_ucs_version()), LooseVersion(self.version), self.component_id) <= (other.id, LooseVersion(other.get_ucs_versi management/univention-appcenter/python/appcenter/app.py: return (self.id, LooseVersion(self.get_ucs_version()), LooseVersion(self.version), self.component_id) == (other.id, LooseVersion(other.get_ucs_versi management/univention-appcenter/python/appcenter/app.py: return (self.id, LooseVersion(self.get_ucs_version()), LooseVersion(self.version), self.component_id) != (other.id, LooseVersion(other.get_ucs_versi management/univention-appcenter/python/appcenter/app.py: return (self.id, LooseVersion(self.get_ucs_version()), LooseVersion(self.version), self.component_id) >= (other.id, LooseVersion(other.get_ucs_versi management/univention-appcenter/python/appcenter/app.py: return (self.id, LooseVersion(self.get_ucs_version()), LooseVersion(self.version), self.component_id) > (other.id, LooseVersion(other.get_ucs_versio management/univention-directory-manager-modules/modules/univention/admin/__init__.py: return (self.property != 'registry', self.property) < (other.property != 'registry', other.property) if isinstance( management/univention-directory-manager-modules/modules/univention/admin/__init__.py: return (self.property != 'registry', self.property) <= (other.property != 'registry', other.property) if isinstance management/univention-directory-manager-modules/modules/univention/admin/__init__.py: return self.property == other.property if isinstance(other, field) else NotImplemented management/univention-directory-manager-modules/modules/univention/admin/__init__.py: return self.property != other.property if isinstance(other, field) else NotImplemented management/univention-directory-manager-modules/modules/univention/admin/__init__.py: return (self.property != 'registry', self.property) >= (other.property != 'registry', other.property) if isinstance management/univention-directory-manager-modules/modules/univention/admin/__init__.py: return (self.property != 'registry', self.property) > (other.property != 'registry', other.property) if isinstance( test/ucs-test/univention/testing/internal.py: return self.ver < other.ver if isinstance(other, UCSVersion) else NotImplemented test/ucs-test/univention/testing/internal.py: return self.ver <= other.ver if isinstance(other, UCSVersion) else NotImplemented test/ucs-test/univention/testing/internal.py: return self.ver >= other.ver if isinstance(other, UCSVersion) else NotImplemented test/ucs-test/univention/testing/internal.py: return self.ver > other.ver if isinstance(other, UCSVersion) else NotImplemented (maybe more) base64.decodestring management/univention-directory-manager-modules/modules/univention/admincli/admin.py: object[key] = base64.decodestring(content) unescape() method in the html.parser.HTMLParser: management/univention-management-console/univention-management-console-web-server: unescape = html_parser.unescape https://docs.python.org/3/whatsnew/3.8.html collections → collections.abc base/univention-config-registry/python/univention/config_registry/backend.py: from collections import Mapping, MutableMapping base/univention-lib/unittests/test_ucs.py: from collections import Hashable management/univention-directory-listener/python/univention/listener/handler_logging.py:from collections import Mapping …
We can do this in an erratum. No target milestone for that, but it will not show up in the gitlab boards
This is the updated report. In my last report I just used `git grep` and I did not check if it is fixed. cgi: base/univention-system-activation/src/wsgi.py:import cgi test/ucs-test/univention/testing/license_client.py:import cgi imghdr: management/univention-portal/python/univention/portal/extensions/reloader.py:from imghdr import what pipes: services/univention-ldb-modules/third_party/waf/waflib/extras/genpybind.py:import pipes typing.Text base/univention-config-registry/python/univention/config_registry/misc.py: from typing import IO, Dict, List, Text # noqa: F401 management/univention-directory-manager-modules/modules/univention/admin/handlers/__init__.py:from typing import Any, Dict, Iterable, List, Optional, Set, Text, Tuple, Union # noqa: F401 management/univention-directory-manager-modules/modules/univention/admin/mapping.py: from typing import List, Text, Tuple, TypeVar, Union # noqa: F401 management/univention-directory-manager-modules/modules/univention/admin/modules.py:from typing import Any, Dict, List, Optional, Set, Text, Union # noqa: F401 management/univention-directory-manager-modules/modules/univention/udm/base.pyi:from typing import Any, Dict, Iterable, Iterator, List, Optional, Text, TypeVar, Union # noqa: F401 management/univention-directory-manager-modules/modules/univention/udm/binary_props.pyi:from typing import BinaryIO, Optional, Text, Union # noqa: F401 management/univention-directory-manager-modules/modules/univention/udm/connections.pyi:from typing import Any, Callable, Dict, Optional, Text, Tuple # noqa: F401 management/univention-directory-manager-modules/modules/univention/udm/encoders.pyi:from typing import Any, Dict, List, Optional, Text, Type, TypeVar # noqa: F401 management/univention-directory-manager-modules/modules/univention/udm/exceptions.pyi:from typing import Iterable, Optional, Text # noqa: F401 management/univention-directory-manager-modules/modules/univention/udm/helpers.pyi:from typing import List, Text # noqa: F401 management/univention-directory-manager-modules/modules/univention/udm/modules/generic.pyi:from typing import Any, Dict, Iterable, Iterator, List, Optional, Text, Tuple, Type, TypeVar, Union # noqa: F401 management/univention-directory-manager-modules/modules/univention/udm/modules/mail_all.pyi:from typing import Dict, Text # noqa: F401 management/univention-directory-manager-modules/modules/univention/udm/plugins.pyi:from typing import Any, Dict, Iterable, Text, TypeVar # noqa: F401 management/univention-directory-manager-modules/modules/univention/udm/udm.pyi:from typing import Any, Dict, List, Optional, Text, Tuple, Type # noqa: F401 management/univention-directory-manager-modules/modules/univention/udm/utils.pyi:from typing import Any, Text # noqa: F401 management/univention-directory-manager-rest/src/univention/admin/rest/client/__init__.py:from typing import Any, Callable, Dict, Iterator, List, Mapping, Optional, Text, Type, Union # noqa: F401 management/univention-management-console/src/univention/management/console/message.py: from typing import Any, Dict, List, Optional, Text, Union # noqa: F401 management/univention-management-console/src/univention/management/console/pam.py: from typing import Any, Dict, Iterator, List, Optional, Pattern, Sequence, Text, Tuple, Union # noqa: F401 packaging/univention-debhelper/univention/debhelper.py: from typing import Dict, List, Optional, Sequence, Text # noqa: F401 test/ucs-test/univention/testing/strings.py:from typing import Iterator, Optional, Text, Tuple # noqa: F401 imp: services/univention-ldb-modules/third_party/waf/waflib/Tools/python.py: v.PYTAG = conf.cmd_and_log(conf.env.PYTHON + ['-c', "import sys\ntry:\n print(sys.implementation.cache_tag)\nexcept AttributeError:\n import imp\n print(imp.get_tag())\n"]).strip() distutils: management/univention-appcenter/python/appcenter/app.py:from distutils.version import LooseVersion ssl.wrap_socket: test/ucs-test/tests/40_mail/48_check_ssl_sni.py: conn = context.wrap_socket(socket.socket(socket.AF_INET), server_hostname=servername) test/ucs-test/tests/60_umc/21_request_new_license.py: httpd.socket = ssl.wrap_socket( ssl.match_hostname: test/ucs-test/tests/40_mail/48_check_ssl_sni.py: ssl.match_hostname(cert, servername) Using NotImplemented in a boolean context has been deprecated: base/univention-lib/python/ucs.py: return self.mmp < other.mmp if isinstance(other, UCS_Version) else NotImplemented base/univention-lib/python/ucs.py: return self.mmp <= other.mmp if isinstance(other, UCS_Version) else NotImplemented base/univention-lib/python/ucs.py: return self.mmp >= other.mmp if isinstance(other, UCS_Version) else NotImplemented base/univention-lib/python/ucs.py: return self.mmp > other.mmp if isinstance(other, UCS_Version) else NotImplemented base/univention-system-setup/umc/python/setup/netconf/__init__.py: return (self.priority, str(self)) < (other.priority, str(other)) if isinstance(other, Phase) else NotImplemented base/univention-system-setup/umc/python/setup/netconf/__init__.py: return (self.priority, str(self)) <= (other.priority, str(other)) if isinstance(other, Phase) else NotImplemented base/univention-system-setup/umc/python/setup/netconf/__init__.py: return (self.priority, str(self)) >= (other.priority, str(other)) if isinstance(other, Phase) else NotImplemented base/univention-system-setup/umc/python/setup/netconf/__init__.py: return (self.priority, str(self)) > (other.priority, str(other)) if isinstance(other, Phase) else NotImplemented base/univention-updater/modules/univention/updater/tools.py: return self.name < other.name if isinstance(other, Component) else NotImplemented base/univention-updater/modules/univention/updater/tools.py: return self.name <= other.name if isinstance(other, Component) else NotImplemented base/univention-updater/modules/univention/updater/tools.py: return self.name >= other.name if isinstance(other, Component) else NotImplemented base/univention-updater/modules/univention/updater/tools.py: return self.name > other.name if isinstance(other, Component) else NotImplemented management/univention-appcenter/python/appcenter/app.py: return (self.id, LooseVersion(self.get_ucs_version()), LooseVersion(self.version), self.component_id) < (other.id, LooseVersion(other.get_ucs_version()), LooseVersion(other.version), other.component_id) if isinstance(other, App) else NotImplemented management/univention-appcenter/python/appcenter/app.py: return (self.id, LooseVersion(self.get_ucs_version()), LooseVersion(self.version), self.component_id) <= (other.id, LooseVersion(other.get_ucs_version()), LooseVersion(other.version), other.component_id) if isinstance(other, App) else NotImplemented management/univention-appcenter/python/appcenter/app.py: return (self.id, LooseVersion(self.get_ucs_version()), LooseVersion(self.version), self.component_id) == (other.id, LooseVersion(other.get_ucs_version()), LooseVersion(other.version), other.component_id) if isinstance(other, App) else NotImplemented management/univention-appcenter/python/appcenter/app.py: return (self.id, LooseVersion(self.get_ucs_version()), LooseVersion(self.version), self.component_id) != (other.id, LooseVersion(other.get_ucs_version()), LooseVersion(other.version), other.component_id) if isinstance(other, App) else NotImplemented management/univention-appcenter/python/appcenter/app.py: return (self.id, LooseVersion(self.get_ucs_version()), LooseVersion(self.version), self.component_id) >= (other.id, LooseVersion(other.get_ucs_version()), LooseVersion(other.version), other.component_id) if isinstance(other, App) else NotImplemented management/univention-appcenter/python/appcenter/app.py: return (self.id, LooseVersion(self.get_ucs_version()), LooseVersion(self.version), self.component_id) > (other.id, LooseVersion(other.get_ucs_version()), LooseVersion(other.version), other.component_id) if isinstance(other, App) else NotImplemented management/univention-directory-manager-modules/modules/univention/admin/__init__.py: return (self.property != 'registry', self.property) < (other.property != 'registry', other.property) if isinstance(other, field) else NotImplemented management/univention-directory-manager-modules/modules/univention/admin/__init__.py: return (self.property != 'registry', self.property) <= (other.property != 'registry', other.property) if isinstance(other, field) else NotImplemented management/univention-directory-manager-modules/modules/univention/admin/__init__.py: return self.property == other.property if isinstance(other, field) else NotImplemented management/univention-directory-manager-modules/modules/univention/admin/__init__.py: return self.property != other.property if isinstance(other, field) else NotImplemented management/univention-directory-manager-modules/modules/univention/admin/__init__.py: return (self.property != 'registry', self.property) >= (other.property != 'registry', other.property) if isinstance(other, field) else NotImplemented management/univention-directory-manager-modules/modules/univention/admin/__init__.py: return (self.property != 'registry', self.property) > (other.property != 'registry', other.property) if isinstance(other, field) else NotImplemented test/ucs-test/univention/testing/internal.py: return self.ver < other.ver if isinstance(other, UCSVersion) else NotImplemented test/ucs-test/univention/testing/internal.py: return self.ver <= other.ver if isinstance(other, UCSVersion) else NotImplemented test/ucs-test/univention/testing/internal.py: return self.ver >= other.ver if isinstance(other, UCSVersion) else NotImplemented test/ucs-test/univention/testing/internal.py: return self.ver > other.ver if isinstance(other, UCSVersion) else NotImplemented (maybe more) https://docs.python.org/3/whatsnew/3.8.html https://docs.python.org/3/library/collections.abc.html#module-collections.abc collections → collections.abc management/univention-directory-listener/python/univention/listener/handler_logging.py:from collections import Mapping
The Python code has been adapted for Python 3.11. This means that outdated code is no longer used. Code that was used for compatibility with Python 2.7 has also been removed, as Python 2.7 is no longer supported by UCS 5.2. The following has been changed: - `typing.Text` has been removed as it is now just an alias for `str` Affected packages: univention-updater - `cgi` has been replaced with `email` Affected packages: univention-system-activation - `imghdr` has been replaced with `filetype`. We have used the following package: https://packages.debian.org/bookworm/python3-filetype Affected packages: univention-portal - The following classes are no longer imported in a try-catch block and the corresponding compatibility code has been removed: - `typing` - `html` - `email_validator` - `zoneinfo` - `typing` Affected packages: - univention-management-console - univention-directory-reports - univention-directory-manager-modules - univention-debhelper - univention-config-registry - univention-appcenter - `distutils.LooseVersion` has been replaced by a separate implementation. During implementation, care was taken to ensure that the functionality remains the same Affected packages: - univention-errata-level - univention-appcenter - `ssl.match_hostname()` is no longer done by Python itself, but by OpenSSL. The code has been adapted accordingly Affected packages: ucs-test
OK: Code review OK: Jenkins tests
univention-updater (16.0.14) b63cc4ee0a4b | Bug #55915: removed typing.Text because it's deprecated univention-system-activation (6.0.4) f5e0352dcf07 | Bug #55915: replace `cgi` import with `email` univention-portal (5.0.6) dbb0860e8f91 | Bug #55915: replace `imghdr` import with `filetype` univention-management-console (13.0.10) 71757186c557 | Bug #55915: remove `try` from `import typing` univention-errata-level (5.1.0-0) 2335ef7c41d8 | refactor(appcenter): re-implement LooseVersion univention-directory-reports (13.0.6) 4d627e9b6afc | Bug #55915: import `html` without `try` univention-directory-manager-modules (16.0.12) a4ade6509282 | Bug #55915: remove `try` from `import email_validator` e20d38a56360 | Bug #55915: remove `unicode` backward compatability e392b1a417d8 | Bug #55915: import `zoneinfo` without `try` 71757186c557 | Bug #55915: remove `try` from `import typing` univention-directory-manager-modules (16.0.11) fbdff38688e4 | refactor(python): Drop python3-typing-extensions univention-debhelper (3.0.6) 71757186c557 | Bug #55915: remove `try` from `import typing` univention-config-registry (16.0.6) 71757186c557 | Bug #55915: remove `try` from `import typing` univention-appcenter (10.0.9) 4d627e9b6afc | Bug #55915: import `html` without `try` 2335ef7c41d8 | refactor(appcenter): re-implement LooseVersion ucs-test (10.0.19-31) a5686682e8c9 | Bug #55915: replace deprecated `ssl.match_hostname()`