schrodinger.seam.viz.watcher module

This module provides a webserver that serves a webapp that displays the pipeline graph of a seam pipeline. The webapp is served at http://localhost:8000.

Usage:

$SCHRODINGER/run python3 -m schrodinger.seam.viz.watcher seam

schrodinger.seam.viz.watcher.get_dot(pipeline_id: str, viewType: str, expandedTransforms: List) str

Given a pipeline id and view options, return the dot representation of the pipeline as a string.

schrodinger.seam.viz.watcher.get_events_file_from_pipeline_id(pipeline_id: str) pathlib.Path

Given a pipeline id, return the path to the .events file for that pipeline.

schrodinger.seam.viz.watcher.get_dot_from_events_file(events_file, viewType, expandedTransforms: list)

Given a path to a .events file, return the dot representation of the pipeline as a string.

schrodinger.seam.viz.watcher.get_logs(pipeline_id: str, sanitize=False)
class schrodinger.seam.viz.watcher.MyHandler(*args, directory=None, **kwargs)

Bases: http.server.SimpleHTTPRequestHandler

end_headers()

Send the blank line ending the MIME headers.

do_GET()

Serve a GET request.

MessageClass

alias of http.client.HTTPMessage

__init__(*args, directory=None, **kwargs)
address_string()

Return the client address.

copyfile(source, outputfile)

Copy all data between two file objects.

The SOURCE argument is a file object open for reading (or anything with a read() method) and the DESTINATION argument is a file object open for writing (or anything with a write() method).

The only reason for overriding this would be to change the block size or perhaps to replace newlines by CRLF – note however that this the default server uses this to copy binary data as well.

date_time_string(timestamp=None)

Return the current date and time formatted for a message header.

default_request_version = 'HTTP/0.9'
disable_nagle_algorithm = False
do_HEAD()

Serve a HEAD request.

error_content_type = 'text/html;charset=utf-8'
error_message_format = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"\n        "http://www.w3.org/TR/html4/strict.dtd">\n<html>\n    <head>\n        <meta http-equiv="Content-Type" content="text/html;charset=utf-8">\n        <title>Error response</title>\n    </head>\n    <body>\n        <h1>Error response</h1>\n        <p>Error code: %(code)d</p>\n        <p>Message: %(message)s.</p>\n        <p>Error code explanation: %(code)s - %(explain)s.</p>\n    </body>\n</html>\n'
extensions_map = {'': 'application/octet-stream', '.1': 'application/x-troff-man', '.123': 'application/vnd.lotus-1-2-3', '.1905.1': 'application/vnd.ieee.1905', '.2': 'application/x-troff-man', '.3': 'application/x-troff-man', '.3dm': 'text/vnd.in3d.3dml', '.3dml': 'text/vnd.in3d.3dml', '.3g2': 'video/3gpp2', '.3gp': 'video/3gpp', '.3gpp': 'video/3gpp', '.3gpp2': 'video/3gpp2', '.4': 'application/x-troff-man', '.5': 'application/x-troff-man', '.6': 'application/x-troff-man', '.669': 'audio/x-mod', '.7': 'application/x-troff-man', '.726': 'audio/32kadpcm', '.8': 'application/x-troff-man', '.a': 'application/octet-stream', '.aa3': 'audio/ATRAC3', '.aal': 'audio/ATRAC-ADVANCED-LOSSLESS', '.abc': 'text/vnd.abc', '.ac': 'application/vnd.nokia.n-gage.ac+xml', '.ac3': 'audio/ac3', '.acc': 'application/vnd.americandynamics.acc', '.acn': 'audio/asc', '.acu': 'application/vnd.acucobol', '.acutc': 'application/vnd.acucorp', '.aep': 'application/vnd.audiograph', '.afp': 'application/vnd.ibm.modcap', '.ahead': 'application/vnd.ahead.space', '.ai': 'application/postscript', '.aif': 'audio/x-aiff', '.aifc': 'audio/x-aiff', '.aiff': 'audio/x-aiff', '.ait': 'application/vnd.dvb.ait', '.ami': 'application/vnd.amiga.ami', '.amr': 'audio/AMR', '.anx': 'application/x-annodex', '.apk': 'application/vnd.android.package-archive', '.appcache': 'text/cache-manifest', '.apr': 'application/vnd.lotus-approach', '.apxml': 'application/auth-policy+xml', '.art': 'message/rfc822', '.asc': 'text/plain', '.asf': 'application/vnd.ms-asf', '.aso': 'application/vnd.accpac.simply.aso', '.asx': 'video/x-ms-asf', '.at3': 'audio/ATRAC3', '.atc': 'application/vnd.acucorp', '.atom': 'application/atom+xml', '.atomcat': 'application/atomcat+xml', '.atomdeleted': 'application/atomdeleted+xml', '.atomsvc': 'application/atomsvc+xml', '.atx': 'audio/ATRAC-X', '.au': 'audio/basic', '.auc': 'application/tamp-apex-update-confirm', '.avi': 'video/x-msvideo', '.awb': 'audio/AMR-WB', '.axa': 'audio/x-annodex', '.axv': 'video/x-annodex', '.azf': 'application/vnd.airzip.filesecure.azf', '.azs': 'application/vnd.airzip.filesecure.azs', '.azv': 'image/vnd.airzip.accelerator.azv', '.bar': 'application/vnd.qualcomm.brew-app-res', '.bat': 'text/plain', '.bcpio': 'application/x-bcpio', '.bdm': 'application/vnd.syncml.dm+wbxml', '.bed': 'application/vnd.realvnc.bed', '.bh2': 'application/vnd.fujitsu.oasysprs', '.bin': 'application/octet-stream', '.bkm': 'application/vnd.nervana', '.bmi': 'application/vnd.bmi', '.bmml': 'application/vnd.balsamiq.bmml+xml', '.bmp': 'image/bmp', '.box': 'application/vnd.previewsystems.box', '.bpd': 'application/vnd.hbci', '.btf': 'image/prs.btif', '.btif': 'image/prs.btif', '.bz2': 'application/x-bzip2', '.c': 'text/plain', '.c11amc': 'application/vnd.cluetrust.cartomobile-config', '.c11amz': 'application/vnd.cluetrust.cartomobile-config-pkg', '.c4d': 'application/vnd.clonk.c4group', '.c4f': 'application/vnd.clonk.c4group', '.c4g': 'application/vnd.clonk.c4group', '.c4p': 'application/vnd.clonk.c4group', '.c4u': 'application/vnd.clonk.c4group', '.cab': 'application/vnd.ms-cab-compressed', '.cap': 'application/vnd.tcpdump.pcap', '.cc': 'text/plain', '.ccc': 'text/vnd.net2phone.commcenter.command', '.ccmp': 'application/ccmp+xml', '.ccxml': 'application/ccxml+xml', '.cdbcmsg': 'application/vnd.contact.cmsg', '.cdf': 'application/x-netcdf', '.cdkey': 'application/vnd.mediastation.cdkey', '.cdmia': 'application/cdmi-capability', '.cdmic': 'application/cdmi-container', '.cdmid': 'application/cdmi-domain', '.cdmio': 'application/cdmi-object', '.cdmiq': 'application/cdmi-queue', '.cdxml': 'application/vnd.chemdraw+xml', '.cdy': 'application/vnd.cinderella', '.cellml': 'application/cellml+xml', '.cer': 'application/pkix-cert', '.cgm': 'image/cgm', '.chm': 'application/vnd.ms-htmlhelp', '.chrt': 'application/vnd.kde.kchart', '.cif': 'application/vnd.multiad.creator.cif', '.cii': 'application/vnd.anser-web-certificate-issue-initiation', '.cil': 'application/vnd.ms-artgalry', '.cl': 'application/simple-filter+xml', '.cla': 'application/vnd.claymore', '.class': 'application/octet-stream', '.clkk': 'application/vnd.crick.clicker.keyboard', '.clkp': 'application/vnd.crick.clicker.palette', '.clkt': 'application/vnd.crick.clicker.template', '.clkw': 'application/vnd.crick.clicker.wordbank', '.clkx': 'application/vnd.crick.clicker', '.cmc': 'application/vnd.cosmocaller', '.cml': 'application/cellml+xml', '.cmp': 'application/vnd.yellowriver-custom-menu', '.cnd': 'text/jcr-cnd', '.conf': 'text/plain', '.copyright': 'text/vnd.debian.copyright', '.cpio': 'application/x-cpio', '.cpkg': 'application/vnd.xmpie.cpkg', '.cpl': 'application/cpl+xml', '.cpt': 'application/mac-compactpro', '.crl': 'application/pkix-crl', '.crtr': 'application/vnd.multiad.creator', '.crx': 'application/x-chrome-extension', '.cryptonote': 'application/vnd.rig.cryptonote', '.csh': 'application/x-csh', '.csp': 'application/vnd.commonspace', '.css': 'text/css', '.cst': 'application/vnd.commonspace', '.csv': 'text/csv', '.cuc': 'application/tamp-community-update-confirm', '.curl': 'application/vnd.curl', '.cw': 'application/prs.cww', '.cww': 'application/prs.cww', '.cxx': 'text/plain', '.dae': 'model/vnd.collada+xml', '.daf': 'application/vnd.Mobius.DAF', '.dart': 'application/vnd.dart', '.dataless': 'application/vnd.fdsn.seed', '.davmount': 'application/davmount+xml', '.dcf': 'application/vnd.oma.drm.content', '.dcm': 'application/dicom', '.dcr': 'application/x-director', '.dd': 'application/vnd.oma.dd+xml', '.dd2': 'application/vnd.oma.dd2+xml', '.ddd': 'application/vnd.fujixerox.ddd', '.ddf': 'application/vnd.syncml.dmddf+xml', '.dfac': 'application/vnd.dreamfactory', '.dir': 'application/x-director', '.dis': 'application/vnd.Mobius.DIS', '.dist': 'application/vnd.apple.installer+xml', '.distz': 'application/vnd.apple.installer+xml', '.djv': 'image/vnd.djvu', '.djvu': 'image/vnd.djvu', '.dll': 'application/octet-stream', '.dls': 'audio/dls', '.dm': 'application/vnd.oma.drm.message', '.dmp': 'application/vnd.tcpdump.pcap', '.dms': 'text/vnd.DMClientScript', '.dna': 'application/vnd.dna', '.doc': 'application/msword', '.docm': 'application/vnd.ms-word.document.macroEnabled.12', '.docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', '.dor': 'model/vnd.gdl', '.dot': 'text/vnd.graphviz', '.dotm': 'application/vnd.ms-word.template.macroEnabled.12', '.dotx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.template', '.dp': 'application/vnd.osgi.dp', '.dpg': 'application/vnd.dpgraph', '.dpgraph': 'application/vnd.dpgraph', '.dpkg': 'application/vnd.xmpie.dpkg', '.dr': 'application/vnd.oma.drm.rights+xml', '.drc': 'application/vnd.oma.drm.rights+wbxml', '.dsc': 'text/prs.lines.tag', '.dsm': 'application/vnd.desmume.movie', '.dssc': 'application/dssc+der', '.dtd': 'application/xml-dtd', '.dts': 'audio/vnd.dts', '.dtshd': 'audio/vnd.dts.hd', '.dvb': 'video/vnd.dvb.file', '.dvc': 'application/dvcs', '.dvi': 'application/x-dvi', '.dwf': 'model/vnd.dwf', '.dwg': 'image/vnd.dwg', '.dxf': 'image/vnd.dxf', '.dxp': 'application/vnd.spotfire.dxp', '.dxr': 'application/x-director', '.ecelp4800': 'audio/vnd.nuera.ecelp4800', '.ecelp7470': 'audio/vnd.nuera.ecelp7470', '.ecelp9600': 'audio/vnd.nuera.ecelp9600', '.edm': 'application/vnd.novadigm.EDM', '.edx': 'application/vnd.novadigm.EDX', '.efif': 'application/vnd.picsel', '.ei6': 'application/vnd.pg.osasli', '.el': 'text/plain', '.eml': 'message/rfc822', '.emm': 'application/vnd.ibm.electronic-media', '.emma': 'application/emma+xml', '.ent': 'text/xml-external-parsed-entity', '.entity': 'application/vnd.nervana', '.enw': 'audio/EVRCNW', '.eol': 'audio/vnd.digital-winds', '.eot': 'application/vnd.ms-fontobject', '.ep': 'application/vnd.bluetooth.ep.oob', '.eps': 'application/postscript', '.epub': 'application/epub+zip', '.es': 'application/ecmascript', '.es3': 'application/vnd.eszigno3+xml', '.esa': 'application/vnd.osgi.subsystem', '.esf': 'application/vnd.epson.esf', '.et3': 'application/vnd.eszigno3+xml', '.etx': 'text/x-setext', '.evb': 'audio/EVRCB', '.evc': 'audio/EVRC', '.evw': 'audio/EVRCWB', '.exe': 'application/octet-stream', '.exi': 'application/exi', '.ext': 'application/vnd.novadigm.EXT', '.ez': 'application/andrew-inset', '.ez2': 'application/vnd.ezpix-album', '.ez3': 'application/vnd.ezpix-package', '.f90': 'text/plain', '.fbs': 'image/vnd.fastbidsheet', '.fcdt': 'application/vnd.adobe.formscentral.fcdt', '.fcs': 'application/vnd.isac.fcs', '.fdf': 'application/vnd.fdf', '.fdt': 'application/fdt+xml', '.fe_launch': 'application/vnd.denovo.fcselayout-link', '.fg5': 'application/vnd.fujitsu.oasysgp', '.finf': 'application/fastinfoset', '.fit': 'image/fits', '.fits': 'image/fits', '.fla': 'application/vnd.dtg.local.flash', '.flac': 'audio/x-flac', '.flo': 'application/vnd.micrografx.flo', '.flv': 'video/x-flv', '.flw': 'application/vnd.kde.kivio', '.flx': 'text/vnd.fmi.flexstor', '.fly': 'text/vnd.fly', '.fm': 'application/vnd.framemaker', '.fnc': 'application/vnd.frogans.fnc', '.fo': 'application/vnd.software602.filler.form+xml', '.fpx': 'image/vnd.fpx', '.frm': 'application/vnd.ufdl', '.fsc': 'application/vnd.fsc.weblaunch', '.fst': 'image/vnd.fst', '.ftc': 'application/vnd.fluxtime.clip', '.fti': 'application/vnd.anser-web-funds-transfer-initiation', '.fts': 'image/fits', '.fvt': 'video/vnd.fvt', '.fxm': 'video/x-javafx', '.fxp': 'application/vnd.adobe.fxp', '.fxpl': 'application/vnd.adobe.fxp', '.fzs': 'application/vnd.fuzzysheet', '.g2w': 'application/vnd.geoplan', '.g3': 'application/vnd.geocube+xml', '.g3w': 'application/vnd.geospace', '.gac': 'application/vnd.groove-account', '.gbr': 'application/rpki-ghostbusters', '.gdl': 'model/vnd.gdl', '.geo': 'application/vnd.dynageo', '.gex': 'application/vnd.geometry-explorer', '.ggb': 'application/vnd.geogebra.file', '.ggt': 'application/vnd.geogebra.tool', '.ghf': 'application/vnd.groove-help', '.gif': 'image/gif', '.gim': 'application/vnd.groove-identity-message', '.gmx': 'application/vnd.gmx', '.gph': 'application/vnd.FloGraphIt', '.gqf': 'application/vnd.grafeq', '.gqs': 'application/vnd.grafeq', '.gram': 'application/srgs', '.gre': 'application/vnd.geometry-explorer', '.grv': 'application/vnd.groove-injector', '.grxml': 'application/srgs+xml', '.gsheet': 'application/urc-grpsheet+xml', '.gsm': 'model/vnd.gdl', '.gtar': 'application/x-gtar', '.gtm': 'application/vnd.groove-tool-message', '.gtw': 'model/vnd.gtw', '.gv': 'text/vnd.graphviz', '.gxt': 'application/vnd.geonext', '.gz': 'application/gzip', '.g³': 'application/vnd.geocube+xml', '.h': 'text/plain', '.h5': 'application/x-hdf5', '.hal': 'application/vnd.hal+xml', '.hbc': 'application/vnd.hbci', '.hbci': 'application/vnd.hbci', '.hdf': 'application/x-hdf', '.hdr': 'image/vnd.radiance', '.hh': 'text/plain', '.hpgl': 'application/vnd.hp-HPGL', '.hpi': 'application/vnd.hp-hpid', '.hpid': 'application/vnd.hp-hpid', '.hps': 'application/vnd.hp-hps', '.hqx': 'application/mac-binhex40', '.htke': 'application/vnd.kenameaapp', '.htm': 'text/html', '.html': 'text/html', '.hvd': 'application/vnd.yamaha.hv-dic', '.hvp': 'application/vnd.yamaha.hv-voice', '.hvs': 'application/vnd.yamaha.hv-script', '.hxx': 'text/plain', '.i2g': 'application/vnd.intergeo', '.ic0': 'application/vnd.commerce-battelle', '.ic1': 'application/vnd.commerce-battelle', '.ic2': 'application/vnd.commerce-battelle', '.ic3': 'application/vnd.commerce-battelle', '.ic4': 'application/vnd.commerce-battelle', '.ic5': 'application/vnd.commerce-battelle', '.ic6': 'application/vnd.commerce-battelle', '.ic7': 'application/vnd.commerce-battelle', '.ic8': 'application/vnd.commerce-battelle', '.ica': 'application/vnd.commerce-battelle', '.icc': 'application/vnd.iccprofile', '.icd': 'application/vnd.commerce-battelle', '.ice': 'x-conference/x-cooltalk', '.icf': 'application/vnd.commerce-battelle', '.icm': 'application/vnd.iccprofile', '.ico': 'image/vnd.microsoft.icon', '.ics': 'text/calendar', '.ief': 'image/ief', '.ifb': 'text/calendar', '.ifm': 'application/vnd.shana.informed.formdata', '.iges': 'model/iges', '.igl': 'application/vnd.igloader', '.igm': 'application/vnd.insors.igm', '.igs': 'model/iges', '.igx': 'application/vnd.micrografx.igx', '.iif': 'application/vnd.shana.informed.interchange', '.img': 'application/octet-stream', '.imp': 'application/vnd.accpac.simply.imp', '.ims': 'application/vnd.ms-ims', '.ink': 'application/inkml+xml', '.inkml': 'application/inkml+xml', '.iota': 'application/vnd.astraea-software.iota', '.ipfix': 'application/ipfix', '.ipk': 'application/vnd.shana.informed.package', '.irm': 'application/vnd.ibm.rights-management', '.irp': 'application/vnd.irepository.package+xml', '.ism': 'model/vnd.gdl', '.iso': 'application/octet-stream', '.itp': 'application/vnd.shana.informed.formtemplate', '.ivp': 'application/vnd.immervision-ivp', '.ivu': 'application/vnd.immervision-ivu', '.jad': 'text/vnd.sun.j2me.app-descriptor', '.jam': 'application/vnd.jam', '.jar': 'application/x-java-archive', '.jfif': 'image/jpeg', '.jisp': 'application/vnd.jisp', '.jlt': 'application/vnd.hp-jlyt', '.jnlp': 'application/x-java-jnlp-file', '.joda': 'application/vnd.joost.joda-archive', '.jp2': 'image/jp2', '.jpe': 'image/jpeg', '.jpeg': 'image/jpeg', '.jpf': 'image/jpx', '.jpg': 'image/jpeg', '.jpg2': 'image/jp2', '.jpgm': 'image/jpm', '.jpm': 'image/jpm', '.jpx': 'image/jpx', '.js': 'application/javascript', '.json': 'application/json', '.json-patch': 'application/json-patch+json', '.jtd': 'text/vnd.esmertec.theme-descriptor', '.kar': 'audio/midi', '.karbon': 'application/vnd.kde.karbon', '.kcm': 'application/vnd.nervana', '.kfo': 'application/vnd.kde.kformula', '.kia': 'application/vnd.kidspiration', '.kil': 'application/x-killustrator', '.kml': 'application/vnd.google-earth.kml+xml', '.kmz': 'application/vnd.google-earth.kmz', '.kne': 'application/vnd.Kinar', '.knp': 'application/vnd.Kinar', '.kom': 'application/vnd.hbci', '.kon': 'application/vnd.kde.kontour', '.koz': 'audio/vnd.audikoz', '.kpr': 'application/vnd.kde.kpresenter', '.kpt': 'application/vnd.kde.kpresenter', '.ksh': 'text/plain', '.ksp': 'application/vnd.kde.kspread', '.ktr': 'application/vnd.kahootz', '.ktx': 'image/ktx', '.ktz': 'application/vnd.kahootz', '.kwd': 'application/vnd.kde.kword', '.kwt': 'application/vnd.kde.kword', '.l16': 'audio/L16', '.lasxml': 'application/vnd.las.las+xml', '.latex': 'application/x-latex', '.lbc': 'audio/iLBC', '.lbd': 'application/vnd.llamagraphics.life-balance.desktop', '.lbe': 'application/vnd.llamagraphics.life-balance.exchange+xml', '.les': 'application/vnd.hhe.lesson-player', '.lha': 'application/octet-stream', '.link66': 'application/vnd.route66.link66+xml', '.list3820': 'application/vnd.ibm.modcap', '.listafp': 'application/vnd.ibm.modcap', '.lmp': 'model/vnd.gdl', '.log': 'text/plain', '.lostsyncxml': 'application/lostsync+xml', '.lostxml': 'application/lost+xml', '.lrm': 'application/vnd.ms-lrm', '.ltf': 'application/vnd.frogans.ltf', '.lvp': 'audio/vnd.lucent.voice', '.lwp': 'application/vnd.lotus-wordpro', '.lzh': 'application/octet-stream', '.m': 'application/vnd.wolfram.mathematica.package', '.m15': 'audio/x-mod', '.m1v': 'video/mpeg', '.m21': 'application/mp21', '.m2v': 'video/mpeg', '.m3u': 'audio/x-mpegurl', '.m3u8': 'application/vnd.apple.mpegurl', '.m4a': 'audio/mp4', '.m4u': 'video/vnd.mpegurl', '.m4v': 'video/mp4', '.ma': 'application/mathematica', '.mads': 'application/mads+xml', '.mag': 'application/vnd.ecowin.chart', '.mail': 'message/rfc822', '.man': 'application/x-troff-man', '.manifest': 'text/cache-manifest', '.mb': 'application/mathematica', '.mbk': 'application/vnd.Mobius.MBK', '.mbox': 'application/mbox', '.mc1': 'application/vnd.medcalcdata', '.mcd': 'application/vnd.mcd', '.mdc': 'application/vnd.marlin.drm.mdcf', '.mdi': 'image/vnd.ms-modi', '.me': 'application/x-troff-me', '.med': 'audio/x-mod', '.mesh': 'model/mesh', '.meta4': 'application/metalink4+xml', '.metalink': 'application/metalink+xml', '.mets': 'application/mets+xml', '.mfm': 'application/vnd.mfmp', '.mft': 'application/rpki-manifest', '.mgp': 'application/vnd.osgeo.mapguide.package', '.mgz': 'application/vnd.proteus.magazine', '.mht': 'message/rfc822', '.mhtml': 'message/rfc822', '.mid': 'audio/midi', '.midi': 'audio/midi', '.mif': 'application/vnd.mif', '.miz': 'text/mizar', '.mj2': 'video/mj2', '.mjp2': 'video/mj2', '.mjs': 'application/javascript', '.mlp': 'audio/vnd.dolby.mlp', '.mmd': 'application/vnd.chipnuts.karaoke-mmd', '.mmf': 'application/vnd.smaf', '.mml': 'application/mathml+xml', '.mmr': 'image/vnd.fujixerox.edmics-mmr', '.mms': 'application/vnd.wap.mms-message', '.mod': 'audio/x-mod', '.model-inter': 'application/vnd.vd-study', '.mods': 'application/mods+xml', '.moml': 'model/vnd.moml+xml', '.mov': 'video/quicktime', '.movie': 'video/x-sgi-movie', '.mp1': 'audio/mpeg', '.mp2': 'audio/mpeg', '.mp21': 'application/mp21', '.mp3': 'audio/mpeg', '.mp4': 'video/mp4', '.mpa': 'video/mpeg', '.mpc': 'application/vnd.mophun.certificate', '.mpd': 'application/dash+xml', '.mpe': 'video/mpeg', '.mpeg': 'video/mpeg', '.mpf': 'text/vnd.ms-mediapackage', '.mpg': 'video/mpeg', '.mpg4': 'video/mp4', '.mpga': 'audio/mpeg', '.mpkg': 'application/vnd.apple.installer+xml', '.mpm': 'application/vnd.blueice.multipass', '.mpn': 'application/vnd.mophun.application', '.mpp': 'application/vnd.ms-project', '.mpt': 'application/vnd.ms-project', '.mpy': 'application/vnd.ibm.MiniPay', '.mqy': 'application/vnd.Mobius.MQY', '.mrc': 'application/marc', '.mrcx': 'application/marcxml+xml', '.ms': 'application/x-troff-ms', '.msd': 'application/vnd.fdsn.mseed', '.mseed': 'application/vnd.fdsn.mseed', '.mseq': 'application/vnd.mseq', '.msf': 'application/vnd.epson.msf', '.msh': 'model/mesh', '.msl': 'application/vnd.Mobius.MSL', '.msm': 'model/vnd.gdl', '.msty': 'application/vnd.muvee.style', '.mtm': 'audio/x-mod', '.mts': 'model/vnd.mts', '.mus': 'application/vnd.musician', '.mwc': 'application/vnd.dpgraph', '.mwf': 'application/vnd.MFER', '.mxf': 'application/mxf', '.mxi': 'application/vnd.vd-study', '.mxl': 'application/vnd.recordare.musicxml', '.mxmf': 'audio/mobile-xmf', '.mxml': 'application/xv+xml', '.mxs': 'application/vnd.triscape.mxs', '.mxu': 'video/vnd.mpegurl', '.n-gage': 'application/vnd.nokia.n-gage.symbian.install', '.n3': 'text/n3', '.nb': 'application/mathematica', '.nbp': 'application/vnd.wolfram.player', '.nc': 'application/x-netcdf', '.ndc': 'application/vnd.osa.netdeploy', '.ndl': 'application/vnd.lotus-notes', '.nds': 'application/vnd.nintendo.nitro.rom', '.ngdat': 'application/vnd.nokia.n-gage.data', '.nim': 'video/vnd.nokia.interleaved-multimedia', '.nitf': 'application/vnd.nitf', '.nlu': 'application/vnd.neurolanguage.nlu', '.nml': 'application/vnd.enliven', '.nnd': 'application/vnd.noblenet-directory', '.nns': 'application/vnd.noblenet-sealer', '.nnw': 'application/vnd.noblenet-web', '.notebook': 'application/vnd.smart.notebook', '.ns2': 'application/vnd.lotus-notes', '.ns3': 'application/vnd.lotus-notes', '.ns4': 'application/vnd.lotus-notes', '.nsf': 'application/vnd.lotus-notes', '.nsg': 'application/vnd.lotus-notes', '.nsh': 'application/vnd.lotus-notes', '.ntf': 'application/vnd.lotus-notes', '.nws': 'message/rfc822', '.o': 'application/octet-stream', '.o4a': 'application/vnd.oma.drm.dcf', '.o4v': 'application/vnd.oma.drm.dcf', '.oa2': 'application/vnd.fujitsu.oasys2', '.oa3': 'application/vnd.fujitsu.oasys3', '.oas': 'application/vnd.fujitsu.oasys', '.obj': 'application/octet-stream', '.oda': 'application/oda', '.odb': 'application/vnd.oasis.opendocument.database', '.odc': 'application/vnd.oasis.opendocument.chart', '.odd': 'application/tei+xml', '.odf': 'application/vnd.oasis.opendocument.formula', '.odg': 'application/vnd.oasis.opendocument.graphics', '.odi': 'application/vnd.oasis.opendocument.image', '.odm': 'application/vnd.oasis.opendocument.text-master', '.odp': 'application/vnd.oasis.opendocument.presentation', '.ods': 'application/vnd.oasis.opendocument.spreadsheet', '.odt': 'application/vnd.oasis.opendocument.text', '.oga': 'audio/ogg', '.ogg': 'audio/ogg', '.ogv': 'video/ogg', '.ogx': 'application/ogg', '.omg': 'audio/ATRAC3', '.opf': 'application/oebps-package+xml', '.oprc': 'application/vnd.palm', '.opus': 'audio/ogg', '.or2': 'application/vnd.lotus-organizer', '.or3': 'application/vnd.lotus-organizer', '.org': 'application/vnd.lotus-organizer', '.orq': 'application/ocsp-request', '.ors': 'application/ocsp-response', '.osf': 'application/vnd.yamaha.openscoreformat', '.otc': 'application/vnd.oasis.opendocument.chart-template', '.otf': 'application/vnd.oasis.opendocument.formula-template', '.otg': 'application/vnd.oasis.opendocument.graphics-template', '.oth': 'application/vnd.oasis.opendocument.text-web', '.oti': 'application/vnd.oasis.opendocument.image-template', '.otp': 'application/vnd.oasis.opendocument.presentation-template', '.ots': 'application/vnd.oasis.opendocument.spreadsheet-template', '.ott': 'application/vnd.oasis.opendocument.text-template', '.oxps': 'application/oxps', '.oxt': 'application/vnd.openofficeorg.extension', '.p10': 'application/pkcs10', '.p12': 'application/x-pkcs12', '.p7c': 'application/pkcs7-mime', '.p7m': 'application/pkcs7-mime', '.p7s': 'application/pkcs7-signature', '.p8': 'application/pkcs8', '.pack': 'application/x-java-pack200', '.package': 'application/vnd.autopackage', '.paw': 'application/vnd.pawaafile', '.pbd': 'application/vnd.powerbuilder6', '.pbm': 'image/x-portable-bitmap', '.pcap': 'application/vnd.tcpdump.pcap', '.pcl': 'application/vnd.hp-PCL', '.pdb': 'application/vnd.palm', '.pdf': 'application/pdf', '.pfr': 'application/font-tdpfr', '.pfx': 'application/x-pkcs12', '.pgb': 'image/vnd.globalgraphics.pgb', '.pgm': 'image/x-portable-graymap', '.pgn': 'application/x-chess-pgn', '.pgp': 'application/pgp-encrypted', '.pil': 'application/vnd.piaccess.application-license', '.pkd': 'application/vnd.hbci', '.pkg': 'application/vnd.apple.installer+xml', '.pki': 'application/pkixcmp', '.pkipath': 'application/pkix-pkipath', '.pl': 'application/x-perl', '.plb': 'application/vnd.3gpp.pic-bw-large', '.plc': 'application/vnd.Mobius.PLC', '.plf': 'application/vnd.pocketlearn', '.plj': 'audio/vnd.everad.plj', '.pls': 'application/pls+xml', '.pm': 'text/plain', '.pml': 'application/vnd.ctc-posml', '.png': 'image/png', '.pnm': 'image/x-portable-anymap', '.pod': 'text/x-pod', '.portpkg': 'application/vnd.macports.portpkg', '.pot': 'application/vnd.ms-powerpoint', '.potm': 'application/vnd.ms-powerpoint.template.macroEnabled.12', '.potx': 'application/vnd.openxmlformats-officedocument.presentationml.template', '.ppa': 'application/vnd.ms-powerpoint', '.ppam': 'application/vnd.ms-powerpoint.addin.macroEnabled.12', '.ppd': 'application/vnd.cups-ppd', '.ppkg': 'application/vnd.xmpie.ppkg', '.ppm': 'image/x-portable-pixmap', '.pps': 'application/vnd.ms-powerpoint', '.ppsm': 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12', '.ppsx': 'application/vnd.openxmlformats-officedocument.presentationml.slideshow', '.ppt': 'application/vnd.ms-powerpoint', '.pptm': 'application/vnd.ms-powerpoint.presentation.macroEnabled.12', '.pptx': 'application/vnd.openxmlformats-officedocument.presentationml.presentation', '.pqa': 'application/vnd.palm', '.prc': 'application/vnd.palm', '.pre': 'application/vnd.lotus-freelance', '.preminet': 'application/vnd.preminet', '.provn': 'text/provenance-notation', '.provx': 'application/provenance+xml', '.prz': 'application/vnd.lotus-freelance', '.ps': 'application/postscript', '.psb': 'application/vnd.3gpp.pic-bw-small', '.psd': 'image/vnd.adobe.photoshop', '.pseg3820': 'application/vnd.ibm.modcap', '.psid': 'audio/prs.sid', '.pskcxml': 'application/pskc+xml', '.pti': 'image/prs.pti', '.ptid': 'application/vnd.pvi.ptid1', '.pvb': 'application/vnd.3gpp.pic-bw-var', '.pwn': 'application/vnd.3M.Post-it-Notes', '.pwz': 'application/vnd.ms-powerpoint', '.py': 'text/plain', '.pya': 'audio/vnd.ms-playready.media.pya', '.pyc': 'application/x-python-code', '.pyo': 'application/x-python-code', '.pyv': 'video/vnd.ms-playready.media.pyv', '.qam': 'application/vnd.epson.quickanime', '.qbo': 'application/vnd.intu.qbo', '.qca': 'application/vnd.ericsson.quickcall', '.qcall': 'application/vnd.ericsson.quickcall', '.qcp': 'audio/qcelp', '.qfx': 'application/vnd.intu.qfx', '.qps': 'application/vnd.publishare-delta-tree', '.qt': 'video/quicktime', '.quiz': 'application/vnd.quobject-quoxdocument', '.quox': 'application/vnd.quobject-quoxdocument', '.qwd': 'application/vnd.Quark.QuarkXPress', '.qwt': 'application/vnd.Quark.QuarkXPress', '.qxb': 'application/vnd.Quark.QuarkXPress', '.qxd': 'application/vnd.Quark.QuarkXPress', '.qxl': 'application/vnd.Quark.QuarkXPress', '.qxt': 'application/vnd.Quark.QuarkXPress', '.ra': 'audio/x-realaudio', '.ram': 'audio/x-pn-realaudio', '.ras': 'image/x-cmu-raster', '.rcprofile': 'application/vnd.ipunplugged.rcprofile', '.rct': 'application/prs.nprend', '.rdf': 'application/rdf+xml', '.rdf-crypt': 'application/prs.rdf-xml-crypt', '.rdz': 'application/vnd.data-vision.rdz', '.relo': 'application/p2p-overlay+xml', '.rep': 'application/vnd.businessobjects', '.request': 'application/vnd.nervana', '.rgb': 'image/x-rgb', '.rgbe': 'image/vnd.radiance', '.rif': 'application/reginfo+xml', '.rip': 'audio/vnd.rip', '.rl': 'application/resource-lists+xml', '.rlc': 'image/vnd.fujixerox.edmics-rlc', '.rld': 'application/resource-lists-diff+xml', '.rm': 'audio/x-pn-realaudio', '.rms': 'application/vnd.jcp.javame.midlet-rms', '.rnc': 'application/relax-ng-compact-syntax', '.rnd': 'application/prs.nprend', '.rng': 'text/xml', '.roa': 'application/rpki-roa', '.roff': 'text/troff', '.rp9': 'application/vnd.cloanto.rp9', '.rpm': 'application/x-rpm', '.rpss': 'application/vnd.nokia.radio-presets', '.rpst': 'application/vnd.nokia.radio-preset', '.rq': 'application/sparql-query', '.rs': 'application/rls-services+xml', '.rsheet': 'application/urc-ressheet+xml', '.rsm': 'model/vnd.gdl', '.rss': 'application/rss+xml', '.rst': 'text/prs.fallenstein.rst', '.rtf': 'application/rtf', '.rtx': 'text/richtext', '.s11': 'video/vnd.sealed.mpeg1', '.s14': 'video/vnd.sealed.mpeg4', '.s1a': 'application/vnd.sealedmedia.softseal.pdf', '.s1e': 'application/vnd.sealed.xls', '.s1g': 'image/vnd.sealedmedia.softseal.gif', '.s1h': 'application/vnd.sealedmedia.softseal.html', '.s1j': 'image/vnd.sealedmedia.softseal.jpg', '.s1m': 'audio/vnd.sealedmedia.softseal.mpeg', '.s1n': 'image/vnd.sealed.png', '.s1p': 'application/vnd.sealed.ppt', '.s1q': 'video/vnd.sealedmedia.softseal.mov', '.s1w': 'application/vnd.sealed.doc', '.s3df': 'application/vnd.sealed.3df', '.s3m': 'audio/x-s3m', '.sac': 'application/tamp-sequence-adjust-confirm', '.saf': 'application/vnd.yamaha.smaf-audio', '.sam': 'application/vnd.lotus-wordpro', '.sandboxed': 'text/html-sandboxed', '.sc': 'application/vnd.ibm.secure-container', '.scd': 'application/vnd.scribus', '.scm': 'application/vnd.lotus-screencam', '.scq': 'application/scvp-cv-request', '.scs': 'application/scvp-cv-response', '.scsf': 'application/vnd.sealed.csf', '.sdf': 'application/vnd.Kinar', '.sdkd': 'application/vnd.solent.sdkm+xml', '.sdkm': 'application/vnd.solent.sdkm+xml', '.sdo': 'application/vnd.sealed.doc', '.sdoc': 'application/vnd.sealed.doc', '.sdp': 'application/sdp', '.see': 'application/vnd.seemail', '.seed': 'application/vnd.fdsn.seed', '.sem': 'application/vnd.sealed.eml', '.sema': 'application/vnd.sema', '.semd': 'application/vnd.semd', '.semf': 'application/vnd.semf', '.seml': 'application/vnd.sealed.eml', '.sfd': 'application/vnd.font-fontforge-sfd', '.sfd-hdstx': 'application/vnd.hydrostatix.sof-data', '.sfs': 'application/vnd.spotfire.sfs', '.sgi': 'image/vnd.sealedmedia.softseal.gif', '.sgif': 'image/vnd.sealedmedia.softseal.gif', '.sgm': 'text/sgml', '.sgml': 'text/sgml', '.sh': 'application/x-sh', '.shar': 'application/x-shar', '.shf': 'application/shf+xml', '.si': 'text/vnd.wap.si', '.sic': 'application/vnd.wap.sic', '.sid': 'audio/prs.sid', '.sieve': 'application/sieve', '.sig': 'application/pgp-signature', '.silo': 'model/mesh', '.sis': 'application/vnd.symbian.install', '.sisx': 'x-epoc/x-sisx-app', '.sit': 'application/x-stuffit', '.siv': 'application/sieve', '.sjp': 'image/vnd.sealedmedia.softseal.jpg', '.sjpg': 'image/vnd.sealedmedia.softseal.jpg', '.skd': 'application/vnd.koan', '.skm': 'application/vnd.koan', '.skp': 'application/vnd.koan', '.skt': 'application/vnd.koan', '.sl': 'text/vnd.wap.sl', '.sla': 'application/vnd.scribus', '.slaz': 'application/vnd.scribus', '.slc': 'application/vnd.wap.slc', '.sldm': 'application/vnd.ms-powerpoint.slide.macroEnabled.12', '.sldx': 'application/vnd.openxmlformats-officedocument.presentationml.slide', '.slt': 'application/vnd.epson.salt', '.sm': 'application/vnd.stepmania.stepchart', '.smh': 'application/vnd.sealed.mht', '.smht': 'application/vnd.sealed.mht', '.smi': 'application/smil+xml', '.smil': 'application/smil+xml', '.sml': 'application/smil+xml', '.smo': 'video/vnd.sealedmedia.softseal.mov', '.smov': 'video/vnd.sealedmedia.softseal.mov', '.smp': 'audio/vnd.sealedmedia.softseal.mpeg', '.smp3': 'audio/vnd.sealedmedia.softseal.mpeg', '.smpg': 'video/vnd.sealed.mpeg1', '.sms': 'application/vnd.3gpp2.sms', '.smv': 'audio/SMV', '.smzip': 'application/vnd.stepmania.package', '.snd': 'audio/basic', '.so': 'application/octet-stream', '.soa': 'text/dns', '.soc': 'application/sgml-open-catalog', '.spd': 'application/vnd.sealedmedia.softseal.pdf', '.spdf': 'application/vnd.sealedmedia.softseal.pdf', '.spf': 'application/vnd.yamaha.smaf-phrase', '.spl': 'application/x-futuresplash', '.spn': 'image/vnd.sealed.png', '.spng': 'image/vnd.sealed.png', '.spo': 'text/vnd.in3d.spot', '.spot': 'text/vnd.in3d.spot', '.spp': 'application/scvp-vp-response', '.sppt': 'application/vnd.sealed.ppt', '.spq': 'application/scvp-vp-request', '.spx': 'audio/ogg', '.sql': 'application/sql', '.src': 'application/x-wais-source', '.sru': 'application/sru+xml', '.srx': 'application/sparql-results+xml', '.sse': 'application/vnd.kodak-descriptor', '.ssf': 'application/vnd.epson.ssf', '.ssml': 'application/ssml+xml', '.ssw': 'video/vnd.sealed.swf', '.sswf': 'video/vnd.sealed.swf', '.st': 'application/vnd.sailingtracker.track', '.stc': 'application/vnd.sun.xml.calc.template', '.std': 'application/vnd.sun.xml.draw.template', '.stf': 'application/vnd.wt.stf', '.sti': 'application/vnd.sun.xml.impress.template', '.stif': 'application/vnd.sealed.tiff', '.stk': 'application/hyperstudio', '.stm': 'audio/x-stm', '.stml': 'application/vnd.sealedmedia.softseal.html', '.str': 'application/vnd.pg.format', '.study-inter': 'application/vnd.vd-study', '.stw': 'application/vnd.sun.xml.writer.template', '.sub': 'text/vnd.dvb.subtitle', '.sus': 'application/vnd.sus-calendar', '.susp': 'application/vnd.sus-calendar', '.sv4cpio': 'application/x-sv4cpio', '.sv4crc': 'application/x-sv4crc', '.svc': 'application/vnd.dvb.service', '.svg': 'image/svg+xml', '.svgz': 'image/svg+xml', '.swf': 'application/x-shockwave-flash', '.swi': 'application/vnd.aristanetworks.swi', '.sxc': 'application/vnd.sun.xml.calc', '.sxd': 'application/vnd.sun.xml.draw', '.sxg': 'application/vnd.sun.xml.writer.global', '.sxi': 'application/vnd.sun.xml.impress', '.sxl': 'application/vnd.sealed.xls', '.sxls': 'application/vnd.sealed.xls', '.sxm': 'application/vnd.sun.xml.math', '.sxw': 'application/vnd.sun.xml.writer', '.t': 'text/troff', '.t38': 'image/t38', '.tag': 'text/prs.lines.tag', '.taglet': 'application/vnd.mynfc', '.tao': 'application/vnd.tao.intent-module-archive', '.tar': 'application/x-tar', '.tau': 'application/tamp-apex-update', '.tcap': 'application/vnd.3gpp2.tcap', '.tcl': 'application/x-tcl', '.tcu': 'application/tamp-community-update', '.td': 'application/urc-targetdesc+xml', '.teacher': 'application/vnd.smart.teacher', '.tei': 'application/tei+xml', '.teiCorpus': 'application/tei+xml', '.ter': 'application/tamp-error', '.tex': 'application/x-tex', '.texi': 'application/x-texinfo', '.texinfo': 'application/x-texinfo', '.text': 'text/plain', '.tfi': 'application/thraud+xml', '.tfx': 'image/tiff-fx', '.tga': 'image/x-targa', '.tgz': 'application/gzip', '.thmx': 'application/vnd.ms-officetheme', '.tif': 'image/tiff', '.tiff': 'image/tiff', '.tlclient': 'application/vnd.cendio.thinlinc.clientconf', '.tmo': 'application/vnd.tmobile-livetv', '.tnef': 'application/vnd.ms-tnef', '.tnf': 'application/vnd.ms-tnef', '.torrent': 'application/x-bittorrent', '.tpl': 'application/vnd.groove-tool-template', '.tpt': 'application/vnd.trid.tpt', '.tr': 'text/troff', '.tra': 'application/vnd.trueapp', '.tree': 'application/vnd.rainstor.data', '.ts': 'text/vnd.trolltech.linguist', '.tsa': 'application/tamp-sequence-adjust', '.tsd': 'application/timestamped-data', '.tsq': 'application/timestamp-query', '.tsr': 'application/timestamp-reply', '.tsv': 'text/tab-separated-values', '.ttf': 'application/font-sfnt', '.ttl': 'text/turtle', '.tuc': 'application/tamp-update-confirm', '.tur': 'application/tamp-update', '.twd': 'application/vnd.SimTech-MindMapper', '.twds': 'application/vnd.SimTech-MindMapper', '.txd': 'application/vnd.genomatix.tuxedo', '.txf': 'application/vnd.Mobius.TXF', '.txt': 'text/plain', '.u8dsn': 'message/global-delivery-status', '.u8hdr': 'message/global-headers', '.u8mdn': 'message/global-disposition-notification', '.u8msg': 'message/global', '.ufd': 'application/vnd.ufdl', '.ufdl': 'application/vnd.ufdl', '.ult': 'audio/x-mod', '.umj': 'application/vnd.umajin', '.uni': 'audio/x-mod', '.unityweb': 'application/vnd.unity', '.uo': 'application/vnd.uoml+xml', '.uoml': 'application/vnd.uoml+xml', '.upa': 'application/vnd.hbci', '.uri': 'text/uri-list', '.uric': 'text/vnd.si.uricatalogue', '.uris': 'text/uri-list', '.ustar': 'application/x-ustar', '.utz': 'application/vnd.uiq.theme', '.uva': 'audio/vnd.dece.audio', '.uvd': 'application/vnd.dece.data', '.uvf': 'application/vnd.dece.data', '.uvg': 'image/vnd.dece.graphic', '.uvh': 'video/vnd.dece.hd', '.uvi': 'image/vnd.dece.graphic', '.uvm': 'video/vnd.dece.mobile', '.uvp': 'video/vnd.dece.pd', '.uvs': 'video/vnd.dece.sd', '.uvt': 'application/vnd.dece.ttml+xml', '.uvu': 'video/vnd.dece.mp4', '.uvv': 'video/vnd.dece.video', '.uvva': 'audio/vnd.dece.audio', '.uvvd': 'application/vnd.dece.data', '.uvvf': 'application/vnd.dece.data', '.uvvg': 'image/vnd.dece.graphic', '.uvvh': 'video/vnd.dece.hd', '.uvvi': 'image/vnd.dece.graphic', '.uvvm': 'video/vnd.dece.mobile', '.uvvp': 'video/vnd.dece.pd', '.uvvs': 'video/vnd.dece.sd', '.uvvt': 'application/vnd.dece.ttml+xml', '.uvvu': 'video/vnd.dece.mp4', '.uvvv': 'video/vnd.dece.video', '.uvvx': 'application/vnd.dece.unspecified', '.uvvz': 'application/vnd.dece.zip', '.uvx': 'application/vnd.dece.unspecified', '.uvz': 'application/vnd.dece.zip', '.vbk': 'audio/vnd.nortel.vbk', '.vbox': 'application/vnd.previewsystems.box', '.vcard': 'text/vcard', '.vcd': 'application/x-cdlink', '.vcf': 'text/vcard', '.vcg': 'application/vnd.groove-vcard', '.vcx': 'application/vnd.vcx', '.vew': 'application/vnd.lotus-approach', '.vis': 'application/vnd.visionary', '.viv': 'video/vnd.vivo', '.vpm': 'multipart/voice-message', '.vrml': 'model/vrml', '.vsc': 'application/vnd.vidsoft.vidconference', '.vsd': 'application/vnd.visio', '.vsf': 'application/vnd.vsf', '.vss': 'application/vnd.visio', '.vst': 'application/vnd.visio', '.vsw': 'application/vnd.visio', '.vtu': 'model/vnd.vtu', '.vwx': 'application/vnd.vectorworks', '.vxml': 'application/voicexml+xml', '.wadl': 'application/vnd.sun.wadl+xml', '.wasm': 'application/wasm', '.wav': 'audio/x-wav', '.wax': 'audio/x-ms-wax', '.wbmp': 'image/vnd.wap.wbmp', '.wbs': 'application/vnd.criticaltools.wbs+xml', '.wbxml': 'application/vnd.wap.wbxml', '.wcm': 'application/vnd.ms-works', '.wdb': 'application/vnd.ms-works', '.webm': 'video/webm', '.webmanifest': 'application/manifest+json', '.webp': 'image/webp', '.wg': 'application/vnd.pmi.widget', '.wgt': 'application/widget', '.wif': 'application/watcherinfo+xml', '.win': 'model/vnd.gdl', '.wiz': 'application/msword', '.wk1': 'application/vnd.lotus-1-2-3', '.wk3': 'application/vnd.lotus-1-2-3', '.wk4': 'application/vnd.lotus-1-2-3', '.wks': 'application/vnd.ms-works', '.wlnk': 'application/link-format', '.wm': 'video/x-ms-wm', '.wma': 'audio/x-ms-wma', '.wmc': 'application/vnd.wmc', '.wml': 'text/vnd.wap.wml', '.wmlc': 'application/vnd.wap.wmlc', '.wmls': 'text/vnd.wap.wmlscript', '.wmlsc': 'application/vnd.wap.wmlscriptc', '.wmv': 'video/x-ms-wmv', '.wmx': 'video/x-ms-wmx', '.woff': 'application/font-woff', '.wpd': 'application/vnd.wordperfect', '.wpl': 'application/vnd.ms-wpl', '.wps': 'application/vnd.ms-works', '.wqd': 'application/vnd.wqd', '.wrl': 'model/vrml', '.wsc': 'application/vnd.wfa.wsc', '.wsdl': 'application/wsdl+xml', '.wspolicy': 'application/wspolicy+xml', '.wtb': 'application/vnd.webturbo', '.wv': 'application/vnd.wv.csp+wbxml', '.wvx': 'video/x-ms-wvx', '.x3d': 'application/vnd.hzn-3d-crossword', '.x_b': 'model/vnd.parasolid.transmit.binary', '.x_t': 'model/vnd.parasolid.transmit.text', '.xar': 'application/vnd.xara', '.xav': 'application/xcap-att+xml', '.xbd': 'application/vnd.fujixerox.docuworks.binder', '.xbm': 'image/x-xbitmap', '.xca': 'application/xcap-caps+xml', '.xcs': 'application/calendar+xml', '.xdf': 'application/xcap-diff+xml', '.xdm': 'application/vnd.syncml.dm+xml', '.xdp': 'application/vnd.adobe.xdp+xml', '.xdssc': 'application/dssc+xml', '.xdw': 'application/vnd.fujixerox.docuworks', '.xel': 'application/xcap-el+xml', '.xer': 'application/xcap-error+xml', '.xfd': 'application/vnd.xfdl', '.xfdf': 'application/vnd.adobe.xfdf', '.xfdl': 'application/vnd.xfdl', '.xht': 'application/xhtml+xml', '.xhtm': 'application/xhtml+xml', '.xhtml': 'application/xhtml+xml', '.xhvml': 'application/xv+xml', '.xif': 'image/vnd.xiff', '.xla': 'application/vnd.ms-excel', '.xlam': 'application/vnd.ms-excel.addin.macroEnabled.12', '.xlb': 'application/vnd.ms-excel', '.xlc': 'application/vnd.ms-excel', '.xlim': 'application/vnd.xmpie.xlim', '.xlm': 'application/vnd.ms-excel', '.xls': 'application/vnd.ms-excel', '.xlsb': 'application/vnd.ms-excel.sheet.binary.macroEnabled.12', '.xlsm': 'application/vnd.ms-excel.sheet.macroEnabled.12', '.xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', '.xlt': 'application/vnd.ms-excel', '.xltm': 'application/vnd.ms-excel.template.macroEnabled.12', '.xltx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.template', '.xlw': 'application/vnd.ms-excel', '.xml': 'text/xml', '.xmls': 'application/dskpp+xml', '.xmt_bin': 'model/vnd.parasolid.transmit.binary', '.xmt_txt': 'model/vnd.parasolid.transmit.text', '.xns': 'application/xcap-ns+xml', '.xo': 'application/vnd.olpc-sugar', '.xop': 'application/xop+xml', '.xpdl': 'application/xml', '.xpi': 'application/x-xpinstall', '.xpm': 'image/x-xpixmap', '.xpr': 'application/vnd.is-xpr', '.xps': 'application/vnd.ms-xpsdocument', '.xpw': 'application/vnd.intercon.formnet', '.xpx': 'application/vnd.intercon.formnet', '.xsd': 'text/xml', '.xsf': 'application/prs.xsf+xml', '.xsl': 'application/xslt+xml', '.xslt': 'application/xslt+xml', '.xsm': 'application/vnd.syncml+xml', '.xspf': 'application/x-xspf+xml', '.xul': 'application/vnd.mozilla.xul+xml', '.xvm': 'application/xv+xml', '.xvml': 'application/xv+xml', '.xwd': 'image/x-xwindowdump', '.xyz': 'chemical/x-xyz', '.xyze': 'image/vnd.radiance', '.xz': 'application/x-xz', '.yang': 'application/yang', '.yin': 'application/yin+xml', '.zaz': 'application/vnd.zzazz.deck+xml', '.zfo': 'application/vnd.software602.filler.form-xml-zip', '.zip': 'application/zip', '.zir': 'application/vnd.zul', '.zirz': 'application/vnd.zul', '.zmm': 'application/vnd.HandHeld-Entertainment+xml', '.zone': 'text/dns'}
finish()
flush_headers()
guess_type(path)

Guess the type of a file.

Argument is a PATH (a filename).

Return value is a string of the form type/subtype, usable for a MIME Content-type header.

The default implementation looks the file’s extension up in the table self.extensions_map, using application/octet-stream as a default; however it would be permissible (if slow) to look inside the data to make a better guess.

handle()

Handle multiple requests if necessary.

handle_expect_100()

Decide what to do with an “Expect: 100-continue” header.

If the client is expecting a 100 Continue response, we must respond with either a 100 Continue or a final response before waiting for the request body. The default is to always respond with a 100 Continue. You can behave differently (for example, reject unauthorized requests) by overriding this method.

This method should either return True (possibly after sending a 100 Continue response) or send an error response and return False.

handle_one_request()

Handle a single HTTP request.

You normally don’t need to override this method; see the class __doc__ string for information on how to handle specific HTTP commands such as GET and POST.

list_directory(path)

Helper to produce a directory listing (absent index.html).

Return value is either a file object, or None (indicating an error). In either case, the headers are sent, making the interface the same as for send_head().

log_date_time_string()

Return the current time formatted for logging.

log_error(format, *args)

Log an error.

This is called when a request cannot be fulfilled. By default it passes the message on to log_message().

Arguments are the same as for log_message().

XXX This should go to the separate error log.

log_message(format, *args)

Log an arbitrary message.

This is used by all other logging functions. Override it if you have specific logging wishes.

The first argument, FORMAT, is a format string for the message to be logged. If the format string contains any % escapes requiring parameters, they should be specified as subsequent arguments (it’s just like printf!).

The client ip and current date/time are prefixed to every message.

log_request(code='-', size='-')

Log an accepted request.

This is called by send_response().

monthname = [None, 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
parse_request()

Parse a request (internal).

The request should be stored in self.raw_requestline; the results are in self.command, self.path, self.request_version and self.headers.

Return True for success, False for failure; on failure, any relevant error response has already been sent back.

protocol_version = 'HTTP/1.0'
rbufsize = -1
responses = {HTTPStatus.CONTINUE: ('Continue', 'Request received, please continue'), HTTPStatus.SWITCHING_PROTOCOLS: ('Switching Protocols', 'Switching to new protocol; obey Upgrade header'), HTTPStatus.PROCESSING: ('Processing', ''), HTTPStatus.OK: ('OK', 'Request fulfilled, document follows'), HTTPStatus.CREATED: ('Created', 'Document created, URL follows'), HTTPStatus.ACCEPTED: ('Accepted', 'Request accepted, processing continues off-line'), HTTPStatus.NON_AUTHORITATIVE_INFORMATION: ('Non-Authoritative Information', 'Request fulfilled from cache'), HTTPStatus.NO_CONTENT: ('No Content', 'Request fulfilled, nothing follows'), HTTPStatus.RESET_CONTENT: ('Reset Content', 'Clear input form for further input'), HTTPStatus.PARTIAL_CONTENT: ('Partial Content', 'Partial content follows'), HTTPStatus.MULTI_STATUS: ('Multi-Status', ''), HTTPStatus.ALREADY_REPORTED: ('Already Reported', ''), HTTPStatus.IM_USED: ('IM Used', ''), HTTPStatus.MULTIPLE_CHOICES: ('Multiple Choices', 'Object has several resources -- see URI list'), HTTPStatus.MOVED_PERMANENTLY: ('Moved Permanently', 'Object moved permanently -- see URI list'), HTTPStatus.FOUND: ('Found', 'Object moved temporarily -- see URI list'), HTTPStatus.SEE_OTHER: ('See Other', 'Object moved -- see Method and URL list'), HTTPStatus.NOT_MODIFIED: ('Not Modified', 'Document has not changed since given time'), HTTPStatus.USE_PROXY: ('Use Proxy', 'You must use proxy specified in Location to access this resource'), HTTPStatus.TEMPORARY_REDIRECT: ('Temporary Redirect', 'Object moved temporarily -- see URI list'), HTTPStatus.PERMANENT_REDIRECT: ('Permanent Redirect', 'Object moved permanently -- see URI list'), HTTPStatus.BAD_REQUEST: ('Bad Request', 'Bad request syntax or unsupported method'), HTTPStatus.UNAUTHORIZED: ('Unauthorized', 'No permission -- see authorization schemes'), HTTPStatus.PAYMENT_REQUIRED: ('Payment Required', 'No payment -- see charging schemes'), HTTPStatus.FORBIDDEN: ('Forbidden', 'Request forbidden -- authorization will not help'), HTTPStatus.NOT_FOUND: ('Not Found', 'Nothing matches the given URI'), HTTPStatus.METHOD_NOT_ALLOWED: ('Method Not Allowed', 'Specified method is invalid for this resource'), HTTPStatus.NOT_ACCEPTABLE: ('Not Acceptable', 'URI not available in preferred format'), HTTPStatus.PROXY_AUTHENTICATION_REQUIRED: ('Proxy Authentication Required', 'You must authenticate with this proxy before proceeding'), HTTPStatus.REQUEST_TIMEOUT: ('Request Timeout', 'Request timed out; try again later'), HTTPStatus.CONFLICT: ('Conflict', 'Request conflict'), HTTPStatus.GONE: ('Gone', 'URI no longer exists and has been permanently removed'), HTTPStatus.LENGTH_REQUIRED: ('Length Required', 'Client must specify Content-Length'), HTTPStatus.PRECONDITION_FAILED: ('Precondition Failed', 'Precondition in headers is false'), HTTPStatus.REQUEST_ENTITY_TOO_LARGE: ('Request Entity Too Large', 'Entity is too large'), HTTPStatus.REQUEST_URI_TOO_LONG: ('Request-URI Too Long', 'URI is too long'), HTTPStatus.UNSUPPORTED_MEDIA_TYPE: ('Unsupported Media Type', 'Entity body in unsupported format'), HTTPStatus.REQUESTED_RANGE_NOT_SATISFIABLE: ('Requested Range Not Satisfiable', 'Cannot satisfy request range'), HTTPStatus.EXPECTATION_FAILED: ('Expectation Failed', 'Expect condition could not be satisfied'), HTTPStatus.MISDIRECTED_REQUEST: ('Misdirected Request', 'Server is not able to produce a response'), HTTPStatus.UNPROCESSABLE_ENTITY: ('Unprocessable Entity', ''), HTTPStatus.LOCKED: ('Locked', ''), HTTPStatus.FAILED_DEPENDENCY: ('Failed Dependency', ''), HTTPStatus.UPGRADE_REQUIRED: ('Upgrade Required', ''), HTTPStatus.PRECONDITION_REQUIRED: ('Precondition Required', 'The origin server requires the request to be conditional'), HTTPStatus.TOO_MANY_REQUESTS: ('Too Many Requests', 'The user has sent too many requests in a given amount of time ("rate limiting")'), HTTPStatus.REQUEST_HEADER_FIELDS_TOO_LARGE: ('Request Header Fields Too Large', 'The server is unwilling to process the request because its header fields are too large'), HTTPStatus.UNAVAILABLE_FOR_LEGAL_REASONS: ('Unavailable For Legal Reasons', 'The server is denying access to the resource as a consequence of a legal demand'), HTTPStatus.INTERNAL_SERVER_ERROR: ('Internal Server Error', 'Server got itself in trouble'), HTTPStatus.NOT_IMPLEMENTED: ('Not Implemented', 'Server does not support this operation'), HTTPStatus.BAD_GATEWAY: ('Bad Gateway', 'Invalid responses from another server/proxy'), HTTPStatus.SERVICE_UNAVAILABLE: ('Service Unavailable', 'The server cannot process the request due to a high load'), HTTPStatus.GATEWAY_TIMEOUT: ('Gateway Timeout', 'The gateway server did not receive a timely response'), HTTPStatus.HTTP_VERSION_NOT_SUPPORTED: ('HTTP Version Not Supported', 'Cannot fulfill request'), HTTPStatus.VARIANT_ALSO_NEGOTIATES: ('Variant Also Negotiates', ''), HTTPStatus.INSUFFICIENT_STORAGE: ('Insufficient Storage', ''), HTTPStatus.LOOP_DETECTED: ('Loop Detected', ''), HTTPStatus.NOT_EXTENDED: ('Not Extended', ''), HTTPStatus.NETWORK_AUTHENTICATION_REQUIRED: ('Network Authentication Required', 'The client needs to authenticate to gain network access')}
send_error(code, message=None, explain=None)

Send and log an error reply.

Arguments are * code: an HTTP error code

3 digits

  • message: a simple optional 1 line reason phrase.

    *( HTAB / SP / VCHAR / %x80-FF ) defaults to short entry matching the response code

  • explain: a detailed message defaults to the long entry

    matching the response code.

This sends an error response (so it must be called before any output has been generated), logs the error, and finally sends a piece of HTML explaining the error to the user.

send_head()

Common code for GET and HEAD commands.

This sends the response code and MIME headers.

Return value is either a file object (which has to be copied to the outputfile by the caller unless the command was HEAD, and must be closed by the caller under all circumstances), or None, in which case the caller has nothing further to do.

send_header(keyword, value)

Send a MIME header to the headers buffer.

send_response(code, message=None)

Add the response header to the headers buffer and log the response code.

Also send two standard headers with the server software version and the current date.

send_response_only(code, message=None)

Send the response header only.

server_version = 'SimpleHTTP/0.6'
setup()
sys_version = 'Python/3.8.10'
timeout = None
translate_path(path)

Translate a /-separated PATH to the local filename syntax.

Components that mean special things to the local file system (e.g. drive or directory names) are ignored. (XXX They should probably be diagnosed.)

version_string()

Return the server software version string.

wbufsize = 0
weekdayname = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
schrodinger.seam.viz.watcher.main(local_seamdir=None)
schrodinger.seam.viz.watcher.run_server()