Patchfile
from panda3d.core import Patchfile
- class Patchfile
Bases:
Inheritance diagram
- __init__()
Create a patch file and initializes internal data
- __init__(buffer: Buffer)
Create patch file with buffer to patch
- property allow_multifile bool
If this flag is set true, the Patchfile will make a special case for patching Panda Multifiles, if detected, and attempt to patch them on a subfile-by-subfile basis. If this flag is false, the Patchfile will always patch the file on a full-file basis.
This has effect only when building patches; it is not used for applying patches.
- apply(patch_file: Filename, file: Filename) bool
Patches the entire file in one call returns true on success and false on error
This version will delete the patch file and overwrite the original file.
- apply(patch_file: Filename, orig_file: Filename, target_file: Filename) bool
Patches the entire file in one call returns true on success and false on error
This version will not delete any files.
- build(file_orig: Filename, file_new: Filename, patch_name: Filename) bool
This implementation uses the “greedy differencing algorithm” described in the masters thesis “Differential Compression: A Generalized Solution for Binary Files” by Randal C. Burns (p.13). For an original file of size M and a new file of size N, this algorithm is O(M) in space and O(M*N) (worst- case) in time. return false on error
- get_progress() float
Returns a value in the range 0..1, representing the amount of progress through the patchfile, during a session.
- has_source_hash() bool
Returns true if the MD5 hash for the source file is known. (Some early versions of the patch file did not store this information.)
- initiate(patch_file: Filename, file: Filename) int
Set up to apply the patch to the file (original file and patch are destroyed in the process).
- initiate(patch_file: Filename, orig_file: Filename, target_file: Filename) int
Set up to apply the patch to the file. In this form, neither the original file nor the patch file are destroyed.
- property progress float
Returns a value in the range 0..1, representing the amount of progress through the patchfile, during a session.
- read_header(patch_file: Filename) int
Opens the patch file for reading, and gets the header information from the file but does not begin to do any real work. This can be used to query the data stored in the patch.
- reset_footprint_length()
- run() int
Perform one buffer’s worth of patching. Returns one of the following values:
EU_ok
: while patchingEU_success
: when doneEU_error_abort
: Patching has not been initiatedEU_error_file_invalid
: file is corruptedEU_error_invalid_checksum
: incompatible patch fileEU_error_write_file_rename
: could not rename file
- set_allow_multifile(allow_multifile: bool)
If this flag is set true, the Patchfile will make a special case for patching Panda Multifiles, if detected, and attempt to patch them on a subfile-by-subfile basis. If this flag is false, the Patchfile will always patch the file on a full-file basis.
This has effect only when building patches; it is not used for applying patches.