Skip to content

Commit

Permalink
update taxonomy packages for PWD 2015-01-14
Browse files Browse the repository at this point in the history
older namespaced packages should behave as before
  • Loading branch information
Herm Fischer authored and Herm Fischer committed Mar 11, 2015
1 parent 4a29f60 commit 11af6cf
Show file tree
Hide file tree
Showing 4 changed files with 157 additions and 56 deletions.
12 changes: 8 additions & 4 deletions arelle/CntlrCmdLine.py
Original file line number Diff line number Diff line change
Expand Up @@ -544,33 +544,37 @@ def run(self, options, sourceZipStream=None):
elif cmd == "temp":
savePackagesChanges = False
elif cmd.startswith("+"):
packageInfo = PackageManager.addPackage(cmd[1:], options.packageManifestName)
packageInfo = PackageManager.addPackage(self, cmd[1:], options.packageManifestName)
if packageInfo:
self.addToLog(_("Addition of package {0} successful.").format(packageInfo.get("name")),
messageCode="info", file=packageInfo.get("URL"))
else:
self.addToLog(_("Unable to load plug-in."), messageCode="info", file=cmd[1:])
elif cmd.startswith("~"):
if PackageManager.reloadPackageModule(cmd[1:]):
if PackageManager.reloadPackageModule(self, cmd[1:]):
self.addToLog(_("Reload of package successful."), messageCode="info", file=cmd[1:])
else:
self.addToLog(_("Unable to reload package."), messageCode="info", file=cmd[1:])
elif cmd.startswith("-"):
if PackageManager.removePackageModule(cmd[1:]):
if PackageManager.removePackageModule(self, cmd[1:]):
self.addToLog(_("Deletion of package successful."), messageCode="info", file=cmd[1:])
else:
self.addToLog(_("Unable to delete package."), messageCode="info", file=cmd[1:])
else: # assume it is a module or package
savePackagesChanges = False
packageInfo = PackageManager.addPackage(cmd, options.packageManifestName)
packageInfo = PackageManager.addPackage(self, cmd, options.packageManifestName)
if packageInfo:
self.addToLog(_("Activation of package {0} successful.").format(packageInfo.get("name")),
messageCode="info", file=packageInfo.get("URL"))
resetPlugins = True
else:
self.addToLog(_("Unable to load {0} as a package or {0} is not recognized as a command. ").format(cmd), messageCode="info", file=cmd)
if PackageManager.packagesConfigChanged:
PackageManager.rebuildRemappings(self)
if savePackagesChanges:
PackageManager.save(self)
else:
PackageManager.packagesConfigChanged = False
if showPackages:
self.addToLog(_("Taxonomy packages:"), messageCode="info")
for packageInfo in PackageManager.orderedPackagesConfig()["packages"]:
Expand Down
12 changes: 4 additions & 8 deletions arelle/DialogOpenArchive.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,12 +106,12 @@ def __init__(self, mainWin, openType, filesource, filenames, title, colHeader, s
.format(', '.join(metadataFiles)))
'''
metadataFile = metadataFiles[0]
metadata = filesource.file(filesource.url + os.sep + metadataFile)[0]
metadata = filesource.url + os.sep + metadataFile
self.metadataFilePrefix = os.sep.join(os.path.split(metadataFile)[:-1])
if self.metadataFilePrefix:
self.metadataFilePrefix += os.sep

self.taxonomyPackage = parsePackage(mainWin, metadata)
self.taxonomyPackage = parsePackage(mainWin, filesource, metadata, self.metadataFilePrefix)

# may be a catalog file with no entry oint names
if not self.taxonomyPackage["nameToUrls"]:
Expand Down Expand Up @@ -248,11 +248,7 @@ def ok(self, event=None):
if len(selection) > 0:
if hasattr(self, "taxonomyPackage"):
# load file source remappings
self.filesource.mappedPaths = \
dict((prefix,
remapping if isHttpUrl(remapping)
else (self.filesource.baseurl + os.sep + self.metadataFilePrefix +remapping.replace("/", os.sep)))
for prefix, remapping in self.taxonomyPackage["remappings"].items())
self.filesource.mappedPaths = self.taxonomyPackage["remappings"]
filename = None
if self.openType in (ARCHIVE, DISCLOSURE_SYSTEM):
filename = self.filenames[int(selection[0][4:])]
Expand All @@ -268,7 +264,7 @@ def ok(self, event=None):

if not filename.endswith("/"):
# check if it's an absolute URL rather than a path into the archive
if not isHttpUrl(filename):
if not isHttpUrl(filename) and self.metadataFilePrefix != 'META-INF/':
# assume it's a path inside the archive:
filename = self.metadataFilePrefix + filename
if filename is not None and not filename.endswith("/"):
Expand Down
20 changes: 10 additions & 10 deletions arelle/DialogPackageManager.py
Original file line number Diff line number Diff line change
Expand Up @@ -314,14 +314,14 @@ def findLocally(self):
if filename:
# check if a package is selected (any file in a directory containing an __init__.py
self.cntlr.config["packageOpenDir"] = os.path.dirname(filename)
packageInfo = PackageManager.packageInfo(filename, packageManifestName=self.manifestNamePattern)
packageInfo = PackageManager.packageInfo(self.cntlr, filename, packageManifestName=self.manifestNamePattern)
self.loadFoundPackageInfo(packageInfo, filename)


def findOnWeb(self):
url = DialogURL.askURL(self)
if url: # url is the in-cache or local file
packageInfo = PackageManager.packageInfo(url, packageManifestName=self.manifestNamePattern)
packageInfo = PackageManager.packageInfo(self.cntlr, url, packageManifestName=self.manifestNamePattern)
self.cntlr.showStatus("") # clear web loading status
self.loadFoundPackageInfo(packageInfo, url)

Expand Down Expand Up @@ -363,7 +363,7 @@ def addPackageInfo(self, packageInfo):
self.removePackageInfo(name, version) # remove any prior entry for this package
self.packageNamesWithNewerFileDates.discard(name) # no longer has an update available
self.packagesConfig["packages"].append(packageInfo)
PackageManager.rebuildRemappings()
PackageManager.rebuildRemappings(self.cntlr)
self.packagesConfigChanged = True

def packageEnable(self):
Expand All @@ -376,7 +376,7 @@ def packageEnable(self):
packageInfo["status"] = "disabled"
self.packageEnableButton['text'] = self.ENABLE
self.packagesConfigChanged = True
PackageManager.rebuildRemappings()
PackageManager.rebuildRemappings(self.cntlr)
self.loadTreeViews()

def packageMoveUp(self):
Expand All @@ -386,7 +386,7 @@ def packageMoveUp(self):
del packages[self.selectedPackageIndex]
packages.insert(self.selectedPackageIndex -1, packageInfo)
self.packagesConfigChanged = True
PackageManager.rebuildRemappings()
PackageManager.rebuildRemappings(self.cntlr)
self.loadTreeViews()

def packageMoveDown(self):
Expand All @@ -396,18 +396,18 @@ def packageMoveDown(self):
del packages[self.selectedPackageIndex]
packages.insert(self.selectedPackageIndex + 1, packageInfo)
self.packagesConfigChanged = True
PackageManager.rebuildRemappings()
PackageManager.rebuildRemappings(self.cntlr)
self.loadTreeViews()

def packageReload(self):
if 0 <= self.selectedPackageIndex < len(self.packagesConfig["packages"]):
packageInfo = self.packagesConfig["packages"][self.selectedPackageIndex]
url = packageInfo.get("URL")
if url:
packageInfo = PackageManager.packageInfo(url, reload=True, packageManifestName=packageInfo.get("manifestName"))
packageInfo = PackageManager.packageInfo(self.cntlr, url, reload=True, packageManifestName=packageInfo.get("manifestName"))
if packageInfo:
self.addPackageInfo(packageInfo)
PackageManager.rebuildRemappings()
PackageManager.rebuildRemappings(self.cntlr)
self.loadTreeViews()
self.cntlr.showStatus(_("{0} reloaded").format(packageInfo.get("name")), clearAfter=5000)
else:
Expand All @@ -421,7 +421,7 @@ def packageRemove(self):
packageInfo = self.packagesConfig["packages"][self.selectedPackageIndex]
self.removePackageInfo(packageInfo["name"], packageInfo["version"])
self.packagesConfigChanged = True
PackageManager.rebuildRemappings()
PackageManager.rebuildRemappings(self.cntlr)
self.loadTreeViews()

def enableAll(self):
Expand All @@ -440,6 +440,6 @@ def enableDisableAll(self, doEnable):
packageInfo["status"] = "disabled"
self.packageEnableButton['text'] = self.ENABLE
self.packagesConfigChanged = True
PackageManager.rebuildRemappings()
PackageManager.rebuildRemappings(self.cntlr)
self.loadTreeViews()

0 comments on commit 11af6cf

Please sign in to comment.