|
1 |
| -# Changelog |
2 |
| -*[CalVer, YY.month.patch](https://calver.org/)* |
3 |
| - |
4 |
| -## 24.5.2 |
5 |
| -- ASYNC101 now also warns on anyio & asyncio taskgroup.s |
6 |
| -- Fixed a bug where ASYNC101 and ASYNC91x would not recognize decorators with parameters directly imported. I.e. `@fixture(...)` will now suppress errors. |
7 |
| - |
8 |
| -## 24.5.1 |
9 |
| -- Add ASYNC912: no checkpoints in with statement are guaranteed to run. |
10 |
| -- ASYNC100 now properly treats async for comprehensions as checkpoints. |
11 |
| -- ASYNC100 now supports autofixing on asyncio. |
12 |
| - |
13 |
| -## 24.4.2 |
14 |
| -- Add ASYNC119: yield in contextmanager in async generator. |
15 |
| - |
16 |
| -## 24.4.1 |
17 |
| -- ASYNC91X fix internal error caused by multiple `try/except` incorrectly sharing state. |
18 |
| - |
19 |
| -## 24.3.6 |
20 |
| -- ASYNC100 no longer triggers if a context manager contains a `yield`. |
21 |
| - |
22 |
| -## 24.3.5 |
23 |
| -- ASYNC102 (no await inside finally or critical except) no longer raises warnings for calls to `aclose()` on objects in trio/anyio code. See https://github.com/python-trio/flake8-async/issues/156 |
24 |
| - |
25 |
| -## 24.3.4 |
26 |
| -- ASYNC110 (don't loop sleep) now also warns if looping `[trio/anyio].lowlevel.checkpoint()`. |
27 |
| - |
28 |
| -## 24.3.3 |
29 |
| -- Add ASYNC251: `time.sleep()` in async method. |
30 |
| - |
31 |
| -## 24.3.2 |
32 |
| -- Add ASYNC250: blocking sync call `input()` in async method. |
33 |
| - |
34 |
| -## 24.3.1 |
35 |
| -- Removed TRIO117, MultiError removed in trio 0.24.0 |
36 |
| -- Renamed the library from flake8-trio to flake8-async, to indicate the checker supports more than just `trio`. |
37 |
| -- Renamed all error codes from TRIOxxx to ASYNCxxx |
38 |
| -- Renamed the binary from flake8-trio to flake8-async |
39 |
| -- Lots of internal renaming. |
40 |
| -- Added asyncio support for several error codes |
41 |
| -- added `--library` |
42 |
| - |
43 |
| -## 23.5.1 |
44 |
| -- TRIO91X now supports comprehensions |
45 |
| -- TRIO100 and TRIO91X now supports autofixing |
46 |
| -- Renamed `--enable-visitor-codes-regex` to `--enable` |
47 |
| -- Added `--disable`, `--autofix` and `--error-on-autofix` |
48 |
| - |
49 |
| -## 23.2.5 |
50 |
| -- Fix false alarms for `@pytest.fixture`-decorated functions in TRIO101, TRIO910 and TRIO911 |
51 |
| - |
52 |
| -## 23.2.4 |
53 |
| -- Fix TRIO900 false alarm on nested functions |
54 |
| -- TRIO113 now also works on `anyio.TaskGroup` |
55 |
| - |
56 |
| -## 23.2.3 |
57 |
| -- Fix get_matching_call when passed a single string as base. Resolves possibly several false alarms, TRIO210 among them. |
58 |
| - |
59 |
| -## 23.2.2 |
60 |
| -- Rename TRIO107 to TRIO910, and TRIO108 to TRIO911, and making them optional by default. |
61 |
| -- Allow `@pytest.fixture()`-decorated async generators, since they're morally context managers |
62 |
| -- Add support for checking code written against [`anyio`](https://anyio.readthedocs.io/en/stable/) |
63 |
| -- Add TRIO118: Don't assign the value of `anyio.get_cancelled_exc_class()` to a variable, since that breaks linter checks and multi-backend programs. |
64 |
| - |
65 |
| -## 23.2.1 |
66 |
| -- TRIO103 and TRIO104 no longer triggers when `trio.Cancelled` has been handled in previous except handlers. |
67 |
| -- Add TRIO117: Reference to deprecated `trio.[NonBase]MultiError`; use `[Base]ExceptionGroup` instead. |
68 |
| -- Add TRIO232: blocking sync call on file object. |
69 |
| -- Add TRIO212: blocking sync call on `httpx.Client` object. |
70 |
| -- Add TRIO222: blocking sync call to `os.wait*` |
71 |
| -- TRIO221 now also looks for `os.posix_spawn[p]` |
72 |
| - |
73 |
| -## 23.1.4 |
74 |
| -- TRIO114 avoids a false alarm on posonly args named "task_status" |
75 |
| -- TRIO116 will now match on any attribute parameter named `.inf`, not just `math.inf`. |
76 |
| -- TRIO900 now only checks `@asynccontextmanager`, not other decorators passed with --no-checkpoint-warning-decorators. |
77 |
| - |
78 |
| -## 23.1.3 |
79 |
| -- Add TRIO240: usage of `os.path` in async function. |
80 |
| -- Add TRIO900: ban async generators not decorated with known safe decorator |
81 |
| - |
82 |
| -## 23.1.2 |
83 |
| -- Add TRIO230, TRIO231 - sync IO calls in async function |
84 |
| - |
85 |
| -## 23.1.1 |
86 |
| -- Add TRIO210, TRIO211 - blocking sync call in async function, using network packages (requests, httpx, urllib3) |
87 |
| -- Add TRIO220, TRIO221 - blocking sync call in async function, using subprocess or os. |
88 |
| - |
89 |
| -## 22.12.5 |
90 |
| -- The `--startable-in-context-manager` and `--trio200-blocking-calls` options now handle spaces and newlines. |
91 |
| -- Now compatible with [flake8-noqa](https://pypi.org/project/flake8-noqa/)'s NQA102 and NQA103 checks. |
92 |
| - |
93 |
| -## 22.12.4 |
94 |
| -- TRIO200 no longer warns on directly awaited calls |
95 |
| - |
96 |
| -## 22.12.3 |
97 |
| -- Worked around configuration-parsing bug for TRIO200 warning (more to come) |
98 |
| - |
99 |
| -## 22.12.2 |
100 |
| -- Add TRIO200: User-configured blocking sync call in async function |
101 |
| - |
102 |
| -## 22.12.1 |
103 |
| -- TRIO114 will now trigger on the unqualified name, will now only check the first parameter |
104 |
| - directly, and parameters to function calls inside that. |
105 |
| -- TRIO113 now only supports names that are valid identifiers, rather than fnmatch patterns. |
106 |
| -- Add TRIO115: Use `trio.lowlevel.checkpoint()` instead of `trio.sleep(0)`. |
107 |
| - |
108 |
| -## 22.11.5 |
109 |
| -- Add TRIO116: `trio.sleep()` with >24 hour interval should usually be `trio.sleep_forever()`. |
110 |
| - |
111 |
| -## 22.11.4 |
112 |
| -- Add TRIO114 Startable function not in `--startable-in-context-manager` parameter list. |
113 |
| - |
114 |
| -## 22.11.3 |
115 |
| -- Add TRIO113, prefer `await nursery.start(...)` to `nursery.start_soon()` for compatible functions when opening a context manager |
116 |
| - |
117 |
| -## 22.11.2 |
118 |
| -- TRIO105 now also checks that you `await`ed `nursery.start()`. |
119 |
| - |
120 |
| -## 22.11.1 |
121 |
| -- TRIO102 is no longer skipped in (async) context managers, since it's not a missing-checkpoint warning. |
122 |
| - |
123 |
| -## 22.9.2 |
124 |
| -- Fix a crash on nontrivial decorator expressions (calls, PEP-614) and document behavior. |
125 |
| - |
126 |
| -## 22.9.1 |
127 |
| -- Add `--no-checkpoint-warning-decorators` option, to disable missing-checkpoint warnings for certain decorated functions. |
128 |
| - |
129 |
| -## 22.8.8 |
130 |
| -- Fix false alarm on TRIO107 with checkpointing `try` and empty `finally` |
131 |
| -- Fix false alarm on TRIO107&108 with infinite loops |
132 |
| - |
133 |
| -## 22.8.7 |
134 |
| -- TRIO107+108 now ignores `asynccontextmanager`s, since both `__aenter__` and `__aexit__` should checkpoint. `async with` is also treated as checkpointing on both enter and exit. |
135 |
| -- TRIO107 now completely ignores any function whose body consists solely of ellipsis, pass, or string constants. |
136 |
| -- TRIO103, 107 and 108 now inspects `while` conditions and `for` iterables to avoid false alarms on a couple cases where the loop body is guaranteed to run at least once. |
137 |
| - |
138 |
| -## 22.8.6 |
139 |
| -- TRIO103 now correctly handles raises in loops, i.e. `raise` in else is guaranteed to run unless there's a `break` in the body. |
140 |
| - |
141 |
| -## 22.8.5 |
142 |
| -- Add TRIO111: Variable, from context manager opened inside nursery, passed to `start[_soon]` might be invalidly accessed while in use, due to context manager closing before the nursery. This is usually a bug, and nurseries should generally be the inner-most context manager. |
143 |
| -- Add TRIO112: this single-task nursery could be replaced by awaiting the function call directly. |
144 |
| - |
145 |
| -## 22.8.4 |
146 |
| -- Fix TRIO108 raising errors on yields in some sync code. |
147 |
| -- TRIO109 now skips all decorated functions to avoid false alarms |
148 |
| - |
149 |
| -## 22.8.3 |
150 |
| -- TRIO108 now gives multiple error messages; one for each path lacking a guaranteed checkpoint |
151 |
| - |
152 |
| -## 22.8.2 |
153 |
| -- Merged TRIO108 into TRIO107 |
154 |
| -- TRIO108 now handles checkpointing in async iterators |
155 |
| - |
156 |
| -## 22.8.1 |
157 |
| -- Added TRIO109: Async definitions should not have a `timeout` parameter. Use `trio.[fail/move_on]_[at/after]` |
158 |
| -- Added TRIO110: `while <condition>: await trio.sleep()` should be replaced by a `trio.Event`. |
159 |
| - |
160 |
| -## 22.7.6 |
161 |
| -- Extend TRIO102 to also check inside `except BaseException` and `except trio.Cancelled` |
162 |
| -- Extend TRIO104 to also check for `yield` |
163 |
| -- Update error messages on TRIO102 and TRIO103 |
164 |
| - |
165 |
| -## 22.7.5 |
166 |
| -- Add TRIO103: `except BaseException` or `except trio.Cancelled` with a code path that doesn't re-raise |
167 |
| -- Add TRIO104: "Cancelled and BaseException must be re-raised" if user tries to return or raise a different exception. |
168 |
| -- Added TRIO107: Async functions must have at least one checkpoint on every code path, unless an exception is raised |
169 |
| -- Added TRIO108: Early return from async function must have at least one checkpoint on every code path before it. |
170 |
| - |
171 |
| -## 22.7.4 |
172 |
| -- Added TRIO105 check for not immediately `await`ing async trio functions. |
173 |
| -- Added TRIO106 check that trio is imported in a form that the plugin can easily parse. |
174 |
| - |
175 |
| -## 22.7.3 |
176 |
| -- Added TRIO102 check for unsafe checkpoints inside `finally:` blocks |
177 |
| - |
178 |
| -## 22.7.2 |
179 |
| -- Avoid `TRIO100` false-alarms on cancel scopes containing `async for` or `async with`. |
180 |
| - |
181 |
| -## 22.7.1 |
182 |
| -- Initial release with TRIO100 and TRIO101 |
| 1 | +The flake8-async changelog can now be seen at https://flake8-async.readthedocs.io/en/latest/changelog.html |
0 commit comments