Так он же Вам на чистейшем английском пишет Indentation Error!!! Вы зачем пробелы-то перед командами ставите?! Не нужно.
Ладно. Давайте все по порядку.
1. Одна из замечательных особенностей питоновского синтаксиса заключается в том, что блоки кода оформляются отступами. Т.е. вложенные блоки кода (например, в циклах или условиях) оформляются отступами (пробелами или табуляцией). Операторы первого уровня - один отступ вправо, следующий уровень - еще один отступ вправо и т.д. Вы поставили пробел перед командой, питон естественно считает, что эта команда находится во вложенном блоке, а блочных операторов типа for, if и т.п. перед этим не было. Понятно, что интерпретатор просто в ярости.
2. В питоне есть два основных способа выполнения команд: автоматический и "ручной". В первом случае Вы пишете
В этом случае питон выполняет команды, описанные в файл.py, автоматически в порядке их следования с учетом ветвлений в скрипте. Когда Вы пишете просто
без файла, то интерпретатор питона запускается в интерактивном режиме: он ждет ручного ввода команд и выполняет их по мере их ввода.
3. Программы бывают большие. Их удобно разбивать на, так называемые, модули. Модули - это просто куски программ (скриптов). Файл api.py - пример модуля. Если вы хотите использовать функционал какого-нибудь модуля в своей программе или при интерактивной работе - его нужно импортировать. Это можно сделать разными способами. Простейший:
но при обращение, например, к функции модуля перед именем функции придется ставить имя модуля с точкой, которое определяет, так называемое, пространство имен. Пример:
Есть другой вариант:
from api import cget, cset, temp
В этом случае мы импортируем только перечисленные имена (константы, функции и т.п.) и можем обращаться к ним просто по имени. Пример:
Это сокращает запись, но могут быть коллизии при импорте совпадающих имен из разных модулей. Если же мы хотим импортировать все имена из модуля, пишем
Пробел перед звездочкой можете ставить, а можете не ставить. Все равно.