<commit_before><?php

namespace GeoIp2\Database;

use GeoIp2\Exception\AddressNotFoundException;
use GeoIp2\Model\City;
use GeoIp2\Model\CityIspOrg;
use GeoIp2\Model\Country;
use GeoIp2\Model\Omni;
use MaxMind\Db\Reader as DbReader;

/**
 * Instances of this class provide a reader for the GeoIP2 database format.
 * IP addresses can be looked up using the <code>country</code>
 * and <code>city</code> methods. We also provide <code>cityIspOrg</code>
 * and <code>omni</code> methods to ease compatibility with the web service
 * client, although we may offer the ability to specify additional databases
 * to replicate these web services in the future (e.g., the ISP/Org database).
 *
  * **Usage**
 *
 * The basic API for this class is the same for every database. First, you
 * create a reader object, specifying a file name. You then call the method
 * corresponding to the specific database, passing it the IP address you want
 * to look up.
 *
 * If the request succeeds, the method call will return a model class for
 * the method you called. This model in turn contains multiple record classes,
 * each of which represents part of the data returned by the database. If
 * the database does not contain the requested information, the attributes
 * on the record class will have a <code>null</code> value.
 *
 * If the address is not in the database, an
 * {@link \GeoIp2\Exception\AddressNotFoundException} exception will be
 * thrown. If an invalid IP address is passed to one of the methods, a
 * SPL {@link \InvalidArgumentException} will be thrown. If the database is
 * corrupt or invalid, a {@link \MaxMind\Db\Reader\InvalidDatabaseException}
 * will be thrown.
 *
 */
class Reader
{
    private $dbReader;
    private $languages;

    /**
     * Constructor.
     *
     * @param string $filename The path to the GeoIP2 database file.
     * @throws \MaxMind\Db\Reader\InvalidDatabaseException if the database
     *          is corrupt or invalid
     */
    public function __construct(
        $filename,
        $languages = array('en')
    ) {
        $this->dbReader = new DbReader($filename);
        $this->languages = $languages;
    }

    /**
     * This method returns a GeoIP2 City model.
     *
     * @param string $ipAddress IPv4 or IPv6 address as a string.
     *
     * @return \GeoIp2\Model\City<commit_msg>Added missing documentation on $languages param<commit_after><?php

namespace GeoIp2\Database;

use GeoIp2\Exception\AddressNotFoundException;
use GeoIp2\Model\City;
use GeoIp2\Model\CityIspOrg;
use GeoIp2\Model\Country;
use GeoIp2\Model\Omni;
use MaxMind\Db\Reader as DbReader;

/**
 * Instances of this class provide a reader for the GeoIP2 database format.
 * IP addresses can be looked up using the <code>country</code>
 * and <code>city</code> methods. We also provide <code>cityIspOrg</code>
 * and <code>omni</code> methods to ease compatibility with the web service
 * client, although we may offer the ability to specify additional databases
 * to replicate these web services in the future (e.g., the ISP/Org database).
 *
  * **Usage**
 *
 * The basic API for this class is the same for every database. First, you
 * create a reader object, specifying a file name. You then call the method
 * corresponding to the specific database, passing it the IP address you want
 * to look up.
 *
 * If the request succeeds, the method call will return a model class for
 * the method you called. This model in turn contains multiple record classes,
 * each of which represents part of the data returned by the database. If
 * the database does not contain the requested information, the attributes
 * on the record class will have a <code>null</code> value.
 *
 * If the address is not in the database, an
 * {@link \GeoIp2\Exception\AddressNotFoundException} exception will be
 * thrown. If an invalid IP address is passed to one of the methods, a
 * SPL {@link \InvalidArgumentException} will be thrown. If the database is
 * corrupt or invalid, a {@link \MaxMind\Db\Reader\InvalidDatabaseException}
 * will be thrown.
 *
 */
class Reader
{
    private $dbReader;
    private $languages;

    /**
     * Constructor.
     *
     * @param string $filename The path to the GeoIP2 database file.
     * @param array  $languages  List of language codes to use in name property
     * from most preferred to least preferred.
     * @throws \MaxMind\Db\Reader\InvalidDatabaseException if the database
     *          is corrupt or invalid
     */
    public function __construct(
        $filename,
        $languages = array('en')
    ) {
        $this->dbReader = new DbReader($filename);
        $this->languages = $languages;
    }

    /**
     * This method returns a GeoIP2 City model.
     *
     * @param string $ipAddress IPv4 or IPv6 address as a string.
     *
     * @return \GeoIp2\Model\City
{'fraction_non_alphanumeric': 0.0825593395252838, 'fraction_numerical': 0.005366357069143447, 'mean_word_length': 3.2847038019451813, 'pattern_counts': {'":': 0, '<': 25, '<?xml version=': 0, '>': 27, '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': '3197598', 'n_tokens_mistral': 1374, 'n_tokens_neox': 1319, 'n_words': 584}