# Python scripted module development reload feature for multiple files

**URL:** <https://discourse.slicer.org/t/python-scripted-module-development-reload-feature-for-multiple-files/6363>\
**Category:** Development\
**Created:** [April 2, 2019, 8:42am UTC](https://discourse.slicer.org/t/python-scripted-module-development-reload-feature-for-multiple-files/6363 "2019-04-02T08:42:52Z")\
**Posts on this page:** 1\
**Showing post:** 4

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [April 3, 2019, 1:01am UTC](https://discourse.slicer.org/t/python-scripted-module-development-reload-feature-for-multiple-files/6363/4 "2019-04-03T01:01:58Z")

</div>

Reloading is implemented fully in Python, so you can override the default implementation and reload additional modules, too. Since there are usually dependencies between classes, you typically need to click reload 2-3 times to update all referenced objects in al objects.

Example:

```auto
class ValveAnnulusAnalysisWidget(ScriptedLoadableModuleWidget):
  ...
  def onReload(self):
    logging.debug("Reloading ValveAnnulusAnalysis")
    packageName='HeartValveLib'
    submoduleNames=['util', 'LeafletModel', 'SmoothCurve', 'ValveRoi', 'PapillaryModel', 'ValveModel', 'HeartValves']
    import imp
    f, filename, description = imp.find_module(packageName)
    package = imp.load_module(packageName, f, filename, description)
    for submoduleName in submoduleNames:
      f, filename, description = imp.find_module(submoduleName, package. __path__ )
      try:
          imp.load_module(packageName+'.'+submoduleName, f, filename, description)
      finally:
          f.close()
    ScriptedLoadableModuleWidget.onReload(self)

```

---

_[View the full topic](https://discourse.slicer.org/t/python-scripted-module-development-reload-feature-for-multiple-files/6363)._
