task: metadata: install: pip install -e .[dev]
patch: diff --git a/src/einsteinpy/symbolic/constants.py b/src/einsteinpy/symbolic/constants.py
index 0ab4863..509082c 100644
--- a/src/einsteinpy/symbolic/constants.py
+++ b/src/einsteinpy/symbolic/constants.py
@@ -5,19 +5,24 @@ class SymbolicConstant(Symbol):
     """
     This class inherits from ~sympy.core.symbol.Symbol 
 
-    Parameters
-    ----------
-    name : str
-        Short, commonly accepted name of the constant. 
-        For example, 'c' for Speed of light.
-    descriptive_name : str
-        The extended name of the constant. 
-        For example, 'Speed of Light' for 'c'. 
-        Defaults to None.
-
     """
 
     def __new__(cls, name, descriptive_name=None, **assumptions):
+        """
+        Constructor and Initializer
+
+        Parameters
+        ----------
+        name : str
+            Short, commonly accepted name of the constant. 
+            For example, 'c' for Speed of light.
+        descriptive_name : str
+            The extended name of the constant. 
+            For example, 'Speed of Light' for 'c'. 
+            Defaults to None.
+
+        """
+
         instance = super(SymbolicConstant, cls).__new__(cls, name, **assumptions)
         instance._descriptive_name = descriptive_name
         return instance
diff --git a/src/einsteinpy/symbolic/ricci.py b/src/einsteinpy/symbolic/ricci.py
index 6c029c6..f9049b2 100644
--- a/src/einsteinpy/symbolic/ricci.py
+++ b/src/einsteinpy/symbolic/ricci.py
@@ -141,19 +141,20 @@ class RicciTensor(BaseRelativityTensor):
         return new_obj
 
 
-class RicciScalar:
+class RicciScalar(BaseRelativityTensor):
     """
+    Inherits from ~einsteinpy.symbolic.tensor.BaseRelativityTensor
     Class for defining Ricci Scalar
     """
 
-    def __init__(self, expression, syms, parent_metric=None):
+    def __init__(self, arr, syms, parent_metric=None):
         """
         Constructor and Initializer
 
         Parameters
         ----------
-        expression : ~sympy.core.expr.Expr
-            Any sympy expression
+        arr : ~sympy.tensor.array.dense_ndim_array.ImmutableDenseNDimArray or list
+            Sympy Array, multi-dimensional list containing Sympy Expressions, or Sympy Expressions or int or float scalar
         syms : tuple or list
             Tuple of crucial symbols denoting time-axis, 1st, 2nd, and 3rd axis (t,x1,x2,x3)
         parent_metric : ~einsteinpy.symbolic.metric.MetricTensor or None
@@ -166,14 +167,11 @@ class RicciScalar:
             Raised when syms is not a list or tuple
 
         """
+        super(RicciScalar, self).__init__(
+            arr=arr, syms=syms, config="", parent_metric=parent_metric
+        )
         self._order = 0
-        self._parent_metric = parent_metric
-        self._expr = expression
-        if isinstance(syms, (list, tuple)):
-            self.syms = syms
-            self.dims = len(self.syms)
-        else:
-            raise TypeError("syms should be a list or tuple")
+        self._expr = self.arr[0]
 
     @property
     def expr(self):
@@ -182,13 +180,6 @@ class RicciScalar:
         """
         return self._expr
 
-    @property
-    def parent_metric(self):
-        """
-        Returns the Parent Metric, if available.
-        """
-        return self._parent_metric
-
     @classmethod
     def from_riccitensor(cls, riccitensor, parent_metric=None):
         """
diff --git a/src/einsteinpy/symbolic/tensor.py b/src/einsteinpy/symbolic/tensor.py
index 5bf381d..fbd55ff 100644
--- a/src/einsteinpy/symbolic/tensor.py
+++ b/src/einsteinpy/symbolic/tensor.py
@@ -1,6 +1,7 @@
 import numpy as np
 import sympy
 from sympy import simplify, tensorcontraction, tensorproduct
+from sympy.core.expr import Expr
 from sympy.core.function import AppliedUndef, UndefinedFunction
 
 
@@ -76,7 +77,7 @@ class Tensor:
         Parameters
         ----------
         arr : ~sympy.tensor.array.dense_ndim_array.ImmutableDenseNDimArray or list
-            Sympy Array or multi-dimensional list containing Sympy Expressions
+            Sympy Array, multi-dimensional list containing Sympy Expressions, or Sympy Expressions or int or float scalar
         config : str
             Configuration of contravariant and covariant indices in tensor. 'u' for upper and 'l' for lower indices. Defaults to 'll'.
 
@@ -89,7 +90,7 @@ class Tensor:
 
         """
 
-        if isinstance(arr, (list, tuple, np.ndarray)):
+        if isinstance(arr, (list, tuple, np.ndarray, int, float, Expr)):
             self.arr = sympy.Array(arr)
         elif isinstance(arr, sympy.Array):
             self.arr = arr

problem_statement: Extend support of Tensor Class(symbolic) to support scalars
🐞 **Problem**
Scalars are also zero order tensors. The Tensor class currently supports 1st order tensors and above.

🎯 **Goal**

  - Make `Tensor` support scalars. This issue can also help in #287 .

📋  **Steps to solve the problem**

 * Comment below about what you've started working on.
 * Add, commit, push your changes
 * Submit a pull request and add this in comments - `Addresses #<put issue number here>`
 * Ask for a review in comments section of pull request
 * Celebrate your contribution to this project 🎉

repo: einsteinpy/einsteinpy
test_cmd: pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
test_patch: diff --git a/src/einsteinpy/tests/test_symbolic/test_tensor.py b/src/einsteinpy/tests/test_symbolic/test_tensor.py
index 36eff8f..7d85b44 100644
--- a/src/einsteinpy/tests/test_symbolic/test_tensor.py
+++ b/src/einsteinpy/tests/test_symbolic/test_tensor.py
@@ -1,5 +1,7 @@
 import numpy as np
+import pytest
 from sympy import Array, Function, cos, simplify, sin, symbols
+from sympy.abc import y, z
 
 from einsteinpy.symbolic.tensor import BaseRelativityTensor, Tensor
 
@@ -72,15 +74,6 @@ def test_Tensor_repr():
     assert not "object at 0x" in machine_representation
 
 
-def test_TypeError1():
-    arr = 0
-    try:
-        obj = Tensor(arr)
-        assert False
-    except TypeError:
-        assert True
-
-
 def test_TypeError2():
     scht = schwarzschild_tensor().tensor()
     # pass non str object
@@ -147,3 +140,12 @@ def test_BaseRelativityTensor_automatic_calculation_of_free_variables():
             and (f in t2.functions)
             and (f in functions)
         )
+
+
+# tests fot Tensor Class to support scalars and sympy expression type scalars
+
+
+@pytest.mark.parametrize("scalar", [11.89, y * z + 5])
+def test_tensor_scalar(scalar):
+    scalar_tensor = Tensor(scalar)
+    assert scalar_tensor.tensor().rank() == 0