Open marcelm opened 4 years ago
This bug is affecting me too as my python code contains supercomputer queue manager options that must be formatted like "#PBS (option)" with no space between "#" and "PBS". As a workaround, a print statement within the "# fmt: off/on" block makes it work but ideally blocks of comments only within a "# fmt: off/on" block with no executable code in the block should still respect the "# fmt: off/on" directive.
An interesting case from a duplicate:
class A:
........
minutes_available_per_week = models.PositiveIntegerField(
# fmt: off
default=settings.TIME_ESTIMATES["defaults"]["minutes_available_per_week"] # type: ignore
# fmt: on
)
I was just wondering if there were any updates related to this bug report.
I also find this bug problematic. My usecase is the following: I have some code that needs to be temporarily commented out (say for a few days), while other code in the file is added/modified. Using black then reformat the commented code, which completely looses its indentation, making it useless even after removing the comments.
The workaround is to add, say, pass
somewhere next to the commented code, but it would be great if that wasn't required.
thanks.
Thanks for creating the best opinionated formatter I've used.
I'm having this issue with setup.cfg file:
# fmt: off
[metadata]
name = appname
description = a project
long_description = file: README.md
long_description_content_type = text/markdown
charset=UTF-8
author = Al J Abadi
author_email =foo@company.com
classifiers =
Development Status :: 2 - Pre-Alpha
Environment :: Console
Environment :: MacOS X
Intended Audience :: Developers
Natural Language :: English
Operating System :: POSIX :: Linux
Operating System :: MacOS :: MacOS X
Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Topic :: Scientific/Engineering :: Data Science
[options]
zip_safe = False
packages = find:
platforms = any
include_package_data = True
install_requires =
bz2file
python_requires = >=3.7
setup_requires =
setuptools_scm
[bdist_wheel]
universal = 1
# fmt: on
The indentation is required for a successful build but it is removed by black. I was surprised this issue still persists after such a long time.
@aljabadi I don't think we format CFG files 🤔
Another use-case that's affected:
#!/usr/bin/env python3
# fmt: off
#SBATCH --job-name="Example"
#SBATCH --array=0-250
# ...
# fmt: on
Black alters #SBATCH
into # SBATCH
. The former is interpreted by SLURM, the latter ignored
EDIT: already reported in https://github.com/psf/black/issues/1024
Same issue here: Playground link
rawdata_schema = {
# fmt: off
"No" : "uint16[pyarrow]",
"year" : "uint16[pyarrow]",
"month" : "uint8[pyarrow]",
"day" : "uint8[pyarrow]",
"hour" : "uint8[pyarrow]",
"PM2.5" : "float32[pyarrow]",
"PM10" : "float32[pyarrow]",
"SO2" : "float32[pyarrow]",
"NO2" : "float32[pyarrow]",
"CO" : "float32[pyarrow]",
"O3" : "float32[pyarrow]",
"TEMP" : "float32[pyarrow]",
"PRES" : "float32[pyarrow]",
"DEWP" : "float32[pyarrow]",
"RAIN" : "float32[pyarrow]",
"wd" : "string", # FIXME bug in pandas prevents using pyarrrow here.
"WSPM" : "float32[pyarrow]",
"station" : "string", # FIXME bug in pandas prevents using pyarrrow here.
# fmt: on
}
rawdata_schema = {
# fmt: off
"No" : "uint16[pyarrow]",
"year" : "uint16[pyarrow]",
"month" : "uint8[pyarrow]",
"day" : "uint8[pyarrow]",
"hour" : "uint8[pyarrow]",
"PM2.5" : "float32[pyarrow]",
"PM10" : "float32[pyarrow]",
"SO2" : "float32[pyarrow]",
"NO2" : "float32[pyarrow]",
"CO" : "float32[pyarrow]",
"O3" : "float32[pyarrow]",
"TEMP" : "float32[pyarrow]",
"PRES" : "float32[pyarrow]",
"DEWP" : "float32[pyarrow]",
"RAIN" : "float32[pyarrow]",
"wd" : "string", # FIXME bug in pandas prevents using pyarrrow here.
"WSPM" : "float32[pyarrow]",
"station" : "string",
# FIXME bug in pandas prevents using pyarrrow here.
# fmt: on
}
This code:
is changed to:
I expected the lines betwen
# fmt: off
and# fmt: on
to remain unchanged.Playground (master)