PyFile (String path, Project project) { final VirtualFile vfile = LocalFileSystem.getInstance().findFileByIoFile(new File(path)); final PsiFile psi; if (vfile == null) { final File file = new File(path); try { final VirtualFile baseDir = project.getBaseDir(); final FileTemplateManager fileTemplateManager = FileTemplateManager.getInstance(project); final FileTemplate template = fileTemplateManager.getInternalTemplate("Python Script"); final Properties properties = fileTemplateManager.getDefaultProperties(); properties.setProperty("NAME", FileUtilRt.getNameWithoutExtension(file.getName())); final String content = template.getText(properties); psi = PyExtractSuperclassHelper.placeFile(project, StringUtil.notNullize( file.getParent(), baseDir != null ? baseDir .getPath() : "." ), file.getName(), content ); } catch (IOException e) { throw new IncorrectOperationException(String.format("Cannot create file '%s'", path), (Throwable)e); } } else { psi = PsiManager.getInstance(project).findFile(vfile); } if (!(psi instanceof PyFile)) { throw new IncorrectOperationException(PyPsiBundle.message( "refactoring.move.module.members.error.cannot.place.elements.into.nonpython.file")); } return (PyFile)psi; }