package Ġorg . jetbrains . research . common Ċ Ċ import Ġcom . jetbrains . python . psi . Language Level Ċ import Ġkotlinx . serialization . decode FromString Ċ import Ġkotlinx . serialization . json . Json Ċ import Ġorg . jetbrains . research . common . j gr ap ht . edges . Pattern Specific Multiple Edge Ċ import Ġorg . jetbrains . research . common . j gr ap ht . vertices . Pattern Specific Vertex Ċ import Ġorg . j gr ap ht . Graph Ċ import Ġjava . nio . file . Path Ċ import Ġjava . nio . file . Paths Ċ Ċ type alias ĠPattern Graph Ġ= ĠGraph < Pattern Specific Vertex , ĠPattern Specific Multiple Edge > Ċ Ċ /** Ċ Ġ* ĠA Ġsingleton Ġclass Ġfor Ġstoring Ġconfiguration Ġsettings . Ċ Ġ* Ċ Ġ* ĠThis Ġclass Ġparses Ġinformation Ġfrom Ġthe Ġ` rev iz or / plugin / src / main / resources / config . json `. Ċ Ġ*/ Ċ object ĠConfig Ġ{ ĊĠĠĠ Ġval ĠCODE _ CHANGE _ MIN ER _ PATH : ĠPath ĊĠĠĠ Ġval ĠTEMP _ DIRECTORY _ PATH : ĠPath ĊĠĠĠ Ġval ĠPYTHON _ EXECUT ABLE _ PATH : ĠPath ? ĊĠĠĠ Ġval ĠLANGUAGE _ LEVEL Ġ= ĠLanguage Level . PYTHON 3 8 ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconfig Json Ġ= Ġthis :: class . java . getResource ("/ config . json "). read Text () ĊĠĠĠĠĠĠĠ Ġval Ġconfig Ġ= ĠJson . decode FromString < HashMap < String , ĠString >>( config Json ) ĊĠĠĠĠĠĠĠ ĠCODE _ CHANGE _ MIN ER _ PATH Ġ= Ġconfig [" code _ change _ miner _ path "] ?. let Ġ{ ĠPaths . get ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠIllegalStateException ("\" code _ change _ miner _ path \" Ġis Ġnot Ġspecified Ġin Ġconfig . json ") ĊĠĠĠĠĠĠĠ ĠTEMP _ DIRECTORY _ PATH Ġ= Ġconfig [" temp _ directory _ path "] ?. let Ġ{ ĠPaths . get ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠIllegalStateException ("\" temp _ directory _ path \" Ġis Ġnot Ġspecified Ġin Ġconfig . json ") ĊĠĠĠĠĠĠĠ ĠTEMP _ DIRECTORY _ PATH . to File (). mkdir s () ĊĠĠĠĠĠĠĠ ĠPYTHON _ EXECUT ABLE _ PATH Ġ= Ġconfig [" python _ executable _ path "] ?. let Ġ{ ĠPaths . get ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠSystem . getenv ()[" PYTHON PATH "] ?. let Ġ{ ĠPaths . get ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠIllegalStateException ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\" python _ executable _ path \" Ġfrom Ġconfig . json Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" or Ġenvironment Ġvariable Ġ\$ PYTHON PATH Ġare Ġnot Ġspecified " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }