def load(info): registerAccessFlag(constants.ACCESS_FLAG_EXECUTE_TASK, name='Execute analyses', admin=True) TokenScope.describeScope( constants.TOKEN_SCOPE_EXECUTE_TASK, name='Execute tasks', description='Execute item tasks.') TokenScope.describeScope( constants.TOKEN_SCOPE_AUTO_CREATE_CLI, 'Item task auto-creation', 'Create new CLIs via automatic introspection.', admin=True) ModelImporter.model('item').ensureIndex(['meta.isItemTask', {'sparse': True}]) ModelImporter.model('item').exposeFields(level=AccessType.READ, fields='createdByJob') ModelImporter.model('job', 'jobs').exposeFields(level=AccessType.READ, fields={ 'itemTaskId', 'itemTaskBindings'}) events.bind('jobs.job.update', info['name'], _onJobSave) events.bind('data.process', info['name'], _onUpload) info['apiRoot'].item_task = ItemTask() info['apiRoot'].item.route('POST', (':id', 'item_task_slicer_cli_description'), runSlicerCliTasksDescriptionForItem) info['apiRoot'].item.route('PUT', (':id', 'item_task_slicer_cli_xml'), configureItemTaskFromSlicerCliXml) info['apiRoot'].item.route('POST', (':id', 'item_task_json_description'), runJsonTasksDescriptionForItem) info['apiRoot'].item.route('PUT', (':id', 'item_task_json_specs'), configureItemTaskFromJson) info['apiRoot'].folder.route('POST', (':id', 'item_task_slicer_cli_description'), runSlicerCliTasksDescriptionForFolder) info['apiRoot'].folder.route('POST', (':id', 'item_task_slicer_cli_xml'), createItemTasksFromSlicerCliXml) info['apiRoot'].folder.route('POST', (':id', 'item_task_json_description'), runJsonTasksDescriptionForFolder) info['apiRoot'].folder.route('POST', (':id', 'item_task_json_specs'), createItemTasksFromJson)
def load(info): registerAccessFlag(constants.ACCESS_FLAG_EXECUTE_TASK, name='Execute analyses', admin=True) TokenScope.describeScope(constants.TOKEN_SCOPE_EXECUTE_TASK, name='Execute tasks', description='Execute item tasks.') TokenScope.describeScope(constants.TOKEN_SCOPE_AUTO_CREATE_CLI, 'Item task auto-creation', 'Create new CLIs via automatic introspection.', admin=True) ModelImporter.model('item').ensureIndex( ['meta.isItemTask', { 'sparse': True }]) ModelImporter.model('item').exposeFields(level=AccessType.READ, fields='createdByJob') ModelImporter.model('job', 'jobs').exposeFields( level=AccessType.READ, fields={'itemTaskId', 'itemTaskBindings'}) events.bind('jobs.job.update', info['name'], _onJobSave) events.bind('data.process', info['name'], _onUpload) info['apiRoot'].item_task = ItemTask()
def __init__(self): self.resourceName = 'smqtk' self.route('GET', ('settings',), self.settings) self.route('POST', ('process_images',), self.processImages) TokenScope.describeScope(SMQTK_SETTING_READ, 'Read SMQTK settings', 'Allow clients to look up the SMQTK settings, including private ' 'fields such as database credentials.')
def __init__(self): self.resourceName = 'smqtk' self.route('GET', ('settings', ), self.settings) self.route('POST', ('process_images', ), self.processImages) TokenScope.describeScope( SMQTK_SETTING_READ, 'Read SMQTK settings', 'Allow clients to look up the SMQTK settings, including private ' 'fields such as database credentials.')
def load(info): registerAccessFlag(constants.ACCESS_FLAG_EXECUTE_TASK, name='Execute analyses', admin=True) TokenScope.describeScope(constants.TOKEN_SCOPE_EXECUTE_TASK, name='Execute tasks', description='Execute item tasks.') TokenScope.describeScope(constants.TOKEN_SCOPE_AUTO_CREATE_CLI, 'Item task auto-creation', 'Create new CLIs via automatic introspection.', admin=True) ModelImporter.model('item').ensureIndex( ['meta.isItemTask', { 'sparse': True }]) ModelImporter.model('item').exposeFields(level=AccessType.READ, fields='createdByJob') ModelImporter.model('job', 'jobs').exposeFields( level=AccessType.READ, fields={'itemTaskId', 'itemTaskBindings'}) events.bind('jobs.job.update', info['name'], _onJobSave) events.bind('data.process', info['name'], _onUpload) info['apiRoot'].item_task = ItemTask() info['apiRoot'].item.route('POST', (':id', 'item_task_slicer_cli_description'), runSlicerCliTasksDescriptionForItem) info['apiRoot'].item.route('PUT', (':id', 'item_task_slicer_cli_xml'), configureItemTaskFromSlicerCliXml) info['apiRoot'].item.route('POST', (':id', 'item_task_json_description'), runJsonTasksDescriptionForItem) info['apiRoot'].item.route('PUT', (':id', 'item_task_json_specs'), configureItemTaskFromJson) info['apiRoot'].folder.route('POST', (':id', 'item_task_slicer_cli_description'), runSlicerCliTasksDescriptionForFolder) info['apiRoot'].folder.route('POST', (':id', 'item_task_slicer_cli_xml'), createItemTasksFromSlicerCliXml) info['apiRoot'].folder.route('POST', (':id', 'item_task_json_description'), runJsonTasksDescriptionForFolder) info['apiRoot'].folder.route('POST', (':id', 'item_task_json_specs'), createItemTasksFromJson)
from girder_worker.docker.tasks import docker_run from girder_worker.docker.transforms import VolumePath from girder_worker.docker.transforms.girder import ( GirderFolderIdToVolume, GirderUploadVolumePathToFolder, GirderFileIdToVolume, ProgressPipe) from PIL import Image CLEANUP_TOKEN_SCOPE = 'stroke_ct.cleanup' DATE_FMT = '%A %B %-d, %Y' DAYS_UNTIL_EMAIL = 7 DAYS_UNTIL_DELETION = 14 DELETE_SUBJECT = 'Warning: your timelapse data will be deleted soon!' TokenScope.describeScope( CLEANUP_TOKEN_SCOPE, 'Delete expired timelapse data', description='Delete expired timelapses and send emails for pending ones.', admin=True) # [[x1, y2], [x2, y2]] in pixel coordinates _MASK_RECT_SCHEMA = { 'type': 'array', 'maxItems': 2, 'minItems': 2, 'items': { 'type': 'array', 'maxItems': 2, 'minItems': 2, 'items': { 'type': 'integer', 'minimum': 0