diff --git a/netconf/nc_rpc/base/unlock.py b/netconf/nc_rpc/base/unlock.py
index e2bc8e8..931c145 100644
--- a/netconf/nc_rpc/base/unlock.py
+++ b/netconf/nc_rpc/base/unlock.py
@@ -21,17 +21,18 @@
 
 log = structlog.get_logger()
 
+
 class UnLock(Rpc):
+    def __init__(self, request, request_xml, grpc_client, session,
+                 capabilities):
+        super(UnLock, self).__init__(request, request_xml, grpc_client,
+                                     session, capabilities)
+        self._validate_parameters()
 
-	def __init__(self, request, request_xml, grpc_client, session, capabilities):
-		super(UnLock, self).__init__(request, request_xml, grpc_client,
-									 session, capabilities)
-		self._validate_parameters()
+    def execute(self):
+        log.info('UnLock-request', session=self.session.session_id)
+        if self.rpc_response.is_error:
+            return self.rpc_response
 
-	def execute(self):
-		log.info('UnLock-request', session=self.session.session_id)
-		if self.rpc_response.is_error:
-			return self.rpc_response
-
-	def _validate_parameters(self):
-		log.info('validate-parameters', session=self.session.session_id)
+    def _validate_parameters(self):
+        log.info('validate-parameters', session=self.session.session_id)
