Skip to content

kristjanvalur/p4async

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

p4async

An extension to the p4python module, adding async functionality to Perforce.

Setup

Use your favorite package manager to install the module into your project

  • pip install p4async
  • uv add p4async

Usage

from p4async import P4Async
p4a = P4Async()
await p4a.aconnect()

All relevant Perforce commands have async counterparts prefixed with a. For example: aconnect(), arun(), arun_clients(), afetch_change(), etc.

Commands are executed with a lock on a worker thread. The way this is done can be customized via subclassing.

Caveats

It would appear that current versions of p4python do not release the pythong GIL (global interpreter lock) while doing a connect() call. This means that even aconnect() is currently blocking. This might get fixed by Perforce at some point.

Development

  • Use uv for dependency management and virtual environments.

License

MIT

About

Asynchronous extension of the p4python module

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages