Date: Monday, April 17, 2023 @ 10:22:16
Author: artafinde
Revision: 1446683
archrelease: copy trunk to community-staging-x86_64
Added:
pycharm-community-edition/repos/community-staging-x86_64/
pycharm-community-edition/repos/community-staging-x86_64/PKGBUILD
(from rev 1446682, pycharm-community-edition/trunk/PKGBUILD)
pycharm-community-edition/repos/community-staging-x86_64/enable-no-jdr.patch
(from rev 1446682, pycharm-community-edition/trunk/enable-no-jdr.patch)
pycharm-community-edition/repos/community-staging-x86_64/fix-compile-cython-extensions-error.patch
(from rev 1446682,
pycharm-community-edition/trunk/fix-compile-cython-extensions-error.patch)
pycharm-community-edition/repos/community-staging-x86_64/pycharm.desktop
(from rev 1446682, pycharm-community-edition/trunk/pycharm.desktop)
pycharm-community-edition/repos/community-staging-x86_64/pycharm.sh
(from rev 1446682, pycharm-community-edition/trunk/pycharm.sh)
-------------------------------------------+
PKGBUILD | 102 +
enable-no-jdr.patch | 12
fix-compile-cython-extensions-error.patch | 2319 ++++++++++++++++++++++++++++
pycharm.desktop | 11
pycharm.sh | 17
5 files changed, 2461 insertions(+)
Copied: pycharm-community-edition/repos/community-staging-x86_64/PKGBUILD (from
rev 1446682, pycharm-community-edition/trunk/PKGBUILD)
===================================================================
--- community-staging-x86_64/PKGBUILD (rev 0)
+++ community-staging-x86_64/PKGBUILD 2023-04-17 10:22:16 UTC (rev 1446683)
@@ -0,0 +1,102 @@
+# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org>
+# Maintainer: Orhun Parmaksız <[email protected]>
+# Maintainer: Leonidas Spyropoulos <[email protected]>
+# Contributor: Maxime Gauduin <[email protected]>
+# Contributor: David Keogh <[email protected]>
+
+pkgname=pycharm-community-edition
+pkgver=2023.1
+_build=231.8109.197
+_jrever=17
+_jdkver=17
+pkgrel=2
+pkgdesc='Python IDE for Professional Developers'
+arch=(x86_64)
+options=(!debug)
+url=https://www.jetbrains.com/pycharm/
+license=(APACHE)
+depends=(
+ giflib
+ glib2
+ "java-runtime=${_jrever}"
+ python
+ sh
+ ttf-font
+ fontconfig
+ libdbusmenu-glib
+)
+optdepends=(
+ 'ipython: IPython integration for Python 3'
+)
+makedepends=(
+ git
+ "java-environment-openjdk=${_jdkver}"
+ python-setuptools
+)
+source=(
+
"git+https://github.com/JetBrains/intellij-community.git#tag=pycharm/${_build}"
+
idea-android::"git+https://github.com/JetBrains/android.git#tag=pycharm/${_build}"
+ pycharm.desktop
+ pycharm.sh
+ enable-no-jdr.patch
+ fix-compile-cython-extensions-error.patch
+)
+sha256sums=('SKIP'
+ 'SKIP'
+ 'f727119ec7c8b96820e80712b1ee342de6a94ff72402e8f2d390cbff702f9b21'
+ 'f4c4f1dfac7fa89ac1ea407904b19d0513d481b2f6f562672d02bfa4ce32c1ff'
+ 'af736aad3e3df7e6196944860521dfbdad1e9f7ecc04ac4f38a067f1b63963e5'
+ 'cf7258f6fb2eb7dfe45c18719e36a8ab167a0c6e66cc7fcd9c0381a17da32c7e')
+
+prepare() {
+ cd intellij-community
+
+ echo ${_build} > build.txt
+ mv "${srcdir}"/idea-android android
+
+ sed -e 's/var targetOs: String/var targetOs: String = OS_LINUX/' \
+ -e 's/System.getProperty(TARGET_OS_PROPERTY, OS_ALL)/OS_LINUX/' \
+ -i
"platform/build-scripts/src/org/jetbrains/intellij/build/BuildOptions.kt"
+ sed 's|../build/plugins-autoupload.txt|plugins-autoupload.txt|' \
+ -i
"platform/build-scripts/src/org/jetbrains/intellij/build/impl/DistributionJARsBuilder.kt"
+ touch plugins-autoupload.txt
+ # Fix pycharm python/installer.cmd & python/plugin.cmd
+ sed 's|intellij.pycharm.community.build|"$(cd "$(dirname "$0")"; pwd)/../"
intellij.pycharm.community.build|' -i python/installers.cmd
+ #sed 's|intellij.pycharm.community.build|"$(cd "$(dirname "$0")"; pwd)/../"
intellij.pycharm.community.build|' -i python/plugin.cmd
+ patch -Np1 < "${srcdir}/enable-no-jdr.patch"
+ #
https://github.com/JetBrains/intellij-community/commit/0f52c1f037e2ace96d8dbfbf4781684ccea5ed29
+ patch -Np1 < "${srcdir}/fix-compile-cython-extensions-error.patch"
+}
+
+build() {
+ cd intellij-community
+
+ export JAVA_HOME="/usr/lib/jvm/java-${_jdkver}-openjdk"
+ export PATH="/usr/lib/jvm/java-${_jdkver}-openjdk/bin:$PATH"
+ export MAVEN_REPOSITORY=/build/.m2/repository
+
+ ./python/installers.cmd -Dintellij.build.use.compiled.classes=false
-Dintellij.build.target.os=linux
+ #./python/plugin.cmd -Dintellij.build.target.os=linux
+
+ tar -xf out/pycharm-ce/artifacts/pycharmPC-${_build}-no-jbr.tar.gz -C
"${srcdir}"
+
+ # Issues with cython and 3.11 ->
https://youtrack.jetbrains.com/issues/PY?q=cython%203.11
+ # cd ../pycharm-community-${pkgver}
+ # python3 plugins/python-ce/helpers/pydev/setup_cython.py build_ext
--build-temp build --build-lib .
+}
+
+package() {
+ cd pycharm-community-${pkgver}
+
+ # workaround FS#40934
+ sed -i 's/lcd/on/' bin/*.vmoptions
+
+ install -dm 755 "${pkgdir}"/usr/share/{licenses,pixmaps,pycharm}
+ cp -dr --no-preserve='ownership' bin lib plugins
"${pkgdir}"/usr/share/pycharm/
+ cp -dr --no-preserve='ownership' license
"${pkgdir}"/usr/share/licenses/pycharm/
+ ln -s /usr/share/pycharm/bin/pycharm.png "${pkgdir}"/usr/share/pixmaps/
+ install -Dm 644 ../pycharm.desktop -t "${pkgdir}"/usr/share/applications/
+ install -Dm 755 ../pycharm.sh "${pkgdir}"/usr/bin/pycharm
+}
+
+# vim: ts=2 sw=2 et:
Copied:
pycharm-community-edition/repos/community-staging-x86_64/enable-no-jdr.patch
(from rev 1446682, pycharm-community-edition/trunk/enable-no-jdr.patch)
===================================================================
--- community-staging-x86_64/enable-no-jdr.patch
(rev 0)
+++ community-staging-x86_64/enable-no-jdr.patch 2023-04-17 10:22:16 UTC
(rev 1446683)
@@ -0,0 +1,12 @@
+diff --git
a/platform/build-scripts/src/org/jetbrains/intellij/build/LinuxDistributionCustomizer.kt
b/platform/build-scripts/src/org/jetbrains/intellij/build/LinuxDistributionCustomizer.kt
+---
a/platform/build-scripts/src/org/jetbrains/intellij/build/LinuxDistributionCustomizer.kt
(revision d2f6e301b539928d66c37f71ee199e9b738e5bb3)
++++
b/platform/build-scripts/src/org/jetbrains/intellij/build/LinuxDistributionCustomizer.kt
(date 1670184559625)
+@@ -24,7 +24,7 @@
+ /**
+ * If {@code true} a separate *-no-jbr.tar.gz artifact without runtime will
be produced.
+ */
+- var buildTarGzWithoutBundledRuntime = false
++ var buildTarGzWithoutBundledRuntime = true
+
+ /**
+ * If {@code true}, the only *-no-jbr.tar.gz will be produced, no other
binaries for Linux will be built.
Copied:
pycharm-community-edition/repos/community-staging-x86_64/fix-compile-cython-extensions-error.patch
(from rev 1446682,
pycharm-community-edition/trunk/fix-compile-cython-extensions-error.patch)
===================================================================
--- community-staging-x86_64/fix-compile-cython-extensions-error.patch
(rev 0)
+++ community-staging-x86_64/fix-compile-cython-extensions-error.patch
2023-04-17 10:22:16 UTC (rev 1446683)
@@ -0,0 +1,2319 @@
+From 0f52c1f037e2ace96d8dbfbf4781684ccea5ed29 Mon Sep 17 00:00:00 2001
+From: Andrey Lisin <[email protected]>
+Date: Wed, 22 Mar 2023 13:35:45 +0100
+Subject: [PATCH] PY-57709 Fix compile Cython extensions error in PyCharm
+ installed with Snap
+
+GitOrigin-RevId: 183f3aa5086731cb7a301d912ea773f55808e3f9
+---
+ .../_pydevd_frame_eval/cython/README.rst | 7 -
+ ...uator.c => pydevd_frame_evaluator_36_38.c} | 608 +++++++++---------
+ ...r.pxd => pydevd_frame_evaluator_36_38.pxd} | 0
+ ...r.pyx => pydevd_frame_evaluator_36_38.pyx} | 0
+ ...ator.c => pydevd_frame_evaluator_39_310.c} | 0
+ ....pxd => pydevd_frame_evaluator_39_310.pxd} | 0
+ ....pyx => pydevd_frame_evaluator_39_310.pyx} | 0
+ python/helpers/pydev/setup.py | 6 +-
+ python/helpers/pydev/setup_cython.py | 101 ++-
+ 9 files changed, 344 insertions(+), 378 deletions(-)
+ delete mode 100644 python/helpers/pydev/_pydevd_frame_eval/cython/README.rst
+ rename
python/helpers/pydev/_pydevd_frame_eval/{cython/36_38/pydevd_frame_evaluator.c
=> pydevd_frame_evaluator_36_38.c} (99%)
+ rename
python/helpers/pydev/_pydevd_frame_eval/{cython/36_38/pydevd_frame_evaluator.pxd
=> pydevd_frame_evaluator_36_38.pxd} (100%)
+ rename
python/helpers/pydev/_pydevd_frame_eval/{cython/36_38/pydevd_frame_evaluator.pyx
=> pydevd_frame_evaluator_36_38.pyx} (100%)
+ rename
python/helpers/pydev/_pydevd_frame_eval/{cython/39_310/pydevd_frame_evaluator.c
=> pydevd_frame_evaluator_39_310.c} (100%)
+ rename
python/helpers/pydev/_pydevd_frame_eval/{cython/39_310/pydevd_frame_evaluator.pxd
=> pydevd_frame_evaluator_39_310.pxd} (100%)
+ rename
python/helpers/pydev/_pydevd_frame_eval/{cython/39_310/pydevd_frame_evaluator.pyx
=> pydevd_frame_evaluator_39_310.pyx} (100%)
+
+diff --git a/python/helpers/pydev/_pydevd_frame_eval/cython/README.rst
b/python/helpers/pydev/_pydevd_frame_eval/cython/README.rst
+deleted file mode 100644
+index 7d24c9b575ad8..0000000000000
+--- a/python/helpers/pydev/_pydevd_frame_eval/cython/README.rst
++++ /dev/null
+@@ -1,7 +0,0 @@
+-Version specific frame evaluation code. The right module will be picked up
+-during the build process.
+-
+-The folder name format
+-``<major_version><minor_version>_<major_version><minor_version>`` defines
+-the Python version range for which the modules in the folder are suitable
+-for.
+\ No newline at end of file
+diff --git
a/python/helpers/pydev/_pydevd_frame_eval/cython/36_38/pydevd_frame_evaluator.c
b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_36_38.c
+similarity index 99%
+rename from
python/helpers/pydev/_pydevd_frame_eval/cython/36_38/pydevd_frame_evaluator.c
+rename to
python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_36_38.c
+index 72bd05a8392c8..6c6f52f4b282b 100644
+---
a/python/helpers/pydev/_pydevd_frame_eval/cython/36_38/pydevd_frame_evaluator.c
++++ b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_36_38.c
+@@ -1020,8 +1020,8 @@ struct
__pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalThreadInfo {
+
+
+ /* "_pydevd_bundle/pydevd_cython.pxd":20
+- *
+- *
++ *
++ *
+ * cdef class PydevSmartStepContext: # <<<<<<<<<<<<<<
+ * cdef public object smart_step_stop; # Actually, it's a frame or None
+ * cdef public int call_order;
+@@ -1038,8 +1038,8 @@ struct
__pyx_obj_14_pydevd_bundle_13pydevd_cython_PydevSmartStepContext {
+
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pxd":84
+- *
+- *
++ *
++ *
+ * cdef class ThreadInfo: # <<<<<<<<<<<<<<
+ * cdef public PyDBAdditionalThreadInfo additional_info
+ * cdef public bint is_pydevd_thread
+@@ -1055,8 +1055,8 @@ struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_ThreadInfo {
+
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pxd":92
+- *
+- *
++ *
++ *
+ * cdef class FuncCodeInfo: # <<<<<<<<<<<<<<
+ * cdef public str co_filename
+ * cdef public str real_path
+@@ -1882,7 +1882,7 @@ static PyObject *__pyx_codeobj__20;
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":25
+ * cdef class ThreadInfo:
+- *
++ *
+ * def __init__(self): # <<<<<<<<<<<<<<
+ * self.additional_info = None
+ * self.is_pydevd_thread = False
+@@ -1910,7 +1910,7 @@ static int
__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_10ThreadInfo__
+ __Pyx_RefNannySetupContext("__init__", 0);
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":26
+- *
++ *
+ * def __init__(self):
+ * self.additional_info = None # <<<<<<<<<<<<<<
+ * self.is_pydevd_thread = False
+@@ -1945,7 +1945,7 @@ static int
__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_10ThreadInfo__
+ * self.inside_frame_eval = 0
+ * self.fully_initialized = False # <<<<<<<<<<<<<<
+ * self.thread_trace_func = None
+- *
++ *
+ */
+ __pyx_v_self->fully_initialized = 0;
+
+@@ -1953,7 +1953,7 @@ static int
__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_10ThreadInfo__
+ * self.inside_frame_eval = 0
+ * self.fully_initialized = False
+ * self.thread_trace_func = None # <<<<<<<<<<<<<<
+- *
++ *
+ * def initialize_if_possible(self):
+ */
+ __Pyx_INCREF(Py_None);
+@@ -1964,7 +1964,7 @@ static int
__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_10ThreadInfo__
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":25
+ * cdef class ThreadInfo:
+- *
++ *
+ * def __init__(self): # <<<<<<<<<<<<<<
+ * self.additional_info = None
+ * self.is_pydevd_thread = False
+@@ -1978,7 +1978,7 @@ static int
__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_10ThreadInfo__
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":32
+ * self.thread_trace_func = None
+- *
++ *
+ * def initialize_if_possible(self): # <<<<<<<<<<<<<<
+ * # Don't call threading.current_thread because if we're too early
in the process
+ * # we may create a dummy thread.
+@@ -2036,14 +2036,14 @@ static PyObject
*__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_10Thread
+ * # Don't call threading.current_thread because if we're too early
in the process
+ * # we may create a dummy thread.
+ * self.inside_frame_eval += 1 # <<<<<<<<<<<<<<
+- *
++ *
+ * try:
+ */
+ __pyx_v_self->inside_frame_eval = (__pyx_v_self->inside_frame_eval + 1);
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":37
+ * self.inside_frame_eval += 1
+- *
++ *
+ * try: # <<<<<<<<<<<<<<
+ * thread_ident = threading.get_ident() # Note this is py3 only,
if py2 needed to be supported, _get_ident would be needed.
+ * t = threading._active.get(thread_ident)
+@@ -2051,7 +2051,7 @@ static PyObject
*__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_10Thread
+ /*try:*/ {
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":38
+- *
++ *
+ * try:
+ * thread_ident = threading.get_ident() # Note this is py3 only,
if py2 needed to be supported, _get_ident would be needed. #
<<<<<<<<<<<<<<
+ * t = threading._active.get(thread_ident)
+@@ -2118,7 +2118,7 @@ static PyObject
*__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_10Thread
+ * t = threading._active.get(thread_ident)
+ * if t is None: # <<<<<<<<<<<<<<
+ * return # Cannot initialize until thread becomes active.
+- *
++ *
+ */
+ __pyx_t_4 = (__pyx_v_t == Py_None);
+ __pyx_t_5 = (__pyx_t_4 != 0);
+@@ -2128,7 +2128,7 @@ static PyObject
*__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_10Thread
+ * t = threading._active.get(thread_ident)
+ * if t is None:
+ * return # Cannot initialize until thread becomes active.
# <<<<<<<<<<<<<<
+- *
++ *
+ * for thread in threading.enumerate():
+ */
+ __Pyx_XDECREF(__pyx_r);
+@@ -2140,13 +2140,13 @@ static PyObject
*__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_10Thread
+ * t = threading._active.get(thread_ident)
+ * if t is None: # <<<<<<<<<<<<<<
+ * return # Cannot initialize until thread becomes active.
+- *
++ *
+ */
+ }
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":43
+ * return # Cannot initialize until thread becomes active.
+- *
++ *
+ * for thread in threading.enumerate(): #
<<<<<<<<<<<<<<
+ * if isinstance(t, threading._DummyThread) and t is thread
and t.ident != thread.ident:
+ * t = thread
+@@ -2215,7 +2215,7 @@ static PyObject
*__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_10Thread
+ __pyx_t_1 = 0;
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":44
+- *
++ *
+ * for thread in threading.enumerate():
+ * if isinstance(t, threading._DummyThread) and t is thread
and t.ident != thread.ident: # <<<<<<<<<<<<<<
+ * t = thread
+@@ -2259,7 +2259,7 @@ static PyObject
*__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_10Thread
+ * if isinstance(t, threading._DummyThread) and t is thread
and t.ident != thread.ident:
+ * t = thread # <<<<<<<<<<<<<<
+ * break
+- *
++ *
+ */
+ __Pyx_INCREF(__pyx_v_thread);
+ __Pyx_DECREF_SET(__pyx_v_t, __pyx_v_thread);
+@@ -2268,13 +2268,13 @@ static PyObject
*__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_10Thread
+ * if isinstance(t, threading._DummyThread) and t is thread
and t.ident != thread.ident:
+ * t = thread
+ * break # <<<<<<<<<<<<<<
+- *
++ *
+ * if getattr(t, 'is_pydev_daemon_thread', False):
+ */
+ goto __pyx_L8_break;
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":44
+- *
++ *
+ * for thread in threading.enumerate():
+ * if isinstance(t, threading._DummyThread) and t is thread
and t.ident != thread.ident: # <<<<<<<<<<<<<<
+ * t = thread
+@@ -2284,7 +2284,7 @@ static PyObject
*__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_10Thread
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":43
+ * return # Cannot initialize until thread becomes active.
+- *
++ *
+ * for thread in threading.enumerate(): #
<<<<<<<<<<<<<<
+ * if isinstance(t, threading._DummyThread) and t is thread
and t.ident != thread.ident:
+ * t = thread
+@@ -2295,7 +2295,7 @@ static PyObject
*__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_10Thread
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":48
+ * break
+- *
++ *
+ * if getattr(t, 'is_pydev_daemon_thread', False): #
<<<<<<<<<<<<<<
+ * self.is_pydevd_thread = True
+ * self.fully_initialized = True
+@@ -2307,7 +2307,7 @@ static PyObject
*__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_10Thread
+ if (__pyx_t_5) {
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":49
+- *
++ *
+ * if getattr(t, 'is_pydev_daemon_thread', False):
+ * self.is_pydevd_thread = True # <<<<<<<<<<<<<<
+ * self.fully_initialized = True
+@@ -2326,7 +2326,7 @@ static PyObject
*__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_10Thread
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":48
+ * break
+- *
++ *
+ * if getattr(t, 'is_pydev_daemon_thread', False): #
<<<<<<<<<<<<<<
+ * self.is_pydevd_thread = True
+ * self.fully_initialized = True
+@@ -2562,7 +2562,7 @@ static PyObject
*__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_10Thread
+ __Pyx_GIVEREF(__pyx_t_14);
+ __Pyx_XGIVEREF(__pyx_t_15);
+ __Pyx_ErrRestoreWithState(__pyx_t_3, __pyx_t_14,
__pyx_t_15);
+- __pyx_t_3 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0;
++ __pyx_t_3 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0;
+ __PYX_ERR(0, 57, __pyx_L31_except_error)
+ }
+ __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
+@@ -2663,8 +2663,8 @@ static PyObject
*__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_10Thread
+ * self.fully_initialized = True
+ * finally:
+ * self.inside_frame_eval -= 1 # <<<<<<<<<<<<<<
+- *
+- *
++ *
++ *
+ */
+ /*finally:*/ {
+ /*normal exit:*/{
+@@ -2722,7 +2722,7 @@ static PyObject
*__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_10Thread
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":32
+ * self.thread_trace_func = None
+- *
++ *
+ * def initialize_if_possible(self): # <<<<<<<<<<<<<<
+ * # Don't call threading.current_thread because if we're too early
in the process
+ * # we may create a dummy thread.
+@@ -2752,7 +2752,7 @@ static PyObject
*__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_10Thread
+ }
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pxd":85
+- *
++ *
+ * cdef class ThreadInfo:
+ * cdef public PyDBAdditionalThreadInfo additional_info #
<<<<<<<<<<<<<<
+ * cdef public bint is_pydevd_thread
+@@ -3028,7 +3028,7 @@ static int
__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_10ThreadInfo_1
+ * cdef public int inside_frame_eval
+ * cdef public bint fully_initialized # <<<<<<<<<<<<<<
+ * cdef public object thread_trace_func
+- *
++ *
+ */
+
+ /* Python wrapper */
+@@ -3109,8 +3109,8 @@ static int
__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_10ThreadInfo_1
+ * cdef public int inside_frame_eval
+ * cdef public bint fully_initialized
+ * cdef public object thread_trace_func # <<<<<<<<<<<<<<
+- *
+- *
++ *
++ *
+ */
+
+ /* Python wrapper */
+@@ -3526,7 +3526,7 @@ static PyObject
*__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_10Thread
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":72
+ * cdef class FuncCodeInfo:
+- *
++ *
+ * def __init__(self): # <<<<<<<<<<<<<<
+ * self.co_filename = ''
+ * self.real_path = ''
+@@ -3558,7 +3558,7 @@ static int
__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_12FuncCodeInfo
+ __Pyx_RefNannySetupContext("__init__", 0);
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":73
+- *
++ *
+ * def __init__(self):
+ * self.co_filename = '' # <<<<<<<<<<<<<<
+ * self.real_path = ''
+@@ -3575,7 +3575,7 @@ static int
__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_12FuncCodeInfo
+ * self.co_filename = ''
+ * self.real_path = '' # <<<<<<<<<<<<<<
+ * self.always_skip_code = False
+- *
++ *
+ */
+ __Pyx_INCREF(__pyx_kp_u__2);
+ __Pyx_GIVEREF(__pyx_kp_u__2);
+@@ -3587,7 +3587,7 @@ static int
__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_12FuncCodeInfo
+ * self.co_filename = ''
+ * self.real_path = ''
+ * self.always_skip_code = False # <<<<<<<<<<<<<<
+- *
++ *
+ * # If breakpoints are found but new_code is None,
+ */
+ __pyx_v_self->always_skip_code = 0;
+@@ -3619,7 +3619,7 @@ static int
__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_12FuncCodeInfo
+ * self.new_code = None
+ * self.breakpoints_created = set() # <<<<<<<<<<<<<<
+ * self.breakpoints_mtime = -1
+- *
++ *
+ */
+ __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 82,
__pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_1);
+@@ -3633,14 +3633,14 @@ static int
__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_12FuncCodeInfo
+ * self.new_code = None
+ * self.breakpoints_created = set()
+ * self.breakpoints_mtime = -1 # <<<<<<<<<<<<<<
+- *
+- *
++ *
++ *
+ */
+ __pyx_v_self->breakpoints_mtime = -1;
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":72
+ * cdef class FuncCodeInfo:
+- *
++ *
+ * def __init__(self): # <<<<<<<<<<<<<<
+ * self.co_filename = ''
+ * self.real_path = ''
+@@ -3659,7 +3659,7 @@ static int
__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_12FuncCodeInfo
+ }
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pxd":93
+- *
++ *
+ * cdef class FuncCodeInfo:
+ * cdef public str co_filename # <<<<<<<<<<<<<<
+ * cdef public str real_path
+@@ -3879,7 +3879,7 @@ static int
__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_12FuncCodeInfo
+ * cdef bint always_skip_code
+ * cdef public bint breakpoint_found # <<<<<<<<<<<<<<
+ * cdef public object new_code
+- *
++ *
+ */
+
+ /* Python wrapper */
+@@ -3960,7 +3960,7 @@ static int
__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_12FuncCodeInfo
+ * cdef bint always_skip_code
+ * cdef public bint breakpoint_found
+ * cdef public object new_code # <<<<<<<<<<<<<<
+- *
++ *
+ * # Lines with the breakpoints which were actually added to this
function.
+ */
+
+@@ -4052,10 +4052,10 @@ static int
__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_12FuncCodeInfo
+ }
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pxd":100
+- *
++ *
+ * # Lines with the breakpoints which were actually added to this
function.
+ * cdef public set breakpoints_created # <<<<<<<<<<<<<<
+- *
++ *
+ * # When breakpoints_mtime != PyDb.mtime the validity of breakpoints have
+ */
+
+@@ -4163,8 +4163,8 @@ static int
__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_12FuncCodeInfo
+ * # to be re-evaluated (if invalid a new FuncCodeInfo must be created and
+ * # tracing can't be disabled for the related frames).
+ * cdef public int breakpoints_mtime # <<<<<<<<<<<<<<
+- *
+- *
++ *
++ *
+ */
+
+ /* Python wrapper */
+@@ -4586,7 +4586,7 @@ static PyObject
*__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_12FuncCo
+ }
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":90
+- *
++ *
+ * # noinspection DuplicatedCode
+ * cdef ThreadInfo get_thread_info(): # <<<<<<<<<<<<<<
+ * '''
+@@ -4709,7 +4709,7 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_ThreadInfo
+ * thread_info.inside_frame_eval += 1
+ * try: # <<<<<<<<<<<<<<
+ * _thread_local_info.thread_info = thread_info
+- *
++ *
+ */
+ /*try:*/ {
+
+@@ -4717,7 +4717,7 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_ThreadInfo
+ * thread_info.inside_frame_eval += 1
+ * try:
+ * _thread_local_info.thread_info = thread_info #
<<<<<<<<<<<<<<
+- *
++ *
+ * # Note: _code_extra_index is not actually thread-related,
+ */
+ __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_thread_local_info); if
(unlikely(!__pyx_t_7)) __PYX_ERR(0, 105, __pyx_L14_error)
+@@ -4730,7 +4730,7 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_ThreadInfo
+ * global _code_extra_index
+ * if _code_extra_index == -1: # <<<<<<<<<<<<<<
+ * _code_extra_index =
_PyEval_RequestCodeExtraIndex(release_co_extra)
+- *
++ *
+ */
+ __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_code_extra_index); if
(unlikely(!__pyx_t_7)) __PYX_ERR(0, 110, __pyx_L14_error)
+ __Pyx_GOTREF(__pyx_t_7);
+@@ -4745,7 +4745,7 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_ThreadInfo
+ * global _code_extra_index
+ * if _code_extra_index == -1:
+ * _code_extra_index =
_PyEval_RequestCodeExtraIndex(release_co_extra) # <<<<<<<<<<<<<<
+- *
++ *
+ * thread_info.initialize_if_possible()
+ */
+ __pyx_t_8 =
__Pyx_PyInt_From_int(_PyEval_RequestCodeExtraIndex(release_co_extra)); if
(unlikely(!__pyx_t_8)) __PYX_ERR(0, 111, __pyx_L14_error)
+@@ -4758,13 +4758,13 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_ThreadInfo
+ * global _code_extra_index
+ * if _code_extra_index == -1: # <<<<<<<<<<<<<<
+ * _code_extra_index =
_PyEval_RequestCodeExtraIndex(release_co_extra)
+- *
++ *
+ */
+ }
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":113
+ * _code_extra_index =
_PyEval_RequestCodeExtraIndex(release_co_extra)
+- *
++ *
+ * thread_info.initialize_if_possible() #
<<<<<<<<<<<<<<
+ * finally:
+ * thread_info.inside_frame_eval -= 1
+@@ -4793,7 +4793,7 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_ThreadInfo
+ * thread_info.initialize_if_possible()
+ * finally:
+ * thread_info.inside_frame_eval -= 1 # <<<<<<<<<<<<<<
+- *
++ *
+ * return thread_info
+ */
+ /*finally:*/ {
+@@ -4866,10 +4866,10 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_ThreadInfo
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":117
+ * thread_info.inside_frame_eval -= 1
+- *
++ *
+ * return thread_info # <<<<<<<<<<<<<<
+- *
+- *
++ *
++ *
+ */
+ __Pyx_XDECREF(((PyObject *)__pyx_r));
+ __Pyx_INCREF(((PyObject *)__pyx_v_thread_info));
+@@ -4877,7 +4877,7 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_ThreadInfo
+ goto __pyx_L0;
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":90
+- *
++ *
+ * # noinspection DuplicatedCode
+ * cdef ThreadInfo get_thread_info(): # <<<<<<<<<<<<<<
+ * '''
+@@ -4902,8 +4902,8 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_ThreadInfo
+ }
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":120
+- *
+- *
++ *
++ *
+ * cdef clear_thread_local_info(): # <<<<<<<<<<<<<<
+ * global _thread_local_info
+ * _thread_local_info = threading.local()
+@@ -4924,8 +4924,8 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_clear_thr
+ * cdef clear_thread_local_info():
+ * global _thread_local_info
+ * _thread_local_info = threading.local() # <<<<<<<<<<<<<<
+- *
+- *
++ *
++ *
+ */
+ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_threading); if
(unlikely(!__pyx_t_2)) __PYX_ERR(0, 122, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_2);
+@@ -4951,8 +4951,8 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_clear_thr
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":120
+- *
+- *
++ *
++ *
+ * cdef clear_thread_local_info(): # <<<<<<<<<<<<<<
+ * global _thread_local_info
+ * _thread_local_info = threading.local()
+@@ -4974,7 +4974,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_clear_thr
+ }
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":126
+- *
++ *
+ * # noinspection DuplicatedCode
+ * cdef FuncCodeInfo get_func_code_info(PyCodeObject * code_obj):
# <<<<<<<<<<<<<<
+ * '''
+@@ -5024,9 +5024,9 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":141
+ * # print('get_func_code_info', f_code.co_name, f_code.co_filename)
+- *
++ *
+ * cdef object main_debugger = GlobalDebuggerHolder.global_dbg
# <<<<<<<<<<<<<<
+- *
++ *
+ * cdef void * extra
+ */
+ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_GlobalDebuggerHolder); if
(unlikely(!__pyx_t_1)) __PYX_ERR(0, 141, __pyx_L1_error)
+@@ -5038,7 +5038,7 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+ __pyx_t_2 = 0;
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":144
+- *
++ *
+ * cdef void * extra
+ * _PyCode_GetExtra(<PyObject *> code_obj, _code_extra_index, & extra)
# <<<<<<<<<<<<<<
+ * if extra is not NULL:
+@@ -5111,9 +5111,9 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":153
+ * # print('get_func_code_info: matched mtime',
f_code.co_name, f_code.co_filename)
+- *
++ *
+ * return func_code_info_obj # <<<<<<<<<<<<<<
+- *
++ *
+ * cdef str co_filename = <str> code_obj.co_filename
+ */
+ __Pyx_XDECREF(((PyObject *)__pyx_r));
+@@ -5150,10 +5150,10 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":155
+ * return func_code_info_obj
+- *
++ *
+ * cdef str co_filename = <str> code_obj.co_filename #
<<<<<<<<<<<<<<
+ * cdef str co_name = <str> code_obj.co_name
+- *
++ *
+ */
+ __pyx_t_5 = ((PyObject *)__pyx_v_code_obj->co_filename);
+ __Pyx_INCREF(__pyx_t_5);
+@@ -5161,10 +5161,10 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+ __pyx_t_5 = 0;
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":156
+- *
++ *
+ * cdef str co_filename = <str> code_obj.co_filename
+ * cdef str co_name = <str> code_obj.co_name # <<<<<<<<<<<<<<
+- *
++ *
+ * func_code_info = FuncCodeInfo()
+ */
+ __pyx_t_5 = ((PyObject *)__pyx_v_code_obj->co_name);
+@@ -5174,10 +5174,10 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":158
+ * cdef str co_name = <str> code_obj.co_name
+- *
++ *
+ * func_code_info = FuncCodeInfo() # <<<<<<<<<<<<<<
+ * func_code_info.breakpoints_mtime = main_debugger.mtime
+- *
++ *
+ */
+ __pyx_t_5 = __Pyx_PyObject_CallNoArg(((PyObject
*)__pyx_ptype_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeInfo)); if
(unlikely(!__pyx_t_5)) __PYX_ERR(0, 158, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_5);
+@@ -5185,10 +5185,10 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+ __pyx_t_5 = 0;
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":159
+- *
++ *
+ * func_code_info = FuncCodeInfo()
+ * func_code_info.breakpoints_mtime = main_debugger.mtime #
<<<<<<<<<<<<<<
+- *
++ *
+ * func_code_info.co_filename = co_filename
+ */
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger,
__pyx_n_s_mtime); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 159, __pyx_L1_error)
+@@ -5199,9 +5199,9 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":161
+ * func_code_info.breakpoints_mtime = main_debugger.mtime
+- *
++ *
+ * func_code_info.co_filename = co_filename # <<<<<<<<<<<<<<
+- *
++ *
+ * if not func_code_info.always_skip_code:
+ */
+ __Pyx_INCREF(__pyx_v_co_filename);
+@@ -5212,7 +5212,7 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":163
+ * func_code_info.co_filename = co_filename
+- *
++ *
+ * if not func_code_info.always_skip_code: # <<<<<<<<<<<<<<
+ * try:
+ * abs_path_real_path_and_base =
NORM_PATHS_AND_BASE_CONTAINER[co_filename]
+@@ -5221,7 +5221,7 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+ if (__pyx_t_4) {
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":164
+- *
++ *
+ * if not func_code_info.always_skip_code:
+ * try: # <<<<<<<<<<<<<<
+ * abs_path_real_path_and_base =
NORM_PATHS_AND_BASE_CONTAINER[co_filename]
+@@ -5252,7 +5252,7 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+ __pyx_t_1 = 0;
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":164
+- *
++ *
+ * if not func_code_info.always_skip_code:
+ * try: # <<<<<<<<<<<<<<
+ * abs_path_real_path_and_base =
NORM_PATHS_AND_BASE_CONTAINER[co_filename]
+@@ -5273,7 +5273,7 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+ * abs_path_real_path_and_base =
NORM_PATHS_AND_BASE_CONTAINER[co_filename]
+ * except: # <<<<<<<<<<<<<<
+ * abs_path_real_path_and_base =
get_abs_path_real_path_and_base_from_file(co_filename)
+- *
++ *
+ */
+ /*except:*/ {
+
__Pyx_AddTraceback("_pydevd_frame_eval.pydevd_frame_evaluator.get_func_code_info",
__pyx_clineno, __pyx_lineno, __pyx_filename);
+@@ -5286,7 +5286,7 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+ * abs_path_real_path_and_base =
NORM_PATHS_AND_BASE_CONTAINER[co_filename]
+ * except:
+ * abs_path_real_path_and_base =
get_abs_path_real_path_and_base_from_file(co_filename) #
<<<<<<<<<<<<<<
+- *
++ *
+ * func_code_info.real_path = abs_path_real_path_and_base[1]
+ */
+ __Pyx_GetModuleGlobalName(__pyx_t_11,
__pyx_n_s_get_abs_path_real_path_and_base); if (unlikely(!__pyx_t_11))
__PYX_ERR(0, 167, __pyx_L9_except_error)
+@@ -5316,7 +5316,7 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+ __pyx_L9_except_error:;
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":164
+- *
++ *
+ * if not func_code_info.always_skip_code:
+ * try: # <<<<<<<<<<<<<<
+ * abs_path_real_path_and_base =
NORM_PATHS_AND_BASE_CONTAINER[co_filename]
+@@ -5337,9 +5337,9 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":169
+ * abs_path_real_path_and_base =
get_abs_path_real_path_and_base_from_file(co_filename)
+- *
++ *
+ * func_code_info.real_path = abs_path_real_path_and_base[1]
# <<<<<<<<<<<<<<
+- *
++ *
+ * file_type = get_file_type(abs_path_real_path_and_base[-1]) # we
don't want to debug anything related to pydevd
+ */
+ __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_abs_path_real_path_and_base, 1,
long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2))
__PYX_ERR(0, 169, __pyx_L1_error)
+@@ -5353,7 +5353,7 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":171
+ * func_code_info.real_path = abs_path_real_path_and_base[1]
+- *
++ *
+ * file_type = get_file_type(abs_path_real_path_and_base[-1]) # we
don't want to debug anything related to pydevd # <<<<<<<<<<<<<<
+ * if file_type is not None:
+ * func_code_info.always_skip_code = True
+@@ -5382,11 +5382,11 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+ __pyx_t_2 = 0;
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":172
+- *
++ *
+ * file_type = get_file_type(abs_path_real_path_and_base[-1]) # we
don't want to debug anything related to pydevd
+ * if file_type is not None: # <<<<<<<<<<<<<<
+ * func_code_info.always_skip_code = True
+- *
++ *
+ */
+ __pyx_t_4 = (__pyx_v_file_type != Py_None);
+ __pyx_t_13 = (__pyx_t_4 != 0);
+@@ -5396,23 +5396,23 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+ * file_type = get_file_type(abs_path_real_path_and_base[-1]) # we
don't want to debug anything related to pydevd
+ * if file_type is not None:
+ * func_code_info.always_skip_code = True #
<<<<<<<<<<<<<<
+- *
++ *
+ * if not func_code_info.always_skip_code:
+ */
+ __pyx_v_func_code_info->always_skip_code = 1;
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":172
+- *
++ *
+ * file_type = get_file_type(abs_path_real_path_and_base[-1]) # we
don't want to debug anything related to pydevd
+ * if file_type is not None: # <<<<<<<<<<<<<<
+ * func_code_info.always_skip_code = True
+- *
++ *
+ */
+ }
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":163
+ * func_code_info.co_filename = co_filename
+- *
++ *
+ * if not func_code_info.always_skip_code: # <<<<<<<<<<<<<<
+ * try:
+ * abs_path_real_path_and_base =
NORM_PATHS_AND_BASE_CONTAINER[co_filename]
+@@ -5421,7 +5421,7 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":175
+ * func_code_info.always_skip_code = True
+- *
++ *
+ * if not func_code_info.always_skip_code: # <<<<<<<<<<<<<<
+ * was_break: bool = False
+ * if main_debugger is not None:
+@@ -5430,7 +5430,7 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+ if (__pyx_t_13) {
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":176
+- *
++ *
+ * if not func_code_info.always_skip_code:
+ * was_break: bool = False # <<<<<<<<<<<<<<
+ * if main_debugger is not None:
+@@ -5579,11 +5579,11 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+ }
+ #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
+ if (likely(PyTuple_CheckExact(sequence))) {
+- __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0);
+- __pyx_t_10 = PyTuple_GET_ITEM(sequence, 1);
++ __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0);
++ __pyx_t_10 = PyTuple_GET_ITEM(sequence, 1);
+ } else {
+- __pyx_t_1 = PyList_GET_ITEM(sequence, 0);
+- __pyx_t_10 = PyList_GET_ITEM(sequence, 1);
++ __pyx_t_1 = PyList_GET_ITEM(sequence, 0);
++ __pyx_t_10 = PyList_GET_ITEM(sequence, 1);
+ }
+ __Pyx_INCREF(__pyx_t_1);
+ __Pyx_INCREF(__pyx_t_10);
+@@ -5656,7 +5656,7 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+ * # print('created breakpoint',
code_obj_py.co_name, line)
+ * func_code_info.breakpoints_created.add(line)
# <<<<<<<<<<<<<<
+ * func_code_info.breakpoint_found = True
+- *
++ *
+ */
+ if (unlikely(__pyx_v_func_code_info->breakpoints_created ==
Py_None)) {
+ PyErr_Format(PyExc_AttributeError, "'NoneType' object has no
attribute '%.30s'", "add");
+@@ -5668,26 +5668,26 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+ * # print('created breakpoint',
code_obj_py.co_name, line)
+ * func_code_info.breakpoints_created.add(line)
+ * func_code_info.breakpoint_found = True
# <<<<<<<<<<<<<<
+- *
++ *
+ * success, new_code = insert_code(
+ */
+ __pyx_v_func_code_info->breakpoint_found = 1;
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":195
+ * func_code_info.breakpoint_found = True
+- *
++ *
+ * success, new_code = insert_code( #
<<<<<<<<<<<<<<
+ * code_obj_py,
create_pydev_trace_code_wrapper(line), line)
+- *
++ *
+ */
+ __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_insert_code); if
(unlikely(!__pyx_t_10)) __PYX_ERR(0, 195, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_10);
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":196
+- *
++ *
+ * success, new_code = insert_code(
+ * code_obj_py,
create_pydev_trace_code_wrapper(line), line) # <<<<<<<<<<<<<<
+- *
++ *
+ * if success:
+ */
+ __Pyx_GetModuleGlobalName(__pyx_t_11,
__pyx_n_s_create_pydev_trace_code_wrapper); if (unlikely(!__pyx_t_11))
__PYX_ERR(0, 196, __pyx_L1_error)
+@@ -5767,11 +5767,11 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+ }
+ #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
+ if (likely(PyTuple_CheckExact(sequence))) {
+- __pyx_t_10 = PyTuple_GET_ITEM(sequence, 0);
+- __pyx_t_12 = PyTuple_GET_ITEM(sequence, 1);
++ __pyx_t_10 = PyTuple_GET_ITEM(sequence, 0);
++ __pyx_t_12 = PyTuple_GET_ITEM(sequence, 1);
+ } else {
+- __pyx_t_10 = PyList_GET_ITEM(sequence, 0);
+- __pyx_t_12 = PyList_GET_ITEM(sequence, 1);
++ __pyx_t_10 = PyList_GET_ITEM(sequence, 0);
++ __pyx_t_12 = PyList_GET_ITEM(sequence, 1);
+ }
+ __Pyx_INCREF(__pyx_t_10);
+ __Pyx_INCREF(__pyx_t_12);
+@@ -5806,10 +5806,10 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":195
+ * func_code_info.breakpoint_found = True
+- *
++ *
+ * success, new_code = insert_code( #
<<<<<<<<<<<<<<
+ * code_obj_py,
create_pydev_trace_code_wrapper(line), line)
+- *
++ *
+ */
+ __Pyx_XDECREF_SET(__pyx_v_success, __pyx_t_10);
+ __pyx_t_10 = 0;
+@@ -5818,7 +5818,7 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":198
+ * code_obj_py,
create_pydev_trace_code_wrapper(line), line)
+- *
++ *
+ * if success: # <<<<<<<<<<<<<<
+ * func_code_info.new_code = new_code
+ * code_obj_py = new_code
+@@ -5827,7 +5827,7 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+ if (__pyx_t_13) {
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":199
+- *
++ *
+ * if success:
+ * func_code_info.new_code = new_code
# <<<<<<<<<<<<<<
+ * code_obj_py = new_code
+@@ -5851,7 +5851,7 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":198
+ * code_obj_py,
create_pydev_trace_code_wrapper(line), line)
+- *
++ *
+ * if success: # <<<<<<<<<<<<<<
+ * func_code_info.new_code = new_code
+ * code_obj_py = new_code
+@@ -5864,7 +5864,7 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+ * else:
+ * func_code_info.new_code = None #
<<<<<<<<<<<<<<
+ * break
+- *
++ *
+ */
+ /*else*/ {
+ __Pyx_INCREF(Py_None);
+@@ -5877,7 +5877,7 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+ * else:
+ * func_code_info.new_code = None
+ * break # <<<<<<<<<<<<<<
+- *
++ *
+ * Py_INCREF(func_code_info)
+ */
+ goto __pyx_L20_break;
+@@ -5924,7 +5924,7 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":175
+ * func_code_info.always_skip_code = True
+- *
++ *
+ * if not func_code_info.always_skip_code: # <<<<<<<<<<<<<<
+ * was_break: bool = False
+ * if main_debugger is not None:
+@@ -5933,18 +5933,18 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":205
+ * break
+- *
++ *
+ * Py_INCREF(func_code_info) # <<<<<<<<<<<<<<
+ * _PyCode_SetExtra(<PyObject *> code_obj, _code_extra_index, <PyObject
*> func_code_info)
+- *
++ *
+ */
+ Py_INCREF(((PyObject *)__pyx_v_func_code_info));
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":206
+- *
++ *
+ * Py_INCREF(func_code_info)
+ * _PyCode_SetExtra(<PyObject *> code_obj, _code_extra_index, <PyObject
*> func_code_info) # <<<<<<<<<<<<<<
+- *
++ *
+ * return func_code_info
+ */
+ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_code_extra_index); if
(unlikely(!__pyx_t_5)) __PYX_ERR(0, 206, __pyx_L1_error)
+@@ -5955,10 +5955,10 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":208
+ * _PyCode_SetExtra(<PyObject *> code_obj, _code_extra_index, <PyObject
*> func_code_info)
+- *
++ *
+ * return func_code_info # <<<<<<<<<<<<<<
+- *
+- *
++ *
++ *
+ */
+ __Pyx_XDECREF(((PyObject *)__pyx_r));
+ __Pyx_INCREF(((PyObject *)__pyx_v_func_code_info));
+@@ -5966,7 +5966,7 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+ goto __pyx_L0;
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":126
+- *
++ *
+ * # noinspection DuplicatedCode
+ * cdef FuncCodeInfo get_func_code_info(PyCodeObject * code_obj):
# <<<<<<<<<<<<<<
+ * '''
+@@ -6004,11 +6004,11 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+ }
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":211
+- *
+- *
++ *
++ *
+ * def get_thread_info_py() -> ThreadInfo: # <<<<<<<<<<<<<<
+ * return get_thread_info()
+- *
++ *
+ */
+
+ /* Python wrapper */
+@@ -6035,11 +6035,11 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_ThreadInfo
+ __Pyx_RefNannySetupContext("get_thread_info_py", 0);
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":212
+- *
++ *
+ * def get_thread_info_py() -> ThreadInfo:
+ * return get_thread_info() # <<<<<<<<<<<<<<
+- *
+- *
++ *
++ *
+ */
+ __Pyx_XDECREF(((PyObject *)__pyx_r));
+ __pyx_t_1 = ((PyObject
*)__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_thread_info()); if
(unlikely(!__pyx_t_1)) __PYX_ERR(0, 212, __pyx_L1_error)
+@@ -6049,11 +6049,11 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_ThreadInfo
+ goto __pyx_L0;
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":211
+- *
+- *
++ *
++ *
+ * def get_thread_info_py() -> ThreadInfo: # <<<<<<<<<<<<<<
+ * return get_thread_info()
+- *
++ *
+ */
+
+ /* function exit code */
+@@ -6068,11 +6068,11 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_ThreadInfo
+ }
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":215
+- *
+- *
++ *
++ *
+ * def clear_thread_local_info_py(): # <<<<<<<<<<<<<<
+ * clear_thread_local_info()
+- *
++ *
+ */
+
+ /* Python wrapper */
+@@ -6099,22 +6099,22 @@ static PyObject
*__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_2clear_t
+ __Pyx_RefNannySetupContext("clear_thread_local_info_py", 0);
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":216
+- *
++ *
+ * def clear_thread_local_info_py():
+ * clear_thread_local_info() # <<<<<<<<<<<<<<
+- *
+- *
++ *
++ *
+ */
+ __pyx_t_1 =
__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_clear_thread_local_info();
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 216, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_1);
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":215
+- *
+- *
++ *
++ *
+ * def clear_thread_local_info_py(): # <<<<<<<<<<<<<<
+ * clear_thread_local_info()
+- *
++ *
+ */
+
+ /* function exit code */
+@@ -6131,8 +6131,8 @@ static PyObject
*__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_2clear_t
+ }
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":219
+- *
+- *
++ *
++ *
+ * def dummy_trace_dispatch(frame, str event, arg): #
<<<<<<<<<<<<<<
+ * if event == 'call':
+ * if frame.f_trace is not None:
+@@ -6235,7 +6235,7 @@ static PyObject
*__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_4dummy_t
+ __Pyx_RefNannySetupContext("dummy_trace_dispatch", 0);
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":220
+- *
++ *
+ * def dummy_trace_dispatch(frame, str event, arg):
+ * if event == 'call': # <<<<<<<<<<<<<<
+ * if frame.f_trace is not None:
+@@ -6264,7 +6264,7 @@ static PyObject
*__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_4dummy_t
+ * if frame.f_trace is not None:
+ * return frame.f_trace(frame, event, arg) #
<<<<<<<<<<<<<<
+ * return None
+- *
++ *
+ */
+ __Pyx_XDECREF(__pyx_r);
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame,
__pyx_n_s_f_trace); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 222, __pyx_L1_error)
+@@ -6331,7 +6331,7 @@ static PyObject
*__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_4dummy_t
+ }
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":220
+- *
++ *
+ * def dummy_trace_dispatch(frame, str event, arg):
+ * if event == 'call': # <<<<<<<<<<<<<<
+ * if frame.f_trace is not None:
+@@ -6343,16 +6343,16 @@ static PyObject
*__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_4dummy_t
+ * if frame.f_trace is not None:
+ * return frame.f_trace(frame, event, arg)
+ * return None # <<<<<<<<<<<<<<
+- *
+- *
++ *
++ *
+ */
+ __Pyx_XDECREF(__pyx_r);
+ __pyx_r = Py_None; __Pyx_INCREF(Py_None);
+ goto __pyx_L0;
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":219
+- *
+- *
++ *
++ *
+ * def dummy_trace_dispatch(frame, str event, arg): #
<<<<<<<<<<<<<<
+ * if event == 'call':
+ * if frame.f_trace is not None:
+@@ -6373,8 +6373,8 @@ static PyObject
*__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_4dummy_t
+ }
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":226
+- *
+- *
++ *
++ *
+ * def decref_py(obj): # <<<<<<<<<<<<<<
+ * '''
+ * Helper to be called from Python.
+@@ -6404,14 +6404,14 @@ static PyObject
*__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_6decref_
+ * Helper to be called from Python.
+ * '''
+ * Py_DECREF(obj) # <<<<<<<<<<<<<<
+- *
+- *
++ *
++ *
+ */
+ Py_DECREF(__pyx_v_obj);
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":226
+- *
+- *
++ *
++ *
+ * def decref_py(obj): # <<<<<<<<<<<<<<
+ * '''
+ * Helper to be called from Python.
+@@ -6425,8 +6425,8 @@ static PyObject
*__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_6decref_
+ }
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":233
+- *
+- *
++ *
++ *
+ * def get_func_code_info_py(code_obj) -> FuncCodeInfo: #
<<<<<<<<<<<<<<
+ * '''
+ * Helper to be called from Python.
+@@ -6460,8 +6460,8 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+ * Helper to be called from Python.
+ * '''
+ * return get_func_code_info(<PyCodeObject *> code_obj) #
<<<<<<<<<<<<<<
+- *
+- *
++ *
++ *
+ */
+ __Pyx_XDECREF(((PyObject *)__pyx_r));
+ __pyx_t_1 = ((PyObject
*)__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_func_code_info(((PyCodeObject
*)__pyx_v_code_obj))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 237,
__pyx_L1_error)
+@@ -6471,8 +6471,8 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+ goto __pyx_L0;
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":233
+- *
+- *
++ *
++ *
+ * def get_func_code_info_py(code_obj) -> FuncCodeInfo: #
<<<<<<<<<<<<<<
+ * '''
+ * Helper to be called from Python.
+@@ -6490,7 +6490,7 @@ static struct
__pyx_obj_18_pydevd_frame_eval_22pydevd_frame_evaluator_FuncCodeIn
+ }
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":241
+- *
++ *
+ * # noinspection DuplicatedCode
+ * cdef PyObject * get_bytecode_while_frame_eval(PyFrameObject * frame_obj,
int exc): # <<<<<<<<<<<<<<
+ * '''
+@@ -6573,7 +6573,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ * if GlobalDebuggerHolder is None or _thread_local_info is None or exc:
+ * # Sometimes during process shutdown these global variables become
None
+ * return _PyEval_EvalFrameDefault(frame_obj, exc) #
<<<<<<<<<<<<<<
+- *
++ *
+ * # co_filename: str = <str>frame_obj.f_code.co_filename
+ */
+ __pyx_r = _PyEval_EvalFrameDefault(__pyx_v_frame_obj, __pyx_v_exc);
+@@ -6589,7 +6589,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ }
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":255
+- *
++ *
+ * cdef ThreadInfo thread_info
+ * cdef int STATE_SUSPEND = 2 # <<<<<<<<<<<<<<
+ * cdef int CMD_STEP_INTO = 107
+@@ -6721,7 +6721,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ * thread_info = get_thread_info()
+ * if thread_info is None: # <<<<<<<<<<<<<<
+ * return _PyEval_EvalFrameDefault(frame_obj, exc)
+- *
++ *
+ */
+ __pyx_t_1 = (((PyObject *)__pyx_v_thread_info) == Py_None);
+ __pyx_t_3 = (__pyx_t_1 != 0);
+@@ -6731,7 +6731,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ * thread_info = get_thread_info()
+ * if thread_info is None:
+ * return _PyEval_EvalFrameDefault(frame_obj, exc) #
<<<<<<<<<<<<<<
+- *
++ *
+ * if thread_info.inside_frame_eval:
+ */
+ __pyx_r = _PyEval_EvalFrameDefault(__pyx_v_frame_obj, __pyx_v_exc);
+@@ -6745,7 +6745,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ * thread_info = get_thread_info()
+ * if thread_info is None: # <<<<<<<<<<<<<<
+ * return _PyEval_EvalFrameDefault(frame_obj, exc)
+- *
++ *
+ */
+ }
+ __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
+@@ -6783,19 +6783,19 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":268
+ * return _PyEval_EvalFrameDefault(frame_obj, exc)
+- *
++ *
+ * if thread_info.inside_frame_eval: # <<<<<<<<<<<<<<
+ * return _PyEval_EvalFrameDefault(frame_obj, exc)
+- *
++ *
+ */
+ __pyx_t_3 = (__pyx_v_thread_info->inside_frame_eval != 0);
+ if (__pyx_t_3) {
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":269
+- *
++ *
+ * if thread_info.inside_frame_eval:
+ * return _PyEval_EvalFrameDefault(frame_obj, exc) #
<<<<<<<<<<<<<<
+- *
++ *
+ * if not thread_info.fully_initialized:
+ */
+ __pyx_r = _PyEval_EvalFrameDefault(__pyx_v_frame_obj, __pyx_v_exc);
+@@ -6803,16 +6803,16 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":268
+ * return _PyEval_EvalFrameDefault(frame_obj, exc)
+- *
++ *
+ * if thread_info.inside_frame_eval: # <<<<<<<<<<<<<<
+ * return _PyEval_EvalFrameDefault(frame_obj, exc)
+- *
++ *
+ */
+ }
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":271
+ * return _PyEval_EvalFrameDefault(frame_obj, exc)
+- *
++ *
+ * if not thread_info.fully_initialized: # <<<<<<<<<<<<<<
+ * thread_info.initialize_if_possible()
+ * if not thread_info.fully_initialized:
+@@ -6821,7 +6821,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ if (__pyx_t_3) {
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":272
+- *
++ *
+ * if not thread_info.fully_initialized:
+ * thread_info.initialize_if_possible() # <<<<<<<<<<<<<<
+ * if not thread_info.fully_initialized:
+@@ -6851,7 +6851,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ * thread_info.initialize_if_possible()
+ * if not thread_info.fully_initialized: # <<<<<<<<<<<<<<
+ * return _PyEval_EvalFrameDefault(frame_obj, exc)
+- *
++ *
+ */
+ __pyx_t_3 = ((!(__pyx_v_thread_info->fully_initialized != 0)) != 0);
+ if (__pyx_t_3) {
+@@ -6860,7 +6860,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ * thread_info.initialize_if_possible()
+ * if not thread_info.fully_initialized:
+ * return _PyEval_EvalFrameDefault(frame_obj, exc) #
<<<<<<<<<<<<<<
+- *
++ *
+ * # Can only get additional_info when fully initialized.
+ */
+ __pyx_r = _PyEval_EvalFrameDefault(__pyx_v_frame_obj, __pyx_v_exc);
+@@ -6871,13 +6871,13 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ * thread_info.initialize_if_possible()
+ * if not thread_info.fully_initialized: # <<<<<<<<<<<<<<
+ * return _PyEval_EvalFrameDefault(frame_obj, exc)
+- *
++ *
+ */
+ }
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":271
+ * return _PyEval_EvalFrameDefault(frame_obj, exc)
+- *
++ *
+ * if not thread_info.fully_initialized: # <<<<<<<<<<<<<<
+ * thread_info.initialize_if_possible()
+ * if not thread_info.fully_initialized:
+@@ -6885,7 +6885,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ }
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":277
+- *
++ *
+ * # Can only get additional_info when fully initialized.
+ * cdef PyDBAdditionalThreadInfo additional_info =
thread_info.additional_info # <<<<<<<<<<<<<<
+ * if thread_info.is_pydevd_thread or additional_info.is_tracing:
+@@ -6918,7 +6918,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ * if thread_info.is_pydevd_thread or additional_info.is_tracing:
+ * # Make sure that we don't trace pydevd threads or inside our own
calls.
+ * return _PyEval_EvalFrameDefault(frame_obj, exc) #
<<<<<<<<<<<<<<
+- *
++ *
+ * # frame = <object> frame_obj
+ */
+ __pyx_r = _PyEval_EvalFrameDefault(__pyx_v_frame_obj, __pyx_v_exc);
+@@ -6935,7 +6935,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":287
+ * # print('get_bytecode_while_frame_eval', frame.f_lineno,
frame.f_code.co_name, frame.f_code.co_filename)
+- *
++ *
+ * thread_info.inside_frame_eval += 1 # <<<<<<<<<<<<<<
+ * additional_info.is_tracing = True
+ * try:
+@@ -6943,7 +6943,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ __pyx_v_thread_info->inside_frame_eval =
(__pyx_v_thread_info->inside_frame_eval + 1);
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":288
+- *
++ *
+ * thread_info.inside_frame_eval += 1
+ * additional_info.is_tracing = True # <<<<<<<<<<<<<<
+ * try:
+@@ -6956,7 +6956,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ * additional_info.is_tracing = True
+ * try: # <<<<<<<<<<<<<<
+ * main_debugger: object = GlobalDebuggerHolder.global_dbg
+- *
++ *
+ */
+ /*try:*/ {
+
+@@ -6964,7 +6964,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ * additional_info.is_tracing = True
+ * try:
+ * main_debugger: object = GlobalDebuggerHolder.global_dbg
# <<<<<<<<<<<<<<
+- *
++ *
+ * if main_debugger is None or \
+ */
+ __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_GlobalDebuggerHolder); if
(unlikely(!__pyx_t_9)) __PYX_ERR(0, 290, __pyx_L23_error)
+@@ -6977,7 +6977,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":292
+ * main_debugger: object = GlobalDebuggerHolder.global_dbg
+- *
++ *
+ * if main_debugger is None or \ # <<<<<<<<<<<<<<
+ * not hasattr(main_debugger, "break_on_caught_exceptions")
or \
+ * not hasattr(main_debugger, "has_plugin_exception_breaks")
or \
+@@ -6991,7 +6991,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ }
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":293
+- *
++ *
+ * if main_debugger is None or \
+ * not hasattr(main_debugger, "break_on_caught_exceptions")
or \ # <<<<<<<<<<<<<<
+ * not hasattr(main_debugger, "has_plugin_exception_breaks")
or \
+@@ -7049,7 +7049,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":292
+ * main_debugger: object = GlobalDebuggerHolder.global_dbg
+- *
++ *
+ * if main_debugger is None or \ # <<<<<<<<<<<<<<
+ * not hasattr(main_debugger, "break_on_caught_exceptions")
or \
+ * not hasattr(main_debugger, "has_plugin_exception_breaks")
or \
+@@ -7061,14 +7061,14 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ * # Debugger isn't fully initialized here yet
+ * return _PyEval_EvalFrameDefault(frame_obj, exc) #
<<<<<<<<<<<<<<
+ * frame = <object> frame_obj
+- *
++ *
+ */
+ __pyx_r = _PyEval_EvalFrameDefault(__pyx_v_frame_obj, __pyx_v_exc);
+ goto __pyx_L22_return;
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":292
+ * main_debugger: object = GlobalDebuggerHolder.global_dbg
+- *
++ *
+ * if main_debugger is None or \ # <<<<<<<<<<<<<<
+ * not hasattr(main_debugger, "break_on_caught_exceptions")
or \
+ * not hasattr(main_debugger, "has_plugin_exception_breaks")
or \
+@@ -7079,7 +7079,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ * # Debugger isn't fully initialized here yet
+ * return _PyEval_EvalFrameDefault(frame_obj, exc)
+ * frame = <object> frame_obj # <<<<<<<<<<<<<<
+- *
++ *
+ * if thread_info.thread_trace_func is None:
+ */
+ __pyx_t_2 = ((PyObject *)__pyx_v_frame_obj);
+@@ -7089,7 +7089,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":301
+ * frame = <object> frame_obj
+- *
++ *
+ * if thread_info.thread_trace_func is None: #
<<<<<<<<<<<<<<
+ * trace_func, apply_to_global =
fix_top_level_trace_and_get_trace_func(main_debugger, frame)
+ * if apply_to_global:
+@@ -7099,7 +7099,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ if (__pyx_t_4) {
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":302
+- *
++ *
+ * if thread_info.thread_trace_func is None:
+ * trace_func, apply_to_global =
fix_top_level_trace_and_get_trace_func(main_debugger, frame) #
<<<<<<<<<<<<<<
+ * if apply_to_global:
+@@ -7162,11 +7162,11 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ }
+ #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
+ if (likely(PyTuple_CheckExact(sequence))) {
+- __pyx_t_9 = PyTuple_GET_ITEM(sequence, 0);
+- __pyx_t_10 = PyTuple_GET_ITEM(sequence, 1);
++ __pyx_t_9 = PyTuple_GET_ITEM(sequence, 0);
++ __pyx_t_10 = PyTuple_GET_ITEM(sequence, 1);
+ } else {
+- __pyx_t_9 = PyList_GET_ITEM(sequence, 0);
+- __pyx_t_10 = PyList_GET_ITEM(sequence, 1);
++ __pyx_t_9 = PyList_GET_ITEM(sequence, 0);
++ __pyx_t_10 = PyList_GET_ITEM(sequence, 1);
+ }
+ __Pyx_INCREF(__pyx_t_9);
+ __Pyx_INCREF(__pyx_t_10);
+@@ -7208,7 +7208,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ * trace_func, apply_to_global =
fix_top_level_trace_and_get_trace_func(main_debugger, frame)
+ * if apply_to_global: # <<<<<<<<<<<<<<
+ * thread_info.thread_trace_func = trace_func #
ThreadTracer.__call__
+- *
++ *
+ */
+ __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_apply_to_global); if
(unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 303, __pyx_L23_error)
+ if (__pyx_t_4) {
+@@ -7217,7 +7217,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ * trace_func, apply_to_global =
fix_top_level_trace_and_get_trace_func(main_debugger, frame)
+ * if apply_to_global:
+ * thread_info.thread_trace_func = trace_func #
ThreadTracer.__call__ # <<<<<<<<<<<<<<
+- *
++ *
+ * if additional_info.pydev_step_cmd in (CMD_STEP_INTO,
CMD_STEP_INTO_MY_CODE, CMD_SMART_STEP_INTO) or \
+ */
+ __Pyx_INCREF(__pyx_v_trace_func);
+@@ -7231,13 +7231,13 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ * trace_func, apply_to_global =
fix_top_level_trace_and_get_trace_func(main_debugger, frame)
+ * if apply_to_global: # <<<<<<<<<<<<<<
+ * thread_info.thread_trace_func = trace_func #
ThreadTracer.__call__
+- *
++ *
+ */
+ }
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":301
+ * frame = <object> frame_obj
+- *
++ *
+ * if thread_info.thread_trace_func is None: #
<<<<<<<<<<<<<<
+ * trace_func, apply_to_global =
fix_top_level_trace_and_get_trace_func(main_debugger, frame)
+ * if apply_to_global:
+@@ -7246,7 +7246,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":306
+ * thread_info.thread_trace_func = trace_func #
ThreadTracer.__call__
+- *
++ *
+ * if additional_info.pydev_step_cmd in (CMD_STEP_INTO,
CMD_STEP_INTO_MY_CODE, CMD_SMART_STEP_INTO) or \ # <<<<<<<<<<<<<<
+ * main_debugger.break_on_caught_exceptions or \
+ * main_debugger.has_plugin_exception_breaks or \
+@@ -7275,7 +7275,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ }
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":307
+- *
++ *
+ * if additional_info.pydev_step_cmd in (CMD_STEP_INTO,
CMD_STEP_INTO_MY_CODE, CMD_SMART_STEP_INTO) or \
+ * main_debugger.break_on_caught_exceptions or \
# <<<<<<<<<<<<<<
+ * main_debugger.has_plugin_exception_breaks or \
+@@ -7313,7 +7313,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ * main_debugger.has_plugin_exception_breaks or \
+ * main_debugger.signature_factory or \ #
<<<<<<<<<<<<<<
+ * additional_info.pydev_step_cmd == CMD_STEP_OVER and
main_debugger.show_return_values and frame.f_back is
additional_info.pydev_step_stop:
+- *
++ *
+ */
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger,
__pyx_n_s_signature_factory); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 309,
__pyx_L23_error)
+ __Pyx_GOTREF(__pyx_t_2);
+@@ -7329,7 +7329,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ * main_debugger.has_plugin_exception_breaks or \
+ * main_debugger.signature_factory or \
+ * additional_info.pydev_step_cmd == CMD_STEP_OVER and
main_debugger.show_return_values and frame.f_back is
additional_info.pydev_step_stop: # <<<<<<<<<<<<<<
+- *
++ *
+ * if thread_info.thread_trace_func is not None:
+ */
+ __pyx_t_1 = ((__pyx_v_additional_info->pydev_step_cmd ==
__pyx_v_CMD_STEP_OVER) != 0);
+@@ -7357,7 +7357,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":306
+ * thread_info.thread_trace_func = trace_func #
ThreadTracer.__call__
+- *
++ *
+ * if additional_info.pydev_step_cmd in (CMD_STEP_INTO,
CMD_STEP_INTO_MY_CODE, CMD_SMART_STEP_INTO) or \ # <<<<<<<<<<<<<<
+ * main_debugger.break_on_caught_exceptions or \
+ * main_debugger.has_plugin_exception_breaks or \
+@@ -7366,7 +7366,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":312
+ * additional_info.pydev_step_cmd == CMD_STEP_OVER and
main_debugger.show_return_values and frame.f_back is
additional_info.pydev_step_stop:
+- *
++ *
+ * if thread_info.thread_trace_func is not None: #
<<<<<<<<<<<<<<
+ * frame.f_trace = thread_info.thread_trace_func
+ * else:
+@@ -7376,7 +7376,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ if (__pyx_t_3) {
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":313
+- *
++ *
+ * if thread_info.thread_trace_func is not None:
+ * frame.f_trace = thread_info.thread_trace_func
# <<<<<<<<<<<<<<
+ * else:
+@@ -7389,7 +7389,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":312
+ * additional_info.pydev_step_cmd == CMD_STEP_OVER and
main_debugger.show_return_values and frame.f_back is
additional_info.pydev_step_stop:
+- *
++ *
+ * if thread_info.thread_trace_func is not None: #
<<<<<<<<<<<<<<
+ * frame.f_trace = thread_info.thread_trace_func
+ * else:
+@@ -7417,7 +7417,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":306
+ * thread_info.thread_trace_func = trace_func #
ThreadTracer.__call__
+- *
++ *
+ * if additional_info.pydev_step_cmd in (CMD_STEP_INTO,
CMD_STEP_INTO_MY_CODE, CMD_SMART_STEP_INTO) or \ # <<<<<<<<<<<<<<
+ * main_debugger.break_on_caught_exceptions or \
+ * main_debugger.has_plugin_exception_breaks or \
+@@ -7442,7 +7442,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ * # if DEBUG:
+ * # print('get_bytecode_while_frame_eval always skip',
func_code_info.always_skip_code)
+ * if not func_code_info.always_skip_code: #
<<<<<<<<<<<<<<
+- *
++ *
+ * if main_debugger.has_plugin_line_breaks:
+ */
+ __pyx_t_3 = ((!(__pyx_v_func_code_info->always_skip_code != 0)) != 0);
+@@ -7450,10 +7450,10 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":322
+ * if not func_code_info.always_skip_code:
+- *
++ *
+ * if main_debugger.has_plugin_line_breaks: #
<<<<<<<<<<<<<<
+ * can_skip = not
main_debugger.plugin.can_not_skip(main_debugger, None, <object> frame_obj, None)
+- *
++ *
+ */
+ __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger,
__pyx_n_s_has_plugin_line_breaks); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 322,
__pyx_L23_error)
+ __Pyx_GOTREF(__pyx_t_10);
+@@ -7462,10 +7462,10 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ if (__pyx_t_3) {
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":323
+- *
++ *
+ * if main_debugger.has_plugin_line_breaks:
+ * can_skip = not
main_debugger.plugin.can_not_skip(main_debugger, None, <object> frame_obj,
None) # <<<<<<<<<<<<<<
+- *
++ *
+ * if not can_skip:
+ */
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger,
__pyx_n_s_plugin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 323, __pyx_L23_error)
+@@ -7530,7 +7530,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":325
+ * can_skip = not
main_debugger.plugin.can_not_skip(main_debugger, None, <object> frame_obj, None)
+- *
++ *
+ * if not can_skip: # <<<<<<<<<<<<<<
+ * # if DEBUG:
+ * # print('get_bytecode_while_frame_eval not
can_skip')
+@@ -7575,7 +7575,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ * frame.f_trace = thread_info.thread_trace_func
+ * else:
+ * frame.f_trace = <object>
main_debugger.trace_dispatch # <<<<<<<<<<<<<<
+- *
++ *
+ * if (can_skip and func_code_info.breakpoint_found) or
main_debugger.stop_on_failed_tests:
+ */
+ /*else*/ {
+@@ -7591,7 +7591,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":325
+ * can_skip = not
main_debugger.plugin.can_not_skip(main_debugger, None, <object> frame_obj, None)
+- *
++ *
+ * if not can_skip: # <<<<<<<<<<<<<<
+ * # if DEBUG:
+ * # print('get_bytecode_while_frame_eval not
can_skip')
+@@ -7600,16 +7600,16 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":322
+ * if not func_code_info.always_skip_code:
+- *
++ *
+ * if main_debugger.has_plugin_line_breaks: #
<<<<<<<<<<<<<<
+ * can_skip = not
main_debugger.plugin.can_not_skip(main_debugger, None, <object> frame_obj, None)
+- *
++ *
+ */
+ }
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":333
+ * frame.f_trace = <object>
main_debugger.trace_dispatch
+- *
++ *
+ * if (can_skip and func_code_info.breakpoint_found) or
main_debugger.stop_on_failed_tests: # <<<<<<<<<<<<<<
+ * # if DEBUG:
+ * # print('get_bytecode_while_frame_eval new_code',
func_code_info.new_code)
+@@ -7762,7 +7762,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ * old = <object> frame_obj.f_code
+ * frame_obj.f_code = <PyCodeObject *>
func_code_info.new_code # <<<<<<<<<<<<<<
+ * Py_DECREF(old)
+- *
++ *
+ */
+ __pyx_v_frame_obj->f_code = ((PyCodeObject
*)__pyx_v_func_code_info->new_code);
+
+@@ -7770,7 +7770,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ * old = <object> frame_obj.f_code
+ * frame_obj.f_code = <PyCodeObject *>
func_code_info.new_code
+ * Py_DECREF(old) # <<<<<<<<<<<<<<
+- *
++ *
+ * finally:
+ */
+ Py_DECREF(__pyx_v_old);
+@@ -7779,7 +7779,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":333
+ * frame.f_trace = <object>
main_debugger.trace_dispatch
+- *
++ *
+ * if (can_skip and func_code_info.breakpoint_found) or
main_debugger.stop_on_failed_tests: # <<<<<<<<<<<<<<
+ * # if DEBUG:
+ * # print('get_bytecode_while_frame_eval new_code',
func_code_info.new_code)
+@@ -7790,7 +7790,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ * # if DEBUG:
+ * # print('get_bytecode_while_frame_eval always skip',
func_code_info.always_skip_code)
+ * if not func_code_info.always_skip_code: #
<<<<<<<<<<<<<<
+- *
++ *
+ * if main_debugger.has_plugin_line_breaks:
+ */
+ }
+@@ -7799,11 +7799,11 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ }
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":354
+- *
++ *
+ * finally:
+ * thread_info.inside_frame_eval -= 1 # <<<<<<<<<<<<<<
+ * additional_info.is_tracing = False
+- *
++ *
+ */
+ /*finally:*/ {
+ /*normal exit:*/{
+@@ -7813,7 +7813,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ * finally:
+ * thread_info.inside_frame_eval -= 1
+ * additional_info.is_tracing = False # <<<<<<<<<<<<<<
+- *
++ *
+ * return _PyEval_EvalFrameDefault(frame_obj, exc)
+ */
+ __pyx_v_additional_info->is_tracing = 0;
+@@ -7840,11 +7840,11 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ {
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":354
+- *
++ *
+ * finally:
+ * thread_info.inside_frame_eval -= 1 # <<<<<<<<<<<<<<
+ * additional_info.is_tracing = False
+- *
++ *
+ */
+ __pyx_v_thread_info->inside_frame_eval =
(__pyx_v_thread_info->inside_frame_eval - 1);
+
+@@ -7852,7 +7852,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ * finally:
+ * thread_info.inside_frame_eval -= 1
+ * additional_info.is_tracing = False # <<<<<<<<<<<<<<
+- *
++ *
+ * return _PyEval_EvalFrameDefault(frame_obj, exc)
+ */
+ __pyx_v_additional_info->is_tracing = 0;
+@@ -7875,11 +7875,11 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ __pyx_t_18 = __pyx_r;
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":354
+- *
++ *
+ * finally:
+ * thread_info.inside_frame_eval -= 1 # <<<<<<<<<<<<<<
+ * additional_info.is_tracing = False
+- *
++ *
+ */
+ __pyx_v_thread_info->inside_frame_eval =
(__pyx_v_thread_info->inside_frame_eval - 1);
+
+@@ -7887,7 +7887,7 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ * finally:
+ * thread_info.inside_frame_eval -= 1
+ * additional_info.is_tracing = False # <<<<<<<<<<<<<<
+- *
++ *
+ * return _PyEval_EvalFrameDefault(frame_obj, exc)
+ */
+ __pyx_v_additional_info->is_tracing = 0;
+@@ -7899,16 +7899,16 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":357
+ * additional_info.is_tracing = False
+- *
++ *
+ * return _PyEval_EvalFrameDefault(frame_obj, exc) #
<<<<<<<<<<<<<<
+- *
+- *
++ *
++ *
+ */
+ __pyx_r = _PyEval_EvalFrameDefault(__pyx_v_frame_obj, __pyx_v_exc);
+ goto __pyx_L0;
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":241
+- *
++ *
+ * # noinspection DuplicatedCode
+ * cdef PyObject * get_bytecode_while_frame_eval(PyFrameObject * frame_obj,
int exc): # <<<<<<<<<<<<<<
+ * '''
+@@ -7937,8 +7937,8 @@ static PyObject
*__pyx_f_18_pydevd_frame_eval_22pydevd_frame_evaluator_get_bytec
+ }
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":360
+- *
+- *
++ *
++ *
+ * def frame_eval_func(): # <<<<<<<<<<<<<<
+ * cdef PyThreadState *state = PyThreadState_Get()
+ * state.interp.eval_frame = get_bytecode_while_frame_eval
+@@ -7972,7 +7972,7 @@ static PyObject
*__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_10frame_
+ __Pyx_RefNannySetupContext("frame_eval_func", 0);
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":361
+- *
++ *
+ * def frame_eval_func():
+ * cdef PyThreadState *state = PyThreadState_Get() #
<<<<<<<<<<<<<<
+ * state.interp.eval_frame = get_bytecode_while_frame_eval
+@@ -7993,8 +7993,8 @@ static PyObject
*__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_10frame_
+ * state.interp.eval_frame = get_bytecode_while_frame_eval
+ * global dummy_tracing_holder
+ * dummy_tracing_holder.set_trace_func(dummy_trace_dispatch)
# <<<<<<<<<<<<<<
+- *
+- *
++ *
++ *
+ */
+ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_dummy_tracing_holder); if
(unlikely(!__pyx_t_2)) __PYX_ERR(0, 364, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_2);
+@@ -8022,8 +8022,8 @@ static PyObject
*__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_10frame_
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":360
+- *
+- *
++ *
++ *
+ * def frame_eval_func(): # <<<<<<<<<<<<<<
+ * cdef PyThreadState *state = PyThreadState_Get()
+ * state.interp.eval_frame = get_bytecode_while_frame_eval
+@@ -8046,8 +8046,8 @@ static PyObject
*__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_10frame_
+ }
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":367
+- *
+- *
++ *
++ *
+ * def stop_frame_eval(): # <<<<<<<<<<<<<<
+ * cdef PyThreadState *state = PyThreadState_Get()
+ * state.interp.eval_frame = _PyEval_EvalFrameDefault
+@@ -8074,7 +8074,7 @@ static PyObject
*__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_12stop_f
+ __Pyx_RefNannySetupContext("stop_frame_eval", 0);
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":368
+- *
++ *
+ * def stop_frame_eval():
+ * cdef PyThreadState *state = PyThreadState_Get() #
<<<<<<<<<<<<<<
+ * state.interp.eval_frame = _PyEval_EvalFrameDefault
+@@ -8089,8 +8089,8 @@ static PyObject
*__pyx_pf_18_pydevd_frame_eval_22pydevd_frame_evaluator_12stop_f
+ __pyx_v_state->interp->eval_frame = _PyEval_EvalFrameDefault;
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":367
+- *
+- *
++ *
++ *
+ * def stop_frame_eval(): # <<<<<<<<<<<<<<
+ * cdef PyThreadState *state = PyThreadState_Get()
+ * state.interp.eval_frame = _PyEval_EvalFrameDefault
+@@ -9629,26 +9629,26 @@ static CYTHON_SMALL_CODE int
__Pyx_InitCachedConstants(void) {
+ __Pyx_GIVEREF(__pyx_tuple__4);
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":211
+- *
+- *
++ *
++ *
+ * def get_thread_info_py() -> ThreadInfo: # <<<<<<<<<<<<<<
+ * return get_thread_info()
+- *
++ *
+ */
+ __pyx_codeobj__5 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0,
CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple,
__pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple,
__pyx_kp_s_pydevd_frame_eval_pydevd_frame_2, __pyx_n_s_get_thread_info_py, 211,
__pyx_empty_bytes); if (unlikely(!__pyx_codeobj__5)) __PYX_ERR(0, 211,
__pyx_L1_error)
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":215
+- *
+- *
++ *
++ *
+ * def clear_thread_local_info_py(): # <<<<<<<<<<<<<<
+ * clear_thread_local_info()
+- *
++ *
+ */
+ __pyx_codeobj__6 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0,
CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple,
__pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple,
__pyx_kp_s_pydevd_frame_eval_pydevd_frame_2,
__pyx_n_s_clear_thread_local_info_py, 215, __pyx_empty_bytes); if
(unlikely(!__pyx_codeobj__6)) __PYX_ERR(0, 215, __pyx_L1_error)
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":219
+- *
+- *
++ *
++ *
+ * def dummy_trace_dispatch(frame, str event, arg): #
<<<<<<<<<<<<<<
+ * if event == 'call':
+ * if frame.f_trace is not None:
+@@ -9659,8 +9659,8 @@ static CYTHON_SMALL_CODE int
__Pyx_InitCachedConstants(void) {
+ __pyx_codeobj__8 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0,
CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple,
__pyx_empty_tuple, __pyx_tuple__7, __pyx_empty_tuple, __pyx_empty_tuple,
__pyx_kp_s_pydevd_frame_eval_pydevd_frame_2, __pyx_n_s_dummy_trace_dispatch,
219, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__8)) __PYX_ERR(0, 219,
__pyx_L1_error)
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":226
+- *
+- *
++ *
++ *
+ * def decref_py(obj): # <<<<<<<<<<<<<<
+ * '''
+ * Helper to be called from Python.
+@@ -9671,8 +9671,8 @@ static CYTHON_SMALL_CODE int
__Pyx_InitCachedConstants(void) {
+ __pyx_codeobj__10 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0,
CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple,
__pyx_empty_tuple, __pyx_tuple__9, __pyx_empty_tuple, __pyx_empty_tuple,
__pyx_kp_s_pydevd_frame_eval_pydevd_frame_2, __pyx_n_s_decref_py, 226,
__pyx_empty_bytes); if (unlikely(!__pyx_codeobj__10)) __PYX_ERR(0, 226,
__pyx_L1_error)
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":233
+- *
+- *
++ *
++ *
+ * def get_func_code_info_py(code_obj) -> FuncCodeInfo: #
<<<<<<<<<<<<<<
+ * '''
+ * Helper to be called from Python.
+@@ -9683,8 +9683,8 @@ static CYTHON_SMALL_CODE int
__Pyx_InitCachedConstants(void) {
+ __pyx_codeobj__12 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0,
CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple,
__pyx_empty_tuple, __pyx_tuple__11, __pyx_empty_tuple, __pyx_empty_tuple,
__pyx_kp_s_pydevd_frame_eval_pydevd_frame_2, __pyx_n_s_get_func_code_info_py,
233, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__12)) __PYX_ERR(0, 233,
__pyx_L1_error)
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":360
+- *
+- *
++ *
++ *
+ * def frame_eval_func(): # <<<<<<<<<<<<<<
+ * cdef PyThreadState *state = PyThreadState_Get()
+ * state.interp.eval_frame = get_bytecode_while_frame_eval
+@@ -9695,8 +9695,8 @@ static CYTHON_SMALL_CODE int
__Pyx_InitCachedConstants(void) {
+ __pyx_codeobj__14 = (PyObject*)__Pyx_PyCode_New(0, 0, 1, 0,
CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple,
__pyx_empty_tuple, __pyx_tuple__13, __pyx_empty_tuple, __pyx_empty_tuple,
__pyx_kp_s_pydevd_frame_eval_pydevd_frame_2, __pyx_n_s_frame_eval_func, 360,
__pyx_empty_bytes); if (unlikely(!__pyx_codeobj__14)) __PYX_ERR(0, 360,
__pyx_L1_error)
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":367
+- *
+- *
++ *
++ *
+ * def stop_frame_eval(): # <<<<<<<<<<<<<<
+ * cdef PyThreadState *state = PyThreadState_Get()
+ * state.interp.eval_frame = _PyEval_EvalFrameDefault
+@@ -10190,7 +10190,7 @@ if (!__Pyx_RefNanny) {
+ * from _pydevd_frame_eval.pydevd_modify_bytecode import insert_code
+ * from pydevd_file_utils import get_abs_path_real_path_and_base_from_file, \
# <<<<<<<<<<<<<<
+ * NORM_PATHS_AND_BASE_CONTAINER
+- *
++ *
+ */
+ __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9,
__pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_2);
+@@ -10214,7 +10214,7 @@ if (!__Pyx_RefNanny) {
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":13
+- *
++ *
+ * from _pydevd_bundle.pydevd_additional_thread_info import \
+ * _set_additional_thread_info_lock # <<<<<<<<<<<<<<
+ * from _pydevd_bundle.pydevd_cython cimport PyDBAdditionalThreadInfo
+@@ -10228,7 +10228,7 @@ if (!__Pyx_RefNanny) {
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":12
+ * NORM_PATHS_AND_BASE_CONTAINER
+- *
++ *
+ * from _pydevd_bundle.pydevd_additional_thread_info import \ #
<<<<<<<<<<<<<<
+ * _set_additional_thread_info_lock
+ * from _pydevd_bundle.pydevd_cython cimport PyDBAdditionalThreadInfo
+@@ -10246,7 +10246,7 @@ if (!__Pyx_RefNanny) {
+ * _set_additional_thread_info_lock
+ * from _pydevd_bundle.pydevd_cython cimport PyDBAdditionalThreadInfo
+ * from _pydevd_bundle.pydevd_trace_dispatch import
fix_top_level_trace_and_get_trace_func # <<<<<<<<<<<<<<
+- *
++ *
+ * get_file_type = DONT_TRACE.get
+ */
+ __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15,
__pyx_L1_error)
+@@ -10265,9 +10265,9 @@ if (!__Pyx_RefNanny) {
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":17
+ * from _pydevd_bundle.pydevd_trace_dispatch import
fix_top_level_trace_and_get_trace_func
+- *
++ *
+ * get_file_type = DONT_TRACE.get # <<<<<<<<<<<<<<
+- *
++ *
+ * _thread_local_info = threading.local()
+ */
+ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_DONT_TRACE); if
(unlikely(!__pyx_t_1)) __PYX_ERR(0, 17, __pyx_L1_error)
+@@ -10280,10 +10280,10 @@ if (!__Pyx_RefNanny) {
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":19
+ * get_file_type = DONT_TRACE.get
+- *
++ *
+ * _thread_local_info = threading.local() # <<<<<<<<<<<<<<
+- *
+- *
++ *
++ *
+ */
+ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_threading); if
(unlikely(!__pyx_t_2)) __PYX_ERR(0, 19, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_2);
+@@ -10297,20 +10297,20 @@ if (!__Pyx_RefNanny) {
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":86
+- *
+- *
++ *
++ *
+ * _code_extra_index: Py_SIZE = -1 # <<<<<<<<<<<<<<
+- *
+- *
++ *
++ *
+ */
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_code_extra_index, __pyx_int_neg_1) <
0) __PYX_ERR(0, 86, __pyx_L1_error)
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":211
+- *
+- *
++ *
++ *
+ * def get_thread_info_py() -> ThreadInfo: # <<<<<<<<<<<<<<
+ * return get_thread_info()
+- *
++ *
+ */
+ __pyx_t_2 =
PyCFunction_NewEx(&__pyx_mdef_18_pydevd_frame_eval_22pydevd_frame_evaluator_1get_thread_info_py,
NULL, __pyx_n_s_pydevd_frame_eval_pydevd_frame_3); if (unlikely(!__pyx_t_2))
__PYX_ERR(0, 211, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_2);
+@@ -10318,11 +10318,11 @@ if (!__Pyx_RefNanny) {
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":215
+- *
+- *
++ *
++ *
+ * def clear_thread_local_info_py(): # <<<<<<<<<<<<<<
+ * clear_thread_local_info()
+- *
++ *
+ */
+ __pyx_t_2 =
PyCFunction_NewEx(&__pyx_mdef_18_pydevd_frame_eval_22pydevd_frame_evaluator_3clear_thread_local_info_py,
NULL, __pyx_n_s_pydevd_frame_eval_pydevd_frame_3); if (unlikely(!__pyx_t_2))
__PYX_ERR(0, 215, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_2);
+@@ -10330,8 +10330,8 @@ if (!__Pyx_RefNanny) {
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":219
+- *
+- *
++ *
++ *
+ * def dummy_trace_dispatch(frame, str event, arg): #
<<<<<<<<<<<<<<
+ * if event == 'call':
+ * if frame.f_trace is not None:
+@@ -10342,8 +10342,8 @@ if (!__Pyx_RefNanny) {
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":226
+- *
+- *
++ *
++ *
+ * def decref_py(obj): # <<<<<<<<<<<<<<
+ * '''
+ * Helper to be called from Python.
+@@ -10354,8 +10354,8 @@ if (!__Pyx_RefNanny) {
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":233
+- *
+- *
++ *
++ *
+ * def get_func_code_info_py(code_obj) -> FuncCodeInfo: #
<<<<<<<<<<<<<<
+ * '''
+ * Helper to be called from Python.
+@@ -10366,8 +10366,8 @@ if (!__Pyx_RefNanny) {
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":360
+- *
+- *
++ *
++ *
+ * def frame_eval_func(): # <<<<<<<<<<<<<<
+ * cdef PyThreadState *state = PyThreadState_Get()
+ * state.interp.eval_frame = get_bytecode_while_frame_eval
+@@ -10378,8 +10378,8 @@ if (!__Pyx_RefNanny) {
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+
+ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":367
+- *
+- *
++ *
++ *
+ * def stop_frame_eval(): # <<<<<<<<<<<<<<
+ * cdef PyThreadState *state = PyThreadState_Get()
+ * state.interp.eval_frame = _PyEval_EvalFrameDefault
+diff --git
a/python/helpers/pydev/_pydevd_frame_eval/cython/36_38/pydevd_frame_evaluator.pxd
b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_36_38.pxd
+similarity index 100%
+rename from
python/helpers/pydev/_pydevd_frame_eval/cython/36_38/pydevd_frame_evaluator.pxd
+rename to
python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_36_38.pxd
+diff --git
a/python/helpers/pydev/_pydevd_frame_eval/cython/36_38/pydevd_frame_evaluator.pyx
b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_36_38.pyx
+similarity index 100%
+rename from
python/helpers/pydev/_pydevd_frame_eval/cython/36_38/pydevd_frame_evaluator.pyx
+rename to
python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_36_38.pyx
+diff --git
a/python/helpers/pydev/_pydevd_frame_eval/cython/39_310/pydevd_frame_evaluator.c
b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_39_310.c
+similarity index 100%
+rename from
python/helpers/pydev/_pydevd_frame_eval/cython/39_310/pydevd_frame_evaluator.c
+rename to
python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_39_310.c
+diff --git
a/python/helpers/pydev/_pydevd_frame_eval/cython/39_310/pydevd_frame_evaluator.pxd
b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_39_310.pxd
+similarity index 100%
+rename from
python/helpers/pydev/_pydevd_frame_eval/cython/39_310/pydevd_frame_evaluator.pxd
+rename to
python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_39_310.pxd
+diff --git
a/python/helpers/pydev/_pydevd_frame_eval/cython/39_310/pydevd_frame_evaluator.pyx
b/python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_39_310.pyx
+similarity index 100%
+rename from
python/helpers/pydev/_pydevd_frame_eval/cython/39_310/pydevd_frame_evaluator.pyx
+rename to
python/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_39_310.pyx
+diff --git a/python/helpers/pydev/setup.py b/python/helpers/pydev/setup.py
+index 1adb50f0c3fe3..d99bb4d917b8f 100644
+--- a/python/helpers/pydev/setup.py
++++ b/python/helpers/pydev/setup.py
+@@ -181,13 +181,15 @@ def _replace_version_placeholder(version_str):
+ Extension('_pydevd_bundle.pydevd_cython',
['_pydevd_bundle/pydevd_cython.c',])
+ ]
+ ))
+- if sys.version_info >= (3, 6):
++ if (3, 6) <= sys.version_info <= (3, 10):
++ from setup_cython import get_frame_eval_extension_name
++ frame_eval_extension_name = get_frame_eval_extension_name()
+ args_with_binaries.update(dict(
+ distclass=BinaryDistribution,
+ ext_modules=[
+ # In this setup, don't even try to compile with cython, just
go with the .c file which should've
+ # been properly generated from a tested version.
+- Extension('_pydevd_frame_eval.pydevd_frame_evaluator',
['_pydevd_frame_eval/pydevd_frame_evaluator.c',])
++ Extension('_pydevd_frame_eval.pydevd_frame_evaluator',
['_pydevd_frame_eval/%s.c' % frame_eval_extension_name,])
+ ]
+ ))
+
+diff --git a/python/helpers/pydev/setup_cython.py
b/python/helpers/pydev/setup_cython.py
+index 92238aa7def99..2b24b937a7c11 100644
+--- a/python/helpers/pydev/setup_cython.py
++++ b/python/helpers/pydev/setup_cython.py
+@@ -52,6 +52,14 @@ def process_args():
+
+ def build_extension(dir_name, extension_name, target_pydevd_name,
force_cython,
+ target_arch, extended=False):
++ """
++ :param dir_name: directory where the Cython file is located
++ :param extension_name: name of the extension to build
++ :param target_pydevd_name: name of the Cython file
++ :param force_cython: if False, build from the C file, use ``.pyx``
otherwise
++ :param target_arch: target architecture, e.g. amd64
++ :param extended: add ``_ext`` to the name of the extension package name
++ """
+ pyx_file = os.path.join(os.path.dirname(__file__), dir_name,
+ "%s.pyx" % (extension_name,))
+ has_pxd = False
+@@ -80,6 +88,8 @@ def build_extension(dir_name, extension_name,
target_pydevd_name, force_cython,
+ has_pxd = True
+
+ assert os.path.exists(pyx_file)
++ if has_pxd:
++ assert os.path.exists(new_pxd_file)
+
+ try:
+ from distutils.extension import Extension
+@@ -99,19 +109,27 @@ def build_extension(dir_name, extension_name,
target_pydevd_name, force_cython,
+ ["%s/%s.pyx" % (dir_name, target_pydevd_name,)],
+ extra_compile_args=extra_compile_args,
+ extra_link_args=extra_link_args,
+- ), force=True)
++ ), force=True)
+ else:
+ # Always compile the .c (and not the .pyx) file (which we should
keep
+ # up-to-date by running build_tools/build.py).
++
++ # In case it's a pydevd_frame_evaluator extension with the
version suffix.
++ import re
++ target_pydevd_name = extension_name
++ m = re.search("_\d+_\d+$", extension_name)
++ if m:
++ target_pydevd_name = extension_name[:m.start()]
++
+ ext_modules = [Extension(
+ "%s%s.%s" % (dir_name, "_ext" if extended else "",
target_pydevd_name),
+- [os.path.join(dir_name, "%s.c" % target_pydevd_name), ],
++ [os.path.join(dir_name, "%s.c" % extension_name), ],
+ # uncomment to generate pdbs for visual studio.
+ # extra_compile_args=["-Zi", "/Od"],
+ # extra_link_args=["-debug"],
+ extra_compile_args=extra_compile_args,
+ extra_link_args=extra_link_args,
+- )]
++ )]
+
+ setup(
+ name="Cythonize",
+@@ -138,62 +156,17 @@ def build_extension(dir_name, extension_name,
target_pydevd_name, force_cython,
+ except: # noqa: 722
+ import traceback
+ traceback.print_exc()
+- else:
+- if force_cython and extension_name == "pydevd_frame_evaluator":
+- # Store the updated version-specific C file.
+- new_c_file = os.path.join(os.path.dirname(__file__), dir_name,
+- "%s.c" % (extension_name,))
+- shutil.copy(new_c_file, os.path.join(
+- _find_cython_module_dir(), "pydevd_frame_evaluator.c"))
+-
+-
+-_frame_evaluator_cython_mod_dir = None
+-
+-
+-def _find_cython_module_dir():
+- """Finds the version-specific frame evaluator Cython module directory."""
+- global _frame_evaluator_cython_mod_dir
+- if _frame_evaluator_cython_mod_dir:
+- return _frame_evaluator_cython_mod_dir
+- cython_modules_dir = os.path.join(_pydevd_dir, "_pydevd_frame_eval",
"cython")
+- major_version, minor_version = sys.version_info[:2]
+- for subdir in os.listdir(cython_modules_dir):
+- if not os.path.isdir(os.path.join(cython_modules_dir, subdir)):
+- continue
+- start, end = subdir.split('_')
+- start, end = int(start[1:]), int(end[1:])
+- if start <= minor_version <= end:
+- _frame_evaluator_cython_mod_dir =
os.path.join(cython_modules_dir, subdir)
+- return _frame_evaluator_cython_mod_dir
+- raise RuntimeError("Failed to find a compatible frame evaluator module"
+- " for Python %d.%d" % (major_version, minor_version))
+-
+-
+-class FrameEvalModuleBuildContext:
+- def __init__(self):
+- pydevd_frame_eval_dir_name = "_pydevd_frame_eval"
+- self.cython_modules_dir_path = os.path.join(
+- _pydevd_dir, pydevd_frame_eval_dir_name, "cython")
+- self._pxd_file = os.path.join(
+- _pydevd_dir, pydevd_frame_eval_dir_name,
"pydevd_frame_evaluator.pxd")
+- self._pyx_file = os.path.join(
+- _pydevd_dir, pydevd_frame_eval_dir_name,
"pydevd_frame_evaluator.pyx")
+- self._c_file = os.path.join(
+- _pydevd_dir, pydevd_frame_eval_dir_name,
"pydevd_frame_evaluator.c")
+-
+- def __enter__(self):
+- module_dir = _find_cython_module_dir()
+- compatible_c = os.path.join(module_dir, "pydevd_frame_evaluator.c")
+- shutil.copy(compatible_c, self._c_file)
+- compatible_pxd = os.path.join(module_dir,
"pydevd_frame_evaluator.pxd")
+- compatible_pyx = os.path.join(module_dir,
"pydevd_frame_evaluator.pyx")
+- shutil.copy(compatible_pxd, self._pxd_file)
+- shutil.copy(compatible_pyx, self._pyx_file)
+-
+- def __exit__(self, exc_type, exc_val, exc_tb):
+- os.remove(self._c_file)
+- os.remove(self._pxd_file)
+- os.remove(self._pyx_file)
++
++
++def get_frame_eval_extension_name():
++ version = sys.version_info[:2]
++ if (3, 6) <= version <= (3, 8):
++ return "pydevd_frame_evaluator_36_38"
++ elif (3, 9) <= version <= (3, 10):
++ return "pydevd_frame_evaluator_39_310"
++ else:
++ raise RuntimeError("Frame evaluation is not supported for the Python
version"
++ "%s.%s" % (version[0], version[1]))
+
+
+ def create_init_py_files(extension_folder, subdir_names_to_ignore=None):
+@@ -205,7 +178,7 @@ def create_init_py_files(extension_folder,
subdir_names_to_ignore=None):
+ subdir_names_to_ignore = subdir_names_to_ignore or []
+ for folder in (f for f in os.listdir(extension_folder)
+ if f not in subdir_names_to_ignore
+- and os.path.isdir(os.path.join(extension_folder, f))):
++ and os.path.isdir(os.path.join(extension_folder, f))):
+ file = os.path.join(folder, "__init__.py")
+ if not os.path.exists(file):
+ open(file, 'a').close()
+@@ -225,14 +198,12 @@ def main():
+ extended)
+
+ if IS_PY36_OR_GREATER:
+- extension_name = "pydevd_frame_evaluator"
++ extension_name = get_frame_eval_extension_name()
+ frame_eval_dir_name = "_pydevd_frame_eval"
+-
+ target_frame_eval = target_frame_eval or extension_name
+
+- with FrameEvalModuleBuildContext():
+- build_extension(frame_eval_dir_name, extension_name,
target_frame_eval,
+- force_cython, target_arch, extended)
++ build_extension(frame_eval_dir_name, extension_name,
target_frame_eval,
++ force_cython, target_arch, extended)
+
+ if extension_folder:
+ create_init_py_files(extension_folder,
subdir_names_to_ignore=["build"])
Copied:
pycharm-community-edition/repos/community-staging-x86_64/pycharm.desktop (from
rev 1446682, pycharm-community-edition/trunk/pycharm.desktop)
===================================================================
--- community-staging-x86_64/pycharm.desktop (rev 0)
+++ community-staging-x86_64/pycharm.desktop 2023-04-17 10:22:16 UTC (rev
1446683)
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Version=1.0
+Type=Application
+Name=PyCharm Community Edition
+Comment=Python IDE for Professional Developers
+Exec=/usr/bin/pycharm %f
+Icon=pycharm
+Terminal=false
+StartupNotify=true
+StartupWMClass=jetbrains-pycharm-ce
+Categories=Development;IDE;Python;
Copied: pycharm-community-edition/repos/community-staging-x86_64/pycharm.sh
(from rev 1446682, pycharm-community-edition/trunk/pycharm.sh)
===================================================================
--- community-staging-x86_64/pycharm.sh (rev 0)
+++ community-staging-x86_64/pycharm.sh 2023-04-17 10:22:16 UTC (rev 1446683)
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+if [ -z "$PYCHARM_JDK" ] ; then
+ PYCHARM_JDK="/usr/lib/jvm/java-17-openjdk/"
+fi
+# open-jfx location that should match the JDK version
+if [ -z "$PYCHARM_JFX" ] ; then
+ PYCHARM_JFX="/usr/lib/jvm/java-17-openjfx/"
+fi
+# classpath according to defined JDK/JFX
+if [ -z "$PYCHARM_CLASSPATH" ] ; then
+ PYCHARM_CLASSPATH="${PYCHARM_JDK}/lib/*:${PYCHARM_JFX}/lib/*"
+fi
+
+exec env PYCHARM_JDK="$PYCHARM_JDK" PYCHARM_CLASSPATH="$PYCHARM_CLASSPATH"
/usr/share/pycharm/bin/pycharm.sh "$@"
+
+# vim: ts=2 sw=2 et: