Skip to content

Commit 4494a14

Browse files
committed
Convert to Girder 5
1 parent 65c56d5 commit 4494a14

37 files changed

+5496
-177
lines changed

setup.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,13 +63,13 @@ def prerelease_local_scheme(version):
6363
],
6464
extras_require={
6565
'girder': [
66-
'girder>=3.0.4',
67-
'girder-jobs>=3.0.3',
68-
'girder-worker[girder]>=0.6.0',
66+
'girder>=5.0.0a2',
67+
'girder-jobs>=5.0.0a2',
68+
'girder-worker[girder]>=5',
6969
],
7070
'worker': [
7171
'docker>=2.6.0',
72-
'girder-worker[worker]>=0.6.0',
72+
'girder-worker[worker]>=5',
7373
],
7474
'client': [
7575
'click',

slicer_cli_web/cli_list_entrypoint.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
import argparse
22
import json
3+
import logging
34
import os
45
import subprocess
56
import sys
67
import textwrap as _textwrap
78

8-
try:
9-
from girder import logger
10-
except ImportError:
11-
import logging as logger
9+
logger = logging.getLogger(__name__)
1210

1311

1412
class _MultilineHelpFormatter(argparse.HelpFormatter):

slicer_cli_web/girder_plugin.py

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,22 @@
1616

1717
import datetime
1818
import json
19+
import logging
1920
import os
21+
from pathlib import Path
2022

21-
from girder import events, logger
23+
from girder import events
2224
from girder.constants import AccessType, TokenScope
23-
from girder.plugin import GirderPlugin, getPlugin
25+
from girder.plugin import GirderPlugin, getPlugin, registerPluginStaticContent
2426
from girder_jobs.constants import JobStatus
2527
from girder_jobs.models.job import Job
2628

2729
from . import TOKEN_SCOPE_MANAGE_TASKS
2830
from .docker_resource import DockerResource
2931
from .models import DockerImageItem
3032

33+
logger = logging.getLogger(__name__)
34+
3135

3236
def _onUpload(event):
3337
try:
@@ -48,13 +52,20 @@ def _onUpload(event):
4852

4953
class SlicerCLIWebPlugin(GirderPlugin):
5054
DISPLAY_NAME = 'Slicer CLI Web'
51-
CLIENT_SOURCE_PATH = 'web_client'
5255

5356
def load(self, info):
5457
try:
5558
getPlugin('worker').load(info)
5659
except Exception:
57-
logger.info('Girder working is unavailable')
60+
logger.info('Girder worker is unavailable')
61+
62+
registerPluginStaticContent(
63+
'slicer_cli_web',
64+
css=['/style.css'],
65+
js=['/girder-plugin-slicer-cli-web.umd.cjs'],
66+
staticDir=Path(__file__).parent / 'web_client' / 'dist',
67+
tree=info['serverRoot'],
68+
)
5869

5970
TokenScope.describeScope(
6071
TOKEN_SCOPE_MANAGE_TASKS, name='Manage Slicer CLI tasks',

slicer_cli_web/prepare_task.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import json
2+
import logging
23
import os
34

45
import jinja2
5-
from girder import logger
66
from girder.api.rest import RestException
77
from girder.constants import AccessType
88
from girder.exceptions import FilePathException
@@ -17,6 +17,8 @@
1717
OPENAPI_DIRECT_TYPES = {'boolean', 'integer', 'float', 'double', 'string'}
1818
FOLDER_SUFFIX = '_folder'
1919

20+
logger = logging.getLogger(__name__)
21+
2022

2123
def _to_file_volume(param, model):
2224
from girder_worker.docker.transforms.girder import (GirderFileIdToVolume,

slicer_cli_web/rest_slicer_cli.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import copy
22
import itertools
33
import json
4+
import logging
45
import threading
56
import time
67

78
import cherrypy
89
from bson.objectid import ObjectId
9-
from girder import logger
1010
from girder.api import access
1111
from girder.api.describe import Description, describeRoute
1212
from girder.api.rest import Resource, RestException, boundHandler, getApiUrl, getCurrentToken
@@ -30,6 +30,8 @@
3030
directory, geometry, transform, measurement, table).
3131
"""
3232

33+
logger = logging.getLogger(__name__)
34+
3335

3436
def stringifyParam(param):
3537
newparam = param.__class__()
Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
1-
import JobStatus from '@girder/jobs/JobStatus';
1+
const events = girder.events;
22

3-
const jobPluginIsCancelable = JobStatus.isCancelable;
4-
JobStatus.isCancelable = function (job) {
5-
if (job.get('type').startsWith('slicer_cli_web_batch')) {
6-
return ![JobStatus.CANCELED, JobStatus.WORKER_CANCELING || 824,
7-
JobStatus.SUCCESS, JobStatus.ERROR].includes(job.get('status'));
8-
}
9-
return jobPluginIsCancelable(job);
10-
};
3+
// g:appload.before runs after all plugin static files have been loaded
4+
events.on('g:appload.before', () => {
5+
const JobStatus = girder.plugins.jobs.JobStatus;
6+
const jobPluginIsCancelable = JobStatus.isCancelable;
7+
JobStatus.isCancelable = function (job) {
8+
if (job.get('type').startsWith('slicer_cli_web_batch')) {
9+
return ![JobStatus.CANCELED, JobStatus.WORKER_CANCELING || 824,
10+
JobStatus.SUCCESS, JobStatus.ERROR].includes(job.get('status'));
11+
}
12+
return jobPluginIsCancelable(job);
13+
};
14+
});

slicer_cli_web/web_client/collections/WidgetCollection.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import Backbone from 'backbone';
2-
31
import WidgetModel from '../models/WidgetModel';
42

3+
const Backbone = girder.Backbone;
4+
55
const WidgetCollection = Backbone.Collection.extend({
66
model: WidgetModel,
77

slicer_cli_web/web_client/events.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
import girderEvents from '@girder/core/events';
1+
const girderEvents = girder.events;
22

33
export default girderEvents;

slicer_cli_web/web_client/main.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import { registerPluginNamespace } from '@girder/core/pluginUtils';
2-
31
// import modules for side effects
42
import './routes';
53
import './views/ItemView';
@@ -8,4 +6,6 @@ import './JobStatus';
86

97
// expose symbols under girder.plugins
108
import * as slicerCLIWeb from './index';
9+
10+
const { registerPluginNamespace } = girder.pluginUtils;
1111
registerPluginNamespace('slicer_cli_web', slicerCLIWeb);

slicer_cli_web/web_client/models/WidgetModel.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
import _ from 'underscore';
2-
import Backbone from 'backbone';
31
import tinycolor from 'tinycolor2';
42

3+
const _ = girder._;
4+
const Backbone = girder.Backbone;
5+
56
/**
67
* A backbone model controlling the behavior and rendering of widgets.
78
*/

0 commit comments

Comments
 (0)