class_docstr: Interact with FTP.
  
  Errors that may occur throughout but should be handled downstream.
  You can specify mode for data transfers in the extra field of your
  connection as ``{"passive": "true"}``.
  
  :param ftp_conn_id: The :ref:`ftp connection id <howto/connection:ftp>`
      reference.
class_docstr_tok: ["Interact","with","FTP",".","Errors","that","may","occur","throughout","but","should","be","handled","downstream",".","You","can","specify","mode","for","data","transfers","in","the","extra","field","of","your","connection","as","``","{","``","passive","''",":","``","true","''","}","``",".",":","param","ftp_conn_id",":","The",":","ref",":","`","ftp","connection","id","<","howto\/connection",":","ftp",">","`","reference","."]
code: def __exit__(self, exc_type: Any, exc_val: Any, exc_tb: Any) -> None:
      if self.conn is not None:
          self.close_conn()
  
imports: from __future__ import annotations
  import datetime
  import ftplib
  from typing import Any, Callable
  from airflow.hooks.base import BaseHook
label_desc: Use image node_id 3 for calling the FTPHook obj's underlying member method code with example usage: obj.__exit__(exc_type, exc_val, exc_tb) without return types