Does anybody have a good method of doing this?
I've tried using the zipfile python library but am utterly confused on how to do it for a file geodatabase since it's not exactly a directory/file structure. My folder structure looks like so, I want to zip up the folder/geodatabase outlined in red:

I've tried this (all the indentation is correct in my script, don't know why GeoNet is changing it upon publishing the question):
<SPAN class="keyword token">import</SPAN> zipfile
<SPAN class="comment token">#Creates the empty zip file and opens it for writing</SPAN>
myzipfile <SPAN class="operator token">=</SPAN> zipfile<SPAN class="punctuation token">.</SPAN>ZipFile<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"D:\GIS_Testing\HabitatDbase\MyZip.zip"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'w'</SPAN><SPAN class="punctuation token">,</SPAN> zipfile<SPAN class="punctuation token">.</SPAN>ZIP_DEFLATED<SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">for</SPAN> root<SPAN class="punctuation token">,</SPAN> dirs<SPAN class="punctuation token">,</SPAN> files <SPAN class="keyword token">in</SPAN> os<SPAN class="punctuation token">.</SPAN>walk<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"D:\GIS_Testing\HabitatDbase"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">if</SPAN> root <SPAN class="operator token">==</SPAN> <SPAN class="string token">"D:\GIS_Testing\HabitatDbase\HabitatData.gdb"</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">for</SPAN> f <SPAN class="keyword token">in</SPAN> files<SPAN class="punctuation token">:</SPAN>
myzipfile<SPAN class="punctuation token">.</SPAN>write<SPAN class="punctuation token">(</SPAN>os<SPAN class="punctuation token">.</SPAN>path<SPAN class="punctuation token">.</SPAN>join<SPAN class="punctuation token">(</SPAN>root<SPAN class="punctuation token">,</SPAN> file<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>
I've also tried using shutil.make_archive and for some reason instead of zipping up my file geodatabase it zips up my python script file which is completely bewildering as I have no idea how it would even get the path to the script file...
I get a TypeError on the last line that says "object of type 'type' has no len()"