Hello community, here is the log from the commit of package python-geoip2 for openSUSE:Factory checked in at 2018-06-29 22:27:47 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-geoip2 (Old) and /work/SRC/openSUSE:Factory/.python-geoip2.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-geoip2" Fri Jun 29 22:27:47 2018 rev:5 rq:617163 version:2.9.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-geoip2/python-geoip2.changes 2018-05-08 13:36:38.055081346 +0200 +++ /work/SRC/openSUSE:Factory/.python-geoip2.new/python-geoip2.changes 2018-06-29 22:27:47.702420304 +0200 @@ -1,0 +2,9 @@ +Sun May 27 08:28:33 UTC 2018 - [email protected] + +- update to version 2.9.0: + * You may now pass in the database via a file descriptor rather than a file + name when creating a new ``geoip2.database.Reader`` object using ``MODE_FD``. + This will read the database from the file descriptor into memory. Pull + request by nkinkade. GitHub #53. + +------------------------------------------------------------------- Old: ---- geoip2-2.8.0.tar.gz New: ---- geoip2-2.9.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-geoip2.spec ++++++ --- /var/tmp/diff_new_pack.cnaad2/_old 2018-06-29 22:27:48.454419734 +0200 +++ /var/tmp/diff_new_pack.cnaad2/_new 2018-06-29 22:27:48.458419730 +0200 @@ -19,7 +19,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} %bcond_without test Name: python-geoip2 -Version: 2.8.0 +Version: 2.9.0 Release: 0 Summary: MaxMind GeoIP2 Python API License: Apache-2.0 @@ -28,20 +28,16 @@ Source: https://files.pythonhosted.org/packages/source/g/geoip2/geoip2-%{version}.tar.gz BuildRequires: %{python_module devel} BuildRequires: %{python_module setuptools} +BuildRequires: fdupes BuildRequires: python-rpm-macros -Requires: python-maxminddb >= 1.2.1 -Requires: python-requests >= 2.9 -BuildArch: noarch -%if %{with test} +# SECTION test requirements BuildRequires: %{python_module maxminddb >= 1.2.1} BuildRequires: %{python_module requests >= 2.9} -%endif -# SECTION test requirements -BuildRequires: fdupes -%if %{with test} BuildRequires: %{python_module requests-mock >= 0.5} -%endif # /SECTION +Requires: python-maxminddb >= 1.4.0 +Requires: python-requests >= 2.9 +BuildArch: noarch %ifpython2 Recommends: python2-ipaddress %endif @@ -61,10 +57,8 @@ %python_install %python_expand %fdupes %{buildroot}%{$sitearch} -%if %{with test} %check %python_exec setup.py test -%endif %files %{python_files} %license LICENSE ++++++ geoip2-2.8.0.tar.gz -> geoip2-2.9.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/geoip2-2.8.0/HISTORY.rst new/geoip2-2.9.0/HISTORY.rst --- old/geoip2-2.8.0/HISTORY.rst 2018-04-10 17:16:20.000000000 +0200 +++ new/geoip2-2.9.0/HISTORY.rst 2018-05-25 22:09:07.000000000 +0200 @@ -3,6 +3,14 @@ History ------- +2.9.0 (2018-05-25) +++++++++++++++++++ + +* You may now pass in the database via a file descriptor rather than a file + name when creating a new ``geoip2.database.Reader`` object using ``MODE_FD``. + This will read the database from the file descriptor into memory. Pull + request by nkinkade. GitHub #53. + 2.8.0 (2018-04-10) ++++++++++++++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/geoip2-2.8.0/PKG-INFO new/geoip2-2.9.0/PKG-INFO --- old/geoip2-2.8.0/PKG-INFO 2018-04-10 17:17:57.000000000 +0200 +++ new/geoip2-2.9.0/PKG-INFO 2018-05-25 22:10:02.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.2 Name: geoip2 -Version: 2.8.0 +Version: 2.9.0 Summary: MaxMind GeoIP2 API Home-page: http://www.maxmind.com/ Author: Gregory Oschwald diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/geoip2-2.8.0/docs/html/.buildinfo new/geoip2-2.9.0/docs/html/.buildinfo --- old/geoip2-2.8.0/docs/html/.buildinfo 2018-04-10 17:17:57.000000000 +0200 +++ new/geoip2-2.9.0/docs/html/.buildinfo 2018-05-25 22:10:02.000000000 +0200 @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 814be73c87ed7892a47ad139bc891772 +config: d356c361f731ca751f873518e0f0e70c tags: 645f666f9bcd5a90fca523b33c5a78b7 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/geoip2-2.8.0/docs/html/_static/documentation_options.js new/geoip2-2.9.0/docs/html/_static/documentation_options.js --- old/geoip2-2.8.0/docs/html/_static/documentation_options.js 2018-04-10 17:17:57.000000000 +0200 +++ new/geoip2-2.9.0/docs/html/_static/documentation_options.js 2018-05-25 22:10:02.000000000 +0200 @@ -1,6 +1,6 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '2.8.0', + VERSION: '2.9.0', LANGUAGE: 'None', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/geoip2-2.8.0/docs/html/genindex.html new/geoip2-2.9.0/docs/html/genindex.html --- old/geoip2-2.8.0/docs/html/genindex.html 2018-04-10 17:17:57.000000000 +0200 +++ new/geoip2-2.9.0/docs/html/genindex.html 2018-05-25 22:10:02.000000000 +0200 @@ -7,7 +7,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Index — geoip2 2.8.0 documentation</title> + <title>Index — geoip2 2.9.0 documentation</title> <link rel="stylesheet" href="_static/sphinxdoc.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript" src="_static/documentation_options.js"></script> @@ -26,7 +26,7 @@ <li class="right" > <a href="py-modindex.html" title="Python Module Index" >modules</a> |</li> - <li class="nav-item nav-item-0"><a href="index.html">geoip2 2.8.0 documentation</a> »</li> + <li class="nav-item nav-item-0"><a href="index.html">geoip2 2.9.0 documentation</a> »</li> </ul> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> @@ -81,18 +81,12 @@ </li> <li><a href="index.html#geoip2.errors.AddressNotFoundError">AddressNotFoundError</a> </li> - <li><a href="index.html#geoip2.database.Reader.anonymous_ip">anonymous_ip() (geoip2.database.Reader method)</a> -</li> <li><a href="index.html#geoip2.models.AnonymousIP">AnonymousIP (class in geoip2.models)</a> </li> <li><a href="index.html#geoip2.models.ASN">ASN (class in geoip2.models)</a> </li> - <li><a href="index.html#geoip2.database.Reader.asn">asn() (geoip2.database.Reader method)</a> -</li> <li><a href="index.html#geoip2.errors.AuthenticationError">AuthenticationError</a> </li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> <li><a href="index.html#geoip2.models.ASN.autonomous_system_number">autonomous_system_number (geoip2.models.ASN attribute)</a> <ul> @@ -101,6 +95,8 @@ <li><a href="index.html#geoip2.records.Traits.autonomous_system_number">(geoip2.records.Traits attribute)</a> </li> </ul></li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> <li><a href="index.html#geoip2.models.ASN.autonomous_system_organization">autonomous_system_organization (geoip2.models.ASN attribute)</a> <ul> @@ -131,16 +127,10 @@ <li><a href="index.html#geoip2.models.Insights.city">(geoip2.models.Insights attribute)</a> </li> </ul></li> - <li><a href="index.html#geoip2.database.Reader.city">city() (geoip2.database.Reader method)</a> - - <ul> - <li><a href="index.html#geoip2.webservice.Client.city">(geoip2.webservice.Client method)</a> + <li><a href="index.html#geoip2.webservice.Client.city">city() (geoip2.webservice.Client method)</a> </li> - </ul></li> <li><a href="index.html#geoip2.webservice.Client">Client (class in geoip2.webservice)</a> </li> - <li><a href="index.html#geoip2.database.Reader.close">close() (geoip2.database.Reader method)</a> -</li> <li><a href="index.html#geoip2.records.Continent.code">code (geoip2.records.Continent attribute)</a> <ul> @@ -167,8 +157,6 @@ <li><a href="index.html#geoip2.records.Traits.connection_type">(geoip2.records.Traits attribute)</a> </li> </ul></li> - <li><a href="index.html#geoip2.database.Reader.connection_type">connection_type() (geoip2.database.Reader method)</a> -</li> <li><a href="index.html#geoip2.models.ConnectionType">ConnectionType (class in geoip2.models)</a> </li> <li><a href="index.html#geoip2.records.Continent">Continent (class in geoip2.records)</a> @@ -199,12 +187,8 @@ <li><a href="index.html#geoip2.models.Insights.country">(geoip2.models.Insights attribute)</a> </li> </ul></li> - <li><a href="index.html#geoip2.database.Reader.country">country() (geoip2.database.Reader method)</a> - - <ul> - <li><a href="index.html#geoip2.webservice.Client.country">(geoip2.webservice.Client method)</a> + <li><a href="index.html#geoip2.webservice.Client.country">country() (geoip2.webservice.Client method)</a> </li> - </ul></li> </ul></td> </tr></table> @@ -213,6 +197,8 @@ <td style="width: 33%; vertical-align: top;"><ul> <li><a href="index.html#geoip2.models.Domain">Domain (class in geoip2.models)</a> </li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> <li><a href="index.html#geoip2.models.Domain.domain">domain (geoip2.models.Domain attribute)</a> <ul> @@ -220,10 +206,6 @@ </li> </ul></li> </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="index.html#geoip2.database.Reader.domain">domain() (geoip2.database.Reader method)</a> -</li> - </ul></td> </tr></table> <h2 id="E">E</h2> @@ -232,10 +214,6 @@ <li><a href="index.html#geoip2.models.Enterprise">Enterprise (class in geoip2.models)</a> </li> </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="index.html#geoip2.database.Reader.enterprise">enterprise() (geoip2.database.Reader method)</a> -</li> - </ul></td> </tr></table> <h2 id="G">G</h2> @@ -243,8 +221,6 @@ <td style="width: 33%; vertical-align: top;"><ul> <li><a href="index.html#module-geoip2">geoip2 (module)</a> </li> - <li><a href="index.html#module-geoip2.database">geoip2.database (module)</a> -</li> <li><a href="index.html#module-geoip2.errors">geoip2.errors (module)</a> </li> <li><a href="index.html#module-geoip2.models">geoip2.models (module)</a> @@ -363,8 +339,6 @@ <li><a href="index.html#geoip2.records.Traits.isp">(geoip2.records.Traits attribute)</a> </li> </ul></li> - <li><a href="index.html#geoip2.database.Reader.isp">isp() (geoip2.database.Reader method)</a> -</li> </ul></td> </tr></table> @@ -407,8 +381,6 @@ </ul></li> </ul></td> <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="index.html#geoip2.database.Reader.metadata">metadata() (geoip2.database.Reader method)</a> -</li> <li><a href="index.html#geoip2.records.Location.metro_code">metro_code (geoip2.records.Location attribute)</a> </li> <li><a href="index.html#geoip2.records.Subdivisions.most_specific">most_specific (geoip2.records.Subdivisions attribute)</a> @@ -493,8 +465,6 @@ <h2 id="R">R</h2> <table style="width: 100%" class="indextable genindextable"><tr> <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="index.html#geoip2.database.Reader">Reader (class in geoip2.database)</a> -</li> <li><a href="index.html#geoip2.records.Record">Record (class in geoip2.records)</a> </li> <li><a href="index.html#geoip2.models.City.registered_country">registered_country (geoip2.models.City attribute)</a> @@ -594,7 +564,7 @@ <li class="right" > <a href="py-modindex.html" title="Python Module Index" >modules</a> |</li> - <li class="nav-item nav-item-0"><a href="index.html">geoip2 2.8.0 documentation</a> »</li> + <li class="nav-item nav-item-0"><a href="index.html">geoip2 2.9.0 documentation</a> »</li> </ul> </div> <div class="footer" role="contentinfo"> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/geoip2-2.8.0/docs/html/index.html new/geoip2-2.9.0/docs/html/index.html --- old/geoip2-2.8.0/docs/html/index.html 2018-04-10 17:17:57.000000000 +0200 +++ new/geoip2-2.9.0/docs/html/index.html 2018-05-25 22:10:02.000000000 +0200 @@ -6,7 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>MaxMind GeoIP2 Python API — geoip2 2.8.0 documentation</title> + <title>MaxMind GeoIP2 Python API — geoip2 2.9.0 documentation</title> <link rel="stylesheet" href="_static/sphinxdoc.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript" src="_static/documentation_options.js"></script> @@ -25,7 +25,7 @@ <li class="right" > <a href="py-modindex.html" title="Python Module Index" >modules</a> |</li> - <li class="nav-item nav-item-0"><a href="#">geoip2 2.8.0 documentation</a> »</li> + <li class="nav-item nav-item-0"><a href="#">geoip2 2.9.0 documentation</a> »</li> </ul> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> @@ -63,7 +63,6 @@ </ul> </li> <li><a class="reference internal" href="#module-geoip2">Modules</a><ul> -<li><a class="reference internal" href="#geoip2-database-reader">GeoIP2 Database Reader</a></li> <li><a class="reference internal" href="#webservices-client-api">WebServices Client API</a><ul> <li><a class="reference internal" href="#ssl">SSL</a></li> </ul> @@ -468,178 +467,6 @@ </div> <div class="section" id="module-geoip2"> <span id="modules"></span><h1>Modules<a class="headerlink" href="#module-geoip2" title="Permalink to this headline">¶</a></h1> -<span class="target" id="module-geoip2.database"></span><div class="section" id="geoip2-database-reader"> -<h2>GeoIP2 Database Reader<a class="headerlink" href="#geoip2-database-reader" title="Permalink to this headline">¶</a></h2> -<dl class="class"> -<dt id="geoip2.database.Reader"> -<em class="property">class </em><code class="descclassname">geoip2.database.</code><code class="descname">Reader</code><span class="sig-paren">(</span><em>filename</em>, <em>locales=None</em>, <em>mode=0</em><span class="sig-paren">)</span><a class="headerlink" href="#geoip2.database.Reader" title="Permalink to this definition">¶</a></dt> -<dd><p>GeoIP2 database Reader object.</p> -<p>Instances of this class provide a reader for the GeoIP2 database format. -IP addresses can be looked up using the <code class="docutils literal notranslate"><span class="pre">country</span></code> and <code class="docutils literal notranslate"><span class="pre">city</span></code> methods.</p> -<p>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.</p> -<p>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 class="docutils literal notranslate"><span class="pre">None</span></code> value.</p> -<p>If the address is not in the database, an -<code class="docutils literal notranslate"><span class="pre">geoip2.errors.AddressNotFoundError</span></code> exception will be thrown. If the -database is corrupt or invalid, a <code class="docutils literal notranslate"><span class="pre">maxminddb.InvalidDatabaseError</span></code> will -be thrown.</p> -<dl class="method"> -<dt id="geoip2.database.Reader.anonymous_ip"> -<code class="descname">anonymous_ip</code><span class="sig-paren">(</span><em>ip_address</em><span class="sig-paren">)</span><a class="headerlink" href="#geoip2.database.Reader.anonymous_ip" title="Permalink to this definition">¶</a></dt> -<dd><p>Get the AnonymousIP object for the IP address.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>ip_address</strong> – IPv4 or IPv6 address as a string.</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><a class="reference internal" href="#geoip2.models.AnonymousIP" title="geoip2.models.AnonymousIP"><code class="xref py py-class docutils literal notranslate"><span class="pre">geoip2.models.AnonymousIP</span></code></a> object</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="method"> -<dt id="geoip2.database.Reader.asn"> -<code class="descname">asn</code><span class="sig-paren">(</span><em>ip_address</em><span class="sig-paren">)</span><a class="headerlink" href="#geoip2.database.Reader.asn" title="Permalink to this definition">¶</a></dt> -<dd><p>Get the ASN object for the IP address.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>ip_address</strong> – IPv4 or IPv6 address as a string.</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><a class="reference internal" href="#geoip2.models.ASN" title="geoip2.models.ASN"><code class="xref py py-class docutils literal notranslate"><span class="pre">geoip2.models.ASN</span></code></a> object</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="method"> -<dt id="geoip2.database.Reader.city"> -<code class="descname">city</code><span class="sig-paren">(</span><em>ip_address</em><span class="sig-paren">)</span><a class="headerlink" href="#geoip2.database.Reader.city" title="Permalink to this definition">¶</a></dt> -<dd><p>Get the City object for the IP address.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>ip_address</strong> – IPv4 or IPv6 address as a string.</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><a class="reference internal" href="#geoip2.models.City" title="geoip2.models.City"><code class="xref py py-class docutils literal notranslate"><span class="pre">geoip2.models.City</span></code></a> object</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="method"> -<dt id="geoip2.database.Reader.close"> -<code class="descname">close</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#geoip2.database.Reader.close" title="Permalink to this definition">¶</a></dt> -<dd><p>Closes the GeoIP2 database.</p> -</dd></dl> - -<dl class="method"> -<dt id="geoip2.database.Reader.connection_type"> -<code class="descname">connection_type</code><span class="sig-paren">(</span><em>ip_address</em><span class="sig-paren">)</span><a class="headerlink" href="#geoip2.database.Reader.connection_type" title="Permalink to this definition">¶</a></dt> -<dd><p>Get the ConnectionType object for the IP address.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>ip_address</strong> – IPv4 or IPv6 address as a string.</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><a class="reference internal" href="#geoip2.models.ConnectionType" title="geoip2.models.ConnectionType"><code class="xref py py-class docutils literal notranslate"><span class="pre">geoip2.models.ConnectionType</span></code></a> object</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="method"> -<dt id="geoip2.database.Reader.country"> -<code class="descname">country</code><span class="sig-paren">(</span><em>ip_address</em><span class="sig-paren">)</span><a class="headerlink" href="#geoip2.database.Reader.country" title="Permalink to this definition">¶</a></dt> -<dd><p>Get the Country object for the IP address.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>ip_address</strong> – IPv4 or IPv6 address as a string.</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><a class="reference internal" href="#geoip2.models.Country" title="geoip2.models.Country"><code class="xref py py-class docutils literal notranslate"><span class="pre">geoip2.models.Country</span></code></a> object</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="method"> -<dt id="geoip2.database.Reader.domain"> -<code class="descname">domain</code><span class="sig-paren">(</span><em>ip_address</em><span class="sig-paren">)</span><a class="headerlink" href="#geoip2.database.Reader.domain" title="Permalink to this definition">¶</a></dt> -<dd><p>Get the Domain object for the IP address.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>ip_address</strong> – IPv4 or IPv6 address as a string.</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><a class="reference internal" href="#geoip2.models.Domain" title="geoip2.models.Domain"><code class="xref py py-class docutils literal notranslate"><span class="pre">geoip2.models.Domain</span></code></a> object</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="method"> -<dt id="geoip2.database.Reader.enterprise"> -<code class="descname">enterprise</code><span class="sig-paren">(</span><em>ip_address</em><span class="sig-paren">)</span><a class="headerlink" href="#geoip2.database.Reader.enterprise" title="Permalink to this definition">¶</a></dt> -<dd><p>Get the Enterprise object for the IP address.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>ip_address</strong> – IPv4 or IPv6 address as a string.</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><a class="reference internal" href="#geoip2.models.Enterprise" title="geoip2.models.Enterprise"><code class="xref py py-class docutils literal notranslate"><span class="pre">geoip2.models.Enterprise</span></code></a> object</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="method"> -<dt id="geoip2.database.Reader.isp"> -<code class="descname">isp</code><span class="sig-paren">(</span><em>ip_address</em><span class="sig-paren">)</span><a class="headerlink" href="#geoip2.database.Reader.isp" title="Permalink to this definition">¶</a></dt> -<dd><p>Get the ISP object for the IP address.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>ip_address</strong> – IPv4 or IPv6 address as a string.</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><a class="reference internal" href="#geoip2.models.ISP" title="geoip2.models.ISP"><code class="xref py py-class docutils literal notranslate"><span class="pre">geoip2.models.ISP</span></code></a> object</td> -</tr> -</tbody> -</table> -</dd></dl> - -<dl class="method"> -<dt id="geoip2.database.Reader.metadata"> -<code class="descname">metadata</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#geoip2.database.Reader.metadata" title="Permalink to this definition">¶</a></dt> -<dd><p>The metadata for the open database.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"><code class="xref py py-class docutils literal notranslate"><span class="pre">maxminddb.reader.Metadata</span></code> object</td> -</tr> -</tbody> -</table> -</dd></dl> - -</dd></dl> - -</div> <span class="target" id="module-geoip2.webservice"></span><div class="section" id="webservices-client-api"> <h2>WebServices Client API<a class="headerlink" href="#webservices-client-api" title="Permalink to this headline">¶</a></h2> <p>This class provides a client API for all the GeoIP2 Precision web service end @@ -2630,7 +2457,7 @@ <li class="right" > <a href="py-modindex.html" title="Python Module Index" >modules</a> |</li> - <li class="nav-item nav-item-0"><a href="#">geoip2 2.8.0 documentation</a> »</li> + <li class="nav-item nav-item-0"><a href="#">geoip2 2.9.0 documentation</a> »</li> </ul> </div> <div class="footer" role="contentinfo"> Binary files old/geoip2-2.8.0/docs/html/objects.inv and new/geoip2-2.9.0/docs/html/objects.inv differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/geoip2-2.8.0/docs/html/py-modindex.html new/geoip2-2.9.0/docs/html/py-modindex.html --- old/geoip2-2.8.0/docs/html/py-modindex.html 2018-04-10 17:17:57.000000000 +0200 +++ new/geoip2-2.9.0/docs/html/py-modindex.html 2018-05-25 22:10:02.000000000 +0200 @@ -6,7 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Python Module Index — geoip2 2.8.0 documentation</title> + <title>Python Module Index — geoip2 2.9.0 documentation</title> <link rel="stylesheet" href="_static/sphinxdoc.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript" src="_static/documentation_options.js"></script> @@ -28,7 +28,7 @@ <li class="right" > <a href="#" title="Python Module Index" >modules</a> |</li> - <li class="nav-item nav-item-0"><a href="index.html">geoip2 2.8.0 documentation</a> »</li> + <li class="nav-item nav-item-0"><a href="index.html">geoip2 2.9.0 documentation</a> »</li> </ul> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> @@ -73,11 +73,6 @@ <tr class="cg-1"> <td></td> <td>    - <a href="index.html#module-geoip2.database"><code class="xref">geoip2.database</code></a></td><td> - <em></em></td></tr> - <tr class="cg-1"> - <td></td> - <td>    <a href="index.html#module-geoip2.errors"><code class="xref">geoip2.errors</code></a></td><td> <em></em></td></tr> <tr class="cg-1"> @@ -112,7 +107,7 @@ <li class="right" > <a href="#" title="Python Module Index" >modules</a> |</li> - <li class="nav-item nav-item-0"><a href="index.html">geoip2 2.8.0 documentation</a> »</li> + <li class="nav-item nav-item-0"><a href="index.html">geoip2 2.9.0 documentation</a> »</li> </ul> </div> <div class="footer" role="contentinfo"> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/geoip2-2.8.0/docs/html/search.html new/geoip2-2.9.0/docs/html/search.html --- old/geoip2-2.8.0/docs/html/search.html 2018-04-10 17:17:57.000000000 +0200 +++ new/geoip2-2.9.0/docs/html/search.html 2018-05-25 22:10:02.000000000 +0200 @@ -6,7 +6,7 @@ <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Search — geoip2 2.8.0 documentation</title> + <title>Search — geoip2 2.9.0 documentation</title> <link rel="stylesheet" href="_static/sphinxdoc.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript" src="_static/documentation_options.js"></script> @@ -33,7 +33,7 @@ <li class="right" > <a href="py-modindex.html" title="Python Module Index" >modules</a> |</li> - <li class="nav-item nav-item-0"><a href="index.html">geoip2 2.8.0 documentation</a> »</li> + <li class="nav-item nav-item-0"><a href="index.html">geoip2 2.9.0 documentation</a> »</li> </ul> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> @@ -84,7 +84,7 @@ <li class="right" > <a href="py-modindex.html" title="Python Module Index" >modules</a> |</li> - <li class="nav-item nav-item-0"><a href="index.html">geoip2 2.8.0 documentation</a> »</li> + <li class="nav-item nav-item-0"><a href="index.html">geoip2 2.9.0 documentation</a> »</li> </ul> </div> <div class="footer" role="contentinfo"> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/geoip2-2.8.0/docs/html/searchindex.js new/geoip2-2.9.0/docs/html/searchindex.js --- old/geoip2-2.8.0/docs/html/searchindex.js 2018-04-10 17:17:57.000000000 +0200 +++ new/geoip2-2.9.0/docs/html/searchindex.js 2018-05-25 22:10:02.000000000 +0200 @@ -1 +1 @@ -Search.setIndex({docnames:["index"],envversion:53,filenames:["index.rst"],objects:{"":{geoip2:[0,0,0,"-"]},"geoip2.database":{Reader:[0,1,1,""]},"geoip2.database.Reader":{anonymous_ip:[0,2,1,""],asn:[0,2,1,""],city:[0,2,1,""],close:[0,2,1,""],connection_type:[0,2,1,""],country:[0,2,1,""],domain:[0,2,1,""],enterprise:[0,2,1,""],isp:[0,2,1,""],metadata:[0,2,1,""]},"geoip2.errors":{AddressNotFoundError:[0,3,1,""],AuthenticationError:[0,3,1,""],GeoIP2Error:[0,3,1,""],HTTPError:[0,3,1,""],InvalidRequestError:[0,3,1,""],OutOfQueriesError:[0,3,1,""],PermissionRequiredError:[0,3,1,""]},"geoip2.models":{ASN:[0,1,1,""],AnonymousIP:[0,1,1,""],City:[0,1,1,""],ConnectionType:[0,1,1,""],Country:[0,1,1,""],Domain:[0,1,1,""],Enterprise:[0,1,1,""],ISP:[0,1,1,""],Insights:[0,1,1,""],SimpleModel:[0,1,1,""]},"geoip2.models.ASN":{autonomous_system_number:[0,4,1,""],autonomous_system_organization:[0,4,1,""],ip_address:[0,4,1,""]},"geoip2.models.AnonymousIP":{ip_address:[0,4,1,""],is_anonymous:[0,4,1,""],is_anonymous_vpn:[0,4,1,""],is_hosting_provider:[0,4,1,""],is_public_proxy:[0,4,1,""],is_tor_exit_node:[0,4,1,""]},"geoip2.models.City":{city:[0,4,1,""],continent:[0,4,1,""],country:[0,4,1,""],location:[0,4,1,""],maxmind:[0,4,1,""],registered_country:[0,4,1,""],represented_country:[0,4,1,""],subdivisions:[0,4,1,""],traits:[0,4,1,""]},"geoip2.models.ConnectionType":{connection_type:[0,4,1,""],ip_address:[0,4,1,""]},"geoip2.models.Country":{continent:[0,4,1,""],country:[0,4,1,""],maxmind:[0,4,1,""],registered_country:[0,4,1,""],represented_country:[0,4,1,""],traits:[0,4,1,""]},"geoip2.models.Domain":{domain:[0,4,1,""],ip_address:[0,4,1,""]},"geoip2.models.Enterprise":{city:[0,4,1,""],continent:[0,4,1,""],country:[0,4,1,""],location:[0,4,1,""],maxmind:[0,4,1,""],registered_country:[0,4,1,""],represented_country:[0,4,1,""],subdivisions:[0,4,1,""],traits:[0,4,1,""]},"geoip2.models.ISP":{autonomous_system_number:[0,4,1,""],autonomous_system_organization:[0,4,1,""],ip_address:[0,4,1,""],isp:[0,4,1,""],organization:[0,4,1,""]},"geoip2.models.Insights":{city:[0,4,1,""],continent:[0,4,1,""],country:[0,4,1,""],location:[0,4,1,""],maxmind:[0,4,1,""],registered_country:[0,4,1,""],represented_country:[0,4,1,""],subdivisions:[0,4,1,""],traits:[0,4,1,""]},"geoip2.records":{City:[0,1,1,""],Continent:[0,1,1,""],Country:[0,1,1,""],Location:[0,1,1,""],MaxMind:[0,1,1,""],PlaceRecord:[0,1,1,""],Postal:[0,1,1,""],Record:[0,1,1,""],RepresentedCountry:[0,1,1,""],Subdivision:[0,1,1,""],Subdivisions:[0,1,1,""],Traits:[0,1,1,""]},"geoip2.records.City":{confidence:[0,4,1,""],geoname_id:[0,4,1,""],name:[0,4,1,""],names:[0,4,1,""]},"geoip2.records.Continent":{code:[0,4,1,""],geoname_id:[0,4,1,""],name:[0,4,1,""],names:[0,4,1,""]},"geoip2.records.Country":{confidence:[0,4,1,""],geoname_id:[0,4,1,""],is_in_european_union:[0,4,1,""],iso_code:[0,4,1,""],name:[0,4,1,""],names:[0,4,1,""]},"geoip2.records.Location":{accuracy_radius:[0,4,1,""],average_income:[0,4,1,""],latitude:[0,4,1,""],longitude:[0,4,1,""],metro_code:[0,4,1,""],population_density:[0,4,1,""],time_zone:[0,4,1,""]},"geoip2.records.MaxMind":{queries_remaining:[0,4,1,""]},"geoip2.records.PlaceRecord":{name:[0,4,1,""]},"geoip2.records.Postal":{code:[0,4,1,""],confidence:[0,4,1,""]},"geoip2.records.RepresentedCountry":{confidence:[0,4,1,""],geoname_id:[0,4,1,""],is_in_european_union:[0,4,1,""],iso_code:[0,4,1,""],name:[0,4,1,""],names:[0,4,1,""],type:[0,4,1,""]},"geoip2.records.Subdivision":{confidence:[0,4,1,""],geoname_id:[0,4,1,""],iso_code:[0,4,1,""],name:[0,4,1,""],names:[0,4,1,""]},"geoip2.records.Subdivisions":{most_specific:[0,4,1,""]},"geoip2.records.Traits":{autonomous_system_number:[0,4,1,""],autonomous_system_organization:[0,4,1,""],connection_type:[0,4,1,""],domain:[0,4,1,""],ip_address:[0,4,1,""],is_anonymous:[0,4,1,""],is_anonymous_proxy:[0,4,1,""],is_anonymous_vpn:[0,4,1,""],is_hosting_provider:[0,4,1,""],is_legitimate_proxy:[0,4,1,""],is_public_proxy:[0,4,1,""],is_satellite_provider:[0,4,1,""],is_tor_exit_node:[0,4,1,""],isp:[0,4,1,""],organization:[0,4,1,""],user_type:[0,4,1,""]},"geoip2.webservice":{Client:[0,1,1,""]},"geoip2.webservice.Client":{city:[0,2,1,""],country:[0,2,1,""],insights:[0,2,1,""]},geoip2:{database:[0,0,0,"-"],errors:[0,0,0,"-"],models:[0,0,0,"-"],records:[0,0,0,"-"],webservice:[0,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","exception","Python exception"],"4":["py","attribute","Python attribute"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:exception","4":"py:attribute"},terms:{"4xx":0,"5xx":0,"\u7f8e\u56fd":0,"abstract":0,"case":0,"class":0,"default":0,"final":0,"float":0,"import":0,"int":0,"long":0,"new":0,"public":0,"throw":0,"true":0,"while":0,For:0,The:0,There:0,These:0,Use:0,abl:0,about:0,accent:0,accept:0,access:0,account:0,account_id:0,accuraci:0,accuracy_radiu:0,across:0,add:0,added:0,addit:0,address:0,addressnotfounderror:0,adword:0,after:0,against:0,all:0,alpha:0,also:0,altern:0,alwai:0,america:0,ani:0,anonproxi:0,anonymous_ip:0,anonymousip:0,apach:0,appropri:0,approxim:0,argument:0,around:0,ascii:0,assign:0,assist:0,associ:0,attribut:0,authent:0,authenticationerror:0,automat:0,autonom:0,autonomous_system_numb:0,autonomous_system_organ:0,avail:0,averag:0,average_incom:0,base:0,basic:0,becaus:0,becom:0,been:0,behind:0,believ:0,belong:0,besid:0,between:0,block:0,bodi:0,bool:0,both:0,brazilian:0,bug:0,busi:0,cabl:0,cafe:0,call:0,can:0,carrier:0,cellular:0,center:0,chang:0,charact:0,check:0,chines:0,circl:0,close:0,code:0,collect:0,colleg:0,com:0,confid:0,connection_typ:0,connectiontyp:0,constructor:0,contact:0,contain:0,content_delivery_network:0,contin:0,copyright:0,corpor:0,correct:0,correspond:0,corrupt:0,could:0,countri:0,coverag:0,cpython:0,creat:0,creation:0,current:0,custom:0,deprec:0,detail:0,dev:0,devic:0,dialup:0,dict:0,differ:0,directori:0,discourag:0,distribut:0,doc:0,document:0,doe:0,doing:0,dollar:0,download:0,dsl:0,due:0,each:0,easy_instal:0,edit:0,edu:0,either:0,element:0,empti:0,end:0,endpoint:0,england:0,english:0,entir:0,entiti:0,estim:0,etc:0,european:0,even:0,everi:0,exist:0,exit:0,expand:0,expens:0,explicit:0,explicitli:0,extend:0,extern:0,factor:0,fail:0,fals:0,faq:0,featur:0,few:0,field:0,file:0,filenam:0,filenotfounderror:0,find:0,first:0,follow:0,foo:0,format:0,found:0,free:0,french:0,from:0,fund:0,further:0,futur:0,gener:0,geograph:0,geoip2error:0,geoip:0,geolite2:0,geoname_id:0,german:0,get:0,github:0,given:0,googl:0,govern:0,has:0,have:0,help:0,host:0,hostnam:0,household:0,http:0,http_statu:0,httperror:0,iana:0,identifi:0,imprecis:0,inc:0,includ:0,incom:0,incorpor:0,incorrect:0,incorrectli:0,increas:0,index:0,inform:0,inher:0,insight:0,instanc:0,instead:0,instruct:0,integ:0,intern:0,internet:0,invalid:0,invaliddatabaseerror:0,invalidrequesterror:0,ioerror:0,ip_address:0,ipv4:0,ipv6:0,is_anonym:0,is_anonymous_proxi:0,is_anonymous_vpn:0,is_hosting_provid:0,is_in_european_union:0,is_legitimate_proxi:0,is_public_proxi:0,is_satellite_provid:0,is_tor_exit_nod:0,iso:0,iso_cod:0,issu:0,its:0,itself:0,japanes:0,keyword:0,kilomet:0,kingdom:0,kwarg:0,largest:0,latitud:0,least:0,legitim:0,level:0,libmaxminddb:0,librari:0,licens:0,license_kei:0,like:0,link:0,list:0,local:0,locat:0,longitud:0,look:0,lookup:0,ltd:0,made:0,mai:0,maintain:0,make:0,mani:0,map:0,maxminddb:0,mean:0,member:0,messag:0,metadata:0,method:0,metro:0,metro_cod:0,militari:0,minneapoli:0,minnesota:0,mistak:0,mmdb:0,mobil:0,mode:0,more:0,most:0,most_specif:0,move:0,multipl:0,must:0,my_license_kei:0,name:0,nat:0,need:0,network:0,new_york:0,node:0,non:0,none:0,north:0,note:0,now:0,number:0,object:0,occur:0,oceania:0,offer:0,often:0,older:0,onc:0,one:0,onli:0,open:0,order:0,org:0,organ:0,other:0,our:0,out:0,outofquerieserror:0,output:0,oversea:0,own:0,oxford:0,oxfordshir:0,packag:0,page:0,pai:0,paid:0,paramet:0,part:0,particular:0,pass:0,path:0,per:0,perform:0,permiss:0,permissionrequirederror:0,piec:0,pip:0,place:0,placerecord:0,pleas:0,point:0,popul:0,population_dens:0,portion:0,portugues:0,possibl:0,postal:0,precis:0,premium:0,present:0,properti:0,provid:0,proxi:0,pty:0,pypi:0,queri:0,queries_remain:0,radiu:0,rais:0,raw:0,raw_respons:0,readabl:0,recommend:0,region:0,regist:0,registered_countri:0,relat:0,releas:0,relev:0,remain:0,replac:0,repres:0,represented_countri:0,representedcountri:0,request:0,resid:0,residenti:0,respons:0,result:0,reus:0,routabl:0,router:0,run:0,runtimeerror:0,russian:0,same:0,satellit:0,school:0,search:0,search_engine_spid:0,second:0,see:0,semant:0,serv:0,set:0,should:0,signific:0,similar:0,simplemodel:0,simplifi:0,sinc:0,site:0,smallest:0,some:0,someth:0,sort:0,sourc:0,spanish:0,specif:0,specifi:0,spell:0,squar:0,state:0,statu:0,still:0,string:0,strongli:0,subclass:0,subdivis:0,submit:0,succe:0,suffici:0,sure:0,system:0,take:0,telstra:0,test:0,than:0,thei:0,thi:0,thing:0,three:0,thrown:0,time:0,time_zon:0,timeout:0,tor:0,tracker:0,trait:0,transport:0,travel:0,tupl:0,turn:0,two:0,umn:0,unanticip:0,unicod:0,union:0,uniqu:0,unit:0,unpopul:0,uri:0,used:0,user:0,user_id:0,user_typ:0,uses:0,using:0,valid:0,valueerror:0,vari:0,variabl:0,veri:0,view:0,vpn:0,want:0,were:0,when:0,where:0,which:0,wish:0,within:0,word:0,work:0,world:0,would:0,www:0,you:0,your:0,zone:0},titles:["MaxMind GeoIP2 Python API"],titleterms:{"return":0,anonym:0,api:0,asn:0,citi:0,client:0,connect:0,data:0,databas:0,descript:0,dictionari:0,domain:0,enterpris:0,error:0,exampl:0,except:0,extens:0,geoip2:0,geoloc:0,geonam:0,indic:0,instal:0,integr:0,isp:0,kei:0,maxmind:0,model:0,modul:0,problem:0,python:0,reader:0,record:0,report:0,requir:0,servic:0,ssl:0,support:0,tabl:0,type:0,usag:0,use:0,valu:0,version:0,web:0,webservic:0,what:0}}) \ No newline at end of file +Search.setIndex({docnames:["index"],envversion:53,filenames:["index.rst"],objects:{"":{geoip2:[0,0,0,"-"]},"geoip2.errors":{AddressNotFoundError:[0,1,1,""],AuthenticationError:[0,1,1,""],GeoIP2Error:[0,1,1,""],HTTPError:[0,1,1,""],InvalidRequestError:[0,1,1,""],OutOfQueriesError:[0,1,1,""],PermissionRequiredError:[0,1,1,""]},"geoip2.models":{ASN:[0,2,1,""],AnonymousIP:[0,2,1,""],City:[0,2,1,""],ConnectionType:[0,2,1,""],Country:[0,2,1,""],Domain:[0,2,1,""],Enterprise:[0,2,1,""],ISP:[0,2,1,""],Insights:[0,2,1,""],SimpleModel:[0,2,1,""]},"geoip2.models.ASN":{autonomous_system_number:[0,3,1,""],autonomous_system_organization:[0,3,1,""],ip_address:[0,3,1,""]},"geoip2.models.AnonymousIP":{ip_address:[0,3,1,""],is_anonymous:[0,3,1,""],is_anonymous_vpn:[0,3,1,""],is_hosting_provider:[0,3,1,""],is_public_proxy:[0,3,1,""],is_tor_exit_node:[0,3,1,""]},"geoip2.models.City":{city:[0,3,1,""],continent:[0,3,1,""],country:[0,3,1,""],location:[0,3,1,""],maxmind:[0,3,1,""],registered_country:[0,3,1,""],represented_country:[0,3,1,""],subdivisions:[0,3,1,""],traits:[0,3,1,""]},"geoip2.models.ConnectionType":{connection_type:[0,3,1,""],ip_address:[0,3,1,""]},"geoip2.models.Country":{continent:[0,3,1,""],country:[0,3,1,""],maxmind:[0,3,1,""],registered_country:[0,3,1,""],represented_country:[0,3,1,""],traits:[0,3,1,""]},"geoip2.models.Domain":{domain:[0,3,1,""],ip_address:[0,3,1,""]},"geoip2.models.Enterprise":{city:[0,3,1,""],continent:[0,3,1,""],country:[0,3,1,""],location:[0,3,1,""],maxmind:[0,3,1,""],registered_country:[0,3,1,""],represented_country:[0,3,1,""],subdivisions:[0,3,1,""],traits:[0,3,1,""]},"geoip2.models.ISP":{autonomous_system_number:[0,3,1,""],autonomous_system_organization:[0,3,1,""],ip_address:[0,3,1,""],isp:[0,3,1,""],organization:[0,3,1,""]},"geoip2.models.Insights":{city:[0,3,1,""],continent:[0,3,1,""],country:[0,3,1,""],location:[0,3,1,""],maxmind:[0,3,1,""],registered_country:[0,3,1,""],represented_country:[0,3,1,""],subdivisions:[0,3,1,""],traits:[0,3,1,""]},"geoip2.records":{City:[0,2,1,""],Continent:[0,2,1,""],Country:[0,2,1,""],Location:[0,2,1,""],MaxMind:[0,2,1,""],PlaceRecord:[0,2,1,""],Postal:[0,2,1,""],Record:[0,2,1,""],RepresentedCountry:[0,2,1,""],Subdivision:[0,2,1,""],Subdivisions:[0,2,1,""],Traits:[0,2,1,""]},"geoip2.records.City":{confidence:[0,3,1,""],geoname_id:[0,3,1,""],name:[0,3,1,""],names:[0,3,1,""]},"geoip2.records.Continent":{code:[0,3,1,""],geoname_id:[0,3,1,""],name:[0,3,1,""],names:[0,3,1,""]},"geoip2.records.Country":{confidence:[0,3,1,""],geoname_id:[0,3,1,""],is_in_european_union:[0,3,1,""],iso_code:[0,3,1,""],name:[0,3,1,""],names:[0,3,1,""]},"geoip2.records.Location":{accuracy_radius:[0,3,1,""],average_income:[0,3,1,""],latitude:[0,3,1,""],longitude:[0,3,1,""],metro_code:[0,3,1,""],population_density:[0,3,1,""],time_zone:[0,3,1,""]},"geoip2.records.MaxMind":{queries_remaining:[0,3,1,""]},"geoip2.records.PlaceRecord":{name:[0,3,1,""]},"geoip2.records.Postal":{code:[0,3,1,""],confidence:[0,3,1,""]},"geoip2.records.RepresentedCountry":{confidence:[0,3,1,""],geoname_id:[0,3,1,""],is_in_european_union:[0,3,1,""],iso_code:[0,3,1,""],name:[0,3,1,""],names:[0,3,1,""],type:[0,3,1,""]},"geoip2.records.Subdivision":{confidence:[0,3,1,""],geoname_id:[0,3,1,""],iso_code:[0,3,1,""],name:[0,3,1,""],names:[0,3,1,""]},"geoip2.records.Subdivisions":{most_specific:[0,3,1,""]},"geoip2.records.Traits":{autonomous_system_number:[0,3,1,""],autonomous_system_organization:[0,3,1,""],connection_type:[0,3,1,""],domain:[0,3,1,""],ip_address:[0,3,1,""],is_anonymous:[0,3,1,""],is_anonymous_proxy:[0,3,1,""],is_anonymous_vpn:[0,3,1,""],is_hosting_provider:[0,3,1,""],is_legitimate_proxy:[0,3,1,""],is_public_proxy:[0,3,1,""],is_satellite_provider:[0,3,1,""],is_tor_exit_node:[0,3,1,""],isp:[0,3,1,""],organization:[0,3,1,""],user_type:[0,3,1,""]},"geoip2.webservice":{Client:[0,2,1,""]},"geoip2.webservice.Client":{city:[0,4,1,""],country:[0,4,1,""],insights:[0,4,1,""]},geoip2:{errors:[0,0,0,"-"],models:[0,0,0,"-"],records:[0,0,0,"-"],webservice:[0,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","exception","Python exception"],"2":["py","class","Python class"],"3":["py","attribute","Python attribute"],"4":["py","method","Python method"]},objtypes:{"0":"py:module","1":"py:exception","2":"py:class","3":"py:attribute","4":"py:method"},terms:{"4xx":0,"5xx":0,"\u7f8e\u56fd":0,"abstract":0,"case":0,"class":0,"default":0,"final":0,"float":0,"import":0,"int":0,"long":0,"new":0,"public":0,"throw":0,"true":0,"while":0,For:0,The:0,There:0,These:0,Use:0,abl:0,about:0,accent:0,accept:0,access:0,account:0,account_id:0,accuraci:0,accuracy_radiu:0,across:0,add:0,added:0,addit:0,address:0,addressnotfounderror:0,adword:0,after:0,against:0,all:0,alpha:0,also:0,altern:0,alwai:0,america:0,ani:0,anonproxi:0,anonymous_ip:0,anonymousip:0,apach:0,appropri:0,approxim:0,argument:0,around:0,ascii:0,assign:0,assist:0,associ:0,attribut:0,authent:0,authenticationerror:0,automat:0,autonom:0,autonomous_system_numb:0,autonomous_system_organ:0,avail:0,averag:0,average_incom:0,base:0,basic:0,becaus:0,becom:0,been:0,behind:0,believ:0,belong:0,besid:0,between:0,block:0,bodi:0,bool:0,both:0,brazilian:0,bug:0,busi:0,cabl:0,cafe:0,call:0,can:0,carrier:0,cellular:0,center:0,chang:0,charact:0,check:0,chines:0,circl:0,close:0,code:0,collect:0,colleg:0,com:0,confid:0,connection_typ:0,connectiontyp:0,constructor:0,contact:0,contain:0,content_delivery_network:0,contin:0,copyright:0,corpor:0,correct:0,correspond:0,corrupt:[],could:0,countri:0,coverag:0,cpython:0,creat:0,creation:0,current:0,custom:0,deprec:0,detail:0,dev:0,devic:0,dialup:0,dict:0,differ:0,directori:0,discourag:0,distribut:0,doc:0,document:0,doe:0,doing:0,dollar:0,download:0,dsl:0,due:0,each:0,easy_instal:0,edit:0,edu:0,either:0,element:0,empti:0,end:0,endpoint:0,england:0,english:0,entir:0,entiti:0,estim:0,etc:0,european:0,even:0,everi:0,exist:0,exit:0,expand:0,expens:0,explicit:0,explicitli:0,extend:0,extern:0,factor:0,fail:0,fals:0,faq:0,featur:0,few:0,field:0,file:0,filenam:[],filenotfounderror:0,find:0,first:0,follow:0,foo:0,format:[],found:0,free:0,french:0,from:0,fund:0,further:0,futur:0,gener:0,geograph:0,geoip2error:0,geoip:0,geolite2:0,geoname_id:0,german:0,get:[],github:0,given:0,googl:0,govern:0,has:0,have:0,help:0,host:0,hostnam:0,household:0,http:0,http_statu:0,httperror:0,iana:0,identifi:0,imprecis:0,inc:0,includ:0,incom:0,incorpor:0,incorrect:0,incorrectli:0,increas:0,index:0,inform:0,inher:0,insight:0,instanc:0,instead:0,instruct:0,integ:0,intern:0,internet:0,invalid:0,invaliddatabaseerror:0,invalidrequesterror:0,ioerror:0,ip_address:0,ipv4:0,ipv6:0,is_anonym:0,is_anonymous_proxi:0,is_anonymous_vpn:0,is_hosting_provid:0,is_in_european_union:0,is_legitimate_proxi:0,is_public_proxi:0,is_satellite_provid:0,is_tor_exit_nod:0,iso:0,iso_cod:0,issu:0,its:0,itself:0,japanes:0,keyword:0,kilomet:0,kingdom:0,kwarg:0,largest:0,latitud:0,least:0,legitim:0,level:0,libmaxminddb:0,librari:0,licens:0,license_kei:0,like:0,link:0,list:0,local:0,locat:0,longitud:0,look:0,lookup:0,ltd:0,made:0,mai:0,maintain:0,make:0,mani:0,map:0,maxminddb:0,mean:0,member:0,messag:0,metadata:[],method:0,metro:0,metro_cod:0,militari:0,minneapoli:0,minnesota:0,mistak:0,mmdb:0,mobil:0,mode:[],more:0,most:0,most_specif:0,move:0,multipl:0,must:0,my_license_kei:0,name:0,nat:0,need:0,network:0,new_york:0,node:0,non:0,none:0,north:0,note:0,now:0,number:0,object:0,occur:0,oceania:0,offer:0,often:0,older:0,onc:0,one:0,onli:0,open:[],order:0,org:0,organ:0,other:0,our:0,out:0,outofquerieserror:0,output:0,oversea:0,own:0,oxford:0,oxfordshir:0,packag:0,page:0,pai:0,paid:0,paramet:0,part:0,particular:0,pass:0,path:0,per:0,perform:0,permiss:0,permissionrequirederror:0,piec:0,pip:0,place:0,placerecord:0,pleas:0,point:0,popul:0,population_dens:0,portion:0,portugues:0,possibl:0,postal:0,precis:0,premium:0,present:0,properti:0,provid:0,proxi:0,pty:0,pypi:0,queri:0,queries_remain:0,radiu:0,rais:0,raw:0,raw_respons:0,readabl:0,recommend:0,region:0,regist:0,registered_countri:0,relat:0,releas:0,relev:0,remain:0,replac:0,repres:0,represented_countri:0,representedcountri:0,request:0,resid:0,residenti:0,respons:0,result:0,reus:0,routabl:0,router:0,run:0,runtimeerror:0,russian:0,same:0,satellit:0,school:0,search:0,search_engine_spid:0,second:0,see:0,semant:0,serv:0,set:0,should:0,signific:0,similar:0,simplemodel:0,simplifi:0,sinc:0,site:0,smallest:0,some:0,someth:0,sort:0,sourc:0,spanish:0,specif:0,specifi:0,spell:0,squar:0,state:0,statu:0,still:0,string:0,strongli:0,subclass:0,subdivis:0,submit:0,succe:0,suffici:0,sure:0,system:0,take:0,telstra:0,test:0,than:0,thei:0,thi:0,thing:0,three:0,thrown:0,time:0,time_zon:0,timeout:0,tor:0,tracker:0,trait:0,transport:0,travel:0,tupl:0,turn:0,two:0,umn:0,unanticip:0,unicod:0,union:0,uniqu:0,unit:0,unpopul:0,uri:0,used:0,user:0,user_id:0,user_typ:0,uses:0,using:0,valid:0,valueerror:0,vari:0,variabl:0,veri:0,view:0,vpn:0,want:0,were:0,when:0,where:0,which:0,wish:0,within:0,word:0,work:0,world:0,would:0,www:0,you:0,your:0,zone:0},titles:["MaxMind GeoIP2 Python API"],titleterms:{"return":0,anonym:0,api:0,asn:0,citi:0,client:0,connect:0,data:0,databas:0,descript:0,dictionari:0,domain:0,enterpris:0,error:0,exampl:0,except:0,extens:0,geoip2:0,geoloc:0,geonam:0,indic:0,instal:0,integr:0,isp:0,kei:0,maxmind:0,model:0,modul:0,problem:0,python:0,reader:0,record:0,report:0,requir:0,servic:0,ssl:0,support:0,tabl:0,type:0,usag:0,use:0,valu:0,version:0,web:0,webservic:0,what:0}}) \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/geoip2-2.8.0/geoip2/__init__.py new/geoip2-2.9.0/geoip2/__init__.py --- old/geoip2-2.8.0/geoip2/__init__.py 2018-04-10 17:17:36.000000000 +0200 +++ new/geoip2-2.9.0/geoip2/__init__.py 2018-05-25 22:09:50.000000000 +0200 @@ -1,7 +1,7 @@ # pylint:disable=C0111 __title__ = 'geoip2' -__version__ = '2.8.0' +__version__ = '2.9.0' __author__ = 'Gregory Oschwald' __license__ = 'Apache License, Version 2.0' __copyright__ = 'Copyright (c) 2013-2018 Maxmind, Inc.' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/geoip2-2.8.0/geoip2/database.py new/geoip2-2.9.0/geoip2/database.py --- old/geoip2-2.8.0/geoip2/database.py 2017-05-08 20:46:11.000000000 +0200 +++ new/geoip2-2.9.0/geoip2/database.py 2018-05-16 16:34:04.000000000 +0200 @@ -9,7 +9,7 @@ import maxminddb # pylint: disable=unused-import from maxminddb import (MODE_AUTO, MODE_MMAP, MODE_MMAP_EXT, MODE_FILE, - MODE_MEMORY) + MODE_MEMORY, MODE_FD) import geoip2 import geoip2.models @@ -23,9 +23,9 @@ IP addresses can be looked up using the ``country`` and ``city`` methods. 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. + create a reader object, specifying a file name or file descriptor. + 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, @@ -40,10 +40,12 @@ """ - def __init__(self, filename, locales=None, mode=MODE_AUTO): + def __init__(self, fileish, locales=None, mode=MODE_AUTO): """Create GeoIP2 Reader. - :param filename: The path to the GeoIP2 database. + :param fileish: The string path to the GeoIP2 database, or an existing + file descriptor pointing to the database. Note that this latter + usage is only valid when mode is MODE_FD. :param locales: This is list of locale codes. This argument will be passed on to record classes to use when their name properties are called. The default value is ['en']. @@ -73,13 +75,15 @@ * MODE_MMAP - read from memory map. Pure Python. * MODE_FILE - read database as standard file. Pure Python. * MODE_MEMORY - load database into memory. Pure Python. + * MODE_FD - the param passed via fileish is a file descriptor, not a + path. This mode implies MODE_MEMORY. Pure Python. * MODE_AUTO - try MODE_MMAP_EXT, MODE_MMAP, MODE_FILE in that order. Default. """ if locales is None: locales = ['en'] - self._db_reader = maxminddb.open_database(filename, mode) + self._db_reader = maxminddb.open_database(fileish, mode) self._locales = locales def __enter__(self): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/geoip2-2.8.0/geoip2.egg-info/PKG-INFO new/geoip2-2.9.0/geoip2.egg-info/PKG-INFO --- old/geoip2-2.8.0/geoip2.egg-info/PKG-INFO 2018-04-10 17:17:57.000000000 +0200 +++ new/geoip2-2.9.0/geoip2.egg-info/PKG-INFO 2018-05-25 22:10:02.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.2 Name: geoip2 -Version: 2.8.0 +Version: 2.9.0 Summary: MaxMind GeoIP2 API Home-page: http://www.maxmind.com/ Author: Gregory Oschwald diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/geoip2-2.8.0/geoip2.egg-info/requires.txt new/geoip2-2.9.0/geoip2.egg-info/requires.txt --- old/geoip2-2.8.0/geoip2.egg-info/requires.txt 2018-04-10 17:17:57.000000000 +0200 +++ new/geoip2-2.9.0/geoip2.egg-info/requires.txt 2018-05-25 22:10:02.000000000 +0200 @@ -1,5 +1,5 @@ requests>=2.9 -maxminddb>=1.2.1 +maxminddb>=1.4.0 [:python_version=="2.7"] ipaddress diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/geoip2-2.8.0/requirements.txt new/geoip2-2.9.0/requirements.txt --- old/geoip2-2.8.0/requirements.txt 2016-09-15 22:38:30.000000000 +0200 +++ new/geoip2-2.9.0/requirements.txt 2018-05-25 22:08:13.000000000 +0200 @@ -1,2 +1,2 @@ requests>=2.9 -maxminddb>=1.2.1 +maxminddb>=1.4.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/geoip2-2.8.0/setup.cfg new/geoip2-2.9.0/setup.cfg --- old/geoip2-2.8.0/setup.cfg 2018-04-10 17:17:57.000000000 +0200 +++ new/geoip2-2.9.0/setup.cfg 2018-05-25 22:10:02.000000000 +0200 @@ -9,5 +9,4 @@ [egg_info] tag_build = tag_date = 0 -tag_svn_revision = 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/geoip2-2.8.0/tests/database_test.py new/geoip2-2.9.0/tests/database_test.py --- old/geoip2-2.8.0/tests/database_test.py 2018-01-18 16:54:14.000000000 +0100 +++ new/geoip2-2.9.0/tests/database_test.py 2018-05-16 16:34:04.000000000 +0200 @@ -216,5 +216,9 @@ mode = geoip2.database.MODE_MEMORY +class TestFDReader(unittest.TestCase): + mode = geoip2.database.MODE_FD + + class TestAutoReader(BaseTestReader, unittest.TestCase): mode = geoip2.database.MODE_AUTO
