Skip to content

ProjectManager

Bases: ProjectManager_

Source code in src/plankapy/interfaces.py
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
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
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
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
2600
2601
2602
2603
2604
def refresh(self) -> None:
    """Refreshes the project manager data"""
    for manager in self.project.managers:
        if manager.id == self.id:
            self.__init__(**manager)