autobex


Nameautobex JSON
Version 0.1.161 PyPI version JSON
download
home_pageNone
SummaryAutobex helps you find abandoned and interesting locations using OpenStreetMap data. Search by radius or polygon area to discover ruins, bunkers, and abandoned structures. Get elevation data, property ownership details, and direct links to Google Maps and Bing Maps. Designed for urban exploration and historical research, with automatic grouping of nearby locations.
upload_time2025-01-24 16:49:37
maintainerNone
docs_urlNone
authorNone
requires_python>=3.7
licenseMIT
keywords osm openstreetmap abandoned exploration geocoding
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Autobex

Autobex helps you find abandoned and interesting locations using OpenStreetMap data. Search by radius or polygon area to discover ruins, bunkers, and abandoned structures. Get elevation data and direct links to maps.

## Installation

```bash
pip install autobex
```

## Basic Usage

```python
from autobex import OSMSearchPlus

# Initialize searcher
searcher = OSMSearchPlus()

# Search within 5 mile radius of coordinates
results = searcher.search(
    lat=42.554056, 
    lon=-70.928823,
    radius=5.0
)

# Print results
for group in results:
    for location in group:
        print(f"Name: {location.name}")
        print(f"Type: {location.type}")
        print(f"Distance: {location.distance/1609.34:.2f} miles")
        print(f"Elevation: {location.elevation}m")
        print(f"OpenStreetMap: {location.osm_url}")
        print(f"Google Maps: {location.google_maps_url}")
        print(f"Bing Maps: {location.bing_maps_url}")
        print("Tags:", location.tags)
        print()
```

## Search Options

### Tag Search
You can search using:
- Default tags from tags.txt
- Custom tags
- Regex pattern matching with the `~` operator

```python
# List available search tags
for tag in searcher.list_tags():
    print(tag)

# Search with custom tags
results = searcher.search(
    lat=42.554056,
    lon=-70.928823,
    radius=5.0,
    use_default_tags=False,
    custom_tags=[
        "building=ruins",           # Exact match
        "name~Superfund",          # Regex match (case-insensitive)
        "abandoned"                # Simple tag
    ]
)
```

### Area Search
Search within:
- Radius (in miles) from coordinates
- Custom polygon area

### Location Results
Each location includes:
- Name and type
- Distance from search center
- Elevation (meters)
- Direct links to:
  - OpenStreetMap
  - Google Maps
  - Bing Maps
- All associated OSM tags

### Location Groups
Nearby locations are automatically grouped with:
- Intelligent group naming based on status, type, and location
- Distance-based clustering
- Group statistics

### Error Handling
- Automatic retries for API timeouts
- Detailed logging for timeout events and recovery
- Graceful fallback options

## Features

- Search by radius or polygon area
- Elevation data for each location
- Direct map links (OpenStreetMap, Google Maps, Bing Maps)
- Automatic grouping of nearby locations
- Intelligent group naming
- List available search tags
- Support for regex tag matching
- Timeout handling and logging
- Customizable search parameters

## Contributing

Contributions welcome! Please feel free to submit a Pull Request.

## License

MIT

## Configuration Files

### tags.txt
Contains tags to search for by default. Each line should be either:
- A simple tag (e.g., `abandoned`)
- A key=value pair (e.g., `building=ruins`)
- A name pattern (e.g., `name~Factory`)

You can view all configured tags using `searcher.list_tags()`.

### excluded_tags.txt
Contains tags that will exclude locations from results. Same format as `tags.txt`.
If not found, default exclusions are used (e.g., `demolished=yes`, `highway=bus_stop`, etc.).

## Features

- List and inspect available search tags
- Intelligent group naming based on common properties
- Search by radius or polygon area
- Support for both decimal and DMS coordinates
- Automatic grouping of nearby locations (100m radius)
- Distance calculations (direct and to nearest road)
- Elevation data and reverse geocoding
- Direct links to OpenStreetMap, Google Maps, and Bing Maps
- Tag-based filtering and exclusions
- Increased timeout values for slower connections

## Quick Start

```bash
pip install autobex
```

## Location Properties

### Core Properties
- `name` - Location name (from OSM or reverse geocoding)
- `latitude`, `longitude` - Decimal coordinates
- `distance` - Direct distance from search center (miles)
- `road_distance` - Distance to nearest road (miles)
- `elevation` - Height above sea level (meters)
- `osm_url` - Direct link to OpenStreetMap node/way
- `google_maps_url` - Google Maps link (max zoom)
- `bing_maps_url` - Bing Maps link (aerial view)

### OpenStreetMap Data
- `osm_id` - OpenStreetMap ID
- `type` - Element type (node or way)
- `tags` - Dictionary of all OSM tags

## Tag Configuration

### Search Tags (tags.txt)
```
# Exact matches
building=ruins
historic=ruins

# Simple tags (match as key or value)
abandoned
ruins

# Name patterns
name~Factory
```

### Excluded Tags (excluded_tags.txt)
```
# Filter out these locations
demolished=yes
highway=bus_stop

# Exclude common noise
```

## Output Format
```
Location: Example Location (OSM ID: 123456)
----------------------------------------
Direct distance: 1.23 miles
Distance to nearest road: 0.15 miles
Elevation: 42.1 meters

View on Maps:
OpenStreetMap: https://www.openstreetmap.org/way/123456
Google Maps: https://...
Bing Maps: https://...

OpenStreetMap Tags:
building             = ruins
historic            = yes
name                = Old Mill
```

## Advanced Usage

### Polygon Search
```python
polygon = [
    ("42°25'12.3\"N", "70°54'37.4\"W"),
    (42.42103, -70.90324),
    ("42°25'05.0\"N", "70°54'01.1\"W"),
    (42.41492, -70.90501)
]
results = searcher.search(polygon_coords=polygon)
```

### Location Groups
Results are automatically grouped by proximity (100m radius):
```python
for group in results:
    # Get group center
    center_lat, center_lon = group.center()
    
    # Get maximum span in miles
    span = group.distance_span()
    
    # Filter by tag
    ruins = group.filter_by_tag('building', 'ruins')
    
    # Get average elevation
    avg_height = group.average_elevation()
```

### Error Handling
```python
from autobex import OSMSearchError

try:
    results = searcher.search(lat=42.3601, lon=-71.0589, radius=1.0)
except OSMSearchError as e:
    print(f"Search failed: {e}")
```

## Performance Tips

1. Use appropriate search radius (smaller = faster)
2. Use `limit` parameter when possible
3. Keep tag files focused and minimal
4. Use `excluded_tags.txt` to filter noise
5. Enable `show_logs=True` to monitor progress

## Dependencies

- Python 3.7+
- geopy
- requests
- numpy

## License

MIT License - see LICENSE file for details.

## Acknowledgments

- OpenStreetMap contributors
- Open-Elevation API

## Support

- Report bugs through our [Issue Tracker](https://github.com/the-Drunken-coder/Autobex/issues)
- Check out our [Documentation](https://github.com/the-Drunken-coder/Autobex#readme) for more examples

## Coordinate Input Formats

The system automatically detects and handles multiple coordinate formats:

```python
# Decimal Degrees (as string or float)
search.search(lat="41.2345", lon="-71.2345")
search.search(lat=41.2345, lon=-71.2345)

# Degrees, Minutes, Seconds (DMS)
search.search(lat="41°28'50.4\"N", lon="71°23'35.5\"W")
```

The coordinate parser automatically:
- Detects the format (decimal or DMS)
- Handles special quote characters (′ ″)
- Validates coordinate ranges (latitude: -90 to 90, longitude: -180 to 180)
- Converts everything to decimal degrees internally

### Tag Matching

The system uses two types of tag matching:

1. Exact matches (with `=`):
   ```
   building=ruins    -> matches exactly building=ruins
   ```

2. Simple tags (without `=`):
   ```
   abandoned        -> matches:
                      - abandoned=* (any value)
                      - building=abandoned
                      - historic=abandoned
   ```

3. Name patterns (with `~`):
   ```
   name~Factory    -> matches locations with "Factory" in their name
   ```

The search is optimized to:
- Use simple, reliable queries
- Avoid complex regex patterns
- Find locations quickly and efficiently
- Handle both nodes (points) and ways (areas)

You can view all configured tags using:
```python
# List all available search tags
for tag in searcher.list_tags():
    print(tag)
```

Note: All searchable tags are configured in the `tags.txt` file. Example contents:
```
building=ruins
abandoned
ruins
disused
bunker_type
building=bunker
name~Factory
```

You can customize which tags to search for by editing this file.

## Testing and Debugging

### Test Query Tool

The package includes a test query tool (`test_query.py`) that helps visualize search results in a readable format:

```python
python test_query.py
```

Sample output:
```
Querying area...

Found 1 location in 1 group

========================================
Group 1 (1 locations)
========================================

Location 1:
----------------------------------------
Name: Northeastern University Marine Science Center
Type: way
OSM ID: 123456789
Distance: 0.04 miles
Elevation: 15.2m (49.9ft)

Map Links:
  Google Maps: https://www.google.com/maps?q=42.4185,-70.9056&z=21
  Bing Maps: https://www.bing.com/maps?cp=42.4185~-70.9056&style=h&lvl=20

Tags:
  • building = yes
  • historic = ruins
  • name = Northeastern University Marine Science Center
  • abandoned = yes
----------------------------------------
```

The output includes:
1. Location basics (name, type, OSM ID)
2. Distance from search center (in miles)
3. Elevation (in meters and feet)
4. Direct links to Google Maps and Bing Maps (maximum zoom)
5. All raw OSM tags associated with the location

You can modify the search coordinates in `test_query.py` to explore different areas.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "autobex",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "osm, openstreetmap, abandoned, exploration, geocoding",
    "author": null,
    "author_email": "Lane Araujo <lanearaujo@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/33/1a/fbe6db9ea3b73efecefadc45c92a8c25fe3ffffe768386e008c1a9c1188a/autobex-0.1.161.tar.gz",
    "platform": null,
    "description": "# Autobex\r\n\r\nAutobex helps you find abandoned and interesting locations using OpenStreetMap data. Search by radius or polygon area to discover ruins, bunkers, and abandoned structures. Get elevation data and direct links to maps.\r\n\r\n## Installation\r\n\r\n```bash\r\npip install autobex\r\n```\r\n\r\n## Basic Usage\r\n\r\n```python\r\nfrom autobex import OSMSearchPlus\r\n\r\n# Initialize searcher\r\nsearcher = OSMSearchPlus()\r\n\r\n# Search within 5 mile radius of coordinates\r\nresults = searcher.search(\r\n    lat=42.554056, \r\n    lon=-70.928823,\r\n    radius=5.0\r\n)\r\n\r\n# Print results\r\nfor group in results:\r\n    for location in group:\r\n        print(f\"Name: {location.name}\")\r\n        print(f\"Type: {location.type}\")\r\n        print(f\"Distance: {location.distance/1609.34:.2f} miles\")\r\n        print(f\"Elevation: {location.elevation}m\")\r\n        print(f\"OpenStreetMap: {location.osm_url}\")\r\n        print(f\"Google Maps: {location.google_maps_url}\")\r\n        print(f\"Bing Maps: {location.bing_maps_url}\")\r\n        print(\"Tags:\", location.tags)\r\n        print()\r\n```\r\n\r\n## Search Options\r\n\r\n### Tag Search\r\nYou can search using:\r\n- Default tags from tags.txt\r\n- Custom tags\r\n- Regex pattern matching with the `~` operator\r\n\r\n```python\r\n# List available search tags\r\nfor tag in searcher.list_tags():\r\n    print(tag)\r\n\r\n# Search with custom tags\r\nresults = searcher.search(\r\n    lat=42.554056,\r\n    lon=-70.928823,\r\n    radius=5.0,\r\n    use_default_tags=False,\r\n    custom_tags=[\r\n        \"building=ruins\",           # Exact match\r\n        \"name~Superfund\",          # Regex match (case-insensitive)\r\n        \"abandoned\"                # Simple tag\r\n    ]\r\n)\r\n```\r\n\r\n### Area Search\r\nSearch within:\r\n- Radius (in miles) from coordinates\r\n- Custom polygon area\r\n\r\n### Location Results\r\nEach location includes:\r\n- Name and type\r\n- Distance from search center\r\n- Elevation (meters)\r\n- Direct links to:\r\n  - OpenStreetMap\r\n  - Google Maps\r\n  - Bing Maps\r\n- All associated OSM tags\r\n\r\n### Location Groups\r\nNearby locations are automatically grouped with:\r\n- Intelligent group naming based on status, type, and location\r\n- Distance-based clustering\r\n- Group statistics\r\n\r\n### Error Handling\r\n- Automatic retries for API timeouts\r\n- Detailed logging for timeout events and recovery\r\n- Graceful fallback options\r\n\r\n## Features\r\n\r\n- Search by radius or polygon area\r\n- Elevation data for each location\r\n- Direct map links (OpenStreetMap, Google Maps, Bing Maps)\r\n- Automatic grouping of nearby locations\r\n- Intelligent group naming\r\n- List available search tags\r\n- Support for regex tag matching\r\n- Timeout handling and logging\r\n- Customizable search parameters\r\n\r\n## Contributing\r\n\r\nContributions welcome! Please feel free to submit a Pull Request.\r\n\r\n## License\r\n\r\nMIT\r\n\r\n## Configuration Files\r\n\r\n### tags.txt\r\nContains tags to search for by default. Each line should be either:\r\n- A simple tag (e.g., `abandoned`)\r\n- A key=value pair (e.g., `building=ruins`)\r\n- A name pattern (e.g., `name~Factory`)\r\n\r\nYou can view all configured tags using `searcher.list_tags()`.\r\n\r\n### excluded_tags.txt\r\nContains tags that will exclude locations from results. Same format as `tags.txt`.\r\nIf not found, default exclusions are used (e.g., `demolished=yes`, `highway=bus_stop`, etc.).\r\n\r\n## Features\r\n\r\n- List and inspect available search tags\r\n- Intelligent group naming based on common properties\r\n- Search by radius or polygon area\r\n- Support for both decimal and DMS coordinates\r\n- Automatic grouping of nearby locations (100m radius)\r\n- Distance calculations (direct and to nearest road)\r\n- Elevation data and reverse geocoding\r\n- Direct links to OpenStreetMap, Google Maps, and Bing Maps\r\n- Tag-based filtering and exclusions\r\n- Increased timeout values for slower connections\r\n\r\n## Quick Start\r\n\r\n```bash\r\npip install autobex\r\n```\r\n\r\n## Location Properties\r\n\r\n### Core Properties\r\n- `name` - Location name (from OSM or reverse geocoding)\r\n- `latitude`, `longitude` - Decimal coordinates\r\n- `distance` - Direct distance from search center (miles)\r\n- `road_distance` - Distance to nearest road (miles)\r\n- `elevation` - Height above sea level (meters)\r\n- `osm_url` - Direct link to OpenStreetMap node/way\r\n- `google_maps_url` - Google Maps link (max zoom)\r\n- `bing_maps_url` - Bing Maps link (aerial view)\r\n\r\n### OpenStreetMap Data\r\n- `osm_id` - OpenStreetMap ID\r\n- `type` - Element type (node or way)\r\n- `tags` - Dictionary of all OSM tags\r\n\r\n## Tag Configuration\r\n\r\n### Search Tags (tags.txt)\r\n```\r\n# Exact matches\r\nbuilding=ruins\r\nhistoric=ruins\r\n\r\n# Simple tags (match as key or value)\r\nabandoned\r\nruins\r\n\r\n# Name patterns\r\nname~Factory\r\n```\r\n\r\n### Excluded Tags (excluded_tags.txt)\r\n```\r\n# Filter out these locations\r\ndemolished=yes\r\nhighway=bus_stop\r\n\r\n# Exclude common noise\r\n```\r\n\r\n## Output Format\r\n```\r\nLocation: Example Location (OSM ID: 123456)\r\n----------------------------------------\r\nDirect distance: 1.23 miles\r\nDistance to nearest road: 0.15 miles\r\nElevation: 42.1 meters\r\n\r\nView on Maps:\r\nOpenStreetMap: https://www.openstreetmap.org/way/123456\r\nGoogle Maps: https://...\r\nBing Maps: https://...\r\n\r\nOpenStreetMap Tags:\r\nbuilding             = ruins\r\nhistoric            = yes\r\nname                = Old Mill\r\n```\r\n\r\n## Advanced Usage\r\n\r\n### Polygon Search\r\n```python\r\npolygon = [\r\n    (\"42\u00b025'12.3\\\"N\", \"70\u00b054'37.4\\\"W\"),\r\n    (42.42103, -70.90324),\r\n    (\"42\u00b025'05.0\\\"N\", \"70\u00b054'01.1\\\"W\"),\r\n    (42.41492, -70.90501)\r\n]\r\nresults = searcher.search(polygon_coords=polygon)\r\n```\r\n\r\n### Location Groups\r\nResults are automatically grouped by proximity (100m radius):\r\n```python\r\nfor group in results:\r\n    # Get group center\r\n    center_lat, center_lon = group.center()\r\n    \r\n    # Get maximum span in miles\r\n    span = group.distance_span()\r\n    \r\n    # Filter by tag\r\n    ruins = group.filter_by_tag('building', 'ruins')\r\n    \r\n    # Get average elevation\r\n    avg_height = group.average_elevation()\r\n```\r\n\r\n### Error Handling\r\n```python\r\nfrom autobex import OSMSearchError\r\n\r\ntry:\r\n    results = searcher.search(lat=42.3601, lon=-71.0589, radius=1.0)\r\nexcept OSMSearchError as e:\r\n    print(f\"Search failed: {e}\")\r\n```\r\n\r\n## Performance Tips\r\n\r\n1. Use appropriate search radius (smaller = faster)\r\n2. Use `limit` parameter when possible\r\n3. Keep tag files focused and minimal\r\n4. Use `excluded_tags.txt` to filter noise\r\n5. Enable `show_logs=True` to monitor progress\r\n\r\n## Dependencies\r\n\r\n- Python 3.7+\r\n- geopy\r\n- requests\r\n- numpy\r\n\r\n## License\r\n\r\nMIT License - see LICENSE file for details.\r\n\r\n## Acknowledgments\r\n\r\n- OpenStreetMap contributors\r\n- Open-Elevation API\r\n\r\n## Support\r\n\r\n- Report bugs through our [Issue Tracker](https://github.com/the-Drunken-coder/Autobex/issues)\r\n- Check out our [Documentation](https://github.com/the-Drunken-coder/Autobex#readme) for more examples\r\n\r\n## Coordinate Input Formats\r\n\r\nThe system automatically detects and handles multiple coordinate formats:\r\n\r\n```python\r\n# Decimal Degrees (as string or float)\r\nsearch.search(lat=\"41.2345\", lon=\"-71.2345\")\r\nsearch.search(lat=41.2345, lon=-71.2345)\r\n\r\n# Degrees, Minutes, Seconds (DMS)\r\nsearch.search(lat=\"41\u00b028'50.4\\\"N\", lon=\"71\u00b023'35.5\\\"W\")\r\n```\r\n\r\nThe coordinate parser automatically:\r\n- Detects the format (decimal or DMS)\r\n- Handles special quote characters (\u2032 \u2033)\r\n- Validates coordinate ranges (latitude: -90 to 90, longitude: -180 to 180)\r\n- Converts everything to decimal degrees internally\r\n\r\n### Tag Matching\r\n\r\nThe system uses two types of tag matching:\r\n\r\n1. Exact matches (with `=`):\r\n   ```\r\n   building=ruins    -> matches exactly building=ruins\r\n   ```\r\n\r\n2. Simple tags (without `=`):\r\n   ```\r\n   abandoned        -> matches:\r\n                      - abandoned=* (any value)\r\n                      - building=abandoned\r\n                      - historic=abandoned\r\n   ```\r\n\r\n3. Name patterns (with `~`):\r\n   ```\r\n   name~Factory    -> matches locations with \"Factory\" in their name\r\n   ```\r\n\r\nThe search is optimized to:\r\n- Use simple, reliable queries\r\n- Avoid complex regex patterns\r\n- Find locations quickly and efficiently\r\n- Handle both nodes (points) and ways (areas)\r\n\r\nYou can view all configured tags using:\r\n```python\r\n# List all available search tags\r\nfor tag in searcher.list_tags():\r\n    print(tag)\r\n```\r\n\r\nNote: All searchable tags are configured in the `tags.txt` file. Example contents:\r\n```\r\nbuilding=ruins\r\nabandoned\r\nruins\r\ndisused\r\nbunker_type\r\nbuilding=bunker\r\nname~Factory\r\n```\r\n\r\nYou can customize which tags to search for by editing this file.\r\n\r\n## Testing and Debugging\r\n\r\n### Test Query Tool\r\n\r\nThe package includes a test query tool (`test_query.py`) that helps visualize search results in a readable format:\r\n\r\n```python\r\npython test_query.py\r\n```\r\n\r\nSample output:\r\n```\r\nQuerying area...\r\n\r\nFound 1 location in 1 group\r\n\r\n========================================\r\nGroup 1 (1 locations)\r\n========================================\r\n\r\nLocation 1:\r\n----------------------------------------\r\nName: Northeastern University Marine Science Center\r\nType: way\r\nOSM ID: 123456789\r\nDistance: 0.04 miles\r\nElevation: 15.2m (49.9ft)\r\n\r\nMap Links:\r\n  Google Maps: https://www.google.com/maps?q=42.4185,-70.9056&z=21\r\n  Bing Maps: https://www.bing.com/maps?cp=42.4185~-70.9056&style=h&lvl=20\r\n\r\nTags:\r\n  \u2022 building = yes\r\n  \u2022 historic = ruins\r\n  \u2022 name = Northeastern University Marine Science Center\r\n  \u2022 abandoned = yes\r\n----------------------------------------\r\n```\r\n\r\nThe output includes:\r\n1. Location basics (name, type, OSM ID)\r\n2. Distance from search center (in miles)\r\n3. Elevation (in meters and feet)\r\n4. Direct links to Google Maps and Bing Maps (maximum zoom)\r\n5. All raw OSM tags associated with the location\r\n\r\nYou can modify the search coordinates in `test_query.py` to explore different areas.\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Autobex helps you find abandoned and interesting locations using OpenStreetMap data. Search by radius or polygon area to discover ruins, bunkers, and abandoned structures. Get elevation data, property ownership details, and direct links to Google Maps and Bing Maps. Designed for urban exploration and historical research, with automatic grouping of nearby locations.",
    "version": "0.1.161",
    "project_urls": {
        "Documentation": "https://github.com/the-Drunken-coder/Autobex#readme",
        "Homepage": "https://github.com/the-Drunken-coder/Autobex",
        "Issues": "https://github.com/the-Drunken-coder/Autobex/issues",
        "Repository": "https://github.com/the-Drunken-coder/Autobex.git"
    },
    "split_keywords": [
        "osm",
        " openstreetmap",
        " abandoned",
        " exploration",
        " geocoding"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2fb4c264fa16a46cfef0e3410f1925daffc0dbd09a0bb10b3b9539b61fe9c953",
                "md5": "c916d00178ffe1736b0fdd72b8389802",
                "sha256": "0fb60d90f3253d9fbe4f530e8459e238d6e441532dd870f1c85e95a1ffdac065"
            },
            "downloads": -1,
            "filename": "autobex-0.1.161-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "c916d00178ffe1736b0fdd72b8389802",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 16700,
            "upload_time": "2025-01-24T16:49:36",
            "upload_time_iso_8601": "2025-01-24T16:49:36.435191Z",
            "url": "https://files.pythonhosted.org/packages/2f/b4/c264fa16a46cfef0e3410f1925daffc0dbd09a0bb10b3b9539b61fe9c953/autobex-0.1.161-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "331afbe6db9ea3b73efecefadc45c92a8c25fe3ffffe768386e008c1a9c1188a",
                "md5": "8b1c914b5cc1fa51f76503f7a3478304",
                "sha256": "699f2eb4d7a6ea2181c79cad361127a19a9712c4d7d83362f7ae0f504c2b30cc"
            },
            "downloads": -1,
            "filename": "autobex-0.1.161.tar.gz",
            "has_sig": false,
            "md5_digest": "8b1c914b5cc1fa51f76503f7a3478304",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 20751,
            "upload_time": "2025-01-24T16:49:37",
            "upload_time_iso_8601": "2025-01-24T16:49:37.427401Z",
            "url": "https://files.pythonhosted.org/packages/33/1a/fbe6db9ea3b73efecefadc45c92a8c25fe3ffffe768386e008c1a9c1188a/autobex-0.1.161.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-01-24 16:49:37",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "the-Drunken-coder",
    "github_project": "Autobex#readme",
    "github_not_found": true,
    "lcname": "autobex"
}
        
Elapsed time: 1.32737s