ruff/crates
Charlie Marsh c5bfd1e877
Allow descriptor instantiations in dataclass fields (#5537)
## Summary

Per the Python documentation, dataclasses are allowed to instantiate
descriptors, like so:

```python
class IntConversionDescriptor:
  def __init__(self, *, default):
    self._default = default

  def __set_name__(self, owner, name):
    self._name = "_" + name

  def __get__(self, obj, type):
    if obj is None:
      return self._default

    return getattr(obj, self._name, self._default)

  def __set__(self, obj, value):
    setattr(obj, self._name, int(value))

@dataclass
class InventoryItem:
  quantity_on_hand: IntConversionDescriptor = IntConversionDescriptor(default=100)
```

Closes https://github.com/astral-sh/ruff/issues/4451.
2023-07-05 15:19:24 -04:00
..
flake8_to_ruff Bump version to 0.0.277 (#5515) 2023-07-04 17:31:32 -04:00
ruff Allow descriptor instantiations in dataclass fields (#5537) 2023-07-05 15:19:24 -04:00
ruff_benchmark Create PyFormatOptions 2023-06-26 14:02:17 +02:00
ruff_cache Only use a single cache file per Python package (#5117) 2023-06-19 17:46:13 +02:00
ruff_cli Run cargo update (#5534) 2023-07-05 12:34:15 -04:00
ruff_dev Add unreachable code rule (#5384) 2023-07-04 14:27:23 +00:00
ruff_diagnostics Use consistent Cargo.toml metadata in all crates (#5015) 2023-06-12 00:02:40 +00:00
ruff_formatter Show BestFitting mode if it isn't FirstLine (#5452) 2023-06-30 09:49:00 +00:00
ruff_index Add unreachable code rule (#5384) 2023-07-04 14:27:23 +00:00
ruff_macros Add unreachable code rule (#5384) 2023-07-04 14:27:23 +00:00
ruff_python_ast Remove some allocations in argument detection (#5481) 2023-07-03 12:21:26 -04:00
ruff_python_formatter Format import statements (#5493) 2023-07-04 07:07:20 +00:00
ruff_python_resolver Format let-else with rustfmt nightly (#5461) 2023-07-03 02:13:35 +00:00
ruff_python_semantic Enable attribute lookups via semantic model (#5536) 2023-07-05 15:19:14 -04:00
ruff_python_stdlib Remove some additional manual iterator matches (#5482) 2023-07-03 16:29:59 +00:00
ruff_python_whitespace Use consistent Cargo.toml metadata in all crates (#5015) 2023-06-12 00:02:40 +00:00
ruff_rustpython Use consistent Cargo.toml metadata in all crates (#5015) 2023-06-12 00:02:40 +00:00
ruff_textwrap Use consistent Cargo.toml metadata in all crates (#5015) 2023-06-12 00:02:40 +00:00
ruff_wasm [pyupgrade] Restore the keep-runtime-typing setting (#5470) 2023-07-03 02:11:31 +00:00