-
Notifications
You must be signed in to change notification settings - Fork 1
/
image_folder.py
32 lines (25 loc) · 1.44 KB
/
image_folder.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
from base_folder import *
logger = logging.getLogger("Faker")
class ImageFolder(BaseFolder):
def __init__(self, configuration, fake):
super().__init__(configuration, fake)
self.number_of_folders = configuration["number_of_image_folders"]
self.minimum_folder_depth = configuration["minimum_image_folder_depth"]
self.maximum_folder_depth = configuration["maximum_image_folder_depth"]
self.category = "image"
self.extension = random.choice(configuration["image_format"])
self.size = (configuration["image_height"], configuration["image_width"])
self.hue = random.choice(configuration["image_hue"])
def create_folder_structure(self, token):
for y in range(self.number_of_folders):
directory = self.create_dir(token, depth=self.get_folder_depth(), category=self.category)
for x in range(self.number_of_files_per_folder):
self.create_image(directory)
def create_image(self, directory):
file_name = self.fake.file_name(category="image", extension=self.extension)
image = self.fake.image(size=self.size, hue=self.hue, luminosity="random", image_format=self.extension)
if self.drop_zone_type == "direct":
self.write_direct_file(directory, file_name, image, "wb")
else:
self.write_mounted_file(directory, file_name, image, "wb")
logger.info(f"{indent3}{directory}/{file_name} was created")