mirror of
https://github.com/Novartis/cellxgene-gateway.git
synced 2026-09-30 10:28:12 +08:00
the first commit
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
# Copyright 2019 Novartis Institutes for BioMedical Research Inc. Licensed
|
||||
# under the Apache License, Version 2.0 (the "License"); you may not use
|
||||
# this file except in compliance with the License. You may obtain a copy
|
||||
# of the License at http://www.apache.org/licenses/LICENSE-2.0. Unless
|
||||
# required by applicable law or agreed to in writing, software distributed
|
||||
# under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
|
||||
# OR CONDITIONS OF ANY KIND, either express or implied. See the License for
|
||||
# the specific language governing permissions and limitations under the License.
|
||||
|
||||
import os
|
||||
|
||||
from flask_api import status
|
||||
|
||||
import env
|
||||
from cellxgene_exception import CellxgeneException
|
||||
|
||||
|
||||
def get_dataset(path):
|
||||
if path == "/" or path == "":
|
||||
raise CellxgeneException(
|
||||
"No matching dataset found.", status.HTTP_404_NOT_FOUND
|
||||
)
|
||||
|
||||
trimmed = path[:-1] if path[-1] == "/" else path
|
||||
|
||||
try:
|
||||
get_file_path(trimmed)
|
||||
return trimmed
|
||||
except CellxgeneException:
|
||||
split = os.path.split(trimmed)
|
||||
return get_dataset(split[0])
|
||||
|
||||
|
||||
def validate_path(file_path):
|
||||
if not os.path.exists(file_path):
|
||||
raise CellxgeneException(
|
||||
"File does not exist: " + file_path, status.HTTP_400_BAD_REQUEST
|
||||
)
|
||||
if not os.path.isfile(file_path):
|
||||
raise CellxgeneException(
|
||||
"Path is not file: " + file_path, status.HTTP_400_BAD_REQUEST
|
||||
)
|
||||
return
|
||||
|
||||
|
||||
def get_file_path(dataset):
|
||||
file_path = os.path.join(env.cellxgene_data, dataset)
|
||||
validate_path(file_path)
|
||||
return file_path
|
||||
Reference in New Issue
Block a user