* Package: dev-python/ome-zarr-0.2.0  * Repository: chymeric  * Maintainer: gentoo@chymera.eu sci@gentoo.org  * USE: abi_x86_64 amd64 elibc_glibc kernel_linux python_targets_python3_9 test userland_GNU  * FEATURES: network-sandbox preserve-libs sandbox test userpriv usersandbox >>> Unpacking source... >>> Unpacking ome-zarr-0.2.0.tar.gz to /var/tmp/portage/dev-python/ome-zarr-0.2.0/work >>> Source unpacked in /var/tmp/portage/dev-python/ome-zarr-0.2.0/work >>> Preparing source in /var/tmp/portage/dev-python/ome-zarr-0.2.0/work/ome-zarr-py-0.2.0 ... >>> Source prepared. >>> Configuring source in /var/tmp/portage/dev-python/ome-zarr-0.2.0/work/ome-zarr-py-0.2.0 ... >>> Source configured. >>> Compiling source in /var/tmp/portage/dev-python/ome-zarr-0.2.0/work/ome-zarr-py-0.2.0 ... * python3_9: running distutils-r1_run_phase distutils-r1_python_compile python3.9 setup.py build -j 7 running build running build_py file ome_zarr.py (for module ome_zarr) not found creating /var/tmp/portage/dev-python/ome-zarr-0.2.0/work/ome-zarr-py-0.2.0-python3_9/lib/ome_zarr copying ome_zarr/__init__.py -> /var/tmp/portage/dev-python/ome-zarr-0.2.0/work/ome-zarr-py-0.2.0-python3_9/lib/ome_zarr copying ome_zarr/writer.py -> /var/tmp/portage/dev-python/ome-zarr-0.2.0/work/ome-zarr-py-0.2.0-python3_9/lib/ome_zarr copying ome_zarr/types.py -> /var/tmp/portage/dev-python/ome-zarr-0.2.0/work/ome-zarr-py-0.2.0-python3_9/lib/ome_zarr copying ome_zarr/conversions.py -> /var/tmp/portage/dev-python/ome-zarr-0.2.0/work/ome-zarr-py-0.2.0-python3_9/lib/ome_zarr copying ome_zarr/scale.py -> /var/tmp/portage/dev-python/ome-zarr-0.2.0/work/ome-zarr-py-0.2.0-python3_9/lib/ome_zarr copying ome_zarr/utils.py -> /var/tmp/portage/dev-python/ome-zarr-0.2.0/work/ome-zarr-py-0.2.0-python3_9/lib/ome_zarr copying ome_zarr/format.py -> /var/tmp/portage/dev-python/ome-zarr-0.2.0/work/ome-zarr-py-0.2.0-python3_9/lib/ome_zarr copying ome_zarr/io.py -> /var/tmp/portage/dev-python/ome-zarr-0.2.0/work/ome-zarr-py-0.2.0-python3_9/lib/ome_zarr copying ome_zarr/reader.py -> /var/tmp/portage/dev-python/ome-zarr-0.2.0/work/ome-zarr-py-0.2.0-python3_9/lib/ome_zarr copying ome_zarr/csv.py -> /var/tmp/portage/dev-python/ome-zarr-0.2.0/work/ome-zarr-py-0.2.0-python3_9/lib/ome_zarr copying ome_zarr/data.py -> /var/tmp/portage/dev-python/ome-zarr-0.2.0/work/ome-zarr-py-0.2.0-python3_9/lib/ome_zarr copying ome_zarr/cli.py -> /var/tmp/portage/dev-python/ome-zarr-0.2.0/work/ome-zarr-py-0.2.0-python3_9/lib/ome_zarr file ome_zarr.py (for module ome_zarr) not found warning: build_py: byte-compiling is disabled, skipping. >>> Source compiled. >>> Test phase: dev-python/ome-zarr-0.2.0 * python3_9: running distutils-r1_run_phase python_test python3.9 -m pytest -vv -ra -l -Wdefault --color=yes -p no:cov -p no:flake8 -p no:flakes -p no:pylint =========================================================== test session starts ============================================================ platform linux -- Python 3.9.10, pytest-6.2.5, py-1.11.0, pluggy-1.0.0 -- /usr/bin/python3.9 cachedir: .pytest_cache rootdir: /var/tmp/portage/dev-python/ome-zarr-0.2.0/work/ome-zarr-py-0.2.0, configfile: pytest.ini plugins: pkgcore-0.12.9 collecting ... collected 68 items ome_zarr/conversions.py::ome_zarr.conversions.int_to_rgba PASSED [ 1%] ome_zarr/conversions.py::ome_zarr.conversions.int_to_rgba_255 PASSED [ 2%] ome_zarr/conversions.py::ome_zarr.conversions.rgba_to_int PASSED [ 4%] ome_zarr/data.py::ome_zarr.data.make_circle PASSED [ 5%] ome_zarr/io.py::ome_zarr.io.ZarrLocation.basename PASSED [ 7%] ome_zarr/io.py::ome_zarr.io.parse_url PASSED [ 8%] ome_zarr/scale.py::ome_zarr.scale.Scaler PASSED [ 10%] ome_zarr/utils.py::ome_zarr.utils.strip_common_prefix PASSED [ 11%] tests/test_cli.py::TestCli::test_coins_info PASSED [ 13%] tests/test_cli.py::TestCli::test_astronaut_info PASSED [ 14%] tests/test_cli.py::TestCli::test_astronaut_download PASSED [ 16%] tests/test_cli.py::TestCli::test_s3_info[v0.1] FAILED [ 17%] tests/test_cli.py::TestCli::test_s3_info[v0.2] FAILED [ 19%] tests/test_cli.py::TestCli::test_s3_info[v0.3] FAILED [ 20%] tests/test_cli.py::TestCli::test_strip_prefix_relative PASSED [ 22%] tests/test_cli.py::TestCli::test_strip_prefix_absolute PASSED [ 23%] tests/test_node.py::TestNode::test_image PASSED [ 25%] tests/test_node.py::TestNode::test_labels PASSED [ 26%] tests/test_node.py::TestNode::test_label PASSED [ 27%] tests/test_ome_zarr.py::TestOmeZarr::test_info PASSED [ 29%] tests/test_ome_zarr.py::TestOmeZarr::test_download PASSED [ 30%] tests/test_reader.py::TestReader::test_image PASSED [ 32%] tests/test_reader.py::TestReader::test_labels PASSED [ 33%] tests/test_reader.py::TestReader::test_label PASSED [ 35%] tests/test_scaler.py::TestScaler::test_nearest[5D] PASSED [ 36%] tests/test_scaler.py::TestScaler::test_nearest[3D] PASSED [ 38%] tests/test_scaler.py::TestScaler::test_nearest[2D] PASSED [ 39%] tests/test_scaler.py::TestScaler::test_gaussian[5D] XFAIL [ 41%] tests/test_scaler.py::TestScaler::test_gaussian[3D] XFAIL [ 42%] tests/test_scaler.py::TestScaler::test_gaussian[2D] XPASS [ 44%] tests/test_scaler.py::TestScaler::test_laplacian[5D] XFAIL [ 45%] tests/test_scaler.py::TestScaler::test_laplacian[3D] XFAIL [ 47%] tests/test_scaler.py::TestScaler::test_laplacian[2D] XPASS [ 48%] tests/test_scaler.py::TestScaler::test_local_mean[5D] PASSED [ 50%] tests/test_scaler.py::TestScaler::test_local_mean[3D] PASSED [ 51%] tests/test_scaler.py::TestScaler::test_local_mean[2D] PASSED [ 52%] tests/test_scaler.py::TestScaler::test_zoom[5D] SKIPPED (This test does not terminate) [ 54%] tests/test_scaler.py::TestScaler::test_zoom[3D] SKIPPED (This test does not terminate) [ 55%] tests/test_scaler.py::TestScaler::test_zoom[2D] SKIPPED (This test does not terminate) [ 57%] tests/test_starting_points.py::TestStartingPoints::test_top_level PASSED [ 58%] tests/test_starting_points.py::TestStartingPoints::test_labels PASSED [ 60%] tests/test_starting_points.py::TestStartingPoints::test_label PASSED [ 61%] tests/test_upgrade.py::TestUpgrade::test_pre_created[v1-version0] PASSED [ 63%] tests/test_upgrade.py::TestUpgrade::test_pre_created[v2-version1] PASSED [ 64%] tests/test_upgrade.py::TestUpgrade::test_newly_created[V01] PASSED [ 66%] tests/test_upgrade.py::TestUpgrade::test_newly_created[V02] PASSED [ 67%] tests/test_upgrade.py::TestUpgrade::test_newly_created[V03] PASSED [ 69%] tests/test_upgrade.py::TestUpgrade::test_requested_no_upgrade PASSED [ 70%] tests/test_upgrade.py::TestUpgrade::test_automatic_upgrade PASSED [ 72%] tests/test_upgrade.py::TestUpgrade::test_cli_upgrade PASSED [ 73%] tests/test_writer.py::TestWriter::test_writer[5D-scale-V01] XPASS (issues with dimension_separator) [ 75%] tests/test_writer.py::TestWriter::test_writer[5D-scale-V02] PASSED [ 76%] tests/test_writer.py::TestWriter::test_writer[5D-scale-V03] PASSED [ 77%] tests/test_writer.py::TestWriter::test_writer[5D-noop-V01] XPASS (issues with dimension_separator) [ 79%] tests/test_writer.py::TestWriter::test_writer[5D-noop-V02] PASSED [ 80%] tests/test_writer.py::TestWriter::test_writer[5D-noop-V03] PASSED [ 82%] tests/test_writer.py::TestWriter::test_writer[3D-scale-V01] XPASS (issues with dimension_separator) [ 83%] tests/test_writer.py::TestWriter::test_writer[3D-scale-V02] PASSED [ 85%] tests/test_writer.py::TestWriter::test_writer[3D-scale-V03] PASSED [ 86%] tests/test_writer.py::TestWriter::test_writer[3D-noop-V01] XPASS (issues with dimension_separator) [ 88%] tests/test_writer.py::TestWriter::test_writer[3D-noop-V02] PASSED [ 89%] tests/test_writer.py::TestWriter::test_writer[3D-noop-V03] PASSED [ 91%] tests/test_writer.py::TestWriter::test_writer[2D-scale-V01] XPASS (issues with dimension_separator) [ 92%] tests/test_writer.py::TestWriter::test_writer[2D-scale-V02] PASSED [ 94%] tests/test_writer.py::TestWriter::test_writer[2D-scale-V03] PASSED [ 95%] tests/test_writer.py::TestWriter::test_writer[2D-noop-V01] XPASS (issues with dimension_separator) [ 97%] tests/test_writer.py::TestWriter::test_writer[2D-noop-V02] PASSED [ 98%] tests/test_writer.py::TestWriter::test_writer[2D-noop-V03] PASSED [100%] ================================================================= FAILURES ================================================================= ________________________________________________________ TestCli.test_s3_info[v0.1] ________________________________________________________ args = ['info', 'https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.1/6001240.zarr'] def main(args: List[str] = None) -> None: """Run appropriate function with argparse arguments, handling errors.""" parser = argparse.ArgumentParser() parser.add_argument( "-v", "--verbose", action="count", default=0, help="increase loglevel for each use, e.g. -vvv", ) parser.add_argument( "-q", "--quiet", action="count", default=0, help="decrease loglevel for each use, e.q. -qqq", ) subparsers = parser.add_subparsers(dest="command") subparsers.required = True # info parser_info = subparsers.add_parser("info") parser_info.add_argument("path") parser_info.add_argument("--stats", action="store_true") parser_info.set_defaults(func=info) # download parser_download = subparsers.add_parser("download") parser_download.add_argument("path") parser_download.add_argument("--output", default=".") parser_download.set_defaults(func=download) # create parser_create = subparsers.add_parser("create") parser_create.add_argument( "--method", choices=("coins", "astronaut"), default="coins" ) parser_create.add_argument("path") parser_create.set_defaults(func=create) parser_scale = subparsers.add_parser("scale") parser_scale.add_argument("input_array") parser_scale.add_argument("output_directory") parser_scale.add_argument( "--labeled", action="store_true", help="assert that the list of unique pixel values doesn't change", ) parser_scale.add_argument( "--copy-metadata", action="store_true", help="copies the array metadata to the new group", ) parser_scale.add_argument( "--method", choices=list(Scaler.methods()), default="nearest" ) parser_scale.add_argument( "--in-place", action="store_true", help="if true, don't write the base array" ) parser_scale.add_argument("--downscale", type=int, default=2) parser_scale.add_argument("--max_layer", type=int, default=4) parser_scale.set_defaults(func=scale) # csv to label properties parser_csv_to_labels = subparsers.add_parser("csv_to_labels") parser_csv_to_labels.add_argument("csv_path", help="path to csv file") parser_csv_to_labels.add_argument( "csv_id", help="csv column name containing ID for identifying label properties to update", ) parser_csv_to_labels.add_argument( "csv_keys", help="Comma-separated list of columns to read from csv to zarr" ) parser_csv_to_labels.add_argument( "zarr_path", help="path to local zarr plate or image" ) parser_csv_to_labels.add_argument( "zarr_id", help="Labels properties key. Values should match csv_id column values", ) parser_csv_to_labels.set_defaults(func=csv_to_labels) ns = parser.parse_args(args) if args is None: ns = parser.parse_args(sys.argv[1:]) else: ns = parser.parse_args(args) try: > ns.func(ns) args = ['info', 'https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.1/6001240.zarr'] ns = Namespace(verbose=0, quiet=0, command='info', path='https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.1/6001240.zarr', stats=False, func=) parser = ArgumentParser(prog='__main__.py', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) parser_create = ArgumentParser(prog='__main__.py create', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) parser_csv_to_labels = ArgumentParser(prog='__main__.py csv_to_labels', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) parser_download = ArgumentParser(prog='__main__.py download', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) parser_info = ArgumentParser(prog='__main__.py info', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) parser_scale = ArgumentParser(prog='__main__.py scale', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) subparsers = _SubParsersAction(option_strings=[], dest='command', nargs='A...', const=None, default=None, type=None, choices={'info': ArgumentParser(prog='__main__.py info', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True), 'download': ArgumentParser(prog='__main__.py download', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True), 'create': ArgumentParser(prog='__main__.py create', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True), 'scale': ArgumentParser(prog='__main__.py scale', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True), 'csv_to_labels': ArgumentParser(prog='__main__.py csv_to_labels', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True)}, help=None, metavar=None) ome_zarr/cli.py:166: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ args = Namespace(verbose=0, quiet=0, command='info', path='https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.1/6001240.zarr', stats=False, func=) def info(args: argparse.Namespace) -> None: """Wrap the :func:`~ome_zarr.utils.info` method.""" config_logging(logging.WARN, args) > list(zarr_info(args.path, stats=args.stats)) args = Namespace(verbose=0, quiet=0, command='info', path='https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.1/6001240.zarr', stats=False, func=) ome_zarr/cli.py:29: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ path = 'https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.1/6001240.zarr', stats = False def info(path: str, stats: bool = False) -> Iterator[Node]: """Print information about an OME-Zarr fileset.   All :class:`Nodes ` that are found from the given path will  be visited recursively.  """ zarr = parse_url(path) > assert zarr, f"not a zarr: {zarr}" E AssertionError: not a zarr: None path = 'https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.1/6001240.zarr' stats = False zarr = None ome_zarr/utils.py:27: AssertionError During handling of the above exception, another exception occurred: self = , s3_address = 'https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.1/6001240.zarr' def test_s3_info(self, s3_address): > main(["info", s3_address]) s3_address = 'https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.1/6001240.zarr' self = tests/test_cli.py:45: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ args = ['info', 'https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.1/6001240.zarr'] def main(args: List[str] = None) -> None: """Run appropriate function with argparse arguments, handling errors.""" parser = argparse.ArgumentParser() parser.add_argument( "-v", "--verbose", action="count", default=0, help="increase loglevel for each use, e.g. -vvv", ) parser.add_argument( "-q", "--quiet", action="count", default=0, help="decrease loglevel for each use, e.q. -qqq", ) subparsers = parser.add_subparsers(dest="command") subparsers.required = True # info parser_info = subparsers.add_parser("info") parser_info.add_argument("path") parser_info.add_argument("--stats", action="store_true") parser_info.set_defaults(func=info) # download parser_download = subparsers.add_parser("download") parser_download.add_argument("path") parser_download.add_argument("--output", default=".") parser_download.set_defaults(func=download) # create parser_create = subparsers.add_parser("create") parser_create.add_argument( "--method", choices=("coins", "astronaut"), default="coins" ) parser_create.add_argument("path") parser_create.set_defaults(func=create) parser_scale = subparsers.add_parser("scale") parser_scale.add_argument("input_array") parser_scale.add_argument("output_directory") parser_scale.add_argument( "--labeled", action="store_true", help="assert that the list of unique pixel values doesn't change", ) parser_scale.add_argument( "--copy-metadata", action="store_true", help="copies the array metadata to the new group", ) parser_scale.add_argument( "--method", choices=list(Scaler.methods()), default="nearest" ) parser_scale.add_argument( "--in-place", action="store_true", help="if true, don't write the base array" ) parser_scale.add_argument("--downscale", type=int, default=2) parser_scale.add_argument("--max_layer", type=int, default=4) parser_scale.set_defaults(func=scale) # csv to label properties parser_csv_to_labels = subparsers.add_parser("csv_to_labels") parser_csv_to_labels.add_argument("csv_path", help="path to csv file") parser_csv_to_labels.add_argument( "csv_id", help="csv column name containing ID for identifying label properties to update", ) parser_csv_to_labels.add_argument( "csv_keys", help="Comma-separated list of columns to read from csv to zarr" ) parser_csv_to_labels.add_argument( "zarr_path", help="path to local zarr plate or image" ) parser_csv_to_labels.add_argument( "zarr_id", help="Labels properties key. Values should match csv_id column values", ) parser_csv_to_labels.set_defaults(func=csv_to_labels) ns = parser.parse_args(args) if args is None: ns = parser.parse_args(sys.argv[1:]) else: ns = parser.parse_args(args) try: ns.func(ns) except AssertionError as error: logging.getLogger("ome_zarr.cli").error(error) > sys.exit(2) E SystemExit: 2 args = ['info', 'https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.1/6001240.zarr'] ns = Namespace(verbose=0, quiet=0, command='info', path='https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.1/6001240.zarr', stats=False, func=) parser = ArgumentParser(prog='__main__.py', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) parser_create = ArgumentParser(prog='__main__.py create', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) parser_csv_to_labels = ArgumentParser(prog='__main__.py csv_to_labels', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) parser_download = ArgumentParser(prog='__main__.py download', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) parser_info = ArgumentParser(prog='__main__.py info', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) parser_scale = ArgumentParser(prog='__main__.py scale', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) subparsers = _SubParsersAction(option_strings=[], dest='command', nargs='A...', const=None, default=None, type=None, choices={'info': ArgumentParser(prog='__main__.py info', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True), 'download': ArgumentParser(prog='__main__.py download', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True), 'create': ArgumentParser(prog='__main__.py create', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True), 'scale': ArgumentParser(prog='__main__.py scale', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True), 'csv_to_labels': ArgumentParser(prog='__main__.py csv_to_labels', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True)}, help=None, metavar=None) ome_zarr/cli.py:169: SystemExit ------------------------------------------------------------ Captured log call ------------------------------------------------------------- ERROR  ome_zarr.cli:cli.py:168 not a zarr: None ________________________________________________________ TestCli.test_s3_info[v0.2] ________________________________________________________ args = ['info', 'https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.2/6001240.zarr'] def main(args: List[str] = None) -> None: """Run appropriate function with argparse arguments, handling errors.""" parser = argparse.ArgumentParser() parser.add_argument( "-v", "--verbose", action="count", default=0, help="increase loglevel for each use, e.g. -vvv", ) parser.add_argument( "-q", "--quiet", action="count", default=0, help="decrease loglevel for each use, e.q. -qqq", ) subparsers = parser.add_subparsers(dest="command") subparsers.required = True # info parser_info = subparsers.add_parser("info") parser_info.add_argument("path") parser_info.add_argument("--stats", action="store_true") parser_info.set_defaults(func=info) # download parser_download = subparsers.add_parser("download") parser_download.add_argument("path") parser_download.add_argument("--output", default=".") parser_download.set_defaults(func=download) # create parser_create = subparsers.add_parser("create") parser_create.add_argument( "--method", choices=("coins", "astronaut"), default="coins" ) parser_create.add_argument("path") parser_create.set_defaults(func=create) parser_scale = subparsers.add_parser("scale") parser_scale.add_argument("input_array") parser_scale.add_argument("output_directory") parser_scale.add_argument( "--labeled", action="store_true", help="assert that the list of unique pixel values doesn't change", ) parser_scale.add_argument( "--copy-metadata", action="store_true", help="copies the array metadata to the new group", ) parser_scale.add_argument( "--method", choices=list(Scaler.methods()), default="nearest" ) parser_scale.add_argument( "--in-place", action="store_true", help="if true, don't write the base array" ) parser_scale.add_argument("--downscale", type=int, default=2) parser_scale.add_argument("--max_layer", type=int, default=4) parser_scale.set_defaults(func=scale) # csv to label properties parser_csv_to_labels = subparsers.add_parser("csv_to_labels") parser_csv_to_labels.add_argument("csv_path", help="path to csv file") parser_csv_to_labels.add_argument( "csv_id", help="csv column name containing ID for identifying label properties to update", ) parser_csv_to_labels.add_argument( "csv_keys", help="Comma-separated list of columns to read from csv to zarr" ) parser_csv_to_labels.add_argument( "zarr_path", help="path to local zarr plate or image" ) parser_csv_to_labels.add_argument( "zarr_id", help="Labels properties key. Values should match csv_id column values", ) parser_csv_to_labels.set_defaults(func=csv_to_labels) ns = parser.parse_args(args) if args is None: ns = parser.parse_args(sys.argv[1:]) else: ns = parser.parse_args(args) try: > ns.func(ns) args = ['info', 'https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.2/6001240.zarr'] ns = Namespace(verbose=0, quiet=0, command='info', path='https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.2/6001240.zarr', stats=False, func=) parser = ArgumentParser(prog='__main__.py', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) parser_create = ArgumentParser(prog='__main__.py create', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) parser_csv_to_labels = ArgumentParser(prog='__main__.py csv_to_labels', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) parser_download = ArgumentParser(prog='__main__.py download', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) parser_info = ArgumentParser(prog='__main__.py info', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) parser_scale = ArgumentParser(prog='__main__.py scale', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) subparsers = _SubParsersAction(option_strings=[], dest='command', nargs='A...', const=None, default=None, type=None, choices={'info': ArgumentParser(prog='__main__.py info', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True), 'download': ArgumentParser(prog='__main__.py download', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True), 'create': ArgumentParser(prog='__main__.py create', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True), 'scale': ArgumentParser(prog='__main__.py scale', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True), 'csv_to_labels': ArgumentParser(prog='__main__.py csv_to_labels', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True)}, help=None, metavar=None) ome_zarr/cli.py:166: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ args = Namespace(verbose=0, quiet=0, command='info', path='https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.2/6001240.zarr', stats=False, func=) def info(args: argparse.Namespace) -> None: """Wrap the :func:`~ome_zarr.utils.info` method.""" config_logging(logging.WARN, args) > list(zarr_info(args.path, stats=args.stats)) args = Namespace(verbose=0, quiet=0, command='info', path='https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.2/6001240.zarr', stats=False, func=) ome_zarr/cli.py:29: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ path = 'https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.2/6001240.zarr', stats = False def info(path: str, stats: bool = False) -> Iterator[Node]: """Print information about an OME-Zarr fileset.   All :class:`Nodes ` that are found from the given path will  be visited recursively.  """ zarr = parse_url(path) > assert zarr, f"not a zarr: {zarr}" E AssertionError: not a zarr: None path = 'https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.2/6001240.zarr' stats = False zarr = None ome_zarr/utils.py:27: AssertionError During handling of the above exception, another exception occurred: self = , s3_address = 'https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.2/6001240.zarr' def test_s3_info(self, s3_address): > main(["info", s3_address]) s3_address = 'https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.2/6001240.zarr' self = tests/test_cli.py:45: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ args = ['info', 'https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.2/6001240.zarr'] def main(args: List[str] = None) -> None: """Run appropriate function with argparse arguments, handling errors.""" parser = argparse.ArgumentParser() parser.add_argument( "-v", "--verbose", action="count", default=0, help="increase loglevel for each use, e.g. -vvv", ) parser.add_argument( "-q", "--quiet", action="count", default=0, help="decrease loglevel for each use, e.q. -qqq", ) subparsers = parser.add_subparsers(dest="command") subparsers.required = True # info parser_info = subparsers.add_parser("info") parser_info.add_argument("path") parser_info.add_argument("--stats", action="store_true") parser_info.set_defaults(func=info) # download parser_download = subparsers.add_parser("download") parser_download.add_argument("path") parser_download.add_argument("--output", default=".") parser_download.set_defaults(func=download) # create parser_create = subparsers.add_parser("create") parser_create.add_argument( "--method", choices=("coins", "astronaut"), default="coins" ) parser_create.add_argument("path") parser_create.set_defaults(func=create) parser_scale = subparsers.add_parser("scale") parser_scale.add_argument("input_array") parser_scale.add_argument("output_directory") parser_scale.add_argument( "--labeled", action="store_true", help="assert that the list of unique pixel values doesn't change", ) parser_scale.add_argument( "--copy-metadata", action="store_true", help="copies the array metadata to the new group", ) parser_scale.add_argument( "--method", choices=list(Scaler.methods()), default="nearest" ) parser_scale.add_argument( "--in-place", action="store_true", help="if true, don't write the base array" ) parser_scale.add_argument("--downscale", type=int, default=2) parser_scale.add_argument("--max_layer", type=int, default=4) parser_scale.set_defaults(func=scale) # csv to label properties parser_csv_to_labels = subparsers.add_parser("csv_to_labels") parser_csv_to_labels.add_argument("csv_path", help="path to csv file") parser_csv_to_labels.add_argument( "csv_id", help="csv column name containing ID for identifying label properties to update", ) parser_csv_to_labels.add_argument( "csv_keys", help="Comma-separated list of columns to read from csv to zarr" ) parser_csv_to_labels.add_argument( "zarr_path", help="path to local zarr plate or image" ) parser_csv_to_labels.add_argument( "zarr_id", help="Labels properties key. Values should match csv_id column values", ) parser_csv_to_labels.set_defaults(func=csv_to_labels) ns = parser.parse_args(args) if args is None: ns = parser.parse_args(sys.argv[1:]) else: ns = parser.parse_args(args) try: ns.func(ns) except AssertionError as error: logging.getLogger("ome_zarr.cli").error(error) > sys.exit(2) E SystemExit: 2 args = ['info', 'https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.2/6001240.zarr'] ns = Namespace(verbose=0, quiet=0, command='info', path='https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.2/6001240.zarr', stats=False, func=) parser = ArgumentParser(prog='__main__.py', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) parser_create = ArgumentParser(prog='__main__.py create', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) parser_csv_to_labels = ArgumentParser(prog='__main__.py csv_to_labels', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) parser_download = ArgumentParser(prog='__main__.py download', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) parser_info = ArgumentParser(prog='__main__.py info', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) parser_scale = ArgumentParser(prog='__main__.py scale', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) subparsers = _SubParsersAction(option_strings=[], dest='command', nargs='A...', const=None, default=None, type=None, choices={'info': ArgumentParser(prog='__main__.py info', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True), 'download': ArgumentParser(prog='__main__.py download', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True), 'create': ArgumentParser(prog='__main__.py create', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True), 'scale': ArgumentParser(prog='__main__.py scale', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True), 'csv_to_labels': ArgumentParser(prog='__main__.py csv_to_labels', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True)}, help=None, metavar=None) ome_zarr/cli.py:169: SystemExit ------------------------------------------------------------ Captured log call ------------------------------------------------------------- ERROR  ome_zarr.cli:cli.py:168 not a zarr: None ________________________________________________________ TestCli.test_s3_info[v0.3] ________________________________________________________ args = ['info', 'https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.3/9836842.zarr'] def main(args: List[str] = None) -> None: """Run appropriate function with argparse arguments, handling errors.""" parser = argparse.ArgumentParser() parser.add_argument( "-v", "--verbose", action="count", default=0, help="increase loglevel for each use, e.g. -vvv", ) parser.add_argument( "-q", "--quiet", action="count", default=0, help="decrease loglevel for each use, e.q. -qqq", ) subparsers = parser.add_subparsers(dest="command") subparsers.required = True # info parser_info = subparsers.add_parser("info") parser_info.add_argument("path") parser_info.add_argument("--stats", action="store_true") parser_info.set_defaults(func=info) # download parser_download = subparsers.add_parser("download") parser_download.add_argument("path") parser_download.add_argument("--output", default=".") parser_download.set_defaults(func=download) # create parser_create = subparsers.add_parser("create") parser_create.add_argument( "--method", choices=("coins", "astronaut"), default="coins" ) parser_create.add_argument("path") parser_create.set_defaults(func=create) parser_scale = subparsers.add_parser("scale") parser_scale.add_argument("input_array") parser_scale.add_argument("output_directory") parser_scale.add_argument( "--labeled", action="store_true", help="assert that the list of unique pixel values doesn't change", ) parser_scale.add_argument( "--copy-metadata", action="store_true", help="copies the array metadata to the new group", ) parser_scale.add_argument( "--method", choices=list(Scaler.methods()), default="nearest" ) parser_scale.add_argument( "--in-place", action="store_true", help="if true, don't write the base array" ) parser_scale.add_argument("--downscale", type=int, default=2) parser_scale.add_argument("--max_layer", type=int, default=4) parser_scale.set_defaults(func=scale) # csv to label properties parser_csv_to_labels = subparsers.add_parser("csv_to_labels") parser_csv_to_labels.add_argument("csv_path", help="path to csv file") parser_csv_to_labels.add_argument( "csv_id", help="csv column name containing ID for identifying label properties to update", ) parser_csv_to_labels.add_argument( "csv_keys", help="Comma-separated list of columns to read from csv to zarr" ) parser_csv_to_labels.add_argument( "zarr_path", help="path to local zarr plate or image" ) parser_csv_to_labels.add_argument( "zarr_id", help="Labels properties key. Values should match csv_id column values", ) parser_csv_to_labels.set_defaults(func=csv_to_labels) ns = parser.parse_args(args) if args is None: ns = parser.parse_args(sys.argv[1:]) else: ns = parser.parse_args(args) try: > ns.func(ns) args = ['info', 'https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.3/9836842.zarr'] ns = Namespace(verbose=0, quiet=0, command='info', path='https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.3/9836842.zarr', stats=False, func=) parser = ArgumentParser(prog='__main__.py', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) parser_create = ArgumentParser(prog='__main__.py create', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) parser_csv_to_labels = ArgumentParser(prog='__main__.py csv_to_labels', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) parser_download = ArgumentParser(prog='__main__.py download', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) parser_info = ArgumentParser(prog='__main__.py info', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) parser_scale = ArgumentParser(prog='__main__.py scale', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) subparsers = _SubParsersAction(option_strings=[], dest='command', nargs='A...', const=None, default=None, type=None, choices={'info': ArgumentParser(prog='__main__.py info', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True), 'download': ArgumentParser(prog='__main__.py download', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True), 'create': ArgumentParser(prog='__main__.py create', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True), 'scale': ArgumentParser(prog='__main__.py scale', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True), 'csv_to_labels': ArgumentParser(prog='__main__.py csv_to_labels', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True)}, help=None, metavar=None) ome_zarr/cli.py:166: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ args = Namespace(verbose=0, quiet=0, command='info', path='https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.3/9836842.zarr', stats=False, func=) def info(args: argparse.Namespace) -> None: """Wrap the :func:`~ome_zarr.utils.info` method.""" config_logging(logging.WARN, args) > list(zarr_info(args.path, stats=args.stats)) args = Namespace(verbose=0, quiet=0, command='info', path='https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.3/9836842.zarr', stats=False, func=) ome_zarr/cli.py:29: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ path = 'https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.3/9836842.zarr', stats = False def info(path: str, stats: bool = False) -> Iterator[Node]: """Print information about an OME-Zarr fileset.   All :class:`Nodes ` that are found from the given path will  be visited recursively.  """ zarr = parse_url(path) > assert zarr, f"not a zarr: {zarr}" E AssertionError: not a zarr: None path = 'https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.3/9836842.zarr' stats = False zarr = None ome_zarr/utils.py:27: AssertionError During handling of the above exception, another exception occurred: self = , s3_address = 'https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.3/9836842.zarr' def test_s3_info(self, s3_address): > main(["info", s3_address]) s3_address = 'https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.3/9836842.zarr' self = tests/test_cli.py:45: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ args = ['info', 'https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.3/9836842.zarr'] def main(args: List[str] = None) -> None: """Run appropriate function with argparse arguments, handling errors.""" parser = argparse.ArgumentParser() parser.add_argument( "-v", "--verbose", action="count", default=0, help="increase loglevel for each use, e.g. -vvv", ) parser.add_argument( "-q", "--quiet", action="count", default=0, help="decrease loglevel for each use, e.q. -qqq", ) subparsers = parser.add_subparsers(dest="command") subparsers.required = True # info parser_info = subparsers.add_parser("info") parser_info.add_argument("path") parser_info.add_argument("--stats", action="store_true") parser_info.set_defaults(func=info) # download parser_download = subparsers.add_parser("download") parser_download.add_argument("path") parser_download.add_argument("--output", default=".") parser_download.set_defaults(func=download) # create parser_create = subparsers.add_parser("create") parser_create.add_argument( "--method", choices=("coins", "astronaut"), default="coins" ) parser_create.add_argument("path") parser_create.set_defaults(func=create) parser_scale = subparsers.add_parser("scale") parser_scale.add_argument("input_array") parser_scale.add_argument("output_directory") parser_scale.add_argument( "--labeled", action="store_true", help="assert that the list of unique pixel values doesn't change", ) parser_scale.add_argument( "--copy-metadata", action="store_true", help="copies the array metadata to the new group", ) parser_scale.add_argument( "--method", choices=list(Scaler.methods()), default="nearest" ) parser_scale.add_argument( "--in-place", action="store_true", help="if true, don't write the base array" ) parser_scale.add_argument("--downscale", type=int, default=2) parser_scale.add_argument("--max_layer", type=int, default=4) parser_scale.set_defaults(func=scale) # csv to label properties parser_csv_to_labels = subparsers.add_parser("csv_to_labels") parser_csv_to_labels.add_argument("csv_path", help="path to csv file") parser_csv_to_labels.add_argument( "csv_id", help="csv column name containing ID for identifying label properties to update", ) parser_csv_to_labels.add_argument( "csv_keys", help="Comma-separated list of columns to read from csv to zarr" ) parser_csv_to_labels.add_argument( "zarr_path", help="path to local zarr plate or image" ) parser_csv_to_labels.add_argument( "zarr_id", help="Labels properties key. Values should match csv_id column values", ) parser_csv_to_labels.set_defaults(func=csv_to_labels) ns = parser.parse_args(args) if args is None: ns = parser.parse_args(sys.argv[1:]) else: ns = parser.parse_args(args) try: ns.func(ns) except AssertionError as error: logging.getLogger("ome_zarr.cli").error(error) > sys.exit(2) E SystemExit: 2 args = ['info', 'https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.3/9836842.zarr'] ns = Namespace(verbose=0, quiet=0, command='info', path='https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.3/9836842.zarr', stats=False, func=) parser = ArgumentParser(prog='__main__.py', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) parser_create = ArgumentParser(prog='__main__.py create', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) parser_csv_to_labels = ArgumentParser(prog='__main__.py csv_to_labels', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) parser_download = ArgumentParser(prog='__main__.py download', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) parser_info = ArgumentParser(prog='__main__.py info', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) parser_scale = ArgumentParser(prog='__main__.py scale', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) subparsers = _SubParsersAction(option_strings=[], dest='command', nargs='A...', const=None, default=None, type=None, choices={'info': ArgumentParser(prog='__main__.py info', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True), 'download': ArgumentParser(prog='__main__.py download', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True), 'create': ArgumentParser(prog='__main__.py create', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True), 'scale': ArgumentParser(prog='__main__.py scale', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True), 'csv_to_labels': ArgumentParser(prog='__main__.py csv_to_labels', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True)}, help=None, metavar=None) ome_zarr/cli.py:169: SystemExit ------------------------------------------------------------ Captured log call ------------------------------------------------------------- ERROR  ome_zarr.cli:cli.py:168 not a zarr: None ============================================================= warnings summary ============================================================= tests/test_scaler.py::TestScaler::test_gaussian[5D] tests/test_scaler.py::TestScaler::test_gaussian[3D] tests/test_scaler.py::TestScaler::test_gaussian[2D] /usr/lib/python3.9/site-packages/skimage/_shared/utils.py:338: FutureWarning: `multichannel` is a deprecated argument name for `pyramid_gaussian`. It will be removed in version 1.0.Please use `channel_axis` instead. return func(*args, **kwargs) tests/test_scaler.py::TestScaler::test_laplacian[5D] tests/test_scaler.py::TestScaler::test_laplacian[3D] tests/test_scaler.py::TestScaler::test_laplacian[2D] /usr/lib/python3.9/site-packages/skimage/_shared/utils.py:338: FutureWarning: `multichannel` is a deprecated argument name for `pyramid_laplacian`. It will be removed in version 1.0.Please use `channel_axis` instead. return func(*args, **kwargs) -- Docs: https://docs.pytest.org/en/stable/warnings.html ========================================================= short test summary info ========================================================== SKIPPED [3] tests/test_scaler.py:59: This test does not terminate XFAIL tests/test_scaler.py::TestScaler::test_gaussian[5D] XFAIL tests/test_scaler.py::TestScaler::test_gaussian[3D] XFAIL tests/test_scaler.py::TestScaler::test_laplacian[5D] XFAIL tests/test_scaler.py::TestScaler::test_laplacian[3D] XPASS tests/test_scaler.py::TestScaler::test_gaussian[2D] XPASS tests/test_scaler.py::TestScaler::test_laplacian[2D] XPASS tests/test_writer.py::TestWriter::test_writer[5D-scale-V01] issues with dimension_separator XPASS tests/test_writer.py::TestWriter::test_writer[5D-noop-V01] issues with dimension_separator XPASS tests/test_writer.py::TestWriter::test_writer[3D-scale-V01] issues with dimension_separator XPASS tests/test_writer.py::TestWriter::test_writer[3D-noop-V01] issues with dimension_separator XPASS tests/test_writer.py::TestWriter::test_writer[2D-scale-V01] issues with dimension_separator XPASS tests/test_writer.py::TestWriter::test_writer[2D-noop-V01] issues with dimension_separator FAILED tests/test_cli.py::TestCli::test_s3_info[v0.1] - SystemExit: 2 FAILED tests/test_cli.py::TestCli::test_s3_info[v0.2] - SystemExit: 2 FAILED tests/test_cli.py::TestCli::test_s3_info[v0.3] - SystemExit: 2 ================================ 3 failed, 50 passed, 3 skipped, 4 xfailed, 8 xpassed, 6 warnings in 12.60s ================================ * ERROR: dev-python/ome-zarr-0.2.0::chymeric failed (test phase): * pytest failed with python3.9 * * Call stack: * ebuild.sh, line 127: Called src_test * environment, line 3019: Called distutils-r1_src_test * environment, line 1371: Called _distutils-r1_run_foreach_impl 'python_test' * environment, line 522: Called python_foreach_impl 'distutils-r1_run_phase' 'python_test' * environment, line 2682: Called multibuild_foreach_variant '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_test' * environment, line 2223: Called _multibuild_run '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_test' * environment, line 2221: Called _python_multibuild_wrapper 'distutils-r1_run_phase' 'python_test' * environment, line 823: Called distutils-r1_run_phase 'python_test' * environment, line 1310: Called python_test * environment, line 2978: Called distutils-r1_python_test * environment, line 1262: Called epytest * environment, line 1737: Called die * The specific snippet of code: * "${@}" || die -n "pytest failed with ${EPYTHON}"; * * If you need support, post the output of `emerge --info '=dev-python/ome-zarr-0.2.0::chymeric'`, * the complete build log and the output of `emerge -pqv '=dev-python/ome-zarr-0.2.0::chymeric'`. * The complete build log is located at '/var/tmp/portage/dev-python/ome-zarr-0.2.0/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/dev-python/ome-zarr-0.2.0/temp/environment'. * Working directory: '/var/tmp/portage/dev-python/ome-zarr-0.2.0/work/ome-zarr-py-0.2.0' * S: '/var/tmp/portage/dev-python/ome-zarr-0.2.0/work/ome-zarr-py-0.2.0'