通过com操作lotus notes/domino对象的python类
noteslib的Python项目详细描述
注意lib
noteslib是一个用于操作lotus的python类库 通过com的notes/domino对象。
noteslib由robert follek创建,当前的维护者是marcelo huerta。
notesLib类对应于标准的lotusscript类;它们 支持所有标准属性和方法。noteslib类有 附加方法和易用性特征。详情见下文 个别课程。
目前提供的课程:
- 会话
- 数据库
- acl
- acentry
会话
session类创建到notes的com连接。它支持所有人 lotusscript notessessession类的属性和方法,使用 相同的语法。
创建会话对象:
s = noteslib.Session(password)
或
s = noteslib.Session()
密码是可选的;如果您不提供密码,notes将提示您 密码。
示例:
>>> import noteslib
>>> s = noteslib.Session("password")
>>> s.NotesBuildVersion
166
>>> s.GetEnvironmentString("Directory", -1)
'd:\\notes5.8\\Data'
>>>
session是一个单实例-多个session变量共享一个session 反对。您可以根据需要实例化会话,而不需要性能 惩罚,你只需要建立一次密码。示例:
>>> a = noteslib.Session(password)
>>> id(a)
8429868
>>> b = noteslib.Session()
>>> id(b)
8429868
数据库
数据库类创建到Notes数据库的COM连接。它 支持lotusscript notesdatabase的所有属性和方法 类,使用相同的语法。
您不必先创建会话。数据库对象创建自己的 会话自动。
创建数据库对象:
db = noteslib.Database(server, database_file, password)
或
db = noteslib.Database(server, database_file)
示例:
>>> import noteslib
>>> db = noteslib.Database("NYNotes1", "ACLTest.nsf", "password")
>>> db.Created
pywintypes.datetime(2001, 6, 30, 11, 12, 40, tzinfo=TimeZoneInfo('GMT Standard Time', True))
为同一数据库创建的多个数据库对象是唯一的对象, 但是它们与底层的notesdatabase对象共享同一个句柄。 您可以根据需要实例化数据库对象,而不需要性能 处罚。示例:
>>> a = noteslib.Database("NYNotes1", "ACLTest.nsf", "password")
>>> id(a)
15281724
>>> id(a._Database__handle)
15286172
>>> b = noteslib.Database("NYNotes1", "ACLTest.nsf")
>>> id(b)
15270044
>>> id(b._Database__handle)
15286172
A和B是不同的对象,但它们共享相同的内部 notesDatabase对象,通过u handle变量。
acl
acl类封装了一个notes数据库acl。它支持所有 lotusscript notesacl类的属性和方法,使用相同的 语法。
附加功能:
- 可以打印acl对象。它知道如何合理地格式化自己。
- getAllEntries()方法-将ACL内容作为按名称排序的acEntry对象列表返回。
您不必首先创建会话或数据库对象。acl对象 自动创建自己的会话和数据库对象。
创建acl对象:
acl = noteslib.ACL(server, database_file, password)
或
acl = noteslib.ACL(server, database_file)
示例:
>>> import noteslib
>>> acl = noteslib.ACL("NYNotes1", "ACLTest.nsf", "password")
>>> for entry in acl.getAllEntries():
... print (entry.getName())
...
-Default-
Alice Author
Anonymous
bob
Dave Depositor
Donna Designer
LocalDomainServers
OtherDomainServers
Randy Reader
acentry
acentry类封装了一个notes数据库acl条目。它支持 lotusscript notesachlentry类的所有属性和方法, 使用相同的语法。
附加功能:
- 可以打印aclentry对象。它知道如何合理地格式化自己。
- 方法-返回条目名。
- 方法-返回入口级别。
- 方法-返回按字母顺序排序的条目角色列表。
- 方法-返回acentry标志的列表,转换为字符串。
这些方法避免了明显的名称,例如getname()而不是name(), 避免与现有NoTeScLItEnter属性冲突。
通常,不会直接创建aclentry对象。相反,你可以 通过acl对象检索aclentry对象的列表 getAllEntries()方法。
示例:
>>> import noteslib
>>> acl = noteslib.ACL("NYNotes1", "ACLTest.nsf", "password")
>>> print (acl.getAllEntries()[3])
Name : bob
Level: Manager
Role : [Role1]
Role : [Role2]
Role : [Role3]
Flag : Create Documents
Flag : Delete Documents
Flag : Create Personal Agents
Flag : Create Personal Folders/Views
Flag : Create Shared Folders/Views
Flag : Create LotusScript/Java Agent
Flag : Read Public Documents
Flag : Write Public Documents