document.write('<link rel="stylesheet" href="http://gist.github.com/stylesheets/gist/embed.css"/>')





document.write('<div id=\"gist-11835\" class=\"gist\">\n  \n  \n    \n            \n\n      <div class=\"gist-file\">\n        <div class=\"gist-data gist-syntax\">\n          \n          \n          \n            <div class=\"gist-highlight\"><pre><div class=\"line\" id=\"LC1\"><span class=\"k\">def<\/span> <span class=\"nf\">compile_python_source<\/span><span class=\"p\">(<\/span><span class=\"n\">filepath<\/span><span class=\"p\">,<\/span> <span class=\"n\">optimization<\/span><span class=\"o\">=<\/span><span class=\"bp\">False<\/span><span class=\"p\">):<\/span><\/div><div class=\"line\" id=\"LC2\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"sd\">&quot;&quot;&quot;<\/span><\/div><div class=\"line\" id=\"LC3\"><span class=\"sd\">    Compile a source file to byte-code and write out<\/span><\/div><div class=\"line\" id=\"LC4\"><span class=\"sd\">    the byte-code cache file. The source code is loaded<\/span><\/div><div class=\"line\" id=\"LC5\"><span class=\"sd\">    from the file name *filepath*. The byte-code is cached<\/span><\/div><div class=\"line\" id=\"LC6\"><span class=\"sd\">    in the normal manner (*filepath* + &#39;c&#39; or &#39;o&#39; if<\/span><\/div><div class=\"line\" id=\"LC7\"><span class=\"sd\">    optimization is enabled).<\/span><\/div><div class=\"line\" id=\"LC8\"><span class=\"sd\">    &quot;&quot;&quot;<\/span><\/div><div class=\"line\" id=\"LC9\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"kn\">from<\/span> <span class=\"nn\">os<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">spawnv<\/span><\/div><div class=\"line\" id=\"LC10\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"kn\">from<\/span> <span class=\"nn\">sys<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">executable<\/span><span class=\"p\">,<\/span> <span class=\"n\">platform<\/span><\/div><div class=\"line\" id=\"LC11\">&nbsp;<\/div><div class=\"line\" id=\"LC12\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">args<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"n\">executable<\/span><span class=\"p\">]<\/span><\/div><div class=\"line\" id=\"LC13\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">if<\/span> <span class=\"n\">optimization<\/span><span class=\"p\">:<\/span><\/div><div class=\"line\" id=\"LC14\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">args<\/span><span class=\"o\">.<\/span><span class=\"n\">append<\/span><span class=\"p\">(<\/span><span class=\"s\">&#39;-O&#39;<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC15\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">args<\/span> <span class=\"o\">+=<\/span> <span class=\"p\">[<\/span><span class=\"s\">&#39;-m&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;py_compile&#39;<\/span><span class=\"p\">]<\/span><\/div><div class=\"line\" id=\"LC16\">&nbsp;<\/div><div class=\"line\" id=\"LC17\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">if<\/span> <span class=\"nb\">isinstance<\/span><span class=\"p\">(<\/span><span class=\"n\">filepath<\/span><span class=\"p\">,<\/span> <span class=\"p\">(<\/span><span class=\"nb\">tuple<\/span><span class=\"p\">,<\/span> <span class=\"nb\">list<\/span><span class=\"p\">)):<\/span><\/div><div class=\"line\" id=\"LC18\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">args<\/span><span class=\"o\">.<\/span><span class=\"n\">extend<\/span><span class=\"p\">(<\/span><span class=\"n\">filepath<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC19\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">else<\/span><span class=\"p\">:<\/span><\/div><div class=\"line\" id=\"LC20\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">args<\/span><span class=\"o\">.<\/span><span class=\"n\">append<\/span><span class=\"p\">(<\/span><span class=\"n\">filepath<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC21\">&nbsp;<\/div><div class=\"line\" id=\"LC22\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">if<\/span> <span class=\"n\">platform<\/span> <span class=\"o\">==<\/span> <span class=\"s\">&quot;win32&quot;<\/span><span class=\"p\">:<\/span><\/div><div class=\"line\" id=\"LC23\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">args<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"s\">&#39;&quot;<\/span><span class=\"si\">%s<\/span><span class=\"s\">&quot;&#39;<\/span> <span class=\"o\">%<\/span> <span class=\"n\">arg<\/span> <span class=\"k\">for<\/span> <span class=\"n\">arg<\/span> <span class=\"ow\">in<\/span> <span class=\"n\">args<\/span><span class=\"p\">]<\/span><\/div><div class=\"line\" id=\"LC24\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">return<\/span> <span class=\"n\">spawnv<\/span><span class=\"p\">(<\/span><span class=\"n\">os<\/span><span class=\"o\">.<\/span><span class=\"n\">P_WAIT<\/span><span class=\"p\">,<\/span> <span class=\"n\">executable<\/span><span class=\"p\">,<\/span> <span class=\"n\">args<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC25\">&nbsp;<\/div><div class=\"line\" id=\"LC26\">&nbsp;<\/div><\/pre><\/div>\n          \n        <\/div>\n\n        <div class=\"gist-meta\">\n          <a href=\"http://gist.github.com/raw/11835/66359d2857b80a1d0a936c9eea48bc4f797c315b/compile_python_source.py\" style=\"float:right;\">view raw<\/a>\n          <a href=\"http://gist.github.com/11835#file_compile_python_source.py\" style=\"float:right;margin-right:10px;color:#666\">compile_python_source.py<\/a>\n          <a href=\"http://gist.github.com/11835\">This Gist<\/a> brought to you by <a href=\"http://github.com\">GitHub<\/a>.\n        <\/div>\n      <\/div>\n    \n  \n<\/div>\n')
