Source code for blenderproc.python.modules.provider.sampler.Path

import random
from glob import glob
from random import choice

from blenderproc.python.modules.main.Provider import Provider
from blenderproc.python.utility.Utility import resolve_path


[docs]class Path(Provider): """ Samples a path to one of the files in folder defined by a path. Example 1: return a path to a random .obj file in the defined folder. .. code-block:: yaml { "provider": "sampler.Path", "path": "/home/path/to/folder/*.obj" } **Configuration**: .. list-table:: :widths: 25 100 10 :header-rows: 1 * - Parameter - Description - Type * - path - A path to a folder containing files. - string * - random_samples - Amount of samples, which should be returned - int * - return_all - If this is true the full list is returned - bool """ def __init__(self, config): Provider.__init__(self, config)
[docs] def run(self): """ Samples a path to an object. :return: A path to object. Type: string. """ # get path to folder path = resolve_path(self.config.get_string("path")) # get list of paths paths = glob(path) if self.config.has_param("return_all"): return paths elif self.config.has_param("random_samples"): return random.choices(paths, k=self.config.get_int("random_samples")) else: # chose a random one chosen_path = choice(paths) return chosen_path