Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Avoid overhead of cast() calls when not type checking #2500

Merged
merged 1 commit into from
Aug 7, 2024

Conversation

correctmost
Copy link
Contributor

Type of Changes

Type
βœ“ πŸ”¨ Refactoring

Description

While profiling Pylint with the yt-dlp codebase, I noticed that cast was called 1.277 million times:

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
  1277992    0.130    0.000    0.130    0.000 /usr/lib/python3.12/typing.py:2173(cast)

This PR avoids 1.1 million of these calls.

Background

python/cpython#116290 (comment) has this to say about cast:

My own vision for call inlining is that it's mostly going to make "trivial" functions disappear -- a good example would be typing.cast(), which returns its second argument unchanged. I currently sometimes hesitate about putting that in because of the perceived overhead of even the most trivial function call [...]

Stats

Before

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
  1277992    0.130    0.000    0.130    0.000 /usr/lib/python3.12/typing.py:2173(cast)
Command Mean [s] Min [s] Max [s] Relative
pylint --recursive=y . 36.214 Β± 0.381 35.590 36.608 1.00

After

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
   176834    0.022    0.000    0.022    0.000 /usr/lib/python3.12/typing.py:2173(cast)
Command Mean [s] Min [s] Max [s] Relative
pylint --recursive=y . 35.195 Β± 0.165 34.974 35.326 1.00

Reproduction notes

  • The tables were generated by hyperfine
    • hyperfine --ignore-failure --warmup 2 --runs 5 --export-markdown=baseline.md 'pylint --recursive=y .'

Copy link

codecov bot commented Aug 7, 2024

Codecov Report

All modified and coverable lines are covered by tests βœ…

Project coverage is 92.98%. Comparing base (15207a7) to head (26c6840).
Report is 105 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #2500      +/-   ##
==========================================
- Coverage   92.98%   92.98%   -0.01%     
==========================================
  Files          93       93              
  Lines       11040    11039       -1     
==========================================
- Hits        10266    10265       -1     
  Misses        774      774              
Flag Coverage Ξ”
linux 92.86% <ΓΈ> (-0.01%) ⬇️
pypy 92.98% <ΓΈ> (-0.01%) ⬇️
windows 92.97% <ΓΈ> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Ξ”
astroid/transforms.py 100.00% <ΓΈ> (ΓΈ)

Copy link
Member

@Pierre-Sassoulas Pierre-Sassoulas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the merge request and the benchmark. This avoid a lot of cast call but at the cost of the same number of if check. I'm not convinced the net result is positive (as the given benchmark do not include the information regarding the cost of the additionnal 'if' afaiu) reread the summary and the diff is surprisingly large.

@Pierre-Sassoulas Pierre-Sassoulas added this to the 3.4.0 milestone Aug 7, 2024
@correctmost
Copy link
Contributor Author

Thanks for the review :).

The numbers from the hyperfine runs will have some noise because my computer is not perfectly tuned to eliminate variance, the Pylint runs involve disk I/O, etc.

But the cProfile stats and these additional timeit stats make me believe that there is a small speed-up for large codebases:

# Without the if check
python -m timeit -s 'from typing import cast, TYPE_CHECKING; x=1' -n 1000000 'x=cast(int, x)'
1000000 loops, best of 5: 40.1 nsec per loop

# With the if check
python -m timeit -s 'from typing import cast, TYPE_CHECKING; x=1' -n 1000000 'if TYPE_CHECKING: x=cast(int, x)'
1000000 loops, best of 5: 9.63 nsec per loop

@jacobtylerwalls jacobtylerwalls merged commit 0156c04 into pylint-dev:main Aug 7, 2024
22 checks passed
@correctmost correctmost deleted the cm/avoid-casts branch August 7, 2024 12:22
@jacobtylerwalls jacobtylerwalls modified the milestones: 3.4.0, 4.0.0 Sep 30, 2024
cdce8p added a commit to cdce8p/astroid that referenced this pull request Nov 6, 2024
commit ba7df4a
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Tue Oct 1 10:30:42 2024 +0200

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2593)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.6.7 β†’ v0.6.8](astral-sh/ruff-pre-commit@v0.6.7...v0.6.8)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit 8620ae1
Author: Nick Drozd <nicholasdrozd@gmail.com>
Date:   Mon Sep 30 15:14:25 2024 -0400

    Enable design complexity checks (pylint-dev#2591)

commit 36094ed
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Mon Sep 30 15:14:13 2024 -0400

    control setting nodes as local outside of the constructor (pylint-dev#2588)

    1. The main reason is that a node might be assigned to its parent via
       an Β«aliasΒ»:

    Sometimes a class accesses a member by a different name than
       "__name__" of that member: in pypy3 `list.__mul__.__name__ ==
       "__rmul__"`.

    As a result, in the example above we weren't able to find
       "list.__mul__", because it was recorded only as "list.__rmul__".

    2. Sometimes we want to have a parent semantically, but we don't want
       to add it to the list of locals. For example, when inferring
       properties we are creating ad-hoc properties. We wouldn't want to
       add another symbol to the locals every time we do an
       inference. (actually, there's a very good question as to why we are
       doing those ad-hoc properties but that's out of scope)

    it's a part of the campaign to get rid of non-module roots

commit 32cb29e
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Sep 30 20:33:57 2024 +0200

    Bump actions/checkout from 4.1.7 to 4.2.0 (pylint-dev#2592)

    Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.7 to 4.2.0.
    - [Release notes](https://github.com/actions/checkout/releases)
    - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
    - [Commits](actions/checkout@v4.1.7...v4.2.0)

    ---
    updated-dependencies:
    - dependency-name: actions/checkout
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit d394fb9
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Mon Sep 30 08:52:35 2024 -0400

    Bump astroid to 4.0.0-dev0, update changelog

commit c7ea1e9
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sat Sep 7 14:47:47 2024 -0400

    Consolidate numpy member transforms to reduce function calls

commit f19fc0a
Author: Artem Yurchenko <artemyurchenko@zoho.com>
Date:   Thu Sep 26 19:56:45 2024 -0700

    disable AsyncGeneratorModel from inheriting Generator attributes

    for example, usual generators have "send", but async don't. They have
       "async" instead.

commit 62c5bad
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Thu Sep 26 00:29:36 2024 -0400

    change the type annotation error heuristic (pylint-dev#2583)

    The previous one depended on the message from "typed_ast", which is
       not used anymore.

    Instead, we check if there is a "# type:" substring in the source line
       of the exception. This can yield some false positives, but probably
       rarely.

commit a3f5c4a
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Wed Sep 25 16:18:58 2024 -0400

    wrap GeneratorModel methods into BoundMethod; remove redundant test (pylint-dev#2584)

    The LookupTest.test_generator_attributes contains outdated Python 2
       code (doesn't run on Python 3). The test is superceded by
       GeneratorModelTest.test_model.

    Fix AsyncGenerator test and model, they just weren't used before

commit eb88dfe
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Tue Sep 24 06:47:29 2024 +0200

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2582)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.6.5 β†’ v0.6.7](astral-sh/ruff-pre-commit@v0.6.5...v0.6.7)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit c8e8831
Merge: 8585ce6 498cf96
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Mon Sep 23 14:33:13 2024 -0400

    Merge pull request pylint-dev#2581 from pylint-dev/post-3.3.4

    Post 3.3.4

commit 498cf96
Merge: 8585ce6 6042e58
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Mon Sep 23 14:25:58 2024 -0400

    Merge branch 'maintenance/3.3.x' into post-3.3.4

commit 8585ce6
Author: Eric Vergnaud <eric.vergnaud@wanadoo.fr>
Date:   Mon Sep 23 19:53:55 2024 +0200

    Fix issue when inferring single-node or non-const JoinedStr (pylint-dev#2578)

commit 706fcdb
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Sun Sep 22 09:14:31 2024 -0400

    Address pylint 3.3 messages (pylint-dev#2575)

commit a679550
Author: Nick Drozd <nicholasdrozd@gmail.com>
Date:   Sun Sep 22 09:00:09 2024 -0400

    Check for empty format specs (pylint-dev#2574)

commit 58286a1
Author: Akhil Kamat <akhil.kamat@gmail.com>
Date:   Sat Sep 21 21:36:35 2024 -0400

    Fix `manager.clear_cache()` not fully clearing the module cache (pylint-dev#2572)

commit 1368be1
Merge: 5a93a9f 11db16d
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Fri Sep 20 08:10:58 2024 -0300

    Merge pull request pylint-dev#2570 from pylint-dev/post-3.3.3

    Post 3.3.3

commit 11db16d
Merge: 5a93a9f a01a9c9
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Fri Sep 20 06:46:12 2024 -0400

    Merge branch 'maintenance/3.3.x' into post-3.3.3

commit 5a93a9f
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Thu Sep 19 09:43:50 2024 -0300

    Fix inference regression with property setters (pylint-dev#2567)

    Closes pylint-dev/pylint#9811

commit 826d477
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Thu Sep 19 12:05:44 2024 +0000

    Bump actions/upload-artifact from 4.3.6 to 4.4.0 (pylint-dev#2533)

    Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.6 to 4.4.0.
    - [Release notes](https://github.com/actions/upload-artifact/releases)
    - [Commits](actions/upload-artifact@v4.3.6...v4.4.0)

    ---
    updated-dependencies:
    - dependency-name: actions/upload-artifact
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 709f991
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Tue Sep 17 07:04:26 2024 +0200

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2565)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.6.4 β†’ v0.6.5](astral-sh/ruff-pre-commit@v0.6.4...v0.6.5)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit a99967e
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Fri Sep 13 11:35:02 2024 -0400

    Require build class parent (pylint-dev#2557)

    * enforce a non-None parent in build_class

    We also remove `add_local_node` to avoid redundancy. Instead we do the
       attachment to the parent scope in the constructor of `ClassDef`.

    We append a node to the body of the frame when it is also the
       parent. If it's not a parent, then the node should belong to the
       "body" of the parent if it existed. An example is a definition
       within an "if", where the parent is the If node, but the frame is
       the whole module.

    it's a part of the campaign to get rid of non-module roots

commit c7b8a2f
Author: akamat10 <akhil.kamat@gmail.com>
Date:   Mon Sep 9 18:17:02 2024 -0400

    add setuptools dependency for python >= 3.12

commit 44907c2
Author: akamat10 <akhil.kamat@gmail.com>
Date:   Mon Sep 9 18:16:37 2024 -0400

    Remove setuptools dependency from ci

commit b4ac0e2
Author: Akhil Kamat <akhil.kamat@gmail.com>
Date:   Wed Sep 11 06:06:28 2024 -0400

    Remove newstyle variable given old-style class support should be removed (pylint-dev#2561)

commit 523eeb4
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Wed Sep 11 04:53:30 2024 -0400

    Fix unexpected `__doc__` values   (pylint-dev#2556)

    * fix unexpected '__doc__' values

    some '__doc__' fields of standard library
       symbols (e.g. WrapperDescriptorType.__doc__) don't return a string,
       they return a 'getset_descriptor'. Thus, an attempt to print "as
       string" fails. The solution is to check that __doc__ is an instance
       of str.

    Note that it wasn't uncovered by the tests due to classes not being
       attached to their parent in some cases. This is be done in one of
       the subsequent commits.

    it's a part of the campaign to get rid of non-module roots

    * put the "temporary_class" for the metaclass hack into adhoc module

    it's a part of the campaign to get rid of non-module roots

commit e442776
Author: Artem Yurchenko <artemyurchenko@zoho.com>
Date:   Mon Sep 9 11:31:27 2024 -0700

    set PartialFunction's parent to adhoc module instead of Unknown

    it's a part of the campaign to get rid of non-module roots

commit 8364693
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Tue Sep 10 15:32:07 2024 -0400

    Fix in place properties (pylint-dev#2553)

    * fix construction of in-place properties

    This is an example of an in-place property: `bar = property(getter)`.
       They just create a nameless object, not the one with the name of
       the getter. Thus, the name was changed to
       "<property>". Furthermore, the definition of that property is not
       attached to any scope, as it's again nameless.

    it's a part of the campaign to get rid of non-module roots

commit 20890b8
Author: Artem Yurchenko <artemyurchenko@zoho.com>
Date:   Mon Sep 9 11:12:33 2024 -0700

    set namespace's parent to adhoc module instead of Unknown

    it's a part of the campaign to get rid of non-module roots

commit b6d52d3
Author: Artem Yurchenko <artemyurchenko@zoho.com>
Date:   Mon Sep 9 11:04:34 2024 -0700

    create an "adhoc" module for "artificial" nodes

    the module is specifically for nodes that are not based in the real
       syntactic tree, but created "ad-hoc", for example, new namedtuple
       classes that we create (see brain_namedtuple_enum).

    This is the base for future changes on replacing non-module
      roots (with the adhoc module or something more approriate).

commit 6ec2d40
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Tue Sep 10 06:15:01 2024 +0200

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2559)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.6.3 β†’ v0.6.4](astral-sh/ruff-pre-commit@v0.6.3...v0.6.4)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit 0011e7f
Author: Artem Yurchenko <artemyurchenko@zoho.com>
Date:   Tue Sep 3 16:12:12 2024 -0700

    add the parent node to "__main__"

    Not having a parent leads to weird situations, like `root()` returning
       the node itself, not a `Module`.

commit 7954bac
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sat Sep 7 11:52:56 2024 -0400

    Fix most of the mypy errors in astroid/nodes/as_string.py

commit 8573b68
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sun Sep 8 03:15:01 2024 -0400

    Fix useless-suppression Pylint warning (pylint-dev#2548)

    * Bump Pylint requirement to 3.2.7

commit cae2977
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sun Sep 8 00:59:25 2024 -0400

    Add .tox to Pylint ignore list (pylint-dev#2549)

commit 887668b
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sat Sep 7 02:37:50 2024 -0400

    Fix additional mypy errors and expand CI checks to more files (pylint-dev#2541)

    * Fix additional mypy errors and expand CI checks to more files

    * Use an assertion instead of a type ignore

    * Move an assert outside of a type-checking block

commit ba331c0
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sat Sep 7 02:09:11 2024 -0400

    Use extend-exclude instead of exclude in ruff config (pylint-dev#2545)

    The ruff docs recommend using extend-exclude for custom paths.

commit 003a2df
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sat Sep 7 00:47:03 2024 -0400

    Remove Python 3.8 from tox config (pylint-dev#2546)

commit dc5dafb
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Fri Sep 6 01:37:53 2024 -0400

    Avoid extra isinstance calls in _builtin_filter_predicate (pylint-dev#2544)

commit 5982618
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Thu Sep 5 15:29:25 2024 -0400

    Move Pylint exclusions to pylintrc (pylint-dev#2542)

    This makes it easier to run Pylint outside of the pre-commit hooks.

commit 71f5c0c
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Wed Sep 4 10:55:41 2024 -0400

    Do not reassign submodule_path parameters in method bodies

    This makes it easier to use less generic annotations with mypy.

commit 1495979
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Wed Sep 4 10:34:55 2024 -0400

    Fix type annotations for tuple parameters

commit 6deb34f
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Wed Sep 4 02:04:09 2024 -0400

    Add ruff exclusions to pyproject.toml (pylint-dev#2537)

    This makes it easier to run 'ruff check' outside of the pre-commit
    hook.

    Co-authored-by: Pierre Sassoulas <pierre.sassoulas@gmail.com>

commit 78f7f60
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Tue Sep 3 08:52:20 2024 +0200

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2535)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.6.2 β†’ v0.6.3](astral-sh/ruff-pre-commit@v0.6.2...v0.6.3)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit a30794c
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Sep 2 20:09:47 2024 +0200

    Bump actions/setup-python from 5.1.1 to 5.2.0 (pylint-dev#2534)

    Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.1.1 to 5.2.0.
    - [Release notes](https://github.com/actions/setup-python/releases)
    - [Commits](actions/setup-python@v5.1.1...v5.2.0)

    ---
    updated-dependencies:
    - dependency-name: actions/setup-python
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 37b6c0d
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Fri Aug 30 17:30:56 2024 -0400

    fix the documentation and the error message of modpath_from_file (pylint-dev#2532)

    The doc should clarify that the search will always include sys.path.

    The error message should reflect the actual paths used for checking.

commit 5210e61
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Fri Aug 30 09:00:26 2024 -0400

    Enable mypy checking for astroid/interpreter/_import/ (pylint-dev#2530)

    This commit also removes unnecessary tuple -> list conversions in
    _find_spec.

commit a389ef7
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Tue Aug 27 17:19:26 2024 -0400

    Use a tuple for processed parameter to facilitate future caching (pylint-dev#2529)

commit 16990fc
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Tue Aug 27 16:25:48 2024 -0400

    Remove unnecessary isinstance calls from transform predicates (pylint-dev#2507)

commit 0cf9a2e
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Tue Aug 27 06:34:11 2024 +0200

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2528)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.6.1 β†’ v0.6.2](astral-sh/ruff-pre-commit@v0.6.1...v0.6.2)
    - [github.com/pre-commit/mirrors-mypy: v1.11.1 β†’ v1.11.2](pre-commit/mirrors-mypy@v1.11.1...v1.11.2)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit d8dbc46
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sun Aug 25 21:53:58 2024 -0400

    Use a tuple for module_parts parameter to facilitate future caching

commit f924ba2
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Tue Aug 20 06:15:34 2024 +0200

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2512)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.5.7 β†’ v0.6.1](astral-sh/ruff-pre-commit@v0.5.7...v0.6.1)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit b312b56
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sun Aug 18 04:49:15 2024 +0000

    Make Finder.find_module static to facilitate future caching (pylint-dev#2509)

commit 8515010
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Tue Aug 13 06:19:18 2024 +0200

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2510)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.5.6 β†’ v0.5.7](astral-sh/ruff-pre-commit@v0.5.6...v0.5.7)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit fa32673
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Aug 12 22:35:41 2024 +0200

    Bump actions/upload-artifact from 4.3.5 to 4.3.6 (pylint-dev#2508)

    Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.5 to 4.3.6.
    - [Release notes](https://github.com/actions/upload-artifact/releases)
    - [Commits](actions/upload-artifact@v4.3.5...v4.3.6)

    ---
    updated-dependencies:
    - dependency-name: actions/upload-artifact
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 5e8fac7
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sun Aug 11 17:41:02 2024 +0000

    Add cached version of os.path.isfile to avoid repetitive I/O (pylint-dev#2501)

commit 3a743a4
Merge: 5b838f2 4df8708
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Sun Aug 11 10:18:28 2024 -0400

    Merge pull request pylint-dev#2506 from pylint-dev/post-3.3.2

    Post 3.3.2

commit 4df8708
Merge: 86c7871 4ae4617
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Sun Aug 11 08:02:12 2024 -0400

    Merge branch 'maintenance/3.3.x' into post-3.3.2

commit 5b838f2
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Sun Aug 11 13:50:27 2024 +0200

    Update sphinx requirement from ~=7.4 to ~=8.0 (pylint-dev#2494)

    * Update sphinx requirement from ~=7.4 to ~=8.0

    Updates the requirements on [sphinx](https://github.com/sphinx-doc/sphinx) to permit the latest version.
    - [Release notes](https://github.com/sphinx-doc/sphinx/releases)
    - [Changelog](https://github.com/sphinx-doc/sphinx/blob/v8.0.2/CHANGES.rst)
    - [Commits](sphinx-doc/sphinx@v7.4.0...v8.0.2)

    ---
    updated-dependencies:
    - dependency-name: sphinx
      dependency-type: direct:production
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

    * Upgrade furo too

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Pierre Sassoulas <pierre.sassoulas@gmail.com>

commit 86c7871
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Sat Aug 10 17:06:09 2024 -0400

    [PY313] Add stubs for soft-deprecated typing members (pylint-dev#2503)

commit 0156c04
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Wed Aug 7 11:57:49 2024 +0000

    Avoid overhead of cast() calls when not type checking (pylint-dev#2500)

commit 29b6cbd
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Wed Aug 7 11:48:42 2024 +0000

    Avoid extra isinstance calls in _visit_generic (pylint-dev#2502)

commit 15207a7
Merge: 04f4f3f 996ffea
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Tue Aug 6 09:52:55 2024 -0400

    Merge pull request pylint-dev#2499 from pylint-dev/post-3.3.1

commit 996ffea
Merge: 04f4f3f de58003
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Tue Aug 6 09:05:54 2024 -0400

    Merge branch 'maintenance/3.3.x' into post-3.3.1

commit 04f4f3f
Author: Eric Vergnaud <eric.vergnaud@wanadoo.fr>
Date:   Tue Aug 6 13:59:28 2024 +0200

    Fix pylint regression with invalid format strings (pylint-dev#2496)

    Catch exceptions when calling string.format

commit 8d3cdbb
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Mon Aug 5 20:06:08 2024 -0400

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2495)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.5.5 β†’ v0.5.6](astral-sh/ruff-pre-commit@v0.5.5...v0.5.6)
    - [github.com/psf/black: 24.4.2 β†’ 24.8.0](psf/black@24.4.2...24.8.0)
    - [github.com/pre-commit/mirrors-mypy: v1.11.0 β†’ v1.11.1](pre-commit/mirrors-mypy@v1.11.0...v1.11.1)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit 61dba89
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Aug 5 23:27:45 2024 +0200

    Bump actions/upload-artifact from 4.3.4 to 4.3.5 (pylint-dev#2493)

    Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.4 to 4.3.5.
    - [Release notes](https://github.com/actions/upload-artifact/releases)
    - [Commits](actions/upload-artifact@v4.3.4...v4.3.5)

    ---
    updated-dependencies:
    - dependency-name: actions/upload-artifact
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit b105186
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Sun Aug 4 09:10:21 2024 -0400

    Bump astroid to 3.4.0-dev0, update changelog
cdce8p added a commit to cdce8p/astroid that referenced this pull request Nov 6, 2024
commit 0954cd4
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Tue Oct 8 12:11:04 2024 -0400

    Bump CI jobs to python 3.13 (pylint-dev#2607)

commit f201120
Author: Akhil Kamat <akhil.kamat@gmail.com>
Date:   Tue Oct 8 04:45:54 2024 -0400

    Change order of search path to fix inconsistency between pylint and astroid. (pylint-dev#2589)

commit 8696918
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Oct 8 06:53:04 2024 +0200

    Bump actions/cache from 4.0.2 to 4.1.0 (pylint-dev#2603)

    Bumps [actions/cache](https://github.com/actions/cache) from 4.0.2 to 4.1.0.
    - [Release notes](https://github.com/actions/cache/releases)
    - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
    - [Commits](actions/cache@v4.0.2...v4.1.0)

    ---
    updated-dependencies:
    - dependency-name: actions/cache
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit e548c2f
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Tue Oct 8 06:39:51 2024 +0200

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2606)

    updates:
    - [github.com/pre-commit/pre-commit-hooks: v4.6.0 β†’ v5.0.0](pre-commit/pre-commit-hooks@v4.6.0...v5.0.0)
    - [github.com/astral-sh/ruff-pre-commit: v0.6.8 β†’ v0.6.9](astral-sh/ruff-pre-commit@v0.6.8...v0.6.9)
    - [github.com/psf/black: 24.8.0 β†’ 24.10.0](psf/black@24.8.0...24.10.0)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit 6679ec2
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Oct 7 23:03:27 2024 +0200

    Bump actions/checkout from 4.2.0 to 4.2.1 (pylint-dev#2604)

    Bumps [actions/checkout](https://github.com/actions/checkout) from 4.2.0 to 4.2.1.
    - [Release notes](https://github.com/actions/checkout/releases)
    - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
    - [Commits](actions/checkout@v4.2.0...v4.2.1)

    ---
    updated-dependencies:
    - dependency-name: actions/checkout
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit bb1f6b2
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Oct 7 23:03:04 2024 +0200

    Bump actions/upload-artifact from 4.4.0 to 4.4.1 (pylint-dev#2605)

    Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.4.0 to 4.4.1.
    - [Release notes](https://github.com/actions/upload-artifact/releases)
    - [Commits](actions/upload-artifact@v4.4.0...v4.4.1)

    ---
    updated-dependencies:
    - dependency-name: actions/upload-artifact
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 275f508
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Mon Oct 7 01:08:43 2024 -0400

    Clarification on non-Module roots (pylint-dev#2536)

    * remove last instances of Unknown parents (and None parents in tests)

    It's a part of the campaign to get rid of non-module roots

    * assert that the root() is always a Module

    The nodes are often created in an ad-hoc way, and their parent is not
       always set. We can't control for that invariant fully in the
       constructor, since the parent is sometimes set outside of the
       constructor. The previous commits did their best to clean up such
       situations, but let's add an assert just in case.

commit d3df248
Merge: f63a393 6dedc26
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Fri Oct 4 14:22:11 2024 -0400

    Merge pull request pylint-dev#2601 from pylint-dev/post-3.3.5

    Post 3.3.5

commit 6dedc26
Merge: f63a393 8c74a5f
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Fri Oct 4 13:36:05 2024 -0400

    Merge branch 'maintenance/3.3.x' into post-3.3.5

commit f63a393
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Fri Oct 4 04:18:22 2024 -0400

    Fix python 3.13 compatibility re: collections.abc (pylint-dev#2598)

commit 6dba72c
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Wed Oct 2 16:13:50 2024 -0400

    Enforce a non-None parent in build_function (pylint-dev#2562)

    It's a part of the campaign to get rid of non-module roots

commit e3813e3
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Wed Oct 2 14:19:23 2024 -0400

    Set proper parents for namedtuple's and enum's (pylint-dev#2555)

    it's a part of the campaign to get rid of non-module roots

commit be00359
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Wed Oct 2 11:20:50 2024 -0400

    Remove unused numpy utility functions (pylint-dev#2595)

    Follow-up to c7ea1e9.

commit d174ca2
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Wed Oct 2 10:45:43 2024 -0400

    Fix OverflowError with empty list and large multiplier

    This regressed in dfe1ccc.

commit dfe1ccc
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Wed Oct 2 07:16:33 2024 -0400

    Fix crashes with large positive and negative list multipliers

    Closes pylint-dev#2521
    Closes pylint-dev#2523

commit ba7df4a
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Tue Oct 1 10:30:42 2024 +0200

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2593)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.6.7 β†’ v0.6.8](astral-sh/ruff-pre-commit@v0.6.7...v0.6.8)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit 8620ae1
Author: Nick Drozd <nicholasdrozd@gmail.com>
Date:   Mon Sep 30 15:14:25 2024 -0400

    Enable design complexity checks (pylint-dev#2591)

commit 36094ed
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Mon Sep 30 15:14:13 2024 -0400

    control setting nodes as local outside of the constructor (pylint-dev#2588)

    1. The main reason is that a node might be assigned to its parent via
       an Β«aliasΒ»:

    Sometimes a class accesses a member by a different name than
       "__name__" of that member: in pypy3 `list.__mul__.__name__ ==
       "__rmul__"`.

    As a result, in the example above we weren't able to find
       "list.__mul__", because it was recorded only as "list.__rmul__".

    2. Sometimes we want to have a parent semantically, but we don't want
       to add it to the list of locals. For example, when inferring
       properties we are creating ad-hoc properties. We wouldn't want to
       add another symbol to the locals every time we do an
       inference. (actually, there's a very good question as to why we are
       doing those ad-hoc properties but that's out of scope)

    it's a part of the campaign to get rid of non-module roots

commit 32cb29e
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Sep 30 20:33:57 2024 +0200

    Bump actions/checkout from 4.1.7 to 4.2.0 (pylint-dev#2592)

    Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.7 to 4.2.0.
    - [Release notes](https://github.com/actions/checkout/releases)
    - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
    - [Commits](actions/checkout@v4.1.7...v4.2.0)

    ---
    updated-dependencies:
    - dependency-name: actions/checkout
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit d394fb9
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Mon Sep 30 08:52:35 2024 -0400

    Bump astroid to 4.0.0-dev0, update changelog

commit c7ea1e9
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sat Sep 7 14:47:47 2024 -0400

    Consolidate numpy member transforms to reduce function calls

commit f19fc0a
Author: Artem Yurchenko <artemyurchenko@zoho.com>
Date:   Thu Sep 26 19:56:45 2024 -0700

    disable AsyncGeneratorModel from inheriting Generator attributes

    for example, usual generators have "send", but async don't. They have
       "async" instead.

commit 62c5bad
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Thu Sep 26 00:29:36 2024 -0400

    change the type annotation error heuristic (pylint-dev#2583)

    The previous one depended on the message from "typed_ast", which is
       not used anymore.

    Instead, we check if there is a "# type:" substring in the source line
       of the exception. This can yield some false positives, but probably
       rarely.

commit a3f5c4a
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Wed Sep 25 16:18:58 2024 -0400

    wrap GeneratorModel methods into BoundMethod; remove redundant test (pylint-dev#2584)

    The LookupTest.test_generator_attributes contains outdated Python 2
       code (doesn't run on Python 3). The test is superceded by
       GeneratorModelTest.test_model.

    Fix AsyncGenerator test and model, they just weren't used before

commit eb88dfe
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Tue Sep 24 06:47:29 2024 +0200

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2582)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.6.5 β†’ v0.6.7](astral-sh/ruff-pre-commit@v0.6.5...v0.6.7)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit c8e8831
Merge: 8585ce6 498cf96
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Mon Sep 23 14:33:13 2024 -0400

    Merge pull request pylint-dev#2581 from pylint-dev/post-3.3.4

    Post 3.3.4

commit 498cf96
Merge: 8585ce6 6042e58
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Mon Sep 23 14:25:58 2024 -0400

    Merge branch 'maintenance/3.3.x' into post-3.3.4

commit 8585ce6
Author: Eric Vergnaud <eric.vergnaud@wanadoo.fr>
Date:   Mon Sep 23 19:53:55 2024 +0200

    Fix issue when inferring single-node or non-const JoinedStr (pylint-dev#2578)

commit 706fcdb
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Sun Sep 22 09:14:31 2024 -0400

    Address pylint 3.3 messages (pylint-dev#2575)

commit a679550
Author: Nick Drozd <nicholasdrozd@gmail.com>
Date:   Sun Sep 22 09:00:09 2024 -0400

    Check for empty format specs (pylint-dev#2574)

commit 58286a1
Author: Akhil Kamat <akhil.kamat@gmail.com>
Date:   Sat Sep 21 21:36:35 2024 -0400

    Fix `manager.clear_cache()` not fully clearing the module cache (pylint-dev#2572)

commit 1368be1
Merge: 5a93a9f 11db16d
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Fri Sep 20 08:10:58 2024 -0300

    Merge pull request pylint-dev#2570 from pylint-dev/post-3.3.3

    Post 3.3.3

commit 11db16d
Merge: 5a93a9f a01a9c9
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Fri Sep 20 06:46:12 2024 -0400

    Merge branch 'maintenance/3.3.x' into post-3.3.3

commit 5a93a9f
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Thu Sep 19 09:43:50 2024 -0300

    Fix inference regression with property setters (pylint-dev#2567)

    Closes pylint-dev/pylint#9811

commit 826d477
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Thu Sep 19 12:05:44 2024 +0000

    Bump actions/upload-artifact from 4.3.6 to 4.4.0 (pylint-dev#2533)

    Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.6 to 4.4.0.
    - [Release notes](https://github.com/actions/upload-artifact/releases)
    - [Commits](actions/upload-artifact@v4.3.6...v4.4.0)

    ---
    updated-dependencies:
    - dependency-name: actions/upload-artifact
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 709f991
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Tue Sep 17 07:04:26 2024 +0200

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2565)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.6.4 β†’ v0.6.5](astral-sh/ruff-pre-commit@v0.6.4...v0.6.5)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit a99967e
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Fri Sep 13 11:35:02 2024 -0400

    Require build class parent (pylint-dev#2557)

    * enforce a non-None parent in build_class

    We also remove `add_local_node` to avoid redundancy. Instead we do the
       attachment to the parent scope in the constructor of `ClassDef`.

    We append a node to the body of the frame when it is also the
       parent. If it's not a parent, then the node should belong to the
       "body" of the parent if it existed. An example is a definition
       within an "if", where the parent is the If node, but the frame is
       the whole module.

    it's a part of the campaign to get rid of non-module roots

commit c7b8a2f
Author: akamat10 <akhil.kamat@gmail.com>
Date:   Mon Sep 9 18:17:02 2024 -0400

    add setuptools dependency for python >= 3.12

commit 44907c2
Author: akamat10 <akhil.kamat@gmail.com>
Date:   Mon Sep 9 18:16:37 2024 -0400

    Remove setuptools dependency from ci

commit b4ac0e2
Author: Akhil Kamat <akhil.kamat@gmail.com>
Date:   Wed Sep 11 06:06:28 2024 -0400

    Remove newstyle variable given old-style class support should be removed (pylint-dev#2561)

commit 523eeb4
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Wed Sep 11 04:53:30 2024 -0400

    Fix unexpected `__doc__` values   (pylint-dev#2556)

    * fix unexpected '__doc__' values

    some '__doc__' fields of standard library
       symbols (e.g. WrapperDescriptorType.__doc__) don't return a string,
       they return a 'getset_descriptor'. Thus, an attempt to print "as
       string" fails. The solution is to check that __doc__ is an instance
       of str.

    Note that it wasn't uncovered by the tests due to classes not being
       attached to their parent in some cases. This is be done in one of
       the subsequent commits.

    it's a part of the campaign to get rid of non-module roots

    * put the "temporary_class" for the metaclass hack into adhoc module

    it's a part of the campaign to get rid of non-module roots

commit e442776
Author: Artem Yurchenko <artemyurchenko@zoho.com>
Date:   Mon Sep 9 11:31:27 2024 -0700

    set PartialFunction's parent to adhoc module instead of Unknown

    it's a part of the campaign to get rid of non-module roots

commit 8364693
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Tue Sep 10 15:32:07 2024 -0400

    Fix in place properties (pylint-dev#2553)

    * fix construction of in-place properties

    This is an example of an in-place property: `bar = property(getter)`.
       They just create a nameless object, not the one with the name of
       the getter. Thus, the name was changed to
       "<property>". Furthermore, the definition of that property is not
       attached to any scope, as it's again nameless.

    it's a part of the campaign to get rid of non-module roots

commit 20890b8
Author: Artem Yurchenko <artemyurchenko@zoho.com>
Date:   Mon Sep 9 11:12:33 2024 -0700

    set namespace's parent to adhoc module instead of Unknown

    it's a part of the campaign to get rid of non-module roots

commit b6d52d3
Author: Artem Yurchenko <artemyurchenko@zoho.com>
Date:   Mon Sep 9 11:04:34 2024 -0700

    create an "adhoc" module for "artificial" nodes

    the module is specifically for nodes that are not based in the real
       syntactic tree, but created "ad-hoc", for example, new namedtuple
       classes that we create (see brain_namedtuple_enum).

    This is the base for future changes on replacing non-module
      roots (with the adhoc module or something more approriate).

commit 6ec2d40
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Tue Sep 10 06:15:01 2024 +0200

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2559)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.6.3 β†’ v0.6.4](astral-sh/ruff-pre-commit@v0.6.3...v0.6.4)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit 0011e7f
Author: Artem Yurchenko <artemyurchenko@zoho.com>
Date:   Tue Sep 3 16:12:12 2024 -0700

    add the parent node to "__main__"

    Not having a parent leads to weird situations, like `root()` returning
       the node itself, not a `Module`.

commit 7954bac
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sat Sep 7 11:52:56 2024 -0400

    Fix most of the mypy errors in astroid/nodes/as_string.py

commit 8573b68
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sun Sep 8 03:15:01 2024 -0400

    Fix useless-suppression Pylint warning (pylint-dev#2548)

    * Bump Pylint requirement to 3.2.7

commit cae2977
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sun Sep 8 00:59:25 2024 -0400

    Add .tox to Pylint ignore list (pylint-dev#2549)

commit 887668b
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sat Sep 7 02:37:50 2024 -0400

    Fix additional mypy errors and expand CI checks to more files (pylint-dev#2541)

    * Fix additional mypy errors and expand CI checks to more files

    * Use an assertion instead of a type ignore

    * Move an assert outside of a type-checking block

commit ba331c0
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sat Sep 7 02:09:11 2024 -0400

    Use extend-exclude instead of exclude in ruff config (pylint-dev#2545)

    The ruff docs recommend using extend-exclude for custom paths.

commit 003a2df
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sat Sep 7 00:47:03 2024 -0400

    Remove Python 3.8 from tox config (pylint-dev#2546)

commit dc5dafb
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Fri Sep 6 01:37:53 2024 -0400

    Avoid extra isinstance calls in _builtin_filter_predicate (pylint-dev#2544)

commit 5982618
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Thu Sep 5 15:29:25 2024 -0400

    Move Pylint exclusions to pylintrc (pylint-dev#2542)

    This makes it easier to run Pylint outside of the pre-commit hooks.

commit 71f5c0c
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Wed Sep 4 10:55:41 2024 -0400

    Do not reassign submodule_path parameters in method bodies

    This makes it easier to use less generic annotations with mypy.

commit 1495979
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Wed Sep 4 10:34:55 2024 -0400

    Fix type annotations for tuple parameters

commit 6deb34f
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Wed Sep 4 02:04:09 2024 -0400

    Add ruff exclusions to pyproject.toml (pylint-dev#2537)

    This makes it easier to run 'ruff check' outside of the pre-commit
    hook.

    Co-authored-by: Pierre Sassoulas <pierre.sassoulas@gmail.com>

commit 78f7f60
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Tue Sep 3 08:52:20 2024 +0200

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2535)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.6.2 β†’ v0.6.3](astral-sh/ruff-pre-commit@v0.6.2...v0.6.3)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit a30794c
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Sep 2 20:09:47 2024 +0200

    Bump actions/setup-python from 5.1.1 to 5.2.0 (pylint-dev#2534)

    Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.1.1 to 5.2.0.
    - [Release notes](https://github.com/actions/setup-python/releases)
    - [Commits](actions/setup-python@v5.1.1...v5.2.0)

    ---
    updated-dependencies:
    - dependency-name: actions/setup-python
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 37b6c0d
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Fri Aug 30 17:30:56 2024 -0400

    fix the documentation and the error message of modpath_from_file (pylint-dev#2532)

    The doc should clarify that the search will always include sys.path.

    The error message should reflect the actual paths used for checking.

commit 5210e61
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Fri Aug 30 09:00:26 2024 -0400

    Enable mypy checking for astroid/interpreter/_import/ (pylint-dev#2530)

    This commit also removes unnecessary tuple -> list conversions in
    _find_spec.

commit a389ef7
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Tue Aug 27 17:19:26 2024 -0400

    Use a tuple for processed parameter to facilitate future caching (pylint-dev#2529)

commit 16990fc
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Tue Aug 27 16:25:48 2024 -0400

    Remove unnecessary isinstance calls from transform predicates (pylint-dev#2507)

commit 0cf9a2e
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Tue Aug 27 06:34:11 2024 +0200

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2528)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.6.1 β†’ v0.6.2](astral-sh/ruff-pre-commit@v0.6.1...v0.6.2)
    - [github.com/pre-commit/mirrors-mypy: v1.11.1 β†’ v1.11.2](pre-commit/mirrors-mypy@v1.11.1...v1.11.2)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit d8dbc46
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sun Aug 25 21:53:58 2024 -0400

    Use a tuple for module_parts parameter to facilitate future caching

commit f924ba2
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Tue Aug 20 06:15:34 2024 +0200

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2512)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.5.7 β†’ v0.6.1](astral-sh/ruff-pre-commit@v0.5.7...v0.6.1)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit b312b56
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sun Aug 18 04:49:15 2024 +0000

    Make Finder.find_module static to facilitate future caching (pylint-dev#2509)

commit 8515010
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Tue Aug 13 06:19:18 2024 +0200

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2510)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.5.6 β†’ v0.5.7](astral-sh/ruff-pre-commit@v0.5.6...v0.5.7)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit fa32673
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Aug 12 22:35:41 2024 +0200

    Bump actions/upload-artifact from 4.3.5 to 4.3.6 (pylint-dev#2508)

    Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.5 to 4.3.6.
    - [Release notes](https://github.com/actions/upload-artifact/releases)
    - [Commits](actions/upload-artifact@v4.3.5...v4.3.6)

    ---
    updated-dependencies:
    - dependency-name: actions/upload-artifact
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 5e8fac7
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sun Aug 11 17:41:02 2024 +0000

    Add cached version of os.path.isfile to avoid repetitive I/O (pylint-dev#2501)

commit 3a743a4
Merge: 5b838f2 4df8708
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Sun Aug 11 10:18:28 2024 -0400

    Merge pull request pylint-dev#2506 from pylint-dev/post-3.3.2

    Post 3.3.2

commit 4df8708
Merge: 86c7871 4ae4617
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Sun Aug 11 08:02:12 2024 -0400

    Merge branch 'maintenance/3.3.x' into post-3.3.2

commit 5b838f2
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Sun Aug 11 13:50:27 2024 +0200

    Update sphinx requirement from ~=7.4 to ~=8.0 (pylint-dev#2494)

    * Update sphinx requirement from ~=7.4 to ~=8.0

    Updates the requirements on [sphinx](https://github.com/sphinx-doc/sphinx) to permit the latest version.
    - [Release notes](https://github.com/sphinx-doc/sphinx/releases)
    - [Changelog](https://github.com/sphinx-doc/sphinx/blob/v8.0.2/CHANGES.rst)
    - [Commits](sphinx-doc/sphinx@v7.4.0...v8.0.2)

    ---
    updated-dependencies:
    - dependency-name: sphinx
      dependency-type: direct:production
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

    * Upgrade furo too

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Pierre Sassoulas <pierre.sassoulas@gmail.com>

commit 86c7871
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Sat Aug 10 17:06:09 2024 -0400

    [PY313] Add stubs for soft-deprecated typing members (pylint-dev#2503)

commit 0156c04
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Wed Aug 7 11:57:49 2024 +0000

    Avoid overhead of cast() calls when not type checking (pylint-dev#2500)

commit 29b6cbd
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Wed Aug 7 11:48:42 2024 +0000

    Avoid extra isinstance calls in _visit_generic (pylint-dev#2502)

commit 15207a7
Merge: 04f4f3f 996ffea
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Tue Aug 6 09:52:55 2024 -0400

    Merge pull request pylint-dev#2499 from pylint-dev/post-3.3.1

commit 996ffea
Merge: 04f4f3f de58003
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Tue Aug 6 09:05:54 2024 -0400

    Merge branch 'maintenance/3.3.x' into post-3.3.1

commit 04f4f3f
Author: Eric Vergnaud <eric.vergnaud@wanadoo.fr>
Date:   Tue Aug 6 13:59:28 2024 +0200

    Fix pylint regression with invalid format strings (pylint-dev#2496)

    Catch exceptions when calling string.format

commit 8d3cdbb
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Mon Aug 5 20:06:08 2024 -0400

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2495)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.5.5 β†’ v0.5.6](astral-sh/ruff-pre-commit@v0.5.5...v0.5.6)
    - [github.com/psf/black: 24.4.2 β†’ 24.8.0](psf/black@24.4.2...24.8.0)
    - [github.com/pre-commit/mirrors-mypy: v1.11.0 β†’ v1.11.1](pre-commit/mirrors-mypy@v1.11.0...v1.11.1)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit 61dba89
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Aug 5 23:27:45 2024 +0200

    Bump actions/upload-artifact from 4.3.4 to 4.3.5 (pylint-dev#2493)

    Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.4 to 4.3.5.
    - [Release notes](https://github.com/actions/upload-artifact/releases)
    - [Commits](actions/upload-artifact@v4.3.4...v4.3.5)

    ---
    updated-dependencies:
    - dependency-name: actions/upload-artifact
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit b105186
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Sun Aug 4 09:10:21 2024 -0400

    Bump astroid to 3.4.0-dev0, update changelog
cdce8p added a commit to cdce8p/astroid that referenced this pull request Nov 6, 2024
commit 6dba72c
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Wed Oct 2 16:13:50 2024 -0400

    Enforce a non-None parent in build_function (pylint-dev#2562)

    It's a part of the campaign to get rid of non-module roots

commit e3813e3
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Wed Oct 2 14:19:23 2024 -0400

    Set proper parents for namedtuple's and enum's (pylint-dev#2555)

    it's a part of the campaign to get rid of non-module roots

commit be00359
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Wed Oct 2 11:20:50 2024 -0400

    Remove unused numpy utility functions (pylint-dev#2595)

    Follow-up to c7ea1e9.

commit d174ca2
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Wed Oct 2 10:45:43 2024 -0400

    Fix OverflowError with empty list and large multiplier

    This regressed in dfe1ccc.

commit dfe1ccc
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Wed Oct 2 07:16:33 2024 -0400

    Fix crashes with large positive and negative list multipliers

    Closes pylint-dev#2521
    Closes pylint-dev#2523

commit ba7df4a
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Tue Oct 1 10:30:42 2024 +0200

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2593)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.6.7 β†’ v0.6.8](astral-sh/ruff-pre-commit@v0.6.7...v0.6.8)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit 8620ae1
Author: Nick Drozd <nicholasdrozd@gmail.com>
Date:   Mon Sep 30 15:14:25 2024 -0400

    Enable design complexity checks (pylint-dev#2591)

commit 36094ed
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Mon Sep 30 15:14:13 2024 -0400

    control setting nodes as local outside of the constructor (pylint-dev#2588)

    1. The main reason is that a node might be assigned to its parent via
       an Β«aliasΒ»:

    Sometimes a class accesses a member by a different name than
       "__name__" of that member: in pypy3 `list.__mul__.__name__ ==
       "__rmul__"`.

    As a result, in the example above we weren't able to find
       "list.__mul__", because it was recorded only as "list.__rmul__".

    2. Sometimes we want to have a parent semantically, but we don't want
       to add it to the list of locals. For example, when inferring
       properties we are creating ad-hoc properties. We wouldn't want to
       add another symbol to the locals every time we do an
       inference. (actually, there's a very good question as to why we are
       doing those ad-hoc properties but that's out of scope)

    it's a part of the campaign to get rid of non-module roots

commit 32cb29e
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Sep 30 20:33:57 2024 +0200

    Bump actions/checkout from 4.1.7 to 4.2.0 (pylint-dev#2592)

    Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.7 to 4.2.0.
    - [Release notes](https://github.com/actions/checkout/releases)
    - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
    - [Commits](actions/checkout@v4.1.7...v4.2.0)

    ---
    updated-dependencies:
    - dependency-name: actions/checkout
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit d394fb9
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Mon Sep 30 08:52:35 2024 -0400

    Bump astroid to 4.0.0-dev0, update changelog

commit c7ea1e9
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sat Sep 7 14:47:47 2024 -0400

    Consolidate numpy member transforms to reduce function calls

commit f19fc0a
Author: Artem Yurchenko <artemyurchenko@zoho.com>
Date:   Thu Sep 26 19:56:45 2024 -0700

    disable AsyncGeneratorModel from inheriting Generator attributes

    for example, usual generators have "send", but async don't. They have
       "async" instead.

commit 62c5bad
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Thu Sep 26 00:29:36 2024 -0400

    change the type annotation error heuristic (pylint-dev#2583)

    The previous one depended on the message from "typed_ast", which is
       not used anymore.

    Instead, we check if there is a "# type:" substring in the source line
       of the exception. This can yield some false positives, but probably
       rarely.

commit a3f5c4a
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Wed Sep 25 16:18:58 2024 -0400

    wrap GeneratorModel methods into BoundMethod; remove redundant test (pylint-dev#2584)

    The LookupTest.test_generator_attributes contains outdated Python 2
       code (doesn't run on Python 3). The test is superceded by
       GeneratorModelTest.test_model.

    Fix AsyncGenerator test and model, they just weren't used before

commit eb88dfe
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Tue Sep 24 06:47:29 2024 +0200

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2582)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.6.5 β†’ v0.6.7](astral-sh/ruff-pre-commit@v0.6.5...v0.6.7)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit c8e8831
Merge: 8585ce6 498cf96
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Mon Sep 23 14:33:13 2024 -0400

    Merge pull request pylint-dev#2581 from pylint-dev/post-3.3.4

    Post 3.3.4

commit 498cf96
Merge: 8585ce6 6042e58
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Mon Sep 23 14:25:58 2024 -0400

    Merge branch 'maintenance/3.3.x' into post-3.3.4

commit 8585ce6
Author: Eric Vergnaud <eric.vergnaud@wanadoo.fr>
Date:   Mon Sep 23 19:53:55 2024 +0200

    Fix issue when inferring single-node or non-const JoinedStr (pylint-dev#2578)

commit 706fcdb
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Sun Sep 22 09:14:31 2024 -0400

    Address pylint 3.3 messages (pylint-dev#2575)

commit a679550
Author: Nick Drozd <nicholasdrozd@gmail.com>
Date:   Sun Sep 22 09:00:09 2024 -0400

    Check for empty format specs (pylint-dev#2574)

commit 58286a1
Author: Akhil Kamat <akhil.kamat@gmail.com>
Date:   Sat Sep 21 21:36:35 2024 -0400

    Fix `manager.clear_cache()` not fully clearing the module cache (pylint-dev#2572)

commit 1368be1
Merge: 5a93a9f 11db16d
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Fri Sep 20 08:10:58 2024 -0300

    Merge pull request pylint-dev#2570 from pylint-dev/post-3.3.3

    Post 3.3.3

commit 11db16d
Merge: 5a93a9f a01a9c9
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Fri Sep 20 06:46:12 2024 -0400

    Merge branch 'maintenance/3.3.x' into post-3.3.3

commit 5a93a9f
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Thu Sep 19 09:43:50 2024 -0300

    Fix inference regression with property setters (pylint-dev#2567)

    Closes pylint-dev/pylint#9811

commit 826d477
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Thu Sep 19 12:05:44 2024 +0000

    Bump actions/upload-artifact from 4.3.6 to 4.4.0 (pylint-dev#2533)

    Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.6 to 4.4.0.
    - [Release notes](https://github.com/actions/upload-artifact/releases)
    - [Commits](actions/upload-artifact@v4.3.6...v4.4.0)

    ---
    updated-dependencies:
    - dependency-name: actions/upload-artifact
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 709f991
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Tue Sep 17 07:04:26 2024 +0200

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2565)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.6.4 β†’ v0.6.5](astral-sh/ruff-pre-commit@v0.6.4...v0.6.5)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit a99967e
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Fri Sep 13 11:35:02 2024 -0400

    Require build class parent (pylint-dev#2557)

    * enforce a non-None parent in build_class

    We also remove `add_local_node` to avoid redundancy. Instead we do the
       attachment to the parent scope in the constructor of `ClassDef`.

    We append a node to the body of the frame when it is also the
       parent. If it's not a parent, then the node should belong to the
       "body" of the parent if it existed. An example is a definition
       within an "if", where the parent is the If node, but the frame is
       the whole module.

    it's a part of the campaign to get rid of non-module roots

commit c7b8a2f
Author: akamat10 <akhil.kamat@gmail.com>
Date:   Mon Sep 9 18:17:02 2024 -0400

    add setuptools dependency for python >= 3.12

commit 44907c2
Author: akamat10 <akhil.kamat@gmail.com>
Date:   Mon Sep 9 18:16:37 2024 -0400

    Remove setuptools dependency from ci

commit b4ac0e2
Author: Akhil Kamat <akhil.kamat@gmail.com>
Date:   Wed Sep 11 06:06:28 2024 -0400

    Remove newstyle variable given old-style class support should be removed (pylint-dev#2561)

commit 523eeb4
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Wed Sep 11 04:53:30 2024 -0400

    Fix unexpected `__doc__` values   (pylint-dev#2556)

    * fix unexpected '__doc__' values

    some '__doc__' fields of standard library
       symbols (e.g. WrapperDescriptorType.__doc__) don't return a string,
       they return a 'getset_descriptor'. Thus, an attempt to print "as
       string" fails. The solution is to check that __doc__ is an instance
       of str.

    Note that it wasn't uncovered by the tests due to classes not being
       attached to their parent in some cases. This is be done in one of
       the subsequent commits.

    it's a part of the campaign to get rid of non-module roots

    * put the "temporary_class" for the metaclass hack into adhoc module

    it's a part of the campaign to get rid of non-module roots

commit e442776
Author: Artem Yurchenko <artemyurchenko@zoho.com>
Date:   Mon Sep 9 11:31:27 2024 -0700

    set PartialFunction's parent to adhoc module instead of Unknown

    it's a part of the campaign to get rid of non-module roots

commit 8364693
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Tue Sep 10 15:32:07 2024 -0400

    Fix in place properties (pylint-dev#2553)

    * fix construction of in-place properties

    This is an example of an in-place property: `bar = property(getter)`.
       They just create a nameless object, not the one with the name of
       the getter. Thus, the name was changed to
       "<property>". Furthermore, the definition of that property is not
       attached to any scope, as it's again nameless.

    it's a part of the campaign to get rid of non-module roots

commit 20890b8
Author: Artem Yurchenko <artemyurchenko@zoho.com>
Date:   Mon Sep 9 11:12:33 2024 -0700

    set namespace's parent to adhoc module instead of Unknown

    it's a part of the campaign to get rid of non-module roots

commit b6d52d3
Author: Artem Yurchenko <artemyurchenko@zoho.com>
Date:   Mon Sep 9 11:04:34 2024 -0700

    create an "adhoc" module for "artificial" nodes

    the module is specifically for nodes that are not based in the real
       syntactic tree, but created "ad-hoc", for example, new namedtuple
       classes that we create (see brain_namedtuple_enum).

    This is the base for future changes on replacing non-module
      roots (with the adhoc module or something more approriate).

commit 6ec2d40
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Tue Sep 10 06:15:01 2024 +0200

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2559)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.6.3 β†’ v0.6.4](astral-sh/ruff-pre-commit@v0.6.3...v0.6.4)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit 0011e7f
Author: Artem Yurchenko <artemyurchenko@zoho.com>
Date:   Tue Sep 3 16:12:12 2024 -0700

    add the parent node to "__main__"

    Not having a parent leads to weird situations, like `root()` returning
       the node itself, not a `Module`.

commit 7954bac
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sat Sep 7 11:52:56 2024 -0400

    Fix most of the mypy errors in astroid/nodes/as_string.py

commit 8573b68
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sun Sep 8 03:15:01 2024 -0400

    Fix useless-suppression Pylint warning (pylint-dev#2548)

    * Bump Pylint requirement to 3.2.7

commit cae2977
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sun Sep 8 00:59:25 2024 -0400

    Add .tox to Pylint ignore list (pylint-dev#2549)

commit 887668b
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sat Sep 7 02:37:50 2024 -0400

    Fix additional mypy errors and expand CI checks to more files (pylint-dev#2541)

    * Fix additional mypy errors and expand CI checks to more files

    * Use an assertion instead of a type ignore

    * Move an assert outside of a type-checking block

commit ba331c0
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sat Sep 7 02:09:11 2024 -0400

    Use extend-exclude instead of exclude in ruff config (pylint-dev#2545)

    The ruff docs recommend using extend-exclude for custom paths.

commit 003a2df
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sat Sep 7 00:47:03 2024 -0400

    Remove Python 3.8 from tox config (pylint-dev#2546)

commit dc5dafb
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Fri Sep 6 01:37:53 2024 -0400

    Avoid extra isinstance calls in _builtin_filter_predicate (pylint-dev#2544)

commit 5982618
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Thu Sep 5 15:29:25 2024 -0400

    Move Pylint exclusions to pylintrc (pylint-dev#2542)

    This makes it easier to run Pylint outside of the pre-commit hooks.

commit 71f5c0c
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Wed Sep 4 10:55:41 2024 -0400

    Do not reassign submodule_path parameters in method bodies

    This makes it easier to use less generic annotations with mypy.

commit 1495979
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Wed Sep 4 10:34:55 2024 -0400

    Fix type annotations for tuple parameters

commit 6deb34f
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Wed Sep 4 02:04:09 2024 -0400

    Add ruff exclusions to pyproject.toml (pylint-dev#2537)

    This makes it easier to run 'ruff check' outside of the pre-commit
    hook.

    Co-authored-by: Pierre Sassoulas <pierre.sassoulas@gmail.com>

commit 78f7f60
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Tue Sep 3 08:52:20 2024 +0200

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2535)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.6.2 β†’ v0.6.3](astral-sh/ruff-pre-commit@v0.6.2...v0.6.3)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit a30794c
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Sep 2 20:09:47 2024 +0200

    Bump actions/setup-python from 5.1.1 to 5.2.0 (pylint-dev#2534)

    Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.1.1 to 5.2.0.
    - [Release notes](https://github.com/actions/setup-python/releases)
    - [Commits](actions/setup-python@v5.1.1...v5.2.0)

    ---
    updated-dependencies:
    - dependency-name: actions/setup-python
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 37b6c0d
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Fri Aug 30 17:30:56 2024 -0400

    fix the documentation and the error message of modpath_from_file (pylint-dev#2532)

    The doc should clarify that the search will always include sys.path.

    The error message should reflect the actual paths used for checking.

commit 5210e61
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Fri Aug 30 09:00:26 2024 -0400

    Enable mypy checking for astroid/interpreter/_import/ (pylint-dev#2530)

    This commit also removes unnecessary tuple -> list conversions in
    _find_spec.

commit a389ef7
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Tue Aug 27 17:19:26 2024 -0400

    Use a tuple for processed parameter to facilitate future caching (pylint-dev#2529)

commit 16990fc
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Tue Aug 27 16:25:48 2024 -0400

    Remove unnecessary isinstance calls from transform predicates (pylint-dev#2507)

commit 0cf9a2e
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Tue Aug 27 06:34:11 2024 +0200

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2528)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.6.1 β†’ v0.6.2](astral-sh/ruff-pre-commit@v0.6.1...v0.6.2)
    - [github.com/pre-commit/mirrors-mypy: v1.11.1 β†’ v1.11.2](pre-commit/mirrors-mypy@v1.11.1...v1.11.2)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit d8dbc46
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sun Aug 25 21:53:58 2024 -0400

    Use a tuple for module_parts parameter to facilitate future caching

commit f924ba2
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Tue Aug 20 06:15:34 2024 +0200

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2512)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.5.7 β†’ v0.6.1](astral-sh/ruff-pre-commit@v0.5.7...v0.6.1)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit b312b56
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sun Aug 18 04:49:15 2024 +0000

    Make Finder.find_module static to facilitate future caching (pylint-dev#2509)

commit 8515010
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Tue Aug 13 06:19:18 2024 +0200

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2510)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.5.6 β†’ v0.5.7](astral-sh/ruff-pre-commit@v0.5.6...v0.5.7)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit fa32673
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Aug 12 22:35:41 2024 +0200

    Bump actions/upload-artifact from 4.3.5 to 4.3.6 (pylint-dev#2508)

    Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.5 to 4.3.6.
    - [Release notes](https://github.com/actions/upload-artifact/releases)
    - [Commits](actions/upload-artifact@v4.3.5...v4.3.6)

    ---
    updated-dependencies:
    - dependency-name: actions/upload-artifact
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 5e8fac7
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sun Aug 11 17:41:02 2024 +0000

    Add cached version of os.path.isfile to avoid repetitive I/O (pylint-dev#2501)

commit 3a743a4
Merge: 5b838f2 4df8708
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Sun Aug 11 10:18:28 2024 -0400

    Merge pull request pylint-dev#2506 from pylint-dev/post-3.3.2

    Post 3.3.2

commit 4df8708
Merge: 86c7871 4ae4617
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Sun Aug 11 08:02:12 2024 -0400

    Merge branch 'maintenance/3.3.x' into post-3.3.2

commit 5b838f2
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Sun Aug 11 13:50:27 2024 +0200

    Update sphinx requirement from ~=7.4 to ~=8.0 (pylint-dev#2494)

    * Update sphinx requirement from ~=7.4 to ~=8.0

    Updates the requirements on [sphinx](https://github.com/sphinx-doc/sphinx) to permit the latest version.
    - [Release notes](https://github.com/sphinx-doc/sphinx/releases)
    - [Changelog](https://github.com/sphinx-doc/sphinx/blob/v8.0.2/CHANGES.rst)
    - [Commits](sphinx-doc/sphinx@v7.4.0...v8.0.2)

    ---
    updated-dependencies:
    - dependency-name: sphinx
      dependency-type: direct:production
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

    * Upgrade furo too

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Pierre Sassoulas <pierre.sassoulas@gmail.com>

commit 86c7871
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Sat Aug 10 17:06:09 2024 -0400

    [PY313] Add stubs for soft-deprecated typing members (pylint-dev#2503)

commit 0156c04
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Wed Aug 7 11:57:49 2024 +0000

    Avoid overhead of cast() calls when not type checking (pylint-dev#2500)

commit 29b6cbd
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Wed Aug 7 11:48:42 2024 +0000

    Avoid extra isinstance calls in _visit_generic (pylint-dev#2502)

commit 15207a7
Merge: 04f4f3f 996ffea
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Tue Aug 6 09:52:55 2024 -0400

    Merge pull request pylint-dev#2499 from pylint-dev/post-3.3.1

commit 996ffea
Merge: 04f4f3f de58003
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Tue Aug 6 09:05:54 2024 -0400

    Merge branch 'maintenance/3.3.x' into post-3.3.1

commit 04f4f3f
Author: Eric Vergnaud <eric.vergnaud@wanadoo.fr>
Date:   Tue Aug 6 13:59:28 2024 +0200

    Fix pylint regression with invalid format strings (pylint-dev#2496)

    Catch exceptions when calling string.format

commit 8d3cdbb
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Mon Aug 5 20:06:08 2024 -0400

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2495)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.5.5 β†’ v0.5.6](astral-sh/ruff-pre-commit@v0.5.5...v0.5.6)
    - [github.com/psf/black: 24.4.2 β†’ 24.8.0](psf/black@24.4.2...24.8.0)
    - [github.com/pre-commit/mirrors-mypy: v1.11.0 β†’ v1.11.1](pre-commit/mirrors-mypy@v1.11.0...v1.11.1)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit 61dba89
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Aug 5 23:27:45 2024 +0200

    Bump actions/upload-artifact from 4.3.4 to 4.3.5 (pylint-dev#2493)

    Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.4 to 4.3.5.
    - [Release notes](https://github.com/actions/upload-artifact/releases)
    - [Commits](actions/upload-artifact@v4.3.4...v4.3.5)

    ---
    updated-dependencies:
    - dependency-name: actions/upload-artifact
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit b105186
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Sun Aug 4 09:10:21 2024 -0400

    Bump astroid to 3.4.0-dev0, update changelog
cdce8p added a commit to cdce8p/astroid that referenced this pull request Nov 6, 2024
commit 275f508
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Mon Oct 7 01:08:43 2024 -0400

    Clarification on non-Module roots (pylint-dev#2536)

    * remove last instances of Unknown parents (and None parents in tests)

    It's a part of the campaign to get rid of non-module roots

    * assert that the root() is always a Module

    The nodes are often created in an ad-hoc way, and their parent is not
       always set. We can't control for that invariant fully in the
       constructor, since the parent is sometimes set outside of the
       constructor. The previous commits did their best to clean up such
       situations, but let's add an assert just in case.

commit d3df248
Merge: f63a393 6dedc26
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Fri Oct 4 14:22:11 2024 -0400

    Merge pull request pylint-dev#2601 from pylint-dev/post-3.3.5

    Post 3.3.5

commit 6dedc26
Merge: f63a393 8c74a5f
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Fri Oct 4 13:36:05 2024 -0400

    Merge branch 'maintenance/3.3.x' into post-3.3.5

commit f63a393
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Fri Oct 4 04:18:22 2024 -0400

    Fix python 3.13 compatibility re: collections.abc (pylint-dev#2598)

commit 6dba72c
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Wed Oct 2 16:13:50 2024 -0400

    Enforce a non-None parent in build_function (pylint-dev#2562)

    It's a part of the campaign to get rid of non-module roots

commit e3813e3
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Wed Oct 2 14:19:23 2024 -0400

    Set proper parents for namedtuple's and enum's (pylint-dev#2555)

    it's a part of the campaign to get rid of non-module roots

commit be00359
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Wed Oct 2 11:20:50 2024 -0400

    Remove unused numpy utility functions (pylint-dev#2595)

    Follow-up to c7ea1e9.

commit d174ca2
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Wed Oct 2 10:45:43 2024 -0400

    Fix OverflowError with empty list and large multiplier

    This regressed in dfe1ccc.

commit dfe1ccc
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Wed Oct 2 07:16:33 2024 -0400

    Fix crashes with large positive and negative list multipliers

    Closes pylint-dev#2521
    Closes pylint-dev#2523

commit ba7df4a
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Tue Oct 1 10:30:42 2024 +0200

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2593)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.6.7 β†’ v0.6.8](astral-sh/ruff-pre-commit@v0.6.7...v0.6.8)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit 8620ae1
Author: Nick Drozd <nicholasdrozd@gmail.com>
Date:   Mon Sep 30 15:14:25 2024 -0400

    Enable design complexity checks (pylint-dev#2591)

commit 36094ed
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Mon Sep 30 15:14:13 2024 -0400

    control setting nodes as local outside of the constructor (pylint-dev#2588)

    1. The main reason is that a node might be assigned to its parent via
       an Β«aliasΒ»:

    Sometimes a class accesses a member by a different name than
       "__name__" of that member: in pypy3 `list.__mul__.__name__ ==
       "__rmul__"`.

    As a result, in the example above we weren't able to find
       "list.__mul__", because it was recorded only as "list.__rmul__".

    2. Sometimes we want to have a parent semantically, but we don't want
       to add it to the list of locals. For example, when inferring
       properties we are creating ad-hoc properties. We wouldn't want to
       add another symbol to the locals every time we do an
       inference. (actually, there's a very good question as to why we are
       doing those ad-hoc properties but that's out of scope)

    it's a part of the campaign to get rid of non-module roots

commit 32cb29e
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Sep 30 20:33:57 2024 +0200

    Bump actions/checkout from 4.1.7 to 4.2.0 (pylint-dev#2592)

    Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.7 to 4.2.0.
    - [Release notes](https://github.com/actions/checkout/releases)
    - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
    - [Commits](actions/checkout@v4.1.7...v4.2.0)

    ---
    updated-dependencies:
    - dependency-name: actions/checkout
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit d394fb9
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Mon Sep 30 08:52:35 2024 -0400

    Bump astroid to 4.0.0-dev0, update changelog

commit c7ea1e9
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sat Sep 7 14:47:47 2024 -0400

    Consolidate numpy member transforms to reduce function calls

commit f19fc0a
Author: Artem Yurchenko <artemyurchenko@zoho.com>
Date:   Thu Sep 26 19:56:45 2024 -0700

    disable AsyncGeneratorModel from inheriting Generator attributes

    for example, usual generators have "send", but async don't. They have
       "async" instead.

commit 62c5bad
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Thu Sep 26 00:29:36 2024 -0400

    change the type annotation error heuristic (pylint-dev#2583)

    The previous one depended on the message from "typed_ast", which is
       not used anymore.

    Instead, we check if there is a "# type:" substring in the source line
       of the exception. This can yield some false positives, but probably
       rarely.

commit a3f5c4a
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Wed Sep 25 16:18:58 2024 -0400

    wrap GeneratorModel methods into BoundMethod; remove redundant test (pylint-dev#2584)

    The LookupTest.test_generator_attributes contains outdated Python 2
       code (doesn't run on Python 3). The test is superceded by
       GeneratorModelTest.test_model.

    Fix AsyncGenerator test and model, they just weren't used before

commit eb88dfe
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Tue Sep 24 06:47:29 2024 +0200

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2582)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.6.5 β†’ v0.6.7](astral-sh/ruff-pre-commit@v0.6.5...v0.6.7)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit c8e8831
Merge: 8585ce6 498cf96
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Mon Sep 23 14:33:13 2024 -0400

    Merge pull request pylint-dev#2581 from pylint-dev/post-3.3.4

    Post 3.3.4

commit 498cf96
Merge: 8585ce6 6042e58
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Mon Sep 23 14:25:58 2024 -0400

    Merge branch 'maintenance/3.3.x' into post-3.3.4

commit 8585ce6
Author: Eric Vergnaud <eric.vergnaud@wanadoo.fr>
Date:   Mon Sep 23 19:53:55 2024 +0200

    Fix issue when inferring single-node or non-const JoinedStr (pylint-dev#2578)

commit 706fcdb
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Sun Sep 22 09:14:31 2024 -0400

    Address pylint 3.3 messages (pylint-dev#2575)

commit a679550
Author: Nick Drozd <nicholasdrozd@gmail.com>
Date:   Sun Sep 22 09:00:09 2024 -0400

    Check for empty format specs (pylint-dev#2574)

commit 58286a1
Author: Akhil Kamat <akhil.kamat@gmail.com>
Date:   Sat Sep 21 21:36:35 2024 -0400

    Fix `manager.clear_cache()` not fully clearing the module cache (pylint-dev#2572)

commit 1368be1
Merge: 5a93a9f 11db16d
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Fri Sep 20 08:10:58 2024 -0300

    Merge pull request pylint-dev#2570 from pylint-dev/post-3.3.3

    Post 3.3.3

commit 11db16d
Merge: 5a93a9f a01a9c9
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Fri Sep 20 06:46:12 2024 -0400

    Merge branch 'maintenance/3.3.x' into post-3.3.3

commit 5a93a9f
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Thu Sep 19 09:43:50 2024 -0300

    Fix inference regression with property setters (pylint-dev#2567)

    Closes pylint-dev/pylint#9811

commit 826d477
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Thu Sep 19 12:05:44 2024 +0000

    Bump actions/upload-artifact from 4.3.6 to 4.4.0 (pylint-dev#2533)

    Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.6 to 4.4.0.
    - [Release notes](https://github.com/actions/upload-artifact/releases)
    - [Commits](actions/upload-artifact@v4.3.6...v4.4.0)

    ---
    updated-dependencies:
    - dependency-name: actions/upload-artifact
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 709f991
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Tue Sep 17 07:04:26 2024 +0200

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2565)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.6.4 β†’ v0.6.5](astral-sh/ruff-pre-commit@v0.6.4...v0.6.5)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit a99967e
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Fri Sep 13 11:35:02 2024 -0400

    Require build class parent (pylint-dev#2557)

    * enforce a non-None parent in build_class

    We also remove `add_local_node` to avoid redundancy. Instead we do the
       attachment to the parent scope in the constructor of `ClassDef`.

    We append a node to the body of the frame when it is also the
       parent. If it's not a parent, then the node should belong to the
       "body" of the parent if it existed. An example is a definition
       within an "if", where the parent is the If node, but the frame is
       the whole module.

    it's a part of the campaign to get rid of non-module roots

commit c7b8a2f
Author: akamat10 <akhil.kamat@gmail.com>
Date:   Mon Sep 9 18:17:02 2024 -0400

    add setuptools dependency for python >= 3.12

commit 44907c2
Author: akamat10 <akhil.kamat@gmail.com>
Date:   Mon Sep 9 18:16:37 2024 -0400

    Remove setuptools dependency from ci

commit b4ac0e2
Author: Akhil Kamat <akhil.kamat@gmail.com>
Date:   Wed Sep 11 06:06:28 2024 -0400

    Remove newstyle variable given old-style class support should be removed (pylint-dev#2561)

commit 523eeb4
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Wed Sep 11 04:53:30 2024 -0400

    Fix unexpected `__doc__` values   (pylint-dev#2556)

    * fix unexpected '__doc__' values

    some '__doc__' fields of standard library
       symbols (e.g. WrapperDescriptorType.__doc__) don't return a string,
       they return a 'getset_descriptor'. Thus, an attempt to print "as
       string" fails. The solution is to check that __doc__ is an instance
       of str.

    Note that it wasn't uncovered by the tests due to classes not being
       attached to their parent in some cases. This is be done in one of
       the subsequent commits.

    it's a part of the campaign to get rid of non-module roots

    * put the "temporary_class" for the metaclass hack into adhoc module

    it's a part of the campaign to get rid of non-module roots

commit e442776
Author: Artem Yurchenko <artemyurchenko@zoho.com>
Date:   Mon Sep 9 11:31:27 2024 -0700

    set PartialFunction's parent to adhoc module instead of Unknown

    it's a part of the campaign to get rid of non-module roots

commit 8364693
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Tue Sep 10 15:32:07 2024 -0400

    Fix in place properties (pylint-dev#2553)

    * fix construction of in-place properties

    This is an example of an in-place property: `bar = property(getter)`.
       They just create a nameless object, not the one with the name of
       the getter. Thus, the name was changed to
       "<property>". Furthermore, the definition of that property is not
       attached to any scope, as it's again nameless.

    it's a part of the campaign to get rid of non-module roots

commit 20890b8
Author: Artem Yurchenko <artemyurchenko@zoho.com>
Date:   Mon Sep 9 11:12:33 2024 -0700

    set namespace's parent to adhoc module instead of Unknown

    it's a part of the campaign to get rid of non-module roots

commit b6d52d3
Author: Artem Yurchenko <artemyurchenko@zoho.com>
Date:   Mon Sep 9 11:04:34 2024 -0700

    create an "adhoc" module for "artificial" nodes

    the module is specifically for nodes that are not based in the real
       syntactic tree, but created "ad-hoc", for example, new namedtuple
       classes that we create (see brain_namedtuple_enum).

    This is the base for future changes on replacing non-module
      roots (with the adhoc module or something more approriate).

commit 6ec2d40
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Tue Sep 10 06:15:01 2024 +0200

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2559)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.6.3 β†’ v0.6.4](astral-sh/ruff-pre-commit@v0.6.3...v0.6.4)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit 0011e7f
Author: Artem Yurchenko <artemyurchenko@zoho.com>
Date:   Tue Sep 3 16:12:12 2024 -0700

    add the parent node to "__main__"

    Not having a parent leads to weird situations, like `root()` returning
       the node itself, not a `Module`.

commit 7954bac
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sat Sep 7 11:52:56 2024 -0400

    Fix most of the mypy errors in astroid/nodes/as_string.py

commit 8573b68
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sun Sep 8 03:15:01 2024 -0400

    Fix useless-suppression Pylint warning (pylint-dev#2548)

    * Bump Pylint requirement to 3.2.7

commit cae2977
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sun Sep 8 00:59:25 2024 -0400

    Add .tox to Pylint ignore list (pylint-dev#2549)

commit 887668b
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sat Sep 7 02:37:50 2024 -0400

    Fix additional mypy errors and expand CI checks to more files (pylint-dev#2541)

    * Fix additional mypy errors and expand CI checks to more files

    * Use an assertion instead of a type ignore

    * Move an assert outside of a type-checking block

commit ba331c0
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sat Sep 7 02:09:11 2024 -0400

    Use extend-exclude instead of exclude in ruff config (pylint-dev#2545)

    The ruff docs recommend using extend-exclude for custom paths.

commit 003a2df
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sat Sep 7 00:47:03 2024 -0400

    Remove Python 3.8 from tox config (pylint-dev#2546)

commit dc5dafb
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Fri Sep 6 01:37:53 2024 -0400

    Avoid extra isinstance calls in _builtin_filter_predicate (pylint-dev#2544)

commit 5982618
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Thu Sep 5 15:29:25 2024 -0400

    Move Pylint exclusions to pylintrc (pylint-dev#2542)

    This makes it easier to run Pylint outside of the pre-commit hooks.

commit 71f5c0c
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Wed Sep 4 10:55:41 2024 -0400

    Do not reassign submodule_path parameters in method bodies

    This makes it easier to use less generic annotations with mypy.

commit 1495979
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Wed Sep 4 10:34:55 2024 -0400

    Fix type annotations for tuple parameters

commit 6deb34f
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Wed Sep 4 02:04:09 2024 -0400

    Add ruff exclusions to pyproject.toml (pylint-dev#2537)

    This makes it easier to run 'ruff check' outside of the pre-commit
    hook.

    Co-authored-by: Pierre Sassoulas <pierre.sassoulas@gmail.com>

commit 78f7f60
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Tue Sep 3 08:52:20 2024 +0200

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2535)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.6.2 β†’ v0.6.3](astral-sh/ruff-pre-commit@v0.6.2...v0.6.3)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit a30794c
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Sep 2 20:09:47 2024 +0200

    Bump actions/setup-python from 5.1.1 to 5.2.0 (pylint-dev#2534)

    Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.1.1 to 5.2.0.
    - [Release notes](https://github.com/actions/setup-python/releases)
    - [Commits](actions/setup-python@v5.1.1...v5.2.0)

    ---
    updated-dependencies:
    - dependency-name: actions/setup-python
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 37b6c0d
Author: temyurchenko <44875844+temyurchenko@users.noreply.github.com>
Date:   Fri Aug 30 17:30:56 2024 -0400

    fix the documentation and the error message of modpath_from_file (pylint-dev#2532)

    The doc should clarify that the search will always include sys.path.

    The error message should reflect the actual paths used for checking.

commit 5210e61
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Fri Aug 30 09:00:26 2024 -0400

    Enable mypy checking for astroid/interpreter/_import/ (pylint-dev#2530)

    This commit also removes unnecessary tuple -> list conversions in
    _find_spec.

commit a389ef7
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Tue Aug 27 17:19:26 2024 -0400

    Use a tuple for processed parameter to facilitate future caching (pylint-dev#2529)

commit 16990fc
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Tue Aug 27 16:25:48 2024 -0400

    Remove unnecessary isinstance calls from transform predicates (pylint-dev#2507)

commit 0cf9a2e
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Tue Aug 27 06:34:11 2024 +0200

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2528)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.6.1 β†’ v0.6.2](astral-sh/ruff-pre-commit@v0.6.1...v0.6.2)
    - [github.com/pre-commit/mirrors-mypy: v1.11.1 β†’ v1.11.2](pre-commit/mirrors-mypy@v1.11.1...v1.11.2)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit d8dbc46
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sun Aug 25 21:53:58 2024 -0400

    Use a tuple for module_parts parameter to facilitate future caching

commit f924ba2
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Tue Aug 20 06:15:34 2024 +0200

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2512)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.5.7 β†’ v0.6.1](astral-sh/ruff-pre-commit@v0.5.7...v0.6.1)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit b312b56
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sun Aug 18 04:49:15 2024 +0000

    Make Finder.find_module static to facilitate future caching (pylint-dev#2509)

commit 8515010
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Tue Aug 13 06:19:18 2024 +0200

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2510)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.5.6 β†’ v0.5.7](astral-sh/ruff-pre-commit@v0.5.6...v0.5.7)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit fa32673
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Aug 12 22:35:41 2024 +0200

    Bump actions/upload-artifact from 4.3.5 to 4.3.6 (pylint-dev#2508)

    Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.5 to 4.3.6.
    - [Release notes](https://github.com/actions/upload-artifact/releases)
    - [Commits](actions/upload-artifact@v4.3.5...v4.3.6)

    ---
    updated-dependencies:
    - dependency-name: actions/upload-artifact
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 5e8fac7
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Sun Aug 11 17:41:02 2024 +0000

    Add cached version of os.path.isfile to avoid repetitive I/O (pylint-dev#2501)

commit 3a743a4
Merge: 5b838f2 4df8708
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Sun Aug 11 10:18:28 2024 -0400

    Merge pull request pylint-dev#2506 from pylint-dev/post-3.3.2

    Post 3.3.2

commit 4df8708
Merge: 86c7871 4ae4617
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Sun Aug 11 08:02:12 2024 -0400

    Merge branch 'maintenance/3.3.x' into post-3.3.2

commit 5b838f2
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Sun Aug 11 13:50:27 2024 +0200

    Update sphinx requirement from ~=7.4 to ~=8.0 (pylint-dev#2494)

    * Update sphinx requirement from ~=7.4 to ~=8.0

    Updates the requirements on [sphinx](https://github.com/sphinx-doc/sphinx) to permit the latest version.
    - [Release notes](https://github.com/sphinx-doc/sphinx/releases)
    - [Changelog](https://github.com/sphinx-doc/sphinx/blob/v8.0.2/CHANGES.rst)
    - [Commits](sphinx-doc/sphinx@v7.4.0...v8.0.2)

    ---
    updated-dependencies:
    - dependency-name: sphinx
      dependency-type: direct:production
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

    * Upgrade furo too

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Pierre Sassoulas <pierre.sassoulas@gmail.com>

commit 86c7871
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Sat Aug 10 17:06:09 2024 -0400

    [PY313] Add stubs for soft-deprecated typing members (pylint-dev#2503)

commit 0156c04
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Wed Aug 7 11:57:49 2024 +0000

    Avoid overhead of cast() calls when not type checking (pylint-dev#2500)

commit 29b6cbd
Author: correctmost <134317971+correctmost@users.noreply.github.com>
Date:   Wed Aug 7 11:48:42 2024 +0000

    Avoid extra isinstance calls in _visit_generic (pylint-dev#2502)

commit 15207a7
Merge: 04f4f3f 996ffea
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Tue Aug 6 09:52:55 2024 -0400

    Merge pull request pylint-dev#2499 from pylint-dev/post-3.3.1

commit 996ffea
Merge: 04f4f3f de58003
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Tue Aug 6 09:05:54 2024 -0400

    Merge branch 'maintenance/3.3.x' into post-3.3.1

commit 04f4f3f
Author: Eric Vergnaud <eric.vergnaud@wanadoo.fr>
Date:   Tue Aug 6 13:59:28 2024 +0200

    Fix pylint regression with invalid format strings (pylint-dev#2496)

    Catch exceptions when calling string.format

commit 8d3cdbb
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Mon Aug 5 20:06:08 2024 -0400

    [pre-commit.ci] pre-commit autoupdate (pylint-dev#2495)

    updates:
    - [github.com/astral-sh/ruff-pre-commit: v0.5.5 β†’ v0.5.6](astral-sh/ruff-pre-commit@v0.5.5...v0.5.6)
    - [github.com/psf/black: 24.4.2 β†’ 24.8.0](psf/black@24.4.2...24.8.0)
    - [github.com/pre-commit/mirrors-mypy: v1.11.0 β†’ v1.11.1](pre-commit/mirrors-mypy@v1.11.0...v1.11.1)

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

commit 61dba89
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Aug 5 23:27:45 2024 +0200

    Bump actions/upload-artifact from 4.3.4 to 4.3.5 (pylint-dev#2493)

    Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.4 to 4.3.5.
    - [Release notes](https://github.com/actions/upload-artifact/releases)
    - [Commits](actions/upload-artifact@v4.3.4...v4.3.5)

    ---
    updated-dependencies:
    - dependency-name: actions/upload-artifact
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit b105186
Author: Jacob Walls <jacobtylerwalls@gmail.com>
Date:   Sun Aug 4 09:10:21 2024 -0400

    Bump astroid to 3.4.0-dev0, update changelog
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement ✨ Improvement to a component topic-performance
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants