diff options
author | Mark Byrne <31762852+mbyrnepr2@users.noreply.github.com> | 2022-11-04 11:03:50 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-04 11:03:50 +0100 |
commit | 2188731d071ab981d4d8c78c93c6c1e65104b5ae (patch) | |
tree | cdd9b91297ce6ff8b4ec48a7ced6102ec81d1321 /astroid/brain | |
parent | b8691c48ef30d94a9c045e0c9a2e0b9a103c4777 (diff) | |
download | astroid-git-2188731d071ab981d4d8c78c93c6c1e65104b5ae.tar.gz |
Infer the `length` argument of the `random.sample` function. (#1862)
Refs PyCQA/pylint#7706
Diffstat (limited to 'astroid/brain')
-rw-r--r-- | astroid/brain/brain_random.py | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/astroid/brain/brain_random.py b/astroid/brain/brain_random.py index e66aa81a..a580ff70 100644 --- a/astroid/brain/brain_random.py +++ b/astroid/brain/brain_random.py @@ -42,10 +42,10 @@ def infer_random_sample(node, context=None): if len(node.args) != 2: raise UseInferenceDefault - length = node.args[1] - if not isinstance(length, Const): + inferred_length = helpers.safe_infer(node.args[1], context=context) + if not isinstance(inferred_length, Const): raise UseInferenceDefault - if not isinstance(length.value, int): + if not isinstance(inferred_length.value, int): raise UseInferenceDefault inferred_sequence = helpers.safe_infer(node.args[0], context=context) @@ -55,12 +55,12 @@ def infer_random_sample(node, context=None): if not isinstance(inferred_sequence, ACCEPTED_ITERABLES_FOR_SAMPLE): raise UseInferenceDefault - if length.value > len(inferred_sequence.elts): + if inferred_length.value > len(inferred_sequence.elts): # In this case, this will raise a ValueError raise UseInferenceDefault try: - elts = random.sample(inferred_sequence.elts, length.value) + elts = random.sample(inferred_sequence.elts, inferred_length.value) except ValueError as exc: raise UseInferenceDefault from exc |