Spaces:
Runtime error
Runtime error
File size: 1,578 Bytes
bbd909e e0cbbfe bbd909e e0cbbfe bbd909e e0cbbfe bbd909e e0cbbfe bbd909e e0cbbfe bbd909e e0cbbfe bbd909e e0cbbfe bbd909e e0cbbfe bbd909e e0cbbfe bbd909e e0cbbfe bbd909e e0cbbfe bbd909e e0cbbfe bbd909e e0cbbfe bbd909e e0cbbfe bbd909e e0cbbfe bbd909e e0cbbfe |
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 |
import asyncio
from pydantic import BaseModel
class File(BaseModel):
name: str
content: bytes
@classmethod
def from_path(cls, path: str):
with open(path, "rb") as f:
path = path.split("/")[-1]
return cls(name=path, content=f.read())
@classmethod
async def afrom_path(cls, path: str):
await asyncio.to_thread(cls.from_path, path)
@classmethod
def from_url(cls, url: str):
import requests # type: ignore
r = requests.get(url)
return cls(name=url.split("/")[-1], content=r.content)
@classmethod
async def afrom_url(cls, url: str):
import aiohttp
async with aiohttp.ClientSession() as session:
async with session.get(url) as r:
return cls(name=url.split("/")[-1], content=await r.read())
def save(self, path: str):
with open(path, "wb") as f:
f.write(self.content)
async def asave(self, path: str):
await asyncio.to_thread(self.save, path)
def show_image(self):
try:
from PIL import Image # type: ignore
except ImportError:
print(
"Please install it with `pip install codeinterpreterapi[image_support]` to display images."
)
exit(1)
from io import BytesIO
img_io = BytesIO(self.content)
img = Image.open(img_io)
# Display the image
img.show()
def __str__(self):
return self.name
def __repr__(self):
return f"File(name={self.name})"
|