diff --git a/python/educational-core/course-creator/course-creator.iml b/python/educational-core/course-creator/course-creator.iml
index 2a8dc4ab4f19..fed8cc4ab07d 100644
--- a/python/educational-core/course-creator/course-creator.iml
+++ b/python/educational-core/course-creator/course-creator.iml
@@ -11,7 +11,7 @@
-
+
\ No newline at end of file
diff --git a/python/educational-core/course-creator/resources/META-INF/plugin.xml b/python/educational-core/course-creator/resources/META-INF/plugin.xml
index d4778320c08c..131d9f5b46d8 100644
--- a/python/educational-core/course-creator/resources/META-INF/plugin.xml
+++ b/python/educational-core/course-creator/resources/META-INF/plugin.xml
@@ -11,15 +11,8 @@
-
-
-
com.intellij.modules.platform
- com.jetbrains.edu.core
com.jetbrains.edu.interactivelearning
diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCEditorFactoryListener.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCEditorFactoryListener.java
index eeca8d615e03..0ecea377388c 100644
--- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCEditorFactoryListener.java
+++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCEditorFactoryListener.java
@@ -9,12 +9,12 @@ import com.intellij.openapi.editor.event.EditorFactoryListener;
import com.intellij.openapi.fileEditor.FileDocumentManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
-import com.jetbrains.edu.EduAnswerPlaceholderDeleteHandler;
-import com.jetbrains.edu.EduAnswerPlaceholderPainter;
-import com.jetbrains.edu.EduDocumentListener;
-import com.jetbrains.edu.EduNames;
-import com.jetbrains.edu.courseFormat.Course;
-import com.jetbrains.edu.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.core.EduAnswerPlaceholderDeleteHandler;
+import com.jetbrains.edu.learning.core.EduAnswerPlaceholderPainter;
+import com.jetbrains.edu.learning.core.EduDocumentListener;
+import com.jetbrains.edu.learning.core.EduNames;
+import com.jetbrains.edu.learning.courseFormat.Course;
+import com.jetbrains.edu.learning.courseFormat.TaskFile;
import org.jetbrains.annotations.NotNull;
public class CCEditorFactoryListener implements EditorFactoryListener {
diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCFileDeletedListener.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCFileDeletedListener.java
index 36f8da820c2e..1d840f0c5943 100644
--- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCFileDeletedListener.java
+++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCFileDeletedListener.java
@@ -5,8 +5,8 @@ import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.VirtualFileAdapter;
import com.intellij.openapi.vfs.VirtualFileEvent;
import com.intellij.util.Function;
-import com.jetbrains.edu.EduNames;
-import com.jetbrains.edu.courseFormat.*;
+import com.jetbrains.edu.learning.core.EduNames;
+import com.jetbrains.edu.learning.courseFormat.*;
import org.jetbrains.annotations.NotNull;
class CCFileDeletedListener extends VirtualFileAdapter {
diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCLessonMoveHandlerDelegate.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCLessonMoveHandlerDelegate.java
index 02ac5f12a7e0..2a1cf8ca7733 100644
--- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCLessonMoveHandlerDelegate.java
+++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCLessonMoveHandlerDelegate.java
@@ -18,11 +18,11 @@ import com.intellij.psi.PsiReference;
import com.intellij.refactoring.move.MoveCallback;
import com.intellij.refactoring.move.MoveHandlerDelegate;
import com.intellij.util.Function;
-import com.jetbrains.edu.EduNames;
-import com.jetbrains.edu.EduUtils;
-import com.jetbrains.edu.courseFormat.Course;
-import com.jetbrains.edu.courseFormat.Lesson;
-import com.jetbrains.edu.courseFormat.StudyItem;
+import com.jetbrains.edu.learning.core.EduNames;
+import com.jetbrains.edu.learning.core.EduUtils;
+import com.jetbrains.edu.learning.courseFormat.Course;
+import com.jetbrains.edu.learning.courseFormat.Lesson;
+import com.jetbrains.edu.learning.courseFormat.StudyItem;
import com.jetbrains.edu.coursecreator.ui.CCMoveStudyItemDialog;
import org.jetbrains.annotations.Nullable;
diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCLessonRenameHandler.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCLessonRenameHandler.java
index 52affce86ad5..9b29cbafec2e 100644
--- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCLessonRenameHandler.java
+++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCLessonRenameHandler.java
@@ -3,9 +3,9 @@ package com.jetbrains.edu.coursecreator;
import com.intellij.ide.TitledHandler;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiDirectory;
-import com.jetbrains.edu.EduNames;
-import com.jetbrains.edu.courseFormat.Course;
-import com.jetbrains.edu.courseFormat.Lesson;
+import com.jetbrains.edu.learning.core.EduNames;
+import com.jetbrains.edu.learning.courseFormat.Course;
+import com.jetbrains.edu.learning.courseFormat.Lesson;
import org.jetbrains.annotations.NotNull;
public class CCLessonRenameHandler extends CCRenameHandler implements TitledHandler {
diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCProjectComponent.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCProjectComponent.java
index 7064cfe0adb1..e5871848ecf1 100644
--- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCProjectComponent.java
+++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCProjectComponent.java
@@ -13,7 +13,7 @@ import com.intellij.openapi.project.ProjectManager;
import com.intellij.openapi.startup.StartupManager;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.VirtualFileManager;
-import com.jetbrains.edu.courseFormat.Course;
+import com.jetbrains.edu.learning.courseFormat.Course;
import org.jetbrains.annotations.NotNull;
public class CCProjectComponent implements ProjectComponent {
diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCProjectService.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCProjectService.java
index 6b470682629e..ba9886692671 100644
--- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCProjectService.java
+++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCProjectService.java
@@ -26,11 +26,11 @@ import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.ui.JBColor;
import com.intellij.util.xmlb.XmlSerializerUtil;
-import com.jetbrains.edu.EduAnswerPlaceholderPainter;
-import com.jetbrains.edu.EduDocumentListener;
-import com.jetbrains.edu.EduNames;
-import com.jetbrains.edu.EduUtils;
-import com.jetbrains.edu.courseFormat.*;
+import com.jetbrains.edu.learning.core.EduAnswerPlaceholderPainter;
+import com.jetbrains.edu.learning.core.EduDocumentListener;
+import com.jetbrains.edu.learning.core.EduNames;
+import com.jetbrains.edu.learning.core.EduUtils;
+import com.jetbrains.edu.learning.courseFormat.*;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCRefactoringElementListenerProvider.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCRefactoringElementListenerProvider.java
index 64b3d1ea390d..ed9b404e04a5 100644
--- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCRefactoringElementListenerProvider.java
+++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCRefactoringElementListenerProvider.java
@@ -22,11 +22,11 @@ import com.intellij.psi.PsiFile;
import com.intellij.refactoring.listeners.RefactoringElementAdapter;
import com.intellij.refactoring.listeners.RefactoringElementListener;
import com.intellij.refactoring.listeners.RefactoringElementListenerProvider;
-import com.jetbrains.edu.EduNames;
-import com.jetbrains.edu.courseFormat.Course;
-import com.jetbrains.edu.courseFormat.Lesson;
-import com.jetbrains.edu.courseFormat.Task;
-import com.jetbrains.edu.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.core.EduNames;
+import com.jetbrains.edu.learning.courseFormat.Course;
+import com.jetbrains.edu.learning.courseFormat.Lesson;
+import com.jetbrains.edu.learning.courseFormat.Task;
+import com.jetbrains.edu.learning.courseFormat.TaskFile;
import com.jetbrains.edu.coursecreator.actions.CCRunTestsAction;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCRenameHandler.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCRenameHandler.java
index 99194c20744d..27bd42ca2484 100644
--- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCRenameHandler.java
+++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCRenameHandler.java
@@ -12,8 +12,8 @@ import com.intellij.psi.PsiDirectory;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.refactoring.rename.RenameHandler;
-import com.jetbrains.edu.courseFormat.Course;
-import com.jetbrains.edu.courseFormat.StudyItem;
+import com.jetbrains.edu.learning.courseFormat.Course;
+import com.jetbrains.edu.learning.courseFormat.StudyItem;
import org.jetbrains.annotations.NotNull;
public abstract class CCRenameHandler implements RenameHandler {
diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCTaskMoveHandlerDelegate.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCTaskMoveHandlerDelegate.java
index 818b71c36ec5..37cd620bc2e6 100644
--- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCTaskMoveHandlerDelegate.java
+++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCTaskMoveHandlerDelegate.java
@@ -18,12 +18,12 @@ import com.intellij.psi.PsiReference;
import com.intellij.refactoring.move.MoveCallback;
import com.intellij.refactoring.move.MoveHandlerDelegate;
import com.intellij.util.Function;
-import com.jetbrains.edu.EduNames;
-import com.jetbrains.edu.EduUtils;
-import com.jetbrains.edu.courseFormat.Course;
-import com.jetbrains.edu.courseFormat.Lesson;
-import com.jetbrains.edu.courseFormat.StudyItem;
-import com.jetbrains.edu.courseFormat.Task;
+import com.jetbrains.edu.learning.core.EduNames;
+import com.jetbrains.edu.learning.core.EduUtils;
+import com.jetbrains.edu.learning.courseFormat.Course;
+import com.jetbrains.edu.learning.courseFormat.Lesson;
+import com.jetbrains.edu.learning.courseFormat.StudyItem;
+import com.jetbrains.edu.learning.courseFormat.Task;
import com.jetbrains.edu.coursecreator.ui.CCMoveStudyItemDialog;
import org.jetbrains.annotations.Nullable;
diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCTaskRenameHandler.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCTaskRenameHandler.java
index 23ebfbaf5c82..0f30a1d689f5 100644
--- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCTaskRenameHandler.java
+++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCTaskRenameHandler.java
@@ -3,10 +3,10 @@ package com.jetbrains.edu.coursecreator;
import com.intellij.ide.TitledHandler;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiDirectory;
-import com.jetbrains.edu.EduNames;
-import com.jetbrains.edu.courseFormat.Course;
-import com.jetbrains.edu.courseFormat.Lesson;
-import com.jetbrains.edu.courseFormat.Task;
+import com.jetbrains.edu.learning.core.EduNames;
+import com.jetbrains.edu.learning.courseFormat.Course;
+import com.jetbrains.edu.learning.courseFormat.Lesson;
+import com.jetbrains.edu.learning.courseFormat.Task;
import org.jetbrains.annotations.NotNull;
public class CCTaskRenameHandler extends CCRenameHandler implements TitledHandler {
diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCUtils.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCUtils.java
index e39293422605..65131d0b36ae 100644
--- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCUtils.java
+++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCUtils.java
@@ -18,9 +18,9 @@ import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.VirtualFileEvent;
import com.intellij.psi.PsiDirectory;
import com.intellij.util.Function;
-import com.jetbrains.edu.EduUtils;
-import com.jetbrains.edu.courseFormat.Course;
-import com.jetbrains.edu.courseFormat.StudyItem;
+import com.jetbrains.edu.learning.core.EduUtils;
+import com.jetbrains.edu.learning.courseFormat.Course;
+import com.jetbrains.edu.learning.courseFormat.StudyItem;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCAddAnswerPlaceholder.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCAddAnswerPlaceholder.java
index fb2cc00f9632..791d7fb0efae 100644
--- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCAddAnswerPlaceholder.java
+++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCAddAnswerPlaceholder.java
@@ -14,10 +14,10 @@ import com.intellij.psi.PsiDirectory;
import com.intellij.psi.PsiDocumentManager;
import com.intellij.psi.PsiFile;
import com.intellij.ui.JBColor;
-import com.jetbrains.edu.EduAnswerPlaceholderPainter;
-import com.jetbrains.edu.courseFormat.*;
+import com.jetbrains.edu.learning.core.EduAnswerPlaceholderPainter;
import com.jetbrains.edu.coursecreator.CCProjectService;
import com.jetbrains.edu.coursecreator.ui.CCCreateAnswerPlaceholderDialog;
+import com.jetbrains.edu.learning.courseFormat.*;
import org.jetbrains.annotations.NotNull;
import java.util.List;
diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCAddAsTaskFile.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCAddAsTaskFile.java
index 28a131367d15..867cc77440b6 100644
--- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCAddAsTaskFile.java
+++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCAddAsTaskFile.java
@@ -7,7 +7,7 @@ import com.intellij.openapi.actionSystem.CommonDataKeys;
import com.intellij.openapi.actionSystem.Presentation;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
-import com.jetbrains.edu.courseFormat.Task;
+import com.jetbrains.edu.learning.courseFormat.Task;
import com.jetbrains.edu.coursecreator.CCProjectService;
public class CCAddAsTaskFile extends AnAction {
diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCAnswerPlaceholderAction.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCAnswerPlaceholderAction.java
index 9c19f2305bb7..48425e247100 100644
--- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCAnswerPlaceholderAction.java
+++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCAnswerPlaceholderAction.java
@@ -8,8 +8,8 @@ import com.intellij.openapi.project.DumbAwareAction;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiFile;
-import com.jetbrains.edu.courseFormat.AnswerPlaceholder;
-import com.jetbrains.edu.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.courseFormat.AnswerPlaceholder;
+import com.jetbrains.edu.learning.courseFormat.TaskFile;
import com.jetbrains.edu.coursecreator.CCProjectService;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCChangeCourseInfo.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCChangeCourseInfo.java
index c661b98b2552..28706dae9a72 100644
--- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCChangeCourseInfo.java
+++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCChangeCourseInfo.java
@@ -11,7 +11,7 @@ import com.intellij.openapi.project.DumbAwareAction;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.psi.PsiDirectory;
-import com.jetbrains.edu.courseFormat.Course;
+import com.jetbrains.edu.learning.courseFormat.Course;
import com.jetbrains.edu.coursecreator.CCProjectService;
import com.jetbrains.edu.coursecreator.ui.CCNewProjectPanel;
import org.jetbrains.annotations.NotNull;
diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCCreateCourseArchive.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCCreateCourseArchive.java
index 720a5814584f..486f3b247c5d 100644
--- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCCreateCourseArchive.java
+++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCCreateCourseArchive.java
@@ -20,12 +20,12 @@ import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.VirtualFileManager;
import com.intellij.util.containers.HashMap;
import com.intellij.util.io.ZipUtil;
-import com.jetbrains.edu.EduNames;
-import com.jetbrains.edu.EduUtils;
-import com.jetbrains.edu.courseFormat.Course;
-import com.jetbrains.edu.courseFormat.Lesson;
-import com.jetbrains.edu.courseFormat.Task;
-import com.jetbrains.edu.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.core.EduNames;
+import com.jetbrains.edu.learning.core.EduUtils;
+import com.jetbrains.edu.learning.courseFormat.Course;
+import com.jetbrains.edu.learning.courseFormat.Lesson;
+import com.jetbrains.edu.learning.courseFormat.Task;
+import com.jetbrains.edu.learning.courseFormat.TaskFile;
import com.jetbrains.edu.coursecreator.CCLanguageManager;
import com.jetbrains.edu.coursecreator.CCProjectService;
import com.jetbrains.edu.coursecreator.CCUtils;
diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCCreateLesson.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCCreateLesson.java
index 958a49c6acc8..2353e43c12b1 100644
--- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCCreateLesson.java
+++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCCreateLesson.java
@@ -8,11 +8,11 @@ import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiDirectory;
import com.intellij.psi.PsiManager;
import com.intellij.util.Function;
-import com.jetbrains.edu.EduNames;
-import com.jetbrains.edu.courseFormat.Course;
-import com.jetbrains.edu.courseFormat.Lesson;
-import com.jetbrains.edu.courseFormat.StudyItem;
-import icons.EducationalIcons;
+import com.jetbrains.edu.learning.core.EduNames;
+import com.jetbrains.edu.learning.courseFormat.Course;
+import com.jetbrains.edu.learning.courseFormat.Lesson;
+import com.jetbrains.edu.learning.courseFormat.StudyItem;
+import icons.InteractiveLearningIcons;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -22,7 +22,7 @@ public class CCCreateLesson extends CCCreateStudyItemActionBase {
public static final String TITLE = "Create New " + EduNames.LESSON_TITLED;
public CCCreateLesson() {
- super(EduNames.LESSON_TITLED, TITLE, EducationalIcons.Lesson);
+ super(EduNames.LESSON_TITLED, TITLE, InteractiveLearningIcons.Lesson);
}
@Nullable
diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCCreateStudyItemActionBase.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCCreateStudyItemActionBase.java
index 185fe106ef1f..520ce0961a6a 100644
--- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCCreateStudyItemActionBase.java
+++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCCreateStudyItemActionBase.java
@@ -14,9 +14,9 @@ import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiDirectory;
import com.intellij.util.Function;
-import com.jetbrains.edu.EduUtils;
-import com.jetbrains.edu.courseFormat.Course;
-import com.jetbrains.edu.courseFormat.StudyItem;
+import com.jetbrains.edu.learning.core.EduUtils;
+import com.jetbrains.edu.learning.courseFormat.Course;
+import com.jetbrains.edu.learning.courseFormat.StudyItem;
import com.jetbrains.edu.coursecreator.CCProjectService;
import com.jetbrains.edu.coursecreator.CCUtils;
import com.jetbrains.edu.coursecreator.ui.CCCreateStudyItemDialog;
diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCCreateTask.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCCreateTask.java
index 313419b4032a..316b06d77c04 100644
--- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCCreateTask.java
+++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCCreateTask.java
@@ -14,15 +14,15 @@ import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiDirectory;
import com.intellij.psi.PsiElement;
import com.intellij.util.Function;
-import com.jetbrains.edu.EduNames;
-import com.jetbrains.edu.EduUtils;
-import com.jetbrains.edu.courseFormat.Course;
-import com.jetbrains.edu.courseFormat.Lesson;
-import com.jetbrains.edu.courseFormat.StudyItem;
-import com.jetbrains.edu.courseFormat.Task;
+import com.jetbrains.edu.learning.core.EduNames;
+import com.jetbrains.edu.learning.core.EduUtils;
+import com.jetbrains.edu.learning.courseFormat.Course;
+import com.jetbrains.edu.learning.courseFormat.Lesson;
+import com.jetbrains.edu.learning.courseFormat.StudyItem;
+import com.jetbrains.edu.learning.courseFormat.Task;
import com.jetbrains.edu.coursecreator.CCLanguageManager;
import com.jetbrains.edu.coursecreator.CCUtils;
-import icons.EducationalIcons;
+import icons.InteractiveLearningIcons;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -34,7 +34,7 @@ public class CCCreateTask extends CCCreateStudyItemActionBase {
public static final String TITLE = "Create New " + EduNames.TASK_TITLED;
public CCCreateTask() {
- super(EduNames.TASK_TITLED, TITLE, EducationalIcons.Task);
+ super(EduNames.TASK_TITLED, TITLE, InteractiveLearningIcons.Task);
}
diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCCreateTaskFile.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCCreateTaskFile.java
index 1a04f0f65fc3..eb5598625cce 100644
--- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCCreateTaskFile.java
+++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCCreateTaskFile.java
@@ -19,10 +19,10 @@ import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiDirectory;
import com.intellij.psi.PsiElement;
-import com.jetbrains.edu.EduNames;
-import com.jetbrains.edu.courseFormat.Course;
-import com.jetbrains.edu.courseFormat.Lesson;
-import com.jetbrains.edu.courseFormat.Task;
+import com.jetbrains.edu.learning.core.EduNames;
+import com.jetbrains.edu.learning.courseFormat.Course;
+import com.jetbrains.edu.learning.courseFormat.Lesson;
+import com.jetbrains.edu.learning.courseFormat.Task;
import com.jetbrains.edu.coursecreator.CCLanguageManager;
import com.jetbrains.edu.coursecreator.CCProjectService;
import com.jetbrains.edu.coursecreator.CCUtils;
diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCDeleteAllAnswerPlaceholdersAction.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCDeleteAllAnswerPlaceholdersAction.java
index 68ef87702a41..55915d05bae4 100644
--- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCDeleteAllAnswerPlaceholdersAction.java
+++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCDeleteAllAnswerPlaceholdersAction.java
@@ -14,9 +14,9 @@ import com.intellij.openapi.fileEditor.TextEditor;
import com.intellij.openapi.project.DumbAwareAction;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
-import com.jetbrains.edu.EduUtils;
-import com.jetbrains.edu.courseFormat.AnswerPlaceholder;
-import com.jetbrains.edu.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.core.EduUtils;
+import com.jetbrains.edu.learning.courseFormat.AnswerPlaceholder;
+import com.jetbrains.edu.learning.courseFormat.TaskFile;
import com.jetbrains.edu.coursecreator.CCProjectService;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCDeleteAnswerPlaceholder.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCDeleteAnswerPlaceholder.java
index 21dc1385c1a0..e385589b32bd 100644
--- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCDeleteAnswerPlaceholder.java
+++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCDeleteAnswerPlaceholder.java
@@ -5,9 +5,9 @@ import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiDocumentManager;
import com.intellij.psi.PsiFile;
-import com.jetbrains.edu.EduAnswerPlaceholderPainter;
-import com.jetbrains.edu.courseFormat.AnswerPlaceholder;
-import com.jetbrains.edu.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.core.EduAnswerPlaceholderPainter;
+import com.jetbrains.edu.learning.courseFormat.AnswerPlaceholder;
+import com.jetbrains.edu.learning.courseFormat.TaskFile;
import com.jetbrains.edu.coursecreator.CCProjectService;
import org.jetbrains.annotations.NotNull;
diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCFromCourseArchive.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCFromCourseArchive.java
index 96bd6911ea79..a7c6a91dc52e 100644
--- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCFromCourseArchive.java
+++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCFromCourseArchive.java
@@ -22,12 +22,12 @@ import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.VirtualFileManager;
import com.intellij.platform.templates.github.ZipUtil;
-import com.jetbrains.edu.EduDocumentListener;
-import com.jetbrains.edu.EduNames;
-import com.jetbrains.edu.EduUtils;
-import com.jetbrains.edu.courseFormat.*;
+import com.jetbrains.edu.learning.core.EduDocumentListener;
+import com.jetbrains.edu.learning.core.EduNames;
+import com.jetbrains.edu.learning.core.EduUtils;
import com.jetbrains.edu.coursecreator.CCProjectService;
-import com.jetbrains.edu.oldCourseFormat.OldCourse;
+import com.jetbrains.edu.learning.courseFormat.*;
+import com.jetbrains.edu.learning.oldCourseFormat.OldCourse;
import org.jetbrains.annotations.NotNull;
import java.io.*;
diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCPushCourse.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCPushCourse.java
index 78e8c059659b..78410c9ad3a1 100644
--- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCPushCourse.java
+++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCPushCourse.java
@@ -6,9 +6,9 @@ import com.intellij.openapi.actionSystem.CommonDataKeys;
import com.intellij.openapi.actionSystem.LangDataKeys;
import com.intellij.openapi.project.DumbAwareAction;
import com.intellij.openapi.project.Project;
-import com.jetbrains.edu.courseFormat.Course;
+import com.jetbrains.edu.learning.courseFormat.Course;
import com.jetbrains.edu.coursecreator.CCProjectService;
-import com.jetbrains.edu.stepic.EduStepicConnector;
+import com.jetbrains.edu.learning.stepic.EduStepicConnector;
import org.jetbrains.annotations.NotNull;
public class CCPushCourse extends DumbAwareAction {
diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCPushLesson.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCPushLesson.java
index c5f64883ecc4..068b82bf0b1a 100644
--- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCPushLesson.java
+++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCPushLesson.java
@@ -11,10 +11,10 @@ import com.intellij.openapi.progress.Task;
import com.intellij.openapi.project.DumbAwareAction;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiDirectory;
-import com.jetbrains.edu.courseFormat.Course;
-import com.jetbrains.edu.courseFormat.Lesson;
+import com.jetbrains.edu.learning.courseFormat.Course;
+import com.jetbrains.edu.learning.courseFormat.Lesson;
import com.jetbrains.edu.coursecreator.CCProjectService;
-import com.jetbrains.edu.stepic.EduStepicConnector;
+import com.jetbrains.edu.learning.stepic.EduStepicConnector;
import org.jetbrains.annotations.NotNull;
public class CCPushLesson extends DumbAwareAction {
diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCRunTestsAction.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCRunTestsAction.java
index cb69bf344d45..f6982733db5b 100644
--- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCRunTestsAction.java
+++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCRunTestsAction.java
@@ -30,12 +30,12 @@ import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
-import com.jetbrains.edu.EduNames;
-import com.jetbrains.edu.EduUtils;
-import com.jetbrains.edu.courseFormat.Course;
-import com.jetbrains.edu.courseFormat.Lesson;
-import com.jetbrains.edu.courseFormat.Task;
-import com.jetbrains.edu.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.core.EduNames;
+import com.jetbrains.edu.learning.core.EduUtils;
+import com.jetbrains.edu.learning.courseFormat.Course;
+import com.jetbrains.edu.learning.courseFormat.Lesson;
+import com.jetbrains.edu.learning.courseFormat.Task;
+import com.jetbrains.edu.learning.courseFormat.TaskFile;
import com.jetbrains.edu.coursecreator.CCLanguageManager;
import com.jetbrains.edu.coursecreator.CCProjectService;
import com.jetbrains.edu.coursecreator.CCUtils;
diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCShowAnswerPlaceholderDetails.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCShowAnswerPlaceholderDetails.java
index fa2b93b8902f..7068c5e1c572 100644
--- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCShowAnswerPlaceholderDetails.java
+++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCShowAnswerPlaceholderDetails.java
@@ -3,7 +3,7 @@ package com.jetbrains.edu.coursecreator.actions;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiDirectory;
import com.intellij.psi.PsiFile;
-import com.jetbrains.edu.courseFormat.AnswerPlaceholder;
+import com.jetbrains.edu.learning.courseFormat.AnswerPlaceholder;
import com.jetbrains.edu.coursecreator.ui.CCCreateAnswerPlaceholderDialog;
import org.jetbrains.annotations.NotNull;
diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCShowPreview.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCShowPreview.java
index 040ae838d62e..f0662db25052 100644
--- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCShowPreview.java
+++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCShowPreview.java
@@ -37,11 +37,11 @@ import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiDirectory;
import com.intellij.psi.PsiFile;
import com.intellij.ui.JBColor;
-import com.jetbrains.edu.EduAnswerPlaceholderPainter;
-import com.jetbrains.edu.EduUtils;
-import com.jetbrains.edu.courseFormat.AnswerPlaceholder;
-import com.jetbrains.edu.courseFormat.Course;
-import com.jetbrains.edu.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.core.EduAnswerPlaceholderPainter;
+import com.jetbrains.edu.learning.core.EduUtils;
+import com.jetbrains.edu.learning.courseFormat.AnswerPlaceholder;
+import com.jetbrains.edu.learning.courseFormat.Course;
+import com.jetbrains.edu.learning.courseFormat.TaskFile;
import com.jetbrains.edu.coursecreator.CCProjectService;
import com.jetbrains.edu.coursecreator.CCUtils;
import org.jetbrains.annotations.NotNull;
diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/projectView/CCDirectoryNode.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/projectView/CCDirectoryNode.java
index 6cf8acce54e6..551d344e3772 100644
--- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/projectView/CCDirectoryNode.java
+++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/projectView/CCDirectoryNode.java
@@ -6,13 +6,13 @@ import com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiDirectory;
import com.intellij.ui.SimpleTextAttributes;
-import com.jetbrains.edu.EduNames;
-import com.jetbrains.edu.EduUtils;
-import com.jetbrains.edu.courseFormat.Course;
-import com.jetbrains.edu.courseFormat.Lesson;
-import com.jetbrains.edu.courseFormat.Task;
+import com.jetbrains.edu.learning.core.EduNames;
+import com.jetbrains.edu.learning.core.EduUtils;
+import com.jetbrains.edu.learning.courseFormat.Course;
+import com.jetbrains.edu.learning.courseFormat.Lesson;
+import com.jetbrains.edu.learning.courseFormat.Task;
import com.jetbrains.edu.coursecreator.CCProjectService;
-import icons.EducationalIcons;
+import icons.InteractiveLearningIcons;
import org.jetbrains.annotations.NotNull;
public class CCDirectoryNode extends PsiDirectoryNode {
@@ -35,7 +35,7 @@ public class CCDirectoryNode extends PsiDirectoryNode {
if (course == null) return;
if (myProject.getBaseDir().equals(myValue.getVirtualFile())) {
data.clearText();
- data.setIcon(EducationalIcons.Course);
+ data.setIcon(InteractiveLearningIcons.Course);
data.addText(course.getName(), SimpleTextAttributes.REGULAR_ATTRIBUTES);
data.addText(" (" + valueName + ")", SimpleTextAttributes.GRAYED_ATTRIBUTES);
return;
@@ -43,7 +43,7 @@ public class CCDirectoryNode extends PsiDirectoryNode {
final Lesson lesson = course.getLesson(valueName);
if (lesson != null) {
data.clearText();
- data.setIcon(EducationalIcons.Lesson);
+ data.setIcon(InteractiveLearningIcons.Lesson);
data.addText(lesson.getName(), SimpleTextAttributes.REGULAR_ATTRIBUTES);
return;
}
@@ -55,7 +55,7 @@ public class CCDirectoryNode extends PsiDirectoryNode {
final Task task = parentLesson.getTask(valueName);
if (task != null) {
data.clearText();
- data.setIcon(EducationalIcons.Task);
+ data.setIcon(InteractiveLearningIcons.Task);
data.addText(task.getName(), SimpleTextAttributes.REGULAR_ATTRIBUTES);
return;
}
diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/projectView/CCTreeStructureProvider.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/projectView/CCTreeStructureProvider.java
index 3a1c7facaf37..d4f39fbefd2f 100644
--- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/projectView/CCTreeStructureProvider.java
+++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/projectView/CCTreeStructureProvider.java
@@ -8,7 +8,7 @@ import com.intellij.openapi.project.DumbAware;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiDirectory;
-import com.jetbrains.edu.EduNames;
+import com.jetbrains.edu.learning.core.EduNames;
import com.jetbrains.edu.coursecreator.CCProjectService;
import com.jetbrains.edu.coursecreator.CCUtils;
import org.jetbrains.annotations.NotNull;
diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/ui/CCCreateAnswerPlaceholderDialog.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/ui/CCCreateAnswerPlaceholderDialog.java
index d45574b2f664..5f984acf1d95 100644
--- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/ui/CCCreateAnswerPlaceholderDialog.java
+++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/ui/CCCreateAnswerPlaceholderDialog.java
@@ -4,7 +4,7 @@ import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.openapi.ui.ValidationInfo;
import com.intellij.openapi.util.text.StringUtil;
-import com.jetbrains.edu.courseFormat.AnswerPlaceholder;
+import com.jetbrains.edu.learning.courseFormat.AnswerPlaceholder;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/ui/CreateCourseArchiveDialog.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/ui/CreateCourseArchiveDialog.java
index 0707be045e75..d1bc4fca3469 100644
--- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/ui/CreateCourseArchiveDialog.java
+++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/ui/CreateCourseArchiveDialog.java
@@ -2,7 +2,7 @@ package com.jetbrains.edu.coursecreator.ui;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.DialogWrapper;
-import com.jetbrains.edu.courseFormat.Course;
+import com.jetbrains.edu.learning.courseFormat.Course;
import com.jetbrains.edu.coursecreator.CCProjectService;
import com.jetbrains.edu.coursecreator.actions.CCCreateCourseArchive;
import org.jetbrains.annotations.NotNull;
diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/ui/CreateCourseArchivePanel.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/ui/CreateCourseArchivePanel.java
index 3f22f5950dd5..c84a5cdf2b26 100644
--- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/ui/CreateCourseArchivePanel.java
+++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/ui/CreateCourseArchivePanel.java
@@ -6,7 +6,7 @@ import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
import com.intellij.openapi.util.io.FileUtil;
-import com.jetbrains.edu.EduNames;
+import com.jetbrains.edu.learning.core.EduNames;
import org.jetbrains.annotations.NotNull;
import javax.swing.*;
diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/ui/CreateTaskFileDialog.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/ui/CreateTaskFileDialog.java
index 1e3aa78a9cc9..5c8009296cd8 100644
--- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/ui/CreateTaskFileDialog.java
+++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/ui/CreateTaskFileDialog.java
@@ -8,7 +8,7 @@ import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.ui.DoubleClickListener;
import com.intellij.ui.ScrollingUtil;
import com.intellij.ui.components.JBList;
-import com.jetbrains.edu.courseFormat.Course;
+import com.jetbrains.edu.learning.courseFormat.Course;
import com.jetbrains.edu.coursecreator.CCLanguageManager;
import com.jetbrains.edu.coursecreator.CCUtils;
import org.jetbrains.annotations.NotNull;
diff --git a/python/educational-core/educational-core.iml b/python/educational-core/educational-core.iml
index 26234628d69d..8433b9de516e 100644
--- a/python/educational-core/educational-core.iml
+++ b/python/educational-core/educational-core.iml
@@ -8,11 +8,5 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/python/educational-core/resources/META-INF/plugin.xml b/python/educational-core/resources/META-INF/plugin.xml
deleted file mode 100644
index eaeac58ae82f..000000000000
--- a/python/educational-core/resources/META-INF/plugin.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-
- com.jetbrains.edu.core
- Educational utils and Stepic connector plugin
- 2.0.3
-
-
- JetBrains
-
-
-
-
-
-
- com.intellij.modules.lang
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/python/educational-core/src/icons/EducationalIcons.java b/python/educational-core/src/icons/EducationalIcons.java
deleted file mode 100644
index 0bdbc2bb1cd1..000000000000
--- a/python/educational-core/src/icons/EducationalIcons.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package icons;
-
-import com.intellij.openapi.util.IconLoader;
-
-import javax.swing.*;
-
-/**
- * NOTE THIS FILE IS AUTO-GENERATED
- * DO NOT EDIT IT BY HAND, run build/scripts/icons.gant instead
- */
-public class EducationalIcons {
- private static Icon load(String path) {
- return IconLoader.getIcon(path, EducationalIcons.class);
- }
-
- public static final Icon Course = load("/icons/com/jetbrains/edu/learning/Course.png"); // 16x16
- public static final Icon Lesson = load("/icons/com/jetbrains/edu/learning/Lesson.png"); // 16x16
- public static final Icon Task = load("/icons/com/jetbrains/edu/learning/Task.png"); // 16x16
-}
diff --git a/python/educational-core/student/resources/META-INF/plugin.xml b/python/educational-core/student/resources/META-INF/plugin.xml
index a5b1080c1508..f29b7e7a1c1a 100644
--- a/python/educational-core/student/resources/META-INF/plugin.xml
+++ b/python/educational-core/student/resources/META-INF/plugin.xml
@@ -20,7 +20,6 @@
on how to target different products -->
com.intellij.modules.lang
- com.jetbrains.edu.core
@@ -79,8 +78,8 @@
-
+
diff --git a/python/educational-core/resources/icons/com/jetbrains/edu/learning/Course.png b/python/educational-core/student/resources/icons/com/jetbrains/edu/learning/Course.png
similarity index 100%
rename from python/educational-core/resources/icons/com/jetbrains/edu/learning/Course.png
rename to python/educational-core/student/resources/icons/com/jetbrains/edu/learning/Course.png
diff --git a/python/educational-core/resources/icons/com/jetbrains/edu/learning/Course@2x.png b/python/educational-core/student/resources/icons/com/jetbrains/edu/learning/Course@2x.png
similarity index 100%
rename from python/educational-core/resources/icons/com/jetbrains/edu/learning/Course@2x.png
rename to python/educational-core/student/resources/icons/com/jetbrains/edu/learning/Course@2x.png
diff --git a/python/educational-core/resources/icons/com/jetbrains/edu/learning/Course@2x_dark.png b/python/educational-core/student/resources/icons/com/jetbrains/edu/learning/Course@2x_dark.png
similarity index 100%
rename from python/educational-core/resources/icons/com/jetbrains/edu/learning/Course@2x_dark.png
rename to python/educational-core/student/resources/icons/com/jetbrains/edu/learning/Course@2x_dark.png
diff --git a/python/educational-core/resources/icons/com/jetbrains/edu/learning/Course_dark.png b/python/educational-core/student/resources/icons/com/jetbrains/edu/learning/Course_dark.png
similarity index 100%
rename from python/educational-core/resources/icons/com/jetbrains/edu/learning/Course_dark.png
rename to python/educational-core/student/resources/icons/com/jetbrains/edu/learning/Course_dark.png
diff --git a/python/educational-core/resources/icons/com/jetbrains/edu/learning/Lesson.png b/python/educational-core/student/resources/icons/com/jetbrains/edu/learning/Lesson.png
similarity index 100%
rename from python/educational-core/resources/icons/com/jetbrains/edu/learning/Lesson.png
rename to python/educational-core/student/resources/icons/com/jetbrains/edu/learning/Lesson.png
diff --git a/python/educational-core/resources/icons/com/jetbrains/edu/learning/Lesson@2x.png b/python/educational-core/student/resources/icons/com/jetbrains/edu/learning/Lesson@2x.png
similarity index 100%
rename from python/educational-core/resources/icons/com/jetbrains/edu/learning/Lesson@2x.png
rename to python/educational-core/student/resources/icons/com/jetbrains/edu/learning/Lesson@2x.png
diff --git a/python/educational-core/resources/icons/com/jetbrains/edu/learning/Task.png b/python/educational-core/student/resources/icons/com/jetbrains/edu/learning/Task.png
similarity index 100%
rename from python/educational-core/resources/icons/com/jetbrains/edu/learning/Task.png
rename to python/educational-core/student/resources/icons/com/jetbrains/edu/learning/Task.png
diff --git a/python/educational-core/resources/icons/com/jetbrains/edu/learning/Task@2x.png b/python/educational-core/student/resources/icons/com/jetbrains/edu/learning/Task@2x.png
similarity index 100%
rename from python/educational-core/resources/icons/com/jetbrains/edu/learning/Task@2x.png
rename to python/educational-core/student/resources/icons/com/jetbrains/edu/learning/Task@2x.png
diff --git a/python/educational-core/resources/icons/com/jetbrains/edu/learning/Task@2x_dark.png b/python/educational-core/student/resources/icons/com/jetbrains/edu/learning/Task@2x_dark.png
similarity index 100%
rename from python/educational-core/resources/icons/com/jetbrains/edu/learning/Task@2x_dark.png
rename to python/educational-core/student/resources/icons/com/jetbrains/edu/learning/Task@2x_dark.png
diff --git a/python/educational-core/resources/icons/com/jetbrains/edu/learning/Task_dark.png b/python/educational-core/student/resources/icons/com/jetbrains/edu/learning/Task_dark.png
similarity index 100%
rename from python/educational-core/resources/icons/com/jetbrains/edu/learning/Task_dark.png
rename to python/educational-core/student/resources/icons/com/jetbrains/edu/learning/Task_dark.png
diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/StudyAnswerPlaceholderExtendWordHandler.java b/python/educational-core/student/src/com/jetbrains/edu/learning/StudyAnswerPlaceholderExtendWordHandler.java
index 95bc425aec9e..8ebc8f4dadd6 100644
--- a/python/educational-core/student/src/com/jetbrains/edu/learning/StudyAnswerPlaceholderExtendWordHandler.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/StudyAnswerPlaceholderExtendWordHandler.java
@@ -9,8 +9,8 @@ import com.intellij.openapi.util.TextRange;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
-import com.jetbrains.edu.courseFormat.AnswerPlaceholder;
-import com.jetbrains.edu.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.courseFormat.AnswerPlaceholder;
+import com.jetbrains.edu.learning.courseFormat.TaskFile;
import org.jetbrains.annotations.Nullable;
import java.util.Collections;
diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/StudyBaseToolWindowConfigurator.java b/python/educational-core/student/src/com/jetbrains/edu/learning/StudyBaseToolWindowConfigurator.java
index 1790b7ecd3eb..7c118af5bccf 100644
--- a/python/educational-core/student/src/com/jetbrains/edu/learning/StudyBaseToolWindowConfigurator.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/StudyBaseToolWindowConfigurator.java
@@ -6,8 +6,8 @@ import com.intellij.openapi.fileEditor.FileEditorManagerEvent;
import com.intellij.openapi.fileEditor.FileEditorManagerListener;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
-import com.jetbrains.edu.courseFormat.Task;
-import com.jetbrains.edu.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.courseFormat.Task;
+import com.jetbrains.edu.learning.courseFormat.TaskFile;
import com.jetbrains.edu.learning.actions.*;
import com.jetbrains.edu.learning.ui.StudyToolWindow;
import org.jetbrains.annotations.NotNull;
diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/StudyCourseResourceManager.java b/python/educational-core/student/src/com/jetbrains/edu/learning/StudyCourseResourceManager.java
index 893b347c44e8..546d2406bad2 100644
--- a/python/educational-core/student/src/com/jetbrains/edu/learning/StudyCourseResourceManager.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/StudyCourseResourceManager.java
@@ -2,7 +2,7 @@ package com.jetbrains.edu.learning;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
-import com.jetbrains.edu.courseFormat.Task;
+import com.jetbrains.edu.learning.courseFormat.Task;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/StudyMoveDelegate.java b/python/educational-core/student/src/com/jetbrains/edu/learning/StudyMoveDelegate.java
index a0417d7c8a66..e21bb4007af4 100644
--- a/python/educational-core/student/src/com/jetbrains/edu/learning/StudyMoveDelegate.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/StudyMoveDelegate.java
@@ -8,7 +8,7 @@ import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiReference;
import com.intellij.refactoring.move.MoveCallback;
import com.intellij.refactoring.move.MoveHandlerDelegate;
-import com.jetbrains.edu.courseFormat.Course;
+import com.jetbrains.edu.learning.courseFormat.Course;
import org.jetbrains.annotations.Nullable;
public class StudyMoveDelegate extends MoveHandlerDelegate{
diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/StudyProjectComponent.java b/python/educational-core/student/src/com/jetbrains/edu/learning/StudyProjectComponent.java
index 6a5747fa526e..9b0d2aea6a8c 100644
--- a/python/educational-core/student/src/com/jetbrains/edu/learning/StudyProjectComponent.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/StudyProjectComponent.java
@@ -25,13 +25,13 @@ import com.intellij.openapi.wm.ToolWindow;
import com.intellij.openapi.wm.ToolWindowAnchor;
import com.intellij.openapi.wm.ToolWindowManager;
import com.intellij.util.containers.hash.HashMap;
-import com.jetbrains.edu.EduNames;
-import com.jetbrains.edu.EduUtils;
-import com.jetbrains.edu.courseFormat.Course;
-import com.jetbrains.edu.courseFormat.Lesson;
-import com.jetbrains.edu.courseFormat.Task;
-import com.jetbrains.edu.courseFormat.TaskFile;
-import com.jetbrains.edu.learning.actions.StudyToolbarAction;
+import com.jetbrains.edu.learning.core.EduNames;
+import com.jetbrains.edu.learning.core.EduUtils;
+import com.jetbrains.edu.learning.courseFormat.Course;
+import com.jetbrains.edu.learning.courseFormat.Lesson;
+import com.jetbrains.edu.learning.courseFormat.Task;
+import com.jetbrains.edu.learning.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.actions.*;
import com.jetbrains.edu.learning.editor.StudyEditorFactoryListener;
import com.jetbrains.edu.learning.ui.StudyProgressToolWindowFactory;
import com.jetbrains.edu.learning.ui.StudyToolWindow;
diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/StudyState.java b/python/educational-core/student/src/com/jetbrains/edu/learning/StudyState.java
index 4d2bd1ef99d7..f4cb42a1340c 100644
--- a/python/educational-core/student/src/com/jetbrains/edu/learning/StudyState.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/StudyState.java
@@ -3,8 +3,8 @@ package com.jetbrains.edu.learning;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.fileEditor.FileDocumentManager;
import com.intellij.openapi.vfs.VirtualFile;
-import com.jetbrains.edu.courseFormat.Task;
-import com.jetbrains.edu.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.courseFormat.Task;
+import com.jetbrains.edu.learning.courseFormat.TaskFile;
import com.jetbrains.edu.learning.editor.StudyEditor;
import org.jetbrains.annotations.Nullable;
diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/StudyTaskManager.java b/python/educational-core/student/src/com/jetbrains/edu/learning/StudyTaskManager.java
index c8910edcccac..6d682f4af732 100644
--- a/python/educational-core/student/src/com/jetbrains/edu/learning/StudyTaskManager.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/StudyTaskManager.java
@@ -11,10 +11,9 @@ import com.intellij.ui.JBColor;
import com.intellij.util.Function;
import com.intellij.util.containers.hash.HashMap;
import com.intellij.util.xmlb.XmlSerializer;
-import com.jetbrains.edu.EduUtils;
-import com.jetbrains.edu.courseFormat.*;
-import com.jetbrains.edu.learning.courseFormat.UserTest;
-import com.jetbrains.edu.oldCourseFormat.OldCourse;
+import com.jetbrains.edu.learning.core.EduUtils;
+import com.jetbrains.edu.learning.courseFormat.*;
+import com.jetbrains.edu.learning.oldCourseFormat.OldCourse;
import org.jdom.Element;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/StudyUtils.java b/python/educational-core/student/src/com/jetbrains/edu/learning/StudyUtils.java
index 52dca32e81c2..00c3518c529b 100644
--- a/python/educational-core/student/src/com/jetbrains/edu/learning/StudyUtils.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/StudyUtils.java
@@ -36,13 +36,13 @@ import com.intellij.ui.JBColor;
import com.intellij.ui.awt.RelativePoint;
import com.intellij.ui.content.Content;
import com.intellij.util.ui.UIUtil;
-import com.jetbrains.edu.EduAnswerPlaceholderDeleteHandler;
-import com.jetbrains.edu.EduAnswerPlaceholderPainter;
-import com.jetbrains.edu.EduNames;
-import com.jetbrains.edu.EduUtils;
-import com.jetbrains.edu.courseFormat.*;
+import com.jetbrains.edu.learning.core.EduAnswerPlaceholderDeleteHandler;
+import com.jetbrains.edu.learning.core.EduAnswerPlaceholderPainter;
+import com.jetbrains.edu.learning.core.EduNames;
+import com.jetbrains.edu.learning.core.EduUtils;
import com.jetbrains.edu.learning.checker.StudyExecutor;
import com.jetbrains.edu.learning.checker.StudyTestRunner;
+import com.jetbrains.edu.learning.courseFormat.*;
import com.jetbrains.edu.learning.editor.StudyEditor;
import com.jetbrains.edu.learning.ui.StudyProgressToolWindowFactory;
import com.jetbrains.edu.learning.ui.StudyToolWindow;
diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyEditInputAction.java b/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyEditInputAction.java
index 8b11fb42ffd5..eb8045c10053 100644
--- a/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyEditInputAction.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyEditInputAction.java
@@ -20,10 +20,10 @@ import com.intellij.ui.tabs.TabInfo;
import com.intellij.ui.tabs.TabsListener;
import com.intellij.ui.tabs.impl.JBEditorTabs;
import com.intellij.util.PlatformIcons;
-import com.jetbrains.edu.EduNames;
-import com.jetbrains.edu.EduUtils;
-import com.jetbrains.edu.courseFormat.Task;
-import com.jetbrains.edu.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.core.EduNames;
+import com.jetbrains.edu.learning.core.EduUtils;
+import com.jetbrains.edu.learning.courseFormat.Task;
+import com.jetbrains.edu.learning.courseFormat.TaskFile;
import com.jetbrains.edu.learning.StudyTaskManager;
import com.jetbrains.edu.learning.StudyUtils;
import com.jetbrains.edu.learning.courseFormat.UserTest;
diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyFillPlaceholdersAction.java b/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyFillPlaceholdersAction.java
index 9e544a2eefde..e65c8a02bd6d 100644
--- a/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyFillPlaceholdersAction.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyFillPlaceholdersAction.java
@@ -6,8 +6,8 @@ import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.command.CommandProcessor;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.project.Project;
-import com.jetbrains.edu.courseFormat.AnswerPlaceholder;
-import com.jetbrains.edu.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.courseFormat.AnswerPlaceholder;
+import com.jetbrains.edu.learning.courseFormat.TaskFile;
import com.jetbrains.edu.learning.StudyState;
import com.jetbrains.edu.learning.StudyUtils;
import com.jetbrains.edu.learning.editor.StudyEditor;
diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyNextStudyTaskAction.java b/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyNextStudyTaskAction.java
index 39d2d816fc0b..cc7742e9981b 100644
--- a/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyNextStudyTaskAction.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyNextStudyTaskAction.java
@@ -3,7 +3,7 @@ package com.jetbrains.edu.learning.actions;
import com.intellij.icons.AllIcons;
import com.intellij.openapi.actionSystem.KeyboardShortcut;
import com.intellij.openapi.keymap.KeymapUtil;
-import com.jetbrains.edu.courseFormat.Task;
+import com.jetbrains.edu.learning.courseFormat.Task;
import com.jetbrains.edu.learning.navigation.StudyNavigator;
import org.jetbrains.annotations.NotNull;
diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyNextWindowAction.java b/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyNextWindowAction.java
index 9c280447b144..5380d96de17b 100644
--- a/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyNextWindowAction.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyNextWindowAction.java
@@ -1,7 +1,7 @@
package com.jetbrains.edu.learning.actions;
import com.intellij.icons.AllIcons;
-import com.jetbrains.edu.courseFormat.AnswerPlaceholder;
+import com.jetbrains.edu.learning.courseFormat.AnswerPlaceholder;
import com.jetbrains.edu.learning.StudyUtils;
import org.jetbrains.annotations.NotNull;
diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyPrevWindowAction.java b/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyPrevWindowAction.java
index b8422ea04582..717a287e8946 100644
--- a/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyPrevWindowAction.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyPrevWindowAction.java
@@ -1,6 +1,6 @@
package com.jetbrains.edu.learning.actions;
-import com.jetbrains.edu.courseFormat.AnswerPlaceholder;
+import com.jetbrains.edu.learning.courseFormat.AnswerPlaceholder;
import com.jetbrains.edu.learning.StudyUtils;
import icons.InteractiveLearningIcons;
import org.jetbrains.annotations.NotNull;
diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyPreviousStudyTaskAction.java b/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyPreviousStudyTaskAction.java
index d0fa769a9573..4ddfd57691be 100644
--- a/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyPreviousStudyTaskAction.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyPreviousStudyTaskAction.java
@@ -3,7 +3,7 @@ package com.jetbrains.edu.learning.actions;
import com.intellij.openapi.actionSystem.KeyboardShortcut;
import com.intellij.openapi.keymap.KeymapUtil;
-import com.jetbrains.edu.courseFormat.Task;
+import com.jetbrains.edu.learning.courseFormat.Task;
import com.jetbrains.edu.learning.navigation.StudyNavigator;
import icons.InteractiveLearningIcons;
import org.jetbrains.annotations.NotNull;
diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyRefreshAnswerPlaceholder.java b/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyRefreshAnswerPlaceholder.java
index d8ee72352c4a..42a7674c384b 100644
--- a/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyRefreshAnswerPlaceholder.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyRefreshAnswerPlaceholder.java
@@ -9,8 +9,8 @@ import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.DumbAwareAction;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.TextRange;
-import com.jetbrains.edu.courseFormat.AnswerPlaceholder;
-import com.jetbrains.edu.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.courseFormat.AnswerPlaceholder;
+import com.jetbrains.edu.learning.courseFormat.TaskFile;
import com.jetbrains.edu.learning.StudyState;
import com.jetbrains.edu.learning.StudyUtils;
import com.jetbrains.edu.learning.editor.StudyEditor;
diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyRefreshTaskFileAction.java b/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyRefreshTaskFileAction.java
index af98aba2c223..4fcf9fd0c3ae 100644
--- a/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyRefreshTaskFileAction.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyRefreshTaskFileAction.java
@@ -20,10 +20,10 @@ import com.intellij.openapi.ui.popup.JBPopupFactory;
import com.intellij.openapi.util.Disposer;
import com.intellij.openapi.wm.IdeFocusManager;
import com.intellij.problems.WolfTheProblemSolver;
-import com.jetbrains.edu.EduAnswerPlaceholderPainter;
-import com.jetbrains.edu.courseFormat.AnswerPlaceholder;
-import com.jetbrains.edu.courseFormat.StudyStatus;
-import com.jetbrains.edu.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.core.EduAnswerPlaceholderPainter;
+import com.jetbrains.edu.learning.courseFormat.AnswerPlaceholder;
+import com.jetbrains.edu.learning.courseFormat.StudyStatus;
+import com.jetbrains.edu.learning.courseFormat.TaskFile;
import com.jetbrains.edu.learning.StudyState;
import com.jetbrains.edu.learning.StudyTaskManager;
import com.jetbrains.edu.learning.StudyUtils;
diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyRunAction.java b/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyRunAction.java
index aba8cd2e283a..3bcb11aa2d7e 100644
--- a/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyRunAction.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyRunAction.java
@@ -16,9 +16,9 @@ import com.intellij.openapi.project.Project;
import com.intellij.openapi.projectRoots.Sdk;
import com.intellij.openapi.util.Disposer;
import com.intellij.openapi.vfs.VirtualFile;
-import com.jetbrains.edu.EduUtils;
-import com.jetbrains.edu.courseFormat.Task;
-import com.jetbrains.edu.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.core.EduUtils;
+import com.jetbrains.edu.learning.courseFormat.Task;
+import com.jetbrains.edu.learning.courseFormat.TaskFile;
import com.jetbrains.edu.learning.StudyTaskManager;
import com.jetbrains.edu.learning.StudyUtils;
import com.jetbrains.edu.learning.courseFormat.UserTest;
diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyShowHintAction.java b/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyShowHintAction.java
index e4b75db4d1fc..13e540091a3e 100644
--- a/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyShowHintAction.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyShowHintAction.java
@@ -15,8 +15,8 @@ import com.intellij.openapi.util.Disposer;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.psi.PsiManager;
-import com.jetbrains.edu.courseFormat.AnswerPlaceholder;
-import com.jetbrains.edu.courseFormat.Course;
+import com.jetbrains.edu.learning.courseFormat.AnswerPlaceholder;
+import com.jetbrains.edu.learning.courseFormat.Course;
import com.jetbrains.edu.learning.StudyState;
import com.jetbrains.edu.learning.StudyTaskManager;
import com.jetbrains.edu.learning.StudyUtils;
diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyTaskNavigationAction.java b/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyTaskNavigationAction.java
index 37c81f0afbc2..5b041dff128c 100644
--- a/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyTaskNavigationAction.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyTaskNavigationAction.java
@@ -14,9 +14,9 @@ import com.intellij.openapi.wm.ToolWindow;
import com.intellij.openapi.wm.ToolWindowId;
import com.intellij.openapi.wm.ToolWindowManager;
import com.intellij.util.ui.tree.TreeUtil;
-import com.jetbrains.edu.EduNames;
-import com.jetbrains.edu.courseFormat.Task;
-import com.jetbrains.edu.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.core.EduNames;
+import com.jetbrains.edu.learning.courseFormat.Task;
+import com.jetbrains.edu.learning.courseFormat.TaskFile;
import com.jetbrains.edu.learning.StudyState;
import com.jetbrains.edu.learning.StudyUtils;
import com.jetbrains.edu.learning.editor.StudyEditor;
diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyWindowNavigationAction.java b/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyWindowNavigationAction.java
index 880830fabcd6..50be6069aa36 100644
--- a/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyWindowNavigationAction.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyWindowNavigationAction.java
@@ -7,8 +7,8 @@ import com.intellij.openapi.fileEditor.FileDocumentManager;
import com.intellij.openapi.project.DumbAware;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
-import com.jetbrains.edu.courseFormat.AnswerPlaceholder;
-import com.jetbrains.edu.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.courseFormat.AnswerPlaceholder;
+import com.jetbrains.edu.learning.courseFormat.TaskFile;
import com.jetbrains.edu.learning.StudyUtils;
import com.jetbrains.edu.learning.navigation.StudyNavigator;
import org.jetbrains.annotations.NotNull;
diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/checker/StudyCheckTask.java b/python/educational-core/student/src/com/jetbrains/edu/learning/checker/StudyCheckTask.java
index 633189f8f5f2..5d332ef3ce31 100644
--- a/python/educational-core/student/src/com/jetbrains/edu/learning/checker/StudyCheckTask.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/checker/StudyCheckTask.java
@@ -11,14 +11,14 @@ import com.intellij.openapi.ui.MessageType;
import com.intellij.openapi.util.Ref;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.VirtualFile;
-import com.jetbrains.edu.EduUtils;
-import com.jetbrains.edu.courseFormat.StudyStatus;
-import com.jetbrains.edu.courseFormat.Task;
+import com.jetbrains.edu.learning.core.EduUtils;
+import com.jetbrains.edu.learning.courseFormat.StudyStatus;
+import com.jetbrains.edu.learning.courseFormat.Task;
import com.jetbrains.edu.learning.StudyState;
import com.jetbrains.edu.learning.StudyTaskManager;
import com.jetbrains.edu.learning.StudyUtils;
-import com.jetbrains.edu.stepic.EduStepicConnector;
-import com.jetbrains.edu.stepic.StudySettings;
+import com.jetbrains.edu.learning.stepic.EduStepicConnector;
+import com.jetbrains.edu.learning.stepic.StudySettings;
import org.jetbrains.annotations.NotNull;
public class StudyCheckTask extends com.intellij.openapi.progress.Task.Backgroundable {
diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/checker/StudyCheckUtils.java b/python/educational-core/student/src/com/jetbrains/edu/learning/checker/StudyCheckUtils.java
index ac6332a5dc58..9fe0ae84ae6b 100644
--- a/python/educational-core/student/src/com/jetbrains/edu/learning/checker/StudyCheckUtils.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/checker/StudyCheckUtils.java
@@ -20,11 +20,11 @@ import com.intellij.openapi.wm.IdeFrame;
import com.intellij.openapi.wm.WindowManager;
import com.intellij.openapi.wm.ex.StatusBarEx;
import com.intellij.openapi.wm.ex.WindowManagerEx;
-import com.jetbrains.edu.EduDocumentListener;
-import com.jetbrains.edu.EduUtils;
-import com.jetbrains.edu.courseFormat.AnswerPlaceholder;
-import com.jetbrains.edu.courseFormat.Task;
-import com.jetbrains.edu.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.core.EduDocumentListener;
+import com.jetbrains.edu.learning.core.EduUtils;
+import com.jetbrains.edu.learning.courseFormat.AnswerPlaceholder;
+import com.jetbrains.edu.learning.courseFormat.Task;
+import com.jetbrains.edu.learning.courseFormat.TaskFile;
import com.jetbrains.edu.learning.StudyState;
import com.jetbrains.edu.learning.StudyTaskManager;
import com.jetbrains.edu.learning.StudyUtils;
diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/checker/StudyExecutor.java b/python/educational-core/student/src/com/jetbrains/edu/learning/checker/StudyExecutor.java
index 69073cfc97dc..e07bd515e829 100644
--- a/python/educational-core/student/src/com/jetbrains/edu/learning/checker/StudyExecutor.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/checker/StudyExecutor.java
@@ -22,7 +22,7 @@ import com.intellij.lang.LanguageExtension;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.projectRoots.Sdk;
import com.intellij.openapi.vfs.VirtualFile;
-import com.jetbrains.edu.courseFormat.Task;
+import com.jetbrains.edu.learning.courseFormat.Task;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/checker/StudySmartChecker.java b/python/educational-core/student/src/com/jetbrains/edu/learning/checker/StudySmartChecker.java
index 9a48eba57d58..7cd660635d84 100644
--- a/python/educational-core/student/src/com/jetbrains/edu/learning/checker/StudySmartChecker.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/checker/StudySmartChecker.java
@@ -10,12 +10,12 @@ import com.intellij.openapi.fileEditor.FileDocumentManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.TextRange;
import com.intellij.openapi.vfs.VirtualFile;
-import com.jetbrains.edu.EduDocumentListener;
-import com.jetbrains.edu.EduNames;
-import com.jetbrains.edu.EduUtils;
-import com.jetbrains.edu.courseFormat.AnswerPlaceholder;
-import com.jetbrains.edu.courseFormat.StudyStatus;
-import com.jetbrains.edu.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.core.EduDocumentListener;
+import com.jetbrains.edu.learning.core.EduNames;
+import com.jetbrains.edu.learning.core.EduUtils;
+import com.jetbrains.edu.learning.courseFormat.AnswerPlaceholder;
+import com.jetbrains.edu.learning.courseFormat.StudyStatus;
+import com.jetbrains.edu.learning.courseFormat.TaskFile;
import com.jetbrains.edu.learning.StudyTaskManager;
import com.jetbrains.edu.learning.StudyUtils;
import org.jetbrains.annotations.NotNull;
diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/checker/StudyTestRunner.java b/python/educational-core/student/src/com/jetbrains/edu/learning/checker/StudyTestRunner.java
index 914baab371a7..85df8f263eb0 100644
--- a/python/educational-core/student/src/com/jetbrains/edu/learning/checker/StudyTestRunner.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/checker/StudyTestRunner.java
@@ -3,7 +3,7 @@ package com.jetbrains.edu.learning.checker;
import com.intellij.execution.ExecutionException;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
-import com.jetbrains.edu.courseFormat.Task;
+import com.jetbrains.edu.learning.courseFormat.Task;
import org.jetbrains.annotations.NotNull;
public abstract class StudyTestRunner {protected final Task myTask;
diff --git a/python/educational-core/src/com/jetbrains/edu/EduAnswerPlaceholderDeleteHandler.java b/python/educational-core/student/src/com/jetbrains/edu/learning/core/EduAnswerPlaceholderDeleteHandler.java
similarity index 94%
rename from python/educational-core/src/com/jetbrains/edu/EduAnswerPlaceholderDeleteHandler.java
rename to python/educational-core/student/src/com/jetbrains/edu/learning/core/EduAnswerPlaceholderDeleteHandler.java
index 344f24df325c..3b590003e5be 100644
--- a/python/educational-core/src/com/jetbrains/edu/EduAnswerPlaceholderDeleteHandler.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/core/EduAnswerPlaceholderDeleteHandler.java
@@ -1,4 +1,4 @@
-package com.jetbrains.edu;
+package com.jetbrains.edu.learning.core;
import com.intellij.codeInsight.hint.HintManager;
import com.intellij.openapi.editor.Editor;
diff --git a/python/educational-core/src/com/jetbrains/edu/EduAnswerPlaceholderPainter.java b/python/educational-core/student/src/com/jetbrains/edu/learning/core/EduAnswerPlaceholderPainter.java
similarity index 95%
rename from python/educational-core/src/com/jetbrains/edu/EduAnswerPlaceholderPainter.java
rename to python/educational-core/student/src/com/jetbrains/edu/learning/core/EduAnswerPlaceholderPainter.java
index da2972c440c3..528b58e26102 100644
--- a/python/educational-core/src/com/jetbrains/edu/EduAnswerPlaceholderPainter.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/core/EduAnswerPlaceholderPainter.java
@@ -1,4 +1,4 @@
-package com.jetbrains.edu;
+package com.jetbrains.edu.learning.core;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.editor.Editor;
@@ -9,8 +9,8 @@ import com.intellij.openapi.editor.impl.DocumentImpl;
import com.intellij.openapi.editor.markup.*;
import com.intellij.openapi.project.Project;
import com.intellij.ui.JBColor;
-import com.jetbrains.edu.courseFormat.AnswerPlaceholder;
-import com.jetbrains.edu.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.courseFormat.AnswerPlaceholder;
+import com.jetbrains.edu.learning.courseFormat.TaskFile;
import org.jetbrains.annotations.NotNull;
import java.awt.*;
diff --git a/python/educational-core/src/com/jetbrains/edu/EduDocumentListener.java b/python/educational-core/student/src/com/jetbrains/edu/learning/core/EduDocumentListener.java
similarity index 96%
rename from python/educational-core/src/com/jetbrains/edu/EduDocumentListener.java
rename to python/educational-core/student/src/com/jetbrains/edu/learning/core/EduDocumentListener.java
index 8e11945089ef..77e02bb15154 100644
--- a/python/educational-core/src/com/jetbrains/edu/EduDocumentListener.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/core/EduDocumentListener.java
@@ -1,12 +1,12 @@
-package com.jetbrains.edu;
+package com.jetbrains.edu.learning.core;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.editor.event.DocumentAdapter;
import com.intellij.openapi.editor.event.DocumentEvent;
import com.intellij.openapi.editor.impl.event.DocumentEventImpl;
import com.intellij.openapi.util.TextRange;
-import com.jetbrains.edu.courseFormat.AnswerPlaceholder;
-import com.jetbrains.edu.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.courseFormat.AnswerPlaceholder;
+import com.jetbrains.edu.learning.courseFormat.TaskFile;
import java.util.ArrayList;
import java.util.List;
diff --git a/python/educational-core/src/com/jetbrains/edu/EduNames.java b/python/educational-core/student/src/com/jetbrains/edu/learning/core/EduNames.java
similarity index 97%
rename from python/educational-core/src/com/jetbrains/edu/EduNames.java
rename to python/educational-core/student/src/com/jetbrains/edu/learning/core/EduNames.java
index 344f01cc3384..03c06d19b30d 100644
--- a/python/educational-core/src/com/jetbrains/edu/EduNames.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/core/EduNames.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.jetbrains.edu;
+package com.jetbrains.edu.learning.core;
import com.intellij.openapi.util.text.StringUtil;
import org.jetbrains.annotations.NonNls;
diff --git a/python/educational-core/src/com/jetbrains/edu/EduUtils.java b/python/educational-core/student/src/com/jetbrains/edu/learning/core/EduUtils.java
similarity index 95%
rename from python/educational-core/src/com/jetbrains/edu/EduUtils.java
rename to python/educational-core/student/src/com/jetbrains/edu/learning/core/EduUtils.java
index 4f453c8ab0e7..4b4870673a23 100644
--- a/python/educational-core/src/com/jetbrains/edu/EduUtils.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/core/EduUtils.java
@@ -1,4 +1,4 @@
-package com.jetbrains.edu;
+package com.jetbrains.edu.learning.core;
import com.intellij.ide.SaveAndSyncHandler;
import com.intellij.openapi.actionSystem.AnActionEvent;
@@ -18,9 +18,9 @@ import com.intellij.openapi.vfs.VirtualFileManager;
import com.intellij.psi.PsiDirectory;
import com.intellij.util.Function;
import com.intellij.util.containers.HashMap;
-import com.jetbrains.edu.courseFormat.*;
-import com.jetbrains.edu.oldCourseFormat.OldCourse;
-import com.jetbrains.edu.oldCourseFormat.TaskWindow;
+import com.jetbrains.edu.learning.courseFormat.*;
+import com.jetbrains.edu.learning.oldCourseFormat.OldCourse;
+import com.jetbrains.edu.learning.oldCourseFormat.TaskWindow;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -296,21 +296,21 @@ public class EduUtils {
course.setCourseDirectory(FileUtil.toSystemIndependentName(updatedCoursePath));
}
final ArrayList lessons = new ArrayList();
- for (com.jetbrains.edu.oldCourseFormat.Lesson oldLesson : oldCourse.lessons) {
+ for (com.jetbrains.edu.learning.oldCourseFormat.Lesson oldLesson : oldCourse.lessons) {
final Lesson lesson = new Lesson();
lesson.setName(oldLesson.name);
lesson.setIndex(oldLesson.myIndex + 1);
final ArrayList tasks = new ArrayList();
- for (com.jetbrains.edu.oldCourseFormat.Task oldTask : oldLesson.taskList) {
+ for (com.jetbrains.edu.learning.oldCourseFormat.Task oldTask : oldLesson.taskList) {
final Task task = new Task();
task.setIndex(oldTask.myIndex + 1);
task.setName(oldTask.name);
task.setLesson(lesson);
final HashMap taskFiles = new HashMap();
- for (Map.Entry entry : oldTask.taskFiles.entrySet()) {
+ for (Map.Entry entry : oldTask.taskFiles.entrySet()) {
final TaskFile taskFile = new TaskFile();
- final com.jetbrains.edu.oldCourseFormat.TaskFile oldTaskFile = entry.getValue();
+ final com.jetbrains.edu.learning.oldCourseFormat.TaskFile oldTaskFile = entry.getValue();
taskFile.setIndex(oldTaskFile.myIndex);
taskFile.name = entry.getKey();
diff --git a/python/educational-core/src/com/jetbrains/edu/courseFormat/AnswerPlaceholder.java b/python/educational-core/student/src/com/jetbrains/edu/learning/courseFormat/AnswerPlaceholder.java
similarity index 99%
rename from python/educational-core/src/com/jetbrains/edu/courseFormat/AnswerPlaceholder.java
rename to python/educational-core/student/src/com/jetbrains/edu/learning/courseFormat/AnswerPlaceholder.java
index c92c692798df..e086091d6d8c 100644
--- a/python/educational-core/src/com/jetbrains/edu/courseFormat/AnswerPlaceholder.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/courseFormat/AnswerPlaceholder.java
@@ -1,4 +1,4 @@
-package com.jetbrains.edu.courseFormat;
+package com.jetbrains.edu.learning.courseFormat;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
diff --git a/python/educational-core/src/com/jetbrains/edu/courseFormat/AnswerPlaceholderComparator.java b/python/educational-core/student/src/com/jetbrains/edu/learning/courseFormat/AnswerPlaceholderComparator.java
similarity index 90%
rename from python/educational-core/src/com/jetbrains/edu/courseFormat/AnswerPlaceholderComparator.java
rename to python/educational-core/student/src/com/jetbrains/edu/learning/courseFormat/AnswerPlaceholderComparator.java
index f70044e99bcc..09926490d8e2 100644
--- a/python/educational-core/src/com/jetbrains/edu/courseFormat/AnswerPlaceholderComparator.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/courseFormat/AnswerPlaceholderComparator.java
@@ -1,4 +1,4 @@
-package com.jetbrains.edu.courseFormat;
+package com.jetbrains.edu.learning.courseFormat;
import java.util.Comparator;
diff --git a/python/educational-core/src/com/jetbrains/edu/courseFormat/Course.java b/python/educational-core/student/src/com/jetbrains/edu/learning/courseFormat/Course.java
similarity index 94%
rename from python/educational-core/src/com/jetbrains/edu/courseFormat/Course.java
rename to python/educational-core/student/src/com/jetbrains/edu/learning/courseFormat/Course.java
index 4c34fe7b9efd..5dfbebf0f609 100644
--- a/python/educational-core/src/com/jetbrains/edu/courseFormat/Course.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/courseFormat/Course.java
@@ -1,13 +1,13 @@
-package com.jetbrains.edu.courseFormat;
+package com.jetbrains.edu.learning.courseFormat;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import com.intellij.lang.Language;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.util.Function;
-import com.jetbrains.edu.EduNames;
-import com.jetbrains.edu.EduUtils;
-import com.jetbrains.edu.stepic.CourseInfo;
+import com.jetbrains.edu.learning.core.EduNames;
+import com.jetbrains.edu.learning.core.EduUtils;
+import com.jetbrains.edu.learning.stepic.CourseInfo;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
diff --git a/python/educational-core/src/com/jetbrains/edu/courseFormat/Lesson.java b/python/educational-core/student/src/com/jetbrains/edu/learning/courseFormat/Lesson.java
similarity index 92%
rename from python/educational-core/src/com/jetbrains/edu/courseFormat/Lesson.java
rename to python/educational-core/student/src/com/jetbrains/edu/learning/courseFormat/Lesson.java
index 368f84a64226..5b2f6acf9f22 100644
--- a/python/educational-core/src/com/jetbrains/edu/courseFormat/Lesson.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/courseFormat/Lesson.java
@@ -1,10 +1,10 @@
-package com.jetbrains.edu.courseFormat;
+package com.jetbrains.edu.learning.courseFormat;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import com.intellij.util.xmlb.annotations.Transient;
-import com.jetbrains.edu.EduNames;
-import com.jetbrains.edu.EduUtils;
+import com.jetbrains.edu.learning.core.EduNames;
+import com.jetbrains.edu.learning.core.EduUtils;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
diff --git a/python/educational-core/src/com/jetbrains/edu/courseFormat/StudyItem.java b/python/educational-core/student/src/com/jetbrains/edu/learning/courseFormat/StudyItem.java
similarity index 72%
rename from python/educational-core/src/com/jetbrains/edu/courseFormat/StudyItem.java
rename to python/educational-core/student/src/com/jetbrains/edu/learning/courseFormat/StudyItem.java
index b09d2570a687..682dbb0a1bfe 100644
--- a/python/educational-core/src/com/jetbrains/edu/courseFormat/StudyItem.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/courseFormat/StudyItem.java
@@ -1,4 +1,4 @@
-package com.jetbrains.edu.courseFormat;
+package com.jetbrains.edu.learning.courseFormat;
public interface StudyItem {
String getName();
diff --git a/python/educational-core/src/com/jetbrains/edu/courseFormat/StudyStatus.java b/python/educational-core/student/src/com/jetbrains/edu/learning/courseFormat/StudyStatus.java
similarity index 59%
rename from python/educational-core/src/com/jetbrains/edu/courseFormat/StudyStatus.java
rename to python/educational-core/student/src/com/jetbrains/edu/learning/courseFormat/StudyStatus.java
index e8c11503f565..e1849da8461b 100644
--- a/python/educational-core/src/com/jetbrains/edu/courseFormat/StudyStatus.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/courseFormat/StudyStatus.java
@@ -1,4 +1,4 @@
-package com.jetbrains.edu.courseFormat;
+package com.jetbrains.edu.learning.courseFormat;
public enum StudyStatus {
Unchecked, Solved, Failed, Uninitialized
diff --git a/python/educational-core/src/com/jetbrains/edu/courseFormat/Task.java b/python/educational-core/student/src/com/jetbrains/edu/learning/courseFormat/Task.java
similarity index 98%
rename from python/educational-core/src/com/jetbrains/edu/courseFormat/Task.java
rename to python/educational-core/student/src/com/jetbrains/edu/learning/courseFormat/Task.java
index b20ea6374ae1..3491f386dc65 100644
--- a/python/educational-core/src/com/jetbrains/edu/courseFormat/Task.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/courseFormat/Task.java
@@ -1,4 +1,4 @@
-package com.jetbrains.edu.courseFormat;
+package com.jetbrains.edu.learning.courseFormat;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
@@ -8,7 +8,7 @@ import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.util.xmlb.annotations.Transient;
-import com.jetbrains.edu.EduNames;
+import com.jetbrains.edu.learning.core.EduNames;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/python/educational-core/src/com/jetbrains/edu/courseFormat/TaskFile.java b/python/educational-core/student/src/com/jetbrains/edu/learning/courseFormat/TaskFile.java
similarity index 99%
rename from python/educational-core/src/com/jetbrains/edu/courseFormat/TaskFile.java
rename to python/educational-core/student/src/com/jetbrains/edu/learning/courseFormat/TaskFile.java
index 0ebc4f042ee5..ceb8dd92ac2c 100644
--- a/python/educational-core/src/com/jetbrains/edu/courseFormat/TaskFile.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/courseFormat/TaskFile.java
@@ -1,4 +1,4 @@
-package com.jetbrains.edu.courseFormat;
+package com.jetbrains.edu.learning.courseFormat;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/courseGeneration/StudyGenerator.java b/python/educational-core/student/src/com/jetbrains/edu/learning/courseGeneration/StudyGenerator.java
index 4d04f8e0bb3d..9af4dc7af1a5 100644
--- a/python/educational-core/student/src/com/jetbrains/edu/learning/courseGeneration/StudyGenerator.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/courseGeneration/StudyGenerator.java
@@ -4,11 +4,11 @@ import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.vfs.VirtualFile;
-import com.jetbrains.edu.EduNames;
-import com.jetbrains.edu.courseFormat.Course;
-import com.jetbrains.edu.courseFormat.Lesson;
-import com.jetbrains.edu.courseFormat.Task;
-import com.jetbrains.edu.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.core.EduNames;
+import com.jetbrains.edu.learning.courseFormat.Course;
+import com.jetbrains.edu.learning.courseFormat.Lesson;
+import com.jetbrains.edu.learning.courseFormat.Task;
+import com.jetbrains.edu.learning.courseFormat.TaskFile;
import com.jetbrains.edu.learning.StudyTaskManager;
import com.jetbrains.edu.learning.StudyUtils;
import org.jetbrains.annotations.NotNull;
diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/courseGeneration/StudyProjectGenerator.java b/python/educational-core/student/src/com/jetbrains/edu/learning/courseGeneration/StudyProjectGenerator.java
index 17d138ebe209..908a0e215948 100644
--- a/python/educational-core/student/src/com/jetbrains/edu/learning/courseGeneration/StudyProjectGenerator.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/courseGeneration/StudyProjectGenerator.java
@@ -22,17 +22,17 @@ import com.intellij.platform.templates.github.ZipUtil;
import com.intellij.psi.PsiFile;
import com.intellij.psi.PsiManager;
import com.intellij.util.containers.ContainerUtil;
-import com.jetbrains.edu.EduNames;
-import com.jetbrains.edu.EduUtils;
-import com.jetbrains.edu.courseFormat.Course;
-import com.jetbrains.edu.courseFormat.Lesson;
-import com.jetbrains.edu.courseFormat.Task;
-import com.jetbrains.edu.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.core.EduNames;
+import com.jetbrains.edu.learning.core.EduUtils;
+import com.jetbrains.edu.learning.courseFormat.Course;
+import com.jetbrains.edu.learning.courseFormat.Lesson;
+import com.jetbrains.edu.learning.courseFormat.Task;
+import com.jetbrains.edu.learning.courseFormat.TaskFile;
import com.jetbrains.edu.learning.StudyProjectComponent;
import com.jetbrains.edu.learning.StudyTaskManager;
import com.jetbrains.edu.learning.StudyUtils;
-import com.jetbrains.edu.stepic.CourseInfo;
-import com.jetbrains.edu.stepic.EduStepicConnector;
+import com.jetbrains.edu.learning.stepic.CourseInfo;
+import com.jetbrains.edu.learning.stepic.EduStepicConnector;
import org.apache.commons.codec.binary.Base64;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/editor/StudyEditor.java b/python/educational-core/student/src/com/jetbrains/edu/learning/editor/StudyEditor.java
index ae5366a50970..50f8ad8cf759 100644
--- a/python/educational-core/student/src/com/jetbrains/edu/learning/editor/StudyEditor.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/editor/StudyEditor.java
@@ -5,8 +5,8 @@ import com.intellij.openapi.fileEditor.impl.text.PsiAwareTextEditorImpl;
import com.intellij.openapi.fileEditor.impl.text.TextEditorProvider;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
-import com.jetbrains.edu.EduDocumentListener;
-import com.jetbrains.edu.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.core.EduDocumentListener;
+import com.jetbrains.edu.learning.courseFormat.TaskFile;
import com.jetbrains.edu.learning.StudyUtils;
import org.jetbrains.annotations.NotNull;
diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/editor/StudyEditorFactoryListener.java b/python/educational-core/student/src/com/jetbrains/edu/learning/editor/StudyEditorFactoryListener.java
index 12a566ddf596..9a1eb88859f2 100644
--- a/python/educational-core/student/src/com/jetbrains/edu/learning/editor/StudyEditorFactoryListener.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/editor/StudyEditorFactoryListener.java
@@ -15,9 +15,9 @@ import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.wm.ToolWindow;
import com.intellij.openapi.wm.ToolWindowManager;
import com.intellij.problems.WolfTheProblemSolver;
-import com.jetbrains.edu.EduDocumentListener;
-import com.jetbrains.edu.courseFormat.AnswerPlaceholder;
-import com.jetbrains.edu.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.core.EduDocumentListener;
+import com.jetbrains.edu.learning.courseFormat.AnswerPlaceholder;
+import com.jetbrains.edu.learning.courseFormat.TaskFile;
import com.jetbrains.edu.learning.StudyUtils;
import com.jetbrains.edu.learning.navigation.StudyNavigator;
import com.jetbrains.edu.learning.ui.StudyToolWindowFactory;
diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/editor/StudyFileEditorProvider.java b/python/educational-core/student/src/com/jetbrains/edu/learning/editor/StudyFileEditorProvider.java
index 77e6f10693f8..cdfd8d4535db 100644
--- a/python/educational-core/student/src/com/jetbrains/edu/learning/editor/StudyFileEditorProvider.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/editor/StudyFileEditorProvider.java
@@ -8,7 +8,7 @@ import com.intellij.openapi.fileEditor.impl.text.TextEditorProvider;
import com.intellij.openapi.project.DumbAware;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
-import com.jetbrains.edu.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.courseFormat.TaskFile;
import com.jetbrains.edu.learning.StudyUtils;
import org.jdom.Element;
import org.jetbrains.annotations.NotNull;
diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/editor/StudyHighlightErrorFilter.java b/python/educational-core/student/src/com/jetbrains/edu/learning/editor/StudyHighlightErrorFilter.java
index daf1c5594e70..38bae134e235 100644
--- a/python/educational-core/student/src/com/jetbrains/edu/learning/editor/StudyHighlightErrorFilter.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/editor/StudyHighlightErrorFilter.java
@@ -4,7 +4,7 @@ import com.intellij.codeInsight.highlighting.HighlightErrorFilter;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiErrorElement;
import com.intellij.psi.PsiFile;
-import com.jetbrains.edu.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.courseFormat.TaskFile;
import com.jetbrains.edu.learning.StudyUtils;
import org.jetbrains.annotations.NotNull;
diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/navigation/StudyNavigator.java b/python/educational-core/student/src/com/jetbrains/edu/learning/navigation/StudyNavigator.java
index 4b889f37023a..604e2caa9a7d 100644
--- a/python/educational-core/student/src/com/jetbrains/edu/learning/navigation/StudyNavigator.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/navigation/StudyNavigator.java
@@ -3,10 +3,10 @@ package com.jetbrains.edu.learning.navigation;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.editor.LogicalPosition;
import com.intellij.openapi.project.Project;
-import com.jetbrains.edu.EduNames;
-import com.jetbrains.edu.courseFormat.*;
+import com.jetbrains.edu.learning.core.EduNames;
import com.jetbrains.edu.learning.StudyTaskManager;
import com.jetbrains.edu.learning.StudyUtils;
+import com.jetbrains.edu.learning.courseFormat.*;
import org.jetbrains.annotations.NotNull;
import java.util.List;
diff --git a/python/educational-core/src/com/jetbrains/edu/oldCourseFormat/Lesson.java b/python/educational-core/student/src/com/jetbrains/edu/learning/oldCourseFormat/Lesson.java
similarity index 81%
rename from python/educational-core/src/com/jetbrains/edu/oldCourseFormat/Lesson.java
rename to python/educational-core/student/src/com/jetbrains/edu/learning/oldCourseFormat/Lesson.java
index e36ad2ce70b5..bdf1f45a36c9 100644
--- a/python/educational-core/src/com/jetbrains/edu/oldCourseFormat/Lesson.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/oldCourseFormat/Lesson.java
@@ -1,4 +1,4 @@
-package com.jetbrains.edu.oldCourseFormat;
+package com.jetbrains.edu.learning.oldCourseFormat;
import java.util.ArrayList;
import java.util.List;
diff --git a/python/educational-core/src/com/jetbrains/edu/oldCourseFormat/LessonInfo.java b/python/educational-core/student/src/com/jetbrains/edu/learning/oldCourseFormat/LessonInfo.java
similarity index 82%
rename from python/educational-core/src/com/jetbrains/edu/oldCourseFormat/LessonInfo.java
rename to python/educational-core/student/src/com/jetbrains/edu/learning/oldCourseFormat/LessonInfo.java
index 1308e863b0ba..b19031b335a3 100644
--- a/python/educational-core/src/com/jetbrains/edu/oldCourseFormat/LessonInfo.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/oldCourseFormat/LessonInfo.java
@@ -1,4 +1,4 @@
-package com.jetbrains.edu.oldCourseFormat;
+package com.jetbrains.edu.learning.oldCourseFormat;
/**
* Implementation of class which contains information about student progress in current lesson
diff --git a/python/educational-core/src/com/jetbrains/edu/oldCourseFormat/OldCourse.java b/python/educational-core/student/src/com/jetbrains/edu/learning/oldCourseFormat/OldCourse.java
similarity index 84%
rename from python/educational-core/src/com/jetbrains/edu/oldCourseFormat/OldCourse.java
rename to python/educational-core/student/src/com/jetbrains/edu/learning/oldCourseFormat/OldCourse.java
index d3c31bab4d6a..fe254359e2ef 100644
--- a/python/educational-core/src/com/jetbrains/edu/oldCourseFormat/OldCourse.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/oldCourseFormat/OldCourse.java
@@ -1,4 +1,4 @@
-package com.jetbrains.edu.oldCourseFormat;
+package com.jetbrains.edu.learning.oldCourseFormat;
import java.util.ArrayList;
import java.util.List;
diff --git a/python/educational-core/src/com/jetbrains/edu/oldCourseFormat/Task.java b/python/educational-core/student/src/com/jetbrains/edu/learning/oldCourseFormat/Task.java
similarity index 84%
rename from python/educational-core/src/com/jetbrains/edu/oldCourseFormat/Task.java
rename to python/educational-core/student/src/com/jetbrains/edu/learning/oldCourseFormat/Task.java
index a1125fef9c2b..43a41c815962 100644
--- a/python/educational-core/src/com/jetbrains/edu/oldCourseFormat/Task.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/oldCourseFormat/Task.java
@@ -1,4 +1,4 @@
-package com.jetbrains.edu.oldCourseFormat;
+package com.jetbrains.edu.learning.oldCourseFormat;
import java.util.HashMap;
import java.util.Map;
diff --git a/python/educational-core/src/com/jetbrains/edu/oldCourseFormat/TaskFile.java b/python/educational-core/student/src/com/jetbrains/edu/learning/oldCourseFormat/TaskFile.java
similarity index 82%
rename from python/educational-core/src/com/jetbrains/edu/oldCourseFormat/TaskFile.java
rename to python/educational-core/student/src/com/jetbrains/edu/learning/oldCourseFormat/TaskFile.java
index b528f63b3ee4..be2c082f4e75 100644
--- a/python/educational-core/src/com/jetbrains/edu/oldCourseFormat/TaskFile.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/oldCourseFormat/TaskFile.java
@@ -1,4 +1,4 @@
-package com.jetbrains.edu.oldCourseFormat;
+package com.jetbrains.edu.learning.oldCourseFormat;
import com.intellij.util.xmlb.annotations.Transient;
diff --git a/python/educational-core/src/com/jetbrains/edu/oldCourseFormat/TaskWindow.java b/python/educational-core/student/src/com/jetbrains/edu/learning/oldCourseFormat/TaskWindow.java
similarity index 78%
rename from python/educational-core/src/com/jetbrains/edu/oldCourseFormat/TaskWindow.java
rename to python/educational-core/student/src/com/jetbrains/edu/learning/oldCourseFormat/TaskWindow.java
index 53ef9a90be0e..50ac63949232 100644
--- a/python/educational-core/src/com/jetbrains/edu/oldCourseFormat/TaskWindow.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/oldCourseFormat/TaskWindow.java
@@ -1,6 +1,6 @@
-package com.jetbrains.edu.oldCourseFormat;
+package com.jetbrains.edu.learning.oldCourseFormat;
-import com.jetbrains.edu.courseFormat.StudyStatus;
+import com.jetbrains.edu.learning.courseFormat.StudyStatus;
/**
* Implementation of windows which user should type in
diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/projectView/StudyDirectoryNode.java b/python/educational-core/student/src/com/jetbrains/edu/learning/projectView/StudyDirectoryNode.java
index 92bb2dfad280..18b6d1c7c105 100644
--- a/python/educational-core/student/src/com/jetbrains/edu/learning/projectView/StudyDirectoryNode.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/projectView/StudyDirectoryNode.java
@@ -11,12 +11,11 @@ import com.intellij.psi.PsiDirectory;
import com.intellij.psi.PsiElement;
import com.intellij.ui.JBColor;
import com.intellij.ui.SimpleTextAttributes;
-import com.jetbrains.edu.EduNames;
-import com.jetbrains.edu.EduUtils;
-import com.jetbrains.edu.courseFormat.*;
+import com.jetbrains.edu.learning.core.EduNames;
+import com.jetbrains.edu.learning.core.EduUtils;
import com.jetbrains.edu.learning.StudyTaskManager;
import com.jetbrains.edu.learning.StudyUtils;
-import icons.EducationalIcons;
+import com.jetbrains.edu.learning.courseFormat.*;
import icons.InteractiveLearningIcons;
import org.jetbrains.annotations.NotNull;
@@ -46,7 +45,7 @@ public class StudyDirectoryNode extends PsiDirectoryNode {
}
if (valueName.equals(myProject.getName())) {
data.clearText();
- data.setIcon(EducationalIcons.Course);
+ data.setIcon(InteractiveLearningIcons.Course);
data.addText(course.getName(), new SimpleTextAttributes(SimpleTextAttributes.STYLE_PLAIN, JBColor.BLACK));
}
else if (valueName.contains(EduNames.TASK)) {
@@ -94,7 +93,7 @@ public class StudyDirectoryNode extends PsiDirectoryNode {
StudyStatus taskStatus = StudyTaskManager.getInstance(myProject).getStatus(lesson);
switch (taskStatus) {
case Unchecked: {
- updatePresentation(data, additionalName, JBColor.BLACK, EducationalIcons.Lesson);
+ updatePresentation(data, additionalName, JBColor.BLACK, InteractiveLearningIcons.Lesson);
break;
}
case Solved: {
@@ -102,7 +101,7 @@ public class StudyDirectoryNode extends PsiDirectoryNode {
break;
}
case Failed: {
- updatePresentation(data, additionalName, JBColor.RED, EducationalIcons.Lesson);
+ updatePresentation(data, additionalName, JBColor.RED, InteractiveLearningIcons.Lesson);
}
}
}
@@ -111,7 +110,7 @@ public class StudyDirectoryNode extends PsiDirectoryNode {
StudyStatus taskStatus = StudyTaskManager.getInstance(myProject).getStatus(task);
switch (taskStatus) {
case Unchecked: {
- updatePresentation(data, additionalName, JBColor.BLACK, EducationalIcons.Task);
+ updatePresentation(data, additionalName, JBColor.BLACK, InteractiveLearningIcons.Task);
break;
}
case Solved: {
diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/projectView/StudyTreeStructureProvider.java b/python/educational-core/student/src/com/jetbrains/edu/learning/projectView/StudyTreeStructureProvider.java
index b42e6f1d5acd..6fd47eaece84 100644
--- a/python/educational-core/student/src/com/jetbrains/edu/learning/projectView/StudyTreeStructureProvider.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/projectView/StudyTreeStructureProvider.java
@@ -8,8 +8,8 @@ import com.intellij.openapi.project.DumbAware;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiDirectory;
-import com.jetbrains.edu.EduNames;
-import com.jetbrains.edu.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.core.EduNames;
+import com.jetbrains.edu.learning.courseFormat.TaskFile;
import com.jetbrains.edu.learning.StudyTaskManager;
import com.jetbrains.edu.learning.StudyUtils;
import org.jetbrains.annotations.NotNull;
diff --git a/python/educational-core/src/com/jetbrains/edu/stepic/CourseInfo.java b/python/educational-core/student/src/com/jetbrains/edu/learning/stepic/CourseInfo.java
similarity index 98%
rename from python/educational-core/src/com/jetbrains/edu/stepic/CourseInfo.java
rename to python/educational-core/student/src/com/jetbrains/edu/learning/stepic/CourseInfo.java
index c23df1d624a3..2bc2099924d9 100644
--- a/python/educational-core/src/com/jetbrains/edu/stepic/CourseInfo.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/stepic/CourseInfo.java
@@ -1,4 +1,4 @@
-package com.jetbrains.edu.stepic;
+package com.jetbrains.edu.learning.stepic;
import com.google.gson.annotations.SerializedName;
import com.intellij.openapi.util.text.StringUtil;
diff --git a/python/educational-core/src/com/jetbrains/edu/stepic/EduStepicConnector.java b/python/educational-core/student/src/com/jetbrains/edu/learning/stepic/EduStepicConnector.java
similarity index 98%
rename from python/educational-core/src/com/jetbrains/edu/stepic/EduStepicConnector.java
rename to python/educational-core/student/src/com/jetbrains/edu/learning/stepic/EduStepicConnector.java
index 98753e523f6e..8d871be6a2e2 100644
--- a/python/educational-core/src/com/jetbrains/edu/stepic/EduStepicConnector.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/stepic/EduStepicConnector.java
@@ -1,4 +1,4 @@
-package com.jetbrains.edu.stepic;
+package com.jetbrains.edu.learning.stepic;
import com.google.gson.FieldNamingPolicy;
import com.google.gson.Gson;
@@ -17,12 +17,12 @@ import com.intellij.openapi.vfs.VfsUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.VirtualFileFilter;
import com.intellij.util.net.ssl.CertificateManager;
-import com.jetbrains.edu.EduNames;
-import com.jetbrains.edu.EduUtils;
-import com.jetbrains.edu.courseFormat.Course;
-import com.jetbrains.edu.courseFormat.Lesson;
-import com.jetbrains.edu.courseFormat.Task;
-import com.jetbrains.edu.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.core.EduNames;
+import com.jetbrains.edu.learning.core.EduUtils;
+import com.jetbrains.edu.learning.courseFormat.Course;
+import com.jetbrains.edu.learning.courseFormat.Lesson;
+import com.jetbrains.edu.learning.courseFormat.Task;
+import com.jetbrains.edu.learning.courseFormat.TaskFile;
import org.apache.commons.codec.binary.Base64;
import org.apache.http.HttpEntity;
import org.apache.http.HttpStatus;
@@ -468,7 +468,7 @@ public class EduStepicConnector {
public boolean accept(VirtualFile file) {
final String name = file.getName();
return !name.contains(EduNames.LESSON) && !name.equals(EduNames.COURSE_META_FILE) && !name.equals(EduNames.HINTS) &&
- !"pyc".equals(file.getExtension()) && !file.isDirectory() && !name.equals(EduNames.TEST_HELPER) && !name.startsWith(".");
+ !"pyc".equals(file.getExtension()) && !file.isDirectory() && !name.equals(EduNames.TEST_HELPER) && !name.startsWith("");
}
});
diff --git a/python/educational-core/src/com/jetbrains/edu/stepic/LoginDialog.java b/python/educational-core/student/src/com/jetbrains/edu/learning/stepic/LoginDialog.java
similarity index 97%
rename from python/educational-core/src/com/jetbrains/edu/stepic/LoginDialog.java
rename to python/educational-core/student/src/com/jetbrains/edu/learning/stepic/LoginDialog.java
index 5b6ac16bc611..bb95494d1540 100644
--- a/python/educational-core/src/com/jetbrains/edu/stepic/LoginDialog.java
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/stepic/LoginDialog.java
@@ -1,4 +1,4 @@
-package com.jetbrains.edu.stepic;
+package com.jetbrains.edu.learning.stepic;
import com.intellij.openapi.ui.DialogWrapper;
import org.jetbrains.annotations.NotNull;
diff --git a/python/educational-core/src/com/jetbrains/edu/stepic/LoginPanel.form b/python/educational-core/student/src/com/jetbrains/edu/learning/stepic/LoginPanel.form
similarity index 97%
rename from python/educational-core/src/com/jetbrains/edu/stepic/LoginPanel.form
rename to python/educational-core/student/src/com/jetbrains/edu/learning/stepic/LoginPanel.form
index 57570c149e93..33b848ad22b9 100644
--- a/python/educational-core/src/com/jetbrains/edu/stepic/LoginPanel.form
+++ b/python/educational-core/student/src/com/jetbrains/edu/learning/stepic/LoginPanel.form
@@ -1,5 +1,5 @@
-
\ No newline at end of file
diff --git a/python/educational-python/build/pycharm_edu_build.gant b/python/educational-python/build/pycharm_edu_build.gant
index b309878290bf..25ca87b39d95 100644
--- a/python/educational-python/build/pycharm_edu_build.gant
+++ b/python/educational-python/build/pycharm_edu_build.gant
@@ -275,10 +275,6 @@ private layoutFull(Map args, String target, Set usedJars) {
}
}
- jar("educational-core.jar") {
- module("educational-core")
- }
-
jar("pycharm-pydev.jar") {
module("python-pydev")
}
diff --git a/python/educational-python/course-creator-python/course-creator-python.iml b/python/educational-python/course-creator-python/course-creator-python.iml
index 51499938c1e2..cf8d51281117 100644
--- a/python/educational-python/course-creator-python/course-creator-python.iml
+++ b/python/educational-python/course-creator-python/course-creator-python.iml
@@ -11,8 +11,8 @@
-
+
\ No newline at end of file
diff --git a/python/educational-python/course-creator-python/resources/META-INF/plugin.xml b/python/educational-python/course-creator-python/resources/META-INF/plugin.xml
index 31ea1abbc582..e87961c59b40 100644
--- a/python/educational-python/course-creator-python/resources/META-INF/plugin.xml
+++ b/python/educational-python/course-creator-python/resources/META-INF/plugin.xml
@@ -11,18 +11,12 @@
-
-
-
-
com.intellij.modules.platform
com.intellij.modules.python
com.jetbrains.edu.coursecreator
- com.jetbrains.edu.core
+ com.jetbrains.edu.interactivelearning
+ com.jetbrains.python.edu.interactivelearning.python
com.jetbrains.python.edu.core
diff --git a/python/educational-python/course-creator-python/src/com/jetbrains/edu/coursecreator/PyCCLanguageManager.java b/python/educational-python/course-creator-python/src/com/jetbrains/edu/coursecreator/PyCCLanguageManager.java
index f71f13190e9c..f66ecff6ddd3 100644
--- a/python/educational-python/course-creator-python/src/com/jetbrains/edu/coursecreator/PyCCLanguageManager.java
+++ b/python/educational-python/course-creator-python/src/com/jetbrains/edu/coursecreator/PyCCLanguageManager.java
@@ -3,7 +3,7 @@ package com.jetbrains.edu.coursecreator;
import com.intellij.ide.fileTemplates.FileTemplate;
import com.intellij.ide.fileTemplates.FileTemplateManager;
import com.intellij.openapi.project.Project;
-import com.jetbrains.edu.EduNames;
+import com.jetbrains.edu.learning.core.EduNames;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/python/educational-python/course-creator-python/src/com/jetbrains/edu/coursecreator/PyCCProjectGenerator.java b/python/educational-python/course-creator-python/src/com/jetbrains/edu/coursecreator/PyCCProjectGenerator.java
index 29f60e14a0bd..ebffadfea5d2 100644
--- a/python/educational-python/course-creator-python/src/com/jetbrains/edu/coursecreator/PyCCProjectGenerator.java
+++ b/python/educational-python/course-creator-python/src/com/jetbrains/edu/coursecreator/PyCCProjectGenerator.java
@@ -15,7 +15,7 @@ import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.platform.DirectoryProjectGenerator;
import com.intellij.psi.PsiDirectory;
import com.intellij.psi.PsiManager;
-import com.jetbrains.edu.courseFormat.Course;
+import com.jetbrains.edu.learning.courseFormat.Course;
import com.jetbrains.edu.coursecreator.actions.CCCreateLesson;
import com.jetbrains.edu.coursecreator.actions.CCCreateTask;
import com.jetbrains.edu.coursecreator.ui.CCNewProjectPanel;
diff --git a/python/educational-python/student-python/resources/META-INF/plugin.xml b/python/educational-python/student-python/resources/META-INF/plugin.xml
index ac033acb3fd5..a6c07367a459 100644
--- a/python/educational-python/student-python/resources/META-INF/plugin.xml
+++ b/python/educational-python/student-python/resources/META-INF/plugin.xml
@@ -18,7 +18,6 @@
com.intellij.modules.lang
com.intellij.modules.python
com.jetbrains.edu.interactivelearning
- com.jetbrains.edu.core
com.jetbrains.python.edu.core
diff --git a/python/educational-python/student-python/src/com/jetbrains/edu/learning/PyStudyCheckAction.java b/python/educational-python/student-python/src/com/jetbrains/edu/learning/PyStudyCheckAction.java
index 9ce243e6aa5c..b1320a50abcb 100644
--- a/python/educational-python/student-python/src/com/jetbrains/edu/learning/PyStudyCheckAction.java
+++ b/python/educational-python/student-python/src/com/jetbrains/edu/learning/PyStudyCheckAction.java
@@ -16,14 +16,13 @@ import com.intellij.openapi.ui.MessageType;
import com.intellij.openapi.util.Ref;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.wm.IdeFocusManager;
-import com.jetbrains.edu.courseFormat.StudyStatus;
-import com.jetbrains.edu.courseFormat.Task;
-import com.jetbrains.edu.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.courseFormat.StudyStatus;
+import com.jetbrains.edu.learning.courseFormat.Task;
+import com.jetbrains.edu.learning.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.actions.StudyCheckAction;
import com.jetbrains.edu.learning.actions.StudyRunAction;
-import com.jetbrains.edu.learning.actions.StudyToolbarAction;
import com.jetbrains.edu.learning.checker.StudyCheckTask;
import com.jetbrains.edu.learning.checker.StudyCheckUtils;
-import com.jetbrains.edu.learning.checker.StudyTestRunner;
import com.jetbrains.edu.learning.checker.StudyTestsOutputParser;
import com.jetbrains.edu.learning.editor.StudyEditor;
import icons.InteractiveLearningIcons;
@@ -57,7 +56,7 @@ public class PyStudyCheckAction extends StudyToolbarAction {
}
check(project);
}
-
+
protected void check(@NotNull Project project) {
ApplicationManager.getApplication().runWriteAction(() -> {
CommandProcessor.getInstance().runUndoTransparentAction(() -> {
diff --git a/python/educational-python/student-python/src/com/jetbrains/edu/learning/PyStudyDirectoryProjectGenerator.java b/python/educational-python/student-python/src/com/jetbrains/edu/learning/PyStudyDirectoryProjectGenerator.java
index d4d95ad5e5d1..df9db88d18ae 100644
--- a/python/educational-python/student-python/src/com/jetbrains/edu/learning/PyStudyDirectoryProjectGenerator.java
+++ b/python/educational-python/student-python/src/com/jetbrains/edu/learning/PyStudyDirectoryProjectGenerator.java
@@ -16,7 +16,7 @@ import com.intellij.psi.PsiDirectory;
import com.intellij.psi.PsiManager;
import com.jetbrains.edu.learning.courseGeneration.StudyProjectGenerator;
import com.jetbrains.edu.learning.ui.StudyNewProjectPanel;
-import com.jetbrains.edu.stepic.CourseInfo;
+import com.jetbrains.edu.learning.stepic.CourseInfo;
import com.jetbrains.python.newProject.PythonProjectGenerator;
import icons.InteractiveLearningPythonIcons;
import org.jetbrains.annotations.Nls;
diff --git a/python/educational-python/student-python/src/com/jetbrains/edu/learning/PyStudyExecutor.java b/python/educational-python/student-python/src/com/jetbrains/edu/learning/PyStudyExecutor.java
index c0f5b10b7341..a056dc186873 100644
--- a/python/educational-python/student-python/src/com/jetbrains/edu/learning/PyStudyExecutor.java
+++ b/python/educational-python/student-python/src/com/jetbrains/edu/learning/PyStudyExecutor.java
@@ -28,7 +28,7 @@ import com.intellij.openapi.ui.popup.Balloon;
import com.intellij.openapi.ui.popup.BalloonBuilder;
import com.intellij.openapi.ui.popup.JBPopupFactory;
import com.intellij.openapi.vfs.VirtualFile;
-import com.jetbrains.edu.courseFormat.Task;
+import com.jetbrains.edu.learning.courseFormat.Task;
import com.jetbrains.edu.learning.checker.StudyExecutor;
import com.jetbrains.edu.learning.checker.StudyTestRunner;
import com.jetbrains.edu.learning.courseFormat.UserTest;
diff --git a/python/educational-python/student-python/src/com/jetbrains/edu/learning/PyStudyLanguageManager.java b/python/educational-python/student-python/src/com/jetbrains/edu/learning/PyStudyLanguageManager.java
index a3d9e62854c3..5cb6c220d3fc 100644
--- a/python/educational-python/student-python/src/com/jetbrains/edu/learning/PyStudyLanguageManager.java
+++ b/python/educational-python/student-python/src/com/jetbrains/edu/learning/PyStudyLanguageManager.java
@@ -1,6 +1,6 @@
package com.jetbrains.edu.learning;
-import com.jetbrains.edu.EduNames;
+import com.jetbrains.edu.learning.core.EduNames;
import org.jetbrains.annotations.NotNull;
public class PyStudyLanguageManager implements StudyLanguageManager {
diff --git a/python/educational-python/student-python/src/com/jetbrains/edu/learning/PyStudyTestRunner.java b/python/educational-python/student-python/src/com/jetbrains/edu/learning/PyStudyTestRunner.java
index 6c74c41575fb..ba4e268da13c 100644
--- a/python/educational-python/student-python/src/com/jetbrains/edu/learning/PyStudyTestRunner.java
+++ b/python/educational-python/student-python/src/com/jetbrains/edu/learning/PyStudyTestRunner.java
@@ -8,8 +8,8 @@ import com.intellij.openapi.project.Project;
import com.intellij.openapi.projectRoots.Sdk;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.vfs.VirtualFile;
-import com.jetbrains.edu.courseFormat.Course;
-import com.jetbrains.edu.courseFormat.Task;
+import com.jetbrains.edu.learning.courseFormat.Course;
+import com.jetbrains.edu.learning.courseFormat.Task;
import com.jetbrains.edu.learning.checker.StudyTestRunner;
import com.jetbrains.python.sdk.PythonSdkType;
import org.jetbrains.annotations.NotNull;
diff --git a/python/educational-python/student-python/src/com/jetbrains/edu/learning/PyStudyToolWindowConfigurator.java b/python/educational-python/student-python/src/com/jetbrains/edu/learning/PyStudyToolWindowConfigurator.java
index b62d5afc9372..70fd8ba7faf6 100644
--- a/python/educational-python/student-python/src/com/jetbrains/edu/learning/PyStudyToolWindowConfigurator.java
+++ b/python/educational-python/student-python/src/com/jetbrains/edu/learning/PyStudyToolWindowConfigurator.java
@@ -2,7 +2,7 @@ package com.jetbrains.edu.learning;
import com.intellij.openapi.actionSystem.DefaultActionGroup;
import com.intellij.openapi.project.Project;
-import com.jetbrains.edu.courseFormat.Course;
+import com.jetbrains.edu.learning.courseFormat.Course;
import org.jetbrains.annotations.NotNull;
public class PyStudyToolWindowConfigurator extends StudyBaseToolWindowConfigurator {
diff --git a/python/educational-python/student-python/src/com/jetbrains/edu/learning/actions/PyStudyIntroductionCourseAction.java b/python/educational-python/student-python/src/com/jetbrains/edu/learning/actions/PyStudyIntroductionCourseAction.java
index a99d68b02ac4..eb936e082c51 100644
--- a/python/educational-python/student-python/src/com/jetbrains/edu/learning/actions/PyStudyIntroductionCourseAction.java
+++ b/python/educational-python/student-python/src/com/jetbrains/edu/learning/actions/PyStudyIntroductionCourseAction.java
@@ -23,7 +23,7 @@ import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ProjectManager;
import com.intellij.openapi.projectRoots.Sdk;
import com.jetbrains.edu.learning.PyStudyDirectoryProjectGenerator;
-import com.jetbrains.edu.stepic.CourseInfo;
+import com.jetbrains.edu.learning.stepic.CourseInfo;
import com.jetbrains.python.configuration.PyConfigurableInterpreterList;
import com.jetbrains.python.newProject.actions.GenerateProjectCallback;
import com.jetbrains.python.newProject.actions.ProjectSpecificSettingsStep;
diff --git a/python/educational-python/student-python/src/com/jetbrains/edu/learning/highlighting/PyStudyInspectionExtension.java b/python/educational-python/student-python/src/com/jetbrains/edu/learning/highlighting/PyStudyInspectionExtension.java
index 00c8c1ab5f16..66f627c5e37c 100644
--- a/python/educational-python/student-python/src/com/jetbrains/edu/learning/highlighting/PyStudyInspectionExtension.java
+++ b/python/educational-python/student-python/src/com/jetbrains/edu/learning/highlighting/PyStudyInspectionExtension.java
@@ -4,7 +4,7 @@ import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiFile;
import com.intellij.psi.PsiReference;
import com.intellij.psi.util.PsiTreeUtil;
-import com.jetbrains.edu.courseFormat.TaskFile;
+import com.jetbrains.edu.learning.courseFormat.TaskFile;
import com.jetbrains.edu.learning.StudyTaskManager;
import com.jetbrains.edu.learning.StudyUtils;
import com.jetbrains.python.inspections.PyInspectionExtension;
diff --git a/python/educational-python/student-python/student-python.iml b/python/educational-python/student-python/student-python.iml
index 4da02bccfbaa..1303661f14a5 100644
--- a/python/educational-python/student-python/student-python.iml
+++ b/python/educational-python/student-python/student-python.iml
@@ -13,7 +13,6 @@
-