diff --git a/jass/models/phenotype.py b/jass/models/phenotype.py index f3fbcaae82c65ae1c1b4d7d549dbd622f2b207ec..b19bb5d7beeca5c02de5e683764ad4ced3cabe78 100644 --- a/jass/models/phenotype.py +++ b/jass/models/phenotype.py @@ -1,10 +1,13 @@ # coding: utf-8 from typing import List, Optional +import os import pandas import re from pydantic import BaseModel, validator +from jass.config import config + class Phenotype(BaseModel): """ @@ -85,5 +88,8 @@ class InitTableNameModel(BaseModel): raise ValueError(f"Prohibited char, only \"{_initTableNamePattern.pattern}\" allowed.") return value + def get_init_table_path(self): + return os.path.join(config["DATA_DIR"], self.initTableName) + class PhenotypeIdList(InitTableNameModel, BaseModel): phenotypeID: List[str] = [] diff --git a/jass/server.py b/jass/server.py index 2b6cbb58fecd7e21a79a70c8799041a7ee20bc4d..66aa31e32cc2ae71ba0aff71391790efa972d3a5 100644 --- a/jass/server.py +++ b/jass/server.py @@ -56,14 +56,14 @@ async def read_index(): def phenotypes_list(init_table_name: InitTableNameModel): """List phenotypes""" try: - return get_available_phenotypes(os.path.join(config["DATA_DIR"], init_table_name.initTableName)) + return get_available_phenotypes(init_table_name.get_init_table_path()) except FileNotFoundError as e: # initTable does not exists raise HTTPException(status_code=404, detail=str(e)) @app.post("/api/initmeta") def inittable_meta(init_table_name: InitTableNameModel): """Number of phenotype and SNPs""" - return get_inittable_meta(os.path.join(config["DATA_DIR"], "initTable.hdf5")) + return get_inittable_meta(init_table_name.get_init_table_path()) @app.post("/api/projects", response_model=GlobalProject)