<commit_before><?php




require_once(__DIR__.'/pudlData.php');




abstract class	pudlResult
	implements	pudlData {




	public function __construct(pudl $db, $result=false) {
		$this->result	= $result;
		$this->db		= $db;
		$this->query	= $db->query();
		$this->string	= $db->isString();
	}



	public function __destruct() {
	}



	public function __invoke() {
		return $this->row();
	}




	////////////////////////////////////////////////////////////////////////////
	//Countable
	////////////////////////////////////////////////////////////////////////////
	abstract public function count();




	////////////////////////////////////////////////////////////////////////////
	//SeekableIterator
	////////////////////////////////////////////////////////////////////////////
	abstract public function seek($row);




	////////////////////////////////////////////////////////////////////////////
	//Iterator
	////////////////////////////////////////////////////////////////////////////
	public function current() {
		if ($this->row === false) $this();
		return $this->data;
	}


	public function key() {
		return ($this->row === false) ? 0 : $this->row;
	}


	public function next() {
		return $this();
	}


	public function rewind() {
		$this->seek(0);
	}


	public function valid() {
		if ($this->row === false) $this();
		return pudl_array($this->data);
	}




	////////////////////////////////////////////////////////////////////////////
	//pudlData
	////////////////////////////////////////////////////////////////////////////
	abstract public function row($type=PUDL_ARRAY);
	abstract public function fields();
	abstract public function getField($column);


	public function listFields() {
		if (!$this->result) return false;<commit_msg>Adding references to PHP documentation on inherited methods<commit_after><?php




require_once(__DIR__.'/pudlData.php');




abstract class	pudlResult
	implements	pudlData {




	////////////////////////////////////////////////////////////////////////////
	// CONSTRUCTOR. PASS IN REFERENCE TO PUDL AS $DB, AND THE $RESULT IF AVAIL
	////////////////////////////////////////////////////////////////////////////
	public function __construct(pudl $db, $result=false) {
		$this->result	= $result;
		$this->db		= $db;
		$this->query	= $db->query();
		$this->string	= $db->isString();
	}




	////////////////////////////////////////////////////////////////////////////
	// REQUIRED FOR INHERITANCE
	////////////////////////////////////////////////////////////////////////////
	public function __destruct() {
	}




	////////////////////////////////////////////////////////////////////////////
	// SHORTCUT METHOD FOR ACCESSING CURRENT ROW DATA
	////////////////////////////////////////////////////////////////////////////
	public function __invoke() {
		return $this->row();
	}




	////////////////////////////////////////////////////////////////////////////
	// PHP'S COUNTABLE
	// http://php.net/manual/en/countable.count.php
	////////////////////////////////////////////////////////////////////////////
	abstract public function count();




	////////////////////////////////////////////////////////////////////////////
	// PHP'S SEEKABLEITERATOR
	// http://php.net/manual/en/seekableiterator.seek.php
	////////////////////////////////////////////////////////////////////////////
	abstract public function seek($row);




	////////////////////////////////////////////////////////////////////////////
	// PHP'S ITERATOR
	// http://php.net/manual/en/iterator.current.php
	////////////////////////////////////////////////////////////////////////////
	public function current() {
		if ($this->row === false) $this();
		return $this->data;
	}




	////////////////////////////////////////////////////////////////////////////
	// PHP'S ITERATOR
	// http://php.net/manual/en/iterator.key.php
	////////////////////////////////////////////////////////////////////////////
	public function key() {
		return ($this->row === false) ? 0 : $this->row;
	}




	////////////////////////////////////////////////////////////////////////////
	// PHP'S ITERATOR
	// http://php.net/manual/en/iterator.next.php
	////////////////////////////////////////////////////////////////////////////
	public function next() {
		return $this();
	}




	////////////////////////////////////////////////////////////////////////////
	// PHP'S ITERATOR
	// http://php.net/manual/en/iterator.rewind.php
	////////////////////////////////////////////////////////////////////////////
	public function rewind() {
		$this->seek(0);
	}




	////////////////////////////////////////////////////////////////////////////
	// PHP'S ITERATOR
	// http://php.net/manual/en/iterator.valid.php
	////////////////////////////////////////////////////////////////////////////
	public function valid() {
		if ($this->row === false) $this();
		return pudl_array($this->data);
	}




	////////////////////////////////////////////////////////////////////////////
	//pudlData
	////////////////////////////////////////////////////////////////////////////
	abstract public function row($type=PUDL_ARRAY);
	abstract public function fields();
	abstract public function getField($column);


	public function listFields() {
		if (!$this->result) return false;
{'fraction_non_alphanumeric': 0.5249283667621777, 'fraction_numerical': 0.0007640878701050621, 'mean_word_length': 0.7435897435897436, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 33, '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': '1493703', 'n_tokens_mistral': 1204, 'n_tokens_neox': 1065, 'n_words': 235}