dym模块
准备
导入模块
import dym
登录和注销
默认登录
dy = dym.DY.new_with_default()
dy.connect()
登录
dy.login(passwd)
指定登录
ip = '192.168.80.132:7000'
user = 'user_write'
password = 'password'
workspace = 'admin_workspace'
dy = dym.DY(ip, user, workspace, password)
dy.connect()
注销
dy.logout()
工作空间
创建工作空间
dy.workspace_add(name, root, mapping, desc, lock)
dy.workspace_add(
'admin_workspace',
'D:/work/',
"// --> ./",
"workspace description",
False
)
编辑工作空间
dy.workspace_edit(name, new_name, root, mapping, desc, lock)
dy.workspace_edit(
'admin_workspace',
desc='This is workspace for project user.'
)
删除工作空间
dy.workspace_delete(name)
查询工作空间
dy.workspace_query(name)
列出所有工作空间
dy.workspace_list(max_number, offset, descending)
for w in dy.workspace_list():
print(w)
文件
标记添加
dy.add(path_list, rgx, pending)
# 添加 F:/DevTools/ 目录下的所有文件
dy.add(['F:/DevTools/'])
# 添加 F:/DevTools/ 目录下, 所有以 .png 为文件名结尾的文件
dy.add(['F:/DevTools/'], '.png$')
标记编辑
dy.edit(path_list, rgx, pending)
dy.edit(['F:/DevTools/'])
标记删除
dy.delete(path_list, rgx, pending)
dy.delete(['F:/DevTools/'])
添加到书架
dy.shelve_add(pending, path_list, rgx)
dy.shelve_add(21, ['//NoAccess/shelve/'])
查询书架上的文件
dy.shelve_query(pending_list, rgx)
dy.shelve_query([12, 13])
获取书架上的文件
dy.shelve_get(pending, path_list, rgx, shelve_override)
dy.shelve_get(pending=12, ["//Access/shelve/prefs/windowPrefs.mel"], shelve_override=True)
删除书架上的文件
dy.shelve_delete(pending, path_list, rgx)
path_list = [
'//Edit/edit/prefs/mainWindowStates/startupMainWindowState',
'//Edit/edit/prefs/markingMenus/menu_ChangePanelLayout.mel',
]
dy.shelve_delete(pending=12, path_list = path_list)
锁定文件
dy.lock(path_list, pending_list, rgx)
# 锁定文件
dy.lock(['//Char/2020/file'])
# 锁定文件夹
dy.lock(['//Char/'])
解锁文件
dy.unlock(path_list, pending_list, force, rgx)
# 解锁文件
dy.unlock(['//Char/2020/file'])
# 解锁文件夹
dy.unlock(['//Char/'])
文件状态
dy.status(path_list, rgx)
status = dy.status(['//Char/2020/'], '.png$')
for s in status:
print(s)
同步文件
dy.sync(path_list, change_list, force, rgx)
files = dy.sync(['//Char/2020/'], force=True)
提交
dy.submit(path_list, desc, rgx, pending)
submit_files = dy.submit(['F:/DevTools/'], 'desc for submit files',)
撤销
dy.revert(path_list, pending_list, rgx)
revert_files = dy.revert(['F:/DevTools/'])
# 撤销待处理号16下的所有文件
revert_files = dy.revert([], [16])
历史
dy.history(file, max_number, offset, descending)
for h in dy.history('//Char/logo.png'):
print(h)
擦除路径
dy.erase(path_list, rgx)
erase_info = dy.erase(['//Access/'])
erase_info['unable_to_delete_files'] 中包含的路径需要手动到服务器上删除。参考 擦除 章节。
查找
dy.find(name, path, include_deleted, rgx, max_number, descending)
# 查找 // 路径下的所有路径中包含'ToolsIcon'的文件
for f in dy.find('ToolsIcon', '//'):
print(f)
文件列表
dy.ls(path_list, ls_dir, recur, include_deleted, rgx)
# 列出 '//' 文件夹及子文件夹下所有文件,包括已删除文件
for f in dy.ls(['//'], recur=True, include_deleted=True):
print(f)
# 列出 '//' 文件夹及子文件夹下所有以 '.png' 为结尾的文件,包括已删除文件
for f in dy.ls(['//'], recur=True, include_deleted=True, rgx='.png$'):
print(f)
# 列出 '//Char/' 文件夹下的文件
for f in dy.ls(['//Char/']):
print(f)
# 列出 '//Char/' 文件夹下的文件夹
for d in dy.ls(['//Char/'], ls_dir=True):
print(d)
待处理号和更改号
新建待处理号
dy.change_new(desc)
new_pending = dy.change_new()
print(new_pending)
编辑列表描述
dy.change_edit(change_list, desc)
change_desc = dy.change_edit([7, 11], 'new description for 7, 11')
删除待处理号
dy.change_delete(pending_list)
del_pending = dy.change_delete([1,2,3,4,5])
将文件转移到指定的待处理号
dy.pending(path_list, pendinglist, new_pending, rgx)
pending_files = dy.pending(['F:/DevTools/'], [], 18)
获取更改列表
dy.change_list(status, query_user, query_workspace, query_host, max_number, offset, descending)
# 待处理列表
pendinglist = dy.change_list(status=0)
# 更改列表
changelist = dy.change_list(status=1)
查询列表信息
dy.change_list_status(change_list)
change_status = dy.change_list_status([7,11])
print(change_status)
待处理号包含的文件
dy.pendinglist_query(pending_list)
pending = dy.pendinglist_query([10])
print(pending)
更改号中包含的文件
dy.changelist_query(change_list)
change = dy.changelist_query([7])
print(change)
用户
创建用户
dy.user_add(username, fullname, passwd, groups, email, desc)
dy.user_add('user1', 'user1_fullname', 'password', 'grp_write', 'user1@email.com', 'user1 description')
编辑用户
dy.user_edit(username, fullname, passwd, new_passwd, groups, email, desc)
# 更改用户密码
dy.user_edit('user_read', passwd='password', new_passwd='pp12345')
# 将user1添加到 'grp_write'和'grp_access'组
dy.user_edit('user1', groups=':+grp_write, grp_access')
# 将user1从grp_write组中移除
dy.user_edit('user1', groups=':-grp_write')
# user1仅在grp_write组中
dy.user_edit('user1', groups=':!grp_write')
删除用户
dy.user_delete(username)
查询用户
dy.user_query(username)
列出用户
dy.user_list()
for u in dy.user_list():
print(u)
组
添加组
dy.group_add(grp_name, email, desc, groups)
dy.group_add("grp_write", 'write@emil.com', 'description for write permission', '')
编辑组
dy.group_edit(grp_name, email, desc, groups)
dy.group_edit("grp_access", 'grp_access@emil.com', 'description for access', '')
删除组
dy.group_delete(grp_name)
查询组信息
dy.group_query(grp_name)
列出所有组信息
dy.group_list()
权限
添加权限
dy.privilege_add(group_name, permission, path, comment)
dy.privilege_add('grp_read', 'Read', '//', 'read privilege for grp_read')
编辑权限
dy.privilege_edit(id, group_name, permission, path, comment)
dy.privilege_edit(2, 'grp_no_access', 'Write', '//', 'change comments')
删除权限
dy.privilege_delete_by_id(id)
dy.privilege_delete_by_id(3)
查询权限
dy.privilege_query_by_id(id)
dy.privilege_query_by_id(6)
列出所有权限
dy.privilege_list()
for p in dy.privilege_list():
print(p)
服务器
查看服务器信息
dy.info()