simple-salesforce-deploy-accepts-io-bytes-not-base64

SfdcMetadataApi.deploy() accepts a file path or IO[bytes] object, not a base64 string. When zip content is already base64-encoded, decode first and wrap in io.BytesIO: io.BytesIO(base64.b64decode(zip_base64)). Passing a base64 string directly causes runtime failure with no clear error.