mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-07-12 08:16:06 -07:00
Bump cherrypy from 18.8.0 to 18.9.0 (#2266)
* Bump cherrypy from 18.8.0 to 18.9.0 Bumps [cherrypy](https://github.com/cherrypy/cherrypy) from 18.8.0 to 18.9.0. - [Changelog](https://github.com/cherrypy/cherrypy/blob/main/CHANGES.rst) - [Commits](https://github.com/cherrypy/cherrypy/compare/v18.8.0...v18.9.0) --- updated-dependencies: - dependency-name: cherrypy dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> * Update cherrypy==18.9.0 --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com> [skip ci]
This commit is contained in:
parent
cfefa928be
commit
faef9a94c4
673 changed files with 159850 additions and 11583 deletions
67
lib/win32/Demos/OpenEncryptedFileRaw.py
Normal file
67
lib/win32/Demos/OpenEncryptedFileRaw.py
Normal file
|
@ -0,0 +1,67 @@
|
|||
import os
|
||||
|
||||
import win32api
|
||||
import win32file
|
||||
import winerror
|
||||
|
||||
|
||||
def ReadCallback(input_buffer, data, buflen):
|
||||
fnamein, fnameout, f = data
|
||||
## print fnamein, fnameout, buflen
|
||||
f.write(input_buffer)
|
||||
## python 2.3 throws an error if return value is a plain int
|
||||
return winerror.ERROR_SUCCESS
|
||||
|
||||
|
||||
def WriteCallback(output_buffer, data, buflen):
|
||||
fnamebackup, fnameout, f = data
|
||||
file_data = f.read(buflen)
|
||||
## returning 0 as len terminates WriteEncryptedFileRaw
|
||||
output_len = len(file_data)
|
||||
output_buffer[:output_len] = file_data
|
||||
return winerror.ERROR_SUCCESS, output_len
|
||||
|
||||
|
||||
tmp_dir = win32api.GetTempPath()
|
||||
dst_dir = win32api.GetTempFileName(tmp_dir, "oef")[0]
|
||||
os.remove(dst_dir)
|
||||
os.mkdir(dst_dir)
|
||||
print("Destination dir:", dst_dir)
|
||||
|
||||
## create an encrypted file
|
||||
fname = win32api.GetTempFileName(dst_dir, "ref")[0]
|
||||
print("orig file:", fname)
|
||||
f = open(fname, "w")
|
||||
f.write("xxxxxxxxxxxxxxxx\n" * 32768)
|
||||
f.close()
|
||||
## add a couple of extra data streams
|
||||
f = open(fname + ":stream_y", "w")
|
||||
f.write("yyyyyyyyyyyyyyyy\n" * 32768)
|
||||
f.close()
|
||||
f = open(fname + ":stream_z", "w")
|
||||
f.write("zzzzzzzzzzzzzzzz\n" * 32768)
|
||||
f.close()
|
||||
win32file.EncryptFile(fname)
|
||||
|
||||
## backup raw data of encrypted file
|
||||
bkup_fname = win32api.GetTempFileName(dst_dir, "bef")[0]
|
||||
print("backup file:", bkup_fname)
|
||||
f = open(bkup_fname, "wb")
|
||||
ctxt = win32file.OpenEncryptedFileRaw(fname, 0)
|
||||
try:
|
||||
win32file.ReadEncryptedFileRaw(ReadCallback, (fname, bkup_fname, f), ctxt)
|
||||
finally:
|
||||
## if context is not closed, file remains locked even if calling process is killed
|
||||
win32file.CloseEncryptedFileRaw(ctxt)
|
||||
f.close()
|
||||
|
||||
## restore data from backup to new encrypted file
|
||||
dst_fname = win32api.GetTempFileName(dst_dir, "wef")[0]
|
||||
print("restored file:", dst_fname)
|
||||
f = open(bkup_fname, "rb")
|
||||
ctxtout = win32file.OpenEncryptedFileRaw(dst_fname, win32file.CREATE_FOR_IMPORT)
|
||||
try:
|
||||
win32file.WriteEncryptedFileRaw(WriteCallback, (bkup_fname, dst_fname, f), ctxtout)
|
||||
finally:
|
||||
win32file.CloseEncryptedFileRaw(ctxtout)
|
||||
f.close()
|
Loading…
Add table
Add a link
Reference in a new issue