rapidgeo


Namerapidgeo JSON
Version 0.2.1 PyPI version JSON
download
home_pagehttps://github.com/gaker/rapidgeo
SummaryFast geographic and planar distance calculations with Python bindings
upload_time2025-09-02 19:28:03
maintainerNone
docs_urlNone
authorgaker
requires_python>=3.8
licenseMIT OR Apache-2.0
keywords distance geodesic haversine vincenty geometry gis
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # rapidgeo

[![PyPI](https://img.shields.io/pypi/v/rapidgeo.svg)](https://pypi.org/project/rapidgeo/)
[![Documentation](https://img.shields.io/badge/docs-rapidgeo-blue.svg)](https://rapidgeo.readthedocs.io/)
[![License](https://img.shields.io/badge/license-MIT%20OR%20Apache--2.0-blue.svg)](LICENSE)

Geographic calculations for Python: distance calculations, polyline encoding/decoding, line simplification, and curve similarity measures.

## Installation

```bash
pip install rapidgeo          # Base package
pip install rapidgeo[numpy]   # With NumPy support
```

## Quick Start

```python
from rapidgeo.distance import LngLat
from rapidgeo.distance.geo import haversine, vincenty_distance

# Create coordinates (longitude, latitude)
sf = LngLat.new_deg(-122.4194, 37.7749)   # San Francisco
nyc = LngLat.new_deg(-74.0060, 40.7128)   # New York City

# Calculate distance using Haversine formula
distance = haversine(sf, nyc)
print(f"Distance: {distance / 1000:.1f} km")  # ~4,130 km
```

## What it does

**Distance Calculations:**
- Haversine: Spherical Earth approximation, good for most uses
- Vincenty: Ellipsoidal Earth model for higher precision  
- Euclidean: Flat plane calculations
- Batch operations for multiple points

**Polyline Encoding/Decoding:**
- Google Polyline Algorithm implementation
- Compress coordinate sequences to text strings
- Configurable precision levels

**Line Simplification:**
- Douglas-Peucker algorithm
- Reduce point count while preserving shape
- Configurable distance tolerance

**Curve Similarity:**
- Fréchet distance: Compare trajectories (point order matters)
- Hausdorff distance: Compare shapes (point order doesn't matter)  
- Useful for GPS track analysis and route comparison

## Coordinate System

All coordinates use **longitude, latitude** ordering (lng, lat):

```python
# Correct
point = LngLat.new_deg(-122.4194, 37.7749)  # lng first, lat second

# Common mistake
# point = LngLat.new_deg(37.7749, -122.4194)  # lat, lng - WRONG
```

## Usage Examples

**Compare GPS Tracks:**
```python
from rapidgeo.similarity.frechet import discrete_frechet

# Two similar walking routes
route_a = [LngLat.new_deg(-122.419, 37.775), LngLat.new_deg(-122.418, 37.776)]
route_b = [LngLat.new_deg(-122.419, 37.775), LngLat.new_deg(-122.417, 37.777)]

similarity = discrete_frechet(route_a, route_b)
print(f"Routes differ by {similarity:.1f} meters")
```

**Simplify GPS Tracks:**
```python
from rapidgeo.simplify import douglas_peucker

# Reduce GPS track complexity
detailed_track = [LngLat.new_deg(-122.4, 37.7), LngLat.new_deg(-122.39, 37.71), ...]
simplified = douglas_peucker(detailed_track, tolerance=10.0)  # 10m tolerance
print(f"Reduced from {len(detailed_track)} to {len(simplified)} points")
```

**Encode/Decode Polylines:**
```python  
from rapidgeo.polyline import encode, decode

# Compress GPS data for storage/transmission
points = [LngLat.new_deg(-122.4, 37.7), LngLat.new_deg(-122.3, 37.8)]
encoded = encode(points, precision=5)
decoded = decode(encoded, precision=5)
```

## License

Licensed under either of [Apache License, Version 2.0](LICENSE-APACHE) or [MIT License](LICENSE-MIT) at your option.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/gaker/rapidgeo",
    "name": "rapidgeo",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "distance, geodesic, haversine, vincenty, geometry, gis",
    "author": "gaker",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/24/7b/25879a491e93b25981462052f3edba909700010730e69d6522ec9636eb8a/rapidgeo-0.2.1.tar.gz",
    "platform": null,
    "description": "# rapidgeo\n\n[![PyPI](https://img.shields.io/pypi/v/rapidgeo.svg)](https://pypi.org/project/rapidgeo/)\n[![Documentation](https://img.shields.io/badge/docs-rapidgeo-blue.svg)](https://rapidgeo.readthedocs.io/)\n[![License](https://img.shields.io/badge/license-MIT%20OR%20Apache--2.0-blue.svg)](LICENSE)\n\nGeographic calculations for Python: distance calculations, polyline encoding/decoding, line simplification, and curve similarity measures.\n\n## Installation\n\n```bash\npip install rapidgeo          # Base package\npip install rapidgeo[numpy]   # With NumPy support\n```\n\n## Quick Start\n\n```python\nfrom rapidgeo.distance import LngLat\nfrom rapidgeo.distance.geo import haversine, vincenty_distance\n\n# Create coordinates (longitude, latitude)\nsf = LngLat.new_deg(-122.4194, 37.7749)   # San Francisco\nnyc = LngLat.new_deg(-74.0060, 40.7128)   # New York City\n\n# Calculate distance using Haversine formula\ndistance = haversine(sf, nyc)\nprint(f\"Distance: {distance / 1000:.1f} km\")  # ~4,130 km\n```\n\n## What it does\n\n**Distance Calculations:**\n- Haversine: Spherical Earth approximation, good for most uses\n- Vincenty: Ellipsoidal Earth model for higher precision  \n- Euclidean: Flat plane calculations\n- Batch operations for multiple points\n\n**Polyline Encoding/Decoding:**\n- Google Polyline Algorithm implementation\n- Compress coordinate sequences to text strings\n- Configurable precision levels\n\n**Line Simplification:**\n- Douglas-Peucker algorithm\n- Reduce point count while preserving shape\n- Configurable distance tolerance\n\n**Curve Similarity:**\n- Fr\u00e9chet distance: Compare trajectories (point order matters)\n- Hausdorff distance: Compare shapes (point order doesn't matter)  \n- Useful for GPS track analysis and route comparison\n\n## Coordinate System\n\nAll coordinates use **longitude, latitude** ordering (lng, lat):\n\n```python\n# Correct\npoint = LngLat.new_deg(-122.4194, 37.7749)  # lng first, lat second\n\n# Common mistake\n# point = LngLat.new_deg(37.7749, -122.4194)  # lat, lng - WRONG\n```\n\n## Usage Examples\n\n**Compare GPS Tracks:**\n```python\nfrom rapidgeo.similarity.frechet import discrete_frechet\n\n# Two similar walking routes\nroute_a = [LngLat.new_deg(-122.419, 37.775), LngLat.new_deg(-122.418, 37.776)]\nroute_b = [LngLat.new_deg(-122.419, 37.775), LngLat.new_deg(-122.417, 37.777)]\n\nsimilarity = discrete_frechet(route_a, route_b)\nprint(f\"Routes differ by {similarity:.1f} meters\")\n```\n\n**Simplify GPS Tracks:**\n```python\nfrom rapidgeo.simplify import douglas_peucker\n\n# Reduce GPS track complexity\ndetailed_track = [LngLat.new_deg(-122.4, 37.7), LngLat.new_deg(-122.39, 37.71), ...]\nsimplified = douglas_peucker(detailed_track, tolerance=10.0)  # 10m tolerance\nprint(f\"Reduced from {len(detailed_track)} to {len(simplified)} points\")\n```\n\n**Encode/Decode Polylines:**\n```python  \nfrom rapidgeo.polyline import encode, decode\n\n# Compress GPS data for storage/transmission\npoints = [LngLat.new_deg(-122.4, 37.7), LngLat.new_deg(-122.3, 37.8)]\nencoded = encode(points, precision=5)\ndecoded = decode(encoded, precision=5)\n```\n\n## License\n\nLicensed under either of [Apache License, Version 2.0](LICENSE-APACHE) or [MIT License](LICENSE-MIT) at your option.\n",
    "bugtrack_url": null,
    "license": "MIT OR Apache-2.0",
    "summary": "Fast geographic and planar distance calculations with Python bindings",
    "version": "0.2.1",
    "project_urls": {
        "Documentation": "https://rapidgeo.readthedocs.io/",
        "Homepage": "https://github.com/gaker/rapidgeo",
        "Issues": "https://github.com/gaker/rapidgeo/issues",
        "Repository": "https://github.com/gaker/rapidgeo"
    },
    "split_keywords": [
        "distance",
        " geodesic",
        " haversine",
        " vincenty",
        " geometry",
        " gis"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "67b8e01ee127e984c0fce6dae2d319cb93c2e8b621656a82dad469a2fb3faad9",
                "md5": "940be6d58ed5148c0a03fb8c7085711c",
                "sha256": "41a753209b4a5c0fa0a58f3b125bebc2084ce60d7eda7590fca4c7d3d32db43d"
            },
            "downloads": -1,
            "filename": "rapidgeo-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "940be6d58ed5148c0a03fb8c7085711c",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 355028,
            "upload_time": "2025-09-02T19:27:18",
            "upload_time_iso_8601": "2025-09-02T19:27:18.124296Z",
            "url": "https://files.pythonhosted.org/packages/67/b8/e01ee127e984c0fce6dae2d319cb93c2e8b621656a82dad469a2fb3faad9/rapidgeo-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b9b639115a738b61752e8a278e5f41a637e0013d9a30dbf98e69a6691c62e0d0",
                "md5": "84cb27a7792cc2853bca7268f815e45c",
                "sha256": "a8358fcd8b097d9f6dd4fb9113bfbf86cd54c2cdccbcfe7a02684ebeb36b53b5"
            },
            "downloads": -1,
            "filename": "rapidgeo-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "84cb27a7792cc2853bca7268f815e45c",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 369646,
            "upload_time": "2025-09-02T19:27:19",
            "upload_time_iso_8601": "2025-09-02T19:27:19.550400Z",
            "url": "https://files.pythonhosted.org/packages/b9/b6/39115a738b61752e8a278e5f41a637e0013d9a30dbf98e69a6691c62e0d0/rapidgeo-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7eba639d3bfbe7aa8cc24818b0106708781468d67ac8fec70a4754e1aae81644",
                "md5": "14b1a676b02fca56578d7dc0e419e106",
                "sha256": "b6f1ded7749fa99433bed6ffbf55375a9f2acff9bc8e25a8b3c4144d38d1f3fc"
            },
            "downloads": -1,
            "filename": "rapidgeo-0.2.1-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "14b1a676b02fca56578d7dc0e419e106",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 222936,
            "upload_time": "2025-09-02T19:27:20",
            "upload_time_iso_8601": "2025-09-02T19:27:20.846112Z",
            "url": "https://files.pythonhosted.org/packages/7e/ba/639d3bfbe7aa8cc24818b0106708781468d67ac8fec70a4754e1aae81644/rapidgeo-0.2.1-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4a7bfadb25cdb7f7629bc4962a6174dc2f9c9f3795f23ad22d3676f905dbd237",
                "md5": "79466d40eb2273d1f050de2e1f27c0a1",
                "sha256": "28f8adad25aabe06c01e420449a900b5295a97b99c5eb317193c202a5a964eb1"
            },
            "downloads": -1,
            "filename": "rapidgeo-0.2.1-cp311-cp311-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "79466d40eb2273d1f050de2e1f27c0a1",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 338106,
            "upload_time": "2025-09-02T19:27:22",
            "upload_time_iso_8601": "2025-09-02T19:27:22.431912Z",
            "url": "https://files.pythonhosted.org/packages/4a/7b/fadb25cdb7f7629bc4962a6174dc2f9c9f3795f23ad22d3676f905dbd237/rapidgeo-0.2.1-cp311-cp311-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "48edf0c6107bf001eba041ab391cb44b1633873871a1dc3d05f2c84f0d443ac7",
                "md5": "04fadccfc3f0f080cec70120ae505778",
                "sha256": "d575cf57a427f6895ce06f9a00aa7ae856b2fbb94aba93f9dc627748ccf6c377"
            },
            "downloads": -1,
            "filename": "rapidgeo-0.2.1-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "04fadccfc3f0f080cec70120ae505778",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 314973,
            "upload_time": "2025-09-02T19:27:23",
            "upload_time_iso_8601": "2025-09-02T19:27:23.978809Z",
            "url": "https://files.pythonhosted.org/packages/48/ed/f0c6107bf001eba041ab391cb44b1633873871a1dc3d05f2c84f0d443ac7/rapidgeo-0.2.1-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d1cef09bab3242ab4dc3f4619136ee9ba1ec2262fc9887ed4df024eb99e4bd1f",
                "md5": "cf9b32e36dc5d04047db225f51f71276",
                "sha256": "d7a955659b6ca523c8f2f4504cc921799bb19d994b81a9d4dbb04783a27b28d8"
            },
            "downloads": -1,
            "filename": "rapidgeo-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "cf9b32e36dc5d04047db225f51f71276",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 354673,
            "upload_time": "2025-09-02T19:27:25",
            "upload_time_iso_8601": "2025-09-02T19:27:25.629975Z",
            "url": "https://files.pythonhosted.org/packages/d1/ce/f09bab3242ab4dc3f4619136ee9ba1ec2262fc9887ed4df024eb99e4bd1f/rapidgeo-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9977be5a0579f733cd536295ffb5f38731edde6210287a09aa86304a1e6fac1f",
                "md5": "6cc425c28ad60f7fcfa56cfa015c784c",
                "sha256": "b69a40d28c059f7daf63ce31af1d602230df299c7d7aba1c76f7efebd955ecdc"
            },
            "downloads": -1,
            "filename": "rapidgeo-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "6cc425c28ad60f7fcfa56cfa015c784c",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 369258,
            "upload_time": "2025-09-02T19:27:27",
            "upload_time_iso_8601": "2025-09-02T19:27:27.254341Z",
            "url": "https://files.pythonhosted.org/packages/99/77/be5a0579f733cd536295ffb5f38731edde6210287a09aa86304a1e6fac1f/rapidgeo-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2f73916c5789ef6eea46ea9d60206de74cc37e9cb4556c578cfb28e21d148cbd",
                "md5": "ccfe91fad560771951b6954b7961da2c",
                "sha256": "a06d390e8c2693411317ea738b0927919f8bbeb90c2f276183f625aae561e22c"
            },
            "downloads": -1,
            "filename": "rapidgeo-0.2.1-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "ccfe91fad560771951b6954b7961da2c",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 222815,
            "upload_time": "2025-09-02T19:27:28",
            "upload_time_iso_8601": "2025-09-02T19:27:28.667182Z",
            "url": "https://files.pythonhosted.org/packages/2f/73/916c5789ef6eea46ea9d60206de74cc37e9cb4556c578cfb28e21d148cbd/rapidgeo-0.2.1-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7f7d9fc2ae697956925c80c815324a0f94248365d99cbef3fa9db83d80b4d9e8",
                "md5": "014e09fb9b869963905f76ef17b5be7a",
                "sha256": "df954b800be1b9cb6a66870f80e5138faea7792632df6219b54acf56715210db"
            },
            "downloads": -1,
            "filename": "rapidgeo-0.2.1-cp312-cp312-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "014e09fb9b869963905f76ef17b5be7a",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 334577,
            "upload_time": "2025-09-02T19:27:30",
            "upload_time_iso_8601": "2025-09-02T19:27:30.584042Z",
            "url": "https://files.pythonhosted.org/packages/7f/7d/9fc2ae697956925c80c815324a0f94248365d99cbef3fa9db83d80b4d9e8/rapidgeo-0.2.1-cp312-cp312-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1fcabbe2cb0172049a5369ca7274f53cb8bf81e42cdc143df3df317bad4ada3c",
                "md5": "968814a2df296d2bf52a63370717cc79",
                "sha256": "d0db2cdddb544a8a98347568eac847b31f23907ad8339d26f4b741c3223cde02"
            },
            "downloads": -1,
            "filename": "rapidgeo-0.2.1-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "968814a2df296d2bf52a63370717cc79",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 310940,
            "upload_time": "2025-09-02T19:27:31",
            "upload_time_iso_8601": "2025-09-02T19:27:31.898354Z",
            "url": "https://files.pythonhosted.org/packages/1f/ca/bbe2cb0172049a5369ca7274f53cb8bf81e42cdc143df3df317bad4ada3c/rapidgeo-0.2.1-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b8fe308dcf7883e94d0dcc8c8432e79f095fd2abb24c19d85d91398f3ed7a8ab",
                "md5": "d8bf9fe51a50c1afe316bd531e5ee9ec",
                "sha256": "22cf5fe0ba228f90310e7d00c6dc30c06a0ce27ecabd10ab346988836cfe630f"
            },
            "downloads": -1,
            "filename": "rapidgeo-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "d8bf9fe51a50c1afe316bd531e5ee9ec",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 353215,
            "upload_time": "2025-09-02T19:27:33",
            "upload_time_iso_8601": "2025-09-02T19:27:33.422349Z",
            "url": "https://files.pythonhosted.org/packages/b8/fe/308dcf7883e94d0dcc8c8432e79f095fd2abb24c19d85d91398f3ed7a8ab/rapidgeo-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "872178c2cec7efedfd3e0aafdf396124d35d4eb741327e4779d4b2b9beae33be",
                "md5": "cc8e9a440d9c6f66033a7ca32f5f2aa1",
                "sha256": "30ea677128f38a97f237b7d4d62839882bdf6408dd03cbfbdbba9c71d0ceab51"
            },
            "downloads": -1,
            "filename": "rapidgeo-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "cc8e9a440d9c6f66033a7ca32f5f2aa1",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 368734,
            "upload_time": "2025-09-02T19:27:34",
            "upload_time_iso_8601": "2025-09-02T19:27:34.727788Z",
            "url": "https://files.pythonhosted.org/packages/87/21/78c2cec7efedfd3e0aafdf396124d35d4eb741327e4779d4b2b9beae33be/rapidgeo-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d6d6152515be5000b75a40f4398e8c42d69580cda8a0d421afd9f2b51854c15f",
                "md5": "bd910042d5d5310b2d1c9ef3105187ab",
                "sha256": "04d523e1d2e0e136053d6c67f672003a8ae0be4b61b89fee765afa9f310cfbb5"
            },
            "downloads": -1,
            "filename": "rapidgeo-0.2.1-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "bd910042d5d5310b2d1c9ef3105187ab",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 220862,
            "upload_time": "2025-09-02T19:27:36",
            "upload_time_iso_8601": "2025-09-02T19:27:36.110788Z",
            "url": "https://files.pythonhosted.org/packages/d6/d6/152515be5000b75a40f4398e8c42d69580cda8a0d421afd9f2b51854c15f/rapidgeo-0.2.1-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "248d9bd2863b8fe8d3e386874c0eccd8d47214d7d86934e0bc7b769ade613463",
                "md5": "ca107c8bb6ffd859591872df7e384cef",
                "sha256": "143d214d125f753a6122309fd16777b88c6dbf4fee440c91a5faaf75ef631b87"
            },
            "downloads": -1,
            "filename": "rapidgeo-0.2.1-cp313-cp313-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ca107c8bb6ffd859591872df7e384cef",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.8",
            "size": 334496,
            "upload_time": "2025-09-02T19:27:37",
            "upload_time_iso_8601": "2025-09-02T19:27:37.508934Z",
            "url": "https://files.pythonhosted.org/packages/24/8d/9bd2863b8fe8d3e386874c0eccd8d47214d7d86934e0bc7b769ade613463/rapidgeo-0.2.1-cp313-cp313-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b5b2e332bc77da9b532b788d2edca48f3afbc45ef308248dbd7d0635e288fcb8",
                "md5": "e70a3eaaad00f9fb20f1d39e3ecc46c9",
                "sha256": "35626cca0d821a7799c77f8380bc37f48868a0d47b2c9cf026604c7c96832722"
            },
            "downloads": -1,
            "filename": "rapidgeo-0.2.1-cp313-cp313-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "e70a3eaaad00f9fb20f1d39e3ecc46c9",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.8",
            "size": 310873,
            "upload_time": "2025-09-02T19:27:38",
            "upload_time_iso_8601": "2025-09-02T19:27:38.816030Z",
            "url": "https://files.pythonhosted.org/packages/b5/b2/e332bc77da9b532b788d2edca48f3afbc45ef308248dbd7d0635e288fcb8/rapidgeo-0.2.1-cp313-cp313-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "03572d29e367bbe2d4c807908b9dc6d3f6d1641247bd4e25aebffa7ac065207e",
                "md5": "d3628ce718ace60b09c18336d2f09afe",
                "sha256": "cc0855bdb0d32564ce6ef3e192e97ea2961a22b30bbc31817c48fecbc806b874"
            },
            "downloads": -1,
            "filename": "rapidgeo-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "d3628ce718ace60b09c18336d2f09afe",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.8",
            "size": 352984,
            "upload_time": "2025-09-02T19:27:40",
            "upload_time_iso_8601": "2025-09-02T19:27:40.327707Z",
            "url": "https://files.pythonhosted.org/packages/03/57/2d29e367bbe2d4c807908b9dc6d3f6d1641247bd4e25aebffa7ac065207e/rapidgeo-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e586a3d6245eebd082fefca5c38fd9a5ba493aa71600c4d8a3bce8f74cce4c83",
                "md5": "ad62354fc76337120085e63f6ddf7a86",
                "sha256": "f76ce2d0462eee917a452fff51126c4b720e05f775d1db4a55f65fe4a19c9c64"
            },
            "downloads": -1,
            "filename": "rapidgeo-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ad62354fc76337120085e63f6ddf7a86",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.8",
            "size": 368196,
            "upload_time": "2025-09-02T19:27:42",
            "upload_time_iso_8601": "2025-09-02T19:27:42.017306Z",
            "url": "https://files.pythonhosted.org/packages/e5/86/a3d6245eebd082fefca5c38fd9a5ba493aa71600c4d8a3bce8f74cce4c83/rapidgeo-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2d01968ef3556d42ad1e317cbe792fe05eb107551906719cb4e89cf9c3df1967",
                "md5": "9c999de85487a5bbe506f9651383ea44",
                "sha256": "9757ddf3e206d8a05e3c59bbca28ccbbfb3f00d6cb694ffca93d3fcd2af620d5"
            },
            "downloads": -1,
            "filename": "rapidgeo-0.2.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "9c999de85487a5bbe506f9651383ea44",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.8",
            "size": 350390,
            "upload_time": "2025-09-02T19:27:44",
            "upload_time_iso_8601": "2025-09-02T19:27:44.719530Z",
            "url": "https://files.pythonhosted.org/packages/2d/01/968ef3556d42ad1e317cbe792fe05eb107551906719cb4e89cf9c3df1967/rapidgeo-0.2.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "49f82bec0d6553487234d9c795fc43787e9e43db9b1dd61d4d61b35d323bc016",
                "md5": "010213dd9a44f567fd712b689ea26cf3",
                "sha256": "08b00e06c516e5c3291a7509c057b60df327cf4b45cd1ef5a25ada53aa3928ab"
            },
            "downloads": -1,
            "filename": "rapidgeo-0.2.1-cp313-cp313-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "010213dd9a44f567fd712b689ea26cf3",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.8",
            "size": 220454,
            "upload_time": "2025-09-02T19:27:43",
            "upload_time_iso_8601": "2025-09-02T19:27:43.292523Z",
            "url": "https://files.pythonhosted.org/packages/49/f8/2bec0d6553487234d9c795fc43787e9e43db9b1dd61d4d61b35d323bc016/rapidgeo-0.2.1-cp313-cp313-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a7198720330ef1b35c380bd73e7f3ae21e2577286ff8dca1fd4b1c8222b23449",
                "md5": "32aa2839b64097f57014beff66c91a6e",
                "sha256": "854af878d8c075c02c9a3e30d7f7d48b925f7fd203a1e9d9823bd555c45f5a2e"
            },
            "downloads": -1,
            "filename": "rapidgeo-0.2.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "32aa2839b64097f57014beff66c91a6e",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.8",
            "size": 365844,
            "upload_time": "2025-09-02T19:27:46",
            "upload_time_iso_8601": "2025-09-02T19:27:46.928199Z",
            "url": "https://files.pythonhosted.org/packages/a7/19/8720330ef1b35c380bd73e7f3ae21e2577286ff8dca1fd4b1c8222b23449/rapidgeo-0.2.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "839244f95f2ad4b9610de5f1e04233bd0ffd6c3e53290a769e949f54b50caaa8",
                "md5": "c2afdd238ba45932d97f3d5359250670",
                "sha256": "a54fc0a94cc8164742d21684f4d1bcc3a8f391d57262d00e9aa9bb0c1c07f45a"
            },
            "downloads": -1,
            "filename": "rapidgeo-0.2.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "c2afdd238ba45932d97f3d5359250670",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 355869,
            "upload_time": "2025-09-02T19:27:48",
            "upload_time_iso_8601": "2025-09-02T19:27:48.247161Z",
            "url": "https://files.pythonhosted.org/packages/83/92/44f95f2ad4b9610de5f1e04233bd0ffd6c3e53290a769e949f54b50caaa8/rapidgeo-0.2.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c4405f419f9e290363ef252fed67c8b568fd7c5d039407a722b74ed92539e880",
                "md5": "9391ad182011a67be6899e41d98e7156",
                "sha256": "0843632fc855607d0bf4e42dd0bf0c812f4d43bf2303633302dd37f46cd96f4d"
            },
            "downloads": -1,
            "filename": "rapidgeo-0.2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9391ad182011a67be6899e41d98e7156",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 370767,
            "upload_time": "2025-09-02T19:27:49",
            "upload_time_iso_8601": "2025-09-02T19:27:49.888314Z",
            "url": "https://files.pythonhosted.org/packages/c4/40/5f419f9e290363ef252fed67c8b568fd7c5d039407a722b74ed92539e880/rapidgeo-0.2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "45ca12849a5d6d038270ac00dcbdfa5855730be5e8da48bcf22fdf5bfa184bd1",
                "md5": "6f8bf31cf009f1f87af607e3800a24da",
                "sha256": "33ba3c17b18ea02b6bd74c4eef3e598ed11bbf4950da6c7af158203dfcf7cecd"
            },
            "downloads": -1,
            "filename": "rapidgeo-0.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "6f8bf31cf009f1f87af607e3800a24da",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 356077,
            "upload_time": "2025-09-02T19:27:51",
            "upload_time_iso_8601": "2025-09-02T19:27:51.479017Z",
            "url": "https://files.pythonhosted.org/packages/45/ca/12849a5d6d038270ac00dcbdfa5855730be5e8da48bcf22fdf5bfa184bd1/rapidgeo-0.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f96e153d07167c4ce380779abe7ca57cba0a349d307ef41679f5b590b220876b",
                "md5": "f06d7b5b1158081929346c6aa93e1fcf",
                "sha256": "c76d602df5e52ca01e10c628afdda9085617d4b22a9961076bfdf835b5a183d6"
            },
            "downloads": -1,
            "filename": "rapidgeo-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f06d7b5b1158081929346c6aa93e1fcf",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 370944,
            "upload_time": "2025-09-02T19:27:52",
            "upload_time_iso_8601": "2025-09-02T19:27:52.870490Z",
            "url": "https://files.pythonhosted.org/packages/f9/6e/153d07167c4ce380779abe7ca57cba0a349d307ef41679f5b590b220876b/rapidgeo-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b9b37c5dd57a7a05855ce2411a11a21d1c3a0491d225f4af8fe2e74d902e2678",
                "md5": "196fc66d20ab48a3569bc529766bb3a6",
                "sha256": "15674bf09054284b1142b206ab9becd733f697474fc2e8cf514549eb190d6a70"
            },
            "downloads": -1,
            "filename": "rapidgeo-0.2.1-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "196fc66d20ab48a3569bc529766bb3a6",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 223832,
            "upload_time": "2025-09-02T19:27:54",
            "upload_time_iso_8601": "2025-09-02T19:27:54.102406Z",
            "url": "https://files.pythonhosted.org/packages/b9/b3/7c5dd57a7a05855ce2411a11a21d1c3a0491d225f4af8fe2e74d902e2678/rapidgeo-0.2.1-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0ca9398034de6610692d2bb53c23f56079ed8ecb6278d6501014b7e0a150ffbf",
                "md5": "f2aed6f34dd3682791318e523ac83722",
                "sha256": "4130b09e65f360c742eb7b10517ff5608213f038e1c70d9ae4e65a2e3140b93b"
            },
            "downloads": -1,
            "filename": "rapidgeo-0.2.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "f2aed6f34dd3682791318e523ac83722",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.8",
            "size": 356136,
            "upload_time": "2025-09-02T19:27:55",
            "upload_time_iso_8601": "2025-09-02T19:27:55.416951Z",
            "url": "https://files.pythonhosted.org/packages/0c/a9/398034de6610692d2bb53c23f56079ed8ecb6278d6501014b7e0a150ffbf/rapidgeo-0.2.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a32b105b335bda070a9422bbc2670fdd7cde6d4a3f6f78da23727542e55bf0fb",
                "md5": "7434256ec5f72dbf87d22dafd73bd517",
                "sha256": "8759feec1b915fb5cc3bcc25191649a81797316e5876615aefcc585000b6fe13"
            },
            "downloads": -1,
            "filename": "rapidgeo-0.2.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7434256ec5f72dbf87d22dafd73bd517",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.8",
            "size": 371218,
            "upload_time": "2025-09-02T19:27:56",
            "upload_time_iso_8601": "2025-09-02T19:27:56.946666Z",
            "url": "https://files.pythonhosted.org/packages/a3/2b/105b335bda070a9422bbc2670fdd7cde6d4a3f6f78da23727542e55bf0fb/rapidgeo-0.2.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ff6e18d412b918bff589b4d74dd251aa1b4ad2531d9c3b3e1e10a608760dd573",
                "md5": "546394344972f64a52efae213b63710a",
                "sha256": "3eff061609e89424d378ae1a2991e5efffb13f1e8e52306c94b89ae204586a1b"
            },
            "downloads": -1,
            "filename": "rapidgeo-0.2.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "546394344972f64a52efae213b63710a",
            "packagetype": "bdist_wheel",
            "python_version": "pp311",
            "requires_python": ">=3.8",
            "size": 355294,
            "upload_time": "2025-09-02T19:27:58",
            "upload_time_iso_8601": "2025-09-02T19:27:58.335881Z",
            "url": "https://files.pythonhosted.org/packages/ff/6e/18d412b918bff589b4d74dd251aa1b4ad2531d9c3b3e1e10a608760dd573/rapidgeo-0.2.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a1a1f5c850c57143a6c933ce96c4e43e5936d37322a96fa8eb1ed17a5939df65",
                "md5": "cb7c5ea19f39ad7340b4613b6673085d",
                "sha256": "18d304cc49175fb02a198c50968bc023ac5c8b98937fdb7ab56cb9ed3f380c98"
            },
            "downloads": -1,
            "filename": "rapidgeo-0.2.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "cb7c5ea19f39ad7340b4613b6673085d",
            "packagetype": "bdist_wheel",
            "python_version": "pp311",
            "requires_python": ">=3.8",
            "size": 370176,
            "upload_time": "2025-09-02T19:27:59",
            "upload_time_iso_8601": "2025-09-02T19:27:59.897332Z",
            "url": "https://files.pythonhosted.org/packages/a1/a1/f5c850c57143a6c933ce96c4e43e5936d37322a96fa8eb1ed17a5939df65/rapidgeo-0.2.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a048b75adfecba04b04932314fe1e632bc16eb758de96410396d5a8e93ab9ed4",
                "md5": "0dcb10664b50ec10cda6bfb4e286dab2",
                "sha256": "a8165e3a727a77bba9091cf5e6d05d2c2a5ebcdc2cd8762962e086a4e24d24f5"
            },
            "downloads": -1,
            "filename": "rapidgeo-0.2.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "0dcb10664b50ec10cda6bfb4e286dab2",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.8",
            "size": 356227,
            "upload_time": "2025-09-02T19:28:02",
            "upload_time_iso_8601": "2025-09-02T19:28:02.222690Z",
            "url": "https://files.pythonhosted.org/packages/a0/48/b75adfecba04b04932314fe1e632bc16eb758de96410396d5a8e93ab9ed4/rapidgeo-0.2.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "247b25879a491e93b25981462052f3edba909700010730e69d6522ec9636eb8a",
                "md5": "620ea4e2b1321517ed57ae63c81d9223",
                "sha256": "b96b3695f22462fbd0c19ebbfca2599251c80af7117be0acb88fb8222f142173"
            },
            "downloads": -1,
            "filename": "rapidgeo-0.2.1.tar.gz",
            "has_sig": false,
            "md5_digest": "620ea4e2b1321517ed57ae63c81d9223",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 158753,
            "upload_time": "2025-09-02T19:28:03",
            "upload_time_iso_8601": "2025-09-02T19:28:03.462123Z",
            "url": "https://files.pythonhosted.org/packages/24/7b/25879a491e93b25981462052f3edba909700010730e69d6522ec9636eb8a/rapidgeo-0.2.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-02 19:28:03",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "gaker",
    "github_project": "rapidgeo",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "rapidgeo"
}
        
Elapsed time: 1.15946s