|  | 
|  | 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 | +                ( | 
|  | 22 | +                    {"name": task.name.split("/")[-1], "path": str(task.path)} | 
|  | 23 | +                    if isinstance(task, pytask.PTaskWithPath) | 
|  | 24 | +                    else {"name": task.name, "path": ""} | 
|  | 25 | +                ) | 
|  | 26 | +                for task in tasks | 
|  | 27 | +            ] | 
|  | 28 | +            res = requests.post( | 
|  | 29 | +                "http://localhost:6000/pytask", | 
|  | 30 | +                json={"exitcode": exitcode, "tasks": result}, | 
|  | 31 | +                timeout=0.0001, | 
|  | 32 | +            ) | 
|  | 33 | +    except requests.exceptions.ReadTimeout: | 
|  | 34 | +        pass | 
|  | 35 | +    except Exception: | 
|  | 36 | +        pass | 
| 21 | 37 | 
 | 
| 22 | 38 | 
 | 
| 23 | 39 | @pytask.hookimpl(tryfirst=True) | 
| 24 |  | -def pytask_execute_task_log_end(session: pytask.Session, report: pytask.ExecutionReport) -> None: | 
| 25 |  | -     | 
|  | 40 | +def pytask_execute_task_log_end( | 
|  | 41 | +    session: pytask.Session, report: pytask.ExecutionReport | 
|  | 42 | +) -> None: | 
|  | 43 | + | 
| 26 | 44 |     try: | 
| 27 | 45 |         if report.outcome == pytask.TaskOutcome.FAIL: | 
| 28 | 46 |             with pytask.console.capture() as capture: | 
| 29 | 47 |                 pytask.console.print(pytask.Traceback(report.exc_info)) | 
| 30 | 48 |             s = capture.get() | 
| 31 |  | -            result = {'type': 'task', 'name' : report.task.name.split('/')[-1], 'outcome' : str(report.outcome), 'exc_info' : s} | 
|  | 49 | +            result = { | 
|  | 50 | +                "type": "task", | 
|  | 51 | +                "name": report.task.name.split("/")[-1], | 
|  | 52 | +                "outcome": str(report.outcome), | 
|  | 53 | +                "exc_info": s, | 
|  | 54 | +            } | 
| 32 | 55 |         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:  | 
|  | 56 | +            result = { | 
|  | 57 | +                "type": "task", | 
|  | 58 | +                "name": report.task.name.split("/")[-1], | 
|  | 59 | +                "outcome": str(report.outcome), | 
|  | 60 | +            } | 
|  | 61 | +        res = requests.post( | 
|  | 62 | +            "http://localhost:6000/pytask", json=result, timeout=0.00001 | 
|  | 63 | +        ) | 
|  | 64 | +    except requests.exceptions.ReadTimeout: | 
| 36 | 65 |         pass | 
| 37 |  | -    except Exception as e:# | 
|  | 66 | +    except Exception:  # | 
| 38 | 67 |         pass | 
0 commit comments