# direct.p3d.PackageMerger¶

from direct.p3d.PackageMerger import PackageMerger, PackageMergerError


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 PackageMerger(installDir)[source]

Bases: object

This class will combine two or more separately-built stage directories, the output of Packager.py or the ppackage tool, into a single output directory. It assumes that the clocks on all hosts are in sync, so that the file across all builds with the most recent timestamp (indicated in the contents.xml file) is always the most current version of the file.

class PackageEntry(xpackage, sourceDir)[source]

Bases: object

This corresponds to a <package> entry in the contents.xml file.

__init__(self, xpackage, sourceDir)[source]
getKey(self)[source]

Returns a tuple used for sorting the PackageEntry objects uniquely per package.

isNewer(self, other)[source]
loadXml(self, xpackage)[source]
makeXml(self)[source]

Returns a new TiXmlElement.

validatePackageContents(self)[source]

Validates the contents of the package directory itself against the expected hashes and timestamps. Updates hashes and timestamps where needed.

__init__(self, installDir)[source]
close(self)[source]

Finalizes the results of all of the previous calls to merge(), writes the new contents.xml file, and copies in all of the new contents.

merge(self, sourceDir, packageNames=None)[source]

Adds the contents of the indicated source directory into the current pool. If packageNames is not None, it is a list of package names that we wish to include from the source; packages not named in this list will be unchanged.

notify = <direct.directnotify.Notifier.Notifier object>
class PackageMergerError[source]

Bases: Exception