我通过添加另一个类中的一些方法来增强一个类(Jira 的类来自 atlassian-python 包) 我的班级叫
JiraExtended
。我定义文档字符串的方式几乎相同。
def grant_user_permission(self, username : str = None, permissionschemeid : str|int = None, permission : str = "BROWSE_PROJECTS") -> None:
"""
Grants a permission to a user (username) on a specified Permission Scheme.
:username: the user's username to grant the permission to, current username if not specified.
:permissionschemeid: The id of the permission scheme.
:permission: The permission key to grant, "BROWSE_PROJECTS" if not specified.
"""
if not permissionschemeid:
raise Exception("Provide a username and permissionschemeid")
if not username:
username : str = self.myself()['name']
url = self.resource_url(resource = f"permissionscheme/{permissionschemeid}/permission")
self.post(url, data=json.dumps({"holder": {"type": "user", "parameter": username}, "permission": permission}))
Pylance 正确引导我的秘诀是什么?
确保您的类型注释清晰一致,并且正确包含类型注释的所有必要导入。
def grant_user_permission(self, username: str = None, permissionschemeid: str | int = None, permission: str = "BROWSE_PROJECTS") -> None:
"""
Grants a permission to a user (username) on a specified Permission Scheme.
:param username: the user's username to grant the permission to, current username if not specified.
:type username: str, optional
:param permissionschemeid: The id of the permission scheme.
:type permissionschemeid: str or int, optional
:param permission: The permission key to grant, "BROWSE_PROJECTS" if not specified.
:type permission: str, optional
:raises Exception: If permissionschemeid is not provided.
"""
if not permissionschemeid:
raise Exception("Provide a username and permissionschemeid")
if not username:
username: str = self.myself()['name']
url = self.resource_url(resource=f"permissionscheme/{permissionschemeid}/permission")
self.post(url, data=json.dumps({"holder": {"type": "user", "parameter": username}, "permission": permission}))