Fixed database typo and removed unnecessary class identifier.
This commit is contained in:
parent
00ad49a143
commit
45fb349a7d
5098 changed files with 952558 additions and 85 deletions
169
venv/Lib/site-packages/imageio/__main__.py
Normal file
169
venv/Lib/site-packages/imageio/__main__.py
Normal file
|
@ -0,0 +1,169 @@
|
|||
"""
|
||||
Console scripts and associated helper methods for imageio.
|
||||
"""
|
||||
|
||||
import argparse
|
||||
import os
|
||||
from os import path as op
|
||||
import shutil
|
||||
import sys
|
||||
|
||||
|
||||
from . import plugins
|
||||
from .core import util
|
||||
|
||||
# A list of plugins that require binaries from the imageio-binaries
|
||||
# repository. These plugins must implement the `download` method.
|
||||
PLUGINS_WITH_BINARIES = ["freeimage"]
|
||||
|
||||
|
||||
def download_bin(plugin_names=["all"], package_dir=False):
|
||||
""" Download binary dependencies of plugins
|
||||
|
||||
This is a convenience method for downloading the binaries
|
||||
(e.g. for freeimage) from the imageio-binaries
|
||||
repository.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
plugin_names: list
|
||||
A list of imageio plugin names. If it contains "all", all
|
||||
binary dependencies are downloaded.
|
||||
package_dir: bool
|
||||
If set to `True`, the binaries will be downloaded to the
|
||||
`resources` directory of the imageio package instead of
|
||||
to the users application data directory. Note that this
|
||||
might require administrative rights if imageio is installed
|
||||
in a system directory.
|
||||
"""
|
||||
if plugin_names.count("all"):
|
||||
# Use all plugins
|
||||
plugin_names = PLUGINS_WITH_BINARIES
|
||||
|
||||
plugin_names.sort()
|
||||
print("Ascertaining binaries for: {}.".format(", ".join(plugin_names)))
|
||||
|
||||
if package_dir:
|
||||
# Download the binaries to the `resources` directory
|
||||
# of imageio. If imageio comes as an .egg, then a cache
|
||||
# directory will be created by pkg_resources (requires setuptools).
|
||||
# see `imageio.core.util.resource_dirs`
|
||||
# and `imageio.core.utilresource_package_dir`
|
||||
directory = util.resource_package_dir()
|
||||
else:
|
||||
directory = None
|
||||
|
||||
for plg in plugin_names:
|
||||
if plg not in PLUGINS_WITH_BINARIES:
|
||||
msg = "Plugin {} not registered for binary download!".format(plg)
|
||||
raise Exception(msg)
|
||||
mod = getattr(plugins, plg)
|
||||
mod.download(directory=directory)
|
||||
|
||||
|
||||
def download_bin_main():
|
||||
""" Argument-parsing wrapper for `download_bin` """
|
||||
description = "Download plugin binary dependencies"
|
||||
phelp = (
|
||||
"Plugin name for which to download the binary. "
|
||||
+ "If no argument is given, all binaries are downloaded."
|
||||
)
|
||||
dhelp = (
|
||||
"Download the binaries to the package directory "
|
||||
+ "(default is the users application data directory). "
|
||||
+ "This might require administrative rights."
|
||||
)
|
||||
example_text = (
|
||||
"examples:\n"
|
||||
+ " imageio_download_bin all\n"
|
||||
+ " imageio_download_bin freeimage\n"
|
||||
)
|
||||
parser = argparse.ArgumentParser(
|
||||
description=description,
|
||||
epilog=example_text,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
)
|
||||
parser.add_argument("plugin", type=str, nargs="*", default="all", help=phelp)
|
||||
parser.add_argument(
|
||||
"--package-dir",
|
||||
dest="package_dir",
|
||||
action="store_true",
|
||||
default=False,
|
||||
help=dhelp,
|
||||
)
|
||||
args = parser.parse_args()
|
||||
download_bin(plugin_names=args.plugin, package_dir=args.package_dir)
|
||||
|
||||
|
||||
def remove_bin(plugin_names=["all"]):
|
||||
""" Remove binary dependencies of plugins
|
||||
|
||||
This is a convenience method that removes all binaries
|
||||
dependencies for plugins downloaded by imageio.
|
||||
|
||||
Notes
|
||||
-----
|
||||
It only makes sense to use this method if the binaries
|
||||
are corrupt.
|
||||
"""
|
||||
if plugin_names.count("all"):
|
||||
# Use all plugins
|
||||
plugin_names = PLUGINS_WITH_BINARIES
|
||||
|
||||
print("Removing binaries for: {}.".format(", ".join(plugin_names)))
|
||||
|
||||
rdirs = util.resource_dirs()
|
||||
|
||||
for plg in plugin_names:
|
||||
if plg not in PLUGINS_WITH_BINARIES:
|
||||
msg = "Plugin {} not registered for binary download!".format(plg)
|
||||
raise Exception(msg)
|
||||
|
||||
not_removed = []
|
||||
for rd in rdirs:
|
||||
# plugin name is in subdirectories
|
||||
for rsub in os.listdir(rd):
|
||||
if rsub in plugin_names:
|
||||
plgdir = op.join(rd, rsub)
|
||||
try:
|
||||
shutil.rmtree(plgdir)
|
||||
except Exception:
|
||||
not_removed.append(plgdir)
|
||||
if not_removed:
|
||||
nrs = ",".join(not_removed)
|
||||
msg2 = (
|
||||
"These plugins files could not be removed: {}\n".format(nrs)
|
||||
+ "Make sure they are not used by any program and try again."
|
||||
)
|
||||
raise Exception(msg2)
|
||||
|
||||
|
||||
def remove_bin_main():
|
||||
""" Argument-parsing wrapper for `remove_bin` """
|
||||
description = "Remove plugin binary dependencies"
|
||||
phelp = (
|
||||
"Plugin name for which to remove the binary. "
|
||||
+ "If no argument is given, all binaries are removed."
|
||||
)
|
||||
example_text = (
|
||||
"examples:\n"
|
||||
+ " imageio_remove_bin all\n"
|
||||
+ " imageio_remove_bin freeimage\n"
|
||||
)
|
||||
parser = argparse.ArgumentParser(
|
||||
description=description,
|
||||
epilog=example_text,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
)
|
||||
parser.add_argument("plugin", type=str, nargs="*", default="all", help=phelp)
|
||||
args = parser.parse_args()
|
||||
remove_bin(plugin_names=args.plugin)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
if len(sys.argv) > 1 and sys.argv[1] == "download_bin":
|
||||
download_bin_main()
|
||||
elif len(sys.argv) > 1 and sys.argv[1] == "remove_bin":
|
||||
remove_bin_main()
|
||||
else:
|
||||
raise RuntimeError("Invalid use of the imageio CLI")
|
Loading…
Add table
Add a link
Reference in a new issue