File size: 2,584 Bytes
adebd02
ebc6cc2
 
adebd02
ebc6cc2
 
 
 
 
 
 
 
 
adebd02
ebc6cc2
 
adebd02
ebc6cc2
 
 
adebd02
ebc6cc2
 
 
 
 
 
adebd02
ebc6cc2
adebd02
 
ebc6cc2
adebd02
ebc6cc2
 
 
adebd02
ebc6cc2
 
 
adebd02
ebc6cc2
 
adebd02
ebc6cc2
 
adebd02
 
ebc6cc2
 
adebd02
ebc6cc2
 
 
 
 
adebd02
ebc6cc2
 
adebd02
ebc6cc2
 
adebd02
 
ebc6cc2
 
adebd02
ebc6cc2
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import logs
import inspect
import traceback
from huggingface_hub import HfApi, create_repo
from huggingface_hub.utils import RepositoryNotFoundError
from configuration import Configuration
class HostingInHuggingFace:
  def __init__(self):
    self.base_path = Configuration.PROJECT_ROOT
    self.hf_token = Configuration.HF_TOKEN
    self.repo_id = 'jpkarthikeyan/FlyKiteAirlines'

  def CreatingSpaceInHF(self):
    logs.logger.info(f"Function Name {inspect.currentframe().f_code.co_name}")
    api = HfApi()
    try:
      logs.logger.info(f"Checking for {self.repo_id} is correct or not")
      api.repo_info(repo_id = self.repo_id,
                    repo_type='space',
                    token = self.hf_token)
      logs.logger.info(f"Space {self.repo_id} already exists")
    except RepositoryNotFoundError:
      create_repo(repo_id=self.repo_id,
                  repo_type='space',
                  space_sdk='docker',
                  private=False,
                  token=self.hf_token)
      logs.logger.info(f"Space created in {self.repo_id}")
    except Exception as ex:
      logs.logger.info(f"Exception in creating space {ex}")
      logs.logger.info(traceback.print_exc())
    finally:
      logs.logger.info('-'*50)


  def UploadDeploymentFile(self):
    logs.logger.info(f"Function Name {inspect.currentframe().f_code.co_name}")
    try:
      api = HfApi(token=self.hf_token)
      directory_to_upload = self.base_path
      logs.logger.info(f"Directory to upload {directory_to_upload} into HF Space {self.repo_id}")
      api.upload_folder(repo_id=self.repo_id, folder_path=directory_to_upload,
                        repo_type='space')
      logs.logger.info(f"Successfully upload {directory_to_upload} into {self.repo_id}")
      return True
    except Exception as ex:
      logs.logger.info(f"Exception occured {ex}")
      logs.logger.info(traceback.print_exc())
      return False
    finally:
      logs.logger.info('-'*50)

  def ToRunPipeline(self):
    try:
      self.CreatingSpaceInHF()
      if self.UploadDeploymentFile():
        logs.logger.info('Deployment pipeline completed')
        return True
      else:
        logs.logger.info('Deployment pipeline failed')
        return False
    except Exception as ex:
      logs.logger.info(f"Exception occured {ex}")
      logs.logger.info(traceback.print_exc())
      return False
    finally:
      logs.logger.info('-'*50)


if __name__ == '__main__':
    hosting = HostingInHuggingFace()
    hosting.ToRunPipeline()