ecospec.py