graphnet icon indicating copy to clipboard operation
graphnet copied to clipboard

pre-commit mypy errors

Open Aske-Rosted opened this issue 1 year ago • 0 comments

Describe the bug Currently if I follow the install guide and install graphnet on GPU with one of the newer cvmfs environments. running the pre-commits will fail on mypy giving rise the erroers like the one below

src/graphnet/data/extractors/icecube/i3extractor.py:35: error: Name "icetray.I3Frame.Calibration" is not defined [name-defined] src/graphnet/data/extractors/icecube/i3extractor.py:56: error: Module has no attribute "I3File" [attr-defined] src/graphnet/data/extractors/icecube/i3extractor.py:59: error: Module has no attribute "I3File" [attr-defined] src/graphnet/data/extractors/icecube/i3extractor.py:63: error: Module has no attribute "I3Frame" [attr-defined] src/graphnet/data/extractors/icecube/i3extractor.py:75: error: Module has no attribute "I3Frame" [attr-defined] src/graphnet/data/extractors/icecube/i3extractor.py:90: error: Name "icetray.I3Frame" is not defined [name-defined]

To Reproduce Go to cobalt in /data/user/"your_user" without graphnet already installed (otherwise just choose a different location) run

eval `/cvmfs/icecube.opensciencegrid.org/py3-v4.3.0/setup.sh`
/cvmfs/icecube.opensciencegrid.org/py3-v4.3.0/RHEL_7_x86_64/metaprojects/icetray/v1.12.1/env-shell.sh
mkdir envs
cd envs
python -m venv "your_env_name"
source "your_env_name"/bin/activate
cd ..
git clone https://github.com/graphnet-team/graphnet.git
cd graphnet
pip install --upgrade pip>=20
pip install wheel setuptools==59.5.0
pip install -r requirements/torch_cu121.txt -e .[torch,develop]
pre-commit install
pre-commit run mypy --files src/graphnet/data/extractors/icecube/i3extractor.py

Expected behavior Since no files have been changed the expected behaviour is that the hooks should pass as they are doing when being run on the github side.

Full traceback Please include the full error message to allow for debugging

mypy.....................................................................Failed
- hook id: mypy
- duration: 2.84s
- exit code: 1

src/graphnet/data/extractors/icecube/i3extractor.py:35: error: Name "icetray.I3Frame.Calibration" is not defined  [name-defined]
src/graphnet/data/extractors/icecube/i3extractor.py:56: error: Module has no attribute "I3File"  [attr-defined]
src/graphnet/data/extractors/icecube/i3extractor.py:59: error: Module has no attribute "I3File"  [attr-defined]
src/graphnet/data/extractors/icecube/i3extractor.py:63: error: Module has no attribute "I3Frame"  [attr-defined]
src/graphnet/data/extractors/icecube/i3extractor.py:75: error: Module has no attribute "I3Frame"  [attr-defined]
src/graphnet/data/extractors/icecube/i3extractor.py:90: error: Name "icetray.I3Frame" is not defined  [name-defined]
Found 6 errors in 1 file (checked 1 source file)

Additional context I have been able to find a solution which is to create another environment without linking to icetray. and just installing with cpu and running the pre-commits from that environments seems to work. I have been trying to track down differences between the package versions when they are being run on the github side and when I run the pre-commit locally but did not manage to find any issue.

So one solution could simply be to update the contribution guide instructing contributers to create a simple environment without cvmfs for when they are running the pre-commits and commiting to github.

Aske-Rosted avatar Feb 12 '25 09:02 Aske-Rosted