Server API

class slicer_package_manager.GirderPlugin(entrypoint)

Bases: GirderPlugin

DISPLAY_NAME = 'Slicer Package Manager'

This is the named displayed to users on the plugin page. Unlike the entrypoint name used internally, this name can be an arbitrary string.

load(info)

Subpackages

Submodules

slicer_package_manager.constants module

Constants should be defined here.

slicer_package_manager.utilities module

slicer_package_manager.utilities.checkAccess(app_id, user)

Check user has access to the application.

Parameters:
  • app_id – The ID of the application.

  • user – The user to check access against.

Raises:

girder.exceptions.AccessException – If the access check failed.

Returns:

slicer_package_manager.utilities.deleteFolder(folder, progress, user)

Recursively delete a folder by ID.

Parameters:
  • folder (dict) – The folder document to delete.

  • progress (girder.utility.progress.ProgressContext or None.) – A progress context to record progress on.

  • user (dict) – The user creating the progress.

Returns:

slicer_package_manager.utilities.getOrCreateReleaseFolder(application, user, app_revision)

Get or create the release folder associated with the application revision.

Parameters:
  • application – The parent folder containing the release.

  • user – The user to check access against or to create the new folder

  • app_revision – The revision of the application.

Returns:

The created/existing release folder.

slicer_package_manager.utilities.getReleaseFolder(item, force=False)

Get item release folder.

The release folder is either the one the with name matching constants.DRAFT_RELEASE_NAME (e,g draft) or the release folder (e.g 1.0).

Applications
    |--- packages
    |        |----- Slicer
    |        |         |----- 1.0
    |        |         |        |---- Package1
    .        .         .        .
    |        |         |        |---- extensions
    |        |         |        |         |---- Extension1
    .        .         .        .         .
    .        .         .
    .        .         .
    |        |         |----- draft
    |        |         |        |--- r100
    |        |         |        |      |---- Package1
    .        .         .        .      .
    |        |         |        |      |----- extensions
    |        |         |        |      |          |---- Extension1
Parameters:
  • item – A package or extension instance.

  • force – If you explicitly want to circumvent access checking on this resource, set this to True.

Returns:

The parent release folder or None.

slicer_package_manager.utilities.isApplicationFolder(folder)

Return True if folder an application folder.

An application folder is expected to have the applicationPackageNameTemplate and extensionPackageNameTemplate metadata as well as parent folder named after constants.TOP_LEVEL_FOLDER_NAME.

slicer_package_manager.utilities.isChildOfSlicerPackages(file_item)

Return True if the file is included in an item corresponding to either an application or an extension package.

slicer_package_manager.utilities.isDraftReleaseFolder(folder)

Return True if folder is a draft release folder.

A draft release folder is expected to be a release folder (see isReleaseFolder()) and to have a parent folder named after constants.DRAFT_RELEASE_NAME.

slicer_package_manager.utilities.isReleaseFolder(folder)

Return True if folder is a release folder.

A release folder is expected to have the revision metadata as well as an application parent or grandparent folder (see isApplicationFolder()).

slicer_package_manager.utilities.isSlicerPackages(item)

Return True if the item represents either an application or an extension package.