Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-frozendict for openSUSE:Factory checked in at 2023-02-20 17:46:08 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-frozendict (Old) and /work/SRC/openSUSE:Factory/.python-frozendict.new.22824 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-frozendict" Mon Feb 20 17:46:08 2023 rev:7 rq:1066715 version:2.3.5 Changes: -------- --- /work/SRC/openSUSE:Factory/python-frozendict/python-frozendict.changes 2022-08-01 21:34:06.186294084 +0200 +++ /work/SRC/openSUSE:Factory/.python-frozendict.new.22824/python-frozendict.changes 2023-02-20 17:46:37.387692404 +0100 @@ -1,0 +2,14 @@ +Mon Feb 20 05:10:47 UTC 2023 - Marcus Rueckert <[email protected]> + +- disable python 3.11 until it is supported by the C extension + +------------------------------------------------------------------- +Mon Feb 20 05:09:24 UTC 2023 - Marcus Rueckert <[email protected]> + +- Update to 2.3.5 + - C Extension is now optional by default + - Pure py package will be no more pubished on Pypi + - Fixed incompatibility with pyinstaller + - Fixed little bug with mypy + +------------------------------------------------------------------- Old: ---- frozendict-2.3.4.tar.gz New: ---- frozendict-2.3.5.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-frozendict.spec ++++++ --- /var/tmp/diff_new_pack.KFJuY5/_old 2023-02-20 17:46:39.239702865 +0100 +++ /var/tmp/diff_new_pack.KFJuY5/_new 2023-02-20 17:46:39.251702933 +0100 @@ -1,7 +1,7 @@ # # spec file for package python-frozendict # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,15 +18,17 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} %define skip_python2 1 +# as of 2.3.5: if you want to enable 3.11 you would need to disable the C extension test for 3.11 otherwise the build will fails in %check +%define skip_python311 1 # Do not enable multibuild unless seriously necessary, it in # combination with arch is a right mess! Name: python-frozendict -Version: 2.3.4 +Version: 2.3.5 Release: 0 Summary: An immutable dictionary License: MIT Group: Development/Languages/Python -URL: https://github.com/slezica/python-frozendict +URL: https://github.com/Marco-Sulla/python-frozendict Source: https://files.pythonhosted.org/packages/source/f/frozendict/frozendict-%{version}.tar.gz BuildRequires: %{python_module devel} BuildRequires: %{python_module pytest} ++++++ frozendict-2.3.4.tar.gz -> frozendict-2.3.5.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/frozendict-2.3.4/MANIFEST.in new/frozendict-2.3.5/MANIFEST.in --- old/frozendict-2.3.4/MANIFEST.in 2022-07-21 23:26:56.000000000 +0200 +++ new/frozendict-2.3.5/MANIFEST.in 2023-02-17 21:33:49.000000000 +0100 @@ -1,3 +1,4 @@ recursive-include frozendict/src * include test/* include frozendict/py.typed +include frozendict/frozendict.pyi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/frozendict-2.3.4/PKG-INFO new/frozendict-2.3.5/PKG-INFO --- old/frozendict-2.3.4/PKG-INFO 2022-07-21 23:27:07.304688700 +0200 +++ new/frozendict-2.3.5/PKG-INFO 2023-02-17 21:34:01.142109900 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: frozendict -Version: 2.3.4 +Version: 2.3.5 Summary: A simple immutable dictionary Home-page: https://github.com/Marco-Sulla/python-frozendict Author: Marco Sulla diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/frozendict-2.3.4/frozendict/VERSION new/frozendict-2.3.5/frozendict/VERSION --- old/frozendict-2.3.4/frozendict/VERSION 2022-07-21 23:26:56.000000000 +0200 +++ new/frozendict-2.3.5/frozendict/VERSION 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -2.3.4 \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/frozendict-2.3.4/frozendict/__init__.py new/frozendict-2.3.5/frozendict/__init__.py --- old/frozendict-2.3.4/frozendict/__init__.py 2022-07-21 23:26:56.000000000 +0200 +++ new/frozendict-2.3.5/frozendict/__init__.py 2023-02-17 21:33:49.000000000 +0100 @@ -8,6 +8,7 @@ from .core import * c_ext = False +from .version import version as __version__ import collections.abc as _abc if not c_ext: @@ -24,14 +25,8 @@ from pathlib import Path -version_filename = "VERSION" - curr_path = Path(__file__) curr_dir = curr_path.parent -version_path = curr_dir / version_filename - -with open(version_path) as f: - __version__ = f.read() if c_ext: __all__ = ("frozendict", "__version__", ) @@ -43,11 +38,8 @@ __all__ += ("FrozenOrderedDict", ) del Path -del version_filename del curr_path del curr_dir -del version_path -del f del _abc if not c_ext: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/frozendict-2.3.4/frozendict/frozendict.pyi new/frozendict-2.3.5/frozendict/frozendict.pyi --- old/frozendict-2.3.4/frozendict/frozendict.pyi 1970-01-01 01:00:00.000000000 +0100 +++ new/frozendict-2.3.5/frozendict/frozendict.pyi 2023-02-17 21:33:49.000000000 +0100 @@ -0,0 +1,6 @@ +try: + from ._frozendict import * +except ImportError: + from .core import * + +FrozenOrderedDict = frozendict diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/frozendict-2.3.4/frozendict/version.py new/frozendict-2.3.5/frozendict/version.py --- old/frozendict-2.3.4/frozendict/version.py 1970-01-01 01:00:00.000000000 +0100 +++ new/frozendict-2.3.5/frozendict/version.py 2023-02-17 21:33:49.000000000 +0100 @@ -0,0 +1 @@ +version = "2.3.5" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/frozendict-2.3.4/frozendict.egg-info/PKG-INFO new/frozendict-2.3.5/frozendict.egg-info/PKG-INFO --- old/frozendict-2.3.4/frozendict.egg-info/PKG-INFO 2022-07-21 23:27:07.000000000 +0200 +++ new/frozendict-2.3.5/frozendict.egg-info/PKG-INFO 2023-02-17 21:34:01.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: frozendict -Version: 2.3.4 +Version: 2.3.5 Summary: A simple immutable dictionary Home-page: https://github.com/Marco-Sulla/python-frozendict Author: Marco Sulla diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/frozendict-2.3.4/frozendict.egg-info/SOURCES.txt new/frozendict-2.3.5/frozendict.egg-info/SOURCES.txt --- old/frozendict-2.3.4/frozendict.egg-info/SOURCES.txt 2022-07-21 23:27:07.000000000 +0200 +++ new/frozendict-2.3.5/frozendict.egg-info/SOURCES.txt 2023-02-17 21:34:01.000000000 +0100 @@ -2,10 +2,11 @@ MANIFEST.in README.md setup.py -frozendict/VERSION frozendict/__init__.py frozendict/core.py +frozendict/frozendict.pyi frozendict/py.typed +frozendict/version.py frozendict.egg-info/PKG-INFO frozendict.egg-info/SOURCES.txt frozendict.egg-info/dependency_links.txt diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/frozendict-2.3.4/setup.py new/frozendict-2.3.5/setup.py --- old/frozendict-2.3.4/setup.py 2022-07-21 23:26:56.000000000 +0200 +++ new/frozendict-2.3.5/setup.py 2023-02-17 21:33:49.000000000 +0100 @@ -4,13 +4,15 @@ from pathlib import Path import sys from platform import python_implementation +from os import environ name = "frozendict" main_package_name = "frozendict" test_dir_name = "test" readme_filename = "README.md" -version_filename = "VERSION" +version_filename = "version.py" py_typed_filename = "py.typed" +mypy_filename = "frozendict.pyi" main_url = "https://github.com/Marco-Sulla/python-frozendict" bug_url = "https://github.com/Marco-Sulla/python-frozendict/issues" author = "Marco Sulla" @@ -47,15 +49,15 @@ main_package_path = curr_dir / main_package_name -version = "" version_path = main_package_path / version_filename with open(version_path) as f: - version = f.read() + # create the version var + exec(f.read()) excluded_packages = (test_dir_name, ) packages = setuptools.find_packages(exclude=excluded_packages) -package_data_filenames = (version_filename, py_typed_filename) +package_data_filenames = (version_filename, py_typed_filename, mypy_filename) package_data = {package_name: package_data_filenames for package_name in packages} # C extension - START @@ -108,21 +110,39 @@ undef_macros = [] argv = sys.argv +argv_1_exists = len(argv) > 1 -if argv[1] == "c_debug": +if argv_1_exists and argv[1] == "c_debug": undef_macros = ["NDEBUG"] -ext_modules = [] - -ext_modules.append(setuptools.Extension( - ext1_fullname, - sources = cpython_sources, - include_dirs = cpython_include_dirs, - extra_compile_args = extra_compile_args, - undef_macros = undef_macros, -)) - +def get_ext_module( + fullname, + sources, + include_dirs, + extra_compile_args, + undef_macros, + optional +): + ext_module = setuptools.Extension( + fullname, + sources = sources, + include_dirs = include_dirs, + extra_compile_args = extra_compile_args, + undef_macros = undef_macros, + optional = optional, + ) + + return ext_module +def get_ext_module_1(optional): + return get_ext_module( + fullname = ext1_fullname, + sources = cpython_sources, + include_dirs = cpython_include_dirs, + extra_compile_args = extra_compile_args, + undef_macros = undef_macros, + optional = optional, + ) # C extension - END @@ -154,23 +174,36 @@ custom_arg = None -custom_args = ("py", "c", "c_debug") +custom_args_py = ("py", ) +custom_args_c = ("c", "c_debug") +custom_args = custom_args_py + custom_args_c -if len(argv) > 1 and argv[1] in custom_args: +if argv_1_exists and argv[1] in custom_args: custom_arg = argv[1] - sys.argv = [sys.argv[0]] + sys.argv[2:] + sys.argv = [argv[0]] + argv[2:] impl = python_implementation() +# C Extension is optional by default from version 2.3.5 +optional = True + if custom_arg == None: + # If the module is built by pipeline, C Extension must be mandatory. + optional = environ.get('CIBUILDWHEEL', '0') != '1' + if impl == "PyPy": custom_arg = "py" else: custom_arg = "c" + +elif custom_arg in custom_args_c: + optional = False -if custom_arg == "py": +if custom_arg in custom_args_py: setuptools.setup(**common_setup_args) -elif custom_arg in ("c", "c_debug"): +elif custom_arg in custom_args_c: + ext_module_1 = get_ext_module_1(optional) + ext_modules = [ext_module_1] setuptools.setup(ext_modules = ext_modules, **common_setup_args) else: raise ValueError(f"Unsupported custom_arg {custom_arg}") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/frozendict-2.3.4/test/debug.py new/frozendict-2.3.5/test/debug.py --- old/frozendict-2.3.4/test/debug.py 2022-07-21 23:26:56.000000000 +0200 +++ new/frozendict-2.3.5/test/debug.py 2023-02-17 21:33:49.000000000 +0100 @@ -7,13 +7,12 @@ from frozendict import frozendict from uuid import uuid4 import pickle -import sys from pathlib import Path from copy import copy, deepcopy from collections.abc import MutableMapping -import functools import tracemalloc import gc +import sys def getUuid(): return str(uuid4()) @@ -65,53 +64,44 @@ flush=True ) -def trace(func): - @functools.wraps(func) - def inner(): - tracemalloc.start() - - snapshot1 = tracemalloc.take_snapshot().filter_traces( - (tracemalloc.Filter(True, __file__), ) - ) - - for i in range(iterations): - func() +def trace(iterations=100): + def decorator(func): + def wrapper(): + print( + f"Loops: {iterations} - Evaluating: {func.__name__}", + flush = True + ) + + tracemalloc.start() + + snapshot1 = tracemalloc.take_snapshot().filter_traces( + (tracemalloc.Filter(True, __file__), ) + ) + + for i in range(iterations): + func() + + gc.collect() + + snapshot2 = tracemalloc.take_snapshot().filter_traces( + (tracemalloc.Filter(True, __file__), ) + ) + + top_stats = snapshot2.compare_to(snapshot1, 'lineno') + tracemalloc.stop() + + for stat in top_stats: + if stat.count_diff * 10 > iterations: + print( + f"Error. stat: {stat}", + flush = True + ) + + sys.exit(1) - gc.collect() - - snapshot2 = tracemalloc.take_snapshot().filter_traces( - (tracemalloc.Filter(True, __file__), ) - ) - - top_stats = snapshot2.compare_to(snapshot1, 'lineno') - tracemalloc.stop() - - for stat in top_stats: - if stat.count_diff > 3: - raise ValueError(f"count_diff: {stat.count_diff}") + return wrapper - return inner - -argv = sys.argv -iterations = None -args_num = 1 -right_len = args_num + 1 -len_argv = len(argv) - -if len_argv == right_len: - try: - iterations = int(argv[1]) - except Exception: - pass - -if len_argv != right_len or iterations == None: - err = ( - f"{Path(__file__).name} should have {args_num} and only " + - f"{args_num} integer parameter" - ) - - print(err, file=sys.stderr) - exit(1) + return decorator key_in = getUuid() dict_1 = {key_in: 0} @@ -131,639 +121,639 @@ functions = [] -@trace +@trace() def func_1(): frozendict_class(dict_1) functions.append(func_1) -@trace +@trace() def func_2(): frozendict_class(dict_unashable) functions.append(func_2) -@trace +@trace() def func_3(): frozendict_class(dict_3) functions.append(func_3) -@trace +@trace() def func_4(): frozendict_class() functions.append(func_4) -@trace +@trace() def func_5(): frozendict_class({}) functions.append(func_5) -@trace +@trace() def func_7(): frozendict_class([]) functions.append(func_7) -@trace +@trace() def func_8(): frozendict_class({}, **{}) functions.append(func_8) -@trace +@trace() def func_9(): frozendict_class(**dict_1) functions.append(func_9) -@trace +@trace() def func_10(): frozendict_class(dict_1, **dict_2) functions.append(func_10) -@trace +@trace() def func_11(): frozendict_class(fd_1) functions.append(func_11) -@trace +@trace() def func_12(): generator_1 = ((key, val) for key, val in dict_1.items()) frozendict_class(generator_1) functions.append(func_12) -@trace +@trace() def func_13(): frozendict_class(dict_hole) functions.append(func_13) -@trace +@trace() def func_14(): fd_1.copy() functions.append(func_14) -@trace +@trace() def func_15(): fd_1 == dict_1 functions.append(func_15) -@trace +@trace() def func_16(): fd_1 == fd_1 functions.append(func_16) -@trace +@trace() def func_17(): fd_1 != dict_hole functions.append(func_17) -@trace +@trace() def func_18(): fd_1 != dict_2 functions.append(func_18) -@trace +@trace() def func_19(): fd_1 == dict_hole functions.append(func_19) -@trace +@trace() def func_20(): fd_1 == dict_2 functions.append(func_20) -# @trace +@trace(iterations=1500) def func_21(): pickle.loads(pickle.dumps(fd_1)) functions.append(func_21) -@trace +@trace() def func_22(): frozendict_class(dict_1_items) functions.append(func_22) -@trace +@trace() def func_23(): tuple(fd_1.keys()) functions.append(func_23) -@trace +@trace() def func_24(): tuple(fd_1.values()) functions.append(func_24) -@trace +@trace() def func_25(): tuple(fd_1.items()) functions.append(func_25) -@trace +@trace() def func_26(): frozendict_class.fromkeys(dict_1) functions.append(func_26) -@trace +@trace() def func_27(): frozendict_class.fromkeys(dict_1, 1) functions.append(func_27) -@trace +@trace() def func_28(): frozendict_class.fromkeys(dict_1_keys) functions.append(func_28) -@trace +@trace() def func_29(): frozendict_class.fromkeys(dict_1_keys, 1) functions.append(func_29) -@trace +@trace() def func_30(): frozendict_class.fromkeys(dict_1_keys_set) functions.append(func_30) -@trace +@trace() def func_31(): frozendict_class.fromkeys(dict_1_keys_set, 1) functions.append(func_31) -@trace +@trace() def func_32(): repr(fd_1) functions.append(func_32) -@trace +@trace() def func_33(): fd_1 | dict_2 functions.append(func_33) -@trace +@trace() def func_34(): hash(fd_1) functions.append(func_34) -@trace +@trace() def func_35(): frozendict_class() == frozendict_class() functions.append(func_35) -@trace +@trace() def func_36(): tuple(reversed(fd_1)) functions.append(func_36) -@trace +@trace() def func_37(): tuple(reversed(fd_1.keys())) functions.append(func_37) -@trace +@trace() def func_38(): tuple(reversed(fd_1.items())) functions.append(func_38) -@trace +@trace() def func_39(): tuple(reversed(fd_1.values())) functions.append(func_39) -@trace +@trace() def func_40(): iter(fd_1).__length_hint__() functions.append(func_40) -@trace +@trace() def func_41(): len(fd_1) functions.append(func_41) -@trace +@trace() def func_42(): len(fd_1.keys()) functions.append(func_42) -@trace +@trace() def func_43(): len(fd_1.items()) functions.append(func_43) -@trace +@trace() def func_44(): len(fd_1.values()) functions.append(func_44) -@trace +@trace() def func_45(): fd_1.keys().mapping == fd_1 functions.append(func_45) -@trace +@trace() def func_46(): fd_1.items().mapping == fd_1 functions.append(func_46) -@trace +@trace() def func_47(): fd_1.values().mapping == fd_1 functions.append(func_47) -@trace +@trace() def func_48(): fd_1[key_in] functions.append(func_48) -@trace +@trace() def func_49(): fd_1.get(key_in) functions.append(func_49) -@trace +@trace() def func_50(): fd_1.get(key_notin) functions.append(func_50) -@trace +@trace() def func_51(): fd_1.get(key_notin, 1) functions.append(func_51) -@trace +@trace() def func_52(): key_in in fd_1 functions.append(func_52) -@trace +@trace() def func_53(): key_notin in fd_1 functions.append(func_53) -@trace +@trace() def func_54(): fd_1.copy() functions.append(func_54) -@trace +@trace() def func_55(): copy(fd_1) functions.append(func_55) -@trace +@trace() def func_56(): deepcopy(fd_1) functions.append(func_56) -@trace +@trace() def func_57(): deepcopy(fd_unashable) functions.append(func_57) -@trace +@trace() def func_58(): fd_1.keys() == dict_1.keys() functions.append(func_58) -@trace +@trace() def func_59(): fd_1.items() == dict_1.items() functions.append(func_59) -@trace +@trace() def func_60(): key_notin in fd_1.keys() functions.append(func_60) -@trace +@trace() def func_61(): (key_notin, 0) in fd_1.items() functions.append(func_61) -@trace +@trace() def func_62(): FMissing(fd_1)[0] functions.append(func_62) -@trace +@trace() def func_63(): mp = Map(dict_1) frozendict_class(mp) == dict_1 functions.append(func_63) -@trace +@trace() def func_64(): fd_1.keys().isdisjoint(dict_3) functions.append(func_64) -@trace +@trace() def func_65(): fd_1.keys().isdisjoint(fd_1) functions.append(func_65) -@trace +@trace() def func_66(): fd_1.items().isdisjoint(dict_3.items()) functions.append(func_66) -@trace +@trace() def func_67(): fd_1.items().isdisjoint(fd_1.items()) functions.append(func_67) -@trace +@trace() def func_68(): fd_unashable.keys() - fd_1.keys() functions.append(func_68) -@trace +@trace() def func_69(): fd_1.items() - frozendict_class(dict_hole).items() functions.append(func_69) -@trace +@trace() def func_70(): fd_1.keys() & frozendict_class(dict_hole).keys() functions.append(func_70) -@trace +@trace() def func_71(): fd_1.items() & frozendict_class(dict_hole).items() functions.append(func_71) -@trace +@trace() def func_72(): fd_1.keys() | frozendict_class(dict_2).keys() functions.append(func_72) -@trace +@trace() def func_73(): fd_1.items() | frozendict_class(dict_2).items() functions.append(func_73) -@trace +@trace() def func_74(): fd_1.keys() ^ frozendict_class(dict_hole).keys() functions.append(func_74) -@trace +@trace() def func_75(): fd_1.items() ^ frozendict_class(dict_hole).items() functions.append(func_75) -# @trace +@trace(iterations=1500) def func_76(): pickle.loads(pickle.dumps(iter(fd_1.keys()))) functions.append(func_76) -# @trace +@trace(iterations=1500) def func_77(): pickle.loads(pickle.dumps(iter(fd_1.items()))) functions.append(func_77) -# @trace +@trace(iterations=1500) def func_78(): pickle.loads(pickle.dumps(iter(fd_1.values()))) functions.append(func_78) -@trace +@trace() def func_79(): frozendict_class(dict_hole).keys() < fd_1.keys() functions.append(func_79) -@trace +@trace() def func_80(): frozendict_class(dict_hole).keys() <= fd_1.keys() functions.append(func_80) -@trace +@trace() def func_81(): frozendict_class(dict_hole).items() < fd_1.items() functions.append(func_81) -@trace +@trace() def func_82(): fd_1.keys() > frozendict_class(dict_hole).keys() functions.append(func_82) -@trace +@trace() def func_83(): fd_1.keys() >= frozendict_class(dict_hole).keys() functions.append(func_83) -@trace +@trace() def func_84(): fd_1.items() > frozendict_class(dict_hole).items() functions.append(func_84) -@trace +@trace() def func_85(): fd_1.items() >= frozendict_class(dict_hole).items() functions.append(func_85) -@trace +@trace() def func_86(): fd_1.set(key_in, 1000) functions.append(func_86) -@trace +@trace() def func_87(): fd_1.set(key_notin, 1000) functions.append(func_87) -@trace +@trace() def func_88(): fd_1.delete(key_in) functions.append(func_88) -@trace +@trace() def func_89(): fd_1.setdefault(key_in) functions.append(func_89) -@trace +@trace() def func_90(): fd_1.setdefault(key_notin) functions.append(func_90) -@trace +@trace() def func_91(): fd_1.setdefault(key_notin, 1000) functions.append(func_91) -@trace +@trace() def func_92(): fd_1.key() functions.append(func_92) -@trace +@trace() def func_93(): fd_1.key(0) functions.append(func_93) -@trace +@trace() def func_94(): fd_1.key(-1) functions.append(func_94) -@trace +@trace() def func_95(): fd_1.value() functions.append(func_95) -@trace +@trace() def func_96(): fd_1.value(0) functions.append(func_96) -@trace +@trace() def func_97(): fd_1.value(-1) functions.append(func_97) -@trace +@trace() def func_98(): fd_1.item() functions.append(func_98) -@trace +@trace() def func_99(): fd_1.item(0) functions.append(func_99) -@trace +@trace() def func_100(): fd_1.item(-1) functions.append(func_100) -@trace +@trace() def func_101(): for x in fd_1: pass functions.append(func_101) -@trace +@trace() def func_102(): for x in iter(fd_1): pass functions.append(func_102) -@trace +@trace() def func_103(): for x in fd_1.keys(): pass functions.append(func_103) -@trace +@trace() def func_104(): for x in fd_1.values(): pass functions.append(func_104) -@trace +@trace() def func_105(): for x in fd_1.items(): pass functions.append(func_105) -@trace +@trace() def func_106(): try: hash(fd_unashable) @@ -772,7 +762,7 @@ functions.append(func_106) -@trace +@trace() def func_107(): try: fd_1[key_notin] @@ -781,7 +771,7 @@ functions.append(func_107) -@trace +@trace() def func_108(): try: fd_1.key(len(fd_1)) @@ -791,7 +781,7 @@ functions.append(func_108) -@trace +@trace() def func_109(): try: fd_1.value(len(fd_1)) @@ -800,7 +790,7 @@ functions.append(func_109) -@trace +@trace() def func_110(): try: fd_1.item(len(fd_1)) @@ -809,12 +799,14 @@ functions.append(func_110) + + print_sep() for frozendict_class in (frozendict, F): print_info( frozendict_class, - iterations, + 1, "frozendict_class(dict_1)" ) @@ -822,7 +814,7 @@ print_sep() print_info( frozendict_class, - iterations, + 1, "frozendict_class(dict_unashable)" ) @@ -830,7 +822,11 @@ print_sep() for function in functions: - print_info(frozendict_class, iterations, function) + print( + f"Class = {frozendict_class.__name__} - ", + flush = True, + end = "" + ) function()
