This file is indexed.

/usr/lib/python3/dist-packages/geopy/geocoders/mapquest.py is in python3-geopy 0.95.1-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
try:
    import json
except ImportError:
    try:
        import simplejson as json
    except ImportError:
        from django.utils import simplejson as json

from urllib.parse import urlencode
from urllib.request import urlopen
from geopy.geocoders.base import Geocoder
from geopy.util import logger, decode_page, join_filter
from geopy import util

class MapQuest(Geocoder):

    def __init__(self, api_key='', format_string='%s'):
        """Initialize a MapQuest geocoder with address information and
           MapQuest API key.
        """
        self.api_key = api_key
        self.format_string = format_string
        self.url = "http://www.mapquestapi.com/geocoding/v1/address"

    def geocode(self, location, exactly_one=True):
        if isinstance(location, str):
            location = location.encode('utf-8')
        params = {'location' : location}
        data = urlencode(params)
        page = urlopen(self.url + '?key=' + self.api_key + '&' + data).read()
        return self.parse_json(page, exactly_one)

    def parse_json(self, page, exactly_one=True):
        """Parse display name, latitude, and longitude from an JSON response."""
        if not isinstance(page, str):
            page = decode_page(page)
        resources = json.loads(page)
        statuscode = resources.get('info').get('statuscode')
        if statuscode == 403:
            return "Bad API Key"
        resources = resources.get('results')[0].get('locations')

        if exactly_one and len(resources) != 1:
            from warnings import warn
            warn("Didn't find exactly one resource!" + \
                "(Found %d.), use exactly_one=False\n" % len(resources)
            )

        def parse_resource(resource):
            city = resource['adminArea5']
            county = resource['adminArea4']
            state = resource['adminArea3']
            country = resource['adminArea1']
            latLng = resource['latLng']
            latitude, longitude = latLng.get('lat'), latLng.get('lng')

            location = join_filter(", ", [city, county, state,country])
            if latitude and longitude:
                latitude = float(latitude)
                longitude = float(longitude)

            return (location, (latitude, longitude))

        if exactly_one:
            return parse_resource(resources[0])
        else:
            return [parse_resource(resource) for resource in resources]

if __name__ == "__main__":
    mq = MapQuest("Dmjtd%7Clu612007nq%2C20%3Do5-50zah")
    print(mq.geocode('Mount St. Helens'))
    mq = MapQuest("hDmjtd%7Clu612007nq%2C20%3Do5-50zah")
    print(mq.geocode('Mount St. Helens'))