Skip to content
Snippets Groups Projects
pybis.py 171 KiB
Newer Older
  • Learn to ignore specific revisions
  • Swen Vermeul's avatar
    Swen Vermeul committed
                isNew=True,
                entityType=entityType,
                propertyType=propertyType,
                **kwargs,
    
    Swen Vermeul's avatar
    Swen Vermeul committed
            )
    
    Swen Vermeul's avatar
    Swen Vermeul committed
        def new_vocabulary(
            self, code, terms, managedInternally=False, chosenFromList=True, **kwargs
        ):
            """Creates a new vocabulary
    
            Usage::
                new_vocabulary(
                    code = 'vocabulary_code',
                    description = '',
                    terms = [
                        { "code": "term1", "label": "label1", "description": "description1" },
                        { "code": "term2", "label": "label2", "description": "description2" },
                    ]
                )
            """
    
    Swen Vermeul's avatar
    Swen Vermeul committed
            kwargs["code"] = code
            kwargs["managedInternally"] = managedInternally
            kwargs["chosenFromList"] = chosenFromList
    
            return Vocabulary(self, data=None, terms=terms, **kwargs)
    
    
        def _get_dss_url(self, dss_code=None):
    
    Swen Vermeul's avatar
    Swen Vermeul committed
            """internal method to get the downloadURL of a datastore."""
    
            dss = self.get_datastores()
            if dss_code is None:
    
    Swen Vermeul's avatar
    Swen Vermeul committed
                return dss["downloadUrl"][0]
    
    Swen Vermeul's avatar
    Swen Vermeul committed
                return dss[dss["code"] == dss_code]["downloadUrl"][0]
    
    Swen Vermeul's avatar
    Swen Vermeul committed
    class ExternalDMS:
        """managing openBIS external data management systems"""
    
        def __init__(self, openbis_obj, data=None, **kwargs):
    
    Swen Vermeul's avatar
    Swen Vermeul committed
            self.__dict__["openbis"] = openbis_obj
    
            if data is not None:
    
    Swen Vermeul's avatar
    Swen Vermeul committed
                self.__dict__["data"] = data
    
            if kwargs is not None:
                for key in kwargs:
                    setattr(self, key, kwargs[key])
    
    Swen Vermeul's avatar
    Swen Vermeul committed
            return self.__dict__["data"].get(name)
    
    
        def __dir__(self):
    
            """all the available methods and attributes that should be displayed
            when using the autocompletion feature (TAB) in Jupyter
            """
    
    Swen Vermeul's avatar
    Swen Vermeul committed
            return ["code", "label", "urlTemplate", "address", "addressType", "openbis"]
    
    Swen Vermeul's avatar
    Swen Vermeul committed
            return self.data.get("code", None)
    
    Swen Vermeul's avatar
    Swen Vermeul committed
    class ServerInformation:
    
        def __init__(self, info):
            self._info = info
    
    Swen Vermeul's avatar
    Swen Vermeul committed
                "api_version",
                "archiving_configured",
                "authentication_service",
                "enabled_technologies",
                "project_samples_enabled",
    
        def __getattr__(self, name):
    
    Swen Vermeul's avatar
    Swen Vermeul committed
            return self._info.get(name.replace("_", "-"))
    
            return int(self._info["api-version"].split(".")[0])
    
            return int(self._info["api-version"].split(".")[1])
    
            return (self.get_major_version() == 3) and (self.get_minor_version() <= 2)
    
            return (self.get_major_version() == 3) and (self.get_minor_version() >= 5)
    
    
        def _repr_html_(self):
            html = """
                <table border="1" class="dataframe">
                <thead>
                    <tr style="text-align: right;">
                    <th>attribute</th>
                    <th>value</th>
                    </tr>
                </thead>
                <tbody>
            """
    
            for attr in self.attrs:
                html += "<tr> <td>{}</td> <td>{}</td> </tr>".format(
    
    Swen Vermeul's avatar
    Swen Vermeul committed
                    attr, getattr(self, attr, "")
    
    Swen Vermeul's avatar
    Swen Vermeul committed
        OpenBisObject, entity="propertyType", single_item_method_name="get_property_type"
    
    Swen Vermeul's avatar
    Swen Vermeul committed
    class Plugin(OpenBisObject, entity="plugin", single_item_method_name="get_plugin"):