Metadata-Version: 2.4
Name: pymaqit
Version: 0.0.1
Summary: Procedural street networks and street furniture for Blender (early development: a minimal OSM XML reader for now)
Project-URL: Repository, https://github.com/haptixxx-dev/maqit
Author: Seamus Mullan
License-Expression: Apache-2.0
License-File: LICENSE
Keywords: blender,openstreetmap,osm,procedural-generation,roads
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Multimedia :: Graphics :: 3D Modeling
Classifier: Topic :: Scientific/Engineering :: GIS
Requires-Python: >=3.9
Description-Content-Type: text/markdown

# maqit

> Generated by Claude Opus 5.5 by Anthropic, being used via Claude Code on 21/Oct/2026

Procedural street networks and street furniture for Blender. The name comes from _maquette_, a
small scale model.

**Early development.** Version 0.0.1 is only a small, dependency-free OpenStreetMap XML reader.
The planned C++ core and Blender extension are not here yet.

## Install

```sh
pip install pymaqit
```

The distribution is called `pymaqit`, and the import name is `maqit`.

## Use

```python
import maqit

s = maqit.summarise("map.osm")  # .osm, .osm.gz or .osm.bz2
print(s.nodes, s.ways, s.relations, s.highway_ways)

for h in maqit.highways("map.osm"):
    print(h.id, h.kind, h.tags.get("name"), len(h.coords))  # coords are (lon, lat)
```

```sh
maqit map.osm --highways
```

## Limitations

- XML only. `.osm.pbf` is not supported yet.
- `highways()` keeps every node's coordinates in memory, so use small extracts.
- It uses `xml.etree`, which is
  [not hardened against malicious XML](https://docs.python.org/3/library/xml.html#xml-vulnerabilities).
  Only read files you trust.

## Licence

[Apache License 2.0](LICENSE).
