~ruther/guix-local

84fa76db424df8962ee21315ffd680c083edbf00 — Danny Milosavljevic 1 year, 11 months ago 331600e
gnu: python-debugpy: Update to 1.8.9.

* gnu/packages/python-xyz.scm (python-debugpy): Update to 1.8.9.

Change-Id: I323570fc007af04fa8c9c59571cc3cc79833da04
2 files changed, 94 insertions(+), 95 deletions(-)

M gnu/packages/patches/python-debugpy-unbundle-pydevd.patch
M gnu/packages/python-xyz.scm
M gnu/packages/patches/python-debugpy-unbundle-pydevd.patch => gnu/packages/patches/python-debugpy-unbundle-pydevd.patch +92 -93
@@ 1,10 1,9 @@
Allow using pydevd as a regular dependency.
Submitted upstream at: https://github.com/microsoft/debugpy/pull/902

diff --git a/setup.py b/setup.py
index 5fc40070..3a530a29 100644
--- a/setup.py
+++ b/setup.py
diff -rup a/setup.py b/setup.py
--- a/setup.py	2024-11-29 23:38:58.549980612 +0100
+++ b/setup.py	2024-11-30 00:04:14.281540335 +0100
@@ -11,6 +11,9 @@ import subprocess
 import sys
 


@@ 33,7 32,7 @@ index 5fc40070..3a530a29 100644
 DEBUGBY_ROOT = os.path.dirname(os.path.abspath(debugpy.__file__))
 
 
@@ -67,7 +73,7 @@ def iter_vendored_files():
@@ -46,7 +52,7 @@ def get_buildplatform():
 # relevant setuptools versions.
 class ExtModules(list):
     def __bool__(self):


@@ 42,15 41,19 @@ index 5fc40070..3a530a29 100644
 
 
 def override_build(cmds):
@@ -133,9 +139,24 @@ with open("DESCRIPTION.md", "r") as fh:
@@ -72,6 +78,8 @@ def override_build_py(cmds):
     # in data files for binary builds.
     def finalize_options(self):
         original(self)
+        if DEBUGPY_BUNDLING_DISABLED:
+            return True
 
         # Ensure that pydevd extensions are present for inclusion into data_files.
         self.announce(
@@ -140,6 +148,20 @@ with open("DESCRIPTION.md", "r") as fh:
 
 if __name__ == "__main__":
-    if not os.getenv("SKIP_CYTHON_BUILD"):
+    if not (os.getenv("SKIP_CYTHON_BUILD") or DEBUGPY_BUNDLING_DISABLED):
         cython_build()
 
+    # Etch bundling status in the source.
 if __name__ == "__main__":
+    if debugpy.__bundling_disabled__ != DEBUGPY_BUNDLING_DISABLED:
+
+        with open(os.path.join(DEBUGBY_ROOT, '__init__.py'), 'r') as f:


@@ 68,7 71,7 @@ index 5fc40070..3a530a29 100644
     extras = {}
     platforms = get_buildplatform()
     if platforms is not None:
@@ -145,6 +166,18 @@ if __name__ == "__main__":
@@ -149,6 +171,18 @@ if __name__ == "__main__":
     override_build(cmds)
     override_build_py(cmds)
 


@@ 87,7 90,7 @@ index 5fc40070..3a530a29 100644
     setuptools.setup(
         name="debugpy",
         version=versioneer.get_version(),
@@ -173,20 +206,10 @@ if __name__ == "__main__":
@@ -177,23 +211,10 @@ if __name__ == "__main__":
             "License :: OSI Approved :: MIT License",
         ],
         package_dir={"": "src"},


@@ 101,7 104,10 @@ index 5fc40070..3a530a29 100644
-        ],
-        package_data={
-            "debugpy": ["ThirdPartyNotices.txt"],
-            "debugpy._vendored": list(iter_vendored_files()),
-            "debugpy._vendored": [
-                # pydevd extensions must be built before this list can be computed properly,
-                # so it is populated in the overridden build_py.finalize_options().
-            ],
-        },
+        packages=packages,
+        package_data=data,


@@ 109,28 115,78 @@ index 5fc40070..3a530a29 100644
-        has_ext_modules=lambda: True,
+        has_ext_modules=lambda: not DEBUGPY_BUNDLING_DISABLED,
         cmdclass=cmds,
         **extras
     )
diff --git a/src/debugpy/__init__.py b/src/debugpy/__init__.py
index baa5a7c5..7b7a29aa 100644
--- a/src/debugpy/__init__.py
+++ b/src/debugpy/__init__.py
@@ -206,6 +206,8 @@ def trace_this_thread(should_trace):
         # allow the user to call "debugpy" instead of "python -m debugpy"
         entry_points={"console_scripts": ["debugpy = debugpy.server.cli:main"]},
diff -rup a/src/debugpy/__init__.py b/src/debugpy/__init__.py
--- a/src/debugpy/__init__.py	2024-11-29 23:38:58.553980600 +0100
+++ b/src/debugpy/__init__.py	2024-11-29 23:49:38.776095806 +0100
@@ -34,5 +34,6 @@ assert sys.version_info >= (3, 7), (
 # SyntaxError on Python 2 and preventing the above version check from executing.
 from debugpy.public_api import *  # noqa
 from debugpy.public_api import __version__
+__bundling_disabled__ = False
 
 __version__ = _version.get_versions()["version"]
 del sys
diff -rup a/src/debugpy/server/attach_pid_injected.py b/src/debugpy/server/attach_pid_injected.py
--- a/src/debugpy/server/attach_pid_injected.py	2024-11-29 23:38:58.553980600 +0100
+++ b/src/debugpy/server/attach_pid_injected.py	2024-11-29 23:39:48.933831730 +0100
@@ -6,6 +6,7 @@
 
 import os
 
+import debugpy
 
+__bundling_disabled__ = False
+
 # Force absolute path on Python 2.
 __file__ = os.path.abspath(__file__)
 _debugpy_dir = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
@@ -28,25 +29,29 @@ def attach(setup):
                 def on_critical(msg):
                     print(msg, file=sys.stderr)
 
diff --git a/src/debugpy/server/__init__.py b/src/debugpy/server/__init__.py
index e6a1ad66..5f29a87a 100644
--- a/src/debugpy/server/__init__.py
+++ b/src/debugpy/server/__init__.py
@@ -4,6 +4,50 @@
-                pydevd_attach_to_process_path = os.path.join(
-                    _debugpy_dir,
-                    "debugpy",
-                    "_vendored",
-                    "pydevd",
-                    "pydevd_attach_to_process",
-                )
-                assert os.path.exists(pydevd_attach_to_process_path)
-                sys.path.insert(0, pydevd_attach_to_process_path)
+                if debugpy.__bundling_disabled__:
+                    from pydevd_attach_to_process import attach_script
+                else:
+                    pydevd_attach_to_process_path = os.path.join(
+                        _debugpy_dir,
+                        "debugpy",
+                        "_vendored",
+                        "pydevd",
+                        "pydevd_attach_to_process",
+                    )
+                    assert os.path.exists(pydevd_attach_to_process_path)
+                    sys.path.insert(0, pydevd_attach_to_process_path)
 
-                # NOTE: that it's not a part of the pydevd PYTHONPATH
-                import attach_script
+                    # NOTE: that it's not a part of the pydevd PYTHONPATH
+                    import attach_script
 
                 attach_script.fix_main_thread_id(
                     on_warn=on_warn, on_exception=on_exception, on_critical=on_critical
                 )
 
-                # NOTE: At this point it should be safe to remove this.
-                sys.path.remove(pydevd_attach_to_process_path)
+                if not debugpy.__bundling_disabled__:
+                    # NOTE: At this point it should be safe to remove this.
+                    sys.path.remove(pydevd_attach_to_process_path)
             except:
                 import traceback
 
 from __future__ import absolute_import, division, print_function, unicode_literals
diff -rup a/src/debugpy/server/__init__.py b/src/debugpy/server/__init__.py
--- a/src/debugpy/server/__init__.py	2024-11-29 23:38:58.553980600 +0100
+++ b/src/debugpy/server/__init__.py	2024-11-29 23:39:48.933831730 +0100
@@ -2,6 +2,50 @@
 # Licensed under the MIT License. See LICENSE in the project root
 # for license information.
 
+from importlib import import_module
+import os


@@ 180,67 236,13 @@ index e6a1ad66..5f29a87a 100644
+    pydevd_defaults.PydevdCustomization.DEFAULT_PROTOCOL = pydevd_constants.HTTP_JSON_PROTOCOL
+else:
+    import debugpy._vendored.force_pydevd  # noqa
diff --git a/src/debugpy/server/attach_pid_injected.py b/src/debugpy/server/attach_pid_injected.py
index e6345996..87cfdd53 100644
--- a/src/debugpy/server/attach_pid_injected.py
+++ b/src/debugpy/server/attach_pid_injected.py
@@ -8,6 +8,7 @@ from __future__ import absolute_import, division, print_function, unicode_litera
 
 import os
diff -rup a/tests/tests/test_vendoring.py b/tests/tests/test_vendoring.py
--- a/tests/tests/test_vendoring.py	2024-11-29 23:38:58.549980612 +0100
+++ b/tests/tests/test_vendoring.py	2024-11-29 23:50:22.879966500 +0100
@@ -3,6 +3,11 @@
 # for license information.
 
+import debugpy
 
 __file__ = os.path.abspath(__file__)
 _debugpy_dir = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
@@ -30,25 +31,29 @@ def attach(setup):
                 def on_critical(msg):
                     print(msg, file=sys.stderr)
 
-                pydevd_attach_to_process_path = os.path.join(
-                    _debugpy_dir,
-                    "debugpy",
-                    "_vendored",
-                    "pydevd",
-                    "pydevd_attach_to_process",
-                )
-                assert os.path.exists(pydevd_attach_to_process_path)
-                sys.path.insert(0, pydevd_attach_to_process_path)
-
-                # NOTE: that it's not a part of the pydevd PYTHONPATH
-                import attach_script
+                if debugpy.__bundling_disabled__:
+                    from pydevd_attach_to_process import attach_script
+                else:
+                    pydevd_attach_to_process_path = os.path.join(
+                        _debugpy_dir,
+                        "debugpy",
+                        "_vendored",
+                        "pydevd",
+                        "pydevd_attach_to_process",
+                    )
+                    assert os.path.exists(pydevd_attach_to_process_path)
+                    sys.path.insert(0, pydevd_attach_to_process_path)
+
+                    # NOTE: that it's not a part of the pydevd PYTHONPATH
+                    import attach_script
 
                 attach_script.fix_main_thread_id(
                     on_warn=on_warn, on_exception=on_exception, on_critical=on_critical
                 )
 
-                # NOTE: At this point it should be safe to remove this.
-                sys.path.remove(pydevd_attach_to_process_path)
+                if not debugpy.__bundling_disabled__:
+                    # NOTE: At this point it should be safe to remove this.
+                    sys.path.remove(pydevd_attach_to_process_path)
             except:
                 import traceback
 
diff --git a/tests/tests/test_vendoring.py b/tests/tests/test_vendoring.py
index dd6c4269..28c03702 100644
--- a/tests/tests/test_vendoring.py
+++ b/tests/tests/test_vendoring.py
@@ -1,3 +1,8 @@
+import pytest
+
+import debugpy


@@ 249,6 251,3 @@ index dd6c4269..28c03702 100644
 def test_vendoring(pyfile):
     @pyfile
     def import_debugpy():
-- 
2.34.0


M gnu/packages/python-xyz.scm => gnu/packages/python-xyz.scm +2 -2
@@ 17292,7 17292,7 @@ and other @acronym{IDEs, Integrated Development Environments}.")
(define-public python-debugpy
  (package
    (name "python-debugpy")
    (version "1.6.0")
    (version "1.8.9")
    (source
     (origin
       (method git-fetch)


@@ 17307,7 17307,7 @@ and other @acronym{IDEs, Integrated Development Environments}.")
       (patches (search-patches "python-debugpy-unbundle-pydevd.patch"))
       (sha256
        (base32
         "1dpfzs3p51648i7f3fz8dw5d0vrj39iwn1jhn0226idc02ybyqih"))))
         "0rq9ndsg4za0np5lnlkdwaqlizay8ndm8ki2m7r7awji262dzzlx"))))
    (build-system python-build-system)
    (arguments
     (list