1
1
import argparse
2
- import requests
3
-
2
+ import logging
4
3
from typing import Any , Dict , List , Optional , Tuple , Union
5
4
5
+ import requests
6
+
6
7
import annofabapi
7
- import logging
8
8
9
9
logging_formatter = '%(levelname)s : %(asctime)s : %(name)s : %(funcName)s : %(message)s'
10
10
logging .basicConfig (format = logging_formatter )
13
13
logger .setLevel (level = logging .DEBUG )
14
14
15
15
16
- def assign_role_with_organization (organization_name : str , user_id_list : List [str ], member_role : str ):
17
- projects = service .wrapper .get_all_projects_of_organization (organization_name )
16
+ def assign_role_with_organization (organization_name : str ,
17
+ user_id_list : List [str ], member_role : str ):
18
+ projects = service .wrapper .get_all_projects_of_organization (
19
+ organization_name )
18
20
19
21
for project in projects :
20
22
project_id = project ["project_id" ]
21
23
project_title = project ["title" ]
22
24
23
25
try :
24
- service .wrapper .assign_role_to_project_members (project_id , user_id_list , member_role )
26
+ service .wrapper .assign_role_to_project_members (
27
+ project_id , user_id_list , member_role )
25
28
logger .info (f"{ project_title } に招待成功" )
26
29
27
30
except requests .exceptions .HTTPError as e :
@@ -31,11 +34,13 @@ def assign_role_with_organization(organization_name: str, user_id_list: List[str
31
34
logger .info (f"エラーのため、{ project_title } に招待できなかった。" )
32
35
33
36
34
- def assign_role_with_project_id (project_id_list : List [str ], user_id_list : List [str ], member_role : str ):
37
+ def assign_role_with_project_id (project_id_list : List [str ],
38
+ user_id_list : List [str ], member_role : str ):
35
39
for project_id in project_id_list :
36
40
try :
37
41
project_title = service .api .get_project (project_id )[0 ]["title" ]
38
- service .wrapper .assign_role_to_project_members (project_id , user_id_list , member_role )
42
+ service .wrapper .assign_role_to_project_members (
43
+ project_id , user_id_list , member_role )
39
44
logger .info (f"{ project_title } に招待成功. project_id={ project_id } " )
40
45
41
46
except requests .exceptions .HTTPError as e :
@@ -47,23 +52,47 @@ def assign_role_with_project_id(project_id_list: List[str], user_id_list: List[s
47
52
48
53
def main (args ):
49
54
if args .organization_name is not None :
50
- assign_role_with_organization (args .organization_name , args .user_id_list , args .member_role )
55
+ assign_role_with_organization (args .organization_name ,
56
+ args .user_id_list , args .member_role )
51
57
52
58
elif args .project_id_list is not None :
53
- assign_role_with_project_id (args .project_id_list , args .user_id_list , args .member_role )
59
+ assign_role_with_project_id (args .project_id_list , args .user_id_list ,
60
+ args .member_role )
54
61
55
62
else :
56
63
logger .error ("引数に`--organization` or `--project_id_list`を指定してください。" )
57
64
58
65
59
66
if __name__ == "__main__" :
60
- parser = argparse .ArgumentParser (description = "複数のプロジェクトに、ユーザを招待する。AnnoFab認証情報は`.netrc`に記載すること" )
61
- parser .add_argument ('--user_id' , metavar = 'user_id' , dest = 'user_id_list' , type = str , nargs = '+' , required = True , help = '招待するユーザのuser_id' )
62
- parser .add_argument ('--role' , metavar = 'role' , dest = 'member_role' , type = str , required = True ,
63
- help = 'ユーザに割り当てるロール。"owner" "worker" "accepter" "training_data_user"のいずれか' )
64
- parser .add_argument ('--organization' , metavar = 'organization' , dest = 'organization_name' , type = str , nargs = '?' ,
67
+ parser = argparse .ArgumentParser (
68
+ description = "複数のプロジェクトに、ユーザを招待する。AnnoFab認証情報は`.netrc`に記載すること" )
69
+ parser .add_argument ('--user_id' ,
70
+ metavar = 'user_id' ,
71
+ dest = 'user_id_list' ,
72
+ type = str ,
73
+ nargs = '+' ,
74
+ required = True ,
75
+ help = '招待するユーザのuser_id' )
76
+ parser .add_argument (
77
+ '--role' ,
78
+ metavar = 'role' ,
79
+ dest = 'member_role' ,
80
+ type = str ,
81
+ required = True ,
82
+ help =
83
+ 'ユーザに割り当てるロール。"owner" "worker" "accepter" "training_data_user"のいずれか' )
84
+ parser .add_argument ('--organization' ,
85
+ metavar = 'organization' ,
86
+ dest = 'organization_name' ,
87
+ type = str ,
88
+ nargs = '?' ,
65
89
help = '招待先の組織名.組織配下のプロジェクトに招待する。' )
66
- parser .add_argument ('--project_id' , metavar = 'project_id' , dest = 'project_id_list' , type = str , nargs = '*' , help = '組織名が指定されていない場合は、必要' )
90
+ parser .add_argument ('--project_id' ,
91
+ metavar = 'project_id' ,
92
+ dest = 'project_id_list' ,
93
+ type = str ,
94
+ nargs = '*' ,
95
+ help = '組織名が指定されていない場合は、必要' )
67
96
68
97
args = parser .parse_args ()
69
98
0 commit comments