Skip to content

[prerelease] Performance regression? #9478

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
The-Compiler opened this issue Jan 4, 2022 · 32 comments · Fixed by #9532
Closed

[prerelease] Performance regression? #9478

The-Compiler opened this issue Jan 4, 2022 · 32 comments · Fixed by #9532
Labels
type: performance performance or memory problem/improvement
Milestone

Comments

@The-Compiler
Copy link
Member

According to nikolaizujev on Twitter:

Tested on several internal projects, noticed almost 2x slowdown compared to 6.2.5 on py3.8

Unfortunately no reproducer, but I got .prof dumps from them: Dropbox - pytest - Simplify your life

Opening this to remind myself to have a look at those before the final release - but ideally we'd have a proper reproducer so we can e.g. bisect this. Does anyone have any guess what could be the culprit? I only see a very small slowdown for my own project.

@hroncok Is there perhaps a way to find out which packages in Fedora took significantly longer to run tests with pytest 7 compared to 6? This would mainly be for runs which still pass, because if there are failures, all bets regarding the runtime are off anyways.

@The-Compiler The-Compiler added the type: performance performance or memory problem/improvement label Jan 4, 2022
@The-Compiler The-Compiler added this to the 7.0 milestone Jan 4, 2022
@hroncok
Copy link
Member

hroncok commented Jan 4, 2022

@hroncok Is there perhaps a way to find out which packages in Fedora took significantly longer to run tests with pytest 7 compared to 6?

There is. I can rebuild all the succeeded packages with pytest 6 and then we can parse the time information for pytest from the logs. We also have the overall build time, but that is unfortunately influenced by unstable external factors.

@The-Compiler
Copy link
Member Author

If you could do that, that'd be amazing! Would be great to see how big the impact is, and also perhaps find a project to reproduce the issue with. Let me know if there is something I can help with.

@hroncok
Copy link
Member

hroncok commented Jan 4, 2022

For pytest 7:

while read line; do
  pkg=$(echo "$line" | cut -f1)
  chroot=$(echo "$line" | cut -f2)  # this will always be the same, but meh
  buildid=$(echo "$line" | cut -f3)
  url="https://download.copr.fedorainfracloud.org/results/churchyard/pytest-7/${chroot}/$(printf "%08d" $buildid)-${pkg}/build.log.gz"
  echo $pkg
  curl -s -L "$url" | gzip -d - | grep -E '^=+ [[:digit:]]+ passed.* =+$'
  echo
  echo
done < <(copr monitor churchyard/pytest-7 --output-format text-row | grep 'succeeded$')

...running...

@hroncok
Copy link
Member

hroncok commented Jan 4, 2022

In the meantime, the pytest 6 builds run in https://copr.fedorainfracloud.org/coprs/churchyard/pytest-6/builds/

I the times will indeed be off, I can resubmit the pytest-7 builds once more to eliminate a difference in e.g. upgraded hardware or whatever, the pytest-7 builds are quite old now.

@hroncok
Copy link
Member

hroncok commented Jan 4, 2022

pytest 7

2ping
================== 121 passed, 4 skipped in 63.86s (0:01:03) ===================


abrt
============================== 45 passed in 2.25s ==============================


andriller
======================== 88 passed, 2 warnings in 3.96s ========================


androguard
==== 102 passed, 2 skipped, 30 deselected, 1 xfailed, 27 warnings in 45.16s ====


APLpy


argparse-manpage
============================== 11 passed in 4.05s ==============================


artifacts
======================== 28 passed, 2 warnings in 2.11s ========================


auditwheel
======================== 73 passed, 1 warning in 0.76s =========================

...

The entire log: pytest-7.txt


In case you want to parse that, note that some packages have no info (pytest was not actually invoked during the build or the output is unusual) and some have multiple infos (pytest was invoked multiple times during one build).

@hroncok
Copy link
Member

hroncok commented Jan 4, 2022

noticed almost 2x slowdown compared to 6.2.5 on py3.8

The Fedora tests are with Python 3.10.1.

@The-Compiler
Copy link
Member Author

Great, thank you! Parsed with:

import pathlib
import re
from rich import print  # optional

txt = pathlib.Path("pytest-7.txt").read_text()
data = [e.strip().splitlines() for e in txt.strip().split("\n\n")]

total_times = {}

for name, *rest in data:
    if not rest:
        continue
    # print(name)

    times = []
    for line in rest:
        assert line.startswith("=") and line.endswith("=")
        m = re.match(r".* in ([\d.]*)s ", line)
        times.append(float(m.group(1)))
    
    total_times[name] = sum(times)

print(total_times)

so we should be able to compare things once you have the same logs for pytest 6 ready. Thanks again! FWIW I'd hope that the Python version doesn't make a difference, given that the reporter had the slowdown with two different pytest versions but the same Python version (I assume).

@The-Compiler
Copy link
Member Author

I've compared the two profile files - the information in them seem to be a little tricky, but here is what I learned:

  • It looks like there are differences both while collecting and running:
    • pytest 6: console_main 1.7s, pytest_collection 0.8s, pytest_runtest_protocol 0.54s
    • pytest 7: console_main 3.9s, pytest_collection 1.5s, pytest_runtest_protocol 1.54s
  • Most of the slowdowns seem to come from posix.stat - on pytest 6, it was called 3878 times for a total of 0.25s, on pytest 7 it's called 8408 times for a total of 2.28s (i.e. called more, but also much slower?)

Unfortunately I can't seem to get the callees of that from the profile... but one offender I found by clicking around seems to be pathlib.is_file in _getconftestmodules - pytest 6:

image

pytest 7:

image

Similarly, during collection, with pytest 6:

image

pytest 7:

image


A different look with another tool (pyprof2calltree and KCacheGrind instead of SnakeViz), pytest 6:

image

pytest 7:

image


Take it with a grain of salt as interpreting Python profiles seems to differ a bit depending on the tools usually, but that gives us a rough idea where to look I guess. @bluetech do you have any idea how this could happen? I'm also wondering if there is simply something different about their environment, or they perhaps have a virtualenv or somesuch which isn't in norecursedirs for one setup but not the others...

@The-Compiler
Copy link
Member Author

After some more digging around, it looks like most of that code is older - I wonder if this is caused by 614f539 (and 16e5fbe missing some case) perhaps?

@RonnyPfannschmidt
Copy link
Member

the way the code repeatedly checks for dirs/files and subdirs seems confusingly expensive, it may be sensible to put the conftests/ancors into the collection tree (and link the conftests to pakcages/directories)

@hroncok
Copy link
Member

hroncok commented Jan 5, 2022

Note that the pytest 6 file may not contain the exact same set of packages, so don't count a naïve total sum:
pytest-6.txt

@The-Compiler
Copy link
Member Author

Some more detailed analysis based on those two logs:

import pathlib
import dataclasses
import operator
import re

import rich
import rich.table

@dataclasses.dataclass
class Entry:

    name: str
    time6: float
    time7: float
    dabs: float = dataclasses.field(init=False)
    drel: float = dataclasses.field(init=False)

    def __post_init__(self):
        self.dabs = self.time7 - self.time6
        self.drel = self.dabs / self.time6 * 100


def parse_log(path: pathlib.Path):
    txt = path.read_text()
    data = [e.strip().splitlines() for e in txt.strip().split("\n\n")]

    total_times = {}

    for name, *rest in data:
        if not rest:
            continue
        # print(name)

        times = []
        for line in rest:
            assert line.startswith("=") and line.endswith("=")
            m = re.match(r".* in ([\d.]*)s ", line)
            times.append(float(m.group(1)))
        
        total_times[name] = sum(times)

    return total_times


def gen_entries(times6, times7):
    for name in times6.keys() | times7.keys():
        if times6.get(name) == 0:
            continue
        try:
            yield Entry(name=name, time6=times6[name], time7=times7[name])
        except KeyError:
            pass


def avg(elems):
    lst = list(elems)
    return sum(lst) / len(lst)


def main():
    times6 = parse_log(pathlib.Path("pytest-6.txt"))
    times7 = parse_log(pathlib.Path("pytest-7.txt"))
    entries = sorted(gen_entries(times6, times7), key=operator.attrgetter("drel"))

    table = rich.table.Table()
    delta = "\N{Greek Capital Letter Delta}"
    table.add_column("Name")
    table.add_column("pytest 6", justify="right")
    table.add_column("pytest 7", justify="right")
    table.add_column(f"{delta}abs", justify="right")
    table.add_column(f"{delta}rel", justify="right")

    for e in entries:
        table.add_row(e.name, f"{e.time6:.02f}", f"{e.time7:.02f}", f"{e.dabs:.02f}", f"{e.drel:.02f}%")


    sum6 = sum(e.time6 for e in entries)
    sum7 = sum(e.time7 for e in entries)
    sumabs = sum(e.dabs for e in entries)
    sumrel = sumabs / sum6 * 100
    table.add_row("sum", f"{sum6:.02f}", f"{sum7:.02f}", f"{sumabs:.02f}", f"{sumrel:.02f}%", style="blue")


    avg6 = avg(e.time6 for e in entries)
    avg7 = avg(e.time7 for e in entries)
    avgabs = avg(e.dabs for e in entries)
    avgrel = avg(e.drel for e in entries)
    table.add_row("avg", f"{avg6:.02f}", f"{avg7:.02f}", f"{avgabs:.02f}", f"{avgrel:.02f}%", style="blue")

    rich.print(table)

if __name__ == "__main__":
    main()

results in:

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┓
┃ Name                                      ┃ pytest 6 ┃ pytest 7 ┃    Δabs ┃    Δrel ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━┩
[...]
│ python-validators                         │     0.47 │     1.38 │    0.91 │ 193.62% │
│ python-tinycss2                           │     1.23 │     3.62 │    2.39 │ 194.31% │
│ python-managesieve                        │     0.18 │     0.53 │    0.35 │ 194.44% │
│ python-uamqp                              │     0.96 │     2.83 │    1.87 │ 194.79% │
│ python-rangeparser                        │     0.01 │     0.03 │    0.02 │ 200.00% │
│ python-whichcraft                         │     0.01 │     0.03 │    0.02 │ 200.00% │
│ python-pathvalidate                       │     3.46 │    10.64 │    7.18 │ 207.51% │
│ python-biscuits                           │     0.07 │     0.22 │    0.15 │ 214.29% │
│ python-colorzero                          │     3.77 │    11.87 │    8.10 │ 214.85% │
│ python-tomli-w                            │     0.49 │     1.57 │    1.08 │ 220.41% │
│ python-tomli                              │     0.82 │     2.92 │    2.10 │ 256.10% │
│ python-node-semver                        │     1.09 │     3.92 │    2.83 │ 259.63% │
│ sum                                       │ 31191.28 │ 41189.35 │ 9998.07 │  32.05% │
│ avg                                       │    32.73 │    43.22 │   10.49 │  24.50% │
└───────────────────────────────────────────┴──────────┴──────────┴─────────┴─────────┘

So it does look like the build in total (only considering packages in both sets) took some 2h 45min longer, or around 30%...

Of course there are a lot of factors involved, but it does seem like things got slower overall, perhaps enough that we should take a closer look?

Full output:

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┓
┃ Name                                      ┃ pytest 6 ┃ pytest 7 ┃    Δabs ┃    Δrel ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━┩
│ python-jupyter-console                    │    62.87 │     3.48 │  -59.39 │ -94.46% │
│ python-typing-extensions                  │     0.93 │     0.41 │   -0.52 │ -55.91% │
│ python3-pyPEG2                            │     0.32 │     0.18 │   -0.14 │ -43.75% │
│ pytest                                    │   166.15 │    94.75 │  -71.40 │ -42.97% │
│ python-google-api-core                    │    16.50 │    10.05 │   -6.45 │ -39.09% │
│ python-tifffile                           │   584.13 │   370.39 │ -213.74 │ -36.59% │
│ python-sentinels                          │     0.03 │     0.02 │   -0.01 │ -33.33% │
│ python-hypothesis-fspaths                 │    10.64 │     7.40 │   -3.24 │ -30.45% │
│ python-configobj                          │     0.36 │     0.26 │   -0.10 │ -27.78% │
│ python-smbprotocol                        │     4.02 │     2.92 │   -1.10 │ -27.36% │
│ h5py                                      │     6.06 │     4.53 │   -1.53 │ -25.25% │
│ python-webob                              │     9.88 │     7.47 │   -2.41 │ -24.39% │
│ python-aiohttp-cors                       │     1.56 │     1.21 │   -0.35 │ -22.44% │
│ python-cherrypy                           │   111.02 │    87.13 │  -23.89 │ -21.52% │
│ python-traitlets                          │     2.52 │     1.98 │   -0.54 │ -21.43% │
│ python-mongomock                          │     1.96 │     1.54 │   -0.42 │ -21.43% │
│ python-paste                              │     1.88 │     1.48 │   -0.40 │ -21.28% │
│ python-toml-adapt                         │     0.05 │     0.04 │   -0.01 │ -20.00% │
│ python-configargparse                     │     0.20 │     0.16 │   -0.04 │ -20.00% │
│ python-sqlalchemy                         │   879.23 │   712.83 │ -166.40 │ -18.93% │
│ python-pytest-mpi                         │    24.19 │    19.80 │   -4.39 │ -18.15% │
│ python-plyvel                             │     3.06 │     2.51 │   -0.55 │ -17.97% │
│ python-mutagen                            │    35.39 │    29.58 │   -5.81 │ -16.42% │
│ python-typish                             │     0.62 │     0.52 │   -0.10 │ -16.13% │
│ python-opnsense                           │     0.19 │     0.16 │   -0.03 │ -15.79% │
│ python-pymochad                           │     0.13 │     0.11 │   -0.02 │ -15.38% │
│ python-alembic                            │    12.02 │    10.26 │   -1.76 │ -14.64% │
│ python-sphinx-kr-theme                    │     0.07 │     0.06 │   -0.01 │ -14.29% │
│ python-service-identity                   │     0.28 │     0.24 │   -0.04 │ -14.29% │
│ python-webpy                              │    10.61 │     9.13 │   -1.48 │ -13.95% │
│ python-pytn3270                           │     0.87 │     0.76 │   -0.11 │ -12.64% │
│ python-compal                             │     0.08 │     0.07 │   -0.01 │ -12.50% │
│ cloud-init                                │    31.82 │    27.91 │   -3.91 │ -12.29% │
│ python-license-expression                 │     0.92 │     0.81 │   -0.11 │ -11.96% │
│ python-aioeafm                            │     0.09 │     0.08 │   -0.01 │ -11.11% │
│ python-requests-futures                   │     0.09 │     0.08 │   -0.01 │ -11.11% │
│ python-copr-common                        │     0.09 │     0.08 │   -0.01 │ -11.11% │
│ python-google-cloud-core                  │     0.85 │     0.76 │   -0.09 │ -10.59% │
│ python-pyocr                              │     0.96 │     0.86 │   -0.10 │ -10.42% │
│ python-git-url-parse                      │     0.21 │     0.19 │   -0.02 │  -9.52% │
│ python-ipykernel                          │    50.69 │    45.97 │   -4.72 │  -9.31% │
│ python-kajiki                             │     0.86 │     0.78 │   -0.08 │  -9.30% │
│ python-overpy                             │    13.91 │    12.66 │   -1.25 │  -8.99% │
│ python-blessed                            │     8.84 │     8.07 │   -0.77 │  -8.71% │
│ python-healpy                             │     9.19 │     8.41 │   -0.78 │  -8.49% │
│ python-userpath                           │     2.19 │     2.01 │   -0.18 │  -8.22% │
│ python-niaaml                             │    68.88 │    64.05 │   -4.83 │  -7.01% │
│ python-pymemcache                         │     2.09 │     1.95 │   -0.14 │  -6.70% │
│ python-simplejson                         │     1.21 │     1.13 │   -0.08 │  -6.61% │
│ pyproj                                    │    20.93 │    19.59 │   -1.34 │  -6.40% │
│ python-priority                           │     9.44 │     8.85 │   -0.59 │  -6.25% │
│ python-google-cloud-firestore             │    12.85 │    12.06 │   -0.79 │  -6.15% │
│ python-APScheduler                        │     6.73 │     6.37 │   -0.36 │  -5.35% │
│ python-fissix                             │    25.53 │    24.25 │   -1.28 │  -5.01% │
│ python-importlib-metadata                 │     0.45 │     0.43 │   -0.02 │  -4.44% │
│ python-tenacity                           │     2.97 │     2.84 │   -0.13 │  -4.38% │
│ python-prompt-toolkit                     │    22.26 │    21.32 │   -0.94 │  -4.22% │
│ python-google-cloud-bigquery              │    21.68 │    20.77 │   -0.91 │  -4.20% │
│ pew                                       │    20.11 │    19.30 │   -0.81 │  -4.03% │
│ python-typeguard                          │     0.78 │     0.75 │   -0.03 │  -3.85% │
│ python-msrest                             │     4.42 │     4.25 │   -0.17 │  -3.85% │
│ python-astroscrappy                       │    15.13 │    14.56 │   -0.57 │  -3.77% │
│ python-rope                               │     2.20 │     2.12 │   -0.08 │  -3.64% │
│ python-shapely                            │     1.40 │     1.35 │   -0.05 │  -3.57% │
│ python-niaclass                           │     3.48 │     3.36 │   -0.12 │  -3.45% │
│ python-pdir2                              │     0.58 │     0.56 │   -0.02 │  -3.45% │
│ fonttools                                 │    29.01 │    28.02 │   -0.99 │  -3.41% │
│ python-nb2plots                           │   185.39 │   179.13 │   -6.26 │  -3.38% │
│ python-faker                              │    39.49 │    38.16 │   -1.33 │  -3.37% │
│ python-reedsolo                           │     2.53 │     2.45 │   -0.08 │  -3.16% │
│ python-pycec                              │     0.32 │     0.31 │   -0.01 │  -3.13% │
│ python-vcstool                            │     0.34 │     0.33 │   -0.01 │  -2.94% │
│ python-landslide                          │     0.34 │     0.33 │   -0.01 │  -2.94% │
│ python-kombu                              │    16.16 │    15.69 │   -0.47 │  -2.91% │
│ python-notebook                           │    32.70 │    31.82 │   -0.88 │  -2.69% │
│ python-pymediainfo                        │     1.95 │     1.90 │   -0.05 │  -2.56% │
│ python-asttokens                          │    11.88 │    11.59 │   -0.29 │  -2.44% │
│ python-aiosasl                            │     0.42 │     0.41 │   -0.01 │  -2.38% │
│ python-alarmdecoder                       │     0.43 │     0.42 │   -0.01 │  -2.33% │
│ rpkg-util                                 │     2.66 │     2.60 │   -0.06 │  -2.26% │
│ python-git-revise                         │     4.51 │     4.41 │   -0.10 │  -2.22% │
│ python-kafka                              │    11.92 │    11.68 │   -0.24 │  -2.01% │
│ python-Bottleneck                         │    43.32 │    42.47 │   -0.85 │  -1.96% │
│ emacs-jedi                                │     1.54 │     1.51 │   -0.03 │  -1.95% │
│ python-wled                               │     8.25 │     8.09 │   -0.16 │  -1.94% │
│ python-structlog                          │     1.05 │     1.03 │   -0.02 │  -1.90% │
│ python-habitipy                           │     5.82 │     5.71 │   -0.11 │  -1.89% │
│ python-nixio                              │    86.26 │    84.66 │   -1.60 │  -1.85% │
│ python-pytest-venv                        │     2.71 │     2.66 │   -0.05 │  -1.85% │
│ python-testinfra                          │     8.69 │     8.53 │   -0.16 │  -1.84% │
│ python-texext                             │     3.28 │     3.22 │   -0.06 │  -1.83% │
│ python-ZEO                                │     0.55 │     0.54 │   -0.01 │  -1.82% │
│ argparse-manpage                          │     4.12 │     4.05 │   -0.07 │  -1.70% │
│ python-emcee                              │   120.15 │   118.17 │   -1.98 │  -1.65% │
│ python-missingno                          │     1.24 │     1.22 │   -0.02 │  -1.61% │
│ python-opentracing                        │     0.66 │     0.65 │   -0.01 │  -1.52% │
│ python-more-executors                     │   135.00 │   133.06 │   -1.94 │  -1.44% │
│ python-check-manifest                     │     5.71 │     5.63 │   -0.08 │  -1.40% │
│ python-cryptography                       │    90.60 │    89.43 │   -1.17 │  -1.29% │
│ certbot                                   │    22.91 │    22.62 │   -0.29 │  -1.27% │
│ python-pydata-sphinx-theme                │     8.90 │     8.79 │   -0.11 │  -1.24% │
│ python-daphne                             │    14.89 │    14.71 │   -0.18 │  -1.21% │
│ python-guizero                            │    38.24 │    37.79 │   -0.45 │  -1.18% │
│ python-pygments                           │    23.70 │    23.46 │   -0.24 │  -1.01% │
│ python-redis                              │     4.03 │     3.99 │   -0.04 │  -0.99% │
│ python-pymatreader                        │    72.90 │    72.35 │   -0.55 │  -0.75% │
│ python-tempora                            │     1.41 │     1.40 │   -0.01 │  -0.71% │
│ python-SALib                              │   109.79 │   109.09 │   -0.70 │  -0.64% │
│ python-pyinels                            │     7.21 │     7.17 │   -0.04 │  -0.55% │
│ python-pytest-mpl                         │    25.78 │    25.64 │   -0.14 │  -0.54% │
│ python-boutdata                           │  1065.63 │  1061.17 │   -4.46 │  -0.42% │
│ python-dogpile-cache                      │    34.74 │    34.64 │   -0.10 │  -0.29% │
│ python-pynetdicom                         │   826.07 │   823.90 │   -2.17 │  -0.26% │
│ python-theano                             │   171.18 │   170.79 │   -0.39 │  -0.23% │
│ python-dask                               │   272.56 │   272.03 │   -0.53 │  -0.19% │
│ python-pyhomematic                        │     9.63 │     9.62 │   -0.01 │  -0.10% │
│ python-pycomfoair                         │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-colcon-zsh                         │     0.01 │     0.01 │    0.00 │   0.00% │
│ pycolumnize                               │     0.03 │     0.03 │    0.00 │   0.00% │
│ python-sphinx-click                       │     0.11 │     0.11 │    0.00 │   0.00% │
│ python-colcon-output                      │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-colcon-cd                          │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-colcon-devtools                    │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-colcon-powershell                  │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-aioopenssl                         │     4.06 │     4.06 │    0.00 │   0.00% │
│ python-btlewrap                           │     0.09 │     0.09 │    0.00 │   0.00% │
│ python-stackprinter                       │     0.22 │     0.22 │    0.00 │   0.00% │
│ python-colcon-defaults                    │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-textwrap3                          │     0.17 │     0.17 │    0.00 │   0.00% │
│ fasttrack                                 │     1.10 │     1.10 │    0.00 │   0.00% │
│ python-distroinfo                         │     3.61 │     3.61 │    0.00 │   0.00% │
│ python-resultsdb_api                      │     0.14 │     0.14 │    0.00 │   0.00% │
│ python-allpairspy                         │     0.08 │     0.08 │    0.00 │   0.00% │
│ python-colcon-argcomplete                 │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-extension-helpers                  │     0.38 │     0.38 │    0.00 │   0.00% │
│ python-git-changelog                      │     0.15 │     0.15 │    0.00 │   0.00% │
│ python-colcon-metadata                    │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-pyclipper                          │     0.14 │     0.14 │    0.00 │   0.00% │
│ python-lacrosse                           │     0.15 │     0.15 │    0.00 │   0.00% │
│ python-mongoquery                         │     0.04 │     0.04 │    0.00 │   0.00% │
│ python-stdio-mgr                          │     0.02 │     0.02 │    0.00 │   0.00% │
│ python-colcon-recursive-crawl             │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-colcon-pkg-config                  │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-colcon-lcov-result                 │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-sphinx-math-dollar                 │     0.54 │     0.54 │    0.00 │   0.00% │
│ python-cs                                 │     0.36 │     0.36 │    0.00 │   0.00% │
│ mkosi                                     │     0.42 │     0.42 │    0.00 │   0.00% │
│ python-colcon-coveragepy-result           │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-colcon-test-result                 │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-certbot-dns-route53                │     5.48 │     5.48 │    0.00 │   0.00% │
│ python-colcon-ed                          │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-setuptools_scm_git_archive         │     0.02 │     0.02 │    0.00 │   0.00% │
│ python-colcon-parallel-executor           │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-colcon-mixin                       │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-colcon-bash                        │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-colcon-notification                │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-wsaccel                            │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-pytest-error-for-skips             │     0.11 │     0.11 │    0.00 │   0.00% │
│ python-colcon-ros-bazel                   │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-path                               │     4.57 │     4.57 │    0.00 │   0.00% │
│ python-colcon-library-path                │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-colcon-python-setup-py             │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-colcon-package-selection           │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-krbcontext                         │     0.12 │     0.12 │    0.00 │   0.00% │
│ python-terminado                          │    36.48 │    36.51 │    0.03 │   0.08% │
│ python-cached_property                    │     7.19 │     7.20 │    0.01 │   0.14% │
│ python-curio                              │    92.72 │    92.85 │    0.13 │   0.14% │
│ duplicity                                 │   739.77 │   741.15 │    1.38 │   0.19% │
│ python-restfly                            │    51.65 │    51.77 │    0.12 │   0.23% │
│ python-cachelib                           │    24.01 │    24.07 │    0.06 │   0.25% │
│ python-requests                           │    65.84 │    66.01 │    0.17 │   0.26% │
│ python-networkx                           │    99.93 │   100.19 │    0.26 │   0.26% │
│ androguard                                │    45.04 │    45.16 │    0.12 │   0.27% │
│ yt-dlp                                    │    50.13 │    50.28 │    0.15 │   0.30% │
│ python-watchdog                           │    36.31 │    36.42 │    0.11 │   0.30% │
│ python-fastpurge                          │     6.53 │     6.55 │    0.02 │   0.31% │
│ python-patsy                              │    25.93 │    26.01 │    0.08 │   0.31% │
│ python-google-cloud-storage               │     9.63 │     9.66 │    0.03 │   0.31% │
│ python-jaraco-functools                   │     3.11 │     3.12 │    0.01 │   0.32% │
│ 2ping                                     │    63.65 │    63.86 │    0.21 │   0.33% │
│ python-jinja2                             │     2.93 │     2.94 │    0.01 │   0.34% │
│ python-pyvirtualdisplay                   │    70.71 │    70.98 │    0.27 │   0.38% │
│ python-glymur                             │    35.03 │    35.17 │    0.14 │   0.40% │
│ python-sshtunnel                          │    58.12 │    58.36 │    0.24 │   0.41% │
│ python-pytest-httpbin                     │     2.42 │     2.43 │    0.01 │   0.41% │
│ python-sphinxcontrib-websupport           │     4.83 │     4.85 │    0.02 │   0.41% │
│ python-meautility                         │     2.41 │     2.42 │    0.01 │   0.41% │
│ python-zeroconf                           │    77.72 │    78.05 │    0.33 │   0.42% │
│ python-pyswip                             │     4.67 │     4.69 │    0.02 │   0.43% │
│ python-spake2                             │     2.33 │     2.34 │    0.01 │   0.43% │
│ reuse                                     │    22.67 │    22.77 │    0.10 │   0.44% │
│ python-sphinx-hoverxref                   │     2.19 │     2.20 │    0.01 │   0.46% │
│ python-flask-caching                      │    85.70 │    86.12 │    0.42 │   0.49% │
│ python-waterfurnace                       │    10.13 │    10.18 │    0.05 │   0.49% │
│ python-photutils                          │   163.54 │   164.36 │    0.82 │   0.50% │
│ pipenv                                    │     3.89 │     3.91 │    0.02 │   0.51% │
│ python-pytest-xprocess                    │    36.76 │    36.95 │    0.19 │   0.52% │
│ cvise                                     │    45.26 │    45.54 │    0.28 │   0.62% │
│ python-swagger-spec-validator             │     1.61 │     1.62 │    0.01 │   0.62% │
│ python-pexpect                            │   171.16 │   172.25 │    1.09 │   0.64% │
│ python-pywt                               │    71.53 │    71.99 │    0.46 │   0.64% │
│ python-ssdp                               │     3.05 │     3.07 │    0.02 │   0.66% │
│ python-click-spinner                      │     3.03 │     3.05 │    0.02 │   0.66% │
│ python-mirakuru                           │    74.17 │    74.67 │    0.50 │   0.67% │
│ python-insteon                            │    64.19 │    64.64 │    0.45 │   0.70% │
│ python-easyprocess                        │    61.08 │    61.56 │    0.48 │   0.79% │
│ python-pytest-timeout                     │    39.51 │    39.83 │    0.32 │   0.81% │
│ python-pyphi                              │    55.25 │    55.72 │    0.47 │   0.85% │
│ pre-commit                                │    99.14 │   100.04 │    0.90 │   0.91% │
│ python-metakernel                         │    37.45 │    37.80 │    0.35 │   0.93% │
│ python-sphinx-notfound-page               │     6.29 │     6.35 │    0.06 │   0.95% │
│ artifacts                                 │     2.09 │     2.11 │    0.02 │   0.96% │
│ python-sphinxcontrib-openapi              │    12.48 │    12.60 │    0.12 │   0.96% │
│ python-neurodsp                           │     5.06 │     5.11 │    0.05 │   0.99% │
│ python-uvicorn                            │    38.53 │    38.92 │    0.39 │   1.01% │
│ python-libsass                            │     0.98 │     0.99 │    0.01 │   1.02% │
│ python-pyphen                             │     9.78 │     9.88 │    0.10 │   1.02% │
│ python-hpack                              │    10.61 │    10.72 │    0.11 │   1.04% │
│ python-pydocstyle                         │     6.67 │     6.74 │    0.07 │   1.05% │
│ python-lesscpy                            │    13.75 │    13.90 │    0.15 │   1.09% │
│ python-paramiko                           │    15.57 │    15.74 │    0.17 │   1.09% │
│ python-pytest-testinfra                   │     8.97 │     9.07 │    0.10 │   1.11% │
│ python-cartopy                            │    55.04 │    55.70 │    0.66 │   1.20% │
│ python-hupper                             │    10.38 │    10.51 │    0.13 │   1.25% │
│ python-pytenable                          │   190.27 │   192.74 │    2.47 │   1.30% │
│ python-guessit                            │    81.25 │    82.36 │    1.11 │   1.37% │
│ python-keyrings-alt                       │     0.72 │     0.73 │    0.01 │   1.39% │
│ python-calligrabot                        │     0.71 │     0.72 │    0.01 │   1.41% │
│ python-jsonpickle                         │     1.39 │     1.41 │    0.02 │   1.44% │
│ python-reproject                          │    99.56 │   101.08 │    1.52 │   1.53% │
│ python-wurlitzer                          │     0.65 │     0.66 │    0.01 │   1.54% │
│ python-fpylll                             │    77.90 │    79.10 │    1.20 │   1.54% │
│ python-fs                                 │    26.97 │    27.39 │    0.42 │   1.56% │
│ python-ptyprocess                         │     3.70 │     3.76 │    0.06 │   1.62% │
│ python-pynwb                              │    30.49 │    30.99 │    0.50 │   1.64% │
│ python-starlette                          │     6.52 │     6.63 │    0.11 │   1.69% │
│ rebase-helper                             │    11.79 │    11.99 │    0.20 │   1.70% │
│ python-amqp                               │    49.68 │    50.53 │    0.85 │   1.71% │
│ python-odml                               │     6.34 │     6.45 │    0.11 │   1.74% │
│ python-earthpy                            │     4.58 │     4.66 │    0.08 │   1.75% │
│ python-pytest-mock                        │     2.26 │     2.30 │    0.04 │   1.77% │
│ bandit                                    │     6.71 │     6.83 │    0.12 │   1.79% │
│ python-bluepyopt                          │   126.04 │   128.30 │    2.26 │   1.79% │
│ python-arrow                              │    16.15 │    16.44 │    0.29 │   1.80% │
│ copr-rpmbuild                             │     1.11 │     1.13 │    0.02 │   1.80% │
│ python-versioningit                       │    97.68 │    99.44 │    1.76 │   1.80% │
│ python-pytest-bdd                         │    12.20 │    12.43 │    0.23 │   1.89% │
│ python-bidict                             │     5.75 │     5.86 │    0.11 │   1.91% │
│ python-pytest-services                    │     2.07 │     2.11 │    0.04 │   1.93% │
│ python-diff-match-patch                   │     1.54 │     1.57 │    0.03 │   1.95% │
│ python-blackbird                          │     2.05 │     2.09 │    0.04 │   1.95% │
│ python-zipp                               │     0.50 │     0.51 │    0.01 │   2.00% │
│ python-falcon                             │    69.51 │    70.93 │    1.42 │   2.04% │
│ mock                                      │     0.95 │     0.97 │    0.02 │   2.11% │
│ dumb-init                                 │     8.49 │     8.67 │    0.18 │   2.12% │
│ python-jupyter-sphinx                     │    38.81 │    39.66 │    0.85 │   2.19% │
│ python-pingouin                           │    37.83 │    38.66 │    0.83 │   2.19% │
│ pyproject-rpm-macros                      │    19.13 │    19.55 │    0.42 │   2.20% │
│ copr-backend                              │    80.59 │    82.40 │    1.81 │   2.25% │
│ python-xeddsa                             │     3.94 │     4.03 │    0.09 │   2.28% │
│ python-pytest-subtests                    │     0.43 │     0.44 │    0.01 │   2.33% │
│ python-pytest-forked                      │     0.43 │     0.44 │    0.01 │   2.33% │
│ jrnl                                      │     9.38 │     9.60 │    0.22 │   2.35% │
│ python-lfpykit                            │     8.86 │     9.07 │    0.21 │   2.37% │
│ python-textdistance                       │    29.63 │    30.34 │    0.71 │   2.40% │
│ python-pydyf                              │     1.20 │     1.23 │    0.03 │   2.50% │
│ python-scripttest                         │     1.19 │     1.22 │    0.03 │   2.52% │
│ container-workflow-tool                   │     1.55 │     1.59 │    0.04 │   2.58% │
│ python-asyncpg                            │    60.64 │    62.26 │    1.62 │   2.67% │
│ python-epc                                │    20.38 │    20.93 │    0.55 │   2.70% │
│ python-prometheus_client                  │     4.67 │     4.80 │    0.13 │   2.78% │
│ python-ansible-runner                     │    68.75 │    70.67 │    1.92 │   2.79% │
│ python-lfpy                               │   156.60 │   161.03 │    4.43 │   2.83% │
│ python-cachez                             │     1.06 │     1.09 │    0.03 │   2.83% │
│ python-async-upnp-client                  │     1.40 │     1.44 │    0.04 │   2.86% │
│ python-cornice                            │     4.50 │     4.63 │    0.13 │   2.89% │
│ nicotine+                                 │    14.13 │    14.54 │    0.41 │   2.90% │
│ python-cloudpickle                        │     7.85 │     8.08 │    0.23 │   2.93% │
│ python-pebble                             │    10.90 │    11.22 │    0.32 │   2.94% │
│ python-scripttester                       │     0.34 │     0.35 │    0.01 │   2.94% │
│ python-ipyparallel                        │   280.77 │   289.05 │    8.28 │   2.95% │
│ python-liblarch                           │     8.45 │     8.70 │    0.25 │   2.96% │
│ cozy                                      │     4.72 │     4.86 │    0.14 │   2.97% │
│ python-sphinx_rtd_theme                   │     3.02 │     3.11 │    0.09 │   2.98% │
│ python-readthedocs-sphinx-ext             │     2.68 │     2.76 │    0.08 │   2.99% │
│ python-metaextract                        │     1.33 │     1.37 │    0.04 │   3.01% │
│ python-gsd                                │     3.97 │     4.09 │    0.12 │   3.02% │
│ pyserial-asyncio                          │     0.33 │     0.34 │    0.01 │   3.03% │
│ python-numpy-stl                          │     3.94 │     4.06 │    0.12 │   3.05% │
│ python-ws4py                              │     4.26 │     4.39 │    0.13 │   3.05% │
│ python-httpcore                           │    10.11 │    10.42 │    0.31 │   3.07% │
│ python-portend                            │     0.97 │     1.00 │    0.03 │   3.09% │
│ andriller                                 │     3.84 │     3.96 │    0.12 │   3.13% │
│ python-pyriemann                          │     6.37 │     6.57 │    0.20 │   3.14% │
│ python-opentelemetry                      │    32.45 │    33.47 │    1.02 │   3.14% │
│ python-acme                               │    15.82 │    16.32 │    0.50 │   3.16% │
│ python-conda-package-handling             │     0.94 │     0.97 │    0.03 │   3.19% │
│ snakemake                                 │     9.33 │     9.63 │    0.30 │   3.22% │
│ python-azure-core                         │    20.17 │    20.83 │    0.66 │   3.27% │
│ python-sphinxcontrib-bibtex               │    15.62 │    16.14 │    0.52 │   3.33% │
│ python-Automat                            │     0.30 │     0.31 │    0.01 │   3.33% │
│ mycli                                     │     4.80 │     4.96 │    0.16 │   3.33% │
│ pyzor                                     │     4.47 │     4.62 │    0.15 │   3.36% │
│ python-libcst                             │    27.55 │    28.48 │    0.93 │   3.38% │
│ python-libpysal                           │    29.70 │    30.72 │    1.02 │   3.43% │
│ python-wheel                              │     6.05 │     6.26 │    0.21 │   3.47% │
│ python-suds                               │     4.32 │     4.47 │    0.15 │   3.47% │
│ python-pytest-regressions                 │     3.32 │     3.44 │    0.12 │   3.61% │
│ python-fastavro                           │     1.92 │     1.99 │    0.07 │   3.65% │
│ python-trimesh                            │   660.77 │   684.87 │   24.10 │   3.65% │
│ python-matplotlib                         │   336.97 │   349.31 │   12.34 │   3.66% │
│ abrt                                      │     2.17 │     2.25 │    0.08 │   3.69% │
│ python-plaster-pastedeploy                │     0.54 │     0.56 │    0.02 │   3.70% │
│ python-aresponses                         │     0.27 │     0.28 │    0.01 │   3.70% │
│ python-asgiref                            │     7.55 │     7.83 │    0.28 │   3.71% │
│ python-hypothesmith                       │   493.68 │   512.12 │   18.44 │   3.74% │
│ python-zarr                               │    37.85 │    39.27 │    1.42 │   3.75% │
│ python-imbalanced-learn                   │   104.44 │   108.37 │    3.93 │   3.76% │
│ python-pytest-subprocess                  │     3.71 │     3.85 │    0.14 │   3.77% │
│ python-owl_rl                             │     1.84 │     1.91 │    0.07 │   3.80% │
│ python-sphinxtesters                      │     4.71 │     4.89 │    0.18 │   3.82% │
│ python-etcd3gw                            │     0.26 │     0.27 │    0.01 │   3.85% │
│ litecli                                   │     4.68 │     4.86 │    0.18 │   3.85% │
│ python-niapy                              │   330.65 │   343.48 │   12.83 │   3.88% │
│ python-ansiwrap                           │     0.76 │     0.79 │    0.03 │   3.95% │
│ python-cffi                               │   211.55 │   220.06 │    8.51 │   4.02% │
│ python-rasterio                           │    48.33 │    50.28 │    1.95 │   4.03% │
│ python-apprise                            │    26.80 │    27.90 │    1.10 │   4.10% │
│ python-fiona                              │    11.16 │    11.62 │    0.46 │   4.12% │
│ rst2txt                                   │     0.24 │     0.25 │    0.01 │   4.17% │
│ python-parsley                            │     3.04 │     3.17 │    0.13 │   4.28% │
│ sen                                       │     2.54 │     2.65 │    0.11 │   4.33% │
│ weasyprint                                │    90.75 │    94.69 │    3.94 │   4.34% │
│ python-mplcairo                           │   248.26 │   259.05 │   10.79 │   4.35% │
│ python-geopy                              │     1.15 │     1.20 │    0.05 │   4.35% │
│ python-typer                              │    26.40 │    27.58 │    1.18 │   4.47% │
│ python-pyqtgraph                          │   138.41 │   144.65 │    6.24 │   4.51% │
│ python-social-auth-core                   │    25.91 │    27.08 │    1.17 │   4.52% │
│ python-mpmath                             │    72.35 │    75.62 │    3.27 │   4.52% │
│ python-stompest                           │     2.54 │     2.66 │    0.12 │   4.72% │
│ python-hdate                              │     5.26 │     5.51 │    0.25 │   4.75% │
│ python-retryz                             │     1.05 │     1.10 │    0.05 │   4.76% │
│ python-altgraph                           │     0.21 │     0.22 │    0.01 │   4.76% │
│ python-azure-appconfiguration             │     0.42 │     0.44 │    0.02 │   4.76% │
│ mkdocs-markdownextradata-plugin           │     0.21 │     0.22 │    0.01 │   4.76% │
│ python-py-gql                             │     5.90 │     6.19 │    0.29 │   4.92% │
│ python-jmespath                           │   430.69 │   451.99 │   21.30 │   4.95% │
│ python-pytest-xdist                       │    39.77 │    41.75 │    1.98 │   4.98% │
│ python-pybtex-docutils                    │     0.20 │     0.21 │    0.01 │   5.00% │
│ python-sphinx                             │   126.46 │   132.89 │    6.43 │   5.08% │
│ python-dijitso                            │     0.78 │     0.82 │    0.04 │   5.13% │
│ python-llfuse                             │     1.16 │     1.22 │    0.06 │   5.17% │
│ borgbackup                                │   260.53 │   274.30 │   13.77 │   5.29% │
│ python-progressbar2                       │     2.64 │     2.78 │    0.14 │   5.30% │
│ python-cffsubr                            │     6.16 │     6.49 │    0.33 │   5.36% │
│ python-parso                              │     7.08 │     7.46 │    0.38 │   5.37% │
│ python-urllib3                            │     9.99 │    10.53 │    0.54 │   5.41% │
│ python-augeas                             │    12.03 │    12.69 │    0.66 │   5.49% │
│ python-build                              │    53.14 │    56.07 │    2.93 │   5.51% │
│ python-jupyter-packaging                  │     0.54 │     0.57 │    0.03 │   5.56% │
│ python-fsspec                             │    20.29 │    21.42 │    1.13 │   5.57% │
│ python-emoji                              │     1.43 │     1.51 │    0.08 │   5.59% │
│ python-astropy                            │   295.43 │   312.09 │   16.66 │   5.64% │
│ exaile                                    │     0.88 │     0.93 │    0.05 │   5.68% │
│ fmf                                       │     8.46 │     8.95 │    0.49 │   5.79% │
│ gnofract4d                                │    42.58 │    45.08 │    2.50 │   5.87% │
│ visidata                                  │     0.34 │     0.36 │    0.02 │   5.88% │
│ python-sphinxcontrib-jsmath               │     0.68 │     0.72 │    0.04 │   5.88% │
│ copr-messaging                            │     0.51 │     0.54 │    0.03 │   5.88% │
│ python-cu2qu                              │     3.36 │     3.56 │    0.20 │   5.95% │
│ python-jwcrypto                           │     7.02 │     7.44 │    0.42 │   5.98% │
│ libvirt-test-API                          │     5.51 │     5.84 │    0.33 │   5.99% │
│ python-google-cloud-spanner               │    23.70 │    25.13 │    1.43 │   6.03% │
│ python-sphinxcontrib-programoutput        │     5.28 │     5.60 │    0.32 │   6.06% │
│ python-certbot-dns-ovh                    │     0.33 │     0.35 │    0.02 │   6.06% │
│ python-jose                               │    37.51 │    39.81 │    2.30 │   6.13% │
│ python-microfs                            │     1.14 │     1.21 │    0.07 │   6.14% │
│ frr                                       │    11.72 │    12.44 │    0.72 │   6.14% │
│ python-jupyter-client                     │   164.34 │   174.57 │   10.23 │   6.22% │
│ gaupol                                    │    20.50 │    21.78 │    1.28 │   6.24% │
│ patool                                    │     7.25 │     7.71 │    0.46 │   6.34% │
│ fedfind                                   │     3.92 │     4.17 │    0.25 │   6.38% │
│ python-dns-lexicon                        │    94.06 │   100.08 │    6.02 │   6.40% │
│ python-x3dh                               │     5.26 │     5.60 │    0.34 │   6.46% │
│ python-dotenv                             │     1.07 │     1.14 │    0.07 │   6.54% │
│ liquidctl                                 │     3.64 │     3.88 │    0.24 │   6.59% │
│ conda                                     │   198.66 │   211.95 │   13.29 │   6.69% │
│ python-myst-parser                        │     6.81 │     7.27 │    0.46 │   6.75% │
│ python-convertdate                        │     6.73 │     7.19 │    0.46 │   6.84% │
│ python-matplotlib-scalebar                │     1.90 │     2.03 │    0.13 │   6.84% │
│ python-drgn                               │     1.89 │     2.02 │    0.13 │   6.88% │
│ python-botocore                           │   937.78 │  1002.44 │   64.66 │   6.90% │
│ python-pdfkit                             │     1.14 │     1.22 │    0.08 │   7.02% │
│ python-nagiosplugin                       │     1.41 │     1.51 │    0.10 │   7.09% │
│ python-daikin                             │    43.42 │    46.52 │    3.10 │   7.14% │
│ python-paste-deploy                       │     0.28 │     0.30 │    0.02 │   7.14% │
│ python-ephem                              │     2.23 │     2.39 │    0.16 │   7.17% │
│ gpaw                                      │    29.21 │    31.31 │    2.10 │   7.19% │
│ python-flask-sqlalchemy                   │     0.54 │     0.58 │    0.04 │   7.41% │
│ python-test_server                        │    26.00 │    27.93 │    1.93 │   7.42% │
│ python-nilearn                            │   829.63 │   891.28 │   61.65 │   7.43% │
│ python-prawcore                           │     0.40 │     0.43 │    0.03 │   7.50% │
│ python-stochastic                         │     2.51 │     2.70 │    0.19 │   7.57% │
│ python-jsonref                            │     0.26 │     0.28 │    0.02 │   7.69% │
│ python-cookiecutter                       │     4.37 │     4.71 │    0.34 │   7.78% │
│ awscli                                    │   264.32 │   285.42 │   21.10 │   7.98% │
│ python-hypothesis                         │   757.06 │   818.41 │   61.35 │   8.10% │
│ python-geoplot                            │    19.84 │    21.45 │    1.61 │   8.11% │
│ python-setuptools                         │    70.81 │    76.68 │    5.87 │   8.29% │
│ python-boututils                          │     0.12 │     0.13 │    0.01 │   8.33% │
│ python-pyrpm                              │     0.36 │     0.39 │    0.03 │   8.33% │
│ python-resumable-urlretrieve              │     0.12 │     0.13 │    0.01 │   8.33% │
│ python-docker-squash                      │     0.24 │     0.26 │    0.02 │   8.33% │
│ python-PyMuPDF                            │     1.66 │     1.80 │    0.14 │   8.43% │
│ python-twine                              │     1.65 │     1.79 │    0.14 │   8.48% │
│ python-ansible-compat                     │    13.97 │    15.16 │    1.19 │   8.52% │
│ python-colcon-bazel                       │     0.23 │     0.25 │    0.02 │   8.70% │
│ python-inflect                            │     0.69 │     0.75 │    0.06 │   8.70% │
│ python-asyncio-dgram                      │     0.80 │     0.87 │    0.07 │   8.75% │
│ python-pyelectro                          │     0.80 │     0.87 │    0.07 │   8.75% │
│ copr-keygen                               │     0.34 │     0.37 │    0.03 │   8.82% │
│ python-partd                              │     1.23 │     1.34 │    0.11 │   8.94% │
│ python-maya                               │     2.57 │     2.80 │    0.23 │   8.95% │
│ python-certbot-dns-plesk                  │     0.33 │     0.36 │    0.03 │   9.09% │
│ python-threadpoolctl                      │     0.11 │     0.12 │    0.01 │   9.09% │
│ python-crashtest                          │     0.22 │     0.24 │    0.02 │   9.09% │
│ python-rangehttpserver                    │     0.11 │     0.12 │    0.01 │   9.09% │
│ python-colcon-ros-bundle                  │     0.22 │     0.24 │    0.02 │   9.09% │
│ python-s3transfer                         │    28.57 │    31.20 │    2.63 │   9.21% │
│ python-libNeuroML                         │     3.68 │     4.02 │    0.34 │   9.24% │
│ python-zxcvbn                             │     0.54 │     0.59 │    0.05 │   9.26% │
│ python-pyswarms                           │    44.80 │    48.96 │    4.16 │   9.29% │
│ python-trustme                            │    20.76 │    22.69 │    1.93 │   9.30% │
│ python-steam                              │     1.07 │     1.17 │    0.10 │   9.35% │
│ python-html2text                          │     2.67 │     2.92 │    0.25 │   9.36% │
│ python-certbot-dns-rfc2136                │     0.32 │     0.35 │    0.03 │   9.37% │
│ python-google-auth-oauthlib               │     0.32 │     0.35 │    0.03 │   9.37% │
│ python-certbot-dns-dnsimple               │     0.32 │     0.35 │    0.03 │   9.37% │
│ python-certbot-dns-dnsmadeeasy            │     0.32 │     0.35 │    0.03 │   9.37% │
│ python-certbot-dns-nsone                  │     0.32 │     0.35 │    0.03 │   9.37% │
│ python-pip                                │    18.66 │    20.42 │    1.76 │   9.43% │
│ python-eccodes                            │     2.12 │     2.32 │    0.20 │   9.43% │
│ cura                                      │    29.01 │    31.76 │    2.75 │   9.48% │
│ python-pem                                │     0.21 │     0.23 │    0.02 │   9.52% │
│ python-sphinx-intl                        │     0.21 │     0.23 │    0.02 │   9.52% │
│ python-pytest-shutil                      │     1.67 │     1.83 │    0.16 │   9.58% │
│ proselint                                 │     3.11 │     3.41 │    0.30 │   9.65% │
│ python-pint                               │    24.33 │    26.68 │    2.35 │   9.66% │
│ python-certbot-dns-google                 │     0.51 │     0.56 │    0.05 │   9.80% │
│ python-exoscale                           │     2.13 │     2.34 │    0.21 │   9.86% │
│ python-async-generator                    │     0.20 │     0.22 │    0.02 │  10.00% │
│ python-kdcproxy                           │     0.10 │     0.11 │    0.01 │  10.00% │
│ python-click-plugins                      │     0.10 │     0.11 │    0.01 │  10.00% │
│ python3-pytest-asyncio                    │     1.79 │     1.97 │    0.18 │  10.06% │
│ copr-cli                                  │     1.19 │     1.31 │    0.12 │  10.08% │
│ python-colcon-core                        │     3.93 │     4.33 │    0.40 │  10.18% │
│ python-certbot-dns-digitalocean           │     0.29 │     0.32 │    0.03 │  10.34% │
│ python-pyscaffold                         │    14.01 │    15.46 │    1.45 │  10.35% │
│ python-breathe                            │     0.77 │     0.85 │    0.08 │  10.39% │
│ python-setuptools_scm                     │    45.76 │    50.54 │    4.78 │  10.45% │
│ python-webtest                            │     4.47 │     4.94 │    0.47 │  10.51% │
│ python-pynetbox                           │     0.38 │     0.42 │    0.04 │  10.53% │
│ python-gast                               │     0.38 │     0.42 │    0.04 │  10.53% │
│ python-snuggs                             │     0.38 │     0.42 │    0.04 │  10.53% │
│ python-pytools                            │     0.95 │     1.05 │    0.10 │  10.53% │
│ python-datrie                             │     2.28 │     2.52 │    0.24 │  10.53% │
│ copr-frontend                             │    51.85 │    57.33 │    5.48 │  10.57% │
│ python-pycurl                             │    20.04 │    22.17 │    2.13 │  10.63% │
│ python-streamlink                         │    15.30 │    16.94 │    1.64 │  10.72% │
│ python-attrs                              │    19.68 │    21.82 │    2.14 │  10.87% │
│ python-pycdlib                            │     9.64 │    10.70 │    1.06 │  11.00% │
│ python-beanbag                            │     0.09 │     0.10 │    0.01 │  11.11% │
│ python-smart_open                         │     0.09 │     0.10 │    0.01 │  11.11% │
│ python-websocket-client                   │     0.18 │     0.20 │    0.02 │  11.11% │
│ python-easyargs                           │     0.09 │     0.10 │    0.01 │  11.11% │
│ python-click-repl                         │     0.09 │     0.10 │    0.01 │  11.11% │
│ python-fastcache                          │    19.13 │    21.27 │    2.14 │  11.19% │
│ python-jsons                              │     1.07 │     1.19 │    0.12 │  11.21% │
│ python-pysnooper                          │     1.07 │     1.19 │    0.12 │  11.21% │
│ python-pytest-sugar                       │     1.77 │     1.97 │    0.20 │  11.30% │
│ python-ipywidgets                         │     1.68 │     1.87 │    0.19 │  11.31% │
│ python-pytest-cov                         │    72.85 │    81.10 │    8.25 │  11.32% │
│ python-h5io                               │     0.44 │     0.49 │    0.05 │  11.36% │
│ python-pytest-virtualenv                  │     0.60 │     0.67 │    0.07 │  11.67% │
│ python-robosignatory                      │     2.22 │     2.48 │    0.26 │  11.71% │
│ python-praw                               │    14.87 │    16.62 │    1.75 │  11.77% │
│ fedmsg                                    │    13.39 │    14.99 │    1.60 │  11.95% │
│ python-billiard                           │     1.16 │     1.30 │    0.14 │  12.07% │
│ python-pytest-freezegun                   │     0.91 │     1.02 │    0.11 │  12.09% │
│ python-asteval                            │     0.98 │     1.10 │    0.12 │  12.24% │
│ wad                                       │     0.56 │     0.63 │    0.07 │  12.50% │
│ python-flask-socketio                     │     0.32 │     0.36 │    0.04 │  12.50% │
│ python-certbot-dns-sakuracloud            │     0.32 │     0.36 │    0.04 │  12.50% │
│ python-pyunicorn                          │     8.08 │     9.10 │    1.02 │  12.62% │
│ python-certbot-dns-cloudflare             │     0.39 │     0.44 │    0.05 │  12.82% │
│ python-flit                               │     2.25 │     2.54 │    0.29 │  12.89% │
│ resultsdb                                 │     4.95 │     5.59 │    0.64 │  12.93% │
│ python-google-cloud-automl                │     7.41 │     8.37 │    0.96 │  12.96% │
│ python-fslpy                              │   116.43 │   131.61 │   15.18 │  13.04% │
│ python-nbclient                           │    57.16 │    64.63 │    7.47 │  13.07% │
│ python-zstandard                          │    23.95 │    27.08 │    3.13 │  13.07% │
│ python-maxminddb                          │     1.37 │     1.55 │    0.18 │  13.14% │
│ python-poetry-core                        │     3.50 │     3.96 │    0.46 │  13.14% │
│ python-fixit                              │     1.14 │     1.29 │    0.15 │  13.16% │
│ xonsh                                     │    58.26 │    65.93 │    7.67 │  13.17% │
│ python-pytelegrambotapi                   │     1.28 │     1.45 │    0.17 │  13.28% │
│ python-distro                             │     1.19 │     1.35 │    0.16 │  13.45% │
│ python-proto-plus                         │     1.11 │     1.26 │    0.15 │  13.51% │
│ python-advisory-parser                    │     0.37 │     0.42 │    0.05 │  13.51% │
│ python-mako                               │     3.03 │     3.44 │    0.41 │  13.53% │
│ home-assistant-cli                        │     0.88 │     1.00 │    0.12 │  13.64% │
│ python-pytest-tornado                     │     0.29 │     0.33 │    0.04 │  13.79% │
│ python-pyedflib                           │     5.21 │     5.93 │    0.72 │  13.82% │
│ python-virtualenv                         │    25.79 │    29.37 │    3.58 │  13.88% │
│ python-ffc                                │     8.93 │    10.18 │    1.25 │  14.00% │
│ python-requests-toolbelt                  │     1.69 │     1.93 │    0.24 │  14.20% │
│ python-chardet                            │    25.70 │    29.35 │    3.65 │  14.20% │
│ python-sexpdata                           │     0.21 │     0.24 │    0.03 │  14.29% │
│ python-pytest-metadata                    │     0.21 │     0.24 │    0.03 │  14.29% │
│ odfpy                                     │     1.10 │     1.26 │    0.16 │  14.55% │
│ python-multidict                          │     1.35 │     1.55 │    0.20 │  14.81% │
│ python-PyGithub                           │    44.10 │    50.65 │    6.55 │  14.85% │
│ ocrmypdf                                  │   214.98 │   247.22 │   32.24 │  15.00% │
│ httpie                                    │    17.71 │    20.37 │    2.66 │  15.02% │
│ python-nbformat                           │     1.39 │     1.60 │    0.21 │  15.11% │
│ python-certbot-dns-cloudxns               │     0.33 │     0.38 │    0.05 │  15.15% │
│ python-cbor2                              │     1.18 │     1.36 │    0.18 │  15.25% │
│ python-haversion                          │     0.13 │     0.15 │    0.02 │  15.38% │
│ python-marshmallow-enum                   │     0.13 │     0.15 │    0.02 │  15.38% │
│ python-fastapi                            │    12.02 │    13.87 │    1.85 │  15.39% │
│ python-sortedcontainers                   │    10.58 │    12.23 │    1.65 │  15.60% │
│ python-gitlab                             │     1.41 │     1.63 │    0.22 │  15.60% │
│ python-periodictable                      │     1.73 │     2.00 │    0.27 │  15.61% │
│ python-certbot-dns-gehirn                 │     0.32 │     0.37 │    0.05 │  15.62% │
│ python-freezegun                          │     0.83 │     0.96 │    0.13 │  15.66% │
│ python-rfc3986                            │     2.48 │     2.87 │    0.39 │  15.73% │
│ python-graphql-core                       │     4.98 │     5.77 │    0.79 │  15.86% │
│ modulemd-tools                            │     0.88 │     1.02 │    0.14 │  15.91% │
│ freeipa-healthcheck                       │     1.94 │     2.25 │    0.31 │  15.98% │
│ python-txaio                              │     0.31 │     0.36 │    0.05 │  16.13% │
│ python-astral                             │     0.73 │     0.85 │    0.12 │  16.44% │
│ python-google-cloud-bigtable              │    19.48 │    22.70 │    3.22 │  16.53% │
│ python-abimap                             │     0.54 │     0.63 │    0.09 │  16.67% │
│ python-readability-lxml                   │     0.18 │     0.21 │    0.03 │  16.67% │
│ python-pygit2                             │     3.00 │     3.50 │    0.50 │  16.67% │
│ sgmanager                                 │     0.06 │     0.07 │    0.01 │  16.67% │
│ python-dukpy                              │     0.06 │     0.07 │    0.01 │  16.67% │
│ ursa-major                                │     0.48 │     0.56 │    0.08 │  16.67% │
│ python-nudatus                            │     0.06 │     0.07 │    0.01 │  16.67% │
│ python-aiomqtt                            │     6.18 │     7.22 │    1.04 │  16.83% │
│ python-scramp                             │     0.53 │     0.62 │    0.09 │  16.98% │
│ python-pytest-ordering                    │     0.41 │     0.48 │    0.07 │  17.07% │
│ python-pep517                             │     1.52 │     1.78 │    0.26 │  17.11% │
│ python-indexed_gzip                       │  1087.85 │  1273.99 │  186.14 │  17.11% │
│ python-engineio                           │     5.01 │     5.87 │    0.86 │  17.17% │
│ python-noiseprotocol                      │     4.41 │     5.18 │    0.77 │  17.46% │
│ python-databases                          │     1.14 │     1.34 │    0.20 │  17.54% │
│ python-exdir                              │     2.96 │     3.48 │    0.52 │  17.57% │
│ python-requests-kerberos                  │     0.17 │     0.20 │    0.03 │  17.65% │
│ python-testpath                           │     0.17 │     0.20 │    0.03 │  17.65% │
│ python-markupsafe                         │     0.17 │     0.20 │    0.03 │  17.65% │
│ python-plaster                            │     0.28 │     0.33 │    0.05 │  17.86% │
│ python-testfixtures                       │     1.99 │     2.35 │    0.36 │  18.09% │
│ python-azure-mgmt-loganalytics            │     0.22 │     0.26 │    0.04 │  18.18% │
│ python-pyemd                              │     0.11 │     0.13 │    0.02 │  18.18% │
│ python-ansible-pygments                   │     0.22 │     0.26 │    0.04 │  18.18% │
│ python-werkzeug                           │    14.49 │    17.14 │    2.65 │  18.29% │
│ python-represent                          │     0.27 │     0.32 │    0.05 │  18.52% │
│ python-msrestazure                        │     3.01 │     3.57 │    0.56 │  18.60% │
│ python-pyrsistent                         │     9.91 │    11.76 │    1.85 │  18.67% │
│ python-eyed3                              │     0.96 │     1.14 │    0.18 │  18.75% │
│ fedora-third-party                        │     0.16 │     0.19 │    0.03 │  18.75% │
│ python-pytest-xvfb                        │     0.64 │     0.76 │    0.12 │  18.75% │
│ python-nuheat                             │     0.16 │     0.19 │    0.03 │  18.75% │
│ python-fontMath                           │     1.27 │     1.51 │    0.24 │  18.90% │
│ python-google-cloud-bigquery-storage      │     2.80 │     3.33 │    0.53 │  18.93% │
│ python-vine                               │     0.21 │     0.25 │    0.04 │  19.05% │
│ python-fields                             │     0.21 │     0.25 │    0.04 │  19.05% │
│ python-pecan-notario                      │     0.21 │     0.25 │    0.04 │  19.05% │
│ python-anymarkup                          │     0.21 │     0.25 │    0.04 │  19.05% │
│ flatpak-module-tools                      │     0.47 │     0.56 │    0.09 │  19.15% │
│ python-port-for                           │     0.20 │     0.24 │    0.04 │  20.00% │
│ python-colcon-ros                         │     0.10 │     0.12 │    0.02 │  20.00% │
│ python-openqa_client                      │     0.20 │     0.24 │    0.04 │  20.00% │
│ python-hass-data-detective                │     0.05 │     0.06 │    0.01 │  20.00% │
│ python-tcxreader                          │     6.14 │     7.37 │    1.23 │  20.03% │
│ python-whoosh                             │     9.22 │    11.07 │    1.85 │  20.07% │
│ python-cvxopt                             │     2.64 │     3.17 │    0.53 │  20.08% │
│ python-aiofiles                           │     1.59 │     1.91 │    0.32 │  20.13% │
│ python-jupyter-core                       │     0.64 │     0.77 │    0.13 │  20.31% │
│ pybind11                                  │     7.51 │     9.05 │    1.54 │  20.51% │
│ python-colcon-bundle                      │     0.68 │     0.82 │    0.14 │  20.59% │
│ python-pytest-steps                       │     1.01 │     1.22 │    0.21 │  20.79% │
│ python-qstylizer                          │     0.24 │     0.29 │    0.05 │  20.83% │
│ python-CacheControl                       │     0.43 │     0.52 │    0.09 │  20.93% │
│ python-wikipedia                          │     0.19 │     0.23 │    0.04 │  21.05% │
│ python-pluggy                             │     0.19 │     0.23 │    0.04 │  21.05% │
│ python-cftime                             │    46.43 │    56.22 │    9.79 │  21.09% │
│ python-fastjsonschema                     │     0.66 │     0.80 │    0.14 │  21.21% │
│ python-docopt                             │     0.33 │     0.40 │    0.07 │  21.21% │
│ python-charset-normalizer                 │     2.20 │     2.67 │    0.47 │  21.36% │
│ python-google-crc32c                      │     0.14 │     0.17 │    0.03 │  21.43% │
│ python-citeproc-py                        │     0.14 │     0.17 │    0.03 │  21.43% │
│ python-libarchive-c                       │     0.28 │     0.34 │    0.06 │  21.43% │
│ python-azure-mgmt-sql                     │     0.46 │     0.56 │    0.10 │  21.74% │
│ python-requests-credssp                   │     0.27 │     0.33 │    0.06 │  22.22% │
│ python-pyairnow                           │     0.18 │     0.22 │    0.04 │  22.22% │
│ pydeps                                    │     0.36 │     0.44 │    0.08 │  22.22% │
│ python-requests-file                      │     0.09 │     0.11 │    0.02 │  22.22% │
│ python-evic                               │     0.09 │     0.11 │    0.02 │  22.22% │
│ python-pycoingecko                        │     0.18 │     0.22 │    0.04 │  22.22% │
│ diceware                                  │     0.94 │     1.15 │    0.21 │  22.34% │
│ python-hyperframe                         │     0.31 │     0.38 │    0.07 │  22.58% │
│ python-azure-mgmt-compute                 │     2.61 │     3.20 │    0.59 │  22.61% │
│ python-google-cloud-private-ca            │     4.31 │     5.29 │    0.98 │  22.74% │
│ mu                                        │     4.92 │     6.06 │    1.14 │  23.17% │
│ python-lz4                                │   956.48 │  1178.22 │  221.74 │  23.18% │
│ python-adal                               │     0.69 │     0.85 │    0.16 │  23.19% │
│ python-jnius                              │     0.73 │     0.90 │    0.17 │  23.29% │
│ python-jedi                               │    34.86 │    43.05 │    8.19 │  23.49% │
│ python-execnet                            │    24.18 │    29.96 │    5.78 │  23.90% │
│ python-codecov                            │     0.25 │     0.31 │    0.06 │  24.00% │
│ python-knack                              │     0.79 │     0.98 │    0.19 │  24.05% │
│ paternoster                               │     5.92 │     7.35 │    1.43 │  24.16% │
│ python-google-cloud-build                 │     1.59 │     1.98 │    0.39 │  24.53% │
│ python-pytest-repeat                      │     0.57 │     0.71 │    0.14 │  24.56% │
│ did                                       │     0.28 │     0.35 │    0.07 │  25.00% │
│ python-accuweather                        │     0.20 │     0.25 │    0.05 │  25.00% │
│ python-winrm                              │     0.20 │     0.25 │    0.05 │  25.00% │
│ python-parse_type                         │     0.48 │     0.60 │    0.12 │  25.00% │
│ python-jinja2-cli                         │     0.04 │     0.05 │    0.01 │  25.00% │
│ python-betamax-matchers                   │     0.04 │     0.05 │    0.01 │  25.00% │
│ python-mccabe                             │     0.04 │     0.05 │    0.01 │  25.00% │
│ python-pyte                               │     0.86 │     1.08 │    0.22 │  25.58% │
│ python-ufoLib2                            │     0.39 │     0.49 │    0.10 │  25.64% │
│ python-google-cloud-asset                 │     3.53 │     4.44 │    0.91 │  25.78% │
│ python-platformdirs                       │     0.27 │     0.34 │    0.07 │  25.93% │
│ python-google-cloud-billing               │     1.31 │     1.65 │    0.34 │  25.95% │
│ python-sphinxcontrib-htmlhelp             │     0.83 │     1.05 │    0.22 │  26.51% │
│ python-et_xmlfile                         │     0.41 │     0.52 │    0.11 │  26.83% │
│ docker-compose                            │    22.94 │    29.15 │    6.21 │  27.07% │
│ virt-lightning                            │     0.11 │     0.14 │    0.03 │  27.27% │
│ python-OBD                                │     0.84 │     1.07 │    0.23 │  27.38% │
│ python-click                              │     1.24 │     1.58 │    0.34 │  27.42% │
│ python-flask-babel                        │     0.29 │     0.37 │    0.08 │  27.59% │
│ python-filelock                           │     1.45 │     1.85 │    0.40 │  27.59% │
│ python-google-cloud-bigquery-connection   │     0.83 │     1.06 │    0.23 │  27.71% │
│ toot                                      │     0.36 │     0.46 │    0.10 │  27.78% │
│ python-cairosvg                           │     5.86 │     7.49 │    1.63 │  27.82% │
│ python-pybtex                             │     2.84 │     3.63 │    0.79 │  27.82% │
│ backintime                                │    11.66 │    14.91 │    3.25 │  27.87% │
│ python-pyerfa                             │     1.47 │     1.88 │    0.41 │  27.89% │
│ python-sphinx-testing                     │     0.93 │     1.19 │    0.26 │  27.96% │
│ tracer                                    │     0.25 │     0.32 │    0.07 │  28.00% │
│ python-qcelemental                        │     4.39 │     5.62 │    1.23 │  28.02% │
│ python-celery                             │    10.45 │    13.38 │    2.93 │  28.04% │
│ python-jwt                                │     1.28 │     1.64 │    0.36 │  28.12% │
│ morphio                                   │     0.64 │     0.82 │    0.18 │  28.12% │
│ python-cssutils                           │     3.16 │     4.05 │    0.89 │  28.16% │
│ python-pytest-lazy-fixture                │     1.20 │     1.54 │    0.34 │  28.33% │
│ python-pytest-sourceorder                 │     0.07 │     0.09 │    0.02 │  28.57% │
│ python-requests-exoscale-auth             │     0.07 │     0.09 │    0.02 │  28.57% │
│ resultsdb_conventions                     │     0.07 │     0.09 │    0.02 │  28.57% │
│ python-toml                               │     0.14 │     0.18 │    0.04 │  28.57% │
│ auditwheel                                │     0.59 │     0.76 │    0.17 │  28.81% │
│ python-mwclient                           │     0.62 │     0.80 │    0.18 │  29.03% │
│ python-semver                             │     0.55 │     0.71 │    0.16 │  29.09% │
│ python-configupdater                      │     0.24 │     0.31 │    0.07 │  29.17% │
│ python-pytest-toolbox                     │     0.17 │     0.22 │    0.05 │  29.41% │
│ python-tomlkit                            │     4.37 │     5.66 │    1.29 │  29.52% │
│ python-google-cloud-containeranalysis     │     0.64 │     0.83 │    0.19 │  29.69% │
│ python-pynacl                             │    25.54 │    33.16 │    7.62 │  29.84% │
│ python-pytest-multihost                   │     0.10 │     0.13 │    0.03 │  30.00% │
│ python-remoto                             │     0.10 │     0.13 │    0.03 │  30.00% │
│ python-autobahn                           │     1.23 │     1.60 │    0.37 │  30.08% │
│ uflash                                    │     0.23 │     0.30 │    0.07 │  30.43% │
│ python-google-cloud-functions             │     0.98 │     1.28 │    0.30 │  30.61% │
│ python-mechanicalsoup                     │     1.92 │     2.51 │    0.59 │  30.73% │
│ python-gios                               │     0.26 │     0.34 │    0.08 │  30.77% │
│ python-pgspecial                          │     0.13 │     0.17 │    0.04 │  30.77% │
│ python-google-cloud-bigquery-datatransfer │     1.29 │     1.69 │    0.40 │  31.01% │
│ python-pybv                               │     1.25 │     1.64 │    0.39 │  31.20% │
│ python-copr                               │     0.22 │     0.29 │    0.07 │  31.82% │
│ python-textfsm                            │     0.22 │     0.29 │    0.07 │  31.82% │
│ python-numpydoc                           │     1.35 │     1.78 │    0.43 │  31.85% │
│ python-capturer                           │     0.53 │     0.70 │    0.17 │  32.08% │
│ python-javaproperties                     │     1.37 │     1.81 │    0.44 │  32.12% │
│ python-surt                               │     0.28 │     0.37 │    0.09 │  32.14% │
│ python-google-cloud-container             │     5.02 │     6.64 │    1.62 │  32.27% │
│ copr-dist-git                             │     4.21 │     5.57 │    1.36 │  32.30% │
│ python-branca                             │     2.85 │     3.78 │    0.93 │  32.63% │
│ python-google-resumable-media             │     1.01 │     1.34 │    0.33 │  32.67% │
│ python-name-that-hash                     │     0.27 │     0.36 │    0.09 │  33.33% │
│ python-cligj                              │     0.09 │     0.12 │    0.03 │  33.33% │
│ python-memcached                          │     0.09 │     0.12 │    0.03 │  33.33% │
│ python-brother                            │     0.39 │     0.52 │    0.13 │  33.33% │
│ python-rebulk                             │     0.90 │     1.20 │    0.30 │  33.33% │
│ testcloud                                 │     0.33 │     0.44 │    0.11 │  33.33% │
│ python-pycosat                            │     0.06 │     0.08 │    0.02 │  33.33% │
│ python-repomd                             │     0.12 │     0.16 │    0.04 │  33.33% │
│ python-click-help-colors                  │     0.06 │     0.08 │    0.02 │  33.33% │
│ python-click-didyoumean                   │     0.03 │     0.04 │    0.01 │  33.33% │
│ python-freetype                           │     0.03 │     0.04 │    0.01 │  33.33% │
│ python-imagesize                          │     0.03 │     0.04 │    0.01 │  33.33% │
│ python-filetype                           │     0.06 │     0.08 │    0.02 │  33.33% │
│ python-gevent-eventemitter                │     0.06 │     0.08 │    0.02 │  33.33% │
│ python-send2trash                         │     0.06 │     0.08 │    0.02 │  33.33% │
│ pytz                                      │     0.86 │     1.15 │    0.29 │  33.72% │
│ python-virtualenv-clone                   │    10.70 │    14.32 │    3.62 │  33.83% │
│ python-contextily                         │     1.12 │     1.50 │    0.38 │  33.93% │
│ python-cairocffi                          │     0.50 │     0.67 │    0.17 │  34.00% │
│ python-coloredlogs                        │     0.55 │     0.74 │    0.19 │  34.55% │
│ python-importmagic                        │     0.26 │     0.35 │    0.09 │  34.62% │
│ python-inject                             │     0.20 │     0.27 │    0.07 │  35.00% │
│ python-ajsonrpc                           │     0.20 │     0.27 │    0.07 │  35.00% │
│ python-google-cloud-iam                   │     0.54 │     0.73 │    0.19 │  35.19% │
│ python-compreffor                         │     0.17 │     0.23 │    0.06 │  35.29% │
│ python-annexremote                        │     0.25 │     0.34 │    0.09 │  36.00% │
│ python-wcwidth                            │     0.11 │     0.15 │    0.04 │  36.36% │
│ python-google-cloud-redis                 │     1.59 │     2.17 │    0.58 │  36.48% │
│ python-geopandas                          │    77.61 │   106.01 │   28.40 │  36.59% │
│ python-notario                            │     0.49 │     0.67 │    0.18 │  36.73% │
│ python-dpkt                               │     1.17 │     1.60 │    0.43 │  36.75% │
│ python-google-cloud-apigee-connect        │     0.68 │     0.93 │    0.25 │  36.76% │
│ python-typer-cli                          │     4.25 │     5.83 │    1.58 │  37.18% │
│ python-astropy-healpix                    │    18.31 │    25.13 │    6.82 │  37.25% │
│ python-flaky                              │     0.51 │     0.70 │    0.19 │  37.25% │
│ python-google-cloud-access-approval       │     0.67 │     0.92 │    0.25 │  37.31% │
│ python-colcon-cmake                       │     0.08 │     0.11 │    0.03 │  37.50% │
│ python-enrich                             │     0.08 │     0.11 │    0.03 │  37.50% │
│ python-xbout                              │   197.21 │   271.33 │   74.12 │  37.58% │
│ python-jeepney                            │     0.21 │     0.29 │    0.08 │  38.10% │
│ python-readme-renderer                    │     0.47 │     0.65 │    0.18 │  38.30% │
│ python-sphinxcontrib-devhelp              │     0.39 │     0.54 │    0.15 │  38.46% │
│ python-azure-keyvault-keys                │     0.57 │     0.79 │    0.22 │  38.60% │
│ python-certbot-apache                     │    37.38 │    51.87 │   14.49 │  38.76% │
│ python-environs                           │     0.36 │     0.50 │    0.14 │  38.89% │
│ python-watchgod                           │     0.41 │     0.57 │    0.16 │  39.02% │
│ python-cerberus                           │     0.96 │     1.34 │    0.38 │  39.58% │
│ python-tldextract                         │     0.30 │     0.42 │    0.12 │  40.00% │
│ python-translitcodec                      │     0.05 │     0.07 │    0.02 │  40.00% │
│ python-netdisco                           │     0.05 │     0.07 │    0.02 │  40.00% │
│ python-icalendar                          │     0.47 │     0.66 │    0.19 │  40.43% │
│ python-mplcursors                         │    17.75 │    24.93 │    7.18 │  40.45% │
│ python-google-cloud-appengine-admin       │     3.31 │     4.65 │    1.34 │  40.48% │
│ python-google-cloud-kms                   │     1.90 │     2.67 │    0.77 │  40.53% │
│ python-sphinxcontrib-serializinghtml      │     0.39 │     0.55 │    0.16 │  41.03% │
│ python-google-cloud-api-gateway           │     1.21 │     1.71 │    0.50 │  41.32% │
│ python-smart-gardena                      │     0.36 │     0.51 │    0.15 │  41.67% │
│ python-subprocess-tee                     │     0.12 │     0.17 │    0.05 │  41.67% │
│ python-aioflo                             │     0.12 │     0.17 │    0.05 │  41.67% │
│ python-howdoi                             │     2.35 │     3.33 │    0.98 │  41.70% │
│ python-venusian                           │     0.31 │     0.44 │    0.13 │  41.94% │
│ python-http-client                        │     0.07 │     0.10 │    0.03 │  42.86% │
│ python-pure-protobuf                      │     0.14 │     0.20 │    0.06 │  42.86% │
│ python-dns                                │     3.21 │     4.59 │    1.38 │  42.99% │
│ python-mock                               │     1.06 │     1.52 │    0.46 │  43.40% │
│ python-socketio                           │     1.83 │     2.64 │    0.81 │  44.26% │
│ python-pyct                               │     0.18 │     0.26 │    0.08 │  44.44% │
│ python-pdfminer                           │     0.36 │     0.52 │    0.16 │  44.44% │
│ python-tblib                              │     0.90 │     1.30 │    0.40 │  44.44% │
│ distgen                                   │     0.38 │     0.55 │    0.17 │  44.74% │
│ python-dbus-next                          │     0.67 │     0.97 │    0.30 │  44.78% │
│ python-parsel                             │     0.20 │     0.29 │    0.09 │  45.00% │
│ python-pymeeus                            │     1.33 │     1.93 │    0.60 │  45.11% │
│ babel                                     │     5.94 │     8.65 │    2.71 │  45.62% │
│ python-grabbit                            │     0.81 │     1.18 │    0.37 │  45.68% │
│ python-autopage                           │     0.28 │     0.41 │    0.13 │  46.43% │
│ python-soupsieve                          │     1.68 │     2.46 │    0.78 │  46.43% │
│ python-amply                              │     0.45 │     0.66 │    0.21 │  46.67% │
│ python-schema                             │     0.32 │     0.47 │    0.15 │  46.87% │
│ python-vdf                                │     0.19 │     0.28 │    0.09 │  47.37% │
│ python-aiosnmp                            │     0.19 │     0.28 │    0.09 │  47.37% │
│ pyflakes                                  │     2.06 │     3.04 │    0.98 │  47.57% │
│ python-google-cloud-billing-budgets       │     0.98 │     1.45 │    0.47 │  47.96% │
│ python-chaospy                            │    53.56 │    79.30 │   25.74 │  48.06% │
│ python-nibabel                            │   132.65 │   196.42 │   63.77 │  48.07% │
│ python-network-runner                     │     0.31 │     0.46 │    0.15 │  48.39% │
│ python-google-cloud-bigquery-reservation  │     1.45 │     2.16 │    0.71 │  48.97% │
│ python-rply                               │     0.14 │     0.21 │    0.07 │  50.00% │
│ python-texttable                          │     0.04 │     0.06 │    0.02 │  50.00% │
│ python-tambo                              │     0.10 │     0.15 │    0.05 │  50.00% │
│ vim-fugitive-pagure                       │     0.02 │     0.03 │    0.01 │  50.00% │
│ python-mergedeep                          │     0.04 │     0.06 │    0.02 │  50.00% │
│ python-jaraco-classes                     │     0.04 │     0.06 │    0.02 │  50.00% │
│ python-yourls                             │     0.04 │     0.06 │    0.02 │  50.00% │
│ python-cmarkgfm                           │     0.02 │     0.03 │    0.01 │  50.00% │
│ python-maps                               │     0.10 │     0.15 │    0.05 │  50.00% │
│ python-aaargh                             │     0.04 │     0.06 │    0.02 │  50.00% │
│ python-ukkonen                            │     0.02 │     0.03 │    0.01 │  50.00% │
│ python-mistune                            │     0.16 │     0.24 │    0.08 │  50.00% │
│ python-pystalk                            │     0.04 │     0.06 │    0.02 │  50.00% │
│ python-ssdeep                             │     0.06 │     0.09 │    0.03 │  50.00% │
│ python-cytoolz                            │     0.88 │     1.32 │    0.44 │  50.00% │
│ python-sqlalchemy-collectd                │     0.18 │     0.27 │    0.09 │  50.00% │
│ python-param                              │     1.64 │     2.47 │    0.83 │  50.61% │
│ python-certbot-dns-luadns                 │     0.33 │     0.50 │    0.17 │  51.52% │
│ python-google-cloud-os-config             │     4.49 │     6.83 │    2.34 │  52.12% │
│ python-trezor                             │     0.42 │     0.64 │    0.22 │  52.38% │
│ python-pyvlx                              │     0.51 │     0.78 │    0.27 │  52.94% │
│ jpype                                     │     5.10 │     7.80 │    2.70 │  52.94% │
│ sshuttle                                  │     0.77 │     1.18 │    0.41 │  53.25% │
│ python-lsp-jsonrpc                        │     0.30 │     0.46 │    0.16 │  53.33% │
│ python-django-prometheus                  │     0.15 │     0.23 │    0.08 │  53.33% │
│ python-latexcodec                         │     0.56 │     0.86 │    0.30 │  53.57% │
│ python-jellyfish                          │     0.41 │     0.63 │    0.22 │  53.66% │
│ python-shtab                              │     0.13 │     0.20 │    0.07 │  53.85% │
│ python-rdflib-jsonld                      │     0.37 │     0.57 │    0.20 │  54.05% │
│ python-setuptools_git                     │     0.24 │     0.37 │    0.13 │  54.17% │
│ python-dockerfile-parse                   │     5.27 │     8.15 │    2.88 │  54.65% │
│ python-ncclient                           │     1.24 │     1.92 │    0.68 │  54.84% │
│ python-sphinxcontrib-qthelp               │     0.82 │     1.27 │    0.45 │  54.88% │
│ python-certbot-dns-linode                 │     0.36 │     0.56 │    0.20 │  55.56% │
│ rpmdeplint                                │     0.09 │     0.14 │    0.05 │  55.56% │
│ python-pytest-spec                        │     0.09 │     0.14 │    0.05 │  55.56% │
│ python-pid                                │     0.09 │     0.14 │    0.05 │  55.56% │
│ python-smartcols                          │     0.09 │     0.14 │    0.05 │  55.56% │
│ python-anymarkup-core                     │     0.23 │     0.36 │    0.13 │  56.52% │
│ python-fqdn                               │     0.14 │     0.22 │    0.08 │  57.14% │
│ python-pytest-datafiles                   │     0.31 │     0.49 │    0.18 │  58.06% │
│ pycairo                                   │     0.70 │     1.11 │    0.41 │  58.57% │
│ python-ddt                                │     0.17 │     0.27 │    0.10 │  58.82% │
│ python-pox                                │     0.05 │     0.08 │    0.03 │  60.00% │
│ python-ciso8601                           │     0.05 │     0.08 │    0.03 │  60.00% │
│ python-outcome                            │     0.05 │     0.08 │    0.03 │  60.00% │
│ python-admesh                             │     0.05 │     0.08 │    0.03 │  60.00% │
│ python-utils                              │     0.10 │     0.16 │    0.06 │  60.00% │
│ python-voluptuous-serialize               │     0.05 │     0.08 │    0.03 │  60.00% │
│ python-sniffio                            │     0.05 │     0.08 │    0.03 │  60.00% │
│ python-funcy                              │     0.54 │     0.87 │    0.33 │  61.11% │
│ python-pyxs                               │     0.13 │     0.21 │    0.08 │  61.54% │
│ python-netaddr                            │     0.94 │     1.52 │    0.58 │  61.70% │
│ python-wsproto                            │     0.55 │     0.89 │    0.34 │  61.82% │
│ python-responses                          │     0.45 │     0.73 │    0.28 │  62.22% │
│ python-bcrypt                             │     0.98 │     1.59 │    0.61 │  62.24% │
│ python-pytaglib                           │     0.08 │     0.13 │    0.05 │  62.50% │
│ python-sure                               │     0.16 │     0.26 │    0.10 │  62.50% │
│ python-webencodings                       │     0.08 │     0.13 │    0.05 │  62.50% │
│ python-pretend                            │     0.08 │     0.13 │    0.05 │  62.50% │
│ resalloc                                  │     1.13 │     1.84 │    0.71 │  62.83% │
│ vex                                       │     0.19 │     0.31 │    0.12 │  63.16% │
│ python-minidb                             │     0.11 │     0.18 │    0.07 │  63.64% │
│ python-graphql-relay                      │     0.23 │     0.38 │    0.15 │  65.22% │
│ python-lazyarray                          │     0.26 │     0.43 │    0.17 │  65.38% │
│ python-jsonmodels                         │     0.74 │     1.23 │    0.49 │  66.22% │
│ python-yubico                             │     0.06 │     0.10 │    0.04 │  66.67% │
│ python3-typed_ast                         │     0.06 │     0.10 │    0.04 │  66.67% │
│ python-ansicolor                          │     0.06 │     0.10 │    0.04 │  66.67% │
│ python-fuzzyfinder                        │     0.03 │     0.05 │    0.02 │  66.67% │
│ python-atomicwrites                       │     0.03 │     0.05 │    0.02 │  66.67% │
│ python-ansicolors                         │     0.06 │     0.10 │    0.04 │  66.67% │
│ python-sly                                │     0.06 │     0.10 │    0.04 │  66.67% │
│ python-readlike                           │     0.03 │     0.05 │    0.02 │  66.67% │
│ python-click-default-group                │     0.03 │     0.05 │    0.02 │  66.67% │
│ python-duecredit                          │     0.31 │     0.52 │    0.21 │  67.74% │
│ thonny                                    │     0.39 │     0.66 │    0.27 │  69.23% │
│ python-cssselect2                         │     0.73 │     1.24 │    0.51 │  69.86% │
│ python-jsonrpc-server                     │     0.20 │     0.34 │    0.14 │  70.00% │
│ python-zict                               │     0.20 │     0.34 │    0.14 │  70.00% │
│ python-mercantile                         │     0.84 │     1.43 │    0.59 │  70.24% │
│ tldr                                      │     0.07 │     0.12 │    0.05 │  71.43% │
│ python-parsedatetime                      │     0.35 │     0.60 │    0.25 │  71.43% │
│ tmt                                       │     0.95 │     1.63 │    0.68 │  71.58% │
│ python-flexmock                           │     0.74 │     1.27 │    0.53 │  71.62% │
│ python-pypubsub                           │     0.57 │     0.98 │    0.41 │  71.93% │
│ autojump                                  │     0.11 │     0.19 │    0.08 │  72.73% │
│ python-dominate                           │     0.11 │     0.19 │    0.08 │  72.73% │
│ python-protego                            │     7.89 │    13.70 │    5.81 │  73.64% │
│ spec2scl                                  │     0.19 │     0.33 │    0.14 │  73.68% │
│ python-iso3166                            │     0.04 │     0.07 │    0.03 │  75.00% │
│ python-zm                                 │     0.08 │     0.14 │    0.06 │  75.00% │
│ python-whatever                           │     0.08 │     0.14 │    0.06 │  75.00% │
│ python-ujson                              │     0.43 │     0.76 │    0.33 │  76.74% │
│ python-inflection                         │     0.54 │     0.96 │    0.42 │  77.78% │
│ python-pyarlo                             │     0.27 │     0.48 │    0.21 │  77.78% │
│ python-metar                              │     0.32 │     0.57 │    0.25 │  78.12% │
│ python-sphinxcontrib-applehelp            │     0.40 │     0.72 │    0.32 │  80.00% │
│ python-argon2-cffi                        │     3.84 │     6.93 │    3.09 │  80.47% │
│ python-six                                │     0.36 │     0.65 │    0.29 │  80.56% │
│ python-junit_xml                          │     0.11 │     0.20 │    0.09 │  81.82% │
│ python-iniconfig                          │     0.06 │     0.11 │    0.05 │  83.33% │
│ python-ring-doorbell                      │     0.12 │     0.22 │    0.10 │  83.33% │
│ python-tabulate                           │     0.83 │     1.53 │    0.70 │  84.34% │
│ python-itsdangerous                       │     1.29 │     2.38 │    1.09 │  84.50% │
│ python-hamcrest                           │     0.73 │     1.35 │    0.62 │  84.93% │
│ python-pastel                             │     0.07 │     0.13 │    0.06 │  85.71% │
│ python-identify                           │     0.54 │     1.01 │    0.47 │  87.04% │
│ python-markdown-it-py                     │     1.55 │     2.90 │    1.35 │  87.10% │
│ rust-packaging                            │     0.16 │     0.30 │    0.14 │  87.50% │
│ python-flake8-import-order                │     0.51 │     0.96 │    0.45 │  88.24% │
│ python-affine                             │     0.23 │     0.44 │    0.21 │  91.30% │
│ python-snaptime                           │     0.12 │     0.23 │    0.11 │  91.67% │
│ python-uritemplate                        │     0.13 │     0.25 │    0.12 │  92.31% │
│ marshalparser                             │   371.57 │   715.72 │  344.15 │  92.62% │
│ salt-lint                                 │     0.14 │     0.27 │    0.13 │  92.86% │
│ python-awesomeversion                     │     0.30 │     0.58 │    0.28 │  93.33% │
│ python-aiomodbus                          │     0.15 │     0.29 │    0.14 │  93.33% │
│ python-bleach                             │     0.73 │     1.42 │    0.69 │  94.52% │
│ python-colorful                           │     0.39 │     0.77 │    0.38 │  97.44% │
│ python-vcrpy                              │     0.65 │     1.29 │    0.64 │  98.46% │
│ python-shellingham                        │     0.02 │     0.04 │    0.02 │ 100.00% │
│ python-collectd_systemd                   │     0.03 │     0.06 │    0.03 │ 100.00% │
│ python-editdistance-s                     │     0.01 │     0.02 │    0.01 │ 100.00% │
│ python-kiwisolver                         │     0.20 │     0.40 │    0.20 │ 100.00% │
│ python-backcall                           │     0.01 │     0.02 │    0.01 │ 100.00% │
│ python-yattag                             │     0.05 │     0.10 │    0.05 │ 100.00% │
│ python-email-validator                    │     0.10 │     0.20 │    0.10 │ 100.00% │
│ remctl                                    │     0.04 │     0.08 │    0.04 │ 100.00% │
│ python-mdit-py-plugins                    │     0.55 │     1.10 │    0.55 │ 100.00% │
│ python-aioesphomeapi                      │     0.47 │     0.94 │    0.47 │ 100.00% │
│ python-aspy.yaml                          │     0.03 │     0.06 │    0.03 │ 100.00% │
│ python-uri-templates                      │     0.02 │     0.04 │    0.02 │ 100.00% │
│ python-editdistance                       │     0.01 │     0.02 │    0.01 │ 100.00% │
│ python-ots                                │     0.01 │     0.02 │    0.01 │ 100.00% │
│ python-pytest-fixture-config              │     0.02 │     0.04 │    0.02 │ 100.00% │
│ pylibacl                                  │     0.10 │     0.20 │    0.10 │ 100.00% │
│ python-pytest-datadir                     │     0.03 │     0.06 │    0.03 │ 100.00% │
│ python-sseclient-py                       │     0.04 │     0.08 │    0.04 │ 100.00% │
│ python-requests-mock                      │     0.02 │     0.04 │    0.02 │ 100.00% │
│ python-h11                                │     0.36 │     0.72 │    0.36 │ 100.00% │
│ python-colcon-package-information         │     0.01 │     0.02 │    0.01 │ 100.00% │
│ crypto-policies                           │     0.19 │     0.38 │    0.19 │ 100.00% │
│ python-flake8-polyfill                    │     0.04 │     0.08 │    0.04 │ 100.00% │
│ python-tinyrpc                            │     1.11 │     2.23 │    1.12 │ 100.90% │
│ python-mackup                             │     0.22 │     0.45 │    0.23 │ 104.55% │
│ pythran                                   │  7801.49 │ 16548.91 │ 8747.42 │ 112.12% │
│ python-registry                           │     0.07 │     0.15 │    0.08 │ 114.29% │
│ python-dbfread                            │     0.07 │     0.15 │    0.08 │ 114.29% │
│ python-airspeed                           │     0.24 │     0.52 │    0.28 │ 116.67% │
│ python-arpeggio                           │     0.58 │     1.26 │    0.68 │ 117.24% │
│ python-requests-unixsocket                │     0.15 │     0.33 │    0.18 │ 120.00% │
│ python-yarl                               │     2.66 │     5.93 │    3.27 │ 122.93% │
│ python-wcmatch                            │     2.50 │     5.68 │    3.18 │ 127.20% │
│ python-cli-helpers                        │     0.21 │     0.48 │    0.27 │ 128.57% │
│ python-sortedcollections                  │     0.32 │     0.76 │    0.44 │ 137.50% │
│ python-GridDataFormats                    │     0.90 │     2.15 │    1.25 │ 138.89% │
│ python-jaraco-path                        │     0.05 │     0.12 │    0.07 │ 140.00% │
│ python-systemd                            │     0.14 │     0.34 │    0.20 │ 142.86% │
│ python-teslajsonpy                        │     0.43 │     1.05 │    0.62 │ 144.19% │
│ python-packaging                          │    27.58 │    67.76 │   40.18 │ 145.69% │
│ python-cfgv                               │     0.15 │     0.37 │    0.22 │ 146.67% │
│ python-validators                         │     0.47 │     1.38 │    0.91 │ 193.62% │
│ python-tinycss2                           │     1.23 │     3.62 │    2.39 │ 194.31% │
│ python-managesieve                        │     0.18 │     0.53 │    0.35 │ 194.44% │
│ python-uamqp                              │     0.96 │     2.83 │    1.87 │ 194.79% │
│ python-rangeparser                        │     0.01 │     0.03 │    0.02 │ 200.00% │
│ python-whichcraft                         │     0.01 │     0.03 │    0.02 │ 200.00% │
│ python-pathvalidate                       │     3.46 │    10.64 │    7.18 │ 207.51% │
│ python-biscuits                           │     0.07 │     0.22 │    0.15 │ 214.29% │
│ python-colorzero                          │     3.77 │    11.87 │    8.10 │ 214.85% │
│ python-tomli-w                            │     0.49 │     1.57 │    1.08 │ 220.41% │
│ python-tomli                              │     0.82 │     2.92 │    2.10 │ 256.10% │
│ python-node-semver                        │     1.09 │     3.92 │    2.83 │ 259.63% │
│ sum                                       │ 31191.28 │ 41189.35 │ 9998.07 │  32.05% │
│ avg                                       │    32.73 │    43.22 │   10.49 │  24.50% │
└───────────────────────────────────────────┴──────────┴──────────┴─────────┴─────────┘

@hroncok
Copy link
Member

hroncok commented Jan 5, 2022

Should I restart the 7 builds to make it more up to date?

@The-Compiler
Copy link
Member Author

If you don't mind the additional load this puts on Fedora infra, that would be great - I guess it would certainly make the values more accurate.

@hroncok
Copy link
Member

hroncok commented Jan 6, 2022

Updated pytest 7 times: pytest-7.txt

@The-Compiler
Copy link
Member Author

Well, this is looking very different indeed:

│ python-bleach                             │     0.73 │     1.47 │    0.74 │ 101.37% │
│ python-tinyrpc                            │     1.11 │     2.25 │    1.14 │ 102.70% │
│ python-managesieve                        │     0.18 │     0.37 │    0.19 │ 105.56% │
│ python-validators                         │     0.47 │     0.98 │    0.51 │ 108.51% │
│ python-flake8-import-order                │     0.51 │     1.07 │    0.56 │ 109.80% │
│ python-yarl                               │     2.66 │     5.86 │    3.20 │ 120.30% │
│ python-dbfread                            │     0.07 │     0.16 │    0.09 │ 128.57% │
│ python-tinycss2                           │     1.23 │     2.88 │    1.65 │ 134.15% │
│ python-tomli-w                            │     0.49 │     1.21 │    0.72 │ 146.94% │
│ python-systemd                            │     0.14 │     0.35 │    0.21 │ 150.00% │
│ python-tomli                              │     0.82 │     2.42 │    1.60 │ 195.12% │
│ python-rangeparser                        │     0.01 │     0.03 │    0.02 │ 200.00% │
│ python-pathvalidate                       │     3.46 │    10.39 │    6.93 │ 200.29% │
│ python-uamqp                              │     0.96 │     2.90 │    1.94 │ 202.08% │
│ python-colorzero                          │     3.77 │    11.69 │    7.92 │ 210.08% │
│ python-node-semver                        │     1.09 │     3.78 │    2.69 │ 246.79% │
│ sum                                       │ 31253.31 │ 31544.78 │  291.47 │   0.93% │
│ avg                                       │    33.50 │    33.81 │    0.31 │  18.31% │
└───────────────────────────────────────────┴──────────┴──────────┴─────────┴─────────┘

(note that "100%" still means "double the original time" though...)

Anyone volunteering to look into some of those projects in more detail to figure out if the same tests did run, and if so, if there really is some kind of slowdown in pytest with them?

Full output:

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┓
┃ Name                                      ┃ pytest 6 ┃ pytest 7 ┃    Δabs ┃    Δrel ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━┩
│ python-jupyter-console                    │    62.87 │     3.06 │  -59.81 │ -95.13% │
│ python-typing-extensions                  │     0.93 │     0.42 │   -0.51 │ -54.84% │
│ python3-pyPEG2                            │     0.32 │     0.17 │   -0.15 │ -46.88% │
│ pytest                                    │   166.15 │    89.40 │  -76.75 │ -46.19% │
│ python-traitlets                          │     2.52 │     1.43 │   -1.09 │ -43.25% │
│ python-sentinels                          │     0.03 │     0.02 │   -0.01 │ -33.33% │
│ python-hypothesis-fspaths                 │    10.64 │     7.36 │   -3.28 │ -30.83% │
│ python-configobj                          │     0.36 │     0.25 │   -0.11 │ -30.56% │
│ python-jsons                              │     1.07 │     0.77 │   -0.30 │ -28.04% │
│ h5py                                      │     6.06 │     4.37 │   -1.69 │ -27.89% │
│ python-mongomock                          │     1.96 │     1.43 │   -0.53 │ -27.04% │
│ python-arrow                              │    16.15 │    12.56 │   -3.59 │ -22.23% │
│ python-smbprotocol                        │     4.02 │     3.16 │   -0.86 │ -21.39% │
│ python-mutagen                            │    35.39 │    28.05 │   -7.34 │ -20.74% │
│ python-configargparse                     │     0.20 │     0.16 │   -0.04 │ -20.00% │
│ python-toml-adapt                         │     0.05 │     0.04 │   -0.01 │ -20.00% │
│ python-pytest-mpi                         │    24.19 │    19.38 │   -4.81 │ -19.88% │
│ python-alembic                            │    12.02 │     9.67 │   -2.35 │ -19.55% │
│ python-userpath                           │     2.19 │     1.78 │   -0.41 │ -18.72% │
│ python-rangehttpserver                    │     0.11 │     0.09 │   -0.02 │ -18.18% │
│ python-paste                              │     1.88 │     1.54 │   -0.34 │ -18.09% │
│ python-opnsense                           │     0.19 │     0.16 │   -0.03 │ -15.79% │
│ python-pymochad                           │     0.13 │     0.11 │   -0.02 │ -15.38% │
│ python-kajiki                             │     0.86 │     0.73 │   -0.13 │ -15.12% │
│ python-typish                             │     0.62 │     0.53 │   -0.09 │ -14.52% │
│ python-webob                              │     9.88 │     8.46 │   -1.42 │ -14.37% │
│ python-sphinx-kr-theme                    │     0.07 │     0.06 │   -0.01 │ -14.29% │
│ python-git-url-parse                      │     0.21 │     0.18 │   -0.03 │ -14.29% │
│ python-pytn3270                           │     0.87 │     0.75 │   -0.12 │ -13.79% │
│ cloud-init                                │    31.82 │    27.67 │   -4.15 │ -13.04% │
│ python-google-cloud-bigquery              │    21.68 │    18.87 │   -2.81 │ -12.96% │
│ python-compal                             │     0.08 │     0.07 │   -0.01 │ -12.50% │
│ python-habitipy                           │     5.82 │     5.10 │   -0.72 │ -12.37% │
│ python-hypothesis                         │   757.06 │   664.64 │  -92.42 │ -12.21% │
│ python-btlewrap                           │     0.09 │     0.08 │   -0.01 │ -11.11% │
│ python-copr-common                        │     0.09 │     0.08 │   -0.01 │ -11.11% │
│ python-requests-futures                   │     0.09 │     0.08 │   -0.01 │ -11.11% │
│ python-ipykernel                          │    50.69 │    45.11 │   -5.58 │ -11.01% │
│ python-service-identity                   │     0.28 │     0.25 │   -0.03 │ -10.71% │
│ python-google-cloud-core                  │     0.85 │     0.76 │   -0.09 │ -10.59% │
│ python-pyocr                              │     0.96 │     0.86 │   -0.10 │ -10.42% │
│ python-sphinx-click                       │     0.11 │     0.10 │   -0.01 │  -9.09% │
│ python-starlette                          │     6.52 │     5.94 │   -0.58 │  -8.90% │
│ python-krbcontext                         │     0.12 │     0.11 │   -0.01 │  -8.33% │
│ python-opentelemetry                      │    32.45 │    29.84 │   -2.61 │  -8.04% │
│ python-pynetbox                           │     0.38 │     0.35 │   -0.03 │  -7.89% │
│ python-APScheduler                        │     6.73 │     6.21 │   -0.52 │  -7.73% │
│ python-license-expression                 │     0.92 │     0.85 │   -0.07 │  -7.61% │
│ python-cssutils                           │     3.16 │     2.92 │   -0.24 │  -7.59% │
│ docker-compose                            │    22.94 │    21.20 │   -1.74 │  -7.59% │
│ python-abimap                             │     0.54 │     0.50 │   -0.04 │  -7.41% │
│ python-aiohttp-cors                       │     1.56 │     1.45 │   -0.11 │  -7.05% │
│ python-google-cloud-bigtable              │    19.48 │    18.12 │   -1.36 │  -6.98% │
│ python-importlib-metadata                 │     0.45 │     0.42 │   -0.03 │  -6.67% │
│ python-git-changelog                      │     0.15 │     0.14 │   -0.01 │  -6.67% │
│ python-pytest-venv                        │     2.71 │     2.54 │   -0.17 │  -6.27% │
│ python-pycec                              │     0.32 │     0.30 │   -0.02 │  -6.25% │
│ python-pymemcache                         │     2.09 │     1.96 │   -0.13 │  -6.22% │
│ python-SALib                              │   109.79 │   103.21 │   -6.58 │  -5.99% │
│ python-overpy                             │    13.91 │    13.10 │   -0.81 │  -5.82% │
│ python-simplejson                         │     1.21 │     1.14 │   -0.07 │  -5.79% │
│ python-mock                               │     1.06 │     1.00 │   -0.06 │  -5.66% │
│ python-ZEO                                │     0.55 │     0.52 │   -0.03 │  -5.45% │
│ python-kafka                              │    11.92 │    11.28 │   -0.64 │  -5.37% │
│ python-trimesh                            │   660.77 │   625.56 │  -35.21 │  -5.33% │
│ backintime                                │    11.66 │    11.04 │   -0.62 │  -5.32% │
│ python-pdir2                              │     0.58 │     0.55 │   -0.03 │  -5.17% │
│ python-cornice                            │     4.50 │     4.28 │   -0.22 │  -4.89% │
│ python-sexpdata                           │     0.21 │     0.20 │   -0.01 │  -4.76% │
│ python-aiosasl                            │     0.42 │     0.40 │   -0.02 │  -4.76% │
│ python-reedsolo                           │     2.53 │     2.41 │   -0.12 │  -4.74% │
│ python-tenacity                           │     2.97 │     2.83 │   -0.14 │  -4.71% │
│ python-notebook                           │    32.70 │    31.20 │   -1.50 │  -4.59% │
│ python-setuptools_git                     │     0.24 │     0.23 │   -0.01 │  -4.17% │
│ python-pymediainfo                        │     1.95 │     1.87 │   -0.08 │  -4.10% │
│ python-plyvel                             │     3.06 │     2.94 │   -0.12 │  -3.92% │
│ python-msrest                             │     4.42 │     4.25 │   -0.17 │  -3.85% │
│ python-structlog                          │     1.05 │     1.01 │   -0.04 │  -3.81% │
│ copr-dist-git                             │     4.21 │     4.05 │   -0.16 │  -3.80% │
│ python-pydata-sphinx-theme                │     8.90 │     8.58 │   -0.32 │  -3.60% │
│ python-cherrypy                           │   111.02 │   107.24 │   -3.78 │  -3.40% │
│ python-check-manifest                     │     5.71 │     5.53 │   -0.18 │  -3.15% │
│ python-more-executors                     │   135.00 │   130.85 │   -4.15 │  -3.07% │
│ python-priority                           │     9.44 │     9.15 │   -0.29 │  -3.07% │
│ python-libsass                            │     0.98 │     0.95 │   -0.03 │  -3.06% │
│ python-shapely                            │     1.40 │     1.36 │   -0.04 │  -2.86% │
│ python-kombu                              │    16.16 │    15.70 │   -0.46 │  -2.85% │
│ python-chaospy                            │    53.56 │    52.06 │   -1.50 │  -2.80% │
│ python-acme                               │    15.82 │    15.38 │   -0.44 │  -2.78% │
│ python-zstandard                          │    23.95 │    23.29 │   -0.66 │  -2.76% │
│ python-test_server                        │    26.00 │    25.29 │   -0.71 │  -2.73% │
│ python-jedi                               │    34.86 │    33.93 │   -0.93 │  -2.67% │
│ python-typeguard                          │     0.78 │     0.76 │   -0.02 │  -2.56% │
│ python-pyriemann                          │     6.37 │     6.21 │   -0.16 │  -2.51% │
│ python-prompt-toolkit                     │    22.26 │    21.73 │   -0.53 │  -2.38% │
│ python-alarmdecoder                       │     0.43 │     0.42 │   -0.01 │  -2.33% │
│ python-tcxreader                          │     6.14 │     6.00 │   -0.14 │  -2.28% │
│ pyproj                                    │    20.93 │    20.46 │   -0.47 │  -2.25% │
│ python-fissix                             │    25.53 │    24.98 │   -0.55 │  -2.15% │
│ pythran                                   │  7801.49 │  7634.30 │ -167.19 │  -2.14% │
│ python-healpy                             │     9.19 │     9.01 │   -0.18 │  -1.96% │
│ python-pytest-testinfra                   │     8.97 │     8.81 │   -0.16 │  -1.78% │
│ python-google-cloud-firestore             │    12.85 │    12.63 │   -0.22 │  -1.71% │
│ python-indexed_gzip                       │  1087.85 │  1069.27 │  -18.58 │  -1.71% │
│ python-sqlalchemy                         │   879.23 │   864.53 │  -14.70 │  -1.67% │
│ python-nb2plots                           │   185.39 │   182.47 │   -2.92 │  -1.58% │
│ pipenv                                    │     3.89 │     3.83 │   -0.06 │  -1.54% │
│ python-cartopy                            │    55.04 │    54.24 │   -0.80 │  -1.45% │
│ python-metakernel                         │    37.45 │    36.91 │   -0.54 │  -1.44% │
│ python-guizero                            │    38.24 │    37.70 │   -0.54 │  -1.41% │
│ python-photutils                          │   163.54 │   161.25 │   -2.29 │  -1.40% │
│ python-sshtunnel                          │    58.12 │    57.32 │   -0.80 │  -1.38% │
│ emacs-jedi                                │     1.54 │     1.52 │   -0.02 │  -1.30% │
│ python-PyGithub                           │    44.10 │    43.55 │   -0.55 │  -1.25% │
│ python-git-revise                         │     4.51 │     4.46 │   -0.05 │  -1.11% │
│ pew                                       │    20.11 │    19.90 │   -0.21 │  -1.04% │
│ python-pyphi                              │    55.25 │    54.68 │   -0.57 │  -1.03% │
│ python-dns-lexicon                        │    94.06 │    93.15 │   -0.91 │  -0.97% │
│ certbot                                   │    22.91 │    22.69 │   -0.22 │  -0.96% │
│ python-dogpile-cache                      │    34.74 │    34.41 │   -0.33 │  -0.95% │
│ resalloc                                  │     1.13 │     1.12 │   -0.01 │  -0.88% │
│ python-pingouin                           │    37.83 │    37.50 │   -0.33 │  -0.87% │
│ python-howdoi                             │     2.35 │     2.33 │   -0.02 │  -0.85% │
│ python-sphinxtesters                      │     4.71 │     4.67 │   -0.04 │  -0.85% │
│ python-google-cloud-storage               │     9.63 │     9.55 │   -0.08 │  -0.83% │
│ python-missingno                          │     1.24 │     1.23 │   -0.01 │  -0.81% │
│ python-pygments                           │    23.70 │    23.54 │   -0.16 │  -0.68% │
│ python-bluepyopt                          │   126.04 │   125.33 │   -0.71 │  -0.56% │
│ python-pyinels                            │     7.21 │     7.17 │   -0.04 │  -0.55% │
│ python-emcee                              │   120.15 │   119.51 │   -0.64 │  -0.53% │
│ python-aioopenssl                         │     4.06 │     4.04 │   -0.02 │  -0.49% │
│ python-lfpy                               │   156.60 │   155.85 │   -0.75 │  -0.48% │
│ python-daphne                             │    14.89 │    14.82 │   -0.07 │  -0.47% │
│ python-astroscrappy                       │    15.13 │    15.06 │   -0.07 │  -0.46% │
│ python-pexpect                            │   171.16 │   170.41 │   -0.75 │  -0.44% │
│ python-jupyter-client                     │   164.34 │   163.63 │   -0.71 │  -0.43% │
│ python-spake2                             │     2.33 │     2.32 │   -0.01 │  -0.43% │
│ python-pywt                               │    71.53 │    71.24 │   -0.29 │  -0.41% │
│ python-nixio                              │    86.26 │    85.95 │   -0.31 │  -0.36% │
│ python-jaraco-functools                   │     3.11 │     3.10 │   -0.01 │  -0.32% │
│ python-sphinx-notfound-page               │     6.29 │     6.27 │   -0.02 │  -0.32% │
│ fonttools                                 │    29.01 │    28.92 │   -0.09 │  -0.31% │
│ python-cached_property                    │     7.19 │     7.17 │   -0.02 │  -0.28% │
│ python-sphinxcontrib-bibtex               │    15.62 │    15.58 │   -0.04 │  -0.26% │
│ python-tifffile                           │   584.13 │   582.67 │   -1.46 │  -0.25% │
│ python-redis                              │     4.03 │     4.02 │   -0.01 │  -0.25% │
│ python-path                               │     4.57 │     4.56 │   -0.01 │  -0.22% │
│ python-neurodsp                           │     5.06 │     5.05 │   -0.01 │  -0.20% │
│ python-curio                              │    92.72 │    92.54 │   -0.18 │  -0.19% │
│ xonsh                                     │    58.26 │    58.16 │   -0.10 │  -0.17% │
│ python-pyhomematic                        │     9.63 │     9.62 │   -0.01 │  -0.10% │
│ python-pymatreader                        │    72.90 │    72.85 │   -0.05 │  -0.07% │
│ python-matplotlib                         │   336.97 │   336.84 │   -0.13 │  -0.04% │
│ python-imbalanced-learn                   │   104.44 │   104.42 │   -0.02 │  -0.02% │
│ python-colcon-test-result                 │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-colcon-recursive-crawl             │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-colcon-mixin                       │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-texext                             │     3.28 │     3.28 │    0.00 │   0.00% │
│ python-aioflo                             │     0.12 │     0.12 │    0.00 │   0.00% │
│ python-wsaccel                            │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-prawcore                           │     0.40 │     0.40 │    0.00 │   0.00% │
│ python-sphinx-testing                     │     0.93 │     0.93 │    0.00 │   0.00% │
│ python-opentracing                        │     0.66 │     0.66 │    0.00 │   0.00% │
│ python-setuptools_scm_git_archive         │     0.02 │     0.02 │    0.00 │   0.00% │
│ jpype                                     │     5.10 │     5.10 │    0.00 │   0.00% │
│ python-colcon-lcov-result                 │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-colcon-python-setup-py             │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-tempora                            │     1.41 │     1.41 │    0.00 │   0.00% │
│ python-aioeafm                            │     0.09 │     0.09 │    0.00 │   0.00% │
│ python-colcon-defaults                    │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-altgraph                           │     0.21 │     0.21 │    0.00 │   0.00% │
│ python-colcon-package-selection           │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-colcon-zsh                         │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-colcon-notification                │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-colcon-devtools                    │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-colcon-parallel-executor           │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-colcon-cd                          │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-colcon-library-path                │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-colcon-bash                        │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-terminado                          │    36.48 │    36.48 │    0.00 │   0.00% │
│ pycolumnize                               │     0.03 │     0.03 │    0.00 │   0.00% │
│ python-landslide                          │     0.34 │     0.34 │    0.00 │   0.00% │
│ python-pytest-error-for-skips             │     0.11 │     0.11 │    0.00 │   0.00% │
│ python-stdio-mgr                          │     0.02 │     0.02 │    0.00 │   0.00% │
│ python-colcon-coveragepy-result           │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-mongoquery                         │     0.04 │     0.04 │    0.00 │   0.00% │
│ python-colcon-ros-bazel                   │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-colcon-ed                          │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-resultsdb_api                      │     0.14 │     0.14 │    0.00 │   0.00% │
│ python-keyrings-alt                       │     0.72 │     0.72 │    0.00 │   0.00% │
│ python-Automat                            │     0.30 │     0.30 │    0.00 │   0.00% │
│ python-lacrosse                           │     0.15 │     0.15 │    0.00 │   0.00% │
│ python-docker-squash                      │     0.24 │     0.24 │    0.00 │   0.00% │
│ python-allpairspy                         │     0.08 │     0.08 │    0.00 │   0.00% │
│ python-colcon-package-information         │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-colcon-output                      │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-colcon-metadata                    │     0.01 │     0.01 │    0.00 │   0.00% │
│ mkosi                                     │     0.42 │     0.42 │    0.00 │   0.00% │
│ fasttrack                                 │     1.10 │     1.10 │    0.00 │   0.00% │
│ python-pybtex-docutils                    │     0.20 │     0.20 │    0.00 │   0.00% │
│ python-trustme                            │    20.76 │    20.76 │    0.00 │   0.00% │
│ python-pycomfoair                         │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-requests                           │    65.84 │    65.84 │    0.00 │   0.00% │
│ python-scripttester                       │     0.34 │     0.34 │    0.00 │   0.00% │
│ python-colcon-argcomplete                 │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-cachez                             │     1.06 │     1.06 │    0.00 │   0.00% │
│ python-diff-match-patch                   │     1.54 │     1.54 │    0.00 │   0.00% │
│ python-colcon-pkg-config                  │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-cs                                 │     0.36 │     0.36 │    0.00 │   0.00% │
│ python-hupper                             │    10.38 │    10.38 │    0.00 │   0.00% │
│ python-colcon-powershell                  │     0.01 │     0.01 │    0.00 │   0.00% │
│ python-restfly                            │    51.65 │    51.67 │    0.02 │   0.04% │
│ python-mplcursors                         │    17.75 │    17.77 │    0.02 │   0.11% │
│ python-lfpykit                            │     8.86 │     8.87 │    0.01 │   0.11% │
│ python-pyvirtualdisplay                   │    70.71 │    70.80 │    0.09 │   0.13% │
│ python-theano                             │   171.18 │   171.40 │    0.22 │   0.13% │
│ python-easyprocess                        │    61.08 │    61.16 │    0.08 │   0.13% │
│ python-lesscpy                            │    13.75 │    13.77 │    0.02 │   0.15% │
│ python-aiomqtt                            │     6.18 │     6.19 │    0.01 │   0.16% │
│ argparse-manpage                          │     4.12 │     4.13 │    0.01 │   0.24% │
│ python-flask-caching                      │    85.70 │    85.94 │    0.24 │   0.28% │
│ python-ssdp                               │     3.05 │     3.06 │    0.01 │   0.33% │
│ python-cachelib                           │    24.01 │    24.09 │    0.08 │   0.33% │
│ 2ping                                     │    63.65 │    63.87 │    0.22 │   0.35% │
│ python-pyqtgraph                          │   138.41 │   138.91 │    0.50 │   0.36% │
│ python-x3dh                               │     5.26 │     5.28 │    0.02 │   0.38% │
│ python-meautility                         │     2.41 │     2.42 │    0.01 │   0.41% │
│ python-mirakuru                           │    74.17 │    74.50 │    0.33 │   0.44% │
│ python-sphinx-hoverxref                   │     2.19 │     2.20 │    0.01 │   0.46% │
│ python-fastpurge                          │     6.53 │     6.56 │    0.03 │   0.46% │
│ python-watchdog                           │    36.31 │    36.48 │    0.17 │   0.47% │
│ python-blackbird                          │     2.05 │     2.06 │    0.01 │   0.49% │
│ python-social-auth-core                   │    25.91 │    26.04 │    0.13 │   0.50% │
│ python-pytenable                          │   190.27 │   191.23 │    0.96 │   0.50% │
│ python-reproject                          │    99.56 │   100.07 │    0.51 │   0.51% │
│ python-geopandas                          │    77.61 │    78.03 │    0.42 │   0.54% │
│ python-webpy                              │    10.61 │    10.67 │    0.06 │   0.57% │
│ python-waterfurnace                       │    10.13 │    10.19 │    0.06 │   0.59% │
│ python-build                              │    53.14 │    53.46 │    0.32 │   0.60% │
│ python-patsy                              │    25.93 │    26.09 │    0.16 │   0.62% │
│ python-pytest-timeout                     │    39.51 │    39.76 │    0.25 │   0.63% │
│ python-pyswip                             │     4.67 │     4.70 │    0.03 │   0.64% │
│ python-webtest                            │     4.47 │     4.50 │    0.03 │   0.67% │
│ python-setuptools                         │    70.81 │    71.31 │    0.50 │   0.71% │
│ dumb-init                                 │     8.49 │     8.55 │    0.06 │   0.71% │
│ python-pyphen                             │     9.78 │     9.85 │    0.07 │   0.72% │
│ python-jsonpickle                         │     1.39 │     1.40 │    0.01 │   0.72% │
│ python-zeroconf                           │    77.72 │    78.35 │    0.63 │   0.81% │
│ python-ptyprocess                         │     3.70 │     3.73 │    0.03 │   0.81% │
│ python-setuptools_scm                     │    45.76 │    46.14 │    0.38 │   0.83% │
│ python-distro                             │     1.19 │     1.20 │    0.01 │   0.84% │
│ python-jmespath                           │   430.69 │   434.39 │    3.70 │   0.86% │
│ python-amqp                               │    49.68 │    50.11 │    0.43 │   0.87% │
│ python-pynetdicom                         │   826.07 │   833.50 │    7.43 │   0.90% │
│ duplicity                                 │   739.77 │   746.75 │    6.98 │   0.94% │
│ python-nbclient                           │    57.16 │    57.72 │    0.56 │   0.98% │
│ python-gsd                                │     3.97 │     4.01 │    0.04 │   1.01% │
│ python-jinja2                             │     2.93 │     2.96 │    0.03 │   1.02% │
│ marshalparser                             │   371.57 │   375.57 │    4.00 │   1.08% │
│ python-fpylll                             │    77.90 │    78.74 │    0.84 │   1.08% │
│ python-readthedocs-sphinx-ext             │     2.68 │     2.71 │    0.03 │   1.12% │
│ python-insteon                            │    64.19 │    64.91 │    0.72 │   1.12% │
│ python-hpack                              │    10.61 │    10.73 │    0.12 │   1.13% │
│ androguard                                │    45.04 │    45.58 │    0.54 │   1.20% │
│ python-uvicorn                            │    38.53 │    39.00 │    0.47 │   1.22% │
│ python-uranium                            │    20.26 │    20.51 │    0.25 │   1.23% │
│ python-pyelectro                          │     0.80 │     0.81 │    0.01 │   1.25% │
│ python-praw                               │    14.87 │    15.06 │    0.19 │   1.28% │
│ python-sphinxcontrib-openapi              │    12.48 │    12.64 │    0.16 │   1.28% │
│ python-earthpy                            │     4.58 │     4.64 │    0.06 │   1.31% │
│ python-werkzeug                           │    14.49 │    14.68 │    0.19 │   1.31% │
│ python-fs                                 │    26.97 │    27.33 │    0.36 │   1.33% │
│ python-branca                             │     2.85 │     2.89 │    0.04 │   1.40% │
│ python-liblarch                           │     8.45 │     8.57 │    0.12 │   1.42% │
│ python-pytest-services                    │     2.07 │     2.10 │    0.03 │   1.45% │
│ copr-backend                              │    80.59 │    81.77 │    1.18 │   1.46% │
│ python-sphinxcontrib-jsmath               │     0.68 │     0.69 │    0.01 │   1.47% │
│ python-prometheus_client                  │     4.67 │     4.74 │    0.07 │   1.50% │
│ python-sphinxcontrib-programoutput        │     5.28 │     5.36 │    0.08 │   1.52% │
│ python-nibabel                            │   132.65 │   134.69 │    2.04 │   1.54% │
│ python-chardet                            │    25.70 │    26.10 │    0.40 │   1.56% │
│ python-niapy                              │   330.65 │   335.82 │    5.17 │   1.56% │
│ borgbackup                                │   260.53 │   264.75 │    4.22 │   1.62% │
│ python-pydyf                              │     1.20 │     1.22 │    0.02 │   1.67% │
│ python-pytest-mpl                         │    25.78 │    26.21 │    0.43 │   1.67% │
│ python-hdate                              │     5.26 │     5.35 │    0.09 │   1.71% │
│ python-periodictable                      │     1.73 │     1.76 │    0.03 │   1.73% │
│ python-fslpy                              │   116.43 │   118.50 │    2.07 │   1.78% │
│ python-pytest-regressions                 │     3.32 │     3.38 │    0.06 │   1.81% │
│ python-tomlkit                            │     4.37 │     4.45 │    0.08 │   1.83% │
│ python-jupyter-packaging                  │     0.54 │     0.55 │    0.01 │   1.85% │
│ python-plaster-pastedeploy                │     0.54 │     0.55 │    0.01 │   1.85% │
│ python-asgiref                            │     7.55 │     7.69 │    0.14 │   1.85% │
│ conda                                     │   198.66 │   202.38 │    3.72 │   1.87% │
│ python-sphinx_rtd_theme                   │     3.02 │     3.08 │    0.06 │   1.99% │
│ python-zipp                               │     0.50 │     0.51 │    0.01 │   2.00% │
│ python-pytest-httpbin                     │     2.42 │     2.47 │    0.05 │   2.07% │
│ weasyprint                                │    90.75 │    92.63 │    1.88 │   2.07% │
│ mock                                      │     0.95 │     0.97 │    0.02 │   2.11% │
│ python-async-upnp-client                  │     1.40 │     1.43 │    0.03 │   2.14% │
│ python-pynwb                              │    30.49 │    31.17 │    0.68 │   2.23% │
│ python-asyncpg                            │    60.64 │    62.03 │    1.39 │   2.29% │
│ python-pyswarms                           │    44.80 │    45.84 │    1.04 │   2.32% │
│ python-exoscale                           │     2.13 │     2.18 │    0.05 │   2.35% │
│ python-boutdata                           │  1065.63 │  1091.16 │   25.53 │   2.40% │
│ python-pydocstyle                         │     6.67 │     6.83 │    0.16 │   2.40% │
│ python-swagger-spec-validator             │     1.61 │     1.65 │    0.04 │   2.48% │
│ python-scripttest                         │     1.19 │     1.22 │    0.03 │   2.52% │
│ python-niaclass                           │     3.48 │     3.57 │    0.09 │   2.59% │
│ python-llfuse                             │     1.16 │     1.19 │    0.03 │   2.59% │
│ python-geopy                              │     1.15 │     1.18 │    0.03 │   2.61% │
│ python-extension-helpers                  │     0.38 │     0.39 │    0.01 │   2.63% │
│ python-falcon                             │    69.51 │    71.37 │    1.86 │   2.68% │
│ python-astropy-healpix                    │    18.31 │    18.80 │    0.49 │   2.68% │
│ python-Bottleneck                         │    43.32 │    44.49 │    1.17 │   2.70% │
│ python-azure-core                         │    20.17 │    20.72 │    0.55 │   2.73% │
│ python-numpy-stl                          │     3.94 │     4.05 │    0.11 │   2.79% │
│ python3-pytest-asyncio                    │     1.79 │     1.84 │    0.05 │   2.79% │
│ python-emoji                              │     1.43 │     1.47 │    0.04 │   2.80% │
│ python-typer-cli                          │     4.25 │     4.37 │    0.12 │   2.82% │
│ python-paramiko                           │    15.57 │    16.01 │    0.44 │   2.83% │
│ ocrmypdf                                  │   214.98 │   221.06 │    6.08 │   2.83% │
│ fedmsg                                    │    13.39 │    13.77 │    0.38 │   2.84% │
│ python-ipyparallel                        │   280.77 │   288.86 │    8.09 │   2.88% │
│ patool                                    │     7.25 │     7.46 │    0.21 │   2.90% │
│ pyzor                                     │     4.47 │     4.60 │    0.13 │   2.91% │
│ pyproject-rpm-macros                      │    19.13 │    19.69 │    0.56 │   2.93% │
│ python-rasterio                           │    48.33 │    49.75 │    1.42 │   2.94% │
│ python-vcstool                            │     0.34 │     0.35 │    0.01 │   2.94% │
│ python-blessed                            │     8.84 │     9.10 │    0.26 │   2.94% │
│ python-pytest-subprocess                  │     3.71 │     3.82 │    0.11 │   2.96% │
│ python-certbot-apache                     │    37.38 │    38.49 │    1.11 │   2.97% │
│ nicotine+                                 │    14.13 │    14.55 │    0.42 │   2.97% │
│ python-astropy                            │   295.43 │   304.32 │    8.89 │   3.01% │
│ pre-commit                                │    99.14 │   102.13 │    2.99 │   3.02% │
│ pyserial-asyncio                          │     0.33 │     0.34 │    0.01 │   3.03% │
│ fedfind                                   │     3.92 │     4.04 │    0.12 │   3.06% │
│ python-wurlitzer                          │     0.65 │     0.67 │    0.02 │   3.08% │
│ python-portend                            │     0.97 │     1.00 │    0.03 │   3.09% │
│ python-fastavro                           │     1.92 │     1.98 │    0.06 │   3.13% │
│ python-wheel                              │     6.05 │     6.24 │    0.19 │   3.14% │
│ python-rope                               │     2.20 │     2.27 │    0.07 │   3.18% │
│ python-pytest-xdist                       │    39.77 │    41.05 │    1.28 │   3.22% │
│ python-virtualenv-clone                   │    10.70 │    11.05 │    0.35 │   3.27% │
│ python-parsley                            │     3.04 │     3.14 │    0.10 │   3.29% │
│ gnofract4d                                │    42.58 │    44.01 │    1.43 │   3.36% │
│ python-faker                              │    39.49 │    40.82 │    1.33 │   3.37% │
│ python-scikit-learn                       │   450.81 │   466.01 │   15.20 │   3.37% │
│ python-networkx                           │    99.93 │   103.39 │    3.46 │   3.46% │
│ python-odml                               │     6.34 │     6.56 │    0.22 │   3.47% │
│ python-guessit                            │    81.25 │    84.10 │    2.85 │   3.51% │
│ python-libcst                             │    27.55 │    28.52 │    0.97 │   3.52% │
│ python-ws4py                              │     4.26 │     4.41 │    0.15 │   3.52% │
│ rebase-helper                             │    11.79 │    12.21 │    0.42 │   3.56% │
│ python-testinfra                          │     8.69 │     9.00 │    0.31 │   3.57% │
│ python-plaster                            │     0.28 │     0.29 │    0.01 │   3.57% │
│ python-contextily                         │     1.12 │     1.16 │    0.04 │   3.57% │
│ python-pytest-bdd                         │    12.20 │    12.64 │    0.44 │   3.61% │
│ python-ansible-compat                     │    13.97 │    14.48 │    0.51 │   3.65% │
│ python-flask-sqlalchemy                   │     0.54 │     0.56 │    0.02 │   3.70% │
│ python-sphinx-math-dollar                 │     0.54 │     0.56 │    0.02 │   3.70% │
│ python-dotenv                             │     1.07 │     1.11 │    0.04 │   3.74% │
│ python-mpmath                             │    72.35 │    75.07 │    2.72 │   3.76% │
│ python-s3transfer                         │    28.57 │    29.65 │    1.08 │   3.78% │
│ python-xeddsa                             │     3.94 │     4.09 │    0.15 │   3.81% │
│ jrnl                                      │     9.38 │     9.74 │    0.36 │   3.84% │
│ python-importmagic                        │     0.26 │     0.27 │    0.01 │   3.85% │
│ litecli                                   │     4.68 │     4.86 │    0.18 │   3.85% │
│ fmf                                       │     8.46 │     8.79 │    0.33 │   3.90% │
│ python-sphinx                             │   126.46 │   131.41 │    4.95 │   3.91% │
│ python-apprise                            │    26.80 │    27.85 │    1.05 │   3.92% │
│ python-xbout                              │   197.21 │   204.97 │    7.76 │   3.93% │
│ sen                                       │     2.54 │     2.64 │    0.10 │   3.94% │
│ python-ansiwrap                           │     0.76 │     0.79 │    0.03 │   3.95% │
│ python-fiona                              │    11.16 │    11.61 │    0.45 │   4.03% │
│ cvise                                     │    45.26 │    47.10 │    1.84 │   4.07% │
│ python-textdistance                       │    29.63 │    30.85 │    1.22 │   4.12% │
│ rpkg-util                                 │     2.66 │     2.77 │    0.11 │   4.14% │
│ python-mplcairo                           │   248.26 │   258.59 │   10.33 │   4.16% │
│ rst2txt                                   │     0.24 │     0.25 │    0.01 │   4.17% │
│ mycli                                     │     4.80 │     5.00 │    0.20 │   4.17% │
│ python-asttokens                          │    11.88 │    12.38 │    0.50 │   4.21% │
│ python-pint                               │    24.33 │    25.36 │    1.03 │   4.23% │
│ python-convertdate                        │     6.73 │     7.02 │    0.29 │   4.31% │
│ python-cryptography                       │    90.60 │    94.56 │    3.96 │   4.37% │
│ python-distroinfo                         │     3.61 │     3.77 │    0.16 │   4.43% │
│ python-pebble                             │    10.90 │    11.39 │    0.49 │   4.50% │
│ copr-rpmbuild                             │     1.11 │     1.16 │    0.05 │   4.50% │
│ frr                                       │    11.72 │    12.25 │    0.53 │   4.52% │
│ python-stackprinter                       │     0.22 │     0.23 │    0.01 │   4.55% │
│ python-streamlink                         │    15.30 │    16.01 │    0.71 │   4.64% │
│ python-pytest-subtests                    │     0.43 │     0.45 │    0.02 │   4.65% │
│ python-CacheControl                       │     0.43 │     0.45 │    0.02 │   4.65% │
│ python-stompest                           │     2.54 │     2.66 │    0.12 │   4.72% │
│ python-retryz                             │     1.05 │     1.10 │    0.05 │   4.76% │
│ httpie                                    │    17.71 │    18.56 │    0.85 │   4.80% │
│ python-html2text                          │     2.67 │     2.80 │    0.13 │   4.87% │
│ python-owl_rl                             │     1.84 │     1.93 │    0.09 │   4.89% │
│ python-dask                               │   272.56 │   285.90 │   13.34 │   4.89% │
│ python-cloudpickle                        │     7.85 │     8.24 │    0.39 │   4.97% │
│ yt-dlp                                    │    50.13 │    52.66 │    2.53 │   5.05% │
│ abrt                                      │     2.17 │     2.28 │    0.11 │   5.07% │
│ python-epc                                │    20.38 │    21.42 │    1.04 │   5.10% │
│ python-dijitso                            │     0.78 │     0.82 │    0.04 │   5.13% │
│ python-jose                               │    37.51 │    39.45 │    1.94 │   5.17% │
│ liquidctl                                 │     3.64 │     3.83 │    0.19 │   5.22% │
│ python-metaextract                        │     1.33 │     1.40 │    0.07 │   5.26% │
│ python-aiosnmp                            │     0.19 │     0.20 │    0.01 │   5.26% │
│ python-matplotlib-scalebar                │     1.90 │     2.00 │    0.10 │   5.26% │
│ python-microfs                            │     1.14 │     1.20 │    0.06 │   5.26% │
│ python-typer                              │    26.40 │    27.79 │    1.39 │   5.27% │
│ python-zarr                               │    37.85 │    39.85 │    2.00 │   5.28% │
│ python-daikin                             │    43.42 │    45.72 │    2.30 │   5.30% │
│ python-botocore                           │   937.78 │   988.56 │   50.78 │   5.41% │
│ python-suds                               │     4.32 │     4.56 │    0.24 │   5.56% │
│ python-httpcore                           │    10.11 │    10.68 │    0.57 │   5.64% │
│ python-progressbar2                       │     2.64 │     2.79 │    0.15 │   5.68% │
│ cozy                                      │     4.72 │     4.99 │    0.27 │   5.72% │
│ libvirt-test-API                          │     5.51 │     5.83 │    0.32 │   5.81% │
│ python-textwrap3                          │     0.17 │     0.18 │    0.01 │   5.88% │
│ python-requests-kerberos                  │     0.17 │     0.18 │    0.01 │   5.88% │
│ visidata                                  │     0.34 │     0.36 │    0.02 │   5.88% │
│ copr-messaging                            │     0.51 │     0.54 │    0.03 │   5.88% │
│ python-geoplot                            │    19.84 │    21.02 │    1.18 │   5.95% │
│ python-parso                              │     7.08 │     7.51 │    0.43 │   6.07% │
│ python-pytest-mock                        │     2.26 │     2.40 │    0.14 │   6.19% │
│ python-asyncio-dgram                      │     0.80 │     0.85 │    0.05 │   6.25% │
│ python-google-auth-oauthlib               │     0.32 │     0.34 │    0.02 │   6.25% │
│ andriller                                 │     3.84 │     4.08 │    0.24 │   6.25% │
│ python-py-gql                             │     5.90 │     6.27 │    0.37 │   6.27% │
│ python-pytools                            │     0.95 │     1.01 │    0.06 │   6.32% │
│ python-pytest-cov                         │    72.85 │    77.57 │    4.72 │   6.48% │
│ python-breathe                            │     0.77 │     0.82 │    0.05 │   6.49% │
│ python-partd                              │     1.23 │     1.31 │    0.08 │   6.50% │
│ python-cu2qu                              │     3.36 │     3.58 │    0.22 │   6.55% │
│ gpaw                                      │    29.21 │    31.13 │    1.92 │   6.57% │
│ python-pytest-shutil                      │     1.67 │     1.78 │    0.11 │   6.59% │
│ python-versioningit                       │    97.68 │   104.14 │    6.46 │   6.61% │
│ python-cookiecutter                       │     4.37 │     4.66 │    0.29 │   6.64% │
│ python-pytest-virtualenv                  │     0.60 │     0.64 │    0.04 │   6.67% │
│ artifacts                                 │     2.09 │     2.23 │    0.14 │   6.70% │
│ exaile                                    │     0.88 │     0.94 │    0.06 │   6.82% │
│ home-assistant-cli                        │     0.88 │     0.94 │    0.06 │   6.82% │
│ reuse                                     │    22.67 │    24.22 │    1.55 │   6.84% │
│ bandit                                    │     6.71 │     7.17 │    0.46 │   6.86% │
│ python-certbot-dns-digitalocean           │     0.29 │     0.31 │    0.02 │   6.90% │
│ python-nilearn                            │   829.63 │   887.96 │   58.33 │   7.03% │
│ python-calligrabot                        │     0.71 │     0.76 │    0.05 │   7.04% │
│ resultsdb                                 │     4.95 │     5.30 │    0.35 │   7.07% │
│ python-paste-deploy                       │     0.28 │     0.30 │    0.02 │   7.14% │
│ python-pyclipper                          │     0.14 │     0.15 │    0.01 │   7.14% │
│ python-azure-appconfiguration             │     0.42 │     0.45 │    0.03 │   7.14% │
│ python-asteval                            │     0.98 │     1.05 │    0.07 │   7.14% │
│ python-google-cloud-automl                │     7.41 │     7.94 │    0.53 │   7.15% │
│ python-libpysal                           │    29.70 │    31.85 │    2.15 │   7.24% │
│ python-coloredlogs                        │     0.55 │     0.59 │    0.04 │   7.27% │
│ python-virtualenv                         │    25.79 │    27.69 │    1.90 │   7.37% │
│ python-augeas                             │    12.03 │    12.92 │    0.89 │   7.40% │
│ python-aresponses                         │     0.27 │     0.29 │    0.02 │   7.41% │
│ copr-cli                                  │     1.19 │     1.28 │    0.09 │   7.56% │
│ python-sphinxcontrib-websupport           │     4.83 │     5.20 │    0.37 │   7.66% │
│ python-certbot-dns-cloudflare             │     0.39 │     0.42 │    0.03 │   7.69% │
│ python-marshmallow-enum                   │     0.13 │     0.14 │    0.01 │   7.69% │
│ python-etcd3gw                            │     0.26 │     0.28 │    0.02 │   7.69% │
│ python-billiard                           │     1.16 │     1.25 │    0.09 │   7.76% │
│ python-tblib                              │     0.90 │     0.97 │    0.07 │   7.78% │
│ python-pyunicorn                          │     8.08 │     8.71 │    0.63 │   7.80% │
│ python-nagiosplugin                       │     1.41 │     1.52 │    0.11 │   7.80% │
│ python-wled                               │     8.25 │     8.90 │    0.65 │   7.88% │
│ python-snuggs                             │     0.38 │     0.41 │    0.03 │   7.89% │
│ python-datrie                             │     2.28 │     2.46 │    0.18 │   7.89% │
│ babel                                     │     5.94 │     6.41 │    0.47 │   7.91% │
│ python-pip                                │    18.66 │    20.15 │    1.49 │   7.98% │
│ python-eccodes                            │     2.12 │     2.29 │    0.17 │   8.02% │
│ python-advisory-parser                    │     0.37 │     0.40 │    0.03 │   8.11% │
│ python-maya                               │     2.57 │     2.78 │    0.21 │   8.17% │
│ python-cerberus                           │     0.96 │     1.04 │    0.08 │   8.33% │
│ python-boututils                          │     0.12 │     0.13 │    0.01 │   8.33% │
│ python-steam                              │     1.07 │     1.16 │    0.09 │   8.41% │
│ python-PyMuPDF                            │     1.66 │     1.80 │    0.14 │   8.43% │
│ python-sortedcontainers                   │    10.58 │    11.48 │    0.90 │   8.51% │
│ python-jupyter-sphinx                     │    38.81 │    42.13 │    3.32 │   8.55% │
│ python-inflect                            │     0.69 │     0.75 │    0.06 │   8.70% │
│ freeipa-healthcheck                       │     1.94 │     2.11 │    0.17 │   8.76% │
│ python-requests-toolbelt                  │     1.69 │     1.84 │    0.15 │   8.88% │
│ python-certbot-dns-luadns                 │     0.33 │     0.36 │    0.03 │   9.09% │
│ python-pyemd                              │     0.11 │     0.12 │    0.01 │   9.09% │
│ python-colcon-ros-bundle                  │     0.22 │     0.24 │    0.02 │   9.09% │
│ python-copr                               │     0.22 │     0.24 │    0.02 │   9.09% │
│ python-threadpoolctl                      │     0.11 │     0.12 │    0.01 │   9.09% │
│ python-glymur                             │    35.03 │    38.27 │    3.24 │   9.25% │
│ python-zxcvbn                             │     0.54 │     0.59 │    0.05 │   9.26% │
│ python-pytest-forked                      │     0.43 │     0.47 │    0.04 │   9.30% │
│ python-urllib3                            │     9.99 │    10.92 │    0.93 │   9.31% │
│ python-certbot-dns-dnsimple               │     0.32 │     0.35 │    0.03 │   9.37% │
│ python-certbot-dns-gehirn                 │     0.32 │     0.35 │    0.03 │   9.37% │
│ python-certbot-dns-dnsmadeeasy            │     0.32 │     0.35 │    0.03 │   9.37% │
│ python-pyedflib                           │     5.21 │     5.70 │    0.49 │   9.40% │
│ python-robosignatory                      │     2.22 │     2.43 │    0.21 │   9.46% │
│ python-drgn                               │     1.89 │     2.07 │    0.18 │   9.52% │
│ python-pem                                │     0.21 │     0.23 │    0.02 │   9.52% │
│ python-myst-parser                        │     6.81 │     7.46 │    0.65 │   9.54% │
│ python-pycountry                          │     0.52 │     0.57 │    0.05 │   9.62% │
│ python-kdcproxy                           │     0.10 │     0.11 │    0.01 │  10.00% │
│ python-openqa_client                      │     0.20 │     0.22 │    0.02 │  10.00% │
│ python-colcon-ros                         │     0.10 │     0.11 │    0.01 │  10.00% │
│ python-tldextract                         │     0.30 │     0.33 │    0.03 │  10.00% │
│ python-nbformat                           │     1.39 │     1.53 │    0.14 │  10.07% │
│ python-pytest-sugar                       │     1.77 │     1.95 │    0.18 │  10.17% │
│ python-ffc                                │     8.93 │     9.84 │    0.91 │  10.19% │
│ python-pyscaffold                         │    14.01 │    15.44 │    1.43 │  10.21% │
│ container-workflow-tool                   │     1.55 │     1.71 │    0.16 │  10.32% │
│ python-pytest-tornado                     │     0.29 │     0.32 │    0.03 │  10.34% │
│ pybind11                                  │     7.51 │     8.29 │    0.78 │  10.39% │
│ python-colcon-core                        │     3.93 │     4.34 │    0.41 │  10.43% │
│ snakemake                                 │     9.33 │    10.31 │    0.98 │  10.50% │
│ python-gast                               │     0.38 │     0.42 │    0.04 │  10.53% │
│ python-testfixtures                       │     1.99 │     2.20 │    0.21 │  10.55% │
│ python-poetry-core                        │     3.50 │     3.87 │    0.37 │  10.57% │
│ cura                                      │    29.01 │    32.09 │    3.08 │  10.62% │
│ python-pycdlib                            │     9.64 │    10.67 │    1.03 │  10.68% │
│ python-autopage                           │     0.28 │     0.31 │    0.03 │  10.71% │
│ python-niaaml                             │    68.88 │    76.31 │    7.43 │  10.79% │
│ python-freezegun                          │     0.83 │     0.92 │    0.09 │  10.84% │
│ proselint                                 │     3.11 │     3.45 │    0.34 │  10.93% │
│ python-pytest-xvfb                        │     0.64 │     0.71 │    0.07 │  10.94% │
│ copr-frontend                             │    51.85 │    57.53 │    5.68 │  10.95% │
│ python-websocket-client                   │     0.18 │     0.20 │    0.02 │  11.11% │
│ python-pyrpm                              │     0.36 │     0.40 │    0.04 │  11.11% │
│ python-requests-file                      │     0.09 │     0.10 │    0.01 │  11.11% │
│ python-readability-lxml                   │     0.18 │     0.20 │    0.02 │  11.11% │
│ python-smart_open                         │     0.09 │     0.10 │    0.01 │  11.11% │
│ python-easyargs                           │     0.09 │     0.10 │    0.01 │  11.11% │
│ rpmdeplint                                │     0.09 │     0.10 │    0.01 │  11.11% │
│ python-libNeuroML                         │     3.68 │     4.09 │    0.41 │  11.14% │
│ python-ephem                              │     2.23 │     2.48 │    0.25 │  11.21% │
│ python-fastapi                            │    12.02 │    13.38 │    1.36 │  11.31% │
│ python-scramp                             │     0.53 │     0.59 │    0.06 │  11.32% │
│ python-h5io                               │     0.44 │     0.49 │    0.05 │  11.36% │
│ python-jwcrypto                           │     7.02 │     7.82 │    0.80 │  11.40% │
│ python-eyed3                              │     0.96 │     1.07 │    0.11 │  11.46% │
│ python-jsonref                            │     0.26 │     0.29 │    0.03 │  11.54% │
│ python-adal                               │     0.69 │     0.77 │    0.08 │  11.59% │
│ python-fastcache                          │    19.13 │    21.35 │    2.22 │  11.60% │
│ gaupol                                    │    20.50 │    22.89 │    2.39 │  11.66% │
│ python-hypothesmith                       │   493.68 │   551.75 │   58.07 │  11.76% │
│ python-markupsafe                         │     0.17 │     0.19 │    0.02 │  11.76% │
│ python-google-api-core                    │    16.50 │    18.47 │    1.97 │  11.94% │
│ python-pytest-freezegun                   │     0.91 │     1.02 │    0.11 │  12.09% │
│ python-certbot-dns-cloudxns               │     0.33 │     0.37 │    0.04 │  12.12% │
│ python-certbot-dns-ovh                    │     0.33 │     0.37 │    0.04 │  12.12% │
│ python-pysnooper                          │     1.07 │     1.20 │    0.13 │  12.15% │
│ python-pygit2                             │     3.00 │     3.37 │    0.37 │  12.33% │
│ python-stochastic                         │     2.51 │     2.82 │    0.31 │  12.35% │
│ python-colcon-cmake                       │     0.08 │     0.09 │    0.01 │  12.50% │
│ python-google-cloud-spanner               │    23.70 │    26.70 │    3.00 │  12.66% │
│ python-semver                             │     0.55 │     0.62 │    0.07 │  12.73% │
│ diceware                                  │     0.94 │     1.06 │    0.12 │  12.77% │
│ python-colcon-bazel                       │     0.23 │     0.26 │    0.03 │  13.04% │
│ python-databases                          │     1.14 │     1.29 │    0.15 │  13.16% │
│ python-fixit                              │     1.14 │     1.29 │    0.15 │  13.16% │
│ python-graphql-core                       │     4.98 │     5.64 │    0.66 │  13.25% │
│ python-requests-unixsocket                │     0.15 │     0.17 │    0.02 │  13.33% │
│ python-crashtest                          │     0.22 │     0.25 │    0.03 │  13.64% │
│ python-ansible-pygments                   │     0.22 │     0.25 │    0.03 │  13.64% │
│ awscli                                    │   264.32 │   300.53 │   36.21 │  13.70% │
│ python-flask-babel                        │     0.29 │     0.33 │    0.04 │  13.79% │
│ python-bidict                             │     5.75 │     6.55 │    0.80 │  13.91% │
│ python-pytelegrambotapi                   │     1.28 │     1.46 │    0.18 │  14.06% │
│ python-gitlab                             │     1.41 │     1.61 │    0.20 │  14.18% │
│ wad                                       │     0.56 │     0.64 │    0.08 │  14.29% │
│ python-requests-exoscale-auth             │     0.07 │     0.08 │    0.01 │  14.29% │
│ python-sphinx-intl                        │     0.21 │     0.24 │    0.03 │  14.29% │
│ python-pecan-notario                      │     0.21 │     0.24 │    0.03 │  14.29% │
│ python-pytest-metadata                    │     0.21 │     0.24 │    0.03 │  14.29% │
│ python-trezor                             │     0.42 │     0.48 │    0.06 │  14.29% │
│ mkdocs-markdownextradata-plugin           │     0.21 │     0.24 │    0.03 │  14.29% │
│ python-argon2-cffi                        │     3.84 │     4.39 │    0.55 │  14.32% │
│ python-engineio                           │     5.01 │     5.73 │    0.72 │  14.37% │
│ python-cvxopt                             │     2.64 │     3.02 │    0.38 │  14.39% │
│ python-rfc3986                            │     2.48 │     2.85 │    0.37 │  14.92% │
│ python-charset-normalizer                 │     2.20 │     2.53 │    0.33 │  15.00% │
│ python-async-generator                    │     0.20 │     0.23 │    0.03 │  15.00% │
│ python-capturer                           │     0.53 │     0.61 │    0.08 │  15.09% │
│ python-pep517                             │     1.52 │     1.75 │    0.23 │  15.13% │
│ python-fsspec                             │    20.29 │    23.37 │    3.08 │  15.18% │
│ python-haversion                          │     0.13 │     0.15 │    0.02 │  15.38% │
│ python-twine                              │     1.65 │     1.91 │    0.26 │  15.76% │
│ python-codecov                            │     0.25 │     0.29 │    0.04 │  16.00% │
│ python-ipywidgets                         │     1.68 │     1.95 │    0.27 │  16.07% │
│ python-cbor2                              │     1.18 │     1.37 │    0.19 │  16.10% │
│ python-txaio                              │     0.31 │     0.36 │    0.05 │  16.13% │
│ python-pycoingecko                        │     0.18 │     0.21 │    0.03 │  16.67% │
│ python-GridDataFormats                    │     0.90 │     1.05 │    0.15 │  16.67% │
│ python-resumable-urlretrieve              │     0.12 │     0.14 │    0.02 │  16.67% │
│ python-qstylizer                          │     0.24 │     0.28 │    0.04 │  16.67% │
│ sgmanager                                 │     0.06 │     0.07 │    0.01 │  16.67% │
│ python-nudatus                            │     0.06 │     0.07 │    0.01 │  16.67% │
│ python-pdfkit                             │     1.14 │     1.33 │    0.19 │  16.67% │
│ python-gevent-eventemitter                │     0.06 │     0.07 │    0.01 │  16.67% │
│ python-noiseprotocol                      │     4.41 │     5.15 │    0.74 │  16.78% │
│ python-flit                               │     2.25 │     2.63 │    0.38 │  16.89% │
│ flatpak-module-tools                      │     0.47 │     0.55 │    0.08 │  17.02% │
│ python-multidict                          │     1.35 │     1.58 │    0.23 │  17.04% │
│ python-sphinxcontrib-qthelp               │     0.82 │     0.96 │    0.14 │  17.07% │
│ python-mako                               │     3.03 │     3.55 │    0.52 │  17.16% │
│ python-graphql-relay                      │     0.23 │     0.27 │    0.04 │  17.39% │
│ copr-keygen                               │     0.34 │     0.40 │    0.06 │  17.65% │
│ python-testpath                           │     0.17 │     0.20 │    0.03 │  17.65% │
│ did                                       │     0.28 │     0.33 │    0.05 │  17.86% │
│ python-pycurl                             │    20.04 │    23.62 │    3.58 │  17.86% │
│ python-fontMath                           │     1.27 │     1.50 │    0.23 │  18.11% │
│ odfpy                                     │     1.10 │     1.30 │    0.20 │  18.18% │
│ python-docopt                             │     0.33 │     0.39 │    0.06 │  18.18% │
│ python-azure-mgmt-loganalytics            │     0.22 │     0.26 │    0.04 │  18.18% │
│ virt-lightning                            │     0.11 │     0.13 │    0.02 │  18.18% │
│ python-pynacl                             │    25.54 │    30.20 │    4.66 │  18.25% │
│ mu                                        │     4.92 │     5.82 │    0.90 │  18.29% │
│ python-whoosh                             │     9.22 │    10.91 │    1.69 │  18.33% │
│ python-certbot-dns-nsone                  │     0.32 │     0.38 │    0.06 │  18.75% │
│ python-nuheat                             │     0.16 │     0.19 │    0.03 │  18.75% │
│ fedora-third-party                        │     0.16 │     0.19 │    0.03 │  18.75% │
│ python-aiofiles                           │     1.59 │     1.89 │    0.30 │  18.87% │
│ python-proto-plus                         │     1.11 │     1.32 │    0.21 │  18.92% │
│ python-anymarkup                          │     0.21 │     0.25 │    0.04 │  19.05% │
│ python-google-cloud-functions             │     0.98 │     1.17 │    0.19 │  19.39% │
│ python-hass-data-detective                │     0.05 │     0.06 │    0.01 │  20.00% │
│ pylibacl                                  │     0.10 │     0.12 │    0.02 │  20.00% │
│ python-remoto                             │     0.10 │     0.12 │    0.02 │  20.00% │
│ python-port-for                           │     0.20 │     0.24 │    0.04 │  20.00% │
│ python-yattag                             │     0.05 │     0.06 │    0.01 │  20.00% │
│ python-parsedatetime                      │     0.35 │     0.42 │    0.07 │  20.00% │
│ python-amply                              │     0.45 │     0.54 │    0.09 │  20.00% │
│ python-jupyter-core                       │     0.64 │     0.77 │    0.13 │  20.31% │
│ modulemd-tools                            │     0.88 │     1.06 │    0.18 │  20.45% │
│ paternoster                               │     5.92 │     7.16 │    1.24 │  20.95% │
│ python-pluggy                             │     0.19 │     0.23 │    0.04 │  21.05% │
│ python-jwt                                │     1.28 │     1.55 │    0.27 │  21.09% │
│ python-google-crc32c                      │     0.14 │     0.17 │    0.03 │  21.43% │
│ python-toml                               │     0.14 │     0.17 │    0.03 │  21.43% │
│ python-google-cloud-bigquery-connection   │     0.83 │     1.01 │    0.18 │  21.69% │
│ python-tabulate                           │     0.83 │     1.01 │    0.18 │  21.69% │
│ python-azure-mgmt-sql                     │     0.46 │     0.56 │    0.10 │  21.74% │
│ python-flask-socketio                     │     0.32 │     0.39 │    0.07 │  21.88% │
│ python-jnius                              │     0.73 │     0.89 │    0.16 │  21.92% │
│ python-pytest-ordering                    │     0.41 │     0.50 │    0.09 │  21.95% │
│ python-filelock                           │     1.45 │     1.77 │    0.32 │  22.07% │
│ python-lz4                                │   956.48 │  1168.68 │  212.20 │  22.19% │
│ python-platformdirs                       │     0.27 │     0.33 │    0.06 │  22.22% │
│ python-name-that-hash                     │     0.27 │     0.33 │    0.06 │  22.22% │
│ python-evic                               │     0.09 │     0.11 │    0.02 │  22.22% │
│ python-environs                           │     0.36 │     0.44 │    0.08 │  22.22% │
│ python-memcached                          │     0.09 │     0.11 │    0.02 │  22.22% │
│ python-beanbag                            │     0.09 │     0.11 │    0.02 │  22.22% │
│ python-pyairnow                           │     0.18 │     0.22 │    0.04 │  22.22% │
│ python-execnet                            │    24.18 │    29.58 │    5.40 │  22.33% │
│ python-bcrypt                             │     0.98 │     1.20 │    0.22 │  22.45% │
│ python-google-cloud-asset                 │     3.53 │     4.33 │    0.80 │  22.66% │
│ python-pytest-steps                       │     1.01 │     1.24 │    0.23 │  22.77% │
│ python-sphinxcontrib-htmlhelp             │     0.83 │     1.02 │    0.19 │  22.89% │
│ ursa-major                                │     0.48 │     0.59 │    0.11 │  22.92% │
│ python-pgspecial                          │     0.13 │     0.16 │    0.03 │  23.08% │
│ python-pybtex                             │     2.84 │     3.50 │    0.66 │  23.24% │
│ python-pyte                               │     0.86 │     1.06 │    0.20 │  23.26% │
│ python-attrs                              │    19.68 │    24.28 │    4.60 │  23.37% │
│ auditwheel                                │     0.59 │     0.73 │    0.14 │  23.73% │
│ python-mercantile                         │     0.84 │     1.04 │    0.20 │  23.81% │
│ python-google-cloud-private-ca            │     4.31 │     5.34 │    1.03 │  23.90% │
│ python-astral                             │     0.73 │     0.91 │    0.18 │  24.66% │
│ python-javaproperties                     │     1.37 │     1.71 │    0.34 │  24.82% │
│ python-msrestazure                        │     3.01 │     3.76 │    0.75 │  24.92% │
│ python-libarchive-c                       │     0.28 │     0.35 │    0.07 │  25.00% │
│ python-winrm                              │     0.20 │     0.25 │    0.05 │  25.00% │
│ python-accuweather                        │     0.20 │     0.25 │    0.05 │  25.00% │
│ python-mccabe                             │     0.04 │     0.05 │    0.01 │  25.00% │
│ python-smart-gardena                      │     0.36 │     0.45 │    0.09 │  25.00% │
│ python-betamax-matchers                   │     0.04 │     0.05 │    0.01 │  25.00% │
│ remctl                                    │     0.04 │     0.05 │    0.01 │  25.00% │
│ python-jinja2-cli                         │     0.04 │     0.05 │    0.01 │  25.00% │
│ python-aaargh                             │     0.04 │     0.05 │    0.01 │  25.00% │
│ python-zm                                 │     0.08 │     0.10 │    0.02 │  25.00% │
│ python-pytest-lazy-fixture                │     1.20 │     1.50 │    0.30 │  25.00% │
│ python-knack                              │     0.79 │     0.99 │    0.20 │  25.32% │
│ python-google-cloud-bigquery-storage      │     2.80 │     3.51 │    0.71 │  25.36% │
│ python-mechanicalsoup                     │     1.92 │     2.41 │    0.49 │  25.52% │
│ python-ufoLib2                            │     0.39 │     0.49 │    0.10 │  25.64% │
│ python-celery                             │    10.45 │    13.14 │    2.69 │  25.74% │
│ python-google-cloud-build                 │     1.59 │     2.00 │    0.41 │  25.79% │
│ python-represent                          │     0.27 │     0.34 │    0.07 │  25.93% │
│ python-azure-mgmt-compute                 │     2.61 │     3.29 │    0.68 │  26.05% │
│ python-maxminddb                          │     1.37 │     1.73 │    0.36 │  26.28% │
│ python-wikipedia                          │     0.19 │     0.24 │    0.05 │  26.32% │
│ python-mwclient                           │     0.62 │     0.79 │    0.17 │  27.42% │
│ python-google-cloud-billing               │     1.31 │     1.67 │    0.36 │  27.48% │
│ python-readme-renderer                    │     0.47 │     0.60 │    0.13 │  27.66% │
│ pydeps                                    │     0.36 │     0.46 │    0.10 │  27.78% │
│ python-cairosvg                           │     5.86 │     7.50 │    1.64 │  27.99% │
│ python-pytest-repeat                      │     0.57 │     0.73 │    0.16 │  28.07% │
│ python-pytest-sourceorder                 │     0.07 │     0.09 │    0.02 │  28.57% │
│ python-pastel                             │     0.07 │     0.09 │    0.02 │  28.57% │
│ resultsdb_conventions                     │     0.07 │     0.09 │    0.02 │  28.57% │
│ python-hyperframe                         │     0.31 │     0.40 │    0.09 │  29.03% │
│ python-exdir                              │     2.96 │     3.82 │    0.86 │  29.05% │
│ pytz                                      │     0.86 │     1.11 │    0.25 │  29.07% │
│ python-parse_type                         │     0.48 │     0.62 │    0.14 │  29.17% │
│ python-configupdater                      │     0.24 │     0.31 │    0.07 │  29.17% │
│ python-et_xmlfile                         │     0.41 │     0.53 │    0.12 │  29.27% │
│ python-google-cloud-apigee-connect        │     0.68 │     0.88 │    0.20 │  29.41% │
│ python-pytest-toolbox                     │     0.17 │     0.22 │    0.05 │  29.41% │
│ python-qcelemental                        │     4.39 │     5.69 │    1.30 │  29.61% │
│ python-requests-credssp                   │     0.27 │     0.35 │    0.08 │  29.63% │
│ python-pyerfa                             │     1.47 │     1.91 │    0.44 │  29.93% │
│ python-ajsonrpc                           │     0.20 │     0.26 │    0.06 │  30.00% │
│ python-pytest-multihost                   │     0.10 │     0.13 │    0.03 │  30.00% │
│ python-pyrsistent                         │     9.91 │    12.89 │    2.98 │  30.07% │
│ uflash                                    │     0.23 │     0.30 │    0.07 │  30.43% │
│ tmt                                       │     0.95 │     1.24 │    0.29 │  30.53% │
│ python-uritemplate                        │     0.13 │     0.17 │    0.04 │  30.77% │
│ python-gios                               │     0.26 │     0.34 │    0.08 │  30.77% │
│ python-google-cloud-containeranalysis     │     0.64 │     0.84 │    0.20 │  31.25% │
│ python-google-cloud-os-config             │     4.49 │     5.90 │    1.41 │  31.40% │
│ python-textfsm                            │     0.22 │     0.29 │    0.07 │  31.82% │
│ python-fastjsonschema                     │     0.66 │     0.87 │    0.21 │  31.82% │
│ python-icalendar                          │     0.47 │     0.62 │    0.15 │  31.91% │
│ tracer                                    │     0.25 │     0.33 │    0.08 │  32.00% │
│ python-surt                               │     0.28 │     0.37 │    0.09 │  32.14% │
│ python-vcrpy                              │     0.65 │     0.86 │    0.21 │  32.31% │
│ python-google-resumable-media             │     1.01 │     1.34 │    0.33 │  32.67% │
│ python-pybv                               │     1.25 │     1.66 │    0.41 │  32.80% │
│ python-pyarlo                             │     0.27 │     0.36 │    0.09 │  33.33% │
│ testcloud                                 │     0.33 │     0.44 │    0.11 │  33.33% │
│ python-pyct                               │     0.18 │     0.24 │    0.06 │  33.33% │
│ python-brother                            │     0.39 │     0.52 │    0.13 │  33.33% │
│ python-pycosat                            │     0.06 │     0.08 │    0.02 │  33.33% │
│ python-dukpy                              │     0.06 │     0.08 │    0.02 │  33.33% │
│ python-ring-doorbell                      │     0.12 │     0.16 │    0.04 │  33.33% │
│ python-send2trash                         │     0.06 │     0.08 │    0.02 │  33.33% │
│ python-iniconfig                          │     0.06 │     0.08 │    0.02 │  33.33% │
│ python-repomd                             │     0.12 │     0.16 │    0.04 │  33.33% │
│ python-filetype                           │     0.06 │     0.08 │    0.02 │  33.33% │
│ python-freetype                           │     0.03 │     0.04 │    0.01 │  33.33% │
│ python-aspy.yaml                          │     0.03 │     0.04 │    0.01 │  33.33% │
│ python-imagesize                          │     0.03 │     0.04 │    0.01 │  33.33% │
│ python-flaky                              │     0.51 │     0.68 │    0.17 │  33.33% │
│ python-collectd_systemd                   │     0.03 │     0.04 │    0.01 │  33.33% │
│ python-azure-keyvault-keys                │     0.57 │     0.76 │    0.19 │  33.33% │
│ python-jeepney                            │     0.21 │     0.28 │    0.07 │  33.33% │
│ python-fields                             │     0.21 │     0.28 │    0.07 │  33.33% │
│ python-autobahn                           │     1.23 │     1.65 │    0.42 │  34.15% │
│ python-dpkt                               │     1.17 │     1.57 │    0.40 │  34.19% │
│ python-dns                                │     3.21 │     4.31 │    1.10 │  34.27% │
│ morphio                                   │     0.64 │     0.86 │    0.22 │  34.37% │
│ python-google-cloud-container             │     5.02 │     6.77 │    1.75 │  34.86% │
│ python-inject                             │     0.20 │     0.27 │    0.07 │  35.00% │
│ python-parsel                             │     0.20 │     0.27 │    0.07 │  35.00% │
│ python-google-cloud-iam                   │     0.54 │     0.73 │    0.19 │  35.19% │
│ python-google-cloud-redis                 │     1.59 │     2.15 │    0.56 │  35.22% │
│ python-compreffor                         │     0.17 │     0.23 │    0.06 │  35.29% │
│ python-pytest-datafiles                   │     0.31 │     0.42 │    0.11 │  35.48% │
│ python-pure-protobuf                      │     0.14 │     0.19 │    0.05 │  35.71% │
│ pyflakes                                  │     2.06 │     2.80 │    0.74 │  35.92% │
│ toot                                      │     0.36 │     0.49 │    0.13 │  36.11% │
│ python-wcwidth                            │     0.11 │     0.15 │    0.04 │  36.36% │
│ python-awesomeversion                     │     0.30 │     0.41 │    0.11 │  36.67% │
│ python-OBD                                │     0.84 │     1.15 │    0.31 │  36.90% │
│ python-numpydoc                           │     1.35 │     1.85 │    0.50 │  37.04% │
│ python-enrich                             │     0.08 │     0.11 │    0.03 │  37.50% │
│ python-vine                               │     0.21 │     0.29 │    0.08 │  38.10% │
│ python-google-cloud-access-approval       │     0.67 │     0.93 │    0.26 │  38.81% │
│ python-pdfminer                           │     0.36 │     0.50 │    0.14 │  38.89% │
│ python-sqlalchemy-collectd                │     0.18 │     0.25 │    0.07 │  38.89% │
│ python-pymeeus                            │     1.33 │     1.85 │    0.52 │  39.10% │
│ python-affine                             │     0.23 │     0.32 │    0.09 │  39.13% │
│ python-cairocffi                          │     0.50 │     0.70 │    0.20 │  40.00% │
│ python-rebulk                             │     0.90 │     1.26 │    0.36 │  40.00% │
│ python-netdisco                           │     0.05 │     0.07 │    0.02 │  40.00% │
│ python-tambo                              │     0.10 │     0.14 │    0.04 │  40.00% │
│ python-translitcodec                      │     0.05 │     0.07 │    0.02 │  40.00% │
│ python-maps                               │     0.10 │     0.14 │    0.04 │  40.00% │
│ python-sniffio                            │     0.05 │     0.07 │    0.02 │  40.00% │
│ python-sphinxcontrib-applehelp            │     0.40 │     0.56 │    0.16 │  40.00% │
│ python-aioesphomeapi                      │     0.47 │     0.66 │    0.19 │  40.43% │
│ python-socketio                           │     1.83 │     2.57 │    0.74 │  40.44% │
│ python-rdflib-jsonld                      │     0.37 │     0.52 │    0.15 │  40.54% │
│ python-schema                             │     0.32 │     0.45 │    0.13 │  40.62% │
│ python-sphinxcontrib-serializinghtml      │     0.39 │     0.55 │    0.16 │  41.03% │
│ python-google-cloud-kms                   │     1.90 │     2.68 │    0.78 │  41.05% │
│ python-google-cloud-api-gateway           │     1.21 │     1.71 │    0.50 │  41.32% │
│ python-soupsieve                          │     1.68 │     2.38 │    0.70 │  41.67% │
│ python-dbus-next                          │     0.67 │     0.95 │    0.28 │  41.79% │
│ python-venusian                           │     0.31 │     0.44 │    0.13 │  41.94% │
│ python-vdf                                │     0.19 │     0.27 │    0.08 │  42.11% │
│ python-http-client                        │     0.07 │     0.10 │    0.03 │  42.86% │
│ python-google-cloud-appengine-admin       │     3.31 │     4.73 │    1.42 │  42.90% │
│ python-grabbit                            │     0.81 │     1.16 │    0.35 │  43.21% │
│ python-lsp-jsonrpc                        │     0.30 │     0.43 │    0.13 │  43.33% │
│ python-google-cloud-bigquery-datatransfer │     1.29 │     1.85 │    0.56 │  43.41% │
│ python-sphinxcontrib-devhelp              │     0.39 │     0.56 │    0.17 │  43.59% │
│ python-google-cloud-billing-budgets       │     0.98 │     1.41 │    0.43 │  43.88% │
│ python-annexremote                        │     0.25 │     0.36 │    0.11 │  44.00% │
│ python-pytest-spec                        │     0.09 │     0.13 │    0.04 │  44.44% │
│ distgen                                   │     0.38 │     0.55 │    0.17 │  44.74% │
│ python-notario                            │     0.49 │     0.71 │    0.22 │  44.90% │
│ python-google-cloud-bigquery-reservation  │     1.45 │     2.11 │    0.66 │  45.52% │
│ python-dockerfile-parse                   │     5.27 │     7.78 │    2.51 │  47.63% │
│ python-cytoolz                            │     0.88 │     1.30 │    0.42 │  47.73% │
│ python-duecredit                          │     0.31 │     0.46 │    0.15 │  48.39% │
│ python-watchgod                           │     0.41 │     0.61 │    0.20 │  48.78% │
│ python-wcmatch                            │     2.50 │     3.72 │    1.22 │  48.80% │
│ python-responses                          │     0.45 │     0.67 │    0.22 │  48.89% │
│ python-requests-mock                      │     0.02 │     0.03 │    0.01 │  50.00% │
│ python-jaraco-classes                     │     0.04 │     0.06 │    0.02 │  50.00% │
│ python-mergedeep                          │     0.04 │     0.06 │    0.02 │  50.00% │
│ python-sseclient-py                       │     0.04 │     0.06 │    0.02 │  50.00% │
│ python-uri-templates                      │     0.02 │     0.03 │    0.01 │  50.00% │
│ python-mistune                            │     0.16 │     0.24 │    0.08 │  50.00% │
│ python-shellingham                        │     0.02 │     0.03 │    0.01 │  50.00% │
│ python-texttable                          │     0.04 │     0.06 │    0.02 │  50.00% │
│ python-yourls                             │     0.04 │     0.06 │    0.02 │  50.00% │
│ python-whatever                           │     0.08 │     0.12 │    0.04 │  50.00% │
│ python-webencodings                       │     0.08 │     0.12 │    0.04 │  50.00% │
│ vim-fugitive-pagure                       │     0.02 │     0.03 │    0.01 │  50.00% │
│ python-ukkonen                            │     0.02 │     0.03 │    0.01 │  50.00% │
│ python-pystalk                            │     0.04 │     0.06 │    0.02 │  50.00% │
│ python-ssdeep                             │     0.06 │     0.09 │    0.03 │  50.00% │
│ python-airspeed                           │     0.24 │     0.36 │    0.12 │  50.00% │
│ python-ansicolors                         │     0.06 │     0.09 │    0.03 │  50.00% │
│ python-subprocess-tee                     │     0.12 │     0.18 │    0.06 │  50.00% │
│ python-yubico                             │     0.06 │     0.09 │    0.03 │  50.00% │
│ python-ncclient                           │     1.24 │     1.87 │    0.63 │  50.81% │
│ python-network-runner                     │     0.31 │     0.47 │    0.16 │  51.61% │
│ vex                                       │     0.19 │     0.29 │    0.10 │  52.63% │
│ python-h11                                │     0.36 │     0.55 │    0.19 │  52.78% │
│ python-ddt                                │     0.17 │     0.26 │    0.09 │  52.94% │
│ python-django-prometheus                  │     0.15 │     0.23 │    0.08 │  53.33% │
│ python-latexcodec                         │     0.56 │     0.86 │    0.30 │  53.57% │
│ python-param                              │     1.64 │     2.52 │    0.88 │  53.66% │
│ python-shtab                              │     0.13 │     0.20 │    0.07 │  53.85% │
│ pycairo                                   │     0.70 │     1.08 │    0.38 │  54.29% │
│ python-kiwisolver                         │     0.20 │     0.31 │    0.11 │  55.00% │
│ python-pid                                │     0.09 │     0.14 │    0.05 │  55.56% │
│ python-sure                               │     0.16 │     0.25 │    0.09 │  56.25% │
│ python-wsproto                            │     0.55 │     0.86 │    0.31 │  56.36% │
│ python-anymarkup-core                     │     0.23 │     0.36 │    0.13 │  56.52% │
│ python-rply                               │     0.14 │     0.22 │    0.08 │  57.14% │
│ python-fqdn                               │     0.14 │     0.22 │    0.08 │  57.14% │
│ sshuttle                                  │     0.77 │     1.21 │    0.44 │  57.14% │
│ python-colcon-bundle                      │     0.68 │     1.07 │    0.39 │  57.35% │
│ python-jellyfish                          │     0.41 │     0.65 │    0.24 │  58.54% │
│ python-funcy                              │     0.54 │     0.86 │    0.32 │  59.26% │
│ python-metar                              │     0.32 │     0.51 │    0.19 │  59.38% │
│ python-jsonmodels                         │     0.74 │     1.18 │    0.44 │  59.46% │
│ python-pox                                │     0.05 │     0.08 │    0.03 │  60.00% │
│ python-jaraco-path                        │     0.05 │     0.08 │    0.03 │  60.00% │
│ python-admesh                             │     0.05 │     0.08 │    0.03 │  60.00% │
│ python-outcome                            │     0.05 │     0.08 │    0.03 │  60.00% │
│ python-netaddr                            │     0.94 │     1.51 │    0.57 │  60.64% │
│ python-pyvlx                              │     0.51 │     0.82 │    0.31 │  60.78% │
│ python-pypubsub                           │     0.57 │     0.92 │    0.35 │  61.40% │
│ python-lazyarray                          │     0.26 │     0.42 │    0.16 │  61.54% │
│ python-pretend                            │     0.08 │     0.13 │    0.05 │  62.50% │
│ python-pytaglib                           │     0.08 │     0.13 │    0.05 │  62.50% │
│ python-flexmock                           │     0.74 │     1.21 │    0.47 │  63.51% │
│ python-arpeggio                           │     0.58 │     0.96 │    0.38 │  65.52% │
│ python-smartcols                          │     0.09 │     0.15 │    0.06 │  66.67% │
│ python-sly                                │     0.06 │     0.10 │    0.04 │  66.67% │
│ python-pytest-datadir                     │     0.03 │     0.05 │    0.02 │  66.67% │
│ python3-typed_ast                         │     0.06 │     0.10 │    0.04 │  66.67% │
│ python-atomicwrites                       │     0.03 │     0.05 │    0.02 │  66.67% │
│ python-ansicolor                          │     0.06 │     0.10 │    0.04 │  66.67% │
│ python-fuzzyfinder                        │     0.03 │     0.05 │    0.02 │  66.67% │
│ python-readlike                           │     0.03 │     0.05 │    0.02 │  66.67% │
│ python-cssselect2                         │     0.73 │     1.22 │    0.49 │  67.12% │
│ python-conda-package-handling             │     0.94 │     1.59 │    0.65 │  69.15% │
│ python-pyxs                               │     0.13 │     0.22 │    0.09 │  69.23% │
│ python-ujson                              │     0.43 │     0.73 │    0.30 │  69.77% │
│ python-jsonrpc-server                     │     0.20 │     0.34 │    0.14 │  70.00% │
│ python-utils                              │     0.10 │     0.17 │    0.07 │  70.00% │
│ python-hamcrest                           │     0.73 │     1.25 │    0.52 │  71.23% │
│ python-protego                            │     7.89 │    13.52 │    5.63 │  71.36% │
│ python-registry                           │     0.07 │     0.12 │    0.05 │  71.43% │
│ tldr                                      │     0.07 │     0.12 │    0.05 │  71.43% │
│ python-cli-helpers                        │     0.21 │     0.36 │    0.15 │  71.43% │
│ thonny                                    │     0.39 │     0.67 │    0.28 │  71.79% │
│ python-six                                │     0.36 │     0.62 │    0.26 │  72.22% │
│ autojump                                  │     0.11 │     0.19 │    0.08 │  72.73% │
│ python-junit_xml                          │     0.11 │     0.19 │    0.08 │  72.73% │
│ python-minidb                             │     0.11 │     0.19 │    0.08 │  72.73% │
│ python-dominate                           │     0.11 │     0.19 │    0.08 │  72.73% │
│ spec2scl                                  │     0.19 │     0.33 │    0.14 │  73.68% │
│ python-zict                               │     0.20 │     0.35 │    0.15 │  75.00% │
│ python-iso3166                            │     0.04 │     0.07 │    0.03 │  75.00% │
│ python-teslajsonpy                        │     0.43 │     0.76 │    0.33 │  76.74% │
│ python-identify                           │     0.54 │     0.96 │    0.42 │  77.78% │
│ python-sortedcollections                  │     0.32 │     0.57 │    0.25 │  78.12% │
│ python-email-validator                    │     0.10 │     0.18 │    0.08 │  80.00% │
│ python-voluptuous-serialize               │     0.05 │     0.09 │    0.04 │  80.00% │
│ python-itsdangerous                       │     1.29 │     2.33 │    1.04 │  80.62% │
│ python-markdown-it-py                     │     1.55 │     2.80 │    1.25 │  80.65% │
│ rust-packaging                            │     0.16 │     0.29 │    0.13 │  81.25% │
│ crypto-policies                           │     0.19 │     0.35 │    0.16 │  84.21% │
│ python-snaptime                           │     0.12 │     0.23 │    0.11 │  91.67% │
│ python-mdit-py-plugins                    │     0.55 │     1.06 │    0.51 │  92.73% │
│ salt-lint                                 │     0.14 │     0.27 │    0.13 │  92.86% │
│ python-colorful                           │     0.39 │     0.76 │    0.37 │  94.87% │
│ python-inflection                         │     0.54 │     1.06 │    0.52 │  96.30% │
│ python-cmarkgfm                           │     0.02 │     0.04 │    0.02 │ 100.00% │
│ python-backcall                           │     0.01 │     0.02 │    0.01 │ 100.00% │
│ python-biscuits                           │     0.07 │     0.14 │    0.07 │ 100.00% │
│ python-whichcraft                         │     0.01 │     0.02 │    0.01 │ 100.00% │
│ python-pytest-fixture-config              │     0.02 │     0.04 │    0.02 │ 100.00% │
│ python-aiomodbus                          │     0.15 │     0.30 │    0.15 │ 100.00% │
│ python-editdistance-s                     │     0.01 │     0.02 │    0.01 │ 100.00% │
│ python-flake8-polyfill                    │     0.04 │     0.08 │    0.04 │ 100.00% │
│ python-mackup                             │     0.22 │     0.44 │    0.22 │ 100.00% │
│ python-editdistance                       │     0.01 │     0.02 │    0.01 │ 100.00% │
│ python-ots                                │     0.01 │     0.02 │    0.01 │ 100.00% │
│ python-bleach                             │     0.73 │     1.47 │    0.74 │ 101.37% │
│ python-tinyrpc                            │     1.11 │     2.25 │    1.14 │ 102.70% │
│ python-managesieve                        │     0.18 │     0.37 │    0.19 │ 105.56% │
│ python-validators                         │     0.47 │     0.98 │    0.51 │ 108.51% │
│ python-flake8-import-order                │     0.51 │     1.07 │    0.56 │ 109.80% │
│ python-yarl                               │     2.66 │     5.86 │    3.20 │ 120.30% │
│ python-dbfread                            │     0.07 │     0.16 │    0.09 │ 128.57% │
│ python-tinycss2                           │     1.23 │     2.88 │    1.65 │ 134.15% │
│ python-tomli-w                            │     0.49 │     1.21 │    0.72 │ 146.94% │
│ python-systemd                            │     0.14 │     0.35 │    0.21 │ 150.00% │
│ python-tomli                              │     0.82 │     2.42 │    1.60 │ 195.12% │
│ python-rangeparser                        │     0.01 │     0.03 │    0.02 │ 200.00% │
│ python-pathvalidate                       │     3.46 │    10.39 │    6.93 │ 200.29% │
│ python-uamqp                              │     0.96 │     2.90 │    1.94 │ 202.08% │
│ python-colorzero                          │     3.77 │    11.69 │    7.92 │ 210.08% │
│ python-node-semver                        │     1.09 │     3.78 │    2.69 │ 246.79% │
│ sum                                       │ 31253.31 │ 31544.78 │  291.47 │   0.93% │
│ avg                                       │    33.50 │    33.81 │    0.31 │  18.31% │
└───────────────────────────────────────────┴──────────┴──────────┴─────────┴─────────┘

@bluetech
Copy link
Member

bluetech commented Jan 6, 2022

I'll definitely look at some of them.

I'm going to bet that the slowness comes from the extra stats due to the pathlib migration, possibly with the addition of a slow filesystem setup on the Fedora/user's system (maybe running NFS or such?). But I'm not making assumptions :)

@hroncok
Copy link
Member

hroncok commented Jan 6, 2022

No NFS, the filesystem is local. (I'll double check.)

@The-Compiler
Copy link
Member Author

Great, thanks @bluetech! I already asked the reporter and they said:

Latest MacOS, plus same result within python3.8 Docker image. Packages installed using pip install --user

So nothing too special, at least from what it sounds like there...

@asottile
Copy link
Member

asottile commented Jan 7, 2022

I can reproduce the slowdown pretty easily using python-node-semver from above -- appears to mostly be spending time in pathlib though it's due to a hot call here:

my_conftestmodules = pm._getconftestmodules(
(which gets called 10s of thousands of times -- approximately 20x per test)

I've attached a profile generated using these tools

this is using ~stock python 3.8.10 on ubuntu 20.04

log7

@asottile
Copy link
Member

asottile commented Jan 7, 2022

this patch "fixes" the performance issue, though I haven't studied the code close enough to see whether the optimization is correct:

$ diff -u old.py ../venv-pytest7/lib/python3.8/site-packages/_pytest/config/__init__.py
--- old.py	2022-01-06 19:47:05.974081512 -0500
+++ ../venv-pytest7/lib/python3.8/site-packages/_pytest/config/__init__.py	2022-01-06 19:45:09.238082625 -0500
@@ -524,6 +525,7 @@
                 if x.is_dir():
                     self._getconftestmodules(x, importmode, rootpath)
 
+    @lru_cache(maxsize=1)
     def _getconftestmodules(
         self, path: Path, importmode: Union[str, ImportMode], rootpath: Path
     ) -> List[types.ModuleType]:

@asottile
Copy link
Member

asottile commented Jan 7, 2022

heh, bisecting gives a commit that definitely makes sense 614f539:

614f5394b50ac88b7aa4e97b43acb08aca383d95 is the first bad commit
commit 614f5394b50ac88b7aa4e97b43acb08aca383d95
Author: Ran Benita <[email protected]>
Date:   Fri Oct 1 14:28:16 2021 +0300

    Avoid `@lru_cache` on methods
    
    The problem with `@lru_cache` on methods is that it also captures `self`
    and leaks it until the entry is evicted (if ever).

 src/_pytest/assertion/rewrite.py | 7 ++-----
 src/_pytest/config/__init__.py   | 1 -
 2 files changed, 2 insertions(+), 6 deletions(-)
bisect run success

I bisected using this script:

#!/usr/bin/env bash
set -euxo pipefail
pip uninstall -yqq pytest >& /dev/null
pip install -qq . >& /dev/null
cd ../python-node-semver
git clean -fxfdq
timeout 2.5 pytest nodesemver || exit 1

and this technique

git bisect start
git bisect bad HEAD
git bisect good 6.2.5
git bisect run ../t.sh

@asottile
Copy link
Member

asottile commented Jan 7, 2022

the story doesn't quite end there though -- the second commit in that patch is supposed to patch up that performance hit but makes a tiny edge-case mistake on the caching code -- it ignores the case when the cached value is falsey

fixing that gets us most of the way back to the pytest 6.x performance but not quite because the beginning of _getconftestmodules still invokes a lot of slow pathlib is_file and parent calls (~15% slower than 6.2.5 (which is way better than 230% slower!))

diff --git a/src/_pytest/config/__init__.py b/src/_pytest/config/__init__.py
index dee3d4974..174d80a01 100644
--- a/src/_pytest/config/__init__.py
+++ b/src/_pytest/config/__init__.py
@@ -538,7 +538,7 @@ class PytestPluginManager(PluginManager):
         # Optimization: avoid repeated searches in the same directory.
         # Assumes always called with same importmode and rootpath.
         existing_clist = self._dirpath2confmods.get(directory)
-        if existing_clist:
+        if existing_clist is not None:
             return existing_clist
 
         # XXX these days we may rather want to use config.rootpath

@asottile
Copy link
Member

asottile commented Jan 7, 2022

an idea to get back to the original caching but without a memory leak would be to assign a per-instance lru_cache:

diff --git a/src/_pytest/config/__init__.py b/src/_pytest/config/__init__.py
index dee3d4974..15a9c0ef1 100644
--- a/src/_pytest/config/__init__.py
+++ b/src/_pytest/config/__init__.py
@@ -354,6 +354,7 @@ class PytestPluginManager(PluginManager):
         self._confcutdir: Optional[Path] = None
         self._noconftest = False
         self._duplicatepaths: Set[Path] = set()
+        self._getconftestmodules = lru_cache(maxsize=128)(self._getconftestmodules_uncached)
 
         # plugins that were explicitly skipped with pytest.skip
         # list of (module name, skip reason)
@@ -524,7 +525,7 @@ class PytestPluginManager(PluginManager):
                 if x.is_dir():
                     self._getconftestmodules(x, importmode, rootpath)
 
-    def _getconftestmodules(
+    def _getconftestmodules_uncached(
         self, path: Path, importmode: Union[str, ImportMode], rootpath: Path
     ) -> List[types.ModuleType]:
         if self._noconftest:

I used the same technique in my text editor though admittedly for a different reason

@nicoddemus
Copy link
Member

an idea to get back to the original caching but without a memory leak would be to assign a per-instance lru_cache

This is interesting, but doesn't that still creates a circular reference, because lru_cache(...)(self._getconftestmodules_uncached) references a bound method (which references self), which is then stored in a variable in self?

Perhaps it is simple enough to implement an infinite cache using a dict? Caching all calls seems feasible in this case.

@bluetech
Copy link
Member

bluetech commented Jan 7, 2022

Great stuff @asottile, especially the diagram. I am able to reproduce your findings.

First, I am going to submit your is None patch and backport it. I think that we should do it anyway, to have a proper baseline for any other improvements in the git history. For me the timings are:

  • pytest 6.2.5: 1.59s
  • pytest main: 5.37s (3.4x slower)
  • pytest main+is None fix: 1.96s (1.23x slower)

Regarding adding back the lru_cache to _getconftestmodules, I would like to avoid it; I always had a bad feeling about it. Aside from the double caching and missing the path->directory normalization, I just feel that caching side-effecting functions is not a good idea with lru_cache but needs more care. So I'd like to find a way to recover the lost performance some other way.

In the meantime, IMO the is None fix will be sufficient to unblock the 7.0 release, but that's up to @The-Compiler to decide (I'm fine with either way, including bringing back the lru_cache for now).

@The-Compiler
Copy link
Member Author

I agree that should be sufficient. I feel like that gets things to the same ballpark again, so that we can have further performance fixes in 7.0.1 or 7.1.0.

bluetech added a commit to bluetech/pytest that referenced this issue Jan 7, 2022

Unverified

This commit is not signed, but one or more authors requires that any commit attributed to them is signed.
This made the cache not work as intended, causing a major slowdown.

See pytest-dev#9478 for discussion and context.

Authored-by: Anthony Sottile <[email protected]>
@The-Compiler
Copy link
Member Author

Thanks to @bluetech @asottile @hroncok for an incredibly quick turnaround on what seemed like a tricky issue without much detail! ❤️

@The-Compiler
Copy link
Member Author

The-Compiler commented Jan 7, 2022

Oh, also, how do folks feel about a quick 7.0.0rc2 now? We still need to take care of #9002 and #9471 (plus potentially "unknown unknowns" from #9415?), but that would mean it's easy for people (and probably Fedora?) to test the fixes which we have so far (and it makes it easier to ask the original reporter to test this fix too).

@hroncok
Copy link
Member

hroncok commented Jan 7, 2022

I might be able to test that in Fedroa with the git HEAD as well even without rc.

@asottile
Copy link
Member

asottile commented Jan 7, 2022

an idea to get back to the original caching but without a memory leak would be to assign a per-instance lru_cache

This is interesting, but doesn't that still creates a circular reference, because lru_cache(...)(self._getconftestmodules_uncached) references a bound method (which references self), which is then stored in a variable in self?

Perhaps it is simple enough to implement an infinite cache using a dict? Caching all calls seems feasible in this case.

the memory issue isn't due to a cycle but due to lru_cache being attached to the class (~essentially a global variable with process lifetime). when the cache is assigned to the instance it is collected with the instance itself

@The-Compiler
Copy link
Member Author

FWIW the reporter said:

Great news! I confirm no more delays detected on my projects. Well done. Tnx

And someone else also said:

Tests collection time went from 32s (6.2.5) to 2.3s (7.0.0) on a large test suite of 4000 tests Party popper

(edited to add the correction from the follow-up tweet)

so looks like all in all, 7.0.0 was a great performance improvement - thanks to everyone involved!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: performance performance or memory problem/improvement
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants