[p4] P4Python API
Dix, John
JDix at MedManageSystems.com
Tue Dec 18 10:17:10 PST 2007
Thanks Robert!
-----Original Message-----
From: Robert Cowham [mailto:robert at vaccaperna.co.uk]
Sent: Tuesday, December 18, 2007 10:03 AM
To: Dix, John; perforce-user at perforce.com
Subject: RE: [p4] P4Python API
John
Like p4ruby, parameters are an array of strings:
Instead of:
> self.p4Obj.run("verify", "-q //depot/P4Tools/... >
> \\logs\\verify.log")
Try:
self.p4Obj.run("verify", "-q", "//depot/P4Tools/...")
Second thing is that the results are returned as a list from the
command:
>>> print p4c.run_verify("-q", "//depot/Jam/...")
[]
In the above case there are no errors. Then I move a file on the server
to
provoke errors and get:
>>> print p4c.run_verify("-q", "//depot/Jam/...")
['//depot/Jam/MAIN/src/patchlevel.h#28 - edit change 838 (text)
B9EF5AAB5681ABA9ADD0E9C04B57B9AF MISSING!', '//depot/Jam
/MAIN/src/patchlevel.h#27 - edit change 705 (text)
B9EF5AAB5681ABA9ADD0E9C04B57B9AF MISSING!', '//depot/Jam/MAIN/src/pat
chlevel.h#26 - edit change 581 (text) 50D0AECDA97C43BBBA6F0F40B3E54A92
MISSING!', '//depot/Jam/MAIN/src/patchlevel.h#25
- edit change 549 (text) 5BDE7FF7A77B10181CD8B1ABD48C7C75 MISSING!',
'//depot/Jam/MAIN/src/patchlevel.h#24 - edit change
497 (text) FA7D450E9850C06BD080AFC48F114841 MISSING!',
'//depot/Jam/MAIN/src/patchlevel.h#23 - edit change 451 (text) 0
B96131D93A56F625CBAD3E97870D0B0 MISSING!',
'//depot/Jam/MAIN/src/patchlevel.h#22 - edit change 423 (text)
11B6C2850E6A28
93112E75BE29914FEF MISSING!', '//depot/Jam/MAIN/src/patchlevel.h#21 -
edit
change 417 (text) 7E93BAF0154EAF3A73F7B85184E
3B749 MISSING!', '//depot/Jam/MAIN/src/patchlevel.h#20 - edit change 411
(text) B1AE6A31917DB3278194DBE869B605F8 MISSING
!', '//depot/Jam/MAIN/src/patchlevel.h#19 - edit change 410 (text)
42DA1229DF43F32AB249792F0E6396EB MISSING!', '//depot/
Jam/MAIN/src/patchlevel.h#18 - edit change 365 (text)
48F2694AB5FFB0AFEB0030F2D3900203 MISSING!', '//depot/Jam/MAIN/src/
patchlevel.h#17 - edit change 361 (text)
BD5E3E7202DEAC531C3875CE6192EC34
MISSING!', '//depot/Jam/MAIN/src/patchlevel.h#
16 - edit change 345 (text) 9CB93164109B364A7EE76D75EE1B9F3C MISSING!',
'//depot/Jam/MAIN/src/patchlevel.h#15 - edit cha
nge 344 (text) 3FF7DC7ADFD3427BCF48E862D9605365 MISSING!',
'//depot/Jam/MAIN/src/patchlevel.h#14 - edit change 316 (text
) 8CCBED6B3555DECAF942D028F6E7BF11 MISSING!',
'//depot/Jam/MAIN/src/patchlevel.h#13 - edit change 290 (text)
DBBC1DF8E1E
EC232B800C0B35074B974 MISSING!', '//depot/Jam/MAIN/src/patchlevel.h#12 -
edit change 281 (text) D5D9628FB5B589AF09E7D92D
005EDA58 MISSING!', '//depot/Jam/MAIN/src/patchlevel.h#11 - edit change
264
(text) 7543A799E1F7E7B931A35C7E440A380D MISS
ING!', '//depot/Jam/MAIN/src/patchlevel.h#10 - edit change 253 (text)
A71D687EB0A2A930A76D19DF00DC8A51 MISSING!', '//dep
ot/Jam/MAIN/src/patchlevel.h#9 - edit change 220 (text)
6C754D3D001A98EE5F8B48FDC5E9976D MISSING!', '//depot/Jam/MAIN/sr
c/patchlevel.h#8 - edit change 124 (text)
D4D90651686504E4D9C824B0F415625D
MISSING!', '//depot/Jam/MAIN/src/patchlevel.h
#7 - edit change 121 (text) 2AFD20BAB6E731FB360B8E6EDB613FF5 MISSING!',
'//depot/Jam/MAIN/src/patchlevel.h#6 - edit chan
ge 115 (text) 6241BC8A7133EFD136E9C90020F5F79E MISSING!',
'//depot/Jam/MAIN/src/patchlevel.h#5 - edit change 101 (text)
0B3F42BE97179D9447BC62C478D9B5F3 MISSING!',
'//depot/Jam/MAIN/src/patchlevel.h#4 - edit change 54 (text)
4B520BD24535C5B
B5B13B7409810B7D9 MISSING!', '//depot/Jam/MAIN/src/patchlevel.h#3 - edit
change 47 (text) 8663FD6118983EF40C17B46BB89272
3D MISSING!', '//depot/Jam/MAIN/src/patchlevel.h#2 - edit change 35
(text)
43F1D1475F428D296FE929DC2FD05AA0 MISSING!', '
//depot/Jam/MAIN/src/patchlevel.h#1 - add change 1 (text)
456E2DF3E1D8B7FCB58EE4B64E950E6C MISSING!', '//depot/Jam/REL2.
1/src/patchlevel.h#1 - branch change 749 (text)
A71D687EB0A2A930A76D19DF00DC8A51 MISSING!', '//depot/Jam/REL2.2/src/patc
hlevel.h#1 - branch change 752 (text) 50D0AECDA97C43BBBA6F0F40B3E54A92
MISSING!', '//depot/Jam/ROBERT/src/patchlevel.h#1
- branch change 823 (text) B9EF5AAB5681ABA9ADD0E9C04B57B9AF MISSING!']
>>>
> Also, is there a P4Python way to execute p4d?
That would be via a system call as opposed to via p4python.
For a good cross platform type way see
http://www.ravenbrook.com/project/p4dti/master/test/test_p4dti.py (which
has
been used as the base for the test suite included with p4python itself):
if os.name == 'nt':
# p4d on Windows doesn't detach, to we can't use "system"
# to start it. RB 2002-10-28
import win32api
if unicode:
win32api.WinExec("%s -r %s -xi" %
(config.p4_server_executable,
self.p4dir))
win32api.WinExec("%s -p 0.0.0.0:%d -r %s" %
(config.p4_server_executable, port,
self.p4dir))
time.sleep(2)
else:
# For some reason, p4d doesn't detach properly when called
# by os.popen4, so we have to use os.system here instead
# of self.system. RB 2002-10-29
if unicode:
os.system('%s -r "%s" -xi >> %s 2>&1' %
(config.p4_server_executable,
self.p4dir,
log_filename))
os.system('%s -d -p 0.0.0.0:%d -r "%s" >> %s 2>&1' %
(config.p4_server_executable,
port,
self.p4dir,
log_filename))
Robert
More information about the perforce-user
mailing list