def get(self) -> list: """Lists all models that satisfy certain conditions. Every parameter can be appeneded multiple times. :param workspace: search for models only in this workspace :param project: search for models only in this project :param hyperparam: search for models that have this hyperparameter :param param: search for models that have this parameter :returns: a list of objects """ parser = paginated_parser.copy() parser.add_argument("projects", type=str) args = parser.parse_args() # Initialize query builder query = Model.query paginated_query = query.paginate(args["page"], args["per_page"], False) return NestedResponse(schema=ModelLesserSchema, many=True, pagination=paginated_query).dump( paginated_query.items)
def get(self) -> list: parser = paginated_parser.copy() args = parser.parse_args() paginated_query = Project.query.paginate(args["page"], args["per_page"], False) return NestedResponse( schema=ProjectSchema, many=True, pagination=paginated_query ).dump(paginated_query.items)
def get(self) -> list: parser = paginated_parser.copy() args = parser.parse_args() # paginated_query = Tag.query.options(db.noload('models')).paginate(args["page"], args["per_page"], False) paginated_query = Tag.query.paginate(args["page"], args["per_page"], False) return NestedResponse(schema=TagSchema, exclude=("models", ), many=True, pagination=paginated_query).dump( paginated_query.items)
def get(self) -> list: """Lists all users. .. :quickref: Users; Get a collection of users. :return: a list of users """ parser = paginated_parser.copy() args = parser.parse_args() paginated_query = User.query.paginate(args["page"], args["per_page"], False) return NestedResponse(schema=UserSchema, many=True, pagination=paginated_query).dump( paginated_query.items)
def get(self) -> list: """Lists all projects. .. :quickref: Projects; Get a collection of projects. :param search: lists only projects that contain the name like `search` :return: a list of projects """ parser = paginated_parser.copy() args = parser.parse_args() paginated_query = Project.query.paginate(args["page"], args["per_page"], False) return NestedResponse(schema=ProjectSchema, many=True, pagination=paginated_query).dump( paginated_query.items)
def get(self) -> list: """Lists all models that satisfy certain conditions. .. :quickref: Models; Get a collection of models. Every parameter can be appended multiple times. :param workspace: search for models only in this workspace :param project: search for models only in this project :param hyperparam: search for models that have this hyperparameter :param param: search for models that have this parameter :returns: a list of objects """ parser = paginated_parser.copy() parser.add_argument("workspace", type=int) parser.add_argument("projects", type=str) parser.add_argument("hyperparameters", type=str) parser.add_argument("parameters", type=str) parser.add_argument("metrics", type=str) parser.add_argument("users", type=str) args = parser.parse_args() # Initialize query builder query = Model.query if args["workspace"]: # TODO: add fetching models from multiple workspaces # query = query.filter() pass if args["projects"]: query = query.filter( Model.project_id.in_(args["projects"].split(","))) if args["users"]: query = query.filter(Model.user_id.in_(args["users"].split(","))) # if args["hyperparameters"]: # # Filtering through hyperparameters. # # Every result has to contain ALL of the requested keys # query = query.filter( # Model.hyperparameters.has_all( # postgres_array(args["hyperparameters"].split(",")) # ) # ) # if args["parameters"]: # # Filtering through parameters. # # Every result has to contain ALL of the requested keys # query = query.filter( # Model.parameters.has_all(postgres_array(args["parameters"].split(","))) # ) if args["metrics"]: # Filtering through metrics. # Every result has to contain ALL of the requested keys query = query.filter( Model.metrics.has_all( postgres_array(args["metrics"].split(",")))) paginated_query = query.paginate(args["page"], args["per_page"], False) return NestedResponse( schema=ModelSchema, exclude=("parameters", "hyperparameters", "metrics"), many=True, pagination=paginated_query, ).dump(paginated_query.items)