richardblythman's picture
Upload folder using huggingface_hub
4ae0b03 verified
from huggingface_hub import HfApi, login
from naptha_sdk.client.hub import Hub
from naptha_sdk.client.node import Node
from typing import Dict, List, Tuple
class Naptha:
"""The entry point into Naptha."""
def __init__(self,
user,
hub_username,
hub_password,
hf_username,
hf_access_token,
hub_url="ws://node.naptha.ai:3001/rpc",
node_url="http://node.naptha.ai:7001",
routing_url=None,
indirect_node_id=None,
*args,
**kwargs
):
self.user = user
self.hub_url = hub_url
self.hf_username = hf_username
login(hf_access_token)
self.hf = HfApi()
self.node_url = node_url
self.routing_url = routing_url
self.indirect_node_id = indirect_node_id
self.node = Node(
node_url=node_url,
routing_url=routing_url,
indirect_node_id=indirect_node_id
)
self.__storedargs = user, hub_username, hub_password, hub_url, node_url, args, kwargs
self.async_initialized = False
async def __ainit__(self,
user,
hub_username,
hub_password,
hub_url,
node_url,
routing_url,
indirect_node_id,
*args,
**kwargs):
"""Async constructor"""
self.hub = await Hub(hub_username, hub_password, hub_url)
async def __initobj(self):
"""Crutch used for __await__ after spawning"""
assert not self.async_initialized
self.async_initialized = True
await self.__ainit__(
self.__storedargs[0],
self.__storedargs[1],
self.__storedargs[2],
self.__storedargs[3],
self.__storedargs[4],
self.__storedargs[5],
self.__storedargs[6],
)
return self
def __await__(self):
return self.__initobj().__await__()