1{
2 lib,
3 buildPythonPackage,
4 pythonOlder,
5 fetchFromGitHub,
6 poetry-core,
7 shapely,
8 pytestCheckHook,
9}:
10
11buildPythonPackage rec {
12 pname = "preprocess-cancellation";
13 version = "0.2.1";
14 disabled = pythonOlder "3.6"; # >= 3.6
15 pyproject = true;
16
17 # No tests in PyPI
18 src = fetchFromGitHub {
19 owner = "kageurufu";
20 repo = "cancelobject-preprocessor";
21 tag = version;
22 hash = "sha256-MJ4mwOFswLYHhg2LNZ+/ZwDvSjoxElVxlaWjArHV2NY=";
23 };
24
25 postPatch = ''
26 sed -i "/^addopts/d" pyproject.toml
27
28 cat >> pyproject.toml << EOF
29 [build-system]
30 requires = ["poetry-core"]
31 build-backend = "poetry.core.masonry.api"
32 EOF
33 '';
34
35 build-system = [
36 poetry-core
37 ];
38
39 optional-dependencies = {
40 shapely = [ shapely ];
41 };
42
43 nativeCheckInputs = [ pytestCheckHook ];
44
45 pythonImportsCheck = [ "preprocess_cancellation" ];
46
47 meta = with lib; {
48 description = "Klipper GCode Preprocessor for Object Cancellation";
49 homepage = "https://github.com/kageurufu/cancelobject-preprocessor";
50 license = licenses.gpl3Only;
51 maintainers = with maintainers; [ zhaofengli ];
52 };
53}