1. Forced language level via test only method
2. Specified language level via separate method for programmatically created file
3. Pre-calculated language level for the containing directory
4. Language level of the file sdk
5. Maximum language level among project modules
GitOrigin-RevId: b6a2b382807c4170020fd6ad045ddbd7523add64
Since project directory will be covered by getImmediateValue(Module).
Directory under other root will be covered by UpdateRootTask.
GitOrigin-RevId: 948ac06da4c3356ea3c9e3102bbac150bc81ea9c
Also, mark them as @ApiStatus.Internal instead of @Deprecated. These EP however
won't be safe to use as soon as we decide, e.g. to extract Django support into
a standalone plugin, because unloading it won't trigger rebuilding of indexes
in the current implementation leaving unused custom data in them.
GitOrigin-RevId: 3dbe4bee616c500409a088b825e3252615167069
by moving the registration of stub implementations for code-insight bridge services
from PythonPsiImpl.xml down to PythonAnalysisToolPlugin.xml where they are actually
used. All the other products using PythonPsiImpl.xml seem to include it via
python-core-common.xml, so each of them will safely get the real *ServiceImpl
implementation of the corresponding bridge.
GitOrigin-RevId: 2cf83ab8ff99efcc9ed432634e4f2d614a18cc8b
PythonDocumentationProvider#generateDoc is invoked without a non-blocking read
action there and, thus, doesn't have a corresponding progress indicator resulting
in NPE before we get to Application#isUnitTestMode check.
GitOrigin-RevId: 97bc60401b448b3f8f27efff00f81ea0476706cb
The helper script for rendering it is now launched synchronously in a pooled
thread while the origin thread holding the read-write lock is constantly
checking whether it was cancelled by incoming write action. If it was, it
terminates preliminary and later rescheduled again thanks to the capabilities
of NonBlockingReadAction. The pooled thread meanwhile will keep running waiting
for the output of the script (up to 5 seconds timeout). Normally it shouldn't
happen, though, and at least Quick Documentation no longer affects the editor
responsiveness. It's a workaround for the current platform API limitation
that queries ordinary documentation providers under read action with no way to
opt out.
GitOrigin-RevId: f74e67d67381326ce7685ff5fa31d42bffacb8be
we do not have any usages of the method with messageBus parameter, added new method without it and delegated to the previous one for backward compatibility
GitOrigin-RevId: 2bf2eb051adc81ad386c1f06288b5fd889d16514
The problem was that every definition matches `TypeVar(..., bound=type)` since it's metaclass is `type`.
The metaclass successfully matches expected class but no substitution is created.
Tests were updated since now `A` matches `_C = TypeVar("_C", bound=type)` in attrs stubs and `A` is inferred.
In any case `attrs` support is tested in other tests, these tests are about unknown (for us) decorators.
GitOrigin-RevId: ced931bd2ff732a8f7a95726d3f2837417d2d6c2
Expected class-like types are not considered as callables (exclusion: bare typing.Callable).
Fix matching definition against metaclass.
GitOrigin-RevId: a2fe59c3bc7f56ef08dfb960a9ed841a86a65815
Otherwise modules from dependencies will be processed many times, in the worst case this will take quadratic time by number of modules and may lead to UI freezes if there are many modules in the project (PY-41402).
GitOrigin-RevId: b05df2eea95aeac1b6bfcabe0970b720c775a29b