# rapidgeo
[](https://pypi.org/project/rapidgeo/)
[](https://rapidgeo.readthedocs.io/)
[](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[](https://pypi.org/project/rapidgeo/)\n[](https://rapidgeo.readthedocs.io/)\n[](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"
}