  This paper presents EinsteinPy (version 0.3), a community-developed Python
package for gravitational and relativistic astrophysics. Python is a free, easy
to use a high-level programming language which has seen a huge expansion in the
number of its users and developers in recent years. Specifically, a lot of
recent studies show that the use of Python in Astrophysics and general physics
has increased exponentially. We aim to provide a very high level of
abstraction, an easy to use interface and pleasing user experience. EinsteinPy
is developed keeping in mind the state of a theoretical gravitational physicist
with little or no background in computer programming and trying to work in the
field of numerical relativity or trying to use simulations in their research.
Currently, EinsteinPy supports simulation of time-like and null geodesics and
calculates trajectories in different background geometries some of which are
Schwarzschild, Kerr, and KerrNewmann along with coordinate inter-conversion
pipeline. It has a partially developed pipeline for plotting and visualization
with dependencies on libraries like Plotly, matplotlib, etc. One of the unique
features of EinsteinPy is a sufficiently developed symbolic tensor manipulation
utilities which are a great tool in itself for teaching yourself tensor algebra
which for many beginner students can be overwhelmingly tricky. EinsteinPy also
provides few utility functions for hypersurface embedding of Schwarzschild
spacetime which further will be extended to model gravitational lensing
simulation.
