Charlie Marsh
1895011ac2
Document some attributes on the semantic model ( #5064 )
2023-06-13 20:45:24 +00:00
Charlie Marsh
364bd82aee
Don't treat annotations as resolved in forward references ( #5060 )
...
## Summary
This behavior dates back to a Pyflakes commit (5fc37cbd), which was used
to allow this test to pass:
```py
from __future__ import annotations
T: object
def f(t: T): pass
def g(t: 'T'): pass
```
But, I think this is an error. Mypy and Pyright don't accept it -- you
can only use variables as type annotations if they're type aliases
(i.e., annotated with `TypeAlias`), in which case, there has to be an
assignment on the right-hand side (see: [PEP
613](https://peps.python.org/pep-0613/ )).
2023-06-13 14:47:29 -04:00
Charlie Marsh
19f972a305
Use `Scope#has` in lieu of `Scope#get` ( #5051 )
...
## Summary
These usages don't actually need the `BindingId`.
2023-06-13 15:59:53 +00:00
Charlie Marsh
68b6d30c46
Use consistent `Cargo.toml` metadata in all crates ( #5015 )
2023-06-12 00:02:40 +00:00
Charlie Marsh
e86f12a1ec
Rename some methods on `SemanticModel` ( #4990 )
2023-06-09 19:36:59 +00:00
Charlie Marsh
5c502a3320
Add documentation for `BindingKind` variants ( #4989 )
2023-06-09 18:32:50 +00:00
Davide Canton
63fdcea29e
Handled dict and set inside f-string ( #4249 ) ( #4563 )
2023-06-09 04:53:13 +00:00
Micha Reiser
39a1f3980f
Upgrade RustPython ( #4900 )
2023-06-08 05:53:14 +00:00
Charlie Marsh
ae75b303f0
Avoid attributing runtime references to module-level imports ( #4942 )
2023-06-07 21:56:03 +00:00
Charlie Marsh
780d153ae8
Replace one-off locals property with `ScopeFlags` ( #4912 )
2023-06-06 21:22:21 -04:00
Charlie Marsh
8c048b463c
Track symbol deletions separately from bindings ( #4888 )
2023-06-06 18:49:36 +00:00
Charlie Marsh
7b0fb1a3b4
Respect noqa directives on `ImportFrom` parents for type-checking rules ( #4889 )
2023-06-06 02:37:07 +00:00
Charlie Marsh
8938b2d555
Use `qualified_name` terminology in more structs for consistency ( #4873 )
2023-06-05 19:06:48 +00:00
Charlie Marsh
d31eb87877
Extract shared simple AST node inference utility ( #4871 )
2023-06-05 18:23:37 +00:00
Charlie Marsh
a0721912a4
Invert structure of Scope#shadowed_bindings ( #4855 )
2023-06-05 02:03:21 +00:00
Charlie Marsh
466719247b
Invert parent-shadowed bindings map ( #4847 )
2023-06-04 00:18:46 -04:00
Charlie Marsh
3fa4440d87
Modify semantic model API to push bindings upon creation ( #4846 )
2023-06-04 02:28:25 +00:00
Charlie Marsh
c14896b42c
Move `Binding` initialization into `SemanticModel` ( #4819 )
2023-06-03 15:26:55 -04:00
Charlie Marsh
935094c2ff
Move import-name matching into methods on `BindingKind` ( #4818 )
2023-06-03 15:01:27 -04:00
Charlie Marsh
26b1dd0ca2
Remove `name` field from import binding kinds ( #4817 )
2023-06-02 23:02:47 -04:00
Charlie Marsh
211d8e170d
Ignore error calls with `exc_info` in TRY400 ( #4797 )
2023-06-02 04:59:45 +00:00
Charlie Marsh
ea3cbcc362
Avoid enforcing native-literals rule within nested f-strings ( #4488 )
2023-06-02 04:00:31 +00:00
qdegraaf
fcbf5c3fae
Add PYI034 for `flake8-pyi` plugin ( #4764 )
2023-06-02 02:15:57 +00:00
Jonathan Plasse
edadd7814f
Add `pyflakes.extend-generics` setting ( #4677 )
2023-06-01 22:19:37 +00:00
Charlie Marsh
ea31229be0
Track `TYPE_CHECKING` blocks in `Importer` ( #4593 )
2023-05-30 16:18:10 +00:00
Charlie Marsh
80fa3f2bfa
Add a convenience method to check if a name is bound ( #4718 )
2023-05-30 01:52:41 +00:00
Aarni Koskela
0106bce02f
[`flake8-future-annotations`] Implement `FA102` ( #4702 )
2023-05-29 22:41:45 +00:00
Charlie Marsh
9741f788c7
Remove globals table from `Scope` ( #4686 )
2023-05-27 22:35:20 -04:00
Charlie Marsh
af433ac14d
Avoid using typing-imported symbols for runtime edits ( #4649 )
2023-05-26 20:36:37 -04:00
qdegraaf
ccca11839a
Allow more immutable funcs for RUF009 ( #4660 )
2023-05-26 15:18:52 -04:00
Charlie Marsh
0f610f2cf7
Remove dedicated ScopeKind structs in favor of AST nodes ( #4648 )
2023-05-25 19:31:02 +00:00
Charlie Marsh
f0e173d9fd
Use `BindingId` copies in lieu of `&BindingId` in semantic model methods ( #4633 )
2023-05-24 15:55:45 +00:00
Charlie Marsh
fcdc7bdd33
Remove separate `ReferenceContext` enum ( #4631 )
2023-05-24 15:12:38 +00:00
Charlie Marsh
5cedf0f724
Remove `ReferenceContext::Synthetic` ( #4612 )
2023-05-24 14:30:35 +00:00
Charlie Marsh
8961d8eb6f
Track all read references in semantic model ( #4610 )
2023-05-24 14:14:27 +00:00
Charlie Marsh
ba4c0a21fa
Rename `ContextFlags` to `SemanticModelFlags` ( #4611 )
2023-05-23 17:47:07 -04:00
Micha Reiser
652c644c2a
Introduce `ruff_index` crate ( #4597 )
2023-05-23 17:40:35 +02:00
Charlie Marsh
74effb40b9
Rename `index` to `binding_id` in a few iterators ( #4594 )
2023-05-23 03:56:00 +00:00
Micha Reiser
daadd24bde
Include decorators in `Function` and `Class` definition ranges ( #4467 )
2023-05-22 17:50:42 +02:00
Micha Reiser
cbe344f4d5
Rename `Checker::model` to `semantic_model` ( #4573 )
2023-05-22 15:14:30 +02:00
Charlie Marsh
d70f899f71
Use `SemanticModel` in lieu of `Checker` in more methods ( #4568 )
2023-05-22 02:58:47 +00:00
Charlie Marsh
19c4b7bee6
Rename ruff_python_semantic's `Context` struct to `SemanticModel` ( #4565 )
2023-05-22 02:35:03 +00:00
Charlie Marsh
fe7f2e2e4d
Move submodule alias resolution into `Context` ( #4543 )
2023-05-20 16:34:10 +00:00
Charlie Marsh
6aa9900c03
Improve handling of `__qualname__`, `__module__`, and `__class__` ( #4512 )
2023-05-20 03:03:45 +00:00
Charlie Marsh
9e21414294
Improve reference resolution for deferred-annotations-within-classes ( #4509 )
2023-05-20 02:54:18 +00:00
Charlie Marsh
bb4e674415
Move reference-resolution into Context ( #4510 )
2023-05-20 02:47:15 +00:00
Charlie Marsh
73efbeb581
Invert quote-style when generating code within f-strings ( #4487 )
2023-05-18 14:33:33 +00:00
Micha Reiser
fa26860296
Refactor range from `Attributed` to `Node`s ( #4422 )
2023-05-16 06:36:32 +00:00
Charlie Marsh
2414469ac3
Enable automatic rewrites of `typing.Deque` and `typing.DefaultDict` ( #4420 )
2023-05-15 22:33:24 +00:00
Tyler Yep
01b372a75c
Implement `flake8-future-annotations` FA100 ( #3979 )
2023-05-14 03:00:06 +00:00