def get_all(call: APICall, company_id, _): conform_tag_fields(call, call.data) escape_execution_parameters(call) with translate_errors_context(): with TimingContext("mongo", "task_get_all"): tasks = Task.get_many( company=company_id, parameters=call.data, query_dict=call.data, allow_public=True, # required in case projection is requested for public dataset/versions ) unprepare_from_saved(call, tasks) call.result.data = {"tasks": tasks}
def get_by_id_ex(call: APICall, company_id, _): conform_tag_fields(call, call.data) call_data = escape_execution_parameters(call) with translate_errors_context(): with TimingContext("mongo", "task_get_by_id_ex"): tasks = Task.get_many_with_join( company=company_id, query_dict=call_data, allow_public=True, ) unprepare_from_saved(call, tasks) call.result.data = {"tasks": tasks}
def get_all(call: APICall, company_id, _): conform_tag_fields(call, call.data) Metadata.escape_query_parameters(call) with TimingContext("mongo", "models_get_all"): ret_params = {} models = Model.get_many( company=company_id, parameters=call.data, query_dict=call.data, allow_public=True, ret_params=ret_params, ) conform_output_tags(call, models) unescape_metadata(call, models) call.result.data = {"models": models, **ret_params}
def get_all(call: APICall): conform_tag_fields(call, call.data) data = call.data _adjust_search_parameters(data, shallow_search=data.get("shallow_search", False)) with translate_errors_context(), TimingContext("mongo", "projects_get_all"): projects = Project.get_many( company=call.identity.company, query_dict=data, parameters=data, allow_public=True, ) conform_output_tags(call, projects) call.result.data = {"projects": projects}
def get_all(call: APICall, company_id, _): conform_tag_fields(call, call.data) call_data = escape_execution_parameters(call) with TimingContext("mongo", "task_get_all"): ret_params = {} tasks = Task.get_many( company=company_id, parameters=call_data, query_dict=call_data, allow_public=True, ret_params=ret_params, ) unprepare_from_saved(call, tasks) call.result.data = {"tasks": tasks, **ret_params}
def prepare_for_save(call: APICall, fields: dict, previous_task: Task = None): conform_tag_fields(call, fields, validate=True) params_prepare_for_save(fields, previous_task=previous_task) artifacts_prepare_for_save(fields) # Strip all script fields (remove leading and trailing whitespace chars) to avoid unusable names and paths for field in task_script_stripped_fields: try: path = f"script/{field}" value = dpath.get(fields, path) if isinstance(value, str): value = value.strip() dpath.set(fields, path, value) except KeyError: pass return fields
def prepare_for_save(call: APICall, fields: dict, previous_task: Task = None): conform_tag_fields(call, fields, validate=True) params_prepare_for_save(fields, previous_task=previous_task) artifacts_prepare_for_save(fields) ModelsBackwardsCompatibility.prepare_for_save(call, fields) DockerCmdBackwardsCompatibility.prepare_for_save(call, fields) for path in dict_fields_paths: escape_dict_field(fields, path) # Strip all script fields (remove leading and trailing whitespace chars) to avoid unusable names and paths script = fields.get("script") if script: for field in task_script_stripped_fields: value = script.get(field) if isinstance(value, str): script[field] = value.strip() return fields
def update(call: APICall): """ update :summary: Update project information. See `project.create` for parameters. :return: updated - `int` - number of projects updated fields - `[string]` - updated fields """ fields = parse_from_call(call.data, create_fields, Project.get_fields(), discard_none_values=False) conform_tag_fields(call, fields, validate=True) updated = ProjectBLL.update(company=call.identity.company, project_id=call.data["project"], **fields) conform_output_tags(call, fields) call.result.data_model = UpdateResponse(updated=updated, fields=fields)
def get_all(call: APICall): conform_tag_fields(call, call.data) queues = queue_bll.get_all(company_id=call.identity.company, query_dict=call.data) conform_output_tags(call, queues) call.result.data = {"queues": queues}
def get_all_ex(call: APICall, company_id: str, request: ProjectsGetRequest): conform_tag_fields(call, call.data) allow_public = not request.non_public data = call.data requested_ids = data.get("id") with TimingContext("mongo", "projects_get_all"): data = call.data if request.active_users: ids = project_bll.get_projects_with_active_user( company=company_id, users=request.active_users, project_ids=requested_ids, allow_public=allow_public, ) if not ids: call.result.data = {"projects": []} return data["id"] = ids _adjust_search_parameters(data, shallow_search=request.shallow_search) ret_params = {} projects = Project.get_many_with_join( company=company_id, query_dict=data, allow_public=allow_public, ret_params=ret_params, ) if request.check_own_contents and requested_ids: existing_requested_ids = { project["id"] for project in projects if project["id"] in requested_ids } if existing_requested_ids: contents = project_bll.calc_own_contents( company=company_id, project_ids=list(existing_requested_ids), filter_=request.include_stats_filter, ) for project in projects: project.update(**contents.get(project["id"], {})) conform_output_tags(call, projects) if not request.include_stats: call.result.data = {"projects": projects, **ret_params} return project_ids = {project["id"] for project in projects} stats, children = project_bll.get_project_stats( company=company_id, project_ids=list(project_ids), specific_state=request.stats_for_state, include_children=request.stats_with_children, filter_=request.include_stats_filter, ) for project in projects: project["stats"] = stats[project["id"]] project["sub_projects"] = children[project["id"]] call.result.data = {"projects": projects, **ret_params}
def parse_model_fields(call, valid_fields): fields = parse_from_call(call.data, valid_fields, Model.get_fields()) conform_tag_fields(call, fields, validate=True) escape_metadata(fields) return fields