<commit_before><?php

abstract class ExtensionModule extends Module {

  private $dir;

  protected $e = null;

  public final function __construct(App $app, AppConfig $config, $dir) {
    parent::__construct($app);
    $this->e = $this->m->Extensions;
    $this->config = $config;
    $this->dir = $dir;
    $this->init();
  }

  protected function init() { }

  public function uninstall() { }
  
  public function afterLoad() { }

  /**
   * Get the absolute path of a file.
   * If called with a single parameter, then the name of the current module
   * is used as location identifier.
   * @param string $key Location-identifier
   * @param string $path File
   * @return string Absolute path
   */
  public function p($key, $path = null) {
    if (isset($path))
      return parent::p($key, $path);
    return parent::p('extensions', $this->dir . '/' . $key);
  }
}<commit_msg>Remove uninstall<commit_after><?php

abstract class ExtensionModule extends Module {

  private $dir;

  protected $e = null;

  public final function __construct(App $app, AppConfig $config, $dir) {
    parent::__construct($app);
    $this->e = $this->m->Extensions;
    $this->config = $config;
    $this->dir = $dir;
    $this->init();
  }

  protected function init() { }

  public function afterLoad() { }

  /**
   * Get the absolute path of a file.
   * If called with a single parameter, then the name of the current module
   * is used as location identifier.
   * @param string $key Location-identifier
   * @param string $path File
   * @return string Absolute path
   */
  public function p($key, $path = null) {
    if (isset($path))
      return parent::p($key, $path);
    return parent::p('extensions', $this->dir . '/' . $key);
  }
}
{'fraction_non_alphanumeric': 0.14186851211072665, 'fraction_numerical': 0.0, 'mean_word_length': 3.130952380952381, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 17, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6122005', 'n_tokens_mistral': 534, 'n_tokens_neox': 520, 'n_words': 172}