Vendor debugpy for VS Code attach debugging

Bundles debugpy 1.7.0 directly in python/ so "Maya: Attach (debugpy)"
works with no per-machine pip install step. Installed via Maya 2022's
own pip so it resolved a version actually compatible with Python 3.7
(Maya 2022's interpreter), then verified import + listen() succeeds
under all three target Maya Python versions (3.7/3.9/3.10).

Also fixes a latent __file__-under-exec() bug in
start_debug_server.py (same pitfall as Maya's own plugin loader,
never hit until this exercised it) and corrects the README's Maya
Python version claim -- 2022 ships Python 3.7, not 3.9 as previously
stated, which was never independently verified until now.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-14 09:01:16 +08:00
parent e2f2e6668a
commit ec5f52c7c6
623 changed files with 236815 additions and 12 deletions
@@ -0,0 +1,22 @@
import unittest
class SampleTest(unittest.TestCase):
def setUp(self):
return
def tearDown(self):
return
def test_non_unique_name(self):
pass
def test_asdf2(self):
pass
def test_i_am_a_unique_test_name(self):
pass
if __name__ == '__main__':
unittest.main()
@@ -0,0 +1,3 @@
""" i am a python file with no tests """
pass
@@ -0,0 +1,3 @@
""" i am a python file with no tests """
pass
@@ -0,0 +1,3 @@
""" i am a python file with no tests """
pass
@@ -0,0 +1,16 @@
import unittest
class NestedSampleTest(unittest.TestCase):
def setUp(self):
return
def tearDown(self):
return
def test_non_unique_name(self):
pass
if __name__ == '__main__':
unittest.main()
@@ -0,0 +1,3 @@
""" i am a python file with no tests """
pass
@@ -0,0 +1,16 @@
import unittest
class YetAnotherSampleTest(unittest.TestCase):
def setUp(self):
return
def tearDown(self):
return
def test_abc(self):
pass
if __name__ == '__main__':
unittest.main()
@@ -0,0 +1,16 @@
import unittest
class StillYetAnotherSampleTest(unittest.TestCase):
def setUp(self):
return
def tearDown(self):
return
def test_non_unique_name(self):
pass
if __name__ == '__main__':
unittest.main()
@@ -0,0 +1,14 @@
import unittest
class SetUpClassTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
raise ValueError("This is an INTENTIONAL value error in setUpClass.")
def test_blank(self):
pass
if __name__ == '__main__':
unittest.main()
@@ -0,0 +1,16 @@
import unittest
def setUpModule():
raise ValueError("This is an INTENTIONAL value error in setUpModule.")
class SetUpModuleTest(unittest.TestCase):
def setUp(cls):
pass
def test_blank(self):
pass
if __name__ == '__main__':
unittest.main()
@@ -0,0 +1,45 @@
import unittest
class SampleTest(unittest.TestCase):
def setUp(self):
pass
def tearDown(self):
pass
def test_xxxxxx1(self):
self.fail('Fail test 2')
def test_xxxxxx2(self):
pass
def test_xxxxxx3(self):
pass
def test_xxxxxx4(self):
pass
def test_non_unique_name(self):
print('non unique name ran')
class AnotherSampleTest(unittest.TestCase):
def setUp(self):
pass
def tearDown(self):
pass
def test_1(self):
pass
def test_2(self):
""" im a doc string"""
pass
def todo_not_tested(self):
'''
Not there by default!
'''
if __name__ == '__main__':
# suite = unittest.makeSuite(SampleTest, 'test')
# runner = unittest.TextTestRunner( verbosity=3 )
# runner.run(suite)
unittest.main()