Skip to content

ProjectManager

Bases: ProjectManager_

Source code in src/plankapy/interfaces.py
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
class ProjectManager(ProjectManager_):

    @property
    def user(self) -> User:
        """User that is a manager of the project

        Returns:
            User: User instance
        """
        user_route = self.routes.get_user(id=self.userId)
        return User(**user_route()['item']).bind(self.routes)

    @property
    def project(self) -> Project:
        """Project the user is a manager of

        Returns:
            Project: Project instance
        """
        project_route = self.routes.get_project(id=self.projectId)
        return Project(**project_route()['item']).bind(self.routes)

    def delete(self) -> tuple[User, Project]:
        """Deletes the project manager relationship

        Danger:
            This action is irreversible and cannot be undone

        Returns:
            tuple[User, Project]: The user and project that the user was manager of
        """
        self.refresh()
        route = self.routes.delete_project_manager(id=self.id)
        route()
        return (self.user, self.project)

    def refresh(self) -> None:
        """Refreshes the project manager data"""
        for manager in self.project.managers:
            if manager.id == self.id:
                self.__init__(**manager)

project property

Project the user is a manager of

Returns:

Name Type Description
Project Project

Project instance

user property

User that is a manager of the project

Returns:

Name Type Description
User User

User instance

delete()

Deletes the project manager relationship

Danger

This action is irreversible and cannot be undone

Returns:

Type Description
tuple[User, Project]

tuple[User, Project]: The user and project that the user was manager of

Source code in src/plankapy/interfaces.py
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
def delete(self) -> tuple[User, Project]:
    """Deletes the project manager relationship

    Danger:
        This action is irreversible and cannot be undone

    Returns:
        tuple[User, Project]: The user and project that the user was manager of
    """
    self.refresh()
    route = self.routes.delete_project_manager(id=self.id)
    route()
    return (self.user, self.project)

refresh()

Refreshes the project manager data

Source code in src/plankapy/interfaces.py
2579
2580
2581
2582
2583
def refresh(self) -> None:
    """Refreshes the project manager data"""
    for manager in self.project.managers:
        if manager.id == self.id:
            self.__init__(**manager)