314 def get_latitude(ip):
315 import geoip2
316 try:
317 return GeoIP.reader._db_reader.get(ip)['location']['latitude']318 except (KeyError, TypeError, ValueError, geoip2.errors.AddressNotFoundError):
319 return float('nan')
320
322 def get_longitude(ip):
323 import geoip2
324 try:
325 return GeoIP.reader._db_reader.get(ip)['location']['longitude']326 except (KeyError, TypeError, ValueError, geoip2.errors.AddressNotFoundError):
327 return float('nan')
328
330 def get_accuracy(ip):
331 import geoip2
332 try:
333 return GeoIP.reader._db_reader.get(ip)['location']['accuracy_radius']334 except (KeyError, TypeError, ValueError, geoip2.errors.AddressNotFoundError):
335 return float('nan')
336
17logger = logging.getLogger(__name__)
18Base = declarative_base()
19adapter = lore.io.metadata.adapter
20engine = lore.io.metadata._engine 21Session = scoped_session(sessionmaker(bind=engine))
22
23
28 if section == 'DATABASES':
29 continue
30
31 options = config._sections[section] 32 if options.get('url') == '$DATABASE_URL':
33 logger.error('$DATABASE_URL is not set, but is used in config/database.cfg. Skipping connection.')
34 else:
Accessing a protected member (a member prefixed with _
) of a class from outside that class is not recommended, since the creator of that class did not intend this member to be exposed. If accesing this attribute outside of the class is absolutely needed, refactor it such that it becomes part of the public interface of the class.
class Rectangle(object):
def __init__(self, height, width):
self._height = height
self._width = width
r = Rectangle(4, 8)
area = r._height * r._width
class Rectangle(object):
def __init__(self, height, width):
self._height = height
self._width = width
def area():
return self._height * self._width
r = Rectangle(4, 8)
area = r.area()