Skip to content
Open
Show file tree
Hide file tree
Changes from all 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
4 changes: 2 additions & 2 deletions check50/__main__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import argparse
import contextlib
import dataclasses
import enum
import gettext
import importlib
Expand All @@ -15,7 +16,6 @@
import tempfile
import time

import attr
import lib50
import packaging
import requests
Expand Down Expand Up @@ -449,7 +449,7 @@ def main():
check_results = check_runner.run(args.target)
results = {
"slug": internal.slug,
"results": [attr.asdict(result) for result in check_results],
"results": [dataclasses.asdict(result) for result in check_results],
"version": __version__
}

Expand Down
21 changes: 10 additions & 11 deletions check50/runner.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import collections
from contextlib import contextmanager
import concurrent.futures as futures
import dataclasses
import functools
import inspect
import importlib
Expand All @@ -14,7 +15,6 @@
import tempfile
import traceback

import attr
import lib50

from . import internal, _exceptions, __version__
Expand All @@ -23,16 +23,16 @@
_check_names = []


@attr.s(slots=True)
@dataclasses.dataclass(slots=True)
class CheckResult:
"""Record returned by each check"""
name = attr.ib()
description = attr.ib()
passed = attr.ib(default=None)
log = attr.ib(default=attr.Factory(list))
cause = attr.ib(default=None)
data = attr.ib(default=attr.Factory(dict))
dependency = attr.ib(default=None)
name: str
description: str
passed: bool | None = None
log: list[str] = dataclasses.field(default_factory=list)
cause: dict | None = None
data: dict = dataclasses.field(default_factory=dict)
dependency: str | None = None

@classmethod
def from_check(cls, check, *args, **kwargs):
Expand All @@ -48,8 +48,7 @@ def from_check(cls, check, *args, **kwargs):
def from_dict(cls, d):
"""Create a CheckResult given a dict. Dict must contain at least the fields in the CheckResult.
Throws a KeyError if not."""
return cls(**{field.name: d[field.name] for field in attr.fields(cls)})

return cls(**{field.name: d[field.name] for field in dataclasses.fields(cls)})


class Timeout(Failure):
Expand Down
4 changes: 2 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,14 @@
message_extractors = {
'check50': [('**.py', 'python', None),],
},
install_requires=["attrs>=18", "beautifulsoup4>=0", "lib50>=3,<4", "packaging", "pexpect>=4.6", "pyyaml>6,<7", "requests>=2.19", "setuptools", "termcolor>=1.1", "jinja2>=2.10"],
install_requires=["beautifulsoup4>=0", "lib50>=3,<4", "packaging", "pexpect>=4.6", "pyyaml>6,<7", "requests>=2.19", "setuptools", "termcolor>=1.1", "jinja2>=2.10"],
extras_require = {
"develop": ["sphinx", "sphinx-autobuild", "sphinx_rtd_theme"]
},
keywords=["check", "check50"],
name="check50",
packages=["check50", "check50.renderer", "check50.assertions"],
python_requires=">= 3.8",
python_requires=">= 3.10",
entry_points={
"console_scripts": ["check50=check50.__main__:main"]
},
Expand Down