biome: 1.9.2 -> 1.9.3 (#349335)
[NixPkgs.git] / pkgs / development / python-modules / yapf / default.nix
blob38e62c57eef8163d57ce7bea678ed632ac2fc3d1
2   lib,
3   buildPythonPackage,
4   fetchPypi,
5   setuptools,
6   importlib-metadata,
7   platformdirs,
8   tomli,
9   pythonOlder,
10   pytestCheckHook,
13 buildPythonPackage rec {
14   pname = "yapf";
15   version = "0.40.2";
16   pyproject = true;
18   disabled = pythonOlder "3.7";
20   src = fetchPypi {
21     inherit pname version;
22     hash = "sha256-TauKXtcTTibVfBZHx0g6+z8TaHi1eQYreGyboWuUY3s=";
23   };
25   build-system = [ setuptools ];
27   dependencies = [
28     importlib-metadata
29     platformdirs
30     tomli
31   ];
33   nativeCheckInputs = [ pytestCheckHook ];
35   meta = {
36     changelog = "https://github.com/google/yapf/blob/v${version}/CHANGELOG.md";
37     homepage = "https://github.com/google/yapf";
38     description = "Yet Another Python Formatter";
39     longDescription = ''
40       Most of the current formatters for Python --- e.g., autopep8, and pep8ify
41       --- are made to remove lint errors from code. This has some obvious
42       limitations. For instance, code that conforms to the PEP 8 guidelines may
43       not be reformatted. But it doesn't mean that the code looks good.
45       YAPF takes a different approach. It's based off of 'clang-format',
46       developed by Daniel Jasper. In essence, the algorithm takes the code and
47       reformats it to the best formatting that conforms to the style guide, even
48       if the original code didn't violate the style guide. The idea is also
49       similar to the 'gofmt' tool for the Go programming language: end all holy
50       wars about formatting - if the whole codebase of a project is simply piped
51       through YAPF whenever modifications are made, the style remains consistent
52       throughout the project and there's no point arguing about style in every
53       code review.
55       The ultimate goal is that the code YAPF produces is as good as the code
56       that a programmer would write if they were following the style guide. It
57       takes away some of the drudgery of maintaining your code.
58     '';
59     license = lib.licenses.asl20;
60     mainProgram = "yapf";
61     maintainers = with lib.maintainers; [
62       AndersonTorres
63       siddharthist
64     ];
65   };