weed-sim / starter_loader.py
tostido's picture
WEED-SIM: evolutionary genetics sandbox with embedded Observer Bus
ae853c1
Raw
History Blame Contribute Delete
1.49 kB
import os
import json
from uuid import uuid4
from seed_profile import SeedProfile, GrowthStage
from trait_normalizer import expressed_rgb_from_alleles
PROFILE_FILE = os.path.join(os.path.dirname(__file__), "starter_profiles.json")
class StarterSeedLoader:
def __init__(self, catalog, name_generator):
self.catalog = catalog
self.name_generator = name_generator
def load_starter_seeds(self):
with open(PROFILE_FILE, "r") as f:
starter_profiles = json.load(f)
for profile in starter_profiles:
alleles = profile["alleles"]
leaf_rgb = expressed_rgb_from_alleles(alleles["LeafColor"])
bud_rgb = expressed_rgb_from_alleles(alleles["BudColor"])
base = profile["traits_base"]
seed = SeedProfile(
strain_name=profile["name"],
type=profile["type"],
alleles=alleles,
stabilities=profile["stabilities"],
thc=base["THC"],
cbd=base["CBD"],
yield_=base["Yield"],
grow_time=base["GrowTime"],
bud_color=bud_rgb,
leaf_color=leaf_rgb,
base_image_name=profile["base_image_name"],
growth_stage=GrowthStage.SEED,
lineage=(None, None),
description=profile.get("description", ""),
is_starter=True,
)
self.catalog.add_seed(seed)