Giter Site home page Giter Site logo

rules_pycross's Introduction

rules_pycross - Python + cross platform

Use your Poetry or PDM lock files with Bazel and enabling cross-platform builds.

Features:

  • A single lock file for all target platforms, thanks to Poetry and PDM
  • Builds that happen in build actions, not during WORKSPACE initialization
  • Standard Bazel http_file rules used for fetching dependencies. pip is not a build-time dependency.

See the examples.

Why?

The current Bazel rules for working with Python external dependencies have a couple of issues that make cross-platform usage difficult (see bazelbuild/rules_python#260):

  • they're based on pip and pip-compile which do not generate cross-platform lock files. For example, IPython depends on appnope only on MacOS. Lock files generated by pip-compile will differ based on whether they're created on Linux or MacOS. The pip-compile solution to this problem is to generate lock files for different systems, on different systems.
  • They use pip install during the WORKSPACE phase to fetch and possibly build packages (including native libraries). WORKSPACE operations lack many of the things that Bazel's build actions provide such as sandboxing and remote execution.

How?

A pip install operation can be roughly broken down into these parts:

  1. determine the environment (OS and Python version/implementation)
  2. resolve the dependencies of the package to install, some of which may be platform-specific (optionally constrained by a pre-compiled lock file)
  3. figure out which files to download - either pre-built wheels matching the current platform or sdists to build locally
  4. download sdists and wheels
  5. build and install sdists; install wheels

rules_pycross attempts to deconstruct this operation into its constituent parts and glue them together with Bazel:

  1. pycross_target_environment is used to specify target environments ahead of time provided with ABI, platform, and implementation parameters (similar to pip's --abi, --platform, and --implementation flags). These environments are selected using Bazel's own platform/constraint system.
  2. pycross_lock_file generates a "lock" .bzl file from an input poetry.lock. This .bzl file contains a mix of http_file repositories and pycross_* targets.
  3. pycross_wheel_build builds sdist.tar.gz archives into Python wheels. This is a build action, not a WORKSPACE operation.
  4. pycross_wheel_library "installs" (extracts) a Python wheel - either downloaded or built from an sdist - and provides it as a py_library.

See the generated docs.

rules_pycross's People

Contributors

ahans avatar betaboon avatar eaplatanios avatar ewianda avatar jvolkman avatar plobsing avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

rules_pycross's Issues

wheel_install error with remote execution

We are experimenting with pycross_wheel_library and pycross_wheel_build internally for all of our Python build and we noticed the build would fail when we enable remote execution with the following error. If we disable remote execution (aka, not setting --remote_executor flag when starting bazel), everything works fine.

bazel build @tp_py//:all --verbose_failures
INFO: Analyzed 27 targets (100 packages loaded, 1158 targets configured).
ERROR: /home/tgeng/.cache/bazel/_bazel_tgeng/2c6300bf5335e93d31018a60b51e5246/external/rules_pycross~~pycross~rules_pycross_internal/deps/BUILD.bazel:5:8: Installing pip-23.3.1-py3-none-any.whl [for tool] failed: (Exit 1): wheel_installer failed: error executing WheelInstall command (from target @@rules_pycross~~pycross~rules_pycross_internal//deps:[email protected]) 
  (cd /home/tgeng/.cache/bazel/_bazel_tgeng/2c6300bf5335e93d31018a60b51e5246/execroot/_main && \
  exec env - \
    PYTHONHASHSEED=0 \
    SOURCE_DATE_EPOCH=315532800 \
  bazel-out/k8-opt-exec-ST-ac359f07ab32/bin/external/rules_pycross~/pycross/private/tools/wheel_installer --wheel external/rules_pycross~~pycross~rules_pycross_internal_deps_wheel_pip_23.3.1_py3_none_any/file/pip-23.3.1-py3-none-any.whl --directory bazel-out/k8-opt-exec-ST-ac359f07ab32/bin/external/rules_pycross~~pycross~rules_pycross_internal/deps/[email protected] --enable-implicit-namespace-pkgs)
# Configuration: d31b979b3fbd542080a1501ace229d5de056106a98de93db9eebfbb704bb9703
# Execution platform: @@pin_platforms~~pin_platforms~pin_platforms_support//platforms:java17_scala2.12
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Python path configuration:
  PYTHONHOME = (not set)
  PYTHONPATH = (not set)
  program name = 'python3'
  isolated = 0
  environment = 1
  user site = 1
  import site = 1
  sys._base_executable = ''
  sys.base_prefix = '/install'
  sys.base_exec_prefix = '/install'
  sys.platlibdir = 'lib'
  sys.executable = ''
  sys.prefix = '/install'
  sys.exec_prefix = '/install'
  sys.path = [
    '/install/lib/python310.zip',
    '/install/lib/python3.10',
    '/install/lib/lib-dynload',
  ]
Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
Python runtime state: core initialized
ModuleNotFoundError: No module named 'encodings'

Current thread 0x00007fb29849e740 (most recent call first):
  <no Python frame>
ERROR: /home/tgeng/.cache/bazel/_bazel_tgeng/2c6300bf5335e93d31018a60b51e5246/external/rules_pycross~~pycross~rules_pycross_internal/deps/BUILD.bazel:5:8: Installing tomli-2.0.1-py3-none-any.whl [for tool] failed: (Exit 1): wheel_installer failed: error executing WheelInstall command (from target @@rules_pycross~~pycross~rules_pycross_internal//deps:[email protected]) 
  (cd /home/tgeng/.cache/bazel/_bazel_tgeng/2c6300bf5335e93d31018a60b51e5246/execroot/_main && \
  exec env - \
    PYTHONHASHSEED=0 \
    SOURCE_DATE_EPOCH=315532800 \
  bazel-out/k8-opt-exec-ST-ac359f07ab32/bin/external/rules_pycross~/pycross/private/tools/wheel_installer --wheel external/rules_pycross~~pycross~rules_pycross_internal_deps_wheel_tomli_2.0.1_py3_none_any/file/tomli-2.0.1-py3-none-any.whl --directory bazel-out/k8-opt-exec-ST-ac359f07ab32/bin/external/rules_pycross~~pycross~rules_pycross_internal/deps/[email protected] --enable-implicit-namespace-pkgs)
# Configuration: d31b979b3fbd542080a1501ace229d5de056106a98de93db9eebfbb704bb9703
# Execution platform: @@pin_platforms~~pin_platforms~pin_platforms_support//platforms:java17_scala2.12
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Python path configuration:
  PYTHONHOME = (not set)
  PYTHONPATH = (not set)
  program name = 'python3'
  isolated = 0
  environment = 1
  user site = 1
  import site = 1
  sys._base_executable = ''
  sys.base_prefix = '/install'
  sys.base_exec_prefix = '/install'
  sys.platlibdir = 'lib'
  sys.executable = ''
  sys.prefix = '/install'
  sys.exec_prefix = '/install'
  sys.path = [
    '/install/lib/python310.zip',
    '/install/lib/python3.10',
    '/install/lib/lib-dynload',
  ]
Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
Python runtime state: core initialized
ModuleNotFoundError: No module named 'encodings'

Current thread 0x00007f8d22d22740 (most recent call first):
  <no Python frame>
ERROR: /home/tgeng/.cache/bazel/_bazel_tgeng/2c6300bf5335e93d31018a60b51e5246/external/rules_pycross~~pycross~rules_pycross_internal/deps/BUILD.bazel:5:8: Installing build-1.0.3-py3-none-any.whl [for tool] failed: (Exit 1): wheel_installer failed: error executing WheelInstall command (from target @@rules_pycross~~pycross~rules_pycross_internal//deps:[email protected]) 
  (cd /home/tgeng/.cache/bazel/_bazel_tgeng/2c6300bf5335e93d31018a60b51e5246/execroot/_main && \
  exec env - \
    PYTHONHASHSEED=0 \
    SOURCE_DATE_EPOCH=315532800 \
  bazel-out/k8-opt-exec-ST-ac359f07ab32/bin/external/rules_pycross~/pycross/private/tools/wheel_installer --wheel external/rules_pycross~~pycross~rules_pycross_internal_deps_wheel_build_1.0.3_py3_none_any/file/build-1.0.3-py3-none-any.whl --directory bazel-out/k8-opt-exec-ST-ac359f07ab32/bin/external/rules_pycross~~pycross~rules_pycross_internal/deps/[email protected] --enable-implicit-namespace-pkgs)
# Configuration: d31b979b3fbd542080a1501ace229d5de056106a98de93db9eebfbb704bb9703
# Execution platform: @@pin_platforms~~pin_platforms~pin_platforms_support//platforms:java17_scala2.12
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Python path configuration:
  PYTHONHOME = (not set)
  PYTHONPATH = (not set)
  program name = 'python3'
  isolated = 0
  environment = 1
  user site = 1
  import site = 1
  sys._base_executable = ''
  sys.base_prefix = '/install'
  sys.base_exec_prefix = '/install'
  sys.platlibdir = 'lib'
  sys.executable = ''
  sys.prefix = '/install'
  sys.exec_prefix = '/install'
  sys.path = [
    '/install/lib/python310.zip',
    '/install/lib/python3.10',
    '/install/lib/lib-dynload',
  ]
Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
Python runtime state: core initialized
ModuleNotFoundError: No module named 'encodings'

Current thread 0x00007fc8ceef5740 (most recent call first):
  <no Python frame>
ERROR: /home/tgeng/.cache/bazel/_bazel_tgeng/2c6300bf5335e93d31018a60b51e5246/external/rules_pycross~~pycross~rules_pycross_internal/deps/BUILD.bazel:5:8: Installing importlib_metadata-7.0.1-py3-none-any.whl [for tool] failed: (Exit 1): wheel_installer failed: error executing WheelInstall command (from target @@rules_pycross~~pycross~rules_pycross_internal//deps:[email protected]) 
  (cd /home/tgeng/.cache/bazel/_bazel_tgeng/2c6300bf5335e93d31018a60b51e5246/execroot/_main && \
  exec env - \
    PYTHONHASHSEED=0 \
    SOURCE_DATE_EPOCH=315532800 \
  bazel-out/k8-opt-exec-ST-ac359f07ab32/bin/external/rules_pycross~/pycross/private/tools/wheel_installer --wheel external/rules_pycross~~pycross~rules_pycross_internal_deps_wheel_importlib_metadata_7.0.1_py3_none_any/file/importlib_metadata-7.0.1-py3-none-any.whl --directory bazel-out/k8-opt-exec-ST-ac359f07ab32/bin/external/rules_pycross~~pycross~rules_pycross_internal/deps/[email protected] --enable-implicit-namespace-pkgs)
# Configuration: d31b979b3fbd542080a1501ace229d5de056106a98de93db9eebfbb704bb9703
# Execution platform: @@pin_platforms~~pin_platforms~pin_platforms_support//platforms:java17_scala2.12
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Python path configuration:
  PYTHONHOME = (not set)
  PYTHONPATH = (not set)
  program name = 'python3'
  isolated = 0
  environment = 1
  user site = 1
  import site = 1
  sys._base_executable = ''
  sys.base_prefix = '/install'
  sys.base_exec_prefix = '/install'
  sys.platlibdir = 'lib'
  sys.executable = ''
  sys.prefix = '/install'
  sys.exec_prefix = '/install'
  sys.path = [
    '/install/lib/python310.zip',
    '/install/lib/python3.10',
    '/install/lib/lib-dynload',
  ]
Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
Python runtime state: core initialized
ModuleNotFoundError: No module named 'encodings'

Current thread 0x00007fb910ad1740 (most recent call first):
  <no Python frame>
ERROR: /home/tgeng/.cache/bazel/_bazel_tgeng/2c6300bf5335e93d31018a60b51e5246/external/rules_pycross~~pycross~rules_pycross_internal/deps/BUILD.bazel:5:8: Installing dacite-1.6.0-py3-none-any.whl [for tool] failed: (Exit 1): wheel_installer failed: error executing WheelInstall command (from target @@rules_pycross~~pycross~rules_pycross_internal//deps:[email protected]) 
  (cd /home/tgeng/.cache/bazel/_bazel_tgeng/2c6300bf5335e93d31018a60b51e5246/execroot/_main && \
  exec env - \
    PYTHONHASHSEED=0 \
    SOURCE_DATE_EPOCH=315532800 \
  bazel-out/k8-opt-exec-ST-ac359f07ab32/bin/external/rules_pycross~/pycross/private/tools/wheel_installer --wheel external/rules_pycross~~pycross~rules_pycross_internal_deps_wheel_dacite_1.6.0_py3_none_any/file/dacite-1.6.0-py3-none-any.whl --directory bazel-out/k8-opt-exec-ST-ac359f07ab32/bin/external/rules_pycross~~pycross~rules_pycross_internal/deps/[email protected] --enable-implicit-namespace-pkgs)
# Configuration: d31b979b3fbd542080a1501ace229d5de056106a98de93db9eebfbb704bb9703
# Execution platform: @@pin_platforms~~pin_platforms~pin_platforms_support//platforms:java17_scala2.12
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Python path configuration:
  PYTHONHOME = (not set)
  PYTHONPATH = (not set)
  program name = 'python3'
  isolated = 0
  environment = 1
  user site = 1
  import site = 1
  sys._base_executable = ''
  sys.base_prefix = '/install'
  sys.base_exec_prefix = '/install'
  sys.platlibdir = 'lib'
  sys.executable = ''
  sys.prefix = '/install'
  sys.exec_prefix = '/install'
  sys.path = [
    '/install/lib/python310.zip',
    '/install/lib/python3.10',
    '/install/lib/lib-dynload',
  ]
Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
Python runtime state: core initialized
ModuleNotFoundError: No module named 'encodings'

Current thread 0x00007f8f7b452740 (most recent call first):
  <no Python frame>
ERROR: /home/tgeng/.cache/bazel/_bazel_tgeng/2c6300bf5335e93d31018a60b51e5246/external/pin_platforms~~pin_platforms~tp_py/java17_scala2.12__linux-x86_64/BUILD.bazel:312:13 Installing pdpyras-5.2.0.whl failed: (Exit 1): wheel_installer failed: error executing WheelInstall command (from target @@rules_pycross~~pycross~rules_pycross_internal//deps:[email protected]) 
  (cd /home/tgeng/.cache/bazel/_bazel_tgeng/2c6300bf5335e93d31018a60b51e5246/execroot/_main && \
  exec env - \
    PYTHONHASHSEED=0 \
    SOURCE_DATE_EPOCH=315532800 \
  bazel-out/k8-opt-exec-ST-ac359f07ab32/bin/external/rules_pycross~/pycross/private/tools/wheel_installer --wheel external/rules_pycross~~pycross~rules_pycross_internal_deps_wheel_dacite_1.6.0_py3_none_any/file/dacite-1.6.0-py3-none-any.whl --directory bazel-out/k8-opt-exec-ST-ac359f07ab32/bin/external/rules_pycross~~pycross~rules_pycross_internal/deps/[email protected] --enable-implicit-namespace-pkgs)
# Configuration: d31b979b3fbd542080a1501ace229d5de056106a98de93db9eebfbb704bb9703
# Execution platform: @@pin_platforms~~pin_platforms~pin_platforms_support//platforms:java17_scala2.12
INFO: Elapsed time: 2.591s, Critical Path: 2.01s
INFO: 108 processes: 102 internal, 6 processwrapper-sandbox.
ERROR: Build did NOT complete successfully

The above errors seems to be inside the python launcher. Execution does not seem to actually entered wheel_install.py. I concluded this by adding a file-write to the top of wheel_installer.py and observe that nothing is written to disk when the error happens for a given wheel install action.

The targets being built are just pycross_wheel_library. For example, one of them is

> bazel query @tp_py//java17_scala2.12__linux-x86_64:pip --output=build
# /home/tgeng/.cache/bazel/_bazel_tgeng/2c6300bf5335e93d31018a60b51e5246/external/pin_platforms~~pin_platforms~tp_py/java17_scala2.12__linux-x86_64/BUILD.bazel:345:13
pycross_wheel_library(
  name = "pip",
  visibility = ["@tp_py//:__subpackages__"],
  tags = ["no-remote-exec"],
  generator_name = "pip",
  generator_function = "pypi_library",
  generator_location = "java17_scala2.12__linux-x86_64/BUILD.bazel:345:13",
  deps = [],
  wheel = "@@pin_platforms~~pin_platforms~tp_py_pip_ba0d021a166865d2//file:file",
)

As you can see above, I have added tags = ["no-remote-exec"], but the problem still exists. However, if I add execution_requirements = {"no-remote-exec": ""}, to the ctx.actions.run calls in wheel_build.bzl and wheel_library.bzl and target_envrionment.bzl, everything works again. IIUC special tags should be propagated from targets to actions, so this discrepancy does look like a Bazel bug. Also, bazel aquery returns identical results whether I set the no-remote-exec tag on the target or in the action execution requirements attribute.

Unfortunately, I can't easily create a minimum repro because apparently this only happens when I am building a dozen of targets concurrently. Building a couple of targets would work just fine, without any tags to disable remote execution.

I also thought it might make sense to just tag wheel_install and target_environment as no-remote-exec by default since these two operations shouldn't be CPU bound anyway. Though wheel_build probably should be farmed out to remote workers ideally.

With all of the above said, I am curious to learn: have you used pycross with remote execution? And what's your opinions on adding no-remote-exec to the wheel_build, wheel_install, and target_environment actions? If you don't like it we will probably have to fork pycross internally to add them so that we can move forward.

Our basic setup information:
Bazel 7.1.1
pycross 0.5.2
rules_python 0.30.0

Poetry pyproject.toml wheel dependencies fails to generate

Having the following pyproject.toml file

[tool.poetry]
name = "example"
version = "0.1.0"
description = ""
readme = "README.md"
authors = []

[tool.poetry.dependencies]
python = "3.9.10"
torch = [
  {markers = "platform_machine == 'aarch64'", url = "https://download.pytorch.org/whl/torch-1.12.1-cp39-cp39-manylinux2014_aarch64.whl" },
  {markers = "platform_machine == 'x86_64'", url = "https://download.pytorch.org/whl/cpu/torch-1.12.1%2Bcpu-cp39-cp39-linux_x86_64.whl" },
]

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

and the following poetry.lock file

# This file is automatically @generated by Poetry 1.4.0 and should not be changed by hand.

[[package]]
name = "torch"
version = "1.12.1"
description = "Tensors and Dynamic neural networks in Python with strong GPU acceleration"
category = "main"
optional = false
python-versions = ">=3.7.0"
files = [
    {file = "torch-1.12.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:6cf6f54b43c0c30335428195589bd00e764a6d27f3b9ba637aaa8c11aaf93073"},
]

[package.dependencies]
typing-extensions = "*"

[package.source]
type = "url"
url = "https://download.pytorch.org/whl/torch-1.12.1-cp39-cp39-manylinux2014_aarch64.whl"

[[package]]
name = "torch"
version = "1.12.1+cpu"
description = "Tensors and Dynamic neural networks in Python with strong GPU acceleration"
category = "main"
optional = false
python-versions = ">=3.7.0"
files = [
    {file = "torch-1.12.1%2Bcpu-cp39-cp39-linux_x86_64.whl", hash = "sha256:870bc47b880fb0488ea5b665bf76fc8df76a55a5cd48917501bf4597e1af6b2e"},
]

[package.dependencies]
typing-extensions = "*"

[package.source]
type = "url"
url = "https://download.pytorch.org/whl/cpu/torch-1.12.1%2Bcpu-cp39-cp39-linux_x86_64.whl"
[[package]]
name = "typing-extensions"
version = "4.5.0"
description = "Backported and Experimental Type Hints for Python 3.7+"
category = "main"
optional = false
python-versions = ">=3.7"
files = [
    {file = "typing_extensions-4.5.0-py3-none-any.whl", hash = "sha256:fb33085c39dd998ac16d1431ebc293a8b3eedd00fd4a32de0ff79002c19511b4"},
    {file = "typing_extensions-4.5.0.tar.gz", hash = "sha256:5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb"},
]

[metadata]
lock-version = "2.0"
python-versions = "3.9.10"
content-hash = "b7d2a1b2bf6dddd0bb2fa76dc0a38338509d62e901e7daec4839b316a015fe69"

with the following BUILD.bazel file

load(
    "@jvolkman_rules_pycross//pycross:defs.bzl",
    "pycross_lock_file",
    "pycross_poetry_lock_model",
    "pycross_target_environment",
)

_linux_x86_64 = [
    "@platforms//os:linux",
    "@platforms//cpu:x86_64",
]

pycross_target_environment(
    name = "python_linux_x86_64",
    abis = ["cp39"],
    platforms = [
        "linux_x86_64",
        "manylinux2014_x86_64",
    ] + [
        "manylinux_2_%s_x86_64" % str(i)
        for i in range(17, 25)
    ],
    python_compatible_with = _linux_x86_64,
    version = "3.9.10",
    visibility = ["//visibility:public"],
)

pycross_poetry_lock_model(
    name = "predict_lock_model",
    poetry_lock_file = "poetry.lock",
    poetry_project_file = "pyproject.toml",
)

pycross_lock_file(
    name = "predict_lock",
    out = "predict_lock.bzl",
    lock_model_file = ":predict_lock_model",
    target_environments = [
        ":python_linux_x86_64",
    ],
)

and running

bazel build //predict:predict_lock

results in the following error

INFO: Invocation ID: efb054fe-51cd-4e9f-a8ff-a1a6a3681f81
INFO: Analyzed target //predict:predict_lock (0 packages loaded, 0 targets configured).
INFO: Found 1 target...
ERROR: /workspaces/data-platform/predict/BUILD.bazel:34:26: Action predict/predict_lock_model.json failed: (Exit 1): poetry_translator failed: error executing command (from target //predict:predict_lock_model) bazel-out/aarch64-opt-exec-2B5CBBC6/bin/external/jvolkman_rules_pycross/pycross/private/tools/poetry_translator --poetry-project-file predict/pyproject.toml --poetry-lock-file predict/poetry.lock ... (remaining 2 arguments skipped)

Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging
Traceback (most recent call last):
  File "/home/devcontainer/bazel/output_base/sandbox/processwrapper-sandbox/9/execroot/data_platform/bazel-out/aarch64-opt-exec-2B5CBBC6/bin/external/jvolkman_rules_pycross/pycross/private/tools/poetry_translator.runfiles/jvolkman_rules_pycross/pycross/private/tools/poetry_translator.py", line 298, in <module>
    app.run(main, flags_parser=parse_flags)
  File "/home/devcontainer/bazel/output_base/sandbox/processwrapper-sandbox/9/execroot/data_platform/bazel-out/aarch64-opt-exec-2B5CBBC6/bin/external/jvolkman_rules_pycross/pycross/private/tools/poetry_translator.runfiles/rules_pycross_pypi_deps_absl_py/site-packages/absl/app.py", line 308, in run
    _run_main(main, args)
  File "/home/devcontainer/bazel/output_base/sandbox/processwrapper-sandbox/9/execroot/data_platform/bazel-out/aarch64-opt-exec-2B5CBBC6/bin/external/jvolkman_rules_pycross/pycross/private/tools/poetry_translator.runfiles/rules_pycross_pypi_deps_absl_py/site-packages/absl/app.py", line 254, in _run_main
    sys.exit(main(argv))
  File "/home/devcontainer/bazel/output_base/sandbox/processwrapper-sandbox/9/execroot/data_platform/bazel-out/aarch64-opt-exec-2B5CBBC6/bin/external/jvolkman_rules_pycross/pycross/private/tools/poetry_translator.runfiles/jvolkman_rules_pycross/pycross/private/tools/poetry_translator.py", line 258, in main
    lock_set = translate(args.poetry_project_file, args.poetry_lock_file)
  File "/home/devcontainer/bazel/output_base/sandbox/processwrapper-sandbox/9/execroot/data_platform/bazel-out/aarch64-opt-exec-2B5CBBC6/bin/external/jvolkman_rules_pycross/pycross/private/tools/poetry_translator.runfiles/jvolkman_rules_pycross/pycross/private/tools/poetry_translator.py", line 133, in translate
    pinned_package_specs[pin] = parse_constraint(pin_info["version"])
TypeError: list indices must be integers or slices, not str
Target //predict:predict_lock failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 0.288s, Critical Path: 0.16s
INFO: 2 processes: 2 internal.
FAILED: Build did NOT complete successfully

Reading the error message and reading the code it looks like the poetry_translator.py doesn't like two things:

  1. Currently it's being passed a list instead of a string / dict
  2. If it's passed a dict it requires the dict to contain the version key

Be more strict with compatibility rules in lock file

Two issues:

  1. Today if a package is compatible with all configured platforms, no select is generated which provides no way to prevent some other incompatible platform from using it. Instead, these packages should be limited to all configured platforms.
  2. Generated selects should default to @platforms//:incompatible

Wheel build for lxml fails

More of a question (i guess)

So I am able to get dependencies with lxml build for linux target but not for mac aarm64 target. (on a Mac M1)

The lxml pip package does not publish a aarm64 wheel so it correctly tries to build it... but when building it says that the libxml2 development page is not installed.

How am I to pass the information of the local libxml2 package?

ERROR: /Users/madhav/Code/sdroot/mr-ping/utils/pypi/BUILD:5:8: Building lxml-4.9.2.tar.gz failed: (Exit 1): wheel_builder failed: error executing command bazel-out/host/bin/external/jvolkman_rules_pycross/pycross/private/tools/wheel_builder --sdist external/lock_sdist_lxml_4.9.2/file/lxml-4.9.2.tar.gz --sysconfig-vars ... (remaining 15 arguments skipped)

Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging
I0312 21:47:10.886236 8611248768 __init__.py:439] Building wheel...
===== BUILD FAILED =====
Building lxml version 4.9.2.
Building without Cython.
Error: Please make sure the libxml2 and libxslt development packages are installed.

libxml2 is present and works when lxml is built from source

~/Code/lxml-4.9.2 % python3 setup.py bdist_wheel
Building lxml version 4.9.2.
Building without Cython.
Building against libxml2 2.9.4 and libxslt 1.1.29
[...truncated...]

Deps attribute does not have mandatory providers: 'PyInfo' or 'PyVirtualInfo'

I've set up a bzlmod pdm instance of this. I think I have everything right, but I am getting this error when referencing a package:

ERROR: /Users/jscheel/Projects/groove/python_bazel_template/foo/BUILD:11:14: in deps attribute of py_binary rule //foo:foo: '@@rules_pycross~0.5.3~lock_repos~pdm_deps//_lock:[email protected]' does not have mandatory providers: 'PyInfo' or 'PyVirtualInfo'.

Here is the relevant part of the bzlmod:

bazel_dep(name = "rules_pycross", version = "0.5.3")

environments = use_extension("@rules_pycross//pycross/extensions:environments.bzl", "environments")
use_repo(environments, "pycross_environments")

lock_import = use_extension("@rules_pycross//pycross/extensions:lock_import.bzl", "lock_import")

# Import from PDM
lock_import.import_pdm(
    lock_file = "//:pdm.lock",
    project_file = "//:pyproject.toml",
    repo = "pdm_deps",
)

# The actual repos are loaded from the lock_repos extension.
lock_repos = use_extension("@rules_pycross//pycross/extensions:lock_repos.bzl", "lock_repos")
use_repo(lock_repos, "pdm_deps")

lock_file = use_extension("@rules_pycross//pycross/extensions:lock_file.bzl", "lock_file")
lock_file.instantiate(
    name = "pdm_lock_file",
    lock_file = "//:pdm_lock.bzl",
)
use_repo(lock_file, "pdm_lock_file")

My dependency is set up like this:

deps = [
  "@pdm_deps//:confluent-kafka",
],

The pdm.lock looks like this:

# This file is @generated by PDM.
# It is not intended for manual editing.

[metadata]
groups = ["default"]
strategy = ["cross_platform", "inherit_metadata", "static_urls"]
lock_version = "4.4.1"
content_hash = "sha256:bcb962c07982d058ea4ce7560880f6355e6eefc29cbe7ab572f415341365f9b4"

[[package]]
name = "confluent-kafka"
version = "2.3.0"
summary = "Confluent's Python client for Apache Kafka"
groups = ["default"]
files = [
    {url = "https://files.pythonhosted.org/packages/25/7d/d8ef2b94cf076a1f5427de51389d710550290e62b385abdd983cc57b3691/confluent_kafka-2.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d55fbdcd75586dd17fe3fe64f4b4efa1c93ce9dd09c275de46f75772826e8860"},
    {url = "https://files.pythonhosted.org/packages/3a/5b/a6daa455fdaa39c966f5efb0bcdef761308926b5c4fecde3b812a0cb628e/confluent_kafka-2.3.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:7f9f4099aaf2c5daae828d2f356e4277d0ef0485ec883dbe395f0c0e054450d0"},
    {url = "https://files.pythonhosted.org/packages/57/77/b43fbc947b3ef9e26a85e742af488bf05cf19c5934525f8a552c492afa5c/confluent_kafka-2.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ec17b26d6155feeaded4a435ba949095aea9699afb65309d8f22e55722f53c48"},
    {url = "https://files.pythonhosted.org/packages/7b/7a/67ee8dedaa6941841a2425bc140a401ad21ad4fb011280771865db7d460e/confluent_kafka-2.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e9b42bf1b75fdd9aa20c77b27f166f6289440ac649f70622a0117a8e7aa6169d"},
    {url = "https://files.pythonhosted.org/packages/82/f5/2dd545316e143f1707f8f9abfbb770bcd2a0046a32922ca146852dd5e266/confluent-kafka-2.3.0.tar.gz", hash = "sha256:4069e7b56e0baf9db18c053a605213f0ab2d8f23715dca7b3bd97108df446ced"},
    {url = "https://files.pythonhosted.org/packages/fc/6c/f064ee299604127ca83fdb31bd31c8864ea420fca012405837500f6d4420/confluent_kafka-2.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:1c6b29d57df99dabd45e67fd0aa46f17f195b057734ad84cf9cfdc2542855c10"},
]

And the pdm_lock.bzl looks like this:

# This file is generated by rules_pycross.
# It is not intended for manual editing.
"""Pycross-generated dependency targets."""

load("@@rules_pycross~0.5.3//pycross:defs.bzl", "pycross_wheel_build", "pycross_wheel_library")
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_file")
load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")

PINS = {
    "confluent-kafka": "[email protected]",
}

# buildifier: disable=unnamed-macro
def targets():
    """Generated package targets."""

    for pin_name, pin_target in PINS.items():
        native.alias(
            name = pin_name,
            actual = ":" + pin_target,
        )

    native.alias(
        name = "_env_python_3.11.6_aarch64-apple-darwin",
        actual = "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.11.6_aarch64-apple-darwin_config",
    )

    native.alias(
        name = "_env_python_3.11.6_aarch64-unknown-linux-gnu",
        actual = "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.11.6_aarch64-unknown-linux-gnu_config",
    )

    native.alias(
        name = "_env_python_3.11.6_ppc64le-unknown-linux-gnu",
        actual = "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.11.6_ppc64le-unknown-linux-gnu_config",
    )

    native.alias(
        name = "_env_python_3.11.6_s390x-unknown-linux-gnu",
        actual = "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.11.6_s390x-unknown-linux-gnu_config",
    )

    native.alias(
        name = "_env_python_3.11.6_x86_64-apple-darwin",
        actual = "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.11.6_x86_64-apple-darwin_config",
    )

    native.alias(
        name = "_env_python_3.11.6_x86_64-pc-windows-msvc",
        actual = "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.11.6_x86_64-pc-windows-msvc_config",
    )

    native.alias(
        name = "_env_python_3.11.6_x86_64-unknown-linux-gnu",
        actual = "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.11.6_x86_64-unknown-linux-gnu_config",
    )

    native.alias(
        name = "_env_python_3.11_aarch64-apple-darwin",
        actual = "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.11_aarch64-apple-darwin_config",
    )

    native.alias(
        name = "_env_python_3.11_aarch64-unknown-linux-gnu",
        actual = "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.11_aarch64-unknown-linux-gnu_config",
    )

    native.alias(
        name = "_env_python_3.11_ppc64le-unknown-linux-gnu",
        actual = "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.11_ppc64le-unknown-linux-gnu_config",
    )

    native.alias(
        name = "_env_python_3.11_s390x-unknown-linux-gnu",
        actual = "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.11_s390x-unknown-linux-gnu_config",
    )

    native.alias(
        name = "_env_python_3.11_x86_64-apple-darwin",
        actual = "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.11_x86_64-apple-darwin_config",
    )

    native.alias(
        name = "_env_python_3.11_x86_64-pc-windows-msvc",
        actual = "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.11_x86_64-pc-windows-msvc_config",
    )

    native.alias(
        name = "_env_python_3.11_x86_64-unknown-linux-gnu",
        actual = "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.11_x86_64-unknown-linux-gnu_config",
    )

    native.alias(
        name = "_env_python_3.12_aarch64-apple-darwin",
        actual = "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.12_aarch64-apple-darwin_config",
    )

    native.alias(
        name = "_env_python_3.12_aarch64-unknown-linux-gnu",
        actual = "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.12_aarch64-unknown-linux-gnu_config",
    )

    native.alias(
        name = "_env_python_3.12_ppc64le-unknown-linux-gnu",
        actual = "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.12_ppc64le-unknown-linux-gnu_config",
    )

    native.alias(
        name = "_env_python_3.12_s390x-unknown-linux-gnu",
        actual = "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.12_s390x-unknown-linux-gnu_config",
    )

    native.alias(
        name = "_env_python_3.12_x86_64-apple-darwin",
        actual = "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.12_x86_64-apple-darwin_config",
    )

    native.alias(
        name = "_env_python_3.12_x86_64-pc-windows-msvc",
        actual = "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.12_x86_64-pc-windows-msvc_config",
    )

    native.alias(
        name = "_env_python_3.12_x86_64-unknown-linux-gnu",
        actual = "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.12_x86_64-unknown-linux-gnu_config",
    )

    # buildifier: disable=unused-variable
    _target = select({
        ":_env_python_3.11.6_aarch64-apple-darwin": "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.11.6_aarch64-apple-darwin.json",
        ":_env_python_3.11.6_aarch64-unknown-linux-gnu": "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.11.6_aarch64-unknown-linux-gnu.json",
        ":_env_python_3.11.6_ppc64le-unknown-linux-gnu": "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.11.6_ppc64le-unknown-linux-gnu.json",
        ":_env_python_3.11.6_s390x-unknown-linux-gnu": "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.11.6_s390x-unknown-linux-gnu.json",
        ":_env_python_3.11.6_x86_64-apple-darwin": "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.11.6_x86_64-apple-darwin.json",
        ":_env_python_3.11.6_x86_64-pc-windows-msvc": "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.11.6_x86_64-pc-windows-msvc.json",
        ":_env_python_3.11.6_x86_64-unknown-linux-gnu": "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.11.6_x86_64-unknown-linux-gnu.json",
        ":_env_python_3.11_aarch64-apple-darwin": "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.11_aarch64-apple-darwin.json",
        ":_env_python_3.11_aarch64-unknown-linux-gnu": "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.11_aarch64-unknown-linux-gnu.json",
        ":_env_python_3.11_ppc64le-unknown-linux-gnu": "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.11_ppc64le-unknown-linux-gnu.json",
        ":_env_python_3.11_s390x-unknown-linux-gnu": "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.11_s390x-unknown-linux-gnu.json",
        ":_env_python_3.11_x86_64-apple-darwin": "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.11_x86_64-apple-darwin.json",
        ":_env_python_3.11_x86_64-pc-windows-msvc": "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.11_x86_64-pc-windows-msvc.json",
        ":_env_python_3.11_x86_64-unknown-linux-gnu": "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.11_x86_64-unknown-linux-gnu.json",
        ":_env_python_3.12_aarch64-apple-darwin": "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.12_aarch64-apple-darwin.json",
        ":_env_python_3.12_aarch64-unknown-linux-gnu": "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.12_aarch64-unknown-linux-gnu.json",
        ":_env_python_3.12_ppc64le-unknown-linux-gnu": "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.12_ppc64le-unknown-linux-gnu.json",
        ":_env_python_3.12_s390x-unknown-linux-gnu": "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.12_s390x-unknown-linux-gnu.json",
        ":_env_python_3.12_x86_64-apple-darwin": "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.12_x86_64-apple-darwin.json",
        ":_env_python_3.12_x86_64-pc-windows-msvc": "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.12_x86_64-pc-windows-msvc.json",
        ":_env_python_3.12_x86_64-unknown-linux-gnu": "@@rules_pycross~0.5.3~environments~pycross_environments//:python_3.12_x86_64-unknown-linux-gnu.json",
    })

    native.alias(
        name = "[email protected]",
        actual = "@pdm_lock_sdist_confluent_kafka_2.3.0//file",
    )

    pycross_wheel_build(
        name = "[email protected]",
        sdist = ":[email protected]",
        target_environment = _target,
        tags = ["manual"],
    )

    native.alias(
        name = "[email protected]",
        actual = select({
            ":_env_python_3.11.6_aarch64-apple-darwin": "@pdm_lock_wheel_confluent_kafka_2.3.0_cp311_cp311_macosx_11_0_arm64//file",
            ":_env_python_3.11.6_aarch64-unknown-linux-gnu": "@pdm_lock_wheel_confluent_kafka_2.3.0_cp311_cp311_manylinux_2_28_aarch64//file",
            ":_env_python_3.11.6_ppc64le-unknown-linux-gnu": ":[email protected]",
            ":_env_python_3.11.6_s390x-unknown-linux-gnu": ":[email protected]",
            ":_env_python_3.11.6_x86_64-apple-darwin": "@pdm_lock_wheel_confluent_kafka_2.3.0_cp311_cp311_macosx_10_9_x86_64//file",
            ":_env_python_3.11.6_x86_64-pc-windows-msvc": "@pdm_lock_wheel_confluent_kafka_2.3.0_cp311_cp311_win_amd64//file",
            ":_env_python_3.11.6_x86_64-unknown-linux-gnu": "@pdm_lock_wheel_confluent_kafka_2.3.0_cp311_cp311_manylinux_2_17_x86_64.manylinux2014_x86_64//file",
            ":_env_python_3.11_aarch64-apple-darwin": "@pdm_lock_wheel_confluent_kafka_2.3.0_cp311_cp311_macosx_11_0_arm64//file",
            ":_env_python_3.11_aarch64-unknown-linux-gnu": "@pdm_lock_wheel_confluent_kafka_2.3.0_cp311_cp311_manylinux_2_28_aarch64//file",
            ":_env_python_3.11_ppc64le-unknown-linux-gnu": ":[email protected]",
            ":_env_python_3.11_s390x-unknown-linux-gnu": ":[email protected]",
            ":_env_python_3.11_x86_64-apple-darwin": "@pdm_lock_wheel_confluent_kafka_2.3.0_cp311_cp311_macosx_10_9_x86_64//file",
            ":_env_python_3.11_x86_64-pc-windows-msvc": "@pdm_lock_wheel_confluent_kafka_2.3.0_cp311_cp311_win_amd64//file",
            ":_env_python_3.11_x86_64-unknown-linux-gnu": "@pdm_lock_wheel_confluent_kafka_2.3.0_cp311_cp311_manylinux_2_17_x86_64.manylinux2014_x86_64//file",
            ":_env_python_3.12_aarch64-apple-darwin": ":[email protected]",
            ":_env_python_3.12_aarch64-unknown-linux-gnu": ":[email protected]",
            ":_env_python_3.12_ppc64le-unknown-linux-gnu": ":[email protected]",
            ":_env_python_3.12_s390x-unknown-linux-gnu": ":[email protected]",
            ":_env_python_3.12_x86_64-apple-darwin": ":[email protected]",
            ":_env_python_3.12_x86_64-pc-windows-msvc": ":[email protected]",
            ":_env_python_3.12_x86_64-unknown-linux-gnu": ":[email protected]",
        }),
    )

    pycross_wheel_library(
        name = "[email protected]",
        wheel = ":[email protected]",
    )

# buildifier: disable=unnamed-macro
def repositories():
    """Generated package repositories."""

    maybe(
        http_file,
        name = "pdm_lock_sdist_confluent_kafka_2.3.0",
        urls = [
            "https://files.pythonhosted.org/packages/82/f5/2dd545316e143f1707f8f9abfbb770bcd2a0046a32922ca146852dd5e266/confluent-kafka-2.3.0.tar.gz",
        ],
        sha256 = "4069e7b56e0baf9db18c053a605213f0ab2d8f23715dca7b3bd97108df446ced",
        downloaded_file_path = "confluent-kafka-2.3.0.tar.gz",
    )

    maybe(
        http_file,
        name = "pdm_lock_wheel_confluent_kafka_2.3.0_cp311_cp311_macosx_10_9_x86_64",
        urls = [
            "https://files.pythonhosted.org/packages/25/7d/d8ef2b94cf076a1f5427de51389d710550290e62b385abdd983cc57b3691/confluent_kafka-2.3.0-cp311-cp311-macosx_10_9_x86_64.whl",
        ],
        sha256 = "d55fbdcd75586dd17fe3fe64f4b4efa1c93ce9dd09c275de46f75772826e8860",
        downloaded_file_path = "confluent_kafka-2.3.0-cp311-cp311-macosx_10_9_x86_64.whl",
    )

    maybe(
        http_file,
        name = "pdm_lock_wheel_confluent_kafka_2.3.0_cp311_cp311_macosx_11_0_arm64",
        urls = [
            "https://files.pythonhosted.org/packages/57/77/b43fbc947b3ef9e26a85e742af488bf05cf19c5934525f8a552c492afa5c/confluent_kafka-2.3.0-cp311-cp311-macosx_11_0_arm64.whl",
        ],
        sha256 = "ec17b26d6155feeaded4a435ba949095aea9699afb65309d8f22e55722f53c48",
        downloaded_file_path = "confluent_kafka-2.3.0-cp311-cp311-macosx_11_0_arm64.whl",
    )

    maybe(
        http_file,
        name = "pdm_lock_wheel_confluent_kafka_2.3.0_cp311_cp311_manylinux_2_17_x86_64.manylinux2014_x86_64",
        urls = [
            "https://files.pythonhosted.org/packages/7b/7a/67ee8dedaa6941841a2425bc140a401ad21ad4fb011280771865db7d460e/confluent_kafka-2.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
        ],
        sha256 = "e9b42bf1b75fdd9aa20c77b27f166f6289440ac649f70622a0117a8e7aa6169d",
        downloaded_file_path = "confluent_kafka-2.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
    )

    maybe(
        http_file,
        name = "pdm_lock_wheel_confluent_kafka_2.3.0_cp311_cp311_manylinux_2_28_aarch64",
        urls = [
            "https://files.pythonhosted.org/packages/3a/5b/a6daa455fdaa39c966f5efb0bcdef761308926b5c4fecde3b812a0cb628e/confluent_kafka-2.3.0-cp311-cp311-manylinux_2_28_aarch64.whl",
        ],
        sha256 = "7f9f4099aaf2c5daae828d2f356e4277d0ef0485ec883dbe395f0c0e054450d0",
        downloaded_file_path = "confluent_kafka-2.3.0-cp311-cp311-manylinux_2_28_aarch64.whl",
    )

    maybe(
        http_file,
        name = "pdm_lock_wheel_confluent_kafka_2.3.0_cp311_cp311_win_amd64",
        urls = [
            "https://files.pythonhosted.org/packages/fc/6c/f064ee299604127ca83fdb31bd31c8864ea420fca012405837500f6d4420/confluent_kafka-2.3.0-cp311-cp311-win_amd64.whl",
        ],
        sha256 = "1c6b29d57df99dabd45e67fd0aa46f17f195b057734ad84cf9cfdc2542855c10",
        downloaded_file_path = "confluent_kafka-2.3.0-cp311-cp311-win_amd64.whl",
    )

sdist fails for linux wheel on mac

OpenAI only publishes source on pypi

the following rules are generated


    _openai_0_23_0_deps = [
        ":numpy_1.24.2",
        ":openpyxl_3.1.1",
        ":pandas_1.4.3",
        ":pandas_stubs_1.5.3.230214",
        ":requests_2.28.1",
        ":tqdm_4.64.0",
        ":typing_extensions_4.5.0",
    ]

    _openai_0_23_0_build_deps = [
        ":setuptools_67.4.0",
        ":wheel_0.38.4",
    ]

    pycross_wheel_build(
        name = "_build_openai_0.23.0",
        sdist = "@lock_sdist_openai_0.23.0//file",
        target_environment = _target,
        deps = _openai_0_23_0_deps + _openai_0_23_0_build_deps,
        tags = ["manual"],
    )

    pycross_wheel_library(
        name = "openai_0.23.0",
        deps = _openai_0_23_0_deps,
        wheel = ":_build_openai_0.23.0",
    )

(can be replicated by adding openai using poetry and generating lock)

when trying to build the wheel for linux i get following failure

bazelisk build --@io_bazel_rules_go//go/config:pure --platforms @io_bazel_rules_go//go/toolchain:linux_amd64 //utils/pypi:openai_0.23.0

failure:

INFO: Analyzed target //utils/pypi:openai_0.23.0 (80 packages loaded, 9846 targets configured).
INFO: Found 1 target...
ERROR: /Users/madhav/Code/sdroot/mr-ping/utils/pypi/BUILD:5:8: Building openai-0.23.0.tar.gz failed: (Exit 1): wheel_builder failed: error executing command bazel-out/host/bin/external/jvolkman_rules_pycross/pycross/private/tools/wheel_builder --sdist external/lock_sdist_openai_0.23.0/file/openai-0.23.0.tar.gz --sysconfig-vars ... (remaining 47 arguments skipped)

Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging
Traceback (most recent call last):
  File "/private/var/tmp/_bazel_madhav/2034f50a8630c7b3af59aa011432cbea/sandbox/darwin-sandbox/89/execroot/__main__/bazel-out/host/bin/external/jvolkman_rules_pycross/pycross/private/tools/wheel_builder.runfiles/jvolkman_rules_pycross/pycross/private/tools/wheel_builder.py", line 704, in <module>
    app.run(main_wrapper, flags_parser=parse_flags)
  File "/private/var/tmp/_bazel_madhav/2034f50a8630c7b3af59aa011432cbea/sandbox/darwin-sandbox/89/execroot/__main__/bazel-out/host/bin/external/jvolkman_rules_pycross/pycross/private/tools/wheel_builder.runfiles/rules_pycross_pypi_deps_absl_py/site-packages/absl/app.py", line 308, in run
    _run_main(main, args)
  File "/private/var/tmp/_bazel_madhav/2034f50a8630c7b3af59aa011432cbea/sandbox/darwin-sandbox/89/execroot/__main__/bazel-out/host/bin/external/jvolkman_rules_pycross/pycross/private/tools/wheel_builder.runfiles/rules_pycross_pypi_deps_absl_py/site-packages/absl/app.py", line 254, in _run_main
    sys.exit(main(argv))
  File "/private/var/tmp/_bazel_madhav/2034f50a8630c7b3af59aa011432cbea/sandbox/darwin-sandbox/89/execroot/__main__/bazel-out/host/bin/external/jvolkman_rules_pycross/pycross/private/tools/wheel_builder.runfiles/jvolkman_rules_pycross/pycross/private/tools/wheel_builder.py", line 693, in main_wrapper
    main(args, _temp_dir, _is_debug)
  File "/private/var/tmp/_bazel_madhav/2034f50a8630c7b3af59aa011432cbea/sandbox/darwin-sandbox/89/execroot/__main__/bazel-out/host/bin/external/jvolkman_rules_pycross/pycross/private/tools/wheel_builder.runfiles/jvolkman_rules_pycross/pycross/private/tools/wheel_builder.py", line 564, in main
    target_sysconfig_vars = get_target_sysconfig(
  File "/private/var/tmp/_bazel_madhav/2034f50a8630c7b3af59aa011432cbea/sandbox/darwin-sandbox/89/execroot/__main__/bazel-out/host/bin/external/jvolkman_rules_pycross/pycross/private/tools/wheel_builder.runfiles/jvolkman_rules_pycross/pycross/private/tools/wheel_builder.py", line 127, in get_target_sysconfig
    vars_json = subprocess.check_output(args=query_args)
  File "/private/var/tmp/_bazel_madhav/2034f50a8630c7b3af59aa011432cbea/execroot/__main__/external/python3_9_aarch64-apple-darwin/lib/python3.9/subprocess.py", line 424, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
  File "/private/var/tmp/_bazel_madhav/2034f50a8630c7b3af59aa011432cbea/execroot/__main__/external/python3_9_aarch64-apple-darwin/lib/python3.9/subprocess.py", line 505, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/private/var/tmp/_bazel_madhav/2034f50a8630c7b3af59aa011432cbea/execroot/__main__/external/python3_9_aarch64-apple-darwin/lib/python3.9/subprocess.py", line 951, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/private/var/tmp/_bazel_madhav/2034f50a8630c7b3af59aa011432cbea/execroot/__main__/external/python3_9_aarch64-apple-darwin/lib/python3.9/subprocess.py", line 1821, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
OSError: [Errno 8] Exec format error: PosixPath('external/python3_9_x86_64-unknown-linux-gnu/bin/python3')
----------------
Note: The failure of target @jvolkman_rules_pycross//pycross/private/tools:wheel_builder (with exit code 1) may have been caused by the fact that it is running under Python 3 instead of Python 2. Examine the error to determine if that appears to be the problem. Since this target is built in the host configuration, the only way to change its version is to set --host_force_python=PY2, which affects the entire build.

If this error started occurring in Bazel 0.27 and later, it may be because the Python toolchain now enforces that targets analyzed as PY2 and PY3 run under a Python 2 and Python 3 interpreter, respectively. See https://github.com/bazelbuild/bazel/issues/7899 for more information.
----------------
Target //utils/pypi:openai_0.23.0 failed to build

seems like a linux python executable is trying to be executed but on a mac, is this expected? any ideas?

Extension modules fail to build

While trying to use a package with extension modules (py-radix in particular), I'm seeing the following error (repro fork):

../bin/clang -shared -Wl,-S -mmacos-version-min=10.11 -no-canonical-prefixes -fobjc-link-runtime -headerpad_max_install_names -lc++ -lm -L../lib build/temp.macosx-11.0-arm64-cpython-311/radix/_radix.o build/temp.macosx-11.0-arm64-cpython-311/radix/_radix/radix.o -o build/lib.macosx-11.0-arm64-cpython-311/radix/_radix.cpython-311-darwin.so
Undefined symbols for architecture arm64:
  "_PyArg_ParseTuple", referenced from:
      _Radix_nodes in _radix.o
      _Radix_prefixes in _radix.o
      _radix_Radix in _radix.o
  "_PyArg_ParseTupleAndKeywords", referenced from:
      _Radix_add in _radix.o
      _Radix_delete in _radix.o
      _Radix_search_exact in _radix.o
      _Radix_search_best in _radix.o
      _Radix_search_worst in _radix.o
      _Radix_search_covered in _radix.o
      _Radix_search_covering in _radix.o
      ...
  "_PyBytes_FromStringAndSize", referenced from:
      _newRadixNodeObject in _radix.o
  "_PyDict_GetItemString", referenced from:
      _module_initialize in _radix.o
<<<OTHER SYMBOLS>>>
ld: symbol(s) not found for architecture arm64

It looks like the python library is missing from the libs, so I tried using pycross_wheel_build with native_deps = ["@rules_python//python/cc:current_py_cc_libs"], but that seems to break even earlier due to wrong includes.

Any ideas on how this can be made to work? Thanks!

`Backend 'setuptools.build_meta:__legacy__' is not available`

On some wheels, I am getting Backend 'setuptools.build_meta:__legacy__' is not available.

ERROR: /private/var/tmp/_bazel_user/1da975a732c2a8c8a86b734b8c4ba60b/external/rules_pycross~~lock_repos~pip/_lock/BUILD.bazel:5:8: Building thrift-0.20.0.tar.gz failed: (Exit 1): wheel_builder failed: error executing WheelBuild command (from target @@rules_pycross~~lock_repos~pip//_lock:[email protected]) bazel-out/darwin_arm64-opt-exec-ST-4fe0721bc43e/bin/external/rules_pycross~/pycross/private/tools/wheel_builder --sdist ... (remaining 15 arguments skipped)

Traceback (most recent call last):
  File "/private/var/tmp/_bazel_user/1da975a732c2a8c8a86b734b8c4ba60b/sandbox/darwin-sandbox/59/execroot/_main/bazel-out/darwin_arm64-opt-exec-ST-4fe0721bc43e/bin/external/rules_pycross~/pycross/private/tools/wheel_builder.runfiles/_main/../rules_pycross~/pycross/private/tools/wheel_builder.py", line 668, in build_wheel
    wheel_file = builder.build(
  File "/private/var/tmp/_bazel_user/1da975a732c2a8c8a86b734b8c4ba60b/sandbox/darwin-sandbox/59/execroot/_main/bazel-out/darwin_arm64-opt-exec-ST-4fe0721bc43e/bin/external/rules_pycross~/pycross/private/tools/wheel_builder.runfiles/rules_pycross~~pycross~rules_pycross_internal/deps/[email protected]/site-packages/build/__init__.py", line 298, in build
    return self._call_backend(f'build_{distribution}', output_directory, config_settings, **kwargs)
  File "/private/var/tmp/_bazel_user/1da975a732c2a8c8a86b734b8c4ba60b/sandbox/darwin-sandbox/59/execroot/_main/bazel-out/darwin_arm64-opt-exec-ST-4fe0721bc43e/bin/external/rules_pycross~/pycross/private/tools/wheel_builder.runfiles/rules_pycross~~pycross~rules_pycross_internal/deps/[email protected]/site-packages/build/__init__.py", line 344, in _call_backend
    with self._handle_backend(hook_name):
  File "/private/var/tmp/_bazel_user/1da975a732c2a8c8a86b734b8c4ba60b/execroot/_main/external/rules_python~~python~python_3_10_aarch64-apple-darwin/lib/python3.10/contextlib.py", line 153, in __exit__
    self.gen.throw(typ, value, traceback)
  File "/private/var/tmp/_bazel_user/1da975a732c2a8c8a86b734b8c4ba60b/sandbox/darwin-sandbox/59/execroot/_main/bazel-out/darwin_arm64-opt-exec-ST-4fe0721bc43e/bin/external/rules_pycross~/pycross/private/tools/wheel_builder.runfiles/rules_pycross~~pycross~rules_pycross_internal/deps/[email protected]/site-packages/build/__init__.py", line 354, in _handle_backend
    raise BuildBackendException(
build._exceptions.BuildBackendException: Backend 'setuptools.build_meta:__legacy__' is not available.

ERROR Backend 'setuptools.build_meta:__legacy__' is not available.

Here is the config I am using:

pyproject.toml
[project]
name = "test"
version = "0.0.0"
authors = []
requires-python = ">=3.10,<3.13"
dependencies = [
    "flask==3.0.2",
    "opentelemetry-api==1.24.0",
    "opentelemetry-exporter-jaeger==1.21.0",
    "opentelemetry-sdk==1.24.0",
]
[tool.pdm]
distribution = false

[build-system]
requires = ["pdm-pep517>=1.0.0"]
build-backend = "pdm.pep517.api"
MODULE.bazel
bazel_dep(name = "rules_python", version = "0.32.2")
bazel_dep(name = "rules_pycross", version = "0.5.4")

python_version = "3.10"
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(is_default = True, python_version = python_version)
use_repo(
    python,
    "python_%s" % python_version.replace(".", "_"),
    "python_%s_host" % python_version.replace(".", "_"),
    "python_versions",
)

pycross = use_extension("@rules_pycross//pycross/extensions:pycross.bzl", "pycross")
pycross.configure_environments(
    platforms = [
        "aarch64-apple-darwin",
        "x86_64-unknown-linux-gnu",
    ],
    python_versions = [python_version],
)
pycross.configure_interpreter(
    python_defs_file = "@python_%s//:defs.bzl" % python_version.replace(".", "_"),
    python_interpreter_target = "@python_%s_host//:python" % python_version.replace(".", "_"),
)
pycross.configure_toolchains()

lock_import = use_extension("@rules_pycross//pycross/extensions:lock_import.bzl", "lock_import")
lock_import.import_pdm(
    default_alias_single_version = True,
    lock_file = "//:pdm.lock",
    project_file = "//:pyproject.toml",
    repo = "pip",
)

lock_repos = use_extension("@rules_pycross//pycross/extensions:lock_repos.bzl", "lock_repos")
use_repo(lock_repos, "pip")

I assume it uses build.pypa.io, isn't it? Interestedly enough, pip-run build -- -m build works with the same pyproject.toml:

> python --version
Python 3.10.14

> python -m build --version
build 1.0.3 (/Users/user/Downloads/pip-tools-venv/lib/python3.10/site-packages/build)

> (pip-tools-venv)  ~/Development/bazel-pycross-pdm-example ๎‚ฐ python -m build --wheel
* Creating virtualenv isolated environment...
* Installing packages in isolated environment... (pdm-pep517>=1.0.0)
* Getting build dependencies for wheel...
* Building wheel...
 - Adding app/BUILD.bazel
 - Adding app/__init__.py
 - Adding app/app.py
 - Adding test-0.0.0.dist-info/WHEEL
/private/var/folders/pj/jqnlngf95nlg3qd7l5js_wb40000gr/T/build-env-1k2p7r2x/lib/python3.10/site-packages/pdm/pep517/base.py:384: PDMWarning: 'license' is missing
  if meta.license_expression:
 - Adding test-0.0.0.dist-info/METADATA
/private/var/folders/pj/jqnlngf95nlg3qd7l5js_wb40000gr/T/build-env-1k2p7r2x/lib/python3.10/site-packages/pdm/pep517/wheel.py:244: PDMWarning: No license files are matched with glob patterns ['LICENSES/*', 'LICEN[CS]E*', 'COPYING*', 'NOTICE*', 'AUTHORS*'].
  for license_file in self.find_license_files():
Successfully built test-0.0.0-py3-none-any.whl

I also tried setting legacy build-system in pyproject.toml:

[build-system]
requires = ["setuptools>=40.8.0"]
build-backend = "setuptools.build_meta:__legacy__"

Which didn't help. Any ideas what causes it and how to workaround the issue?

Compatibility with `rules_python_gazelle_plugin`

I am currently replacing rules_python in a rules_python + rules_python_gazelle_plugin + rules_py setup with rules_pycross and found some challenges in making rules_python_gazelle_plugin work with rules_pycross.

  • #93 - introduces all_whl_requirements needed for modules_mapping, a Python Gazelle - related rule to generate metadata needed for creating Gazelle mapping

With this improvement, pycross can be plugged in into Gazelle.

MODULE.bazel

lock_import = use_extension("@rules_pycross//pycross/extensions:lock_import.bzl", "lock_import")
lock_import.import_poetry(
    lock_file = "//:poetry.lock",
    project_file = "//:pyproject.toml",
    repo = "pip",
)

BUILD.bazel

load("@pip//:requirements.bzl", "all_whl_requirements")
load("@gazelle//:def.bzl", "DEFAULT_LANGUAGES", "gazelle", "gazelle_binary")
load("@pip//:requirements.bzl", "all_whl_requirements")
load("@rules_python_gazelle_plugin//manifest:defs.bzl", "gazelle_python_manifest")
load("@rules_python_gazelle_plugin//modules_mapping:def.bzl", "modules_mapping")

modules_mapping(
    name = "gazelle.metadata",
    tags = ["manual"],
    wheels = all_whl_requirements,
)

gazelle_python_manifest(
    name = "gazelle.mapping",
    modules_mapping = ":gazelle.metadata",
    pip_repository_name = "pip",
)

gazelle_binary(
    name = "gazelle_bin",
    languages = DEFAULT_LANGUAGES + [
        "@rules_python_gazelle_plugin//python",
    ],
)

gazelle(
    name = "gazelle.update",
    gazelle = ":gazelle_bin",
)

gazelle(
    name = "gazelle.check",
    args = ["-mode=diff"],
    gazelle = ":gazelle_bin",
)

The missing piece is that rules_pycross has whl targets structured differently than ones in rules_python, expected by Gazelle plugin.

deps = ["@pip//:flask"], # rules_pycross
deps = ["@pip//flask"],  # rules_python

There was an attempt to align pycross whl targets with ones in rules_python which was declined (for a good reason):

Essentially, we need to prefix with :. I was able to workaround this by simply putting a genrule in the middle doing exactly that:

load("@aspect_bazel_lib//lib:jq.bzl", "jq")

modules_mapping(
    name = "_gazelle.metadata",
    tags = ["manual"],
    wheels = all_whl_requirements,
)

jq(
    name = "gazelle.metadata",
    srcs = [":_gazelle.metadata"],
    filter = 'with_entries(.value |= ":\\(.)")',
)

gazelle_python_manifest(
    name = "gazelle.mapping",
    modules_mapping = ":gazelle.metadata",
    pip_repository_name = "pip",
    tags = ["manual"],
)

This might be a very optimistic look at that and only work with a small set of dependencies I tested in a PoC project. See the working example: https://github.com/wingsofovnia/bazel-pycross-poetry-gazelle-example

I decided to start this issue to outline issues, some workarounds and gather feedback on possible directions to improve the setup.

@ewianda for viz as you've been probably trying to achieve similar goal.

Handle list dependency entries in poetry.lock

Dependency entries are sometimes lists. For example, for opencv-python:

[[package]]
name = "opencv-python"
version = "4.6.0.66"
description = "Wrapper package for OpenCV python bindings."
category = "main"
optional = false
python-versions = ">=3.6"

[package.dependencies]
numpy = [
    {version = ">=1.21.2", markers = "python_version >= \"3.10\" or python_version >= \"3.6\" and platform_system == \"Darwin\" and platform_machine == \"arm64\""},
    {version = ">=1.19.3", markers = "python_version >= \"3.6\" and platform_system == \"Linux\" and platform_machine == \"aarch64\" or python_version >= \"3.9\""},
    {version = ">=1.14.5", markers = "python_version >= \"3.7\""},
    {version = ">=1.17.3", markers = "python_version >= \"3.8\""},
]

Mismatched local wheels can fail silently and be hard to debug

If a local wheel is present with the wrong version there is no indication of why its not used

leaving this here as a comment in case someone in the future gets stumped by this

to make it more obvious you can replace

# Override per-file with given local wheel labels
for filename, local_label in self.local_wheels.items():
name, version, _, _ = parse_wheel_filename(filename)
if (package.name, package.version) == (name, version):
package_sources[filename] = PackageSource(label=local_label)

with the following

            # has name_version and just name as specified in local_wheels
            # used to warn the user if a name is specified but version does not match
            specified_local_wheels = set() 
            
            # Override per-file with given local wheel labels
            for filename, local_label in self.local_wheels.items():
                name, version, _, _ = parse_wheel_filename(filename)
                specified_local_wheels.add(name)
                specified_local_wheels.add(f"{name}_{version}")
                
                if (package.name, package.version) == (name, version):
                    package_sources[filename] = PackageSource(label=local_label)

            if package.name in specified_local_wheels and f"{package.name}_{package.version}" not in specified_local_wheels:
                print(f"WARNING: {package.name} is specified in local_wheels but version does not match version {package.version} of package used in lock file.")

Lock generator fails

Hi,

Before anything, thank you for this initiative, that is great work.

I'm trying to use the example provided in rules_pycross/examples/poetry: I clone the project, navigate to the aforesaid folder and then run:

  • bazel run :update_example_lock. It works
  • I delete poetry.lock and run poetry install. This generate a new poetry.lock, different from the one provided. I'm running poetry 1.4.2.
  • bazel run :update_example_lock. Now it fails with:
ERROR: /Users/rparme642/workspace/sandbox/rules_pycross/examples/poetry/BUILD.bazel:83:18: Action example_lock.bzl failed: (Exit 1): bzl_lock_generator failed: error executing command bazel-out/host/bin/external/jvolkman_rules_pycross/pycross/private/tools/bzl_lock_generator --lock-model-file bazel-out/darwin_arm64-fastbuild/bin/example_lock_model.json --repo-prefix example_lock ... (remaining 61 arguments skipped)

Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging
Traceback (most recent call last):
File "/private/var/tmp/_bazel_rparme642/411f21b03d7ae690c53b656d45a85f57/sandbox/darwin-sandbox/50/execroot/jvolkman_rules_pycross_example/bazel-out/host/bin/external/jvolkman_rules_pycross/pycross/private/tools/bzl_lock_generator.runfiles/jvolkman_rules_pycross/pycross/private/tools/bzl_lock_generator.py", line 986, in <module>
  app.run(main, flags_parser=parse_flags)
File "/private/var/tmp/_bazel_rparme642/411f21b03d7ae690c53b656d45a85f57/sandbox/darwin-sandbox/50/execroot/jvolkman_rules_pycross_example/bazel-out/host/bin/external/jvolkman_rules_pycross/pycross/private/tools/bzl_lock_generator.runfiles/rules_pycross_pypi_deps_absl_py/site-packages/absl/app.py", line 308, in run
  _run_main(main, args)
File "/private/var/tmp/_bazel_rparme642/411f21b03d7ae690c53b656d45a85f57/sandbox/darwin-sandbox/50/execroot/jvolkman_rules_pycross_example/bazel-out/host/bin/external/jvolkman_rules_pycross/pycross/private/tools/bzl_lock_generator.runfiles/rules_pycross_pypi_deps_absl_py/site-packages/absl/app.py", line 254, in _run_main
  sys.exit(main(argv))
File "/private/var/tmp/_bazel_rparme642/411f21b03d7ae690c53b656d45a85f57/sandbox/darwin-sandbox/50/execroot/jvolkman_rules_pycross_example/bazel-out/host/bin/external/jvolkman_rules_pycross/pycross/private/tools/bzl_lock_generator.runfiles/jvolkman_rules_pycross/pycross/private/tools/bzl_lock_generator.py", line 737, in main
  resolved = resolve_single_version(
File "/private/var/tmp/_bazel_rparme642/411f21b03d7ae690c53b656d45a85f57/sandbox/darwin-sandbox/50/execroot/jvolkman_rules_pycross_example/bazel-out/host/bin/external/jvolkman_rules_pycross/pycross/private/tools/bzl_lock_generator.runfiles/jvolkman_rules_pycross/pycross/private/tools/bzl_lock_generator.py", line 614, in resolve_single_version
  raise Exception(f'{attr_name} entry "{name}" matches no packages')
Exception: always_build_packages entry "[email protected]" matches no packages
----------------
Note: The failure of target @jvolkman_rules_pycross//pycross/private/tools:bzl_lock_generator (with exit code 1) may have been caused by the fact that it is running under Python 3 instead of Python 2. Examine the error to determine if that appears to be the problem. Since this target is built in the host configuration, the only way to change its version is to set --host_force_python=PY2, which affects the entire build.

If this error started occurring in Bazel 0.27 and later, it may be because the Python toolchain now enforces that targets analyzed as PY2 and PY3 run under a Python 2 and Python 3 interpreter, respectively. See https://github.com/bazelbuild/bazel/issues/7899 for more information.

Am I doing anything wrong? I'm not sure I fully understand the issue described by the error message.

building [email protected] fails on numpy native libs for cross-compile to linux aarch64

I'm running into a pretty cryptic problem where building [email protected] fails with missing numpy C libraries even though building numpy directly succeeds. I have the pretty much same setup as the crossenv example but with a linux_aarch64 platform and toolchains defined, and have added pytensor to pyproject.toml/poetry.lock, re-generated the bzl lockfile. Then, building:

bazel build //deps:pytensor --platforms=linux_aarch64

Fails with error:

IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!

Importing the numpy C-extensions failed. This error can happen for
many reasons, often due to issues with your setup or how NumPy was
installed.

We have compiled some common reasons and troubleshooting tips at:

    https://numpy.org/devdocs/user/troubleshooting-importerror.html

Please note and check the following:

  * The Python version is: Python3.10 from "/var/folders/7p/mk19d_nn53b5s4wtmkllf4dr0000gn/T/wheelbuild7r8m1se5/env/bin/python"
  * The NumPy version is: "1.25.2"

and make sure that they are the versions you expect.
Please carefully study the documentation linked above for further help.

Original error was: No module named 'numpy.core._multiarray_umath'

Even though this succeeds:

bazel build //deps:numpy --platforms=//:linux_aarch64

If it helps, here's the contents of numpy from the sandbox

โฏ tree ./bazel-out/darwin-fastbuild/bin/deps/numpy_1.25.2
./bazel-out/darwin-fastbuild/bin/deps/numpy_1.22.3/site-packages/numpy
โ”œโ”€โ”€ LICENSE.txt
โ”œโ”€โ”€ __config__.py
โ”œโ”€โ”€ __init__.cython-30.pxd
โ”œโ”€โ”€ __init__.pxd
โ”œโ”€โ”€ __init__.py
โ”œโ”€โ”€ __init__.pyi
โ”œโ”€โ”€ __pycache__
โ”‚ย ย  โ”œโ”€โ”€ __config__.cpython-39.opt-1.pyc
โ”‚ย ย  โ”œโ”€โ”€ __config__.cpython-39.pyc
โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”œโ”€โ”€ _distributor_init.cpython-39.opt-1.pyc
โ”‚ย ย  โ”œโ”€โ”€ _distributor_init.cpython-39.pyc
โ”‚ย ย  โ”œโ”€โ”€ _globals.cpython-39.opt-1.pyc
โ”‚ย ย  โ”œโ”€โ”€ _globals.cpython-39.pyc
โ”‚ย ย  โ”œโ”€โ”€ _pytesttester.cpython-39.opt-1.pyc
โ”‚ย ย  โ”œโ”€โ”€ _pytesttester.cpython-39.pyc
โ”‚ย ย  โ”œโ”€โ”€ _version.cpython-39.opt-1.pyc
โ”‚ย ย  โ”œโ”€โ”€ _version.cpython-39.pyc
โ”‚ย ย  โ”œโ”€โ”€ conftest.cpython-39.opt-1.pyc
โ”‚ย ย  โ”œโ”€โ”€ conftest.cpython-39.pyc
โ”‚ย ย  โ”œโ”€โ”€ ctypeslib.cpython-39.opt-1.pyc
โ”‚ย ย  โ”œโ”€โ”€ ctypeslib.cpython-39.pyc
โ”‚ย ย  โ”œโ”€โ”€ dual.cpython-39.opt-1.pyc
โ”‚ย ย  โ”œโ”€โ”€ dual.cpython-39.pyc
โ”‚ย ย  โ”œโ”€โ”€ matlib.cpython-39.opt-1.pyc
โ”‚ย ย  โ”œโ”€โ”€ matlib.cpython-39.pyc
โ”‚ย ย  โ”œโ”€โ”€ setup.cpython-39.opt-1.pyc
โ”‚ย ย  โ”œโ”€โ”€ setup.cpython-39.pyc
โ”‚ย ย  โ”œโ”€โ”€ version.cpython-39.opt-1.pyc
โ”‚ย ย  โ””โ”€โ”€ version.cpython-39.pyc
โ”œโ”€โ”€ _distributor_init.py
โ”œโ”€โ”€ _globals.py
โ”œโ”€โ”€ _pytesttester.py
โ”œโ”€โ”€ _pytesttester.pyi
โ”œโ”€โ”€ _version.py
โ”œโ”€โ”€ array_api
โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”œโ”€โ”€ __pycache__
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _array_object.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _array_object.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _constants.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _constants.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _creation_functions.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _creation_functions.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _data_type_functions.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _data_type_functions.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _dtypes.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _dtypes.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _elementwise_functions.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _elementwise_functions.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _manipulation_functions.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _manipulation_functions.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _searching_functions.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _searching_functions.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _set_functions.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _set_functions.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _sorting_functions.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _sorting_functions.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _statistical_functions.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _statistical_functions.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _typing.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _typing.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _utility_functions.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _utility_functions.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ linalg.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ linalg.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ setup.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ setup.cpython-39.pyc
โ”‚ย ย  โ”œโ”€โ”€ _array_object.py
โ”‚ย ย  โ”œโ”€โ”€ _constants.py
โ”‚ย ย  โ”œโ”€โ”€ _creation_functions.py
โ”‚ย ย  โ”œโ”€โ”€ _data_type_functions.py
โ”‚ย ย  โ”œโ”€โ”€ _dtypes.py
โ”‚ย ย  โ”œโ”€โ”€ _elementwise_functions.py
โ”‚ย ย  โ”œโ”€โ”€ _manipulation_functions.py
โ”‚ย ย  โ”œโ”€โ”€ _searching_functions.py
โ”‚ย ย  โ”œโ”€โ”€ _set_functions.py
โ”‚ย ย  โ”œโ”€โ”€ _sorting_functions.py
โ”‚ย ย  โ”œโ”€โ”€ _statistical_functions.py
โ”‚ย ย  โ”œโ”€โ”€ _typing.py
โ”‚ย ย  โ”œโ”€โ”€ _utility_functions.py
โ”‚ย ย  โ”œโ”€โ”€ linalg.py
โ”‚ย ย  โ”œโ”€โ”€ setup.py
โ”‚ย ย  โ””โ”€โ”€ tests
โ”‚ย ย      โ”œโ”€โ”€ __init__.py
โ”‚ย ย      โ”œโ”€โ”€ __pycache__
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_array_object.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_array_object.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_creation_functions.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_creation_functions.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_elementwise_functions.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_elementwise_functions.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_set_functions.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_set_functions.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_sorting_functions.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ””โ”€โ”€ test_sorting_functions.cpython-39.pyc
โ”‚ย ย      โ”œโ”€โ”€ test_array_object.py
โ”‚ย ย      โ”œโ”€โ”€ test_creation_functions.py
โ”‚ย ย      โ”œโ”€โ”€ test_elementwise_functions.py
โ”‚ย ย      โ”œโ”€โ”€ test_set_functions.py
โ”‚ย ย      โ””โ”€โ”€ test_sorting_functions.py
โ”œโ”€โ”€ compat
โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”œโ”€โ”€ __pycache__
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _inspect.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _inspect.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ py3k.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ py3k.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ setup.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ setup.cpython-39.pyc
โ”‚ย ย  โ”œโ”€โ”€ _inspect.py
โ”‚ย ย  โ”œโ”€โ”€ py3k.py
โ”‚ย ย  โ”œโ”€โ”€ setup.py
โ”‚ย ย  โ””โ”€โ”€ tests
โ”‚ย ย      โ”œโ”€โ”€ __init__.py
โ”‚ย ย      โ”œโ”€โ”€ __pycache__
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_compat.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ””โ”€โ”€ test_compat.cpython-39.pyc
โ”‚ย ย      โ””โ”€โ”€ test_compat.py
โ”œโ”€โ”€ conftest.py
โ”œโ”€โ”€ core
โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”œโ”€โ”€ __init__.pyi
โ”‚ย ย  โ”œโ”€โ”€ __pycache__
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _add_newdocs.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _add_newdocs.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _add_newdocs_scalars.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _add_newdocs_scalars.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _asarray.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _asarray.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _dtype.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _dtype.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _dtype_ctypes.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _dtype_ctypes.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _exceptions.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _exceptions.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _internal.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _internal.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _machar.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _machar.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _methods.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _methods.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _string_helpers.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _string_helpers.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _type_aliases.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _type_aliases.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _ufunc_config.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _ufunc_config.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ arrayprint.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ arrayprint.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cversions.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cversions.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ defchararray.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ defchararray.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ einsumfunc.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ einsumfunc.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ fromnumeric.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ fromnumeric.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ function_base.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ function_base.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ generate_numpy_api.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ generate_numpy_api.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ getlimits.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ getlimits.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ memmap.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ memmap.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ multiarray.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ multiarray.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ numeric.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ numeric.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ numerictypes.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ numerictypes.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ overrides.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ overrides.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ records.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ records.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ setup.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ setup.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ setup_common.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ setup_common.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ shape_base.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ shape_base.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ umath.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ umath.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ umath_tests.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ umath_tests.cpython-39.pyc
โ”‚ย ย  โ”œโ”€โ”€ _add_newdocs.py
โ”‚ย ย  โ”œโ”€โ”€ _add_newdocs_scalars.py
โ”‚ย ย  โ”œโ”€โ”€ _asarray.py
โ”‚ย ย  โ”œโ”€โ”€ _asarray.pyi
โ”‚ย ย  โ”œโ”€โ”€ _dtype.py
โ”‚ย ย  โ”œโ”€โ”€ _dtype_ctypes.py
โ”‚ย ย  โ”œโ”€โ”€ _exceptions.py
โ”‚ย ย  โ”œโ”€โ”€ _internal.py
โ”‚ย ย  โ”œโ”€โ”€ _internal.pyi
โ”‚ย ย  โ”œโ”€โ”€ _machar.py
โ”‚ย ย  โ”œโ”€โ”€ _methods.py
โ”‚ย ย  โ”œโ”€โ”€ _multiarray_tests.cpython-39-aarch64-linux-gnu.so
โ”‚ย ย  โ”œโ”€โ”€ _multiarray_umath.cpython-39-aarch64-linux-gnu.so
โ”‚ย ย  โ”œโ”€โ”€ _operand_flag_tests.cpython-39-aarch64-linux-gnu.so
โ”‚ย ย  โ”œโ”€โ”€ _rational_tests.cpython-39-aarch64-linux-gnu.so
โ”‚ย ย  โ”œโ”€โ”€ _simd.cpython-39-aarch64-linux-gnu.so
โ”‚ย ย  โ”œโ”€โ”€ _string_helpers.py
โ”‚ย ย  โ”œโ”€โ”€ _struct_ufunc_tests.cpython-39-aarch64-linux-gnu.so
โ”‚ย ย  โ”œโ”€โ”€ _type_aliases.py
โ”‚ย ย  โ”œโ”€โ”€ _type_aliases.pyi
โ”‚ย ย  โ”œโ”€โ”€ _ufunc_config.py
โ”‚ย ย  โ”œโ”€โ”€ _ufunc_config.pyi
โ”‚ย ย  โ”œโ”€โ”€ _umath_tests.cpython-39-aarch64-linux-gnu.so
โ”‚ย ย  โ”œโ”€โ”€ arrayprint.py
โ”‚ย ย  โ”œโ”€โ”€ arrayprint.pyi
โ”‚ย ย  โ”œโ”€โ”€ cversions.py
โ”‚ย ย  โ”œโ”€โ”€ defchararray.py
โ”‚ย ย  โ”œโ”€โ”€ defchararray.pyi
โ”‚ย ย  โ”œโ”€โ”€ einsumfunc.py
โ”‚ย ย  โ”œโ”€โ”€ einsumfunc.pyi
โ”‚ย ย  โ”œโ”€โ”€ fromnumeric.py
โ”‚ย ย  โ”œโ”€โ”€ fromnumeric.pyi
โ”‚ย ย  โ”œโ”€โ”€ function_base.py
โ”‚ย ย  โ”œโ”€โ”€ function_base.pyi
โ”‚ย ย  โ”œโ”€โ”€ generate_numpy_api.py
โ”‚ย ย  โ”œโ”€โ”€ getlimits.py
โ”‚ย ย  โ”œโ”€โ”€ getlimits.pyi
โ”‚ย ย  โ”œโ”€โ”€ include
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ numpy
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ __multiarray_api.h
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ __ufunc_api.h
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ _neighborhood_iterator_imp.h
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ _numpyconfig.h
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ arrayobject.h
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ arrayscalars.h
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ experimental_dtype_api.h
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ halffloat.h
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ libdivide
โ”‚ย ย  โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ LICENSE.txt
โ”‚ย ย  โ”‚ย ย      โ”‚ย ย  โ””โ”€โ”€ libdivide.h
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ multiarray_api.txt
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ ndarrayobject.h
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ ndarraytypes.h
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ noprefix.h
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ npy_1_7_deprecated_api.h
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ npy_3kcompat.h
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ npy_common.h
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ npy_cpu.h
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ npy_endian.h
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ npy_interrupt.h
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ npy_math.h
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ npy_no_deprecated_api.h
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ npy_os.h
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ numpyconfig.h
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ old_defines.h
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ oldnumeric.h
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ random
โ”‚ย ย  โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ bitgen.h
โ”‚ย ย  โ”‚ย ย      โ”‚ย ย  โ””โ”€โ”€ distributions.h
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ ufunc_api.txt
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ ufuncobject.h
โ”‚ย ย  โ”‚ย ย      โ””โ”€โ”€ utils.h
โ”‚ย ย  โ”œโ”€โ”€ lib
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ libnpymath.a
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ npy-pkg-config
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ mlib.ini
โ”‚ย ย  โ”‚ย ย      โ””โ”€โ”€ npymath.ini
โ”‚ย ย  โ”œโ”€โ”€ memmap.py
โ”‚ย ย  โ”œโ”€โ”€ memmap.pyi
โ”‚ย ย  โ”œโ”€โ”€ multiarray.py
โ”‚ย ย  โ”œโ”€โ”€ multiarray.pyi
โ”‚ย ย  โ”œโ”€โ”€ numeric.py
โ”‚ย ย  โ”œโ”€โ”€ numeric.pyi
โ”‚ย ย  โ”œโ”€โ”€ numerictypes.py
โ”‚ย ย  โ”œโ”€โ”€ numerictypes.pyi
โ”‚ย ย  โ”œโ”€โ”€ overrides.py
โ”‚ย ย  โ”œโ”€โ”€ records.py
โ”‚ย ย  โ”œโ”€โ”€ records.pyi
โ”‚ย ย  โ”œโ”€โ”€ setup.py
โ”‚ย ย  โ”œโ”€โ”€ setup_common.py
โ”‚ย ย  โ”œโ”€โ”€ shape_base.py
โ”‚ย ย  โ”œโ”€โ”€ shape_base.pyi
โ”‚ย ย  โ”œโ”€โ”€ tests
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __pycache__
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _locales.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _locales.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test__exceptions.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test__exceptions.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_abc.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_abc.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_api.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_api.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_argparse.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_argparse.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_array_coercion.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_array_coercion.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_arraymethod.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_arraymethod.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_arrayprint.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_arrayprint.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_casting_unittests.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_casting_unittests.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_conversion_utils.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_conversion_utils.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_cpu_dispatcher.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_cpu_dispatcher.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_cpu_features.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_cpu_features.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_custom_dtypes.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_custom_dtypes.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_cython.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_cython.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_datetime.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_datetime.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_defchararray.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_defchararray.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_deprecations.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_deprecations.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_dlpack.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_dlpack.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_dtype.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_dtype.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_einsum.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_einsum.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_errstate.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_errstate.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_extint128.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_extint128.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_function_base.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_function_base.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_getlimits.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_getlimits.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_half.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_half.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_hashtable.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_hashtable.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_indexerrors.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_indexerrors.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_indexing.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_indexing.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_item_selection.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_item_selection.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_limited_api.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_limited_api.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_longdouble.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_longdouble.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_machar.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_machar.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_mem_overlap.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_mem_overlap.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_mem_policy.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_mem_policy.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_memmap.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_memmap.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_multiarray.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_multiarray.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_nditer.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_nditer.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_numeric.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_numeric.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_numerictypes.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_numerictypes.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_overrides.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_overrides.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_print.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_print.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_protocols.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_protocols.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_records.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_records.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_regression.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_regression.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_scalar_ctors.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_scalar_ctors.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_scalar_methods.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_scalar_methods.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_scalarbuffer.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_scalarbuffer.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_scalarinherit.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_scalarinherit.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_scalarmath.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_scalarmath.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_scalarprint.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_scalarprint.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_shape_base.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_shape_base.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_simd.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_simd.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_simd_module.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_simd_module.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_ufunc.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_ufunc.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_umath.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_umath.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_umath_accuracy.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_umath_accuracy.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_umath_complex.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_umath_complex.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_unicode.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ test_unicode.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _locales.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ data
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ astype_copy.pkl
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ generate_umath_validation_data.cpp
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ recarray_from_file.fits
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ umath-validation-set-README.txt
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ umath-validation-set-arccos.csv
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ umath-validation-set-arccosh.csv
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ umath-validation-set-arcsin.csv
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ umath-validation-set-arcsinh.csv
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ umath-validation-set-arctan.csv
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ umath-validation-set-arctanh.csv
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ umath-validation-set-cbrt.csv
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ umath-validation-set-cos.csv
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ umath-validation-set-cosh.csv
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ umath-validation-set-exp.csv
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ umath-validation-set-exp2.csv
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ umath-validation-set-expm1.csv
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ umath-validation-set-log.csv
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ umath-validation-set-log10.csv
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ umath-validation-set-log1p.csv
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ umath-validation-set-log2.csv
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ umath-validation-set-sin.csv
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ umath-validation-set-sinh.csv
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ umath-validation-set-tan.csv
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ umath-validation-set-tanh.csv
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ examples
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cython
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __pycache__
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ setup.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ setup.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ checks.pyx
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ setup.py
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ limited_api
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ __pycache__
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ setup.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย      โ”‚ย ย  โ””โ”€โ”€ setup.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ limited_api.c
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย      โ””โ”€โ”€ setup.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test__exceptions.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_abc.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_api.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_argparse.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_array_coercion.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_arraymethod.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_arrayprint.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_casting_unittests.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_conversion_utils.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_cpu_dispatcher.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_cpu_features.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_custom_dtypes.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_cython.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_datetime.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_defchararray.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_deprecations.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_dlpack.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_dtype.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_einsum.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_errstate.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_extint128.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_function_base.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_getlimits.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_half.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_hashtable.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_indexerrors.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_indexing.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_item_selection.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_limited_api.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_longdouble.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_machar.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_mem_overlap.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_mem_policy.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_memmap.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_multiarray.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_nditer.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_numeric.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_numerictypes.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_overrides.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_print.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_protocols.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_records.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_regression.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_scalar_ctors.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_scalar_methods.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_scalarbuffer.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_scalarinherit.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_scalarmath.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_scalarprint.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_shape_base.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_simd.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_simd_module.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_ufunc.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_umath.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_umath_accuracy.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_umath_complex.py
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ test_unicode.py
โ”‚ย ย  โ”œโ”€โ”€ umath.py
โ”‚ย ย  โ””โ”€โ”€ umath_tests.py
โ”œโ”€โ”€ ctypeslib.py
โ”œโ”€โ”€ ctypeslib.pyi
โ”œโ”€โ”€ distutils
โ”‚ย ย  โ”œโ”€โ”€ __config__.py
โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”œโ”€โ”€ __init__.pyi
โ”‚ย ย  โ”œโ”€โ”€ __pycache__
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __config__.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __config__.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _shell_utils.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _shell_utils.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ armccompiler.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ armccompiler.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ccompiler.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ccompiler.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ccompiler_opt.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ccompiler_opt.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ conv_template.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ conv_template.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ core.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ core.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cpuinfo.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cpuinfo.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ exec_command.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ exec_command.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ extension.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ extension.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ from_template.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ from_template.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ intelccompiler.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ intelccompiler.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ lib2def.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ lib2def.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ line_endings.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ line_endings.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ log.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ log.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ mingw32ccompiler.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ mingw32ccompiler.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ misc_util.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ misc_util.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ msvc9compiler.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ msvc9compiler.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ msvccompiler.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ msvccompiler.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ npy_pkg_config.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ npy_pkg_config.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ numpy_distribution.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ numpy_distribution.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ pathccompiler.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ pathccompiler.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ setup.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ setup.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ system_info.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ system_info.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ unixccompiler.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ unixccompiler.cpython-39.pyc
โ”‚ย ย  โ”œโ”€โ”€ _shell_utils.py
โ”‚ย ย  โ”œโ”€โ”€ armccompiler.py
โ”‚ย ย  โ”œโ”€โ”€ ccompiler.py
โ”‚ย ย  โ”œโ”€โ”€ ccompiler_opt.py
โ”‚ย ย  โ”œโ”€โ”€ checks
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cpu_asimd.c
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cpu_asimddp.c
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cpu_asimdfhm.c
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cpu_asimdhp.c
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cpu_avx.c
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cpu_avx2.c
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cpu_avx512_clx.c
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cpu_avx512_cnl.c
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cpu_avx512_icl.c
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cpu_avx512_knl.c
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cpu_avx512_knm.c
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cpu_avx512_skx.c
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cpu_avx512cd.c
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cpu_avx512f.c
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cpu_f16c.c
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cpu_fma3.c
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cpu_fma4.c
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cpu_neon.c
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cpu_neon_fp16.c
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cpu_neon_vfpv4.c
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cpu_popcnt.c
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cpu_sse.c
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cpu_sse2.c
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cpu_sse3.c
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cpu_sse41.c
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cpu_sse42.c
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cpu_ssse3.c
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cpu_vsx.c
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cpu_vsx2.c
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cpu_vsx3.c
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cpu_xop.c
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ extra_avx512bw_mask.c
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ extra_avx512dq_mask.c
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ extra_avx512f_reduce.c
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ extra_vsx_asm.c
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ test_flags.c
โ”‚ย ย  โ”œโ”€โ”€ command
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __pycache__
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ autodist.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ autodist.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ bdist_rpm.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ bdist_rpm.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ build.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ build.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ build_clib.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ build_clib.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ build_ext.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ build_ext.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ build_py.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ build_py.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ build_scripts.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ build_scripts.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ build_src.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ build_src.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ config.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ config.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ config_compiler.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ config_compiler.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ develop.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ develop.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ egg_info.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ egg_info.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ install.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ install.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ install_clib.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ install_clib.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ install_data.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ install_data.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ install_headers.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ install_headers.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ sdist.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ sdist.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ autodist.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ bdist_rpm.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ build.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ build_clib.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ build_ext.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ build_py.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ build_scripts.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ build_src.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ config.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ config_compiler.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ develop.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ egg_info.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ install.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ install_clib.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ install_data.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ install_headers.py
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ sdist.py
โ”‚ย ย  โ”œโ”€โ”€ conv_template.py
โ”‚ย ย  โ”œโ”€โ”€ core.py
โ”‚ย ย  โ”œโ”€โ”€ cpuinfo.py
โ”‚ย ย  โ”œโ”€โ”€ exec_command.py
โ”‚ย ย  โ”œโ”€โ”€ extension.py
โ”‚ย ย  โ”œโ”€โ”€ fcompiler
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __pycache__
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ absoft.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ absoft.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ arm.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ arm.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ compaq.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ compaq.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ environment.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ environment.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ fujitsu.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ fujitsu.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ g95.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ g95.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ gnu.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ gnu.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ hpux.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ hpux.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ibm.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ibm.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ intel.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ intel.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ lahey.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ lahey.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ mips.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ mips.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ nag.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ nag.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ none.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ none.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ nv.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ nv.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ pathf95.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ pathf95.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ pg.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ pg.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ sun.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ sun.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ vast.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ vast.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ absoft.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ arm.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ compaq.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ environment.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ fujitsu.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ g95.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ gnu.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ hpux.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ibm.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ intel.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ lahey.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ mips.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ nag.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ none.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ nv.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ pathf95.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ pg.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ sun.py
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ vast.py
โ”‚ย ย  โ”œโ”€โ”€ from_template.py
โ”‚ย ย  โ”œโ”€โ”€ intelccompiler.py
โ”‚ย ย  โ”œโ”€โ”€ lib2def.py
โ”‚ย ย  โ”œโ”€โ”€ line_endings.py
โ”‚ย ย  โ”œโ”€โ”€ log.py
โ”‚ย ย  โ”œโ”€โ”€ mingw
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ gfortran_vs2003_hack.c
โ”‚ย ย  โ”œโ”€โ”€ mingw32ccompiler.py
โ”‚ย ย  โ”œโ”€โ”€ misc_util.py
โ”‚ย ย  โ”œโ”€โ”€ msvc9compiler.py
โ”‚ย ย  โ”œโ”€โ”€ msvccompiler.py
โ”‚ย ย  โ”œโ”€โ”€ npy_pkg_config.py
โ”‚ย ย  โ”œโ”€โ”€ numpy_distribution.py
โ”‚ย ย  โ”œโ”€โ”€ pathccompiler.py
โ”‚ย ย  โ”œโ”€โ”€ setup.py
โ”‚ย ย  โ”œโ”€โ”€ system_info.py
โ”‚ย ย  โ”œโ”€โ”€ tests
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __pycache__
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_build_ext.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_build_ext.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_ccompiler_opt.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_ccompiler_opt.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_ccompiler_opt_conf.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_ccompiler_opt_conf.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_exec_command.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_exec_command.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_fcompiler.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_fcompiler.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_fcompiler_gnu.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_fcompiler_gnu.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_fcompiler_intel.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_fcompiler_intel.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_fcompiler_nagfor.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_fcompiler_nagfor.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_from_template.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_from_template.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_log.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_log.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_mingw32ccompiler.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_mingw32ccompiler.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_misc_util.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_misc_util.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_npy_pkg_config.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_npy_pkg_config.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_shell_utils.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_shell_utils.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_system_info.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ test_system_info.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_build_ext.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_ccompiler_opt.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_ccompiler_opt_conf.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_exec_command.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_fcompiler.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_fcompiler_gnu.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_fcompiler_intel.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_fcompiler_nagfor.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_from_template.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_log.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_mingw32ccompiler.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_misc_util.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_npy_pkg_config.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_shell_utils.py
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ test_system_info.py
โ”‚ย ย  โ””โ”€โ”€ unixccompiler.py
โ”œโ”€โ”€ doc
โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”œโ”€โ”€ __pycache__
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ constants.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ constants.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ufuncs.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ufuncs.cpython-39.pyc
โ”‚ย ย  โ”œโ”€โ”€ constants.py
โ”‚ย ย  โ””โ”€โ”€ ufuncs.py
โ”œโ”€โ”€ dual.py
โ”œโ”€โ”€ f2py
โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”œโ”€โ”€ __init__.pyi
โ”‚ย ย  โ”œโ”€โ”€ __main__.py
โ”‚ย ย  โ”œโ”€โ”€ __pycache__
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __main__.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __main__.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __version__.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __version__.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ auxfuncs.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ auxfuncs.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ capi_maps.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ capi_maps.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cb_rules.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cb_rules.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cfuncs.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cfuncs.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ common_rules.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ common_rules.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ crackfortran.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ crackfortran.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ diagnose.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ diagnose.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ f2py2e.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ f2py2e.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ f2py_testing.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ f2py_testing.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ f90mod_rules.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ f90mod_rules.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ func2subr.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ func2subr.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ rules.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ rules.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ setup.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ setup.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ symbolic.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ symbolic.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ use_rules.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ use_rules.cpython-39.pyc
โ”‚ย ย  โ”œโ”€โ”€ __version__.py
โ”‚ย ย  โ”œโ”€โ”€ auxfuncs.py
โ”‚ย ย  โ”œโ”€โ”€ capi_maps.py
โ”‚ย ย  โ”œโ”€โ”€ cb_rules.py
โ”‚ย ย  โ”œโ”€โ”€ cfuncs.py
โ”‚ย ย  โ”œโ”€โ”€ common_rules.py
โ”‚ย ย  โ”œโ”€โ”€ crackfortran.py
โ”‚ย ย  โ”œโ”€โ”€ diagnose.py
โ”‚ย ย  โ”œโ”€โ”€ f2py2e.py
โ”‚ย ย  โ”œโ”€โ”€ f2py_testing.py
โ”‚ย ย  โ”œโ”€โ”€ f90mod_rules.py
โ”‚ย ย  โ”œโ”€โ”€ func2subr.py
โ”‚ย ย  โ”œโ”€โ”€ rules.py
โ”‚ย ย  โ”œโ”€โ”€ setup.py
โ”‚ย ย  โ”œโ”€โ”€ src
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ fortranobject.c
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ fortranobject.h
โ”‚ย ย  โ”œโ”€โ”€ symbolic.py
โ”‚ย ย  โ”œโ”€โ”€ tests
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __pycache__
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_abstract_interface.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_abstract_interface.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_array_from_pyobj.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_array_from_pyobj.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_assumed_shape.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_assumed_shape.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_block_docstring.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_block_docstring.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_callback.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_callback.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_common.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_common.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_compile_function.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_compile_function.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_crackfortran.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_crackfortran.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_kind.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_kind.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_mixed.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_mixed.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_module_doc.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_module_doc.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_parameter.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_parameter.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_quoted_character.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_quoted_character.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_regression.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_regression.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_return_character.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_return_character.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_return_complex.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_return_complex.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_return_integer.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_return_integer.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_return_logical.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_return_logical.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_return_real.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_return_real.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_semicolon_split.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_semicolon_split.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_size.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_size.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_string.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_string.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_symbolic.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_symbolic.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ util.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ util.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ src
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ array_from_pyobj
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ wrapmodule.c
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ assumed_shape
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ foo_free.f90
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ foo_mod.f90
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ foo_use.f90
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ precision.f90
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ common
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ block.f
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ kind
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ foo.f90
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ mixed
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ foo.f
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ foo_fixed.f90
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ foo_free.f90
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ module_data
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ mod.mod
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ module_data_docstring.f90
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ parameter
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ constant_both.f90
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ constant_compound.f90
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ constant_integer.f90
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ constant_non_compound.f90
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ constant_real.f90
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ regression
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ inout.f90
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ size
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ foo.f90
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ string
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย      โ””โ”€โ”€ char.f90
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_abstract_interface.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_array_from_pyobj.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_assumed_shape.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_block_docstring.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_callback.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_common.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_compile_function.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_crackfortran.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_kind.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_mixed.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_module_doc.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_parameter.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_quoted_character.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_regression.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_return_character.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_return_complex.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_return_integer.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_return_logical.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_return_real.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_semicolon_split.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_size.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_string.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_symbolic.py
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ util.py
โ”‚ย ย  โ””โ”€โ”€ use_rules.py
โ”œโ”€โ”€ fft
โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”œโ”€โ”€ __init__.pyi
โ”‚ย ย  โ”œโ”€โ”€ __pycache__
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _pocketfft.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _pocketfft.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ helper.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ helper.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ setup.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ setup.cpython-39.pyc
โ”‚ย ย  โ”œโ”€โ”€ _pocketfft.py
โ”‚ย ย  โ”œโ”€โ”€ _pocketfft.pyi
โ”‚ย ย  โ”œโ”€โ”€ _pocketfft_internal.cpython-39-aarch64-linux-gnu.so
โ”‚ย ย  โ”œโ”€โ”€ helper.py
โ”‚ย ย  โ”œโ”€โ”€ helper.pyi
โ”‚ย ย  โ”œโ”€โ”€ setup.py
โ”‚ย ย  โ””โ”€โ”€ tests
โ”‚ย ย      โ”œโ”€โ”€ __init__.py
โ”‚ย ย      โ”œโ”€โ”€ __pycache__
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_helper.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_helper.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_pocketfft.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ””โ”€โ”€ test_pocketfft.cpython-39.pyc
โ”‚ย ย      โ”œโ”€โ”€ test_helper.py
โ”‚ย ย      โ””โ”€โ”€ test_pocketfft.py
โ”œโ”€โ”€ lib
โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”œโ”€โ”€ __init__.pyi
โ”‚ย ย  โ”œโ”€โ”€ __pycache__
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _datasource.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _datasource.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _iotools.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _iotools.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _version.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _version.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ arraypad.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ arraypad.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ arraysetops.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ arraysetops.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ arrayterator.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ arrayterator.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ format.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ format.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ function_base.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ function_base.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ histograms.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ histograms.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ index_tricks.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ index_tricks.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ mixins.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ mixins.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ nanfunctions.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ nanfunctions.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ npyio.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ npyio.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ polynomial.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ polynomial.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ recfunctions.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ recfunctions.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ scimath.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ scimath.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ setup.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ setup.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ shape_base.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ shape_base.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ stride_tricks.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ stride_tricks.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ twodim_base.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ twodim_base.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ type_check.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ type_check.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ufunclike.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ufunclike.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ user_array.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ user_array.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ utils.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ utils.cpython-39.pyc
โ”‚ย ย  โ”œโ”€โ”€ _datasource.py
โ”‚ย ย  โ”œโ”€โ”€ _iotools.py
โ”‚ย ย  โ”œโ”€โ”€ _version.py
โ”‚ย ย  โ”œโ”€โ”€ _version.pyi
โ”‚ย ย  โ”œโ”€โ”€ arraypad.py
โ”‚ย ย  โ”œโ”€โ”€ arraypad.pyi
โ”‚ย ย  โ”œโ”€โ”€ arraysetops.py
โ”‚ย ย  โ”œโ”€โ”€ arraysetops.pyi
โ”‚ย ย  โ”œโ”€โ”€ arrayterator.py
โ”‚ย ย  โ”œโ”€โ”€ arrayterator.pyi
โ”‚ย ย  โ”œโ”€โ”€ format.py
โ”‚ย ย  โ”œโ”€โ”€ format.pyi
โ”‚ย ย  โ”œโ”€โ”€ function_base.py
โ”‚ย ย  โ”œโ”€โ”€ function_base.pyi
โ”‚ย ย  โ”œโ”€โ”€ histograms.py
โ”‚ย ย  โ”œโ”€โ”€ histograms.pyi
โ”‚ย ย  โ”œโ”€โ”€ index_tricks.py
โ”‚ย ย  โ”œโ”€โ”€ index_tricks.pyi
โ”‚ย ย  โ”œโ”€โ”€ mixins.py
โ”‚ย ย  โ”œโ”€โ”€ mixins.pyi
โ”‚ย ย  โ”œโ”€โ”€ nanfunctions.py
โ”‚ย ย  โ”œโ”€โ”€ nanfunctions.pyi
โ”‚ย ย  โ”œโ”€โ”€ npyio.py
โ”‚ย ย  โ”œโ”€โ”€ npyio.pyi
โ”‚ย ย  โ”œโ”€โ”€ polynomial.py
โ”‚ย ย  โ”œโ”€โ”€ polynomial.pyi
โ”‚ย ย  โ”œโ”€โ”€ recfunctions.py
โ”‚ย ย  โ”œโ”€โ”€ scimath.py
โ”‚ย ย  โ”œโ”€โ”€ scimath.pyi
โ”‚ย ย  โ”œโ”€โ”€ setup.py
โ”‚ย ย  โ”œโ”€โ”€ shape_base.py
โ”‚ย ย  โ”œโ”€โ”€ shape_base.pyi
โ”‚ย ย  โ”œโ”€โ”€ stride_tricks.py
โ”‚ย ย  โ”œโ”€โ”€ stride_tricks.pyi
โ”‚ย ย  โ”œโ”€โ”€ tests
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __pycache__
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test__datasource.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test__datasource.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test__iotools.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test__iotools.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test__version.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test__version.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_arraypad.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_arraypad.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_arraysetops.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_arraysetops.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_arrayterator.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_arrayterator.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_financial_expired.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_financial_expired.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_format.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_format.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_function_base.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_function_base.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_histograms.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_histograms.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_index_tricks.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_index_tricks.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_io.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_io.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_mixins.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_mixins.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_nanfunctions.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_nanfunctions.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_packbits.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_packbits.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_polynomial.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_polynomial.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_recfunctions.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_recfunctions.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_regression.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_regression.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_shape_base.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_shape_base.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_stride_tricks.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_stride_tricks.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_twodim_base.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_twodim_base.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_type_check.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_type_check.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_ufunclike.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_ufunclike.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_utils.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ test_utils.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ data
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ py2-objarr.npy
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ py2-objarr.npz
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ py3-objarr.npy
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ py3-objarr.npz
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ python3.npy
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ win64python2.npy
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test__datasource.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test__iotools.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test__version.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_arraypad.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_arraysetops.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_arrayterator.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_financial_expired.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_format.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_function_base.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_histograms.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_index_tricks.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_io.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_mixins.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_nanfunctions.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_packbits.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_polynomial.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_recfunctions.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_regression.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_shape_base.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_stride_tricks.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_twodim_base.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_type_check.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_ufunclike.py
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ test_utils.py
โ”‚ย ย  โ”œโ”€โ”€ twodim_base.py
โ”‚ย ย  โ”œโ”€โ”€ twodim_base.pyi
โ”‚ย ย  โ”œโ”€โ”€ type_check.py
โ”‚ย ย  โ”œโ”€โ”€ type_check.pyi
โ”‚ย ย  โ”œโ”€โ”€ ufunclike.py
โ”‚ย ย  โ”œโ”€โ”€ ufunclike.pyi
โ”‚ย ย  โ”œโ”€โ”€ user_array.py
โ”‚ย ย  โ”œโ”€โ”€ utils.py
โ”‚ย ย  โ””โ”€โ”€ utils.pyi
โ”œโ”€โ”€ linalg
โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”œโ”€โ”€ __init__.pyi
โ”‚ย ย  โ”œโ”€โ”€ __pycache__
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ linalg.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ linalg.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ setup.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ setup.cpython-39.pyc
โ”‚ย ย  โ”œโ”€โ”€ _umath_linalg.cpython-39-aarch64-linux-gnu.so
โ”‚ย ย  โ”œโ”€โ”€ lapack_lite.cpython-39-aarch64-linux-gnu.so
โ”‚ย ย  โ”œโ”€โ”€ linalg.py
โ”‚ย ย  โ”œโ”€โ”€ linalg.pyi
โ”‚ย ย  โ”œโ”€โ”€ setup.py
โ”‚ย ย  โ””โ”€โ”€ tests
โ”‚ย ย      โ”œโ”€โ”€ __init__.py
โ”‚ย ย      โ”œโ”€โ”€ __pycache__
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_deprecations.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_deprecations.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_linalg.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_linalg.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_regression.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ””โ”€โ”€ test_regression.cpython-39.pyc
โ”‚ย ย      โ”œโ”€โ”€ test_deprecations.py
โ”‚ย ย      โ”œโ”€โ”€ test_linalg.py
โ”‚ย ย      โ””โ”€โ”€ test_regression.py
โ”œโ”€โ”€ ma
โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”œโ”€โ”€ __init__.pyi
โ”‚ย ย  โ”œโ”€โ”€ __pycache__
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ bench.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ bench.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ core.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ core.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ extras.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ extras.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ mrecords.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ mrecords.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ setup.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ setup.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ testutils.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ testutils.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ timer_comparison.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ timer_comparison.cpython-39.pyc
โ”‚ย ย  โ”œโ”€โ”€ bench.py
โ”‚ย ย  โ”œโ”€โ”€ core.py
โ”‚ย ย  โ”œโ”€โ”€ core.pyi
โ”‚ย ย  โ”œโ”€โ”€ extras.py
โ”‚ย ย  โ”œโ”€โ”€ extras.pyi
โ”‚ย ย  โ”œโ”€โ”€ mrecords.py
โ”‚ย ย  โ”œโ”€โ”€ mrecords.pyi
โ”‚ย ย  โ”œโ”€โ”€ setup.py
โ”‚ย ย  โ”œโ”€โ”€ tests
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __pycache__
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_core.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_core.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_deprecations.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_deprecations.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_extras.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_extras.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_mrecords.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_mrecords.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_old_ma.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_old_ma.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_regression.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_regression.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_subclassing.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ test_subclassing.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_core.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_deprecations.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_extras.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_mrecords.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_old_ma.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_regression.py
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ test_subclassing.py
โ”‚ย ย  โ”œโ”€โ”€ testutils.py
โ”‚ย ย  โ””โ”€โ”€ timer_comparison.py
โ”œโ”€โ”€ matlib.py
โ”œโ”€โ”€ matrixlib
โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”œโ”€โ”€ __init__.pyi
โ”‚ย ย  โ”œโ”€โ”€ __pycache__
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ defmatrix.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ defmatrix.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ setup.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ setup.cpython-39.pyc
โ”‚ย ย  โ”œโ”€โ”€ defmatrix.py
โ”‚ย ย  โ”œโ”€โ”€ defmatrix.pyi
โ”‚ย ย  โ”œโ”€โ”€ setup.py
โ”‚ย ย  โ””โ”€โ”€ tests
โ”‚ย ย      โ”œโ”€โ”€ __init__.py
โ”‚ย ย      โ”œโ”€โ”€ __pycache__
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_defmatrix.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_defmatrix.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_interaction.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_interaction.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_masked_matrix.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_masked_matrix.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_matrix_linalg.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_matrix_linalg.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_multiarray.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_multiarray.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_numeric.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_numeric.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_regression.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ””โ”€โ”€ test_regression.cpython-39.pyc
โ”‚ย ย      โ”œโ”€โ”€ test_defmatrix.py
โ”‚ย ย      โ”œโ”€โ”€ test_interaction.py
โ”‚ย ย      โ”œโ”€โ”€ test_masked_matrix.py
โ”‚ย ย      โ”œโ”€โ”€ test_matrix_linalg.py
โ”‚ย ย      โ”œโ”€โ”€ test_multiarray.py
โ”‚ย ย      โ”œโ”€โ”€ test_numeric.py
โ”‚ย ย      โ””โ”€โ”€ test_regression.py
โ”œโ”€โ”€ polynomial
โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”œโ”€โ”€ __init__.pyi
โ”‚ย ย  โ”œโ”€โ”€ __pycache__
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _polybase.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _polybase.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ chebyshev.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ chebyshev.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ hermite.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ hermite.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ hermite_e.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ hermite_e.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ laguerre.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ laguerre.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ legendre.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ legendre.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ polynomial.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ polynomial.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ polyutils.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ polyutils.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ setup.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ setup.cpython-39.pyc
โ”‚ย ย  โ”œโ”€โ”€ _polybase.py
โ”‚ย ย  โ”œโ”€โ”€ _polybase.pyi
โ”‚ย ย  โ”œโ”€โ”€ chebyshev.py
โ”‚ย ย  โ”œโ”€โ”€ chebyshev.pyi
โ”‚ย ย  โ”œโ”€โ”€ hermite.py
โ”‚ย ย  โ”œโ”€โ”€ hermite.pyi
โ”‚ย ย  โ”œโ”€โ”€ hermite_e.py
โ”‚ย ย  โ”œโ”€โ”€ hermite_e.pyi
โ”‚ย ย  โ”œโ”€โ”€ laguerre.py
โ”‚ย ย  โ”œโ”€โ”€ laguerre.pyi
โ”‚ย ย  โ”œโ”€โ”€ legendre.py
โ”‚ย ย  โ”œโ”€โ”€ legendre.pyi
โ”‚ย ย  โ”œโ”€โ”€ polynomial.py
โ”‚ย ย  โ”œโ”€โ”€ polynomial.pyi
โ”‚ย ย  โ”œโ”€โ”€ polyutils.py
โ”‚ย ย  โ”œโ”€โ”€ polyutils.pyi
โ”‚ย ย  โ”œโ”€โ”€ setup.py
โ”‚ย ย  โ””โ”€โ”€ tests
โ”‚ย ย      โ”œโ”€โ”€ __init__.py
โ”‚ย ย      โ”œโ”€โ”€ __pycache__
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_chebyshev.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_chebyshev.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_classes.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_classes.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_hermite.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_hermite.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_hermite_e.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_hermite_e.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_laguerre.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_laguerre.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_legendre.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_legendre.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_polynomial.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_polynomial.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_polyutils.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_polyutils.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_printing.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ””โ”€โ”€ test_printing.cpython-39.pyc
โ”‚ย ย      โ”œโ”€โ”€ test_chebyshev.py
โ”‚ย ย      โ”œโ”€โ”€ test_classes.py
โ”‚ย ย      โ”œโ”€โ”€ test_hermite.py
โ”‚ย ย      โ”œโ”€โ”€ test_hermite_e.py
โ”‚ย ย      โ”œโ”€โ”€ test_laguerre.py
โ”‚ย ย      โ”œโ”€โ”€ test_legendre.py
โ”‚ย ย      โ”œโ”€โ”€ test_polynomial.py
โ”‚ย ย      โ”œโ”€โ”€ test_polyutils.py
โ”‚ย ย      โ””โ”€โ”€ test_printing.py
โ”œโ”€โ”€ py.typed
โ”œโ”€โ”€ random
โ”‚ย ย  โ”œโ”€โ”€ __init__.pxd
โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”œโ”€โ”€ __init__.pyi
โ”‚ย ย  โ”œโ”€โ”€ __pycache__
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _pickle.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _pickle.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ setup.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ setup.cpython-39.pyc
โ”‚ย ย  โ”œโ”€โ”€ _bounded_integers.cpython-39-aarch64-linux-gnu.so
โ”‚ย ย  โ”œโ”€โ”€ _bounded_integers.pxd
โ”‚ย ย  โ”œโ”€โ”€ _common.cpython-39-aarch64-linux-gnu.so
โ”‚ย ย  โ”œโ”€โ”€ _common.pxd
โ”‚ย ย  โ”œโ”€โ”€ _examples
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cffi
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __pycache__
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ extending.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ extending.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ parse.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ parse.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ extending.py
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ parse.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ cython
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __pycache__
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ setup.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ setup.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ extending.pyx
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ extending_distributions.pyx
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ setup.py
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ numba
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ __pycache__
โ”‚ย ย  โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ extending.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ extending.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ extending_distributions.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย      โ”‚ย ย  โ””โ”€โ”€ extending_distributions.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ extending.py
โ”‚ย ย  โ”‚ย ย      โ””โ”€โ”€ extending_distributions.py
โ”‚ย ย  โ”œโ”€โ”€ _generator.cpython-39-aarch64-linux-gnu.so
โ”‚ย ย  โ”œโ”€โ”€ _generator.pyi
โ”‚ย ย  โ”œโ”€โ”€ _mt19937.cpython-39-aarch64-linux-gnu.so
โ”‚ย ย  โ”œโ”€โ”€ _mt19937.pyi
โ”‚ย ย  โ”œโ”€โ”€ _pcg64.cpython-39-aarch64-linux-gnu.so
โ”‚ย ย  โ”œโ”€โ”€ _pcg64.pyi
โ”‚ย ย  โ”œโ”€โ”€ _philox.cpython-39-aarch64-linux-gnu.so
โ”‚ย ย  โ”œโ”€โ”€ _philox.pyi
โ”‚ย ย  โ”œโ”€โ”€ _pickle.py
โ”‚ย ย  โ”œโ”€โ”€ _sfc64.cpython-39-aarch64-linux-gnu.so
โ”‚ย ย  โ”œโ”€โ”€ _sfc64.pyi
โ”‚ย ย  โ”œโ”€โ”€ bit_generator.cpython-39-aarch64-linux-gnu.so
โ”‚ย ย  โ”œโ”€โ”€ bit_generator.pxd
โ”‚ย ย  โ”œโ”€โ”€ bit_generator.pyi
โ”‚ย ย  โ”œโ”€โ”€ c_distributions.pxd
โ”‚ย ย  โ”œโ”€โ”€ lib
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ libnpyrandom.a
โ”‚ย ย  โ”œโ”€โ”€ mtrand.cpython-39-aarch64-linux-gnu.so
โ”‚ย ย  โ”œโ”€โ”€ mtrand.pyi
โ”‚ย ย  โ”œโ”€โ”€ setup.py
โ”‚ย ย  โ””โ”€โ”€ tests
โ”‚ย ย      โ”œโ”€โ”€ __init__.py
โ”‚ย ย      โ”œโ”€โ”€ __pycache__
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_direct.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_direct.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_extending.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_extending.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_generator_mt19937.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_generator_mt19937.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_generator_mt19937_regressions.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_generator_mt19937_regressions.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_random.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_random.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_randomstate.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_randomstate.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_randomstate_regression.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_randomstate_regression.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_regression.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_regression.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_seed_sequence.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_seed_sequence.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_smoke.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ””โ”€โ”€ test_smoke.cpython-39.pyc
โ”‚ย ย      โ”œโ”€โ”€ data
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ __pycache__
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ __init__.py
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ mt19937-testset-1.csv
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ mt19937-testset-2.csv
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ pcg64-testset-1.csv
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ pcg64-testset-2.csv
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ pcg64dxsm-testset-1.csv
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ pcg64dxsm-testset-2.csv
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ philox-testset-1.csv
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ philox-testset-2.csv
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ sfc64-testset-1.csv
โ”‚ย ย      โ”‚ย ย  โ””โ”€โ”€ sfc64-testset-2.csv
โ”‚ย ย      โ”œโ”€โ”€ test_direct.py
โ”‚ย ย      โ”œโ”€โ”€ test_extending.py
โ”‚ย ย      โ”œโ”€โ”€ test_generator_mt19937.py
โ”‚ย ย      โ”œโ”€โ”€ test_generator_mt19937_regressions.py
โ”‚ย ย      โ”œโ”€โ”€ test_random.py
โ”‚ย ย      โ”œโ”€โ”€ test_randomstate.py
โ”‚ย ย      โ”œโ”€โ”€ test_randomstate_regression.py
โ”‚ย ย      โ”œโ”€โ”€ test_regression.py
โ”‚ย ย      โ”œโ”€โ”€ test_seed_sequence.py
โ”‚ย ย      โ””โ”€โ”€ test_smoke.py
โ”œโ”€โ”€ setup.py
โ”œโ”€โ”€ testing
โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”œโ”€โ”€ __init__.pyi
โ”‚ย ย  โ”œโ”€โ”€ __pycache__
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ print_coercion_tables.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ print_coercion_tables.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ setup.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ setup.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ utils.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ utils.cpython-39.pyc
โ”‚ย ย  โ”œโ”€โ”€ _private
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __pycache__
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ decorators.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ decorators.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ extbuild.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ extbuild.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ noseclasses.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ noseclasses.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ nosetester.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ nosetester.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ parameterized.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ parameterized.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ utils.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ utils.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ decorators.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ extbuild.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ noseclasses.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ nosetester.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ parameterized.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ utils.py
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ utils.pyi
โ”‚ย ย  โ”œโ”€โ”€ print_coercion_tables.py
โ”‚ย ย  โ”œโ”€โ”€ setup.py
โ”‚ย ย  โ”œโ”€โ”€ tests
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __pycache__
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_doctesting.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_doctesting.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_utils.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ test_utils.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_doctesting.py
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ test_utils.py
โ”‚ย ย  โ””โ”€โ”€ utils.py
โ”œโ”€โ”€ tests
โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”œโ”€โ”€ __pycache__
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test__all__.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test__all__.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_ctypeslib.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_ctypeslib.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_matlib.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_matlib.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_numpy_version.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_numpy_version.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_public_api.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_public_api.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_reloading.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_reloading.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_scripts.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_scripts.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test_warnings.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ test_warnings.cpython-39.pyc
โ”‚ย ย  โ”œโ”€โ”€ test__all__.py
โ”‚ย ย  โ”œโ”€โ”€ test_ctypeslib.py
โ”‚ย ย  โ”œโ”€โ”€ test_matlib.py
โ”‚ย ย  โ”œโ”€โ”€ test_numpy_version.py
โ”‚ย ย  โ”œโ”€โ”€ test_public_api.py
โ”‚ย ย  โ”œโ”€โ”€ test_reloading.py
โ”‚ย ย  โ”œโ”€โ”€ test_scripts.py
โ”‚ย ย  โ””โ”€โ”€ test_warnings.py
โ”œโ”€โ”€ typing
โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”œโ”€โ”€ __pycache__
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _add_docstring.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _add_docstring.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _array_like.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _array_like.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _char_codes.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _char_codes.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _dtype_like.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _dtype_like.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _extended_precision.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _extended_precision.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _generic_alias.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _generic_alias.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _nbit.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _nbit.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _nested_sequence.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _nested_sequence.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _scalars.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _scalars.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _shape.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ _shape.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ mypy_plugin.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ mypy_plugin.cpython-39.pyc
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ setup.cpython-39.opt-1.pyc
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ setup.cpython-39.pyc
โ”‚ย ย  โ”œโ”€โ”€ _add_docstring.py
โ”‚ย ย  โ”œโ”€โ”€ _array_like.py
โ”‚ย ย  โ”œโ”€โ”€ _callable.pyi
โ”‚ย ย  โ”œโ”€โ”€ _char_codes.py
โ”‚ย ย  โ”œโ”€โ”€ _dtype_like.py
โ”‚ย ย  โ”œโ”€โ”€ _extended_precision.py
โ”‚ย ย  โ”œโ”€โ”€ _generic_alias.py
โ”‚ย ย  โ”œโ”€โ”€ _nbit.py
โ”‚ย ย  โ”œโ”€โ”€ _nested_sequence.py
โ”‚ย ย  โ”œโ”€โ”€ _scalars.py
โ”‚ย ย  โ”œโ”€โ”€ _shape.py
โ”‚ย ย  โ”œโ”€โ”€ _ufunc.pyi
โ”‚ย ย  โ”œโ”€โ”€ mypy_plugin.py
โ”‚ย ย  โ”œโ”€โ”€ setup.py
โ”‚ย ย  โ””โ”€โ”€ tests
โ”‚ย ย      โ”œโ”€โ”€ __init__.py
โ”‚ย ย      โ”œโ”€โ”€ __pycache__
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ __init__.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_generic_alias.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_generic_alias.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_isfile.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_isfile.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_runtime.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_runtime.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ test_typing.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ””โ”€โ”€ test_typing.cpython-39.pyc
โ”‚ย ย      โ”œโ”€โ”€ data
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ fail
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ arithmetic.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ array_constructors.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ array_like.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ array_pad.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ arrayprint.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ arrayterator.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ bitwise_ops.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ char.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ chararray.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ comparisons.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ constants.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ datasource.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ dtype.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ einsumfunc.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ false_positives.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ flatiter.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ fromnumeric.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ histograms.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ index_tricks.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ lib_function_base.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ lib_polynomial.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ lib_utils.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ lib_version.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ linalg.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ memmap.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ modules.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ multiarray.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ndarray.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ndarray_misc.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ nditer.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ nested_sequence.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ npyio.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ numerictypes.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ random.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ rec.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ scalars.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ shape_base.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ stride_tricks.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ testing.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ twodim_base.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ type_check.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ufunc_config.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ufunclike.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ufuncs.pyi
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ warnings_and_errors.pyi
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ misc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ extended_precision.pyi
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ mypy.ini
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ pass
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __pycache__
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ arithmetic.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ arithmetic.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ array_constructors.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ array_constructors.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ array_like.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ array_like.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ arrayprint.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ arrayprint.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ arrayterator.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ arrayterator.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ bitwise_ops.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ bitwise_ops.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ comparisons.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ comparisons.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ dtype.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ dtype.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ einsumfunc.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ einsumfunc.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ flatiter.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ flatiter.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ fromnumeric.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ fromnumeric.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ index_tricks.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ index_tricks.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ lib_utils.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ lib_utils.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ lib_version.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ lib_version.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ literal.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ literal.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ mod.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ mod.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ modules.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ modules.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ multiarray.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ multiarray.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ndarray_conversion.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ndarray_conversion.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ndarray_misc.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ndarray_misc.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ndarray_shape_manipulation.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ndarray_shape_manipulation.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ numeric.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ numeric.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ numerictypes.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ numerictypes.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ random.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ random.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ scalars.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ scalars.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ simple.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ simple.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ simple_py3.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ simple_py3.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ufunc_config.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ufunc_config.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ufunclike.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ufunclike.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ufuncs.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ufuncs.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ warnings_and_errors.cpython-39.opt-1.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ warnings_and_errors.cpython-39.pyc
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ arithmetic.py
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ array_constructors.py
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ array_like.py
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ arrayprint.py
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ arrayterator.py
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ bitwise_ops.py
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ comparisons.py
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ dtype.py
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ einsumfunc.py
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ flatiter.py
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ fromnumeric.py
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ index_tricks.py
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ lib_utils.py
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ lib_version.py
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ literal.py
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ mod.py
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ modules.py
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ multiarray.py
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ndarray_conversion.py
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ndarray_misc.py
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ndarray_shape_manipulation.py
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ numeric.py
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ numerictypes.py
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ random.py
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ scalars.py
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ simple.py
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ simple_py3.py
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ufunc_config.py
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ufunclike.py
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ufuncs.py
โ”‚ย ย      โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ warnings_and_errors.py
โ”‚ย ย      โ”‚ย ย  โ””โ”€โ”€ reveal
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ arithmetic.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ array_constructors.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ arraypad.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ arrayprint.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ arraysetops.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ arrayterator.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ bitwise_ops.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ char.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ chararray.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ comparisons.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ constants.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ ctypeslib.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ datasource.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ dtype.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ einsumfunc.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ false_positives.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ fft.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ flatiter.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ fromnumeric.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ getlimits.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ histograms.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ index_tricks.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ lib_function_base.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ lib_polynomial.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ lib_utils.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ lib_version.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ linalg.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ matrix.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ memmap.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ mod.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ modules.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ multiarray.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ nbit_base_example.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ ndarray_conversion.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ ndarray_misc.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ ndarray_shape_manipulation.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ nditer.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ nested_sequence.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ npyio.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ numeric.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ numerictypes.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ random.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ rec.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ scalars.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ shape_base.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ stride_tricks.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ testing.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ twodim_base.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ type_check.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ ufunc_config.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ ufunclike.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ ufuncs.pyi
โ”‚ย ย      โ”‚ย ย      โ”œโ”€โ”€ version.pyi
โ”‚ย ย      โ”‚ย ย      โ””โ”€โ”€ warnings_and_errors.pyi
โ”‚ย ย      โ”œโ”€โ”€ test_generic_alias.py
โ”‚ย ย      โ”œโ”€โ”€ test_isfile.py
โ”‚ย ย      โ”œโ”€โ”€ test_runtime.py
โ”‚ย ย      โ””โ”€โ”€ test_typing.py
โ””โ”€โ”€ version.py

111 directories, 1777 files

I'd add that pytensor has a declared dependency on numpy.

Figure out what to do with markers on top-level dependencies

Currently, if pyproject.toml has an entry like foo==1.3; sys_platform='darwin', pycross basically ignores the marker.

Maybe that's the right approach. But another option would be to use it in a compatible_with definition, or in some kind of all_dependencies group.

Patch wheel support?

I want to patch a prebuilt wheel. Can we have something like whl_patches in rules_python?

Better error messages

Thanks so much for this repository! we were able to do cross-compiled docker builds using this :)

a couple of Developer Experience issues we identified:

  • improve messaging for The files field must not be empty. This is caused by metadata.files being empty in package.lock which can happen for poetry <= 1.1.3 python-poetry/poetry#6045. At least outputting the package name in the assert would help understand what to look for.

  • KeyError: None

    bzl_lock_generator.runfiles/jvolkman_rules_pycross/pycross/private/tools/bzl_lock_generator.py", line 261, in 
    get_package_sources_by_environment
        environment_sources[environment.name] = candidates_to_package_sources[
    KeyError: None
    

    this can be caused if there is no wheel or even target available for a os + arch mix. This happens for tensorflow@~2 on Mac M1

For both these I have local changes that make the error clearer. Let me know if you are open to a PR.

Should `exec_interpreter` have `cfg = "exec"`?

At

"exec_interpreter": attr.label(
doc = "The execution Python interpreter (PyRuntimeInfo).",
mandatory = True,
providers = [PyRuntimeInfo],
),

The exec_interpreter of pycross_hermetic_toolchain is declared without any cfg. But since it's the exec interpreter, should it have cfg = "exec" so that Bazel can automatically transition it to use the exec configurations? Otherwise, configurable alias pass to this can result in incorrect targets right? Or am I missing something?

First-party wheel support?

I opened a PR bazelbuild/rules_python#1776 that helps for building / publishing wheels that contain first party code (1p; for example, monorepo contains source py libraries, want to publish them to artifactory for non-monorepo consumers) using their py_wheel and py_project rules.

Should I be using rules_pycross for this? So far rules_pycross has been great for getting 3p deps from pypi, but I'm wondering if rules_pycross is a good fit for the use case above.

This project is incompatible with the pdm 2.8 lock format

Before loading the pdm.lock file it would be great to first check that the lock version is compatible with what rules_pycross supports. pdm 2.8 which was released last week drastically changes the format and the rules_pycross is now failing with slightly difficult to understand errors.

host python leaks into wheel build venv

Apparently there is a __PYVENV_LAUNCHER__ env var that distutils prefers over argv[0] for choosing the python executable to use when creating a venv... (https://bugs.python.org/issue22490)

Since bazel uses the host python in its bootstrap stub script to launch the actual toolchain, the host python path secretly leaks through this env var, and is used for the isolated build venv instead of the toolchain version.

I think wheel_builder.py needs to unset it before invoking venv in order for the correct interpreter to be used.


> # Building a wheel from examples/poetry
> bazel build @example_lock_repo//deps:setproctitle
ModuleNotFoundError: No module named 'setuptools'

> # Examining the temporary wheelbuild venv, notice its symlinked to host python, not hermetic interpreter
> ls -al /var/folders/ml/kq18l87s1p10lv4dk7p6sb140000gn/T/wheelbuild4p0may9y/env/bin/
python3@ -> /Applications/Xcode.app/Contents/Developer/usr/bin/python3

I think I encountered this module lookup failure because my host python version is different than the hermetic version, so it looks in the wrong site-packages directory for the build deps.

Rye backend support

Hello rules_pycross maintainers,

Is it within this library's scope to support Rye as a backend?

Bazel locking fails on pdm 2.11.0 generated lock

I am getting the following error when attempting to generate a Bazel lock file from a pdm.lock that was generated using pdm version 2.11.0 (or even higher) where lock_version = "4.4.1"

 File "/home/msaid/.cache/bazel/_bazel_msaid/7d8a2962841d975abf88710bbc9479a4/sandbox/linux-sandbox/1/execroot/cwbng/bazel-out/k8-opt-exec-2B5CBBC6/bin/external/jvolkman_rules_pycross/pycross/private/tools/pdm_translator.runfiles/jvolkman_rules_pycross/pycross/private/tools/pdm_translator.py", line 279, in <module>
    app.run(main, flags_parser=parse_flags)
  File "/home/msaid/.cache/bazel/_bazel_msaid/7d8a2962841d975abf88710bbc9479a4/sandbox/linux-sandbox/1/execroot/cwbng/bazel-out/k8-opt-exec-2B5CBBC6/bin/external/jvolkman_rules_pycross/pycross/private/tools/pdm_translator.runfiles/rules_pycross_pypi_deps_absl_py/site-packages/absl/app.py", line 308, in run
    _run_main(main, args)
  File "/home/msaid/.cache/bazel/_bazel_msaid/7d8a2962841d975abf88710bbc9479a4/sandbox/linux-sandbox/1/execroot/cwbng/bazel-out/k8-opt-exec-2B5CBBC6/bin/external/jvolkman_rules_pycross/pycross/private/tools/pdm_translator.runfiles/rules_pycross_pypi_deps_absl_py/site-packages/absl/app.py", line 254, in _run_main
    sys.exit(main(argv))
  File "/home/msaid/.cache/bazel/_bazel_msaid/7d8a2962841d975abf88710bbc9479a4/sandbox/linux-sandbox/1/execroot/cwbng/bazel-out/k8-opt-exec-2B5CBBC6/bin/external/jvolkman_rules_pycross/pycross/private/tools/pdm_translator.runfiles/jvolkman_rules_pycross/pycross/private/tools/pdm_translator.py", line 211, in main
    lock_set = translate(
  File "/home/msaid/.cache/bazel/_bazel_msaid/7d8a2962841d975abf88710bbc9479a4/sandbox/linux-sandbox/1/execroot/cwbng/bazel-out/k8-opt-exec-2B5CBBC6/bin/external/jvolkman_rules_pycross/pycross/private/tools/pdm_translator.runfiles/jvolkman_rules_pycross/pycross/private/tools/pdm_translator.py", line 190, in translate
    project = PDMProject(
  File "/home/msaid/.cache/bazel/_bazel_msaid/7d8a2962841d975abf88710bbc9479a4/sandbox/linux-sandbox/1/execroot/cwbng/bazel-out/k8-opt-exec-2B5CBBC6/bin/external/jvolkman_rules_pycross/pycross/private/tools/pdm_translator.runfiles/jvolkman_rules_pycross/pycross/private/tools/pdm_translator.py", line 43, in __init__
    raise LockfileIncompatibleException(
__main__.LockfileIncompatibleException: Lock file is not compatible with PDM version used by pycross.
Target //application/python/third_party:update_lock_file failed to build

Seems like this newer version of pdm (2.11.0) introduced an update where the lock_version field is changed from 4.4 to 4.4.1 and apparently this is not supported in here.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.