Skip to content

Category

Category

Bases: BaseClass

Attributes:

Name Type Description
id str

id of the category

name str

name of the category

description str

Description of the category

_fetched bool

This is a Boolean attribute indicating whether all attributes have been retrieved from the server or only the name and ID are present.

Source code in furthrmind\collection\category.py
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
class Category(BaseClass):
    """
    Attributes
    ----------
    id : str
        id of the category
    name : str
        name of the category
    description : str
        Description of the category
    _fetched : bool
        This is a Boolean attribute indicating whether all attributes have been retrieved from the server or only
        the name and ID are present.
    """

    id = ""
    name = ""
    description = ""

    def __init__(self, id=None, data=None):
        super().__init__(id, data)

    def _get_url_instance(self, project_id=None):
        project_url = Category.fm.get_project_url(project_id)
        url = f"{project_url}/researchcategory/{self.id}"
        return url

    @classmethod
    def _get_url_class(cls, id, project_id=None):
        project_url = cls.fm.get_project_url(project_id)
        url = f"{project_url}/researchcategory/{id}"
        return url

    @classmethod
    def _get_all_url(cls, project_id=None):
        project_url = cls.fm.get_project_url(project_id)
        url = f"{project_url}/researchcategory"
        return url

    @classmethod
    def _post_url(cls, project_id=None):
        project_url = cls.fm.get_project_url(project_id)
        url = f"{project_url}/researchcategory"
        return url

    @classmethod
    def get(cls, id: str = "", project_id: str = "") -> Self:
        """
        Method to get a category by its id.

        Parameters
        ----------
        id : str
            The id of the requested category. Only needed if used on as a class method
        project_id : str
            The project_id parameter is optional and can be used to retrieve categories
            from another project as the furthrmind sdk was initiated with.

        Returns
        -------
        Self
            An instance of the category class.

        Raises
        ------
        AssertionError
            If used as a class method and id is not specified.
        """

        if isclass(cls):
            assert id, "id must be specified"
        return super()._get(id=id, project_id=project_id)


    # noinspection PyMethodOverriding
    @classmethod
    def get_many(cls, ids: List[str] = (), project_id: str = "") -> List[Self]:
        """
        Method to get a category by its ids.

        Parameters
        ----------
        ids : List[str]
            List with ids.
        project_id : str, optional
            Optionally, to get experiments from another project as the furthrmind sdk was initiated with. Defaults to None.

        Returns
        -------
        List[Self]
            List with instances of the category class.

        Raises
        ------
        AssertionError
            If ids or names are not specified.
        """

        assert ids, "ids must be specified"
        return cls._get_many(ids, project_id=project_id)

    @classmethod
    def get_all(cls, project_id: str = "") -> List[Self]:
        """
        Method to get all categories.

        Parameters
        ----------
        project_id : str (optional)
            Optionally to get categories from another project as the furthrmind sdk was initiated with, defaults to None

        Returns
        -------
        List[Self]
            List with instances of category class
        """

        return cls._get_all(project_id=project_id)

    @staticmethod
    def create(name: str, project_id: str = "") -> Self:
        """
        Method to create a new category

        Parameters
        ----------
        name : str
            Name of the new category

        project_id : str, optional
            Identifier of another project where the category should be created,
            defaults to an empty string

        Returns
        -------
        Self
            The newly created category object
        """

        pass

create(name, project_id='') staticmethod

Method to create a new category

Parameters:

Name Type Description Default
name str

Name of the new category

required
project_id str

Identifier of another project where the category should be created, defaults to an empty string

''

Returns:

Type Description
Self

The newly created category object

Source code in furthrmind\collection\category.py
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
@staticmethod
def create(name: str, project_id: str = "") -> Self:
    """
    Method to create a new category

    Parameters
    ----------
    name : str
        Name of the new category

    project_id : str, optional
        Identifier of another project where the category should be created,
        defaults to an empty string

    Returns
    -------
    Self
        The newly created category object
    """

    pass

delete(id='', project_id='') classmethod

Method to delete an item. Can be called as a classmethod with providing the id to be deleted or on the instance of a class

Parameters:

Name Type Description Default
id str

The id of the resource to delete

''
project_id str

Optionally to delete an item in another project as the furthrmind sdk was initiated with

''

Returns:

Type Description
str

The id of the item

Source code in furthrmind\collection\baseclass.py
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
@classmethod
def delete(cls, id: str = "", project_id: str = "") -> str:
    """
    Method to delete an item. Can be called as a classmethod with providing the id to be deleted or on the instance
    of a class

    Parameters
    ----------
    id : str
        The id of the resource to delete
    project_id : str, optional
        Optionally to delete an item in another project as the furthrmind sdk was initiated with

    Returns
    -------
    str
        The id of the item
    """

    if isclass(cls):
        return cls._delete_class_method(id, project_id)
    else:
        self = cls
        return self._delete_instance_method(project_id)

get(id='', project_id='') classmethod

Method to get a category by its id.

Parameters:

Name Type Description Default
id str

The id of the requested category. Only needed if used on as a class method

''
project_id str

The project_id parameter is optional and can be used to retrieve categories from another project as the furthrmind sdk was initiated with.

''

Returns:

Type Description
Self

An instance of the category class.

Raises:

Type Description
AssertionError

If used as a class method and id is not specified.

Source code in furthrmind\collection\category.py
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
@classmethod
def get(cls, id: str = "", project_id: str = "") -> Self:
    """
    Method to get a category by its id.

    Parameters
    ----------
    id : str
        The id of the requested category. Only needed if used on as a class method
    project_id : str
        The project_id parameter is optional and can be used to retrieve categories
        from another project as the furthrmind sdk was initiated with.

    Returns
    -------
    Self
        An instance of the category class.

    Raises
    ------
    AssertionError
        If used as a class method and id is not specified.
    """

    if isclass(cls):
        assert id, "id must be specified"
    return super()._get(id=id, project_id=project_id)

get_all(project_id='') classmethod

Method to get all categories.

Parameters:

Name Type Description Default
project_id str(optional)

Optionally to get categories from another project as the furthrmind sdk was initiated with, defaults to None

''

Returns:

Type Description
List[Self]

List with instances of category class

Source code in furthrmind\collection\category.py
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
@classmethod
def get_all(cls, project_id: str = "") -> List[Self]:
    """
    Method to get all categories.

    Parameters
    ----------
    project_id : str (optional)
        Optionally to get categories from another project as the furthrmind sdk was initiated with, defaults to None

    Returns
    -------
    List[Self]
        List with instances of category class
    """

    return cls._get_all(project_id=project_id)

get_many(ids=(), project_id='') classmethod

Method to get a category by its ids.

Parameters:

Name Type Description Default
ids List[str]

List with ids.

()
project_id str

Optionally, to get experiments from another project as the furthrmind sdk was initiated with. Defaults to None.

''

Returns:

Type Description
List[Self]

List with instances of the category class.

Raises:

Type Description
AssertionError

If ids or names are not specified.

Source code in furthrmind\collection\category.py
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
@classmethod
def get_many(cls, ids: List[str] = (), project_id: str = "") -> List[Self]:
    """
    Method to get a category by its ids.

    Parameters
    ----------
    ids : List[str]
        List with ids.
    project_id : str, optional
        Optionally, to get experiments from another project as the furthrmind sdk was initiated with. Defaults to None.

    Returns
    -------
    List[Self]
        List with instances of the category class.

    Raises
    ------
    AssertionError
        If ids or names are not specified.
    """

    assert ids, "ids must be specified"
    return cls._get_many(ids, project_id=project_id)

to_dict()

Converts the object's attributes to a dictionary representation.

Returns:

Type Description
dict

Dictionary containing the object's attributes (excluding private attributes, callable attributes, and attributes of type Furthrmind).

Source code in furthrmind\collection\baseclass.py
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
def to_dict(self):
    """
    Converts the object's attributes to a dictionary representation.

    Returns
    -------
    dict
        Dictionary containing the object's attributes (excluding private attributes, callable attributes, and attributes of type Furthrmind).
    """

    from furthrmind import Furthrmind

    data = {}
    for attr in dir(self):
        if attr.startswith("_"):
            continue
        value = getattr(self, attr)
        if callable(value):
            continue
        if isinstance(value, Furthrmind):
            continue
        data[attr] = self._convert(value)
    return data