| 
 | 1 | +from __future__ import annotations  | 
 | 2 | + | 
 | 3 | + | 
1 | 4 | import pytask  | 
2 |  | -import json  | 
3 | 5 | import requests  | 
4 |  | -from contextlib import redirect_stdout  | 
5 |  | -import io  | 
 | 6 | + | 
6 | 7 | 
 
  | 
7 | 8 | @pytask.hookimpl(tryfirst=True)  | 
8 |  | -def pytask_collect_log(session: pytask.Session, reports: list[pytask.CollectionReport], tasks: list[pytask.PTask]) -> None:  | 
9 |  | -        try:      | 
10 |  | -            if session.config['command'] == 'collect':  | 
11 |  | -                exitcode = 0  | 
12 |  | -                for report in reports:  | 
13 |  | -                    if report.outcome == pytask.CollectionOutcome.FAIL:  | 
14 |  | -                        exitcode = 3  | 
15 |  | -                result = [{'name' : task.name.split('/')[-1], 'path' : str(task.path)} if isinstance(task,pytask.PTaskWithPath) else {'name' : task.name, 'path' : ''} for task in tasks]  | 
16 |  | -                res = requests.post('http://localhost:6000/pytask', json={"exitcode" : exitcode, "tasks": result}, timeout=0.0001)  | 
17 |  | -        except requests.exceptions.ReadTimeout:   | 
18 |  | -            pass  | 
19 |  | -        except Exception as e:  | 
20 |  | -            pass  | 
 | 9 | +def pytask_collect_log(  | 
 | 10 | +    session: pytask.Session,  | 
 | 11 | +    reports: list[pytask.CollectionReport],  | 
 | 12 | +    tasks: list[pytask.PTask],  | 
 | 13 | +) -> None:  | 
 | 14 | +    try:  | 
 | 15 | +        if session.config["command"] == "collect":  | 
 | 16 | +            exitcode = 0  | 
 | 17 | +            for report in reports:  | 
 | 18 | +                if report.outcome == pytask.CollectionOutcome.FAIL:  | 
 | 19 | +                    exitcode = 3  | 
 | 20 | +            result = [  | 
 | 21 | +                {"name": task.name.split("/")[-1], "path": str(task.path)}  | 
 | 22 | +                if isinstance(task, pytask.PTaskWithPath)  | 
 | 23 | +                else {"name": task.name, "path": ""}  | 
 | 24 | +                for task in tasks  | 
 | 25 | +            ]  | 
 | 26 | +            res = requests.post(  | 
 | 27 | +                "http://localhost:6000/pytask",  | 
 | 28 | +                json={"exitcode": exitcode, "tasks": result},  | 
 | 29 | +                timeout=0.0001,  | 
 | 30 | +            )  | 
 | 31 | +    except requests.exceptions.ReadTimeout:  | 
 | 32 | +        pass  | 
 | 33 | +    except Exception:  | 
 | 34 | +        pass  | 
21 | 35 | 
 
  | 
22 | 36 | 
 
  | 
23 | 37 | @pytask.hookimpl(tryfirst=True)  | 
24 |  | -def pytask_execute_task_log_end(session: pytask.Session, report: pytask.ExecutionReport) -> None:  | 
25 |  | -      | 
 | 38 | +def pytask_execute_task_log_end(  | 
 | 39 | +    session: pytask.Session, report: pytask.ExecutionReport  | 
 | 40 | +) -> None:  | 
26 | 41 |     try:  | 
27 | 42 |         if report.outcome == pytask.TaskOutcome.FAIL:  | 
28 | 43 |             with pytask.console.capture() as capture:  | 
29 | 44 |                 pytask.console.print(pytask.Traceback(report.exc_info))  | 
30 | 45 |             s = capture.get()  | 
31 |  | -            result = {'type': 'task', 'name' : report.task.name.split('/')[-1], 'outcome' : str(report.outcome), 'exc_info' : s}  | 
 | 46 | +            result = {  | 
 | 47 | +                "type": "task",  | 
 | 48 | +                "name": report.task.name.split("/")[-1],  | 
 | 49 | +                "outcome": str(report.outcome),  | 
 | 50 | +                "exc_info": s,  | 
 | 51 | +            }  | 
32 | 52 |         else:  | 
33 |  | -            result = {'type': 'task', 'name' : report.task.name.split('/')[-1], 'outcome' : str(report.outcome)}  | 
34 |  | -        res = requests.post('http://localhost:6000/pytask', json=result, timeout=0.00001)  | 
35 |  | -    except requests.exceptions.ReadTimeout:   | 
 | 53 | +            result = {  | 
 | 54 | +                "type": "task",  | 
 | 55 | +                "name": report.task.name.split("/")[-1],  | 
 | 56 | +                "outcome": str(report.outcome),  | 
 | 57 | +            }  | 
 | 58 | +        res = requests.post(  | 
 | 59 | +            "http://localhost:6000/pytask", json=result, timeout=0.00001  | 
 | 60 | +        )  | 
 | 61 | +    except requests.exceptions.ReadTimeout:  | 
36 | 62 |         pass  | 
37 |  | -    except Exception as e:#  | 
 | 63 | +    except Exception:  #  | 
38 | 64 |         pass  | 
0 commit comments