/
Undeadguy
/
Tape_python
Обзор
Документация
Войти
/
Undeadguy
/
Tape_python
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
file_funcs.py
143 строки
7 KB
Undeadguy
1.0
15 апр 2026, 22:40
15 апр 2026, 22:40
556ac2a
Код
Авторство
О чём код?
from typing import Dict, Optional, Tuple class FileStorageType: class Base64: pass class Text: pass class File: name: str path: str file_type: str is_binary: bool body: str def __init__(self, n: str, p: str, ft: str, bi: bool, b: Optional[str]): self.body = b self.is_binary = bi self.file_type = ft self.name = n self.path = p FILE_TYPE_MAP: Dict[str, Tuple[str, FileStorageType]] = { # Текстовые и разметка ".txt": ("plain text document", FileStorageType.Text), ".md": ("markdown document", FileStorageType.Text), ".rst": ("reStructuredText document", FileStorageType.Text), ".html": ("HTML web page", FileStorageType.Text), ".htm": ("HTML web page", FileStorageType.Text), ".xml": ("XML document", FileStorageType.Text), ".svg": ("vector graphics (XML)", FileStorageType.Text), ".json": ("JSON data structure", FileStorageType.Text), ".jsonl": ("JSON lines (one JSON per line)", FileStorageType.Text), ".jsonlines": ("JSON lines (one JSON per line)", FileStorageType.Text), ".yaml": ("YAML config/serialization", FileStorageType.Text), ".yml": ("YAML config/serialization", FileStorageType.Text), ".toml": ("TOML config format", FileStorageType.Text), ".ini": ("INI configuration", FileStorageType.Text), ".cfg": ("INI configuration", FileStorageType.Text), ".conf": ("INI configuration", FileStorageType.Text), ".log": ("log file (plain text)", FileStorageType.Text), # Данные и таблицы ".csv": ("comma-separated values", FileStorageType.Text), ".tsv": ("tab-separated values", FileStorageType.Text), ".xlsx": ("Excel spreadsheet", FileStorageType.Base64), ".xls": ("Excel 97-2003", FileStorageType.Base64), ".parquet": ("Apache Parquet columnar storage", FileStorageType.Base64), ".feather": ("Feather R/Python format", FileStorageType.Base64), ".orc": ("Optimized Row Columnar", FileStorageType.Base64), ".avro": ("Apache Avro binary", FileStorageType.Base64), ".pickle": ("Python pickle serialization", FileStorageType.Base64), ".pkl": ("Python pickle serialization", FileStorageType.Base64), # Изображения ".png": ("raster image (lossless)", FileStorageType.Base64), ".jpg": ("raster image (lossy)", FileStorageType.Base64), ".jpeg": ("raster image (lossy)", FileStorageType.Base64), ".gif": ("animated/lossless image", FileStorageType.Base64), ".bmp": ("bitmap (uncompressed)", FileStorageType.Base64), ".tiff": ("TIFF image", FileStorageType.Base64), ".tif": ("TIFF image", FileStorageType.Base64), ".webp": ("modern web image", FileStorageType.Base64), ".ico": ("icon file", FileStorageType.Base64), # Аудио ".mp3": ("MPEG audio layer 3", FileStorageType.Base64), ".wav": ("uncompressed audio", FileStorageType.Base64), ".flac": ("lossless audio", FileStorageType.Base64), ".ogg": ("Ogg container (Vorbis)", FileStorageType.Base64), ".m4a": ("MPEG-4 audio", FileStorageType.Base64), ".opus": ("Opus audio", FileStorageType.Base64), # Видео ".mp4": ("MPEG-4 video", FileStorageType.Base64), ".mkv": ("Matroska video", FileStorageType.Base64), ".avi": ("AVI container", FileStorageType.Base64), ".mov": ("QuickTime movie", FileStorageType.Base64), ".webm": ("web video", FileStorageType.Base64), ".flv": ("Flash video", FileStorageType.Base64), ".m4v": ("iTunes video", FileStorageType.Base64), # Архивы и сжатие ".zip": ("ZIP archive", FileStorageType.Base64), ".tar": ("TAR archive (uncompressed)", FileStorageType.Base64), ".tar.gz": ("gzipped TAR", FileStorageType.Base64), ".tgz": ("gzipped TAR", FileStorageType.Base64), ".tar.bz2": ("bzip2 TAR", FileStorageType.Base64), ".tbz2": ("bzip2 TAR", FileStorageType.Base64), ".tar.xz": ("xz TAR", FileStorageType.Base64), ".txz": ("xz TAR", FileStorageType.Base64), ".gz": ("single file gzip", FileStorageType.Base64), ".bz2": ("single file bzip2", FileStorageType.Base64), ".xz": ("single file xz", FileStorageType.Base64), ".7z": ("7-Zip archive", FileStorageType.Base64), ".rar": ("RAR archive", FileStorageType.Base64), # Исполняемые и код ".py": ("Python script", FileStorageType.Text), ".pyc": ("compiled Python", FileStorageType.Base64), ".ipynb": ("Jupyter notebook", FileStorageType.Text), # JSON-based ".sh": ("shell script", FileStorageType.Text), ".bash": ("Bash script", FileStorageType.Text), ".js": ("JavaScript", FileStorageType.Text), ".mjs": ("ES module", FileStorageType.Text), ".ts": ("TypeScript", FileStorageType.Text), ".c": ("C source", FileStorageType.Text), ".cpp": ("C++ source", FileStorageType.Text), ".cc": ("C++ source", FileStorageType.Text), ".cxx": ("C++ source", FileStorageType.Text), ".h": ("C/C++ header", FileStorageType.Text), ".hpp": ("C/C++ header", FileStorageType.Text), ".rs": ("Rust source", FileStorageType.Text), ".go": ("Go source", FileStorageType.Text), ".java": ("Java source", FileStorageType.Text), ".class": ("compiled Java", FileStorageType.Base64), ".rb": ("Ruby script", FileStorageType.Text), ".pl": ("Perl script", FileStorageType.Text), ".lua": ("Lua script", FileStorageType.Text), ".swift": ("swift source", FileStorageType.Text), ".kt": ("Kotlin source", FileStorageType.Text), ".exe": ("Windows executable", FileStorageType.Base64), ".dll": ("Windows executable", FileStorageType.Base64), ".so": ("Linux shared library", FileStorageType.Base64), ".dylib": ("macOS dynamic lib", FileStorageType.Base64), # Документы ".pdf": ("PDF document", FileStorageType.Base64), ".doc": ("Microsoft Word", FileStorageType.Base64), ".docx": ("Microsoft Word", FileStorageType.Base64), ".ppt": ("PowerPoint presentation", FileStorageType.Base64), ".pptx": ("PowerPoint presentation", FileStorageType.Base64), ".odt": ("OpenDocument text", FileStorageType.Base64), ".ods": ("OpenDocument spreadsheet", FileStorageType.Base64), ".odp": ("OpenDocument presentation", FileStorageType.Base64), # Веб/специальные ".css": ("stylesheet", FileStorageType.Text), ".scss": ("SASS stylesheet", FileStorageType.Text), ".less": ("LESS stylesheet", FileStorageType.Text), ".sql": ("SQL database query", FileStorageType.Text), ".db": ("SQLite database", FileStorageType.Base64), ".sqlite": ("SQLite database", FileStorageType.Base64), ".graphql": ("GraphQL schema", FileStorageType.Text), ".gql": ("GraphQL schema", FileStorageType.Text), ".proto": ("Protocol Buffers", FileStorageType.Text), }