Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ignoring per-file-ignores configuration #359

Open
FieryDruid opened this issue Jan 23, 2024 · 9 comments
Open

Ignoring per-file-ignores configuration #359

FieryDruid opened this issue Jan 23, 2024 · 9 comments
Labels
bug Something isn't working

Comments

@FieryDruid
Copy link

FieryDruid commented Jan 23, 2024

Describe the bug

After updating to version 0.0.29, the plugin began to highlight rules that are ignored for specific files using the per-file-ignores section in ruff.toml. If ruff is run from the console with the same config, it does not find any errors.

To Reproduce
Steps to reproduce the behavior:

  1. create package with some module in project
  2. write any code that is recognized by ruff as an error
  3. add this error code with path to this file in per-file-ignores
  4. check this error highlighting

Expected behavior
Since ruff itself ignores the rule, the plugin should also not highlight it

Screenshots

Test code with error:
image

project structure with new folder project_tests:
image

per-file-ignores section:
image

ruff check resuilt from command line:
image

Environments (please complete the following information):

  • IDE: PyCharm Professional 2023.3.2
  • OS: Windows 10 + WSL (Ubuntu 22.04)
  • Ruff Version: 0.1.9
  • Plugin version: 0.0.29

Additional context
It is likely that this may be related to the path to the config file in Windows + WSL: #358

but i fix this error by editing ruff.xml in .idea/. Everything worked fine on the previous version without any changes.

@Skorpyon
Copy link

Skorpyon commented Feb 26, 2024

Same thing. @koxudaxi maybe it happen, because Ruff team moved "per-file-ignores" config from root into "lint" subsection:

[tool.ruff.lint.per-file-ignores]
"tests/**" = ["INP001", "S101"]

@koxudaxi koxudaxi added the bug Something isn't working label Mar 27, 2024
@koxudaxi
Copy link
Owner

@FieryDruid

I'm sorry for my late reply.
I tested your example. I can't reproduce the issue.

It is likely that this may be related to the path to the config file in Windows + WSL: #358

Do you set your ruff.toml config path in the settings?

@FieryDruid
Copy link
Author

@FieryDruid

I'm sorry for my late reply. I tested your example. I can't reproduce the issue.

It is likely that this may be related to the path to the config file in Windows + WSL: #358

Do you set your ruff.toml config path in the settings?

Yes, the config file is specified, but, due to the problem described in #358 I had to edit ruff.xml in .idea folder and specify a relative path in it

<option name="ruffConfigPath" value="ruff.toml" />

Could there be a problem due to such usage?

Still reproduced on this simple project:
pythonProject.zip
image

Pycharm: 2023.3.5
Ruff: 0.1.9
Plugin: 0.0.31/0.0.29

And I tested this case on Ruff 0.3.4 with updated config:

[lint]
select = ["S101"]

[lint.per-file-ignores]
"tests/*" = ["S101"]

Plugin show me only assert:
image

Ruff from CLI says:
image

@FieryDruid
Copy link
Author

FieryDruid commented Apr 8, 2024

@koxudaxi

Thanks for 0.0.33 release!

Problem is actual with fixed #358

Pycharm: 2024.1
Ruff: 0.3.5
Plugin: 0.0.33

@koxudaxi
Copy link
Owner

koxudaxi commented Apr 8, 2024

@FieryDruid
Thank you for checking it :)

@koxudaxi koxudaxi closed this as completed Apr 8, 2024
@FieryDruid
Copy link
Author

@koxudaxi

sorry, it is not completed :(

I meant that error is still being reproduced after release

@koxudaxi koxudaxi reopened this Apr 9, 2024
@koxudaxi
Copy link
Owner

koxudaxi commented Apr 9, 2024

@FieryDruid
I tested the toml file from settings, which means it may not be taking relative paths into account. Could you test the absolute path?

@FieryDruid
Copy link
Author

FieryDruid commented Apr 9, 2024

@koxudaxi

I changed config settings:
image

ruff.xml contains:

<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="RuffConfigService">
    <option name="globalRuffExecutablePath" value="\\wsl.localhost\Ubuntu-22.04\home\fierydruid\.local\bin\ruff" />
    <option name="ruffConfigPath" value="\\wsl.localhost\Ubuntu-22.04\home\fierydruid\work\schedule\pythonProject\ruff.toml" />
  </component>
</project>

I test some cases on:
Pycharm: 2024.1
Ruff: 0.3.5
Plugin: 0.0.33
OS: Windows 11 + WSL (Ubuntu 22.04) (My secondary computer on Windows 10 + WSL (Ubuntu 22.04) has same bug)

Use test project from my previous comment:

Still reproduced on this simple project:
pythonProject.zip

1 case

Select all rules and check without ignores

  • Ruff toml:
    [lint]
    select = ["ALL"]
  • Errors in Pycharm with plugin:
    image
  • Errors in wsl terminal (run ruff check --config ruff.toml from root project directory):
    image

2 case

Select all rules and check with ignore S101

  • Ruff toml:
    [lint]
    select = ["ALL"]
    
    [lint.per-file-ignores]
    "tests/*" = ["S101"]
  • Errors in Pycharm with plugin:
    image
  • Errors in wsl terminal (run ruff check --config ruff.toml from root project directory):
    image

3 case

Select only S101 and check with ignore S101:

  • Ruff toml:
    [lint]
    select = ["S101"]
    
    [lint.per-file-ignores]
    "tests/*" = ["S101"]
  • Errors in Pycharm with plugin (no longer highlights function name with D100/D103/ANN101 rules):
    image
  • Errors in wsl terminal (run ruff check --config ruff.toml from root project directory):
    image

@mihirsamdarshi
Copy link

mihirsamdarshi commented May 6, 2024

Hi, This is happening for me as well.

However, unlike the other bug reporters, I am running on macOS, and I don't have a ruff.toml. I specify the per-file-ignores under [tool.ruff.lint.per-file-ignores] in pyproject.toml.

I've had different issues with PyCharm before because this (newer) Python project is not in the root of my Pycharm workspace. Perhaps this could be a reason this isn't working for me?

Here is my .idea/ruff.xml

<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="RuffConfigService">
    <option name="globalRuffExecutablePath" value="$USER_HOME$/.pyenv/shims/ruff" />
    <option name="globalRuffLspExecutablePath" value="$USER_HOME$/.pyenv/shims/ruff" />
    <option name="projectRuffExecutablePath" value="$USER_HOME$/Library/Caches/pypoetry/virtualenvs/server-N8UJI-q9-py3.12/bin/ruff" />
    <option name="ruffConfigPath" value="$PROJECT_DIR$/server/pyproject.toml" />
    <option name="runRuffOnSave" value="true" />
    <option name="useRuffFormat" value="true" />
  </component>
</project>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants