Plaster

python
#!/usr/bin/env python3 import ephem import sys import asyncio import os def altitude(latitude, longitude, time): place = ephem.Observer() place.lat=str(latitude) place.lon=str(longitude) place.date=time.strftime("%Y-%m-%d %H:%M:%S") return ephem.Sun(place).alt / math.pi * 180 socket = "/tmp/sun-angle.s" async def handle_client(reader, writer): request = None while request != 'quit': request = (await reader.readline()).decode('utf8') response = altitude(*[float(i) for i in request.split(",")], None) + '\n' writer.write(response.encode('utf8')) await writer.drain() writer.close() try: loop = asyncio.get_event_loop() loop.create_task(loop.create_unix_server(asyncio.StreamProtocol, socket)) loop.run_forever() except KeyboardInterrupt: print("Exiting", file=sys.stderr)

Annotations