P4Python: Python interface to the Perforce API
Please note that Perforce have now released P4Python as a supported product (as of 2007.3). You can get the 2011.1 source tarball here (or see previous link for other versions including prebuilt Windows binaries).
This has been done with my agreement and support.
The new version is fully documented (or PDF here).
A summary of differences between the official version 2007.3-2009.2 and my version 1.x can be found in the release notes and is given below.
As of 2008.1 the official version will compile and build with Python 2.4. Perforce does not have one on their FTP site, but you can download a pre-built binary here: P4Python-2008.1.win32-py2.4.exe.
The older version of P4Python (version numbering 1.x) is still available and documented here. It is now deprecated and will not be maintained.
From the Release Notes:
7. Compatibility with the P4Python from the Public Depot Perforce P4Python is significantly different from the version of P4Python in the Perforce Public Depot. Perforce P4Python contains several improvements and interface changes intended to make P4Python consistent with the other scripting interfaces and with Python in general. If you are migrating from Public Depot version of P4Python, edit your scripts to ensure that the scripts comply with the new interface. The differences are detailed below. New module name The P4Python module has been renamed from p4 to P4. For example: Old: >>> import p4 >>> p4c = p4.P4() New: >>> import P4 >>> p4 = P4.P4() By convention, Public Depot P4Python used 'p4c' as an instance variable because 'p4' was used as a module name. Now that the module has been renamed 'P4', you can use 'p4' for your instance variables. All demos and tests use the new convention. Deleted methods The following methods have been deleted from the P4 class and are no longer available: dropped - Use connected() parse_forms - Form parsing is now always on tagged - See tagged attribute below. New methods The following methods are new to Perforce P4Python: connected - Returns True if the client is connected format_xxx - Converts a dict-based specification into a string (replace xxx with spec type, for example: format_client) identify - Returns information about P4Python parse_xxx - Converts a string into a P4.Spec object (replace xxx with spec type) run_filelog - Runs 'p4 filelog' and returns an array of P4.DepotFile objects run_login - Runs 'p4 login' using current password run_password - Runs 'p4 passwd' with old and new password run_submit - Runs 'p4 submit' Attributes Perforce P4Python provides the following attributes. Attributes can be set in the P4() constructor or by using their 'setters and getters'. For example: >>> import P4 >>> p4 = P4.P4(client="myclient", port="1666") >>> p4.user = 'me' Most attributes can be set and read. Except where indicated, attributes are strings. api_level API compatibility level, INTEGER charset The character set to use. String, not a constant as in previous versions client Client to use (P4CLIENT) cwd Current Working Directory debug Debug level (for debugging P4Python), INTEGER errors Array of errors returned by the server (Read-Only), LIST exception_level Determines whether exceptions are thrown, INTEGER host Client Host input Input for next command, can be STRING, LIST or DICTIONARY maxlocktime MaxLockTime for commands, INTEGER maxresults MaxResults for commands, INTEGER maxscanrows MaxScanRows for commands, INTEGER p4config_file Returns the config file path (Read-Only) password Value of P4PASSWD port Value of P4PORT prog Name of the script, shown in the server log server_level Returns the server level (Read-Only) tagged Boolean value, determines whether to use tagged mode, INTEGER ticket_file Returns the name of the ticket file user Value of P4USER warnings Array of warnings returned by the server (Read-Only), LIST Tagged mode and form parsing In Perforce P4Python 2007.3, form parsing and tagged output are enabled by default. (In Public Depot P4Python, tagged output and form parsing mode were disabled by default, but most scripts enabled them immediately.) Form parsing cannot be disabled explicitly, but tagged output can be enabled or disabled by setting p4.tagged as follows: p4.tagged = False # Disabled p4.tagged = True # Enabled This method can be used to disable form parsing, because form parsing does not work when tagged output is disabled.
File: $Id: //guest/robert_cowham/perforce/API/python/index.html#28 $