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()