# eric7.Project.Project

Module implementing the project management functionality.

### Global Attributes

None

### Classes

Project | Class implementing the project management functionality.

### Functions

None

## Project

Class implementing the project management functionality.

### Signals

appendStderr(str)
  emitted after something was received from a QProcess on stderr
appendStdout(str)
  emitted after something was received from a QProcess on stdout
completeRepopulateItem(str)
  emitted after an item of the model was repopulated
designerFile(str)
  emitted to open a found designer file
directoryRemoved(str)
  emitted after a directory has been removed from the project
dirty(bool)
  emitted when the dirty state changes
lexerAssociationsChanged()
  emitted after the lexer associations have been changed
linguistFile(str)
  emitted to open a found translation file
newProject()
  emitted after a new project was generated
newProjectHooks()
  emitted after a new project was generated but before the newProject() signal is sent
prepareRepopulateItem(str)
  emitted before an item of the model is repopulated
projectAboutToBeCreated()
  emitted just before the project will be created
projectChanged()
  emitted to signal a change of the project
projectClosed(shutdown)
  emitted after a project was closed sending a flag indicating the IDE shutdown operation
projectClosedHooks()
  emitted after a project file was closed but before the projectClosed() signal is sent
projectFileRenamed(str, str)
  emitted after a file of the project has been renamed
projectFormAdded(str)
  emitted after a new form was added
projectFormCompiled(str)
  emitted after a form was compiled
projectFormRemoved(str)
  emitted after a form was removed
projectInterfaceAdded(str)
  emitted after a new IDL file was added
projectInterfaceRemoved(str)
  emitted after a IDL file was removed
projectLanguageAdded(str)
  emitted after a new language was added
projectLanguageAddedByCode(str)
  emitted after a new language was added. The language code is sent by this signal.
projectLanguageRemoved(str)
  emitted after a language was removed
projectOpened()
  emitted after a project file was read
projectOpenedHooks()
  emitted after a project file was read but before the projectOpened() signal is sent
projectOthersAdded(str)
  emitted after a file or directory was added to the OTHERS project data area
projectOthersRemoved(str)
  emitted after a file was removed from the OTHERS project data area
projectPropertiesChanged()
  emitted after the project properties were changed
projectProtocolAdded(str)
  emitted after a new proto file was added
projectProtocolRemoved(str)
  emitted after a proto file was removed
projectResourceAdded(str)
  emitted after a new resource file was added
projectResourceRemoved(str)
  emitted after a resource was removed
projectSourceAdded(str)
  emitted after a new source file was added
projectSourceRemoved(str)
  emitted after a source was removed
reinitVCS()
  emitted after the VCS has been reinitialized
showMenu(str, QMenu)
  emitted when a menu is about to be shown. The name of the menu and a reference to the menu are given.
sourceFile(str)
  emitted after a project file was read to open the main script
vcsCommitted()
  emitted to indicate a completed commit action
vcsStatusMonitorAllData(dict)
  emitted to signal all VCS status (key is project relative file name, value is status)
vcsStatusMonitorData(list)
  emitted to signal the VCS status data
vcsStatusMonitorInfo(str)
  emitted to signal some info of the monitoring thread
vcsStatusMonitorStatus(str, str)
  emitted to signal the status of the monitoring thread (ok, nok, op, off) and a status message

### Derived from

QObject

### Class Attributes

DefaultMake
DefaultMakefile
eols

### Class Methods

None

### Methods

Project | Constructor
__addRecursiveDirectory | Private method used to add all files of a directory tree.
__addSingleDirectory | Private method used to add all files of a single directory to the project.
__binaryTranslationFile | Private method to calculate the filename of the binary translations file given the name of the raw translations file.
__checkFilesExist | Private method to check, if the files in a list exist.
__checkProjectFileGroup | Private method to check, if a file is in a specific file group of the project.
__cleanupMake | Private method to clean up make related stuff.
__closeAllWindows | Private method to close all project related windows.
__createSnapshotSource | Private method to create a snapshot plugin version.
__createZipDirEntries | Private method to create dir entries in the zip file.
__deleteDebugProperties | Private method to delete the project debugger properties file (.edj or .e4d).
__deleteSession | Private method to delete the session file.
__doSearchNewFiles | Private method to search for new files in the project directory.
__executeMake | Private method to execute a project specific make run.
__initData | Private method to initialize the project data part.
__initDebugProperties | Private method to initialize the debug properties.
__initProjectTypes | Private method to initialize the list of supported project types.
__isInPdata | Private method used to check, if the passed in filename is project controlled..
__loadDiagram | Private slot to load a diagram from file.
__loadRecent | Private method to load the recently opened project filenames.
__makeFinished | Private slot handling the make process finished signal.
__makeReadStdErr | Private slot to process process output received via stderr.
__makeReadStdOut | Private slot to process process output received via stdout.
__openRecent | Private method to open a project from the list of rencently opened projects.
__pluginCreateArchives | Private slot to create eric plugin archives.
__pluginCreatePkgList | Private slot to create a PKGLIST file needed for archive file creation.
__pluginCreateSnapshotArchives | Private slot to create eric plugin archive snapshot releases.
__pluginExtractVersion | Private method to extract the version number entry.
__pluginVersionToTuple | Private method to convert a plug-in version string into a version tuple.
__readDebugProperties | Private method to read in the project debugger properties file (.edj or .e4d).
__readProject | Private method to read in a project (.epj or .e4p) file.
__readSession | Private method to read in the project session file (.esj or .e5s).
__readTasks | Private method to read in the project tasks file (.etj or .e6t).
__readUserProperties | Private method to read in the user specific project file (.eqj or .e4q).
__reorganizeFiles | Private method to reorganize files stored in the project.
__saveRecent | Private method to save the list of recently opened filenames.
__searchNewFiles | Private slot used to handle the search new files action.
__searchProjectFile | Private slot to show the Find Project File dialog.
__showCodeCoverage | Private slot used to show the code coverage information for the project files.
__showCodeMetrics | Private slot used to calculate some code metrics for the project files.
__showContextMenuApiDoc | Private slot called before the apidoc menu is shown.
__showContextMenuChecks | Private slot called before the checks menu is shown.
__showContextMenuDebugger | Private slot called before the Debugger menu is shown.
__showContextMenuGraphics | Private slot called before the graphics menu is shown.
__showContextMenuMake | Private slot called before the make menu is shown.
__showContextMenuPackagers | Private slot called before the packagers menu is shown.
__showContextMenuRecent | Private method to set up the recent projects menu.
__showContextMenuSession | Private slot called before the Session menu is shown.
__showContextMenuShow | Private slot called before the show menu is shown.
__showContextMenuVCS | Private slot called before the vcs menu is shown.
__showDebugProperties | Private slot to display the debugger properties dialog.
__showFiletypeAssociations | Private slot to display the filetype association dialog.
__showLexerAssociations | Private slot to display the lexer association dialog.
__showMenu | Private method to set up the project menu.
__showProfileData | Private slot used to show the profiling information for the project.
__showProperties | Private slot to display the properties dialog.
__showUserProperties | Private slot to display the user specific properties dialog.
__sourceExtensions | Private method to get the source extensions of a programming language.
__syncRecent | Private method to synchronize the list of recently opened projects with the central store.
__vcsConnectStatusMonitor | Private method to start the VCS monitor and connect its signals.
__vcsStatusChanged | Private slot to handle a change of the overall VCS status.
__writeDebugProperties | Private method to write the project debugger properties file (.edj).
__writeProject | Private method to save the project infos to a project file.
__writeSession | Private method to write the session data to an XML file (.esj).
__writeUserProperties | Private method to write the user specific project data to a JSON file.
addDirectory | Public method used to add all files of a directory to the project.
addEricActions | Public method to add actions to the list of actions.
addFiles | Public slot used to add files to the project.
addIdlDir | Public slot to add all IDL interfaces of a directory to the current project.
addIdlFiles | Public slot to add IDL interfaces to the current project.
addLanguage | Public slot used to add a language to the project.
addOthersDir | Public slot to add a directory to the OTHERS project data.
addOthersFiles | Public slot to add files to the OTHERS project data.
addProtoDir | Public slot to add all protocol files of a directory to the current project.
addProtoFiles | Public slot to add protocol files to the current project.
addResourceDir | Public slot to add all Qt resource files of a directory to the current project.
addResourceFiles | Public slot to add Qt resources to the current project.
addSourceDir | Public slot to add all source files of a directory to the current project.
addSourceFiles | Public slot to add source files to the current project.
addToOthers | Public method to add a file/directory to the OTHERS project data.
addUiDir | Public slot to add all forms of a directory to the current project.
addUiFiles | Public slot to add forms to the current project.
appendFile | Public method to append a file to the project.
checkAllScriptsDirty | Public method to check all scripts belonging to the project for their dirty status.
checkDirty | Public method to check dirty status and open a message window.
checkLanguageFiles | Public slot to check the language files after a release process.
checkVCSStatus | Public method to wake up the VCS status monitor thread.
clearHistories | Public method to clear the project related histories.
clearRecent | Public method to clear the recent projects menu.
clearStatusMonitorCachedState | Public method to clear the cached VCS state of a file/directory.
closeProject | Public slot to close the current project.
copyDirectory | Public slot to copy a directory.
createNewProject | Public slot to built a new project.
createProjectManagementDir | Public method to create the project management directory.
deleteDirectory | Public method to delete a directory from the project directory.
deleteFile | Public method to delete a file from the project directory.
deleteLanguageFile | Public slot to delete a translation from the project directory.
executeMake | Public slot to execute a project specific make run (auto-run) (execute or question).
getAbsolutePath | Public method to convert a project relative file path to an absolute file path.
getAbsoluteUniversalPath | Public method to convert a project relative file path with universal separators to an absolute file path.
getActions | Public method to get a list of all actions.
getData | Public method to get data out of the project data store.
getDebugProperty | Public method to retrieve a debugger property.
getDebuggerFilters | Public method to get the debugger filters for a programming language.
getDefaultRccCompilerParameters | Public method to get the default rcc compiler parameters.
getDefaultSourceExtension | Public method to get the default extension for the project's programming language.
getDocstringType | Public method to get the configured docstring style.
getEditorLexerAssoc | Public method to retrieve a lexer association.
getEolString | Public method to get the EOL-string to be used by the project.
getFiles | Public method to get all files starting with a common prefix.
getFiletypeAssociations | Public method to get the list of file type associations for the given association type.
getHash | Public method to get the project hash.
getIgnorePatterns | Public method to get the list of file name patterns for files to be ignored.
getMainScript | Public method to return the main script filename.
getMenu | Public method to get a reference to the main menu or a submenu.
getModel | Public method to get a reference to the project browser model.
getMostRecent | Public method to get the most recently opened project.
getProgrammingLanguages | Public method to get the programming languages supported by project.
getProjectAuthor | Public method to get the author of the project.
getProjectAuthorEmail | Public method to get the email address of the project author.
getProjectDescription | Public method to get the description of the project.
getProjectDictionaries | Public method to get the names of the project specific dictionaries.
getProjectFile | Public method to get the path of the project file.
getProjectFiles | Public method to get the file entries of the given type.
getProjectLanguage | Public method to get the project's programming language.
getProjectManagementDir | Public method to get the path of the management directory.
getProjectName | Public method to get the name of the project.
getProjectPath | Public method to get the project path.
getProjectSpellLanguage | Public method to get the project's programming language.
getProjectType | Public method to get the type of the project.
getProjectTypes | Public method to get the list of supported project types.
getProjectVersion | Public mehod to get the version number of the project.
getRelativePath | Public method to convert a file path to a project relative file path.
getRelativeUniversalPath | Public method to convert a file path to a project relative file path with universal separators.
getSources | Public method to return the source script files.
getStatusMonitorAutoUpdate | Public method to retrieve the status of the auto update function.
getStatusMonitorInterval | Public method to get the monitor interval.
getTranslationPattern | Public method to get the translation pattern.
getUicParameter | Public method to get a named uic related parameter.
getVcs | Public method to get a reference to the VCS object.
handleApplicationDiagram | Public method to handle the application diagram context menu action.
handlePreferencesChanged | Public slot used to handle the preferencesChanged signal.
hasDefaultDocstringParameter | Public method to test, if the project contains the default docstring parameter.
hasDefaultIdlCompilerParameters | Public method to test, if the project contains the default IDL compiler parameters.
hasDefaultMakeParameters | Public method to test, if the project contains the default make parameters.
hasDefaultRccCompilerParameters | Public method to test, if the project contains the default rcc compiler parameters.
hasDefaultUicCompilerParameters | Public method to test, if the project contains the default uic compiler parameters.
hasEntry | Public method to check the project for a file.
hasProjectType | Public method to check, if a project type is already registered.
initActions | Public slot to initialize the project related actions.
initFileTypes | Public method to initialize the filetype associations with default values.
initMenus | Public slot to initialize the project menus.
initToolbars | Public slot to initialize the project toolbar and the basic VCS toolbar.
initVCS | Public method used to instantiate a vcs system.
isDebugPropertiesLoaded | Public method to return the status of the debug properties.
isDirty | Public method to return the dirty state.
isJavaScriptProject | Public method to check, if this project is a JavaScript project.
isMakeEnabled | Public method to test, if make is enabled for the project.
isMicroPythonProject | Public method to check, if this project is a MicroPython project.
isMixedLanguageProject | Public method to check, if this is a mixed language project.
isOpen | Public method to return the opened state.
isProjectFile | Public method used to check, if the passed in filename belongs to the project.
isProjectForm | Public method used to check, if the passed in filename belongs to the project forms.
isProjectInterface | Public method used to check, if the passed in filename belongs to the project interfaces.
isProjectProtocol | Public method used to check, if the passed in filename belongs to the project protocols.
isProjectResource | Public method used to check, if the passed in filename belongs to the project resources.
isProjectSource | Public method used to check, if the passed in filename belongs to the project sources.
isPy3Project | Public method to check, if this project is a Python3 project.
isPythonProject | Public method to check, if this project is a Python3 or MicroPython project.
isRubyProject | Public method to check, if this project is a Ruby project.
moveDirectory | Public slot to move a directory.
newProjectAddFiles | Public method to add files to a new project.
openProject | Public slot to open a project.
othersAdded | Public slot to be called, if something was added to the OTHERS project data area.
registerProjectType | Public method to register a project type.
removeDirectory | Public method to remove a directory from the project.
removeEricActions | Public method to remove actions from the list of actions.
removeFile | Public slot to remove a file from the project.
removeLanguageFile | Public slot to remove a translation from the project.
renameFile | Public slot to rename a file of the project.
renameFileInPdata | Public method to rename a file in the pdata structure.
renameMainScript | Public method to rename the main script.
reopenProject | Public slot to reopen the current project.
repopulateItem | Public slot to repopulate a named item.
resetVCS | Public method to reset the VCS.
saveAllScripts | Public method to save all scripts belonging to the project.
saveProject | Public slot to save the current project.
saveProjectAs | Public slot to save the current project to a different file.
setData | Public method to store data in the project data store.
setDbgInfo | Public method to set the debugging information.
setDirty | Public method to set the dirty state.
setStatusMonitorAutoUpdate | Public method to enable the auto update function.
setStatusMonitorInterval | Public method to se the interval of the VCS status monitor thread.
setTranslationPattern | Public method to set the translation pattern.
startFileSystemMonitoring | Public method to (re)start monitoring the project file system.
startStatusMonitor | Public method to start the VCS status monitor thread.
startswithProjectPath | Public method to check, if a path starts with the project path.
stopFileSystemMonitoring | Public method to stop monitoring the project file system.
stopStatusMonitor | Public method to stop the VCS status monitor thread.
unregisterProjectType | Public method to unregister a project type.
updateFileTypes | Public method to update the filetype associations with new default values.
useSystemEol | Public method to check, if the project uses the system eol setting.
vcsSoftwareAvailable | Public method to check, if some supported VCS software is available to the IDE.
writeTasks | Public method to write the tasks data to a JSON file (.etj).

### Static Methods

None

#### Project (Constructor)

Project(parent=None, filename=None)

Constructor

parent
  parent widget (usually the ui object) (QWidget)
filename
  optional filename of a project file to open (string)

#### Project.__addRecursiveDirectory

__addRecursiveDirectory(filetype, source, target)

Private method used to add all files of a directory tree.

The tree is rooted at source to another one rooted at target. This method decents down to the lowest subdirectory.

filetype
  type of files to add (string)
source
  source directory (string)
target
  target directory (string)

#### Project.__addSingleDirectory

__addSingleDirectory(filetype, source, target, quiet=False)

Private method used to add all files of a single directory to the project.

filetype
  type of files to add (string)
source
  source directory (string)
target
  target directory (string)
quiet
  flag indicating quiet operations (boolean)

#### Project.__binaryTranslationFile

__binaryTranslationFile(langFile)

Private method to calculate the filename of the binary translations file given the name of the raw translations file.

langFile
  name of the raw translations file (string)

Return:
  name of the binary translations file (string)

#### Project.__checkFilesExist

__checkFilesExist(index)

Private method to check, if the files in a list exist.

The files in the indicated list are checked for existance in the filesystem. Non existant files are removed from the list and the dirty state of the project is changed accordingly.

index
  key of the list to be checked (string)

#### Project.__checkProjectFileGroup

__checkProjectFileGroup(fn, group)

Private method to check, if a file is in a specific file group of the project.

fn
  filename to be checked (string)
group
  group to check (string)

Return:
  flag indicating membership (boolean)

#### Project.__cleanupMake

__cleanupMake()

Private method to clean up make related stuff.

#### Project.__closeAllWindows

__closeAllWindows()

Private method to close all project related windows.

#### Project.__createSnapshotSource

__createSnapshotSource(filename)

Private method to create a snapshot plugin version.

The version entry in the plugin module is modified to signify a snapshot version. This method appends the string "-snapshot-" and date indicator to the version string.

filename
  name of the plugin file to modify (string)

Return:
  modified source (bytes), snapshot version string (string)

#### Project.__createZipDirEntries

__createZipDirEntries(path, zipFile)

Private method to create dir entries in the zip file.

path
  name of the directory entry to create (string)
zipFile
  open ZipFile object (zipfile.ZipFile)

#### Project.__deleteDebugProperties

__deleteDebugProperties()

Private method to delete the project debugger properties file (.edj or .e4d).

#### Project.__deleteSession

__deleteSession()

Private method to delete the session file.

#### Project.__doSearchNewFiles

__doSearchNewFiles(AI=True, onUserDemand=False)

Private method to search for new files in the project directory.

If new files were found, it shows a dialog listing these files and gives the user the opportunity to select the ones he wants to include. If 'Automatic Inclusion' is enabled, the new files are automatically added to the project.

AI
  flag indicating whether the automatic inclusion should be honoured (boolean)
onUserDemand
  flag indicating whether this method was requested by the user via a menu action (boolean)

#### Project.__executeMake

__executeMake(questionOnly=False, interactive=True)

Private method to execute a project specific make run.

questionOnly (bool)
  flag indicating to ask make for changes only
interactive (bool)
  flag indicating an interactive invocation (i.e. through a menu action)

#### Project.__initData

__initData()

Private method to initialize the project data part.

#### Project.__initDebugProperties

__initDebugProperties()

Private method to initialize the debug properties.

#### Project.__initProjectTypes

__initProjectTypes()

Private method to initialize the list of supported project types.

#### Project.__isInPdata

__isInPdata(fn)

Private method used to check, if the passed in filename is project controlled..

fn (str)
  filename to be checked

Return:
  flag indicating membership

Return Type:
  bool

#### Project.__loadDiagram

__loadDiagram()

Private slot to load a diagram from file.

#### Project.__loadRecent

__loadRecent()

Private method to load the recently opened project filenames.

#### Project.__makeFinished

__makeFinished(exitCode, exitStatus, questionOnly, interactive=True)

Private slot handling the make process finished signal.

exitCode (int)
  exit code of the make process
exitStatus (QProcess.ExitStatus)
  exit status of the make process
questionOnly (bool)
  flag indicating a test only run
interactive (bool)
  flag indicating an interactive invocation (i.e. through a menu action)

#### Project.__makeReadStdErr

__makeReadStdErr()

Private slot to process process output received via stderr.

#### Project.__makeReadStdOut

__makeReadStdOut()

Private slot to process process output received via stdout.

#### Project.__openRecent

__openRecent(act)

Private method to open a project from the list of rencently opened projects.

act
  reference to the action that triggered (QAction)

#### Project.__pluginCreateArchives

__pluginCreateArchives(snapshot=False)

Private slot to create eric plugin archives.

snapshot
  flag indicating snapshot archives (boolean)

#### Project.__pluginCreatePkgList

__pluginCreatePkgList()

Private slot to create a PKGLIST file needed for archive file creation.

#### Project.__pluginCreateSnapshotArchives

__pluginCreateSnapshotArchives()

Private slot to create eric plugin archive snapshot releases.

#### Project.__pluginExtractVersion

__pluginExtractVersion(filename)

Private method to extract the version number entry.

filename
  name of the plugin file (string)

Return:
  version string (string)

#### Project.__pluginVersionToTuple

__pluginVersionToTuple(versionStr)

Private method to convert a plug-in version string into a version tuple.

versionStr (str)
  version string to be converted

Return:
  version info as a tuple

Return Type:
  tuple of int and str

#### Project.__readDebugProperties

__readDebugProperties(quiet=False)

Private method to read in the project debugger properties file (.edj or .e4d).

quiet
  flag indicating quiet operations. If this flag is true, no errors are reported.

#### Project.__readProject

__readProject(fn)

Private method to read in a project (.epj or .e4p) file.

fn
  filename of the project file to be read (string)

Return:
  flag indicating success

#### Project.__readSession

__readSession(quiet=False, indicator="")

Private method to read in the project session file (.esj or .e5s).

quiet
  flag indicating quiet operations. If this flag is true, no errors are reported.
indicator
  indicator string (string)

#### Project.__readTasks

__readTasks()

Private method to read in the project tasks file (.etj or .e6t).

#### Project.__readUserProperties

__readUserProperties()

Private method to read in the user specific project file (.eqj or .e4q).

#### Project.__reorganizeFiles

__reorganizeFiles()

Private method to reorganize files stored in the project.

#### Project.__saveRecent

__saveRecent()

Private method to save the list of recently opened filenames.

#### Project.__searchNewFiles

__searchNewFiles()

Private slot used to handle the search new files action.

#### Project.__searchProjectFile

__searchProjectFile()

Private slot to show the Find Project File dialog.

#### Project.__showCodeCoverage

__showCodeCoverage()

Private slot used to show the code coverage information for the project files.

#### Project.__showCodeMetrics

__showCodeMetrics()

Private slot used to calculate some code metrics for the project files.

#### Project.__showContextMenuApiDoc

__showContextMenuApiDoc()

Private slot called before the apidoc menu is shown.

#### Project.__showContextMenuChecks

__showContextMenuChecks()

Private slot called before the checks menu is shown.

#### Project.__showContextMenuDebugger

__showContextMenuDebugger()

Private slot called before the Debugger menu is shown.

#### Project.__showContextMenuGraphics

__showContextMenuGraphics()

Private slot called before the graphics menu is shown.

#### Project.__showContextMenuMake

__showContextMenuMake()

Private slot called before the make menu is shown.

#### Project.__showContextMenuPackagers

__showContextMenuPackagers()

Private slot called before the packagers menu is shown.

#### Project.__showContextMenuRecent

__showContextMenuRecent()

Private method to set up the recent projects menu.

#### Project.__showContextMenuSession

__showContextMenuSession()

Private slot called before the Session menu is shown.

#### Project.__showContextMenuShow

__showContextMenuShow()

Private slot called before the show menu is shown.

#### Project.__showContextMenuVCS

__showContextMenuVCS()

Private slot called before the vcs menu is shown.

#### Project.__showDebugProperties

__showDebugProperties()

Private slot to display the debugger properties dialog.

#### Project.__showFiletypeAssociations

__showFiletypeAssociations()

Private slot to display the filetype association dialog.

#### Project.__showLexerAssociations

__showLexerAssociations()

Private slot to display the lexer association dialog.

#### Project.__showMenu

__showMenu()

Private method to set up the project menu.

#### Project.__showProfileData

__showProfileData()

Private slot used to show the profiling information for the project.

#### Project.__showProperties

__showProperties()

Private slot to display the properties dialog.

#### Project.__showUserProperties

__showUserProperties()

Private slot to display the user specific properties dialog.

#### Project.__sourceExtensions

__sourceExtensions(language)

Private method to get the source extensions of a programming language.

language
  programming language (string)

Return:
  source extensions (list of string)

#### Project.__syncRecent

__syncRecent()

Private method to synchronize the list of recently opened projects with the central store.

#### Project.__vcsConnectStatusMonitor

__vcsConnectStatusMonitor()

Private method to start the VCS monitor and connect its signals.

#### Project.__vcsStatusChanged

__vcsStatusChanged()

Private slot to handle a change of the overall VCS status.

#### Project.__writeDebugProperties

__writeDebugProperties(quiet=False)

Private method to write the project debugger properties file (.edj).

quiet
  flag indicating quiet operations. If this flag is true, no errors are reported.

#### Project.__writeProject

__writeProject(fn=None)

Private method to save the project infos to a project file.

fn
  optional filename of the project file to be written (string). If fn is None, the filename stored in the project object is used. This is the 'save' action. If fn is given, this filename is used instead of the one in the project object. This is the 'save as' action.

Return:
  flag indicating success

#### Project.__writeSession

__writeSession(quiet=False, indicator="")

Private method to write the session data to an XML file (.esj).

quiet
  flag indicating quiet operations. If this flag is true, no errors are reported.
indicator
  indicator string (string)

#### Project.__writeUserProperties

__writeUserProperties()

Private method to write the user specific project data to a JSON file.

#### Project.addDirectory

addDirectory(fileTypeFilter=None, startdir=None)

Public method used to add all files of a directory to the project.

fileTypeFilter (str out of source, form, resource, interface, protocol, others)
  filter to be used by the add directory dialog
startdir (str)
  start directory for the selection dialog

#### Project.addEricActions

addEricActions(actions)

Public method to add actions to the list of actions.

actions
  list of actions (list of EricAction)

#### Project.addFiles

addFiles(fileTypeFilter=None, startdir=None)

Public slot used to add files to the project.

fileTypeFilter (str out of source, form, resource, interface, protocol, others)
  filter to be used by the add file dialog
startdir (str)
  start directory for the selection dialog

#### Project.addIdlDir

addIdlDir()

Public slot to add all IDL interfaces of a directory to the current project.

#### Project.addIdlFiles

addIdlFiles()

Public slot to add IDL interfaces to the current project.

#### Project.addLanguage

addLanguage()

Public slot used to add a language to the project.

#### Project.addOthersDir

addOthersDir()

Public slot to add a directory to the OTHERS project data.

#### Project.addOthersFiles

addOthersFiles()

Public slot to add files to the OTHERS project data.

#### Project.addProtoDir

addProtoDir()

Public slot to add all protocol files of a directory to the current project.

#### Project.addProtoFiles

addProtoFiles()

Public slot to add protocol files to the current project.

#### Project.addResourceDir

addResourceDir()

Public slot to add all Qt resource files of a directory to the current project.

#### Project.addResourceFiles

addResourceFiles()

Public slot to add Qt resources to the current project.

#### Project.addSourceDir

addSourceDir()

Public slot to add all source files of a directory to the current project.

#### Project.addSourceFiles

addSourceFiles()

Public slot to add source files to the current project.

#### Project.addToOthers

addToOthers(fn)

Public method to add a file/directory to the OTHERS project data.

fn
  file name or directory name to add (string)

#### Project.addUiDir

addUiDir()

Public slot to add all forms of a directory to the current project.

#### Project.addUiFiles

addUiFiles()

Public slot to add forms to the current project.

#### Project.appendFile

appendFile(fn, isSourceFile=False, updateModel=True)

Public method to append a file to the project.

fn
  filename to be added to the project (string)
isSourceFile
  flag indicating that this is a source file even if it doesn't have the source extension (boolean)
updateModel
  flag indicating an update of the model is requested (boolean)

#### Project.checkAllScriptsDirty

checkAllScriptsDirty(reportSyntaxErrors=False)

Public method to check all scripts belonging to the project for their dirty status.

reportSyntaxErrors
  flag indicating special reporting for syntax errors (boolean)

Return:
  flag indicating success (boolean)

#### Project.checkDirty

checkDirty()

Public method to check dirty status and open a message window.

Return:
  flag indicating whether this operation was successful (boolean)

#### Project.checkLanguageFiles

checkLanguageFiles()

Public slot to check the language files after a release process.

#### Project.checkVCSStatus

checkVCSStatus()

Public method to wake up the VCS status monitor thread.

#### Project.clearHistories

clearHistories()

Public method to clear the project related histories.

#### Project.clearRecent

clearRecent()

Public method to clear the recent projects menu.

#### Project.clearStatusMonitorCachedState

clearStatusMonitorCachedState(name)

Public method to clear the cached VCS state of a file/directory.

name
  name of the entry to be cleared (string)

#### Project.closeProject

closeProject(reopen=False, noSave=False, shutdown=False)

Public slot to close the current project.

reopen (bool)
  flag indicating a reopening of the project
noSave (bool)
  flag indicating to not perform save actions
shutdown (bool)
  flag indicating the IDE shutdown

Return:
  flag indicating success

Return Type:
  bool

#### Project.copyDirectory

copyDirectory(olddn, newdn)

Public slot to copy a directory.

olddn
  original directory name (string)
newdn
  new directory name (string)

#### Project.createNewProject

createNewProject()

Public slot to built a new project.

This method displays the new project dialog and initializes the project object with the data entered.

#### Project.createProjectManagementDir

createProjectManagementDir()

Public method to create the project management directory.

It does nothing, if it already exists.

#### Project.deleteDirectory

deleteDirectory(dn)

Public method to delete a directory from the project directory.

dn
  directory name to be removed from the project

Return:
  flag indicating success (boolean)

#### Project.deleteFile

deleteFile(fn)

Public method to delete a file from the project directory.

fn
  filename to be deleted from the project

Return:
  flag indicating success (boolean)

#### Project.deleteLanguageFile

deleteLanguageFile(langFile)

Public slot to delete a translation from the project directory.

langFile
  the translation file to be removed (string)

#### Project.executeMake

executeMake()

Public slot to execute a project specific make run (auto-run) (execute or question).

#### Project.getAbsolutePath

getAbsolutePath(fn)

Public method to convert a project relative file path to an absolute file path.

fn
  file or directory name to convert (string)

Return:
  absolute path (string)

#### Project.getAbsoluteUniversalPath

getAbsoluteUniversalPath(fn)

Public method to convert a project relative file path with universal separators to an absolute file path.

fn
  file or directory name to convert (string)

Return:
  absolute path (string)

#### Project.getActions

getActions()

Public method to get a list of all actions.

Return:
  list of all actions (list of EricAction)

#### Project.getData

getData(category, key)

Public method to get data out of the project data store.

category
  category of the data to get (string, one of PROJECTTYPESPECIFICDATA, CHECKERSPARMS, PACKAGERSPARMS, DOCUMENTATIONPARMS or OTHERTOOLSPARMS)
key
  key of the data entry to get (string).

Return:
  a copy of the requested data or None

#### Project.getDebugProperty

getDebugProperty(key)

Public method to retrieve a debugger property.

key
  key of the property (string)

Return:
  value of the property

#### Project.getDebuggerFilters

getDebuggerFilters(language)

Public method to get the debugger filters for a programming language.

language (str)
  programming language

Return:
  filter string

Return Type:
  str

#### Project.getDefaultRccCompilerParameters

getDefaultRccCompilerParameters()

Public method to get the default rcc compiler parameters.

Return:
  dictionary containing the default rcc compiler parameters

Return Type:
  dict

#### Project.getDefaultSourceExtension

getDefaultSourceExtension()

Public method to get the default extension for the project's programming language.

Return:
  default extension (including the dot) (string)

#### Project.getDocstringType

getDocstringType()

Public method to get the configured docstring style.

Return:
  configured docstring style

Return Type:
  str

#### Project.getEditorLexerAssoc

getEditorLexerAssoc(filename)

Public method to retrieve a lexer association.

filename
  filename used to determine the associated lexer language (string)

Return:
  the requested lexer language (string)

#### Project.getEolString

getEolString()

Public method to get the EOL-string to be used by the project.

Return:
  eol string (string)

#### Project.getFiles

getFiles(start)

Public method to get all files starting with a common prefix.

start
  prefix (string)

Return:
  list of files starting with a common prefix (list of strings)

#### Project.getFiletypeAssociations

getFiletypeAssociations(associationType)

Public method to get the list of file type associations for the given association type.

associationType (str)
  type of the association (one of FORMS, INTERFACES, OTHERS, PROTOCOLS, RESOURCES, SOURCES, TRANSLATIONS or __IGNORE__)

Return:
  list of file patterns for the given type

Return Type:
  list of str

#### Project.getHash

getHash()

Public method to get the project hash.

Return:
  project hash as a hex string (string)

#### Project.getIgnorePatterns

getIgnorePatterns()

Public method to get the list of file name patterns for files to be ignored.

Return:
  list of ignore file name patterns

Return Type:
  list of str

#### Project.getMainScript

getMainScript(normalized=False)

Public method to return the main script filename.

normalized
  flag indicating a normalized filename is wanted (boolean)

Return:
  filename of the projects main script (string)

#### Project.getMenu

getMenu(menuName)

Public method to get a reference to the main menu or a submenu.

menuName
  name of the menu (string)

Return:
  reference to the requested menu (QMenu) or None

#### Project.getModel

getModel()

Public method to get a reference to the project browser model.

Return:
  reference to the project browser model (ProjectBrowserModel)

#### Project.getMostRecent

getMostRecent()

Public method to get the most recently opened project.

Return:
  path of the most recently opened project (string)

#### Project.getProgrammingLanguages

getProgrammingLanguages()

Public method to get the programming languages supported by project.

Return:
  list of supported programming languages (list of string)

#### Project.getProjectAuthor

getProjectAuthor()

Public method to get the author of the project.

Return:
  author name

Return Type:
  str

#### Project.getProjectAuthorEmail

getProjectAuthorEmail()

Public method to get the email address of the project author.

Return:
  project author email

Return Type:
  str

#### Project.getProjectDescription

getProjectDescription()

Public method to get the description of the project.

Return:
  project description

Return Type:
  str

#### Project.getProjectDictionaries

getProjectDictionaries()

Public method to get the names of the project specific dictionaries.

Return:
  tuple of two strings giving the absolute path names of the project specific word and exclude list

#### Project.getProjectFile

getProjectFile()

Public method to get the path of the project file.

Return:
  path of the project file (string)

#### Project.getProjectFiles

getProjectFiles(fileType, normalized=False)

Public method to get the file entries of the given type.

fileType (str)
  project file type (one of SOURCES, FORMS, RESOURCES, INTERFACES, PROTOCOLS, OTHERS, TRANSLATIONS)
normalized (boolean)
  flag indicating normalized file names are wanted

Return:
  list of file names

Return Type:
  list of str

Raises ValueError:
  raised when an unsupported file type is given

#### Project.getProjectLanguage

getProjectLanguage()

Public method to get the project's programming language.

Return:
  programming language (string)

#### Project.getProjectManagementDir

getProjectManagementDir()

Public method to get the path of the management directory.

Return:
  path of the management directory (string)

#### Project.getProjectName

getProjectName()

Public method to get the name of the project.

The project name is determined from the name of the project file.

Return:
  name of the project (string)

#### Project.getProjectPath

getProjectPath()

Public method to get the project path.

Return:
  project path (string)

#### Project.getProjectSpellLanguage

getProjectSpellLanguage()

Public method to get the project's programming language.

Return:
  programming language (string)

#### Project.getProjectType

getProjectType()

Public method to get the type of the project.

Return:
  UI type of the project (string)

#### Project.getProjectTypes

getProjectTypes(progLanguage="")

Public method to get the list of supported project types.

progLanguage
  programming language to get project types for (string)

Return:
  reference to the dictionary of project types.

#### Project.getProjectVersion

getProjectVersion()

Public mehod to get the version number of the project.

Return:
  version number

Return Type:
  str

#### Project.getRelativePath

getRelativePath(path)

Public method to convert a file path to a project relative file path.

path
  file or directory name to convert (string)

Return:
  project relative path or unchanged path, if path doesn't belong to the project (string)

#### Project.getRelativeUniversalPath

getRelativeUniversalPath(path)

Public method to convert a file path to a project relative file path with universal separators.

path
  file or directory name to convert (string)

Return:
  project relative path or unchanged path, if path doesn't belong to the project (string)

#### Project.getSources

getSources(normalized=False)

Public method to return the source script files.

normalized
  flag indicating a normalized filename is wanted (boolean)

Return:
  list of the projects scripts (list of string)

#### Project.getStatusMonitorAutoUpdate

getStatusMonitorAutoUpdate()

Public method to retrieve the status of the auto update function.

Return:
  status of the auto update function (boolean)

#### Project.getStatusMonitorInterval

getStatusMonitorInterval()

Public method to get the monitor interval.

Return:
  interval in seconds (integer)

#### Project.getTranslationPattern

getTranslationPattern()

Public method to get the translation pattern.

Return:
  translation pattern (string)

#### Project.getUicParameter

getUicParameter(name)

Public method to get a named uic related parameter.

name (str)
  name of the parameter

Return:
  value of the given parameter

Return Type:
  any, None in case on non-existence

#### Project.getVcs

getVcs()

Public method to get a reference to the VCS object.

Return:
  reference to the VCS object

#### Project.handleApplicationDiagram

handleApplicationDiagram()

Public method to handle the application diagram context menu action.

#### Project.handlePreferencesChanged

handlePreferencesChanged()

Public slot used to handle the preferencesChanged signal.

#### Project.hasDefaultDocstringParameter

hasDefaultDocstringParameter()

Public method to test, if the project contains the default docstring parameter.

Return:
  flag indicating default parameter

Return Type:
  bool

#### Project.hasDefaultIdlCompilerParameters

hasDefaultIdlCompilerParameters()

Public method to test, if the project contains the default IDL compiler parameters.

Return:
  flag indicating default parameter set

Return Type:
  bool

#### Project.hasDefaultMakeParameters

hasDefaultMakeParameters()

Public method to test, if the project contains the default make parameters.

Return:
  flag indicating default parameter set

Return Type:
  bool

#### Project.hasDefaultRccCompilerParameters

hasDefaultRccCompilerParameters()

Public method to test, if the project contains the default rcc compiler parameters.

Return:
  flag indicating default parameter set

Return Type:
  bool

#### Project.hasDefaultUicCompilerParameters

hasDefaultUicCompilerParameters()

Public method to test, if the project contains the default uic compiler parameters.

Return:
  flag indicating default parameter set

Return Type:
  bool

#### Project.hasEntry

hasEntry(fn)

Public method to check the project for a file.

fn
  filename to be checked (string)

Return:
  flag indicating, if the project contains the file (boolean)

#### Project.hasProjectType

hasProjectType(type_, progLanguage="")

Public method to check, if a project type is already registered.

type_
  internal type designator (string)
progLanguage
  programming language of the project type (string)

Return:
  flag indicating presence of the project type (boolean)

#### Project.initActions

initActions()

Public slot to initialize the project related actions.

#### Project.initFileTypes

initFileTypes()

Public method to initialize the filetype associations with default values.

#### Project.initMenus

initMenus()

Public slot to initialize the project menus.

Return:
  tuple of generated menus

Return Type:
  tuple of (QMenu, QMenu)

#### Project.initToolbars

initToolbars(toolbarManager)

Public slot to initialize the project toolbar and the basic VCS toolbar.

toolbarManager
  reference to a toolbar manager object (EricToolBarManager)

Return:
  tuple of the generated toolbars (tuple of two QToolBar)

#### Project.initVCS

initVCS(vcsSystem=None, nooverride=False)

Public method used to instantiate a vcs system.

vcsSystem
  type of VCS to be used (string)
nooverride
  flag indicating to ignore an override request (boolean)

Return:
  a reference to the vcs object

#### Project.isDebugPropertiesLoaded

isDebugPropertiesLoaded()

Public method to return the status of the debug properties.

Return:
  load status of debug properties (boolean)

#### Project.isDirty

isDirty()

Public method to return the dirty state.

Return:
  dirty state (boolean)

#### Project.isJavaScriptProject

isJavaScriptProject()

Public method to check, if this project is a JavaScript project.

Return:
  flag indicating a JavaScript project (boolean)

#### Project.isMakeEnabled

isMakeEnabled()

Public method to test, if make is enabled for the project.

Return:
  flag indicating enabled make support

Return Type:
  bool

#### Project.isMicroPythonProject

isMicroPythonProject()

Public method to check, if this project is a MicroPython project.

Return:
  flag indicating a MicroPython project

Return Type:
  bool

#### Project.isMixedLanguageProject

isMixedLanguageProject()

Public method to check, if this is a mixed language project.

Return:
  flag indicating a mixed language project

Return Type:
  bool

#### Project.isOpen

isOpen()

Public method to return the opened state.

Return:
  open state (boolean)

#### Project.isProjectFile

isProjectFile(fn)

Public method used to check, if the passed in filename belongs to the project.

fn
  filename to be checked (string)

Return:
  flag indicating membership (boolean)

#### Project.isProjectForm

isProjectForm(fn)

Public method used to check, if the passed in filename belongs to the project forms.

fn
  filename to be checked (string)

Return:
  flag indicating membership (boolean)

#### Project.isProjectInterface

isProjectInterface(fn)

Public method used to check, if the passed in filename belongs to the project interfaces.

fn
  filename to be checked (string)

Return:
  flag indicating membership (boolean)

#### Project.isProjectProtocol

isProjectProtocol(fn)

Public method used to check, if the passed in filename belongs to the project protocols.

fn (str)
  filename to be checked

Return:
  flag indicating membership

Return Type:
  bool

#### Project.isProjectResource

isProjectResource(fn)

Public method used to check, if the passed in filename belongs to the project resources.

fn
  filename to be checked (string)

Return:
  flag indicating membership (boolean)

#### Project.isProjectSource

isProjectSource(fn)

Public method used to check, if the passed in filename belongs to the project sources.

fn
  filename to be checked (string)

Return:
  flag indicating membership (boolean)

#### Project.isPy3Project

isPy3Project()

Public method to check, if this project is a Python3 project.

Return:
  flag indicating a Python3 project (boolean)

#### Project.isPythonProject

isPythonProject()

Public method to check, if this project is a Python3 or MicroPython project.

Return:
  flag indicating a Python project (boolean)

#### Project.isRubyProject

isRubyProject()

Public method to check, if this project is a Ruby project.

Return:
  flag indicating a Ruby project (boolean)

#### Project.moveDirectory

moveDirectory(olddn, newdn)

Public slot to move a directory.

olddn
  old directory name (string)
newdn
  new directory name (string)

#### Project.newProjectAddFiles

newProjectAddFiles(mainscript)

Public method to add files to a new project.

mainscript
  name of the mainscript (string)

#### Project.openProject

openProject(fn=None, restoreSession=True, reopen=False)

Public slot to open a project.

fn
  optional filename of the project file to be read
restoreSession
  flag indicating to restore the project session (boolean)
reopen
  flag indicating a reopening of the project (boolean)

#### Project.othersAdded

othersAdded(fn, updateModel=True)

Public slot to be called, if something was added to the OTHERS project data area.

fn
  filename or directory name added (string)
updateModel
  flag indicating an update of the model is requested (boolean)

#### Project.registerProjectType

registerProjectType(type_, description, fileTypeCallback=None, binaryTranslationsCallback=None, lexerAssociationCallback=None, progLanguages=None)

Public method to register a project type.

type_
  internal type designator to be registered (string)
description
  more verbose type name (display string) (string)
fileTypeCallback
  reference to a method returning a dictionary of filetype associations.
binaryTranslationsCallback
  reference to a method returning the name of the binary translation file given the name of the raw translation file
lexerAssociationCallback
  reference to a method returning the lexer type to be used for syntax highlighting given the name of a file
progLanguages
  programming languages supported by the project type (list of string)

#### Project.removeDirectory

removeDirectory(dn)

Public method to remove a directory from the project.

The directory is not deleted from the project directory.

dn
  directory name to be removed from the project

#### Project.removeEricActions

removeEricActions(actions)

Public method to remove actions from the list of actions.

actions
  list of actions (list of EricAction)

#### Project.removeFile

removeFile(fn, updateModel=True)

Public slot to remove a file from the project.

The file is not deleted from the project directory.

fn
  filename to be removed from the project
updateModel
  flag indicating an update of the model is requested (boolean)

#### Project.removeLanguageFile

removeLanguageFile(langFile)

Public slot to remove a translation from the project.

The translation file is not deleted from the project directory.

langFile
  the translation file to be removed (string)

#### Project.renameFile

renameFile(oldfn, newfn=None)

Public slot to rename a file of the project.

oldfn
  old filename of the file (string)
newfn
  new filename of the file (string)

Return:
  flag indicating success

#### Project.renameFileInPdata

renameFileInPdata(oldname, newname, isSourceFile=False)

Public method to rename a file in the pdata structure.

oldname
  old filename (string)
newname
  new filename (string)
isSourceFile
  flag indicating that this is a source file even if it doesn't have the source extension (boolean)

#### Project.renameMainScript

renameMainScript(oldfn, newfn)

Public method to rename the main script.

oldfn
  old filename (string)
newfn
  new filename of the main script (string)

#### Project.reopenProject

reopenProject()

Public slot to reopen the current project.

#### Project.repopulateItem

repopulateItem(fullname)

Public slot to repopulate a named item.

fullname
  full name of the item to repopulate (string)

#### Project.resetVCS

resetVCS()

Public method to reset the VCS.

#### Project.saveAllScripts

saveAllScripts(reportSyntaxErrors=False)

Public method to save all scripts belonging to the project.

reportSyntaxErrors
  flag indicating special reporting for syntax errors (boolean)

Return:
  flag indicating success (boolean)

#### Project.saveProject

saveProject()

Public slot to save the current project.

Return:
  flag indicating success

#### Project.saveProjectAs

saveProjectAs()

Public slot to save the current project to a different file.

Return:
  flag indicating success (boolean)

#### Project.setData

setData(category, key, data)

Public method to store data in the project data store.

category
  category of the data to get (string, one of PROJECTTYPESPECIFICDATA, CHECKERSPARMS, PACKAGERSPARMS, DOCUMENTATIONPARMS or OTHERTOOLSPARMS)
key
  key of the data entry to get (string).
data
  data to be stored

Return:
  flag indicating success (boolean)

#### Project.setDbgInfo

setDbgInfo(venvName, argv, wd, env, excReporting, excList, excIgnoreList, autoClearShell, tracePython=None, autoContinue=None, enableMultiprocess=None, multiprocessNoDebug=None, configOverride=None)

Public method to set the debugging information.

venvName (str)
  name of the virtual environment used
argv (str)
  command line arguments to be used
wd (str)
  working directory
env (str)
  environment setting
excReporting (bool)
  flag indicating the highlighting of exceptions
excList (list of str)
  list of exceptions to be highlighted
excIgnoreList (list of str)
  list of exceptions to be ignored
autoClearShell (bool)
  flag indicating, that the interpreter window should be cleared
tracePython (bool)
  flag to indicate if the Python library should be traced as well
autoContinue (bool)
  flag indicating, that the debugger should not stop at the first executable line
enableMultiprocess (bool)
  flag indicating, that the debugger should run in multi process mode
multiprocessNoDebug (str)
  list of programs not to be debugged in multi process mode
configOverride (dict)
  dictionary containing the global config override data

#### Project.setDirty

setDirty(dirty)

Public method to set the dirty state.

It emits the signal dirty(bool).

dirty (bool)
  dirty state

#### Project.setStatusMonitorAutoUpdate

setStatusMonitorAutoUpdate(auto)

Public method to enable the auto update function.

auto
  status of the auto update function (boolean)

#### Project.setStatusMonitorInterval

setStatusMonitorInterval(interval)

Public method to se the interval of the VCS status monitor thread.

interval
  status monitor interval in seconds (integer)

#### Project.setTranslationPattern

setTranslationPattern(pattern)

Public method to set the translation pattern.

pattern (str)
  translation pattern

#### Project.startFileSystemMonitoring

startFileSystemMonitoring()

Public method to (re)start monitoring the project file system.

#### Project.startStatusMonitor

startStatusMonitor()

Public method to start the VCS status monitor thread.

#### Project.startswithProjectPath

startswithProjectPath(path)

Public method to check, if a path starts with the project path.

path (str)
  path to be checked

Return:
  flag indicating that the path starts with the project path

Return Type:
  bool

#### Project.stopFileSystemMonitoring

stopFileSystemMonitoring()

Public method to stop monitoring the project file system.

#### Project.stopStatusMonitor

stopStatusMonitor()

Public method to stop the VCS status monitor thread.

#### Project.unregisterProjectType

unregisterProjectType(type_)

Public method to unregister a project type.

type_
  internal type designator to be unregistered (string)

#### Project.updateFileTypes

updateFileTypes()

Public method to update the filetype associations with new default values.

#### Project.useSystemEol

useSystemEol()

Public method to check, if the project uses the system eol setting.

Return:
  flag indicating the usage of system eol (boolean)

#### Project.vcsSoftwareAvailable

vcsSoftwareAvailable()

Public method to check, if some supported VCS software is available to the IDE.

Return:
  flag indicating availability of VCS software (boolean)

#### Project.writeTasks

writeTasks()

Public method to write the tasks data to a JSON file (.etj).

Up