lol

python3Packages.bpycv: refactor + passthru.tests

Signed-off-by: lucasew <lucas59356@gmail.com>

lucasew 3acc4aff fd34bc39

+43 -29
+8 -4
pkgs/development/python-modules/bpycv/bpycv-test.py
··· 5 5 import os 6 6 import glob 7 7 import random 8 + from pathlib import Path 8 9 9 10 example_data_dir = os.environ['BPY_EXAMPLE_DATA'] 11 + out_dir = Path(os.environ['out']) 12 + out_dir.mkdir(parents=True, exist_ok=True) 10 13 11 14 models = sorted(glob.glob(os.path.join(example_data_dir, "model", "*", "*.obj"))) 12 15 cat_id_to_model_path = dict(enumerate(sorted(models), 1)) ··· 19 22 bpy.context.scene.cycles.samples = 32 20 23 bpy.context.scene.render.resolution_y = 1024 21 24 bpy.context.scene.render.resolution_x = 1024 25 + bpy.context.view_layer.cycles.denoising_store_passes = False 22 26 23 27 # A transparency stage for holding rigid body 24 28 stage = bpycv.add_stage(transparency=True) ··· 69 73 # render image, instance annoatation and depth in one line code 70 74 result = bpycv.render_data() 71 75 72 - dataset_dir = "./dataset" 73 - result.save(dataset_dir=dataset_dir, fname="0", save_blend=True) 74 - print(f'Save to "{dataset_dir}"') 75 - print(f'Open "{dataset_dir}/vis/" to see visualize result.') 76 + 77 + result.save(dataset_dir=str(out_dir.resolve()), fname="0", save_blend=True) 78 + print(f'Save to "{out_dir}"') 79 + print(f'Open "{out_dir}/vis/" to see visualize result.') 76 80
+35 -25
pkgs/development/python-modules/bpycv/default.nix
··· 1 - { lib 1 + { stdenv 2 + , lib 3 + , beautifulsoup4 4 + , blender 5 + , blender-with-packages 6 + , boxx 7 + , bpycv 2 8 , buildPythonPackage 9 + , fetchFromGitHub 3 10 , fetchPypi 4 - , fetchFromGitHub 5 11 , fetchurl 12 + , minexr 13 + , opencv3 14 + , python3Packages 15 + , requests 16 + , runCommand 6 17 , writeText 7 - , blender 8 - , minexr 9 - , beautifulsoup4 10 18 , zcs 11 - , requests 12 - , opencv3 13 - , boxx 14 19 }: 15 20 16 21 buildPythonPackage rec { ··· 37 42 ''; 38 43 39 44 # pythonImportsCheck = [ "bpycv" ]; # this import depends on bpy that is only available inside blender 40 - nativeCheckInputs = [ blender ]; 41 - checkPhase = let 42 - bpycv_example_data = fetchFromGitHub { 43 - owner = "DIYer22"; 44 - repo = "bpycv_example_data"; 45 - hash = "sha256-dGb6KvbXTGTu5f4AqhA+i4AwTqBoR5SdXk0vsMEcD3Q="; 46 - rev = "6ce0e65c107d572011394da16ffdf851e988dbb4"; 47 - }; 48 - in '' 49 - TEMPDIR=$(mktemp -d) 50 - pushd $TEMPDIR 51 - cp -r ${bpycv_example_data} example_data 52 - chmod +w -R example_data 53 - BPY_EXAMPLE_DATA=${bpycv_example_data} blender -b -P ${./bpycv-test.py} 54 - popd 55 - ''; 45 + doCheck = false; 46 + 47 + passthru.tests = { 48 + render = runCommand "bpycv-render-test" { 49 + BPY_EXAMPLE_DATA = fetchFromGitHub { 50 + owner = "DIYer22"; 51 + repo = "bpycv_example_data"; 52 + hash = "sha256-dGb6KvbXTGTu5f4AqhA+i4AwTqBoR5SdXk0vsMEcD3Q="; 53 + rev = "6ce0e65c107d572011394da16ffdf851e988dbb4"; 54 + }; 55 + nativeBuildInputs = [ 56 + ((blender-with-packages.override {inherit blender python3Packages;}) { 57 + packages = [ bpycv ]; 58 + }) 59 + ]; 60 + } '' 61 + blender-wrapped -b -P ${./bpycv-test.py} 62 + ''; 63 + }; 56 64 57 65 meta = with lib; { 58 66 description = "Computer vision utils for Blender"; 59 67 homepage = "https://github.com/DIYer22/bpycv"; 60 68 license = licenses.mit; 61 - maintainers = with maintainers; [ lucasew ]; 69 + maintainers = [ maintainers.lucasew ]; 70 + broken = stdenv.isAarch64; 71 + inherit (blender.meta) platforms; 62 72 }; 63 73 }