nbQA-dev / nbQA

Run ruff, isort, pyupgrade, mypy, pylint, flake8, and more on Jupyter Notebooks
https://nbqa.readthedocs.io/en/latest/index.html
MIT License
1.02k stars 39 forks source link

name temporary files with a pattern which can be globbed #789

Open l0b0 opened 1 year ago

l0b0 commented 1 year ago

When nbQA runs it extracts a foo[randomness].py file from foo.ipynb, and puts this file in the same directory as the notebook. This confuses my IDE, which is set to add any new files to VCS. It would probably be better to put this in a temporary directory.

MarcoGorelli commented 1 year ago

It would probably be better to put this in a temporary directory.

It used to be like this, but then that caused issues for importing modules

The temporary files should be automatically cleaned up after nbqa finishes running though, is that not what you're seeing?

MarcoGorelli commented 1 year ago

can't reproduce this, even on windows - my only guess is that you repeatedly ran ctrl+C while nbQA was still running and someone intercepted the finally block which cleans up the temporary files?

closing for now then, but thanks for the report

l0b0 commented 1 year ago

No, I didn't Ctrl-C. nbQA just ran long enough for the IDE to see the file and stage it.

MarcoGorelli commented 1 year ago

I see - which IDE was it, just out of interest?

Either way, I'd suggest reporting to them (or seeing if they have a way of increasing the time for temporary files)

l0b0 commented 1 year ago

JetBrains IDEA. It would be closed as not an issue, because it's a feature. I've set up my IDE to add all files to VCS when they are created.

MarcoGorelli commented 1 year ago

doesn't this cause issues for you when using other tools that create temporary files, such as pytest or yesqa?

l0b0 commented 1 year ago

Those are in .gitignore, so the IDE ignores them. nbQA is special since it creates a file in the same directory and with almost the same name, without any easy way to glob just for the temporary files.

MarcoGorelli commented 1 year ago

so if the temporary file names all started with the same pattern, such as .nbqa.foo[randomness].py, then that would work as a solution for you?

if so, then sure, pull requests welcome

l0b0 commented 1 year ago

so if the temporary file names all started with the same pattern, such as .nbqa.foo[randomness].py, then that would work as a solution for you?

Yeah, something like that would be great!

MarcoGorelli commented 1 year ago

cool, here's the contributing guide if you're interested in submitting a PR https://nbqa.readthedocs.io/en/latest/contributing.html