Commit Graph

30065 Commits

Author SHA1 Message Date
Ilya.Kazakevich
8a7073429b PY-76417: Show all python3 pythons on Unix.
There was a filter to include `python3` only to exclude python2.

While `python3` is usually a symlink to the good version of python3, there might be more than one file i.e `python3.11`, `python3.12` etc.

We now use regex to find all python3


(cherry picked from commit 024dd2d20ed728e5d4f4fef2c2b1dbaf3c6dcc97)

KT-CR-18710

GitOrigin-RevId: 26d813c98e389fa83e6ddc5c2fcd60b91fe5dac8
2024-10-30 15:58:09 +00:00
Aleksandr Sorotskii
1087c97645 Make debugger connection params customizable via registry; PY-76400
Merge-request: IJ-MR-148080
Merged-by: Aleksandr Sorotskii <aleksandr.sorotskii@jetbrains.com>

(cherry picked from commit 1ce2a48aebf3336199b12a79879f61af9e2bac7e)

IJ-MR-148080

GitOrigin-RevId: b443e0289420e4f208bc6d80c2c8f2e82a515a60
2024-10-30 15:46:30 +00:00
Ilya.Kazakevich
5e4006f0da PY-74420: NPW, V2: replace home path in sdk path to ~ to get rid of long lines.
The window is small: no need to have `c:/users/John.Doe` or `/Users/John.Doe` there: `~` is enough.


(cherry picked from commit 810abc8a3bb008477eef0045c24c37f5faac1e33)

KT-CR-18709

GitOrigin-RevId: 7924068fc534c676b1d1d625c8294740c65c8c9e
2024-10-30 15:35:37 +00:00
Egor Eliseev
e973c44d27 PY-70777 Remove useless performance tests for reprlib
Merge-request: IJ-MR-148054
Merged-by: Egor Eliseev <Egor.Eliseev@jetbrains.com>

(cherry picked from commit 333eef5915eba27961dd58c571f72d026cc0e438)

IJ-MR-148054

GitOrigin-RevId: b5534dc682861817911fa3a29a15dda1c6ecd632
2024-10-30 12:36:42 +00:00
Ilya.Kazakevich
81cdb86823 PY-76416: Filter out venvs from base pythons in SDK creation dialog.
Base Pythons are system-wide pythons, not venvs.
`PythonSdkFlavor.isPlatformIndependent` is `false` for base pythons.

Venvs can only be created on top of base pythons and not on top of other venvs.

We detect all pythons (even venvs in `~/.virtualenvs` e.t.c.) because we might need them in "Select Existing Interpreter" window, but since for "Create New Venv" we can only use base pythons, we use flavor to filter.


(cherry picked from commit 7b4719b821243a4d97304cfa1d106439b11f63b1)

KT-MR-18675

GitOrigin-RevId: e001e8f593b7a964067cbd04fcc3fd22ea8ec4a2
2024-10-30 02:04:05 +00:00
Daniil Kalinin
ea62ea04bc IJ-MR-146029 PY-76149 simplify the check for expected type from __set__ and assigned value
Reword the inspection text
Co-authored-by: Mikhail Golubev <mikhail.golubev@jetbrains.com>

(cherry picked from commit cab3cb1bbb1316462ee3fd37e735765b31b8d5e8)

GitOrigin-RevId: e3288e503d714a1f76bd1a2e6a0553770e1cbad5
2024-10-28 20:14:19 +00:00
Daniil Kalinin
0f40a088df IJ-MR-146029 PY-76149 code review changes and improvements
* Remove unnecessary descriptor type inference from `PyTargetExpressionImpl.getType`
* Refactor overload resolution for synthetic calls, minor refactorings in PyDescriptorTypeUtil
* Add additional test for __set__
* Do not substitute missing argument types with implicit `Any` in PySyntheticCallHelper
* Always take the first overload for `__set__` if more than one is present

(cherry picked from commit 9d1f9d37f3ea23ce6145f82fc8f62212f744e858)

GitOrigin-RevId: 372dc0e8ccc32095aecf3f611645adc06c2873e9
2024-10-28 20:14:19 +00:00
Daniil Kalinin
0cb148129f [python] dataclass_transform: use the annotated class as a resolve anchor for resolving the field specifiers
(cherry picked from commit f15a07836e7aeac7c46b489b4742e8248a0e6ef4)

GitOrigin-RevId: edf8399741cc5d62ba2fb04f9314eb620f83abae
2024-10-28 20:14:19 +00:00
Daniil Kalinin
24d6509dcd [python] loosen the restrictions on dataclass_transform qualified names
(cherry picked from commit b3e20087b64b159382bc24992efa12b5833d4018)

GitOrigin-RevId: 9f74c1d281fa68d937ad925a865feec29175fe93
2024-10-28 20:14:19 +00:00
Daniil Kalinin
7d891602cf [python] rename __get__ in PyNames.java from GET to DUNDER_GET to avoid confusion
(cherry picked from commit 23dd9bc6cb72630e3bee02a2fb160ff38be17d9a)

GitOrigin-RevId: 94e20ece2828c01019c20ae02663e9bad89a8ff7
2024-10-28 20:14:19 +00:00
Daniil Kalinin
c653a43cab PY-76149 Support descriptor types as annotations for dataclass fields
(cherry picked from commit 78a127e1a0083ece810ad996124ad6ea65887da2)

GitOrigin-RevId: 0c33fe51f5f13116f773577056317c537cbc83ef
2024-10-28 20:14:19 +00:00
Daniil Kalinin
4ad6f08f45 PY-76399 Support __set__ descriptor
Add API for inferring the expected type of `__set__` from `value` parameter
Add corresponding logic to PyTypeCheckerInspection to check if assigned value matches the expected descriptor type
Add tests on it

(cherry picked from commit b14ab7b2e40e225b508875a778ceae8986cbb291)

GitOrigin-RevId: 2b15b2b4527a95e5912897ba256dcc73d71c3dcd
2024-10-28 20:14:19 +00:00
Konstantin Hudyakov
e21d283581 IJOB-26 Do now show Run and Debug lessons in Aqua
These lessons expect that `Current File` run configuration is available, but it is not enabled in Aqua.


(cherry picked from commit 0412925c501f3234444702c5f6657078e83d5f30)

IJ-CR-147744

GitOrigin-RevId: 67df76f1c9a5e71eaac90465944e7b894a47fd67
2024-10-28 16:50:17 +00:00
Natalia.Murycheva
f9d6899d51 [PyCharm Tables] PY-76729 tf.EagerTensor and tf.ResourceVariable cannot be sorted in Data View #PY-76729 Fixed
* In case of sorted table, we get a dict for numpy and numpy_based tables. After that, we should extract a specific type of table and define the right python_code_provider. For tf.EagerTensor and tf.ResourceVariable tables the wrong python_code_provider was selected

(cherry picked from commit 62596418a8ac942136379f814bfdac57b60b697a)


(cherry picked from commit 8c9d39f2e82a64d3794fd84d50c255f15becb8b9)

IJ-CR-147319

GitOrigin-RevId: 939dbaa2d97812cd8a040d0fc22fc33cbed800ad
2024-10-28 15:15:12 +00:00
Natalia.Murycheva
c347819edc [PyCharm Tables] PY-76723 Fixed Multiple problems in CSV serialization #PY-76723 Fixed
* see the YT issue for more details

(cherry picked from commit 676a021e221c430c6fd3b600640d7aec1503239e)


(cherry picked from commit 5c8a478a2cc3edb148b684b48dfaf85f9d50627f)

IJ-CR-147319

GitOrigin-RevId: 3d5caa7d348861bc904335db3ff0b1edef2a17b1
2024-10-28 15:15:12 +00:00
Natalia.Murycheva
d3c97e24b0 [PyCharm Tables] PY-72208 fixed table info extracting when pandas is not installed for torch, tensorflow
(cherry picked from commit 80074e8429a4c881d79f5679962f4711db8561c1)


(cherry picked from commit 2829893866821fbbb2c0229abce67caa3a5e6993)

IJ-CR-147319

GitOrigin-RevId: 905af935c1d4c0dedc32a744040f4de97cc870dc
2024-10-28 15:15:12 +00:00
Natalia.Murycheva
48cd6487ae [PyCharm Tables] PY-76675 Fixed rendering Python None values in the csv case for pandas, polars frameworks
(cherry picked from commit f823121ce4adc23d6e9b8e03b87b8b19a789a46b)


(cherry picked from commit 93d7530c7ce0ba60fee5d1d0e909a39ce3b9dc65)

IJ-CR-147319

GitOrigin-RevId: d6dd4a5f63f172685df3e1a1c0d3d6cbcb063071
2024-10-28 15:15:11 +00:00
Bogdan Kirilenko
a5608efc3a [PyCharm] PY-76699 python.huggingFace module uses PythonPackageManagementListener instead of BulkFileListener to check whether any relevant HF library is installed
(cherry picked from commit 3d91d2d1444dd8d682d866fd79a24a6851c6214b)


(cherry picked from commit 3343a64ec240926532e793e16ace55be6bfe4010)

IJ-CR-147319

GitOrigin-RevId: 304e4d25c5a2ee57333c4dccf641126ab55a0554
2024-10-28 15:15:11 +00:00
Natalia.Murycheva
df0ad5da47 [PyCharm Tables] PY-72208 fixed the missed parameter during refactoring
(cherry picked from commit 67f798c44f0ce5cc3effdc452750ffee9d18bc5f)


(cherry picked from commit 6cb9a806ad46f4e855c9fa3caa14ec1eee9f91a8)

IJ-CR-147319

GitOrigin-RevId: 507e62dcf37fa46e5dfb2cb4f0249cec0a2cb054
2024-10-28 15:15:11 +00:00
Natalia.Murycheva
d61525e4a1 [PyCharm Tables] PY-75937 reduce the amount of extracted data that is not used in parsing
(cherry picked from commit 4ffc7411ebfab7d7544a616d04ad44025a5d7d02)


(cherry picked from commit 0960a4c22129641fb5ba2195b05c6a2e5c45926a)

IJ-CR-147319

GitOrigin-RevId: 37c0d6641191b48230ad03d000e2ee55e76c8443
2024-10-28 15:15:11 +00:00
Ilia Zakoulov
a7b3aaec00 PY-76629: Do not resolve bundled stubs when the package is not installed
The implementation is very similar to the PyTypeShed,
it should be merged into more general solution.

GitOrigin-RevId: 1449a774e93206349f17f264c27e2a7877d79b19
2024-10-28 14:57:57 +00:00
Ilia Zakoulov
948779f507 PY-76629: PY-76714: Handle empty string of bundled stubs path
findPathStringInHelpers might return an empty string,
that will be equal to the home path,
that will lead to indexing of the home directory.

GitOrigin-RevId: e800896a4c0631844a7b7a3a79334c3853a30c32
2024-10-28 14:57:57 +00:00
Ilia Zakoulov
ab53444089 PY-76629: Get rid of Django skeleton tests
GitOrigin-RevId: e96b82a3bcba484a5321c54cd15ff755dd7e276d
2024-10-28 14:57:57 +00:00
Ilia Zakoulov
6439b63a2d PY-76629: Get rid of django skeletons
GitOrigin-RevId: 3554062045a5226a95720ae3577af2313a8ce5ff
2024-10-28 14:57:57 +00:00
Ilia Zakoulov
91f27d8587 PY-76629: Suppress PyProtectedMemberInspection if a member is defined in .pyi
Protected member should not be highlighted as a warning if it resolves to .pyi file.
We assume that everything in .pyi file is a public API.

GitOrigin-RevId: c8275f3e48e3cd69b1676de9b78606f28ea224c8
2024-10-28 14:57:57 +00:00
Mikhail Golubev
d69f93c593 PY-76629: Fix DjangoViewNameCompletionTest.testViewNameCompletionInMethods
There were two underlying problems in Kotlin code:
```
run { DjangoFQNamesProvider.ACCEPTS_VIEW_NAME.isNameMatches(this) } != null
```
returned true regardless of the result of `isNameMatches(this)` call.
As a result, we used to suggest Django view names for *all* functions called
"reverse", "redirect" or "reverse_lazy".

Secondly, in FQNamesProviderExtKt.isNameMatches:
```
return getQualifiedNames().any {
  return it.firstComponent == elementQualifiedName.firstComponent &&
         it.lastComponent == elementQualifiedName.lastComponent
}
```
always returned the result of comparison with the first qualified name, ignoring the rest
due to non-local return from the inline `any`.

Finally, DjangoUrlViewProvider.isReverseFunction expected a PyFunctionType as the type
of reverse/redirect/reverse_lazy, but since these functions have overloads in .pyi
stubs we started to infer a union type of PyFunctionTypes for them, breaking the reference
provider. In general, it's better to perform a name resolution instead of type inference
to detect a fully qualified name for a reference.

GitOrigin-RevId: 69949b1b0e65f00557536cf16127279a83ea4f9d
2024-10-28 14:57:56 +00:00
Mikhail Golubev
20b2e20d26 PY-76629 PY-39761 Don't type check __class_getitem__ arguments inside type hints
GitOrigin-RevId: 060a2952d49777bff9853a2d5bc4d257271e559e
2024-10-28 14:57:56 +00:00
Aleksei Kniazev
732cd5275a PY-76629: [python] moved bundled django-stubs to helpers-pro package
GitOrigin-RevId: 24543c7c6249bd7ae8eac0cb6140754b5126858c
2024-10-28 14:57:56 +00:00
Aleksei Kniazev
f985a175df PY-76629: [python] bundle django-stubs, add them to the interpreter path and turn off stub suppressor
GitOrigin-RevId: 044f50f973193d54ea361d3c9b2d64ee3b83974a
2024-10-28 14:57:56 +00:00
Petr
1732354c38 PY-76506 Indexing process should not rely on non-indexed file data in PyCharm 2024.2
(cherry picked from commit 690d2c0c9b044c4132d607e81e770939a3be2315)

GitOrigin-RevId: a524db73b9bd2bdf914e6302460d2a64ab339356
2024-10-28 12:17:15 +00:00
Artem Ivanov
0668846014 PY-74176 Tweak activation of magic literals so they don't interfere with renaming symbols
(cherry picked from commit 69327fbc6680be176286f8fc3dc2aa89140d6c7d)

IJ-MR-146071

GitOrigin-RevId: 37da3ea34c760c7d61384d96616d746a0b731636
2024-10-25 20:18:37 +00:00
Artem Ivanov
2103981df4 PY-74176 Allow PyTargetExpression along with PyReferenceExpression to hold Constance references
(cherry picked from commit 1b4a1c2c24f0aedbb6782aedfca02e119aabcd59)

IJ-MR-146071

GitOrigin-RevId: c1efa76084136c80242935e1f848a2a064075632
2024-10-25 20:18:37 +00:00
Egor Eliseev
23a2bfac5c PY-65295 Poetry installation
Fix poetry executable detection for the "Add new local interpreter" panel.
There was a problem in `ModalityState`, which prevented updating `state.poetryExecutable` from EDT.


Merge-request: IJ-MR-147485
Merged-by: Egor Eliseev <Egor.Eliseev@jetbrains.com>

(cherry picked from commit 43a807c20f8572bcf570121792269d6ee0c67acd)

IJ-MR-147485

GitOrigin-RevId: fab1de5a2a55e62ff66790defb033b7745259dc5
2024-10-25 13:14:58 +00:00
Egor Eliseev
f9f0322222 PY-76806 Missing Docker container settings in Run/Debug configurations
Deleted two redundant Docker run configuration editor extensions.
Return a Docker run configuration editor extension for Targets API.


Merge-request: IJ-MR-147585
Merged-by: Egor Eliseev <Egor.Eliseev@jetbrains.com>

(cherry picked from commit ec02eedb05f006eaf53e711cda34b0403a7b010b)

IJ-MR-147585

GitOrigin-RevId: f4f44d5e8a7204503e1b6ace7c86996e4fc0c02d
2024-10-25 13:13:51 +00:00
Vladimir Koshelev
0faacc1ca9 PY-76809 fix exception in PyCompletionStatisticLogger
(cherry picked from commit 3c84debd8f1f4b6e2bc89f4b24d003cf950b328d)

IJ-CR-147568

GitOrigin-RevId: 4633d2ec708e2d6496623cd9e7a8e98fa73fc9ea
2024-10-23 19:07:01 +00:00
Daniil Kalinin
814b2947d3 PY-76680 Fix IOOBE: SmartList.checkOutOfBounds in PySyntheticCallHelper.java
(cherry picked from commit 737513a3a2b0c9564055ff17845cebb80af10cd2)

IJ-CR-147142

GitOrigin-RevId: 93bfc9464bcbc97ec80cb6ad4ed10c484f2ee9ec
2024-10-23 16:12:41 +00:00
Irina Fediaeva
106c9fdaa5 PY-59463: Remove requirement for Python 2.* to format Epytext docs
(cherry picked from commit 8fd59526a1f849dcf426da65867b9c37039f273e)

IJ-CR-147140

GitOrigin-RevId: 041794293699d490b6220f22e4156c934a32912b
2024-10-23 14:30:09 +00:00
Irina Fediaeva
e634ac917f PY-59463: Delete redundant file causing import errors
(cherry picked from commit d1a454517f64f5f71fad9b15a54e2f4d0b1ed523)

IJ-CR-147140

GitOrigin-RevId: 7a6364f74f5636476352f31e7d2c1eb1ecc399d1
2024-10-23 14:30:09 +00:00
Irina Fediaeva
5fa187f326 PY-59463: Update 'docutils' package to the latest version 0.21.2
(cherry picked from commit 779fab1c1ef58ea84f197ff4f14a6e88bef1ab3b)

IJ-CR-147140

GitOrigin-RevId: d8a6a7b3952aae2bc4e0ab64b9d1086baf3cc5b3
2024-10-23 14:30:09 +00:00
Irina Fediaeva
921eed52d3 PY-59463: Update 'six' package to the latest version 1.16.0
(cherry picked from commit 037d5e0b984ff825a518bb2b02a9da6c16955be5)

IJ-CR-147140

GitOrigin-RevId: 2eaf8ecbeb5ad51b2e37ac55928bef8ff587a513
2024-10-23 14:30:09 +00:00
Gregory.Shrago
d5b6063609 fix missing RunSphinxQuickStartAction text
(cherry picked from commit f7652ac2dde099ac831ee52fa4b294824f3ad04e)

IJ-CR-147430

GitOrigin-RevId: 70515cf607c54f69e20196657a8b344e8ef5f0c8
2024-10-22 20:44:41 +00:00
Aleksandr Sorotskii
e4ef6c41d9 fix matplotlib version parsing in case of any non integer suffixes; PY-75115
(cherry picked from commit b1cc9828a1e83488cd89f70b9982b7cb18969383)

IJ-MR-147326

GitOrigin-RevId: b0d1478df587d88166ea0a03ce6db7dd0c0ac00e
2024-10-22 16:56:09 +00:00
Tatiana Ber
30416ced81 Fix typo in UI text
GitOrigin-RevId: 77a7cf873c9892e39deed4eb789dd997b513460b
2024-10-21 12:50:19 +00:00
Petr
08c5bfb142 PY-75537 Implement PyAstNamedParameter.getRepr()(PyFrontendElementTypesFacadeImpl.kt)
(cherry picked from commit ef38af29fd176324f4c1bec503a116a5b4f351b4)

GitOrigin-RevId: 9b47c8018c3f8ad04c365175bbeb2791feb966cc
2024-10-18 17:10:51 +00:00
Petr
411f36db5a PY-75537 Implement PyAstStringLiteralExpression.createLiteralTextEscaper() (PyFrontendElementTypesFacadeImpl.kt)
(cherry picked from commit c42b7626a6e57c118e7028a4806bd8fa7938076c)

GitOrigin-RevId: e68adbb728051d49654d76df856b522191330170
2024-10-18 17:10:51 +00:00
Petr
78c67850e3 PY-75537 Implement PyAstStringLiteralExpression.getStringValue(), PyAstStringLiteralExpression.getStringValueTextRange() (PyFrontendElementTypesFacadeImpl.kt)
(cherry picked from commit 372f147a61e07c6cb21aaeb8a7d0f3d14d49417d)

GitOrigin-RevId: 9682c8df1f0acd21580e87d8381995960abeeb8a
2024-10-18 17:10:51 +00:00
Petr
001266a5b7 PY-75537 Implement PyAstAssignmentStatement.getTargetsToValuesMapping() (PyFrontendElementTypesFacadeImpl.kt)
(cherry picked from commit 8c4926689e42f117275986c2e1246d7e04bde489)

GitOrigin-RevId: f83b02700ce17a182807ac8bfe1a0108e09d4741
2024-10-18 17:10:51 +00:00
Petr
63ccfc1fb1 PY-75537 Slightly simplified PyAssignmentStatementImpl.getTargetsToValuesMapping()
(cherry picked from commit 41f02b5c164380ad978cfa66eb36bb5b97189855)

GitOrigin-RevId: 7f0eec0447f4e39d18b265f86e37a3057d71d9b2
2024-10-18 17:10:51 +00:00
Petr
34a015c9af PY-75537 Implement PyAstAssignmentStatement.getTargets(), PyAstAssignmentStatement.getRawTargets() (PyFrontendElementTypesFacadeImpl.kt)
(cherry picked from commit 0f9292ac3ca0f4f4728b25cb2e5ddcd618b8319d)

GitOrigin-RevId: ced0f2fe8d877e80af4f4568a11cf8ab0f64d57c
2024-10-18 17:10:51 +00:00
Bogdan Kirilenko
09c25b2e66 [PyCharm] PY-73511 Fix HF module error if the user is isolated from the internet by error catching
(cherry picked from commit 736943f685e7825b4547b13d4fee405f428b5fc0)

IJ-CR-146842

GitOrigin-RevId: c6da4d1ba16dc35f792419308b4b7602a78d0480
2024-10-15 21:04:46 +00:00