index.html #28

  • //
  • guest/
  • robert_cowham/
  • perforce/
  • API/
  • python/
  • index.html
  • View
  • Commits
  • Open Download .zip Download (7 KB)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>P4Python - Perforce Public Depot</TITLE>
<META http-equiv=Content-Type content="text/html; charset=iso8859-1">
<LINK 
href="index_files/rubystyle.css" type=text/css rel=stylesheet>
</HEAD>
<BODY>
<TABLE width="100%" border=0>
  <TBODY>
  <TR>
    <TD>&nbsp;</TD>
    <TD>
      <H2>P4Python: Python interface to the Perforce API</H2></TD></TR></TBODY>
</TABLE>

<H3>Contents</H3>
<OL>
  <LI><a href="#official">New Official P4Python</a><LI><a href="#old_p4python">
Old P4Python</a></OL>
<A name=intro></A>
<h2><b><a name="official"></a>New Official P4Python</b></h2>
<p><b>Please note that Perforce have now released 
<a href="http://www.perforce.com/product/components/apis#p4python" target="_blank">P4Python as a 
supported product</a> (as of 2007.3). You can get the 2011.1
<a href="ftp://ftp.perforce.com/perforce/r11.1/bin.tools/p4python.tgz">source 
tarball here</a> (or see previous link for other versions including prebuilt Windows binaries).</b></p>
<p><b>This has been done with my agreement and 
support.</b></p>
<p>The new version is
<a href="http://www.perforce.com/perforce/doc.current/manuals/p4script/03_python.html" target="_blank">
fully documented</a> (or <a href="http://www.perforce.com/perforce/doc.current/manuals/p4script/p4script.pdf" target="_blank">PDF here</a>).</p>
<p>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 <a href="#diff">
given below</a>.</p>
<p>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:
<a href="official/dist/P4Python-2008.1.win32-py2.4.exe">
P4Python-2008.1.win32-py2.4.exe</a>.</p>
<h2>Old P4Python</h2>
<p>The older version of P4Python (version numbering 1.x)
<a href="old_p4python.html"><b>is still available</b> and documented here</a>. It is now deprecated and will 
not be maintained.</p>
<h2 id="diff">Differences between P4Python 1.x and Perforce P4Python</h2>
<p>From the Release Notes:</p>
<pre>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.
</pre>
<p><font size="2">File: $Id: //guest/robert_cowham/perforce/API/python/index.html#28 $</font></p>

</BODY></HTML>
# Change User Description Committed
#28 8056 Robert Cowham Updated doc linka
#27 8055 Robert Cowham Better link
#26 8054 Robert Cowham Tweak references
#25 7544 Robert Cowham Update links
#24 6517 Robert Cowham Clarified and updated links
#23 6382 Robert Cowham Split into 2 docs to clarify status.
#22 6361 Robert Cowham Link to new executables.
#21 6359 Robert Cowham Added link to official version and deprecation of this one.
Also add binary.
#20 6135 Robert Cowham Check in 1.1 changes
#19 5968 Robert Cowham Latest build with Python 2.5
#18 5967 Robert Cowham - Upgrade to use Perforce API 2007.2 (new structure of api dirs and minor code change)
#17 5966 Robert Cowham - Bug fix in spec handling as suggested by Peter Fornwall
- Also changed API handling suggested by Peter to allow standard argument parsing
- Upgraded version to 1.0
#16 5823 Robert Cowham - Build for Python 2.5 - no code changes.
- Document new switch for setup.
#15 5755 Robert Cowham Added set_protocol() and api() methods.
Updated index.html and new Windows dist.
#14 5727 Robert Cowham - Reworked test harness to use new Perforce sample depot so anyone can run it.
- Fixed problem with binary output (via print) reported by Keith Perry
- Added link to RPM build by Jason Dillon in index.html
#13 5374 Robert Cowham Note re 2005.2 API
#12 5200 Robert Cowham Had mistakenly lost various pointers to releases.
#11 5165 Robert Cowham Point out where to get gcc 3 p4api.
#10 5101 Robert Cowham Updated docs and added new Linux binary.
#9 5060 Robert Cowham Tidied TOC
#8 5058 Robert Cowham Updated docs.
#7 4964 Robert Cowham Saved first version of docs.
#6 4911 Robert Cowham Fixed title
#5 4909 Robert Cowham Added new installer
#4 4858 Robert Cowham Added new binaries.
#3 4770 Robert Cowham Changed example to show better usage.
Raise AttributeError if appropriate.
#2 4768 Robert Cowham Fix references for TOC etc.
#1 4767 Robert Cowham Forgot the most important thing!