Do not use TemporaryDirectory for ArtifactsZip
Currently the ArtifactsZip will create a new temporary directory each time it is initialized. These directories are never cleaned up even after the program exits.
Instead of creating temporary directories only for a single
artifacts.zip
file to pass to ZipFile use BytesIO object which
is a in memory buffer emulating the file API. ZipFile can accept it
as its input.
Also remove unnecessary None
type from attributes which are
always initialized to not None
.