TheAlgorithms / Python

All Algorithms implemented in Python
https://thealgorithms.github.io/Python/
MIT License
192.98k stars 45.46k forks source link

`pytest` warnings in builds #10563

Open tianyizheng02 opened 1 year ago

tianyizheng02 commented 1 year ago

Repository commit

Doesn't matter

Python version (python --version)

Python 3.12.0, the current version used in builds

Dependencies version (pip freeze)

Doesn't matter

Expected behavior

pytest runs with no (internal) warnings

Actual behavior

Every build (see our Actions tab) has the following warnings:

/opt/hostedtoolcache/Python/3.12.0/x64/lib/python3.12/site-packages/coverage/report_core.py:115: CoverageWarning: Couldn't parse '/home/runner/work/Python/Python/config-3.py': No source for code: '/home/runner/work/Python/Python/config-3.py'. (couldnt-parse)
  coverage._warn(msg, slug="couldnt-parse")
/opt/hostedtoolcache/Python/3.12.0/x64/lib/python3.12/site-packages/coverage/report_core.py:115: CoverageWarning: Couldn't parse '/home/runner/work/Python/Python/config.py': No source for code: '/home/runner/work/Python/Python/config.py'. (couldnt-parse)
  coverage._warn(msg, slug="couldnt-parse")

I don't know what files these are, and I don't know what's causing these warnings to occur.

SOBAN50 commented 1 year ago

Okay so I spent good time understanding the issue and I have come to the conclusion that it is an issue with the Python\compression\peak_signal_to_noise_ratio.py file.

It arises due to the cv2 library. cv2 uses a config file for its operations. These files are config-3.py and config.py. The coverage module considers it a python file for which code coverage has to be checked, but its not actually a Python file but a configuration file. Thats what generates a warning.

SOBAN50 commented 1 year ago

There are multiple solutions to this:

Saswatsusmoy commented 1 year ago

Okay so I spent good time understanding the issue and I have come to the conclusion that it is an issue with the Python\compression\peak_signal_to_noise_ratio.py file.

It arises due to the cv2 library. cv2 uses a config file for its operations. These files are config-3.py and config.py. The coverage module considers it a python file for which code coverage has to be checked, but its not actually a Python file but a configuration file. Thats what generates a warning.

I tried to implement the code without using any external libraries, it seems that the warnings still popup.

SOBAN50 commented 1 year ago

@Saswatsusmoy I have tried using the code just by commenting out the CV2 part. No warnings pop up in my case.

SOBAN50 commented 1 year ago

To reiterate, we are talking about the warnings in the PyTest Code Coverage part.

pratyakshsuri2003 commented 12 months ago

CoverageWarning indicating that coverage couldn't parse or locate source code for specified files like config-3.py and config.py, you should first confirm that the file paths are accurate, validate that the source code files exist in your project directory, ensure they are in paths covered by the analysis, and check your coverage configuration (e.g., .coveragerc) to include the relevant source paths. Double-check that you are running tests or coverage analysis from the correct directory where the source files reside, check for file permission issues, update coverage, and verify the Python environment setup. If problems persist, review filenames for typos or case sensitivity and consider seeking assistance from your development team or relevant forums.

SOBAN50 commented 12 months ago

Okay so I spent good time understanding the issue and I have come to the conclusion that it is an issue with the Python\compression\peak_signal_to_noise_ratio.py file.

It arises due to the cv2 library. cv2 uses a config file for its operations. These files are config-3.py and config.py. The coverage module considers it a python file for which code coverage has to be checked, but its not actually a Python file but a configuration file. Thats what generates a warning.