Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion pyperformance/_benchmark.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import sys

import pyperf
from packaging.specifiers import SpecifierSet

from . import _utils, _benchmark_metadata

Expand Down Expand Up @@ -164,9 +165,13 @@ def runscript(self):
def extra_opts(self):
return self._get_metadata_value('extra_opts', ())

@property
def python(self):
req = self._get_metadata_value("python", None)
return None if req is None else SpecifierSet(req)

# Other metadata keys:
# * base
# * python
# * dependencies
# * requirements

Expand Down
6 changes: 5 additions & 1 deletion pyperformance/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -241,11 +241,15 @@ def parse_entry(o, s):

# Get the selections.
selected = []
this_python_version = ".".join(map(str, sys.version_info[:3]))
for bench in _benchmark_selections.iter_selections(manifest, parsed_infos):
if isinstance(bench, str):
logging.warning(f"no benchmark named {bench!r}")
continue
selected.append(bench)
# Filter out any benchmarks that can't be run on the Python version we're running
if bench.python is not None and this_python_version in bench.python:
selected.append(bench)

return selected


Expand Down
2 changes: 1 addition & 1 deletion pyperformance/tests/data/bm_local_wheel/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "pyperformance_bm_local_wheel"
requires-python = ">=3.8"
requires-python = ">=3.7"
dependencies = ["pyperf"]
urls = {repository = "https://github.com/python/pyperformance"}
version = "1.0"
Expand Down