Source code for nanome.api.schemas.api_definitions

from nanome.api import structure, schemas
from nanome.util import enums
from marshmallow import fields


structure_schema_map = {
    structure.Atom: schemas.AtomSchema(),
    structure.Bond: schemas.BondSchema(),
    structure.Residue: schemas.ResidueSchema(),
    structure.Chain: schemas.ChainSchema(),
    structure.Molecule: schemas.MoleculeSchema(),
    structure.Complex: schemas.ComplexSchema(),
}


[docs]class RequestWorkspace: params = [] output = schemas.WorkspaceSchema()
[docs]class RequestComplexes: params = [fields.List(fields.Integer)] output = schemas.ComplexSchema(many=True)
[docs]class RequestComplexList: params = [] output = schemas.ComplexSchema(many=True)
[docs]class UpdateStructuresShallow: params = [schemas.ComplexSchema(many=True)] output = None
[docs]class UpdateStructuresDeep: params = [schemas.ComplexSchema(many=True)] output = None
[docs]class UpdateWorkspace: params = [schemas.WorkspaceSchema()] output = None
[docs]class SendNotification: params = [schemas.EnumField(enum=enums.NotificationTypes), fields.Str()] output = None
[docs]class ZoomOnStructures: params = [schemas.StructureSchema(many=True, partial=True)] output = None
[docs]class CenterOnStructures: params = [schemas.StructureSchema(many=True)] output = None
[docs]class AddToWorkspace: params = [schemas.ComplexSchema(many=True)] output = None
[docs]class AddBonds: params = [schemas.ComplexSchema(many=True)] output = None
[docs]class OpenUrl: params = [fields.Str()] output = None
[docs]class CreateWritingStream: params = [fields.List(fields.Integer), fields.Integer()] output = schemas.StreamSchema()
[docs]class StreamUpdate: params = [fields.Integer(), fields.List(fields.Integer)] output = None
[docs]class RequestPresenterInfo: params = [] output = schemas.PresenterInfoSchema()
[docs]class RequestControllerTransforms: params = [] output = [ schemas.Vector3Field(), schemas.QuaternionField(), schemas.Vector3Field(), schemas.QuaternionField(), schemas.Vector3Field(), schemas.QuaternionField() ]
[docs]class ApplyColorScheme: params = [ schemas.EnumField(enum=enums.ColorScheme), schemas.EnumField(enum=enums.ColorSchemeTarget), fields.Boolean() ] output = None
api_function_definitions = { 'request_workspace': RequestWorkspace(), 'request_complexes': RequestComplexes(), 'update_structures_shallow': UpdateStructuresShallow(), 'update_structures_deep': UpdateStructuresDeep(), 'request_complex_list': RequestComplexList(), 'create_writing_stream': CreateWritingStream(), 'stream_update': StreamUpdate(), 'update_workspace': UpdateWorkspace(), 'zoom_on_structures': ZoomOnStructures(), 'send_notification': SendNotification(), 'center_on_structures': CenterOnStructures(), 'add_to_workspace': AddToWorkspace(), 'add_bonds': AddBonds(), 'open_url': OpenUrl(), 'request_presenter_info': RequestPresenterInfo(), 'request_controller_transforms': RequestControllerTransforms(), 'apply_color_scheme': ApplyColorScheme(), }