I am going through open-stack Tempest code. I see some syntax @ used inside a class as below. Could some one give me a proper link where i can learn above why this @ is used.

```
  @classmethod
      def setUpClass(cls):
      cls.set_network_resources()
      super(TestLargeOpsScenario, cls).setUpClass()

```

or even like this,

```
  @attr(type='smoke')
  def test_update_setver_name(self):
        name = rand_server('server')

```

so what is the use of @ over here?