Skip to main content

FreeGeoIp's RESTful API client for Python

Project description

Description

Simple Python library made for consuming FreeGeoIp's RESTful API. API returns geo location data either for the current IP address that made the request or for the provided IP address.

Installing and usage

Install using pip

pip install freegeoip-client

Use it in code

from freegeoip_client import FreeGeoIpClient

client = FreeGeoIpClient(api_key="some API key")

geo_data = client.get_geo_location()
geo_data_by_ip = client.get_geo_location_for_ip_address("8.8.8.8")

Example output

>>> from freegeoip_client import FreeGeoIpClient
>>> client = FreeGeoIpClient(api_key="4e5bac60-8fd5-11ec-bf44-17cf03f2ab06")
>>> client.get_geo_location_for_ip_address("8.8.8.8")
{'ip': '8.8.8.8', 'country_code': 'US', 'country_name': 'United States', 'region_code': '', 'region_name': '', 'city': '', 'zip_code': '', 'time_zone': 'America/Chicago', 'latitude': 37.751, 'longitude': -97.822, 'metro_code': 0}

Building project locally

Using pip - Package Installer for Python and setup.py, __init__.py files to define which modules will be included in a package, project can be built and installed locally in order to import it in another Python script.

# OS-level (/usr/local/lib/<python version>)
python -m pip install -e .

# for current user (/home/<user>)
python -m pip install --user -e .

# virtual environment (wherever virtual environment is initialized)
python -m venv env
source /env/bin/activate
python -m pip install -e .

Importing in different script(s):

from freegeoip_client import FreeGeoIpClient

Third party dependencies for project development

Required:

  • requests - Required to make HTTP requests

Not required (but highly encouraged to improve code quality):

  • flake8 - Tool to enforce style guide for Python code (PEP8)
  • black - tool to format Python code
  • pytest - framework for writing small and readable tests
  • requests-mock - library at its core is simply a transport adapter that can be preloaded with responses that are returned if certain URIs are requested

Dependencies are defined in requirements.txt file and are installed using pip. Dependencies can be installed on OS-level, for current user or within virtual environments.

# OS-level (/usr/local/lib/<python version>)
python -m pip install -r requirements.txt

# for current user (/home/<user>)
python -m pip install --user -r requirements.txt

# virtual environment (wherever virtual environment is initialized)
python -m venv env
source /env/bin/activate
python -m pip install -r requirements.txt

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

freegeoip-client-1.0.1.tar.gz (4.6 kB view details)

Uploaded Source

File details

Details for the file freegeoip-client-1.0.1.tar.gz.

File metadata

  • Download URL: freegeoip-client-1.0.1.tar.gz
  • Upload date:
  • Size: 4.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for freegeoip-client-1.0.1.tar.gz
Algorithm Hash digest
SHA256 7b6ec8c95a265fae690bd77d3940aa677d8d6c0c786d84a2714160f9444a06a7
MD5 5697acd23454de6f5eb3bbdbd278b302
BLAKE2b-256 1fd9a47f073603b646d90ea3c4d4ccb94e55b1c4a475810b0e8d1e3ce0a98d65

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page