| 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) |
|
|