forked from DonJayamanne/pythonVSCode
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Open
Labels
info-neededIssue requires more information from posterIssue requires more information from postertriage-neededNeeds assignment to the proper sub-teamNeeds assignment to the proper sub-team
Description
Type: Bug
Behaviour
Pytest discovery hangs infinitely
Steps to reproduce:
- Enter Remote SSH server through Remote Tunneling
- Load project in server
- Enter pytest discovery
Python Log Output
# Diagnostic data
2025-10-31 08:07:46.111 [info] Experiment 'pythonSurveyNotification' is active
2025-10-31 08:07:47.174 [info] Native locator: Refresh started
2025-10-31 08:07:52.690 [info] > conda info --json
2025-10-31 08:08:01.605 [info] > pyenv which python
2025-10-31 08:08:01.605 [info] cwd: .
2025-10-31 08:08:01.719 [info] Active interpreter [/scratch/project/tcr_ml/gnn_release]: /scratch/project_mnt/S0163/gnn_env/bin/python
2025-10-31 08:08:01.971 [info] Native locator: Refresh finished in 14797 ms
2025-10-31 08:08:03.224 [info] Starting Pylance language server.
2025-10-31 08:08:17.059 [debug] Testing: Refreshing all test data
2025-10-31 08:08:17.060 [info] Discover tests for workspace name: gnn_release - uri: /scratch/project/tcr_ml/gnn_release
2025-10-31 08:08:17.074 [debug] Starting Test Discovery named pipe
2025-10-31 08:09:43.105 [debug] Testing: Manually triggered test refresh
2025-10-31 08:09:43.105 [debug] Testing: Clearing all discovered tests
2025-10-31 08:09:43.105 [debug] Testing: Forcing test data refresh
2025-10-31 08:09:43.105 [debug] Testing: Refreshing all test data
2025-10-31 08:09:43.105 [info] Discover tests for workspace name: gnn_release - uri: /scratch/project/tcr_ml/gnn_release
2025-10-31 08:09:43.106 [error] Test discovery already in progress, not starting a new one.
Pytest output commandline
(gnn_env) uqachoo1@bun129: gnn_release:$ pytest --collect-only -v
=================================================================================================== test session starts ===================================================================================================
platform linux -- Python 3.11.8, pytest-8.4.2, pluggy-1.6.0 -- /scratch/project_mnt/S0163/gnn_env/bin/python
cachedir: .pytest_cache
rootdir: /scratch/project_mnt/S0163/gnn_release
configfile: pyproject.toml
testpaths: tests
plugins: anyio-4.11.0, mock-3.15.1, xdist-3.8.0, cov-7.0.0
collected 43 items
<Dir gnn_release>
<Package tests>
<Package generate_edge_tests>
<Module test_api.py>
<Function test_write_edges_file_for_pdb_success>
<Function test_write_edges_file_for_pdb_missing>
<Function test_write_edges_file_for_pdb_invalid_extension>
<Function test_generate_edges_from_pdb_file_invokes_writer>
<Function test_generate_edges_from_pdb_dir_uses_executor>
<Function test_generate_edges_from_tar_creates_archive>
<Function test_generate_edges_from_tar_keep_expanded>
<Function test_generate_edges_from_tar_dir>
<Function test_generate_edges_from_pdb_file_raises_file_not_found>
<Function test_generate_edges_from_pdb_file_raises_value_error_for_non_pdb>
<Module test_generate_edge.py>
<Function test_load_pdb_structure_success>
<Function test_load_pdb_structure_failure_logs_and_returns_none>
<Function test_basic_same_chain_and_inclusive_cutoff>
<Function test_prefers_cb_over_ca>
<Function test_ca_fallback_when_no_cb>
<Function test_residues_without_ca_are_ignored>
<Function test_different_chains_not_compared>
<Function test_multiple_models_are_independent>
<Function test_alternate_parser_basic>
<Function test_edges_text_basic>
<Function test_edges_text_multiple_pairs_and_order>
<Module test_io.py>
<Function test_iter_target_pdbs_filters_by_token_patterns>
<Function test_load_pdb_structure_success_and_failure>
<Package generate_graph_tests>
<Module test_encoding.py>
<Function test_load_pca_encoding_preserves_single_letter_index>
<Function test_load_pca_encoding_maps_three_letter_codes>
<Module test_graph_dataset.py>
<Function test_raw_and_processed_file_names_normalization>
<Function test_process_single_txt_and_len_get>
<Function test_process_tar_gz_multiple_graphs>
<Module test_io.py>
<Function test_list_edge_txts_finds_only_txt_files_non_recursive>
<Function test_list_edge_txts_accepts_str_path>
<Function test_list_edge_txts_is_case_sensitive_by_default>
<Function test_parse_edges_basic_spaces_and_tabs>
<Function test_parse_edges_ignores_blank_and_whitespace_only_lines>
<Function test_parse_edges_trims_leading_and_trailing_whitespace>
<Function test_parse_edges_unicode_and_non_ascii_tokens>
<Function test_parse_edges_empty_file_returns_empty_list>
<Function test_parse_edges_missing_file_raises>
<Module test_import.py>
<Function test_can_import_package>
<Package utils_tests>
<Module test_common_utils.py>
<Function test_is_within_directory_true_and_false>
<Function test_safe_extract_tar_gz_allows_safe_and_blocks_traversal>
<Function test_make_archive_calls_subprocess_run>
<Function test_tmp_root_returns_subdirectory_of_system_temp>
<Function test_cleanup_uses_shutil_rmtree>
==================================================================================================== warnings summary =====================================================================================================
../gnn_env/lib/python3.11/site-packages/torch_geometric/typing.py:54
/scratch/project_mnt/S0163/gnn_env/lib/python3.11/site-packages/torch_geometric/typing.py:54: UserWarning: An issue occurred while importing 'pyg-lib'. Disabling its usage. Stacktrace: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /scratch/project_mnt/S0163/gnn_env/lib/python3.11/site-packages/libpyg.so)
warnings.warn(f"An issue occurred while importing 'pyg-lib'. "
../gnn_env/lib/python3.11/site-packages/torch_geometric/typing.py:110
/scratch/project_mnt/S0163/gnn_env/lib/python3.11/site-packages/torch_geometric/typing.py:110: UserWarning: An issue occurred while importing 'torch-sparse'. Disabling its usage. Stacktrace: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /scratch/project_mnt/S0163/gnn_env/lib/python3.11/site-packages/libpyg.so)
warnings.warn(f"An issue occurred while importing 'torch-sparse'. "
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
===================================================================================================== tests coverage ======================================================================================================
_____________________________________________________________________________________ coverage: platform linux, python 3.11.8-final-0 _____________________________________________________________________________________
Name Stmts Miss Cover Missing
--------------------------------------------------------------------------
src/tcrgnn/__init__.py 8 4 50% 8-12
src/tcrgnn/edge_gen/__init__.py 0 0 100%
src/tcrgnn/edge_gen/_io.py 15 8 47% 22, 41-47
src/tcrgnn/edge_gen/api.py 52 35 33% 52-63, 86-93, 119-127, 143-152, 168-169
src/tcrgnn/edge_gen/cli.py 0 0 100%
src/tcrgnn/edge_gen/generate_edge.py 58 43 26% 38-44, 75-88, 111-139, 174-178
src/tcrgnn/fold_backend/__init__.py 0 0 100%
src/tcrgnn/graph_gen/__init__.py 0 0 100%
src/tcrgnn/graph_gen/_io.py 7 4 43% 18-19, 23-24
src/tcrgnn/graph_gen/api.py 14 14 0% 1-75
src/tcrgnn/graph_gen/build_graph.py 33 24 27% 22-37, 54-76, 104-105
src/tcrgnn/graph_gen/encodings.py 8 4 50% 55-59
src/tcrgnn/graph_gen/graph_dataset.py 47 28 40% 60-65, 80, 95, 116-149, 160, 176
src/tcrgnn/models/__init__.py 0 0 100%
src/tcrgnn/models/gatv2.py 20 20 0% 1-33
src/tcrgnn/plotting/__init__.py 0 0 100%
src/tcrgnn/plotting/api.py 14 14 0% 1-22
src/tcrgnn/plotting/charts.py 35 35 0% 1-52
src/tcrgnn/plotting/io.py 26 26 0% 1-48
src/tcrgnn/plotting/prepare.py 11 11 0% 1-20
src/tcrgnn/posthoc_adjustment/__init__.py 0 0 100%
src/tcrgnn/posthoc_adjustment/api.py 0 0 100%
src/tcrgnn/posthoc_adjustment/transform.py 104 104 0% 1-175
src/tcrgnn/training/__init__.py 0 0 100%
src/tcrgnn/training/config.py 21 2 90% 14-15
src/tcrgnn/training/data_loading.py 19 19 0% 1-33
src/tcrgnn/training/loop.py 50 39 22% 25-74
src/tcrgnn/utils/__init__.py 0 0 100%
src/tcrgnn/utils/_common_utils.py 25 15 40% 19-23, 43-49, 63, 75, 85
src/tcrgnn/utils/_device.py 11 11 0% 1-16
--------------------------------------------------------------------------
TOTAL 578 460 20%
============================================================================================== 43 tests collected in 11.78s ===============================================================================================
Test directory structure
Pyproject toml setup
[project]
name = "tcrgnn"
version = "0.1.0"
description = "GNN TCR Python Package"
authors = [{ name = "Amos Choo", email = "[email protected]" }]
dependencies = [
"torch_geometric==2.5.3",
"jupyter",
"matplotlib",
"seaborn",
"networkx",
"biopython",
]
requires-python = ">=3.11"
readme = "README.md"
license = { text = "MIT" }
[build-system]
requires = ["pdm-backend"]
build-backend = "pdm.backend"
[tool.pdm]
distribution = true
[tool.ruff]
line-length = 88
target-version = "py311"
exclude = ["old_folders"]
# Enable Ruff formatting (replaces Black)
[tool.ruff.format]
quote-style = "double" # or "single"
docstring-code-format = true
[tool.ruff.lint]
select = [
"E", # pycodestyle errors
"F", # pyflakes
"W", # warnings
"I", # import sorting
"UP", # pyupgrade
"B", # bugbear
"C4", # comprehensions
]
ignore = [
"E501", # optionally ignore line length if annoying
]
fixable = ["ALL"]
[tool.pytest.ini_options]
minversion = "8.0"
testpaths = ["tests"]
addopts = [
"-ra", # extra summary
"--strict-markers",
"--strict-config",
"--maxfail=1",
"--cov=tcrgnn",
"--cov-report=term-missing",
]
markers = [
"gpu: tests that require CUDA",
"slow: long running tests",
"integration: integration tests that touch disk or multiple modules",
]
[dependency-groups]
dev = [
"ruff>=0.14.2",
"pre-commit>=4.3.0",
"pytest>=8.4.2",
"pytest-cov>=7.0.0",
"pytest-xdist>=3.8.0",
"pytest-mock>=3.15.1",
]Extension version: 2025.16.0
VS Code version: Code 1.105.1 (7d842fb85a0275a4a8e4d7e040d2625abbf7f084, 2025-10-14T22:33:36.618Z)
OS version: Windows_NT arm64 10.0.26200
Modes:
Remote OS version: Linux x64 4.18.0-553.58.1.el8_10.x86_64
- Python version (& distribution if applicable, e.g. Anaconda): 3.12.11.final.0
- Type of virtual environment used (e.g. conda, venv, virtualenv, etc.): System
- Value of the
python.languageServersetting: Default
User Settings
languageServer: "Pylance"
testing
• pytestArgs: "<placeholder>"
• pytestEnabled: true
Installed Extensions
| Extension Name | Extension Id | Version |
|---|---|---|
| copilot | Git | 1.388.0 |
| copilot-chat | Git | 0.32.4 |
| debugpy | ms- | 2025.14.1 |
| even-better-toml | tam | 0.21.2 |
| html-preview-vscode | geo | 0.2.5 |
| js-debug | ms- | 1.105.0 |
| jupyter | ms- | 2025.9.1 |
| jupyter-renderers | ms- | 1.3.0 |
| python | ms- | 2025.16.0 |
| rainbow-csv | mec | 3.23.0 |
| ruff | cha | 2025.28.0 |
| vscode-js-profile-table | ms- | 1.0.10 |
| vscode-jupyter-cell-tags | ms- | 0.1.9 |
| vscode-jupyter-slideshow | ms- | 0.1.6 |
| vscode-pylance | ms- | 2025.9.1 |
| vscode-python-envs | ms- | 1.10.0 |
System Info
| Item | Value |
|---|---|
| CPUs | Snapdragon(R) X Elite - X1E78100 - Qualcomm(R) Oryon(TM) CPU (12 x 2976) |
| GPU Status | 2d_canvas: enabled direct_rendering_display_compositor: disabled_off_ok gpu_compositing: enabled multiple_raster_threads: enabled_on opengl: enabled_on rasterization: enabled raw_draw: disabled_off_ok skia_graphite: disabled_off trees_in_viz: disabled_off video_decode: enabled video_encode: enabled vulkan: disabled_off webgl: enabled webgl2: enabled webgpu: enabled webnn: unavailable_software |
| Load (avg) | undefined |
| Memory (System) | 31.57GB (12.29GB free) |
| Process Argv | --crash-reporter-id 2029ef38-5638-40ab-aaa9-1893d0b014ab |
| Screen Reader | no |
| VM | 0% |
| Item | Value |
|---|---|
| Remote | bun133 |
| OS | Linux x64 4.18.0-553.58.1.el8_10.x86_64 |
| CPUs | AMD EPYC 9454 48-Core Processor (192 x 3799) |
| Memory (System) | 1510.91GB (1426.20GB free) |
| VM | 0% |
A/B Experiments
vsliv368cf:30146710
pythonvspyt551:31249599
binariesv615:30325510
nativeloc1:31344060
dwcopilot:31170013
dwoutputs:31242946
copilot_t_ci:31333650
e5gg6876:31282496
pythonrdcb7:31342333
aj953862:31281341
nes-set-on:31351930
onetestforazureexp:31335613
6abeh943:31336334
envsactivate1:31353494
gendocstringt:31405074
0574c672:31404437
cloudbuttont:31379625
todos-1:31405332
v66_all_req:31402695
treatment_gpt5applypatchexclusively:31398171
3efgi100_wstrepl:31403338
trigger-command-fix:31379601
auto_model_enabled:31385282
use-responses-api:31390855
applesignin:31399435
dcggh915:31405779
je187915:31407605
afag3459:31405348
ff8f5884:31411053
Metadata
Metadata
Assignees
Labels
info-neededIssue requires more information from posterIssue requires more information from postertriage-neededNeeds assignment to the proper sub-teamNeeds assignment to the proper sub-team