package Ġcom . in no be ad . gradle . task Ċ Ċ import Ġcom . in no be ad . gradle . plugin . python Plugin Extension Ċ import Ġorg . gradle . api . Default Task Ċ import Ġjava . io . File Ċ Ċ abstract Ġclass ĠAbstract Task Ġ: ĠDefault Task () Ġ{ ĊĊĠĠĠ Ġval Ġvirtualenv Dir Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġproject . extensions . python Plugin Extension . virtualenv Dir ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġpython Dir Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġproject . extensions . python Plugin Extension . python Dir ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġpython Build Dir Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġproject . extensions . python Plugin Extension . python Build Dir ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġprepare Python Env ( commands : ĠMutable List < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġcommands . clear () ĊĊĠĠĠĠĠĠĠ Ġvar Ġpython Lib Dir Ġ= Ġget Python Lib Dir () ĊĠĠĠĠĠĠĠ Ġif Ġ( python Lib Dir Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpython Lib Dir Ġ= ĠFile ( python Lib Dir , Ġ" site - packages ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcommands . add (""" export ĠPYTHON PATH ="${ python Lib Dir . canonical Path } ": ${ '$ '} PYTHON PATH """) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcommands . add (""" export ĠPATH ="$ python Dir / bin ": ${ '$ '} PATH """) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Python Lib Dir (): ĠFile ? Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġpython Lib Dir : ĠFile ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( pattern Ġin ĠlistOf (" 2 .* ", Ġ" 3 .* "). map Ġ{ Ġ" python $ it " Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpython Lib Dir Ġ= ĠFile ( python Dir , Ġ" lib "). list Files Ġ{ Ġf Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf . isDirectory ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ?. find Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpattern . to Regex (). matches ( it . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( python Lib Dir Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġpython Lib Dir ĊĠĠĠ Ġ} Ċ }