-
Notifications
You must be signed in to change notification settings - Fork 17
Open
Labels
Description
Related to #457, as @ntjohnson1 pointed out, the order of numpy arrays coming into pyttb needs to be checked. PR #463 fixed many of these, but another entry point is in the from_function classmethods for some of the tensors:
>>> K = ttb.ktensor.from_function(np.random.random_sample, (2, 3, 4), 2)
WARNING:root:Selected no copy, but input factor matrices aren't F ordered so must copy.
>>> K = ttb.tensor.from_function(np.random.random_sample, (2, 3, 4))
WARNING:root:Selected no copy, but input data isn't F ordered so must copy.We need to verify all entry points, but I am not sure how to check/enforce this automatically to help with future-proofing.
I tried to track down all of these warnings and flag them as errors via a call to pytest to see if we can capture them during CI. Although I can show them, I am unsure why they are not flagged as errors. For example:
$ pytest -W error --log-cli-level=WARNING --log-cli-format="%(levelname)s %(name)s:%(lineno)s %(message)s" -W error
============================================= test session starts ==============================================
platform darwin -- Python 3.13.9, pytest-9.0.2, pluggy-1.6.0
rootdir: <rootdir>
configfile: pyproject.toml
plugins: cov-7.0.0
collected 208 items
pyttb/cp_als.py::pyttb.cp_als.cp_als PASSED [ 0%]
pyttb/create_problem.py::pyttb.create_problem.create_problem PASSED [ 0%]
pyttb/hosvd.py::pyttb.hosvd.hosvd PASSED [ 1%]
pyttb/khatrirao.py::pyttb.khatrirao.khatrirao PASSED [ 1%]
pyttb/ktensor.py::pyttb.ktensor.ktensor PASSED [ 2%]
pyttb/ktensor.py::pyttb.ktensor.ktensor.arrange PASSED [ 2%]
pyttb/ktensor.py::pyttb.ktensor.ktensor.copy
------------------------------------------------ live log call -------------------------------------------------
WARNING root:210 Selected no copy, but input factor matrices aren't F ordered so must copy.
PASSED [ 3%]
...
pyttb/ktensor.py::pyttb.ktensor.ktensor.from_function
------------------------------------------------ live log call -------------------------------------------------
WARNING root:210 Selected no copy, but input factor matrices aren't F ordered so must copy.
WARNING root:210 Selected no copy, but input factor matrices aren't F ordered so must copy.
WARNING root:210 Selected no copy, but input factor matrices aren't F ordered so must copy.
PASSED [ 5%]
...
pyttb/ktensor.py::pyttb.ktensor.ktensor.innerprod
------------------------------------------------ live log call -------------------------------------------------
WARNING root:210 Selected no copy, but input factor matrices aren't F ordered so must copy.
PASSED [ 6%]
...
pyttb/ktensor.py::pyttb.ktensor.ktensor.isequal
------------------------------------------------ live log call -------------------------------------------------
WARNING root:210 Selected no copy, but input factor matrices aren't F ordered so must copy.
PASSED [ 7%]
pyttb/ktensor.py::pyttb.ktensor.ktensor.issymmetric
------------------------------------------------ live log call -------------------------------------------------
WARNING root:210 Selected no copy, but input factor matrices aren't F ordered so must copy.
PASSED [ 7%]
pyttb/ktensor.py::pyttb.ktensor.ktensor.mask PASSED [ 8%]
pyttb/ktensor.py::pyttb.ktensor.ktensor.mttkrp
------------------------------------------------ live log call -------------------------------------------------
WARNING root:210 Selected no copy, but input factor matrices aren't F ordered so must copy.
PASSED [ 8%]
pyttb/ktensor.py::pyttb.ktensor.ktensor.ncomponents
------------------------------------------------ live log call -------------------------------------------------
WARNING root:210 Selected no copy, but input factor matrices aren't F ordered so must copy.
PASSED [ 9%]
pyttb/ktensor.py::pyttb.ktensor.ktensor.ndims
------------------------------------------------ live log call -------------------------------------------------
WARNING root:210 Selected no copy, but input factor matrices aren't F ordered so must copy.
PASSED [ 9%]
pyttb/ktensor.py::pyttb.ktensor.ktensor.norm
------------------------------------------------ live log call -------------------------------------------------
WARNING root:210 Selected no copy, but input factor matrices aren't F ordered so must copy.
PASSED [ 10%]
pyttb/ktensor.py::pyttb.ktensor.ktensor.normalize
------------------------------------------------ live log call -------------------------------------------------
WARNING root:210 Selected no copy, but input factor matrices aren't F ordered so must copy.
PASSED [ 10%]
pyttb/ktensor.py::pyttb.ktensor.ktensor.nvecs
------------------------------------------------ live log call -------------------------------------------------
WARNING root:210 Selected no copy, but input factor matrices aren't F ordered so must copy.
PASSED [ 11%]
...
pyttb/ktensor.py::pyttb.ktensor.ktensor.update
------------------------------------------------ live log call -------------------------------------------------
WARNING root:210 Selected no copy, but input factor matrices aren't F ordered so must copy.
PASSED [ 15%]
pyttb/ktensor.py::pyttb.ktensor.ktensor.viz
------------------------------------------------ live log call -------------------------------------------------
WARNING root:210 Selected no copy, but input factor matrices aren't F ordered so must copy.
PASSED [ 15%]
...
pyttb/tensor.py::pyttb.tensor.tensor.from_function
------------------------------------------------ live log call -------------------------------------------------
WARNING root:192 Selected no copy, but input data isn't F ordered so must copy.
PASSED [ 85%]
...
============================================= 208 passed in 0.42s ==============================================