einsteinpy.symbolic.tensor.tensor_product is not available in Google Colab (einsteinpy version 0.3.1)
See original GitHub issue🐞 Problem
I am trying to use the tensor_product function from the API doc here: https://docs.einsteinpy.org/en/stable/api/symbolic/tensor.html
I am using Google Colab, where I have installed einsteinpy==0.3.1
upon calling from einsteinpy.symbolic.tensor import tensor_product
, I get the error:
ImportError: cannot import name 'tensor_product'
The name tensorproduct
does exist, but does not have the functionality I need.
A link to my colab notebook is here: https://colab.research.google.com/drive/1fctmN_MGExFy24fqB7q2IIVl9IRnCRdP?usp=sharing
🖥 Please paste the output of following commands
pip freeze
Paste your output here:
absl-py==0.10.0 alabaster==0.7.12 albumentations==0.1.12 altair==4.1.0 appdirs==1.4.4 argon2-cffi==20.1.0 asgiref==3.3.1 astor==0.8.1 astropy==4.1 astunparse==1.6.3 async-generator==1.10 atari-py==0.2.6 atomicwrites==1.4.0 attrs==20.3.0 audioread==2.1.9 autograd==1.3 Babel==2.9.0 backcall==0.2.0 beautifulsoup4==4.6.3 bleach==3.3.0 blis==0.4.1 bokeh==2.1.1 Bottleneck==1.3.2 branca==0.4.2 bs4==0.0.1 CacheControl==0.12.6 cachetools==4.2.1 catalogue==1.0.0 certifi==2020.12.5 cffi==1.14.4 chainer==7.4.0 chardet==3.0.4 click==7.1.2 cloudpickle==1.3.0 cmake==3.12.0 cmdstanpy==0.9.5 colorlover==0.3.0 community==1.0.0b1 contextlib2==0.5.5 convertdate==2.3.0 coverage==3.7.1 coveralls==0.5 crcmod==1.7 cufflinks==0.17.3 cvxopt==1.2.5 cvxpy==1.0.31 cycler==0.10.0 cymem==2.0.5 Cython==0.29.21 daft==0.0.4 dask==2.12.0 dataclasses==0.8 datascience==0.10.6 debugpy==1.0.0 decorator==4.4.2 defusedxml==0.6.0 descartes==1.1.0 dill==0.3.3 distributed==1.25.3 Django==3.1.6 dlib==19.18.0 dm-tree==0.1.5 docopt==0.6.2 docutils==0.16 dopamine-rl==1.0.5 earthengine-api==0.1.238 easydict==1.9 ecos==2.0.7.post1 editdistance==0.5.3 einsteinpy==0.3.1 en-core-web-sm==2.2.5 entrypoints==0.3 ephem==3.7.7.1 et-xmlfile==1.0.1 fa2==0.3.5 fancyimpute==0.4.3 fastai==1.0.61 fastdtw==0.3.4 fastprogress==1.0.0 fastrlock==0.5 fbprophet==0.7.1 feather-format==0.4.1 filelock==3.0.12 firebase-admin==4.4.0 fix-yahoo-finance==0.0.22 Flask==1.1.2 flatbuffers==1.12 folium==0.8.3 future==0.16.0 gast==0.3.3 GDAL==2.2.2 gdown==3.6.4 gensim==3.6.0 geographiclib==1.50 geopy==1.17.0 gin-config==0.4.0 glob2==0.7 google==2.0.3 google-api-core==1.16.0 google-api-python-client==1.7.12 google-auth==1.25.0 google-auth-httplib2==0.0.4 google-auth-oauthlib==0.4.2 google-cloud-bigquery==1.21.0 google-cloud-bigquery-storage==1.1.0 google-cloud-core==1.0.3 google-cloud-datastore==1.8.0 google-cloud-firestore==1.7.0 google-cloud-language==1.2.0 google-cloud-storage==1.18.1 google-cloud-translate==1.5.0 google-colab==1.0.0 google-pasta==0.2.0 google-resumable-media==0.4.1 googleapis-common-protos==1.52.0 googledrivedownloader==0.4 graphviz==0.10.1 grpcio==1.32.0 gspread==3.0.1 gspread-dataframe==3.0.8 gym==0.17.3 h5py==2.10.0 HeapDict==1.0.1 hijri-converter==2.1.1 holidays==0.10.5.2 holoviews==1.13.5 html5lib==1.0.1 httpimport==0.5.18 httplib2==0.17.4 httplib2shim==0.0.3 humanize==0.5.1 hyperopt==0.1.2 ideep4py==2.0.0.post3 idna==2.10 image==1.5.33 imageio==2.4.1 imagesize==1.2.0 imbalanced-learn==0.4.3 imblearn==0.0 imgaug==0.2.9 importlib-metadata==3.4.0 importlib-resources==5.1.0 imutils==0.5.4 inflect==2.1.0 iniconfig==1.1.1 intel-openmp==2021.1.2 intervaltree==2.1.0 ipykernel==4.10.1 ipython==5.5.0 ipython-genutils==0.2.0 ipython-sql==0.3.9 ipywidgets==7.6.3 itsdangerous==1.1.0 jax==0.2.9 jaxlib==0.1.60+cuda101 jdcal==1.4.1 jedi==0.18.0 jieba==0.42.1 Jinja2==2.11.3 joblib==1.0.0 jpeg4py==0.1.4 jsonschema==2.6.0 jupyter==1.0.0 jupyter-client==5.3.5 jupyter-console==5.2.0 jupyter-core==4.7.1 jupyterlab-pygments==0.1.2 jupyterlab-widgets==1.0.0 kaggle==1.5.10 kapre==0.1.3.1 Keras==2.4.3 Keras-Preprocessing==1.1.2 keras-vis==0.4.1 kiwisolver==1.3.1 knnimpute==0.1.0 korean-lunar-calendar==0.2.1 librosa==0.8.0 lightgbm==2.2.3 llvmlite==0.34.0 lmdb==0.99 lucid==0.3.8 LunarCalendar==0.0.9 lxml==4.2.6 Markdown==3.3.3 MarkupSafe==1.1.1 matplotlib==3.2.2 matplotlib-venn==0.11.6 missingno==0.4.2 mistune==0.8.4 mizani==0.6.0 mkl==2019.0 mlxtend==0.14.0 more-itertools==8.6.0 moviepy==0.2.3.5 mpmath==1.1.0 msgpack==1.0.2 multiprocess==0.70.11.1 multitasking==0.0.9 murmurhash==1.0.5 music21==5.5.0 natsort==5.5.0 nbclient==0.5.1 nbconvert==5.6.1 nbformat==5.1.2 nest-asyncio==1.5.1 networkx==2.5 nibabel==3.0.2 nltk==3.2.5 notebook==5.3.1 np-utils==0.5.12.1 numba==0.51.2 numexpr==2.7.2 numpy==1.19.5 nvidia-ml-py3==7.352.0 oauth2client==4.1.3 oauthlib==3.1.0 okgrade==0.4.3 opencv-contrib-python==4.1.2.30 opencv-python==4.1.2.30 openpyxl==2.5.9 opt-einsum==3.3.0 osqp==0.6.2.post0 packaging==20.9 palettable==3.3.0 pandas==1.1.5 pandas-datareader==0.9.0 pandas-gbq==0.13.3 pandas-profiling==1.4.1 pandocfilters==1.4.3 panel==0.9.7 param==1.10.1 parso==0.8.1 pathlib==1.0.1 patsy==0.5.1 pexpect==4.8.0 pickleshare==0.7.5 Pillow==7.0.0 pip-tools==4.5.1 plac==1.1.3 plotly==4.4.1 plotnine==0.6.0 pluggy==0.7.1 pooch==1.3.0 portpicker==1.3.1 prefetch-generator==1.0.1 preshed==3.0.5 prettytable==2.0.0 progressbar2==3.38.0 prometheus-client==0.9.0 promise==2.3 prompt-toolkit==1.0.18 protobuf==3.12.4 psutil==5.4.8 psycopg2==2.7.6.1 ptyprocess==0.7.0 py==1.10.0 pyarrow==0.14.1 pyasn1==0.4.8 pyasn1-modules==0.2.8 pycocotools==2.0.2 pycparser==2.20 pyct==0.4.8 pydata-google-auth==1.1.0 pydot==1.3.0 pydot-ng==2.0.0 pydotplus==2.0.2 PyDrive==1.3.1 pyemd==0.5.1 pyglet==1.5.0 Pygments==2.6.1 pygobject==3.26.1 pymc3==3.7 PyMeeus==0.3.7 pymongo==3.11.3 pymystem3==0.2.0 pynndescent==0.5.1 PyOpenGL==3.1.5 pyparsing==2.4.7 pyrsistent==0.17.3 pysndfile==1.3.8 PySocks==1.7.1 pystan==2.19.1.1 pytest==3.6.4 python-apt==1.6.5+ubuntu0.5 python-chess==0.23.11 python-dateutil==2.8.1 python-louvain==0.15 python-slugify==4.0.1 python-utils==2.5.6 pytz==2018.9 pyviz-comms==2.0.1 PyWavelets==1.1.1 PyYAML==3.13 pyzmq==22.0.2 qdldl==0.1.5.post0 qtconsole==5.0.2 QtPy==1.9.0 regex==2019.12.20 requests==2.23.0 requests-oauthlib==1.3.0 resampy==0.2.2 retrying==1.3.3 rpy2==3.2.7 rsa==4.7 scikit-image==0.16.2 scikit-learn==0.22.2.post1 scipy==1.4.1 screen-resolution-extra==0.0.0 scs==2.1.2 seaborn==0.11.1 Send2Trash==1.5.0 setuptools-git==1.2 Shapely==1.7.1 simplegeneric==0.8.1 six==1.15.0 sklearn==0.0 sklearn-pandas==1.8.0 smart-open==4.1.2 snowballstemmer==2.1.0 sortedcontainers==2.3.0 SoundFile==0.10.3.post1 spacy==2.2.4 Sphinx==1.8.5 sphinxcontrib-serializinghtml==1.1.4 sphinxcontrib-websupport==1.2.4 SQLAlchemy==1.3.23 sqlparse==0.4.1 srsly==1.0.5 statsmodels==0.10.2 sympy==1.1.1 tables==3.4.4 tabulate==0.8.7 tblib==1.7.0 tensorboard==2.4.1 tensorboard-plugin-wit==1.8.0 tensorboardcolab==0.0.22 tensorflow==2.4.1 tensorflow-addons==0.8.3 tensorflow-datasets==4.0.1 tensorflow-estimator==2.4.0 tensorflow-gcs-config==2.4.0 tensorflow-hub==0.11.0 tensorflow-metadata==0.27.0 tensorflow-privacy==0.2.2 tensorflow-probability==0.12.1 termcolor==1.1.0 terminado==0.9.2 testpath==0.4.4 text-unidecode==1.3 textblob==0.15.3 textgenrnn==1.4.1 Theano==1.0.5 thinc==7.4.0 tifffile==2020.9.3 toml==0.10.2 toolz==0.11.1 torch==1.7.0+cu101 torchsummary==1.5.1 torchtext==0.3.1 torchvision==0.8.1+cu101 tornado==5.1.1 tqdm==4.41.1 traitlets==4.3.3 tweepy==3.6.0 typeguard==2.7.1 typing-extensions==3.7.4.3 tzlocal==1.5.1 umap-learn==0.5.0 uritemplate==3.0.1 urllib3==1.24.3 vega-datasets==0.9.0 wasabi==0.8.2 wcwidth==0.2.5 webencodings==0.5.1 Werkzeug==1.0.1 widgetsnbextension==3.5.1 wordcloud==1.5.0 wrapt==1.12.1 xarray==0.15.1 xgboost==0.90 xkit==0.0.0 xlrd==1.1.0 xlwt==1.3.0 yellowbrick==0.9.1 zict==2.0.0 zipp==3.4.0
python -c "import einsteinpy.testing; einsteinpy.testing.test()"
Paste your output here:
============================= test session starts ============================== platform linux – Python 3.6.9, pytest-3.6.4, py-1.10.0, pluggy-0.7.1 rootdir: /usr/local, inifile: setup.cfg plugins: typeguard-2.7.1 collected 239 items
…/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_bodies.py . [ 0%] … [ 10%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_constant.py . [ 10%] … [ 11%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_examples.py . [ 12%] . [ 12%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_geodesics.py . [ 12%] … [ 14%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_coordinates/test_conversions.py . [ 14%] … [ 17%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_coordinates/test_coord_transform.py . [ 17%] … [ 24%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_coordinates/test_velocity_transform.py . [ 24%] … [ 28%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_hypersurface/test_schwarzschildembedding.py . [ 29%] … [ 30%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_ijit/test_ijit_without_numba.py . [ 30%] [ 30%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_integrators/test_runge_kutta.py . [ 31%] [ 31%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_metric/test_kerr.py . [ 31%] … [ 34%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_metric/test_kerrnewman.py . [ 34%] … [ 36%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_metric/test_schwarzschild.py . [ 36%] … [ 40%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_plotting/test_fractal.py . [ 40%] . [ 41%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_plotting/test_hypersurface.py . [ 41%] . [ 41%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_plotting/test_geodesics/test_interactive.py . [ 42%] … [ 43%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_plotting/test_geodesics/test_static.py . [ 44%] … [ 47%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_plotting/test_rays/test_shadow.py . [ 47%] . [ 48%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_symbolic/test_christoffel.py . [ 48%] … [ 50%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_symbolic/test_constants.py . [ 51%] . [ 51%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_symbolic/test_einstein.py . [ 51%] … [ 53%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_symbolic/test_helpers.py . [ 53%] x… [ 57%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_symbolic/test_metric.py . [ 57%] … [ 60%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_symbolic/test_ricci.py . [ 60%] … [ 63%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_symbolic/test_riemann.py . [ 63%] … [ 64%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_symbolic/test_schouten.py . [ 65%] … [ 66%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_symbolic/test_stress_energy_momentum.py . [ 66%] … [ 67%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_symbolic/test_tensor.py . [ 68%] …xxxxx…xF… [ 76%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_symbolic/test_vector.py . [ 77%] x… [ 78%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_symbolic/test_weyl.py . [ 79%] … [ 81%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_symbolic/test_predefined/test_all.py . [ 81%] … [ 91%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_symbolic/test_predefined/test_find.py . [ 91%] . [ 92%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_utils/test_kerr_utils.py . [ 92%] … [ 95%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_utils/test_kerrnewman_utils.py . [ 95%] … [ 99%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_utils/test_schwarzschild_utils.py . [100%]
=================================== FAILURES =================================== ______ test_BaseRelativityTensor_automatic_calculation_of_free_variables _______
def test_BaseRelativityTensor_automatic_calculation_of_free_variables():
t1, variables, functions = arbitrary_tensor1()
/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_symbolic/test_tensor.py:201:
/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_symbolic/test_tensor.py:78: in arbitrary_tensor1 return BaseRelativityTensor(list2d, syms, config=“ll”), [a, c], [f1, f2, f3] /usr/local/lib/python3.6/dist-packages/einsteinpy/symbolic/tensor.py:301: in init v for v in self.arr.free_symbols if v not in self.syms /usr/local/lib/python3.6/dist-packages/sympy/core/basic.py:501: in free_symbols return set().union([a.free_symbols for a in self.args]) /usr/local/lib/python3.6/dist-packages/sympy/core/basic.py:501: in <listcomp> return set().union([a.free_symbols for a in self.args])
self = (-af1(a, x2)/x1 + 1, 0, 0, 5f2©, 0, -1/(c2*(-a/x1 + 1)), f3, 0, 0, f3, -x12/c2, 0, 5*f2©, 0, 0, -x12*sin(x2)2/c2)
@property
def free_symbols(self):
"""Return from the atoms of self those which are free symbols.
For most expressions, all symbols are free symbols. For some classes
this is not true. e.g. Integrals use Symbols for the dummy variables
which are bound variables, so Integral has a method to return all
symbols except those. Derivative keeps track of symbols with respect
to which it will perform a derivative; those are
bound variables, too, so it has its own free_symbols method.
Any other method that uses bound variables should implement a
free_symbols method."""
return set().union(*[a.free_symbols for a in self.args])
E TypeError: ‘property’ object is not iterable
/usr/local/lib/python3.6/dist-packages/sympy/core/basic.py:501: TypeError =============================== warnings summary =============================== lib/python3.6/dist-packages/einsteinpy/tests/test_bodies.py::test_predefined_bodies_base_properties[obj0-parent0-R0-mass0] /usr/local/lib/python3.6/dist-packages/statsmodels/tools/_testing.py:19: FutureWarning:
pandas.util.testing is deprecated. Use the functions in the public API at pandas.testing instead.
lib/python3.6/dist-packages/einsteinpy/tests/test_plotting/test_hypersurface.py::test_plot_calls_plt_show /usr/local/lib/python3.6/dist-packages/numpy/core/_asarray.py:136: VisibleDeprecationWarning:
Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify ‘dtype=object’ when creating the ndarray
– Docs: http://doc.pytest.org/en/latest/warnings.html ======== 1 failed, 230 passed, 8 xfailed, 2 warnings in 205.76 seconds =========
🎯 Goal
I have multiple tensors that I want to multiply and contract with each other, and the tensor_product function is very convenient to that end.
💡 Possible solutions
This seems like an easy fix; the function is already written in the github repo.
I think I can also use a combination of tensorproduct
and tensorcontraction
(and will try to do so in the meanwhile), but I’d like to be able to use the tensor_product
function if possible.
📋 Steps to solve the problem
This is an install problem, so there is nothing I can do.
Issue Analytics
- State:
- Created 3 years ago
- Comments:15 (12 by maintainers)
Top GitHub Comments
Sad news, hoping things get better soon for you.
I just wanted to say thank you so much for creating and maintaining this project. It really brings power to ordinary programmers to study and use tensors in curved spaces.
I have written my own function to multiply and contract tensors, so this is not an issue for me anymore. If you’d like, I can keep the issue open for the time being.