def upload_zipped_flat_media_files( gc: GirderClient, manager: JobManager, folderId: str, working_directory: Path, create_subfolder=False, ): """Takes a flat folder of media files and/or annotation and generates a dataset from it""" listOfFileNames = os.listdir(working_directory) validation = gc.sendRestRequest('POST', '/dive_dataset/validate_files', json=listOfFileNames) root_folderId = folderId default_fps = gc.getFolder(root_folderId).get( f"meta.{constants.FPSMarker}", -1) if validation.get('ok', False): manager.write(f"Annotations: {validation['annotations']}\n") manager.write(f"Media: {validation['media']}\n") dataset_type = validation['type'] manager.write(f"Type: {dataset_type}\n") if create_subfolder != '': sub_folder = gc.createFolder( folderId, create_subfolder, reuseExisting=True, ) root_folderId = str(sub_folder["_id"]) # Upload all resulting items back into the root folder manager.updateStatus(JobStatus.PUSHING_OUTPUT) # create a source folder to place the zipFile inside of gc.upload(f'{working_directory}/*', root_folderId) if dataset_type == constants.ImageSequenceType and default_fps == -1: default_fps = 1 gc.addMetadataToFolder( str(root_folderId), { constants.TypeMarker: dataset_type, constants.FPSMarker: default_fps }, ) # After uploading the default files we do a the postprocess for video conversion now gc.sendRestRequest("POST", f"/dive_rpc/postprocess/{str(root_folderId)}") else: manager.write(f"Message: {validation['message']}\n") raise Exception("Could not Validate media Files")
def import_calc(config): try: target_port = None if config.port: target_port = config.port target_scheme = None if config.scheme: target_scheme = config.scheme target_apiroot = None if config.apiroot: target_apiroot = config.apiroot client = GirderClient(host=config.host, port=target_port, scheme=target_scheme, apiRoot=target_apiroot) client.authenticate(apiKey=config.apiKey) me = client.get('/user/me') if not me: print('Error: Girder token invalid, please verify') return folderParams = { 'parentId': me['_id'], 'parentType': 'user', 'name': 'Private' } # Get the private folder id first folder = next(client.listResource('folder', folderParams)) folder = next(client.listFolder(me['_id'], 'user', 'Private')) for file_name in config.datafile: print ('\nUploading ' + file_name) file_id = {} with open(file_name, 'r') as fp: fileNameBase = os.path.basename(file_name) size = os.path.getsize(file_name) file_id = client.uploadFile(folder['_id'], fp, fileNameBase, size, 'folder') body = { 'fileId': file_id['_id'] } if config.public: body['public'] = True mol = client.sendRestRequest('POST', 'molecules', data=json.dumps(body)) if mol and '_id' in mol: config.moleculeId = mol['_id'] print('Molecule ID: ' + mol['_id']) else: print(mol) except HttpError as error: print(error.responseText, file=sys.stderr)
from girder_client import GirderClient c = GirderClient(host='localhost', port=9000) # Create an admin user if there isn't one try: c.authenticate('girder', 'girder') except: c.sendRestRequest( 'POST', 'user', { "login": "******", "password": "******", "email": "*****@*****.**", "firstName": "Girder", "lastName": "Admin" }) c.authenticate('girder', 'girder') # Create a tangelo hub collection if there isn't one coll_search = c.get('resource/search', parameters={ 'q': 'Default', 'types': '["collection"]' }) if len(coll_search["collection"]) == 0: collection = c.post('collection', parameters={ 'name': 'Default', 'description': 'Default workspace', 'public': 'true' })
from girder_client import GirderClient c = GirderClient(host="localhost", port=9000) # Create an admin user if there isn't one try: c.authenticate("girder", "girder") except: c.sendRestRequest( "POST", "user", { "login": "******", "password": "******", "email": "*****@*****.**", "firstName": "Girder", "lastName": "Admin", }, ) c.authenticate("girder", "girder") # Create a tangelo hub collection if there isn't one coll_search = c.get("resource/search", parameters={"q": "Default", "types": '["collection"]'}) if len(coll_search["collection"]) == 0: collection = c.post( "collection", parameters={"name": "Default", "description": "Default workspace", "public": "true"} ) c.post( "folder", parameters={ "parentType": "collection",