# direct.p3d.PackageInstaller¶

from direct.p3d.PackageInstaller import PackageInstaller


Deprecated since version 1.10.0: The p3d packaging system has been replaced with the new setuptools-based system. See the Distributing Panda3D Applications manual section.

Inheritance diagram

class PackageInstaller(appRunner, taskChain='default')[source]

This class is used in a p3d runtime environment to manage the asynchronous download and installation of packages. If you just want to install a package synchronously, see appRunner.installPackage() for a simpler interface.

Also see DWBPackageInstaller, which does exactly this, to add a DirectWaitBar GUI.

class PendingPackage(packageName, version, host)[source]

Bases: object

__init__(self, packageName, version, host)[source]
checkDescFile(self)[source]

getDescFile(self, http)[source]

getProgress(self)[source]

notify = <direct.directnotify.Notifier.Notifier object>
S_done = 3
S_initial = 0
S_ready = 1
S_started = 2
__init__(self, appRunner, taskChain='default')[source]
addPackage(self, packageName, version=None, hostUrl=None)[source]

Adds the named package to the list of packages to be downloaded. Call donePackages() to finish the list.

cleanup(self)[source]

destroy(self)[source]

donePackages(self)[source]

After calling addPackage() for each package to be installed, call donePackages() to mark the end of the list. This is necessary to determine what the complete set of packages is (and therefore how large the total download size is). None of the low-level callbacks will be made before this call.

downloadFinished(self, success)[source]

This callback is made when all of the packages have been downloaded and installed (or there has been some failure). If all packages where successfully installed, success is True.

downloadProgress(self, overallProgress)[source]

downloadStarted(self)[source]

This callback is made at some point after donePackages() is called; at the time of this callback, the total download size is known, and we can sensibly report progress through the whole.

globalLock = Mutex 0x55ec94753840
nextUniqueId = 1
notify = <direct.directnotify.Notifier.Notifier object>
packageFinished(self, package, success)[source]

packageProgress(self, package, progress)[source]
packageStarted(self, package)[source]