Loading pkgs/development/python-modules/hypothesmith/default.nix +10 −23 Original line number Diff line number Diff line { lib, black, buildPythonPackage, fetchPypi, hypothesis, Loading @@ -7,59 +8,45 @@ libcst, parso, pytestCheckHook, pytest-cov-stub, pytest-xdist, pythonOlder, setuptools, }: buildPythonPackage rec { pname = "hypothesmith"; version = "0.3.3"; format = "setuptools"; pyproject = true; disabled = pythonOlder "3.8"; disabled = pythonOlder "3.9"; src = fetchPypi { inherit pname version; hash = "sha256-lsFIAtbI6F2JdSZBdoeNtUso0u2SH9v+3C5rjOPIFxY="; }; patches = [ ./remove-black.patch ]; build-system = [ setuptools ]; postPatch = '' substituteInPlace setup.py \ --replace "lark-parser" "lark" substituteInPlace tox.ini \ --replace "--cov=hypothesmith" "" \ --replace "--cov-branch" "" \ --replace "--cov-report=term-missing:skip-covered" "" \ --replace "--cov-fail-under=100" "" ''; propagatedBuildInputs = [ dependencies = [ hypothesis lark libcst ]; nativeCheckInputs = [ black parso pytestCheckHook pytest-cov-stub pytest-xdist ]; pytestFlagsArray = [ "-v" ]; disabledTests = [ # https://github.com/Zac-HD/hypothesmith/issues/21 # super slow "test_source_code_from_libcst_node_type" ]; disabledTestPaths = [ # missing blib2to3 "tests/test_syntactic.py" ]; pythonImportsCheck = [ "hypothesmith" ]; meta = with lib; { Loading pkgs/development/python-modules/hypothesmith/remove-black.patchdeleted 100644 → 0 +0 −87 Original line number Diff line number Diff line diff --git a/tests/test_cst.py b/tests/test_cst.py index 8532240..bdba2d7 100644 --- a/tests/test_cst.py +++ b/tests/test_cst.py @@ -3,7 +3,6 @@ import ast from inspect import isabstract from operator import attrgetter -import black import libcst import parso import pytest @@ -51,27 +50,6 @@ def test_ast_unparse_from_nodes(source_code): assert ast.dump(first) == ast.dump(second) -@pytest.mark.xfail -@example("A\u2592", black.Mode()) -@given( - source_code=hypothesmith.from_node(), - mode=st.builds( - black.Mode, - line_length=st.just(88) | st.integers(0, 200), - string_normalization=st.booleans(), - is_pyi=st.booleans(), - ), -) -def test_black_autoformatter_from_nodes(source_code, mode): - try: - result = black.format_file_contents(source_code, fast=False, mode=mode) - except black.NothingChanged: - pass - else: - with pytest.raises(black.NothingChanged): - black.format_file_contents(result, fast=False, mode=mode) - - @given(source_code=hypothesmith.from_node()) def test_from_node_always_compilable(source_code): compile(source_code, "<string>", "exec") diff --git a/tests/test_syntactic.py b/tests/test_syntactic.py index 7fe9835..17c4f7c 100644 --- a/tests/test_syntactic.py +++ b/tests/test_syntactic.py @@ -3,7 +3,6 @@ import ast import io import tokenize -import black import blib2to3 import parso import pytest @@ -58,34 +57,6 @@ def test_ast_unparse_from_grammar(source_code): assert ast.dump(first) == ast.dump(second) -@example("\\", black.Mode()) -@example("A#\r#", black.Mode()) -@given( - source_code=hypothesmith.from_grammar(), - mode=st.builds( - black.Mode, - line_length=st.just(88) | st.integers(0, 200), - string_normalization=st.booleans(), - is_pyi=st.booleans(), - ), -) -def test_black_autoformatter_from_grammar(source_code, mode): - try: - result = black.format_file_contents(source_code, fast=False, mode=mode) - except black.NothingChanged: - pass - except blib2to3.pgen2.tokenize.TokenError: - # Fails to tokenise e.g. "\\", though compile("\\", "<string>", "exec") works. - # See https://github.com/psf/black/issues/1012 - reject() - except black.InvalidInput: - # e.g. "A#\r#", see https://github.com/psf/black/issues/970 - reject() - else: - with pytest.raises(black.NothingChanged): - black.format_file_contents(result, fast=False, mode=mode) - - @given(source_code=hypothesmith.from_grammar("eval_input")) def test_eval_input_generation(source_code): compile(source_code, filename="<string>", mode="eval") pkgs/development/python-modules/libcst/default.nix +29 −25 Original line number Diff line number Diff line Loading @@ -3,8 +3,10 @@ stdenv, buildPythonPackage, fetchFromGitHub, callPackage, cargo, hypothesis, hypothesmith, libcst, libiconv, pytestCheckHook, python, Loading @@ -16,14 +18,15 @@ setuptools-scm, typing-extensions, typing-inspect, ufmt, }: buildPythonPackage rec { pname = "libcst"; version = "1.4.0"; format = "pyproject"; pyproject = true; disabled = pythonOlder "3.7"; disabled = pythonOlder "3.9"; src = fetchFromGitHub { owner = "instagram"; Loading @@ -41,15 +44,12 @@ buildPythonPackage rec { cargoRoot = "native"; postPatch = '' # avoid infinite recursion by not formatting the release files substituteInPlace libcst/codegen/generate.py \ --replace '"ufmt"' '"true"' ''; nativeBuildInputs = [ build-system = [ setuptools-rust setuptools-scm ]; nativeBuildInputs = [ rustPlatform.cargoSetupHook cargo rustc Loading @@ -57,44 +57,48 @@ buildPythonPackage rec { buildInputs = lib.optionals stdenv.isDarwin [ libiconv ]; propagatedBuildInputs = [ dependencies = [ typing-extensions typing-inspect pyyaml ]; nativeCheckInputs = [ hypothesis hypothesmith pytestCheckHook ufmt ]; preCheck = '' # otherwise import libcst.native fails cp build/lib.*/libcst/native.* libcst/ ${python.interpreter} -m libcst.codegen.generate visitors ${python.interpreter} -m libcst.codegen.generate return_types # Can't run all tests due to circular dependency on hypothesmith -> libcst rm -r {libcst/tests,libcst/codegen/tests,libcst/m*/tests} # import from $out instead rm libcst/__init__.py ''; disabledTests = [ # No files are generated "test_codemod_formatter_error_input" # FIXME package pyre-test "TypeInferenceProviderTest" # we'd need to run `python -m libcst.codegen.generate all` but shouldn't modify $out "test_codegen_clean_visitor_functions" ]; # circular dependency on hypothesmith and ufmt doCheck = false; passthru.tests = { pytest = libcst.overridePythonAttrs { doCheck = true; }; }; pythonImportsCheck = [ "libcst" ]; meta = with lib; { meta = { description = "Concrete Syntax Tree (CST) parser and serializer library for Python"; homepage = "https://github.com/Instagram/libcst"; changelog = "https://github.com/Instagram/LibCST/blob/v${version}/CHANGELOG.md"; license = with licenses; [ license = with lib.licenses; [ mit asl20 psfl ]; maintainers = [ ]; maintainers = with lib.maintainers; [ dotlambda ]; }; } Loading
pkgs/development/python-modules/hypothesmith/default.nix +10 −23 Original line number Diff line number Diff line { lib, black, buildPythonPackage, fetchPypi, hypothesis, Loading @@ -7,59 +8,45 @@ libcst, parso, pytestCheckHook, pytest-cov-stub, pytest-xdist, pythonOlder, setuptools, }: buildPythonPackage rec { pname = "hypothesmith"; version = "0.3.3"; format = "setuptools"; pyproject = true; disabled = pythonOlder "3.8"; disabled = pythonOlder "3.9"; src = fetchPypi { inherit pname version; hash = "sha256-lsFIAtbI6F2JdSZBdoeNtUso0u2SH9v+3C5rjOPIFxY="; }; patches = [ ./remove-black.patch ]; build-system = [ setuptools ]; postPatch = '' substituteInPlace setup.py \ --replace "lark-parser" "lark" substituteInPlace tox.ini \ --replace "--cov=hypothesmith" "" \ --replace "--cov-branch" "" \ --replace "--cov-report=term-missing:skip-covered" "" \ --replace "--cov-fail-under=100" "" ''; propagatedBuildInputs = [ dependencies = [ hypothesis lark libcst ]; nativeCheckInputs = [ black parso pytestCheckHook pytest-cov-stub pytest-xdist ]; pytestFlagsArray = [ "-v" ]; disabledTests = [ # https://github.com/Zac-HD/hypothesmith/issues/21 # super slow "test_source_code_from_libcst_node_type" ]; disabledTestPaths = [ # missing blib2to3 "tests/test_syntactic.py" ]; pythonImportsCheck = [ "hypothesmith" ]; meta = with lib; { Loading
pkgs/development/python-modules/hypothesmith/remove-black.patchdeleted 100644 → 0 +0 −87 Original line number Diff line number Diff line diff --git a/tests/test_cst.py b/tests/test_cst.py index 8532240..bdba2d7 100644 --- a/tests/test_cst.py +++ b/tests/test_cst.py @@ -3,7 +3,6 @@ import ast from inspect import isabstract from operator import attrgetter -import black import libcst import parso import pytest @@ -51,27 +50,6 @@ def test_ast_unparse_from_nodes(source_code): assert ast.dump(first) == ast.dump(second) -@pytest.mark.xfail -@example("A\u2592", black.Mode()) -@given( - source_code=hypothesmith.from_node(), - mode=st.builds( - black.Mode, - line_length=st.just(88) | st.integers(0, 200), - string_normalization=st.booleans(), - is_pyi=st.booleans(), - ), -) -def test_black_autoformatter_from_nodes(source_code, mode): - try: - result = black.format_file_contents(source_code, fast=False, mode=mode) - except black.NothingChanged: - pass - else: - with pytest.raises(black.NothingChanged): - black.format_file_contents(result, fast=False, mode=mode) - - @given(source_code=hypothesmith.from_node()) def test_from_node_always_compilable(source_code): compile(source_code, "<string>", "exec") diff --git a/tests/test_syntactic.py b/tests/test_syntactic.py index 7fe9835..17c4f7c 100644 --- a/tests/test_syntactic.py +++ b/tests/test_syntactic.py @@ -3,7 +3,6 @@ import ast import io import tokenize -import black import blib2to3 import parso import pytest @@ -58,34 +57,6 @@ def test_ast_unparse_from_grammar(source_code): assert ast.dump(first) == ast.dump(second) -@example("\\", black.Mode()) -@example("A#\r#", black.Mode()) -@given( - source_code=hypothesmith.from_grammar(), - mode=st.builds( - black.Mode, - line_length=st.just(88) | st.integers(0, 200), - string_normalization=st.booleans(), - is_pyi=st.booleans(), - ), -) -def test_black_autoformatter_from_grammar(source_code, mode): - try: - result = black.format_file_contents(source_code, fast=False, mode=mode) - except black.NothingChanged: - pass - except blib2to3.pgen2.tokenize.TokenError: - # Fails to tokenise e.g. "\\", though compile("\\", "<string>", "exec") works. - # See https://github.com/psf/black/issues/1012 - reject() - except black.InvalidInput: - # e.g. "A#\r#", see https://github.com/psf/black/issues/970 - reject() - else: - with pytest.raises(black.NothingChanged): - black.format_file_contents(result, fast=False, mode=mode) - - @given(source_code=hypothesmith.from_grammar("eval_input")) def test_eval_input_generation(source_code): compile(source_code, filename="<string>", mode="eval")
pkgs/development/python-modules/libcst/default.nix +29 −25 Original line number Diff line number Diff line Loading @@ -3,8 +3,10 @@ stdenv, buildPythonPackage, fetchFromGitHub, callPackage, cargo, hypothesis, hypothesmith, libcst, libiconv, pytestCheckHook, python, Loading @@ -16,14 +18,15 @@ setuptools-scm, typing-extensions, typing-inspect, ufmt, }: buildPythonPackage rec { pname = "libcst"; version = "1.4.0"; format = "pyproject"; pyproject = true; disabled = pythonOlder "3.7"; disabled = pythonOlder "3.9"; src = fetchFromGitHub { owner = "instagram"; Loading @@ -41,15 +44,12 @@ buildPythonPackage rec { cargoRoot = "native"; postPatch = '' # avoid infinite recursion by not formatting the release files substituteInPlace libcst/codegen/generate.py \ --replace '"ufmt"' '"true"' ''; nativeBuildInputs = [ build-system = [ setuptools-rust setuptools-scm ]; nativeBuildInputs = [ rustPlatform.cargoSetupHook cargo rustc Loading @@ -57,44 +57,48 @@ buildPythonPackage rec { buildInputs = lib.optionals stdenv.isDarwin [ libiconv ]; propagatedBuildInputs = [ dependencies = [ typing-extensions typing-inspect pyyaml ]; nativeCheckInputs = [ hypothesis hypothesmith pytestCheckHook ufmt ]; preCheck = '' # otherwise import libcst.native fails cp build/lib.*/libcst/native.* libcst/ ${python.interpreter} -m libcst.codegen.generate visitors ${python.interpreter} -m libcst.codegen.generate return_types # Can't run all tests due to circular dependency on hypothesmith -> libcst rm -r {libcst/tests,libcst/codegen/tests,libcst/m*/tests} # import from $out instead rm libcst/__init__.py ''; disabledTests = [ # No files are generated "test_codemod_formatter_error_input" # FIXME package pyre-test "TypeInferenceProviderTest" # we'd need to run `python -m libcst.codegen.generate all` but shouldn't modify $out "test_codegen_clean_visitor_functions" ]; # circular dependency on hypothesmith and ufmt doCheck = false; passthru.tests = { pytest = libcst.overridePythonAttrs { doCheck = true; }; }; pythonImportsCheck = [ "libcst" ]; meta = with lib; { meta = { description = "Concrete Syntax Tree (CST) parser and serializer library for Python"; homepage = "https://github.com/Instagram/libcst"; changelog = "https://github.com/Instagram/LibCST/blob/v${version}/CHANGELOG.md"; license = with licenses; [ license = with lib.licenses; [ mit asl20 psfl ]; maintainers = [ ]; maintainers = with lib.maintainers; [ dotlambda ]; }; }