          self.conda_required_packages = [("tk", )]
          self.output = logger if logger else Output()
          self.updater = updater
          # Flag that setup is being run by installer so steps can be skipped
          self.is_installer = False
          self.cuda_version = ""
          self.cudnn_version = ""
          self.enable_amd = False
          self.enable_docker = False
          self.enable_cuda = False
          self.required_packages = []
          self.missing_packages = []
          self.conda_missing_packages = []
  
          self.process_arguments()
          self.check_permission()
          self.check_system()
          self.check_python()
 
</s> remove         self.conda_required_packages = [("tk", )]
        self.output = logger if logger else Output()
 </s> add         self.conda_required_packages: List[Tuple[str, ...]] = [("tk", )]
        self.output: Union["Logger", "Output"] = logger if logger else Output() </s> remove     def __init__(self, logger=None, updater=False):
 </s> add     def __init__(self, logger: Optional["Logger"] = None, updater: bool = False) -> None: </s> remove     def __init__(self, environment):
        self.env = environment
        self.output = Output()
        self.tips = Tips()

 </s> add     def __init__(self, environment: Environment) -> None:
        self.env:  Environment = environment
        self.output: Output = Output()
        self.tips: Tips = Tips() </s> remove     def docker_ask_enable(self):
 </s> add     def docker_ask_enable(self) -> None:
        self.is_installer: bool = False
        self.cuda_version: str = ""
        self.cudnn_version: str = ""
        self.enable_amd: bool = False
        self.enable_apple_silicon: bool = False
        self.enable_docker: bool = False
        self.enable_cuda: bool = False
        self.required_packages: List[Tuple[str, Tuple[str, str]]] = []
        self.missing_packages: List[str] = []
        self.conda_missing_packages: List[str] = []
          self.conda_required_packages = [("tk", )]
          self.output = logger if logger else Output()
          self.updater = updater
          # Flag that setup is being run by installer so steps can be skipped
        self.is_installer: bool = False
        self.cuda_version: str = ""
        self.cudnn_version: str = ""
        self.enable_amd: bool = False
        self.enable_apple_silicon: bool = False
        self.enable_docker: bool = False
        self.enable_cuda: bool = False
        self.required_packages: List[Tuple[str, Tuple[str, str]]] = []
        self.missing_packages: List[str] = []
        self.conda_missing_packages: List[str] = []
        self.is_installer: bool = False
        self.cuda_version: str = ""
        self.cudnn_version: str = ""
        self.enable_amd: bool = False
        self.enable_apple_silicon: bool = False
        self.enable_docker: bool = False
        self.enable_cuda: bool = False
        self.required_packages: List[Tuple[str, Tuple[str, str]]] = []
        self.missing_packages: List[str] = []
        self.conda_missing_packages: List[str] = []
        self.is_installer: bool = False
        self.cuda_version: str = ""
        self.cudnn_version: str = ""
        self.enable_amd: bool = False
        self.enable_apple_silicon: bool = False
        self.enable_docker: bool = False
        self.enable_cuda: bool = False
        self.required_packages: List[Tuple[str, Tuple[str, str]]] = []
        self.missing_packages: List[str] = []
        self.conda_missing_packages: List[str] = []
        self.is_installer: bool = False
        self.cuda_version: str = ""
        self.cudnn_version: str = ""
        self.enable_amd: bool = False
        self.enable_apple_silicon: bool = False
        self.enable_docker: bool = False
        self.enable_cuda: bool = False
        self.required_packages: List[Tuple[str, Tuple[str, str]]] = []
        self.missing_packages: List[str] = []
        self.conda_missing_packages: List[str] = []
        self.is_installer: bool = False
        self.cuda_version: str = ""
        self.cudnn_version: str = ""
        self.enable_amd: bool = False
        self.enable_apple_silicon: bool = False
        self.enable_docker: bool = False
        self.enable_cuda: bool = False
        self.required_packages: List[Tuple[str, Tuple[str, str]]] = []
        self.missing_packages: List[str] = []
        self.conda_missing_packages: List[str] = []
        self.is_installer: bool = False
        self.cuda_version: str = ""
        self.cudnn_version: str = ""
        self.enable_amd: bool = False
        self.enable_apple_silicon: bool = False
        self.enable_docker: bool = False
        self.enable_cuda: bool = False
        self.required_packages: List[Tuple[str, Tuple[str, str]]] = []
        self.missing_packages: List[str] = []
        self.conda_missing_packages: List[str] = []
        self.is_installer: bool = False
        self.cuda_version: str = ""
        self.cudnn_version: str = ""
        self.enable_amd: bool = False
        self.enable_apple_silicon: bool = False
        self.enable_docker: bool = False
        self.enable_cuda: bool = False
        self.required_packages: List[Tuple[str, Tuple[str, str]]] = []
        self.missing_packages: List[str] = []
        self.conda_missing_packages: List[str] = []
        self.is_installer: bool = False
        self.cuda_version: str = ""
        self.cudnn_version: str = ""
        self.enable_amd: bool = False
        self.enable_apple_silicon: bool = False
        self.enable_docker: bool = False
        self.enable_cuda: bool = False
        self.required_packages: List[Tuple[str, Tuple[str, str]]] = []
        self.missing_packages: List[str] = []
        self.conda_missing_packages: List[str] = []
        self.is_installer: bool = False
        self.cuda_version: str = ""
        self.cudnn_version: str = ""
        self.enable_amd: bool = False
        self.enable_apple_silicon: bool = False
        self.enable_docker: bool = False
        self.enable_cuda: bool = False
        self.required_packages: List[Tuple[str, Tuple[str, str]]] = []
        self.missing_packages: List[str] = []
        self.conda_missing_packages: List[str] = []
  
          self.process_arguments()
          self.check_permission()
          self.check_system()
          self.check_python()
keep keep keep keep replace replace replace replace replace replace replace replace replace keep keep keep keep keep
 Add Apple M1 to setup.py

add libblas to requirements 
setup.py