# spartan-py Basic spartan protocol implementation as a python library. ```python import spartan res = spartan.get("spartan://mozz.us/echo", "hi") while True: buf = res.read() if not buf: break sys.stdout.buffer.write(buf) res.close() ``` Try it in the REPL: ```python >>> import spartan >>> req = spartan.Request("spartan.mozz.us") >>> req Request(host='spartan.mozz.us', port=300, path='/') data-length=0 >>> print(req) 'spartan.mozz.us / 0' >>> res = req.send() >>> res 2 text/gemini >>> res.read() [...] >>> res.close() ``` ## install ``` pip3 install spartan-py ``` ## API - `Request(host: str, port: int = 300, path: str = "/", data: str = "")` - `send() -> Response` - send the request - `__repr__()` - `__str__()` - `Response(socket)` - `read()` - `close()` - close the socket - `.status` - status code - `.meta` - meta string for the status - `.file` - socket file - `.request` - the Request object for this response - `__repr__()` - `__str__()` - `Status` - statuses - `success = 2` - `redirect = 3` - `client_error = 4` - `server_error = 5` - `get(url: str, data: str = "") -> Response` - if the query string part in the URL exists, data will be ignored. ## TODO - [ ] invalid url handling - [ ] util functions like parsing meta and getting status type - [ ] basic CLI usage - [ ] async methods