(go to: table of contents, index, list of VMS objects, prev: vmsobj_xabsum, next: vmsobj__membuf)
The current (28-JUN-1999) implementation only stores the address of a table.
It must be passed to the internal object creation routine -
there is no way to create and maintain it from the Python interpreter.
The following routines create an object:
The following routines acceppt this object:
Some simple sequence methods are implemented:
>>> import vms_lib
>>>
>>> accnam = vms_lib.get_accnam ()
>>>
>>> print len(accnam)
32
>>> # Python changes this internally to 31
>>> print accnam [-1]
None
>>> print accnam [0]
READ
>>> # Python changes this internally to 0
>>> print accnam [-32]
READ
>>>
>>> print accnam [2]
EXECUTE
>>> accnam [2] = 'E_X_E_C_U_T_E'
>>> print accnam [2]
E_X_E_C_U_T_E
>>>
>>> long_string = '*' * 65536
>>> accnam [2] = long_string
Traceback (innermost last):
File "<stdin>", line 1, in ?
ValueError: string length limited to 65535 characters
>>>
>>> accnam [2] = 1
Traceback (innermost last):
File "<stdin>", line 1, in ?
TypeError: must be a string or None
>>>
>>> print accnam [3]
DELETE
>>> accnam [3] = None
>>> print accnam [3]
None
>>> print accnam [4]
CONTROL
>>> del (accnam [4])
>>> print accnam [4]
None
>>>
>>> print accnam [30]
None
>>> print accnam [31]
None
>>> print accnam [32]
Traceback (innermost last):
File "<stdin>", line 1, in ?
IndexError: index out of range
>>>
'None' means that the descriptor is empty -
DSC$W_LENGTH is 0.
>>> accnam = vms_lib.get_accnam ()
>>> print accnam [0:3]
['READ', 'WRITE', 'EXECUTE']
>>>
>>> print accnam [2:6]
['EXECUTE', 'DELETE', 'CONTROL', None]
>>>
>>> # some methods are still missing:
>>> accnam [1:3] = ['X','Y','Z']
Traceback (innermost last):
File "<stdin>", line 1, in ?
ValueError: accnam_ass_slice: remaining code not implemented
>>>
...
@@