Skip to content

pre-commit mypy errors #784

Open
Open
@Aske-Rosted

Description

@Aske-Rosted

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions