clutch.schema.user.response.torrent package

Submodules

clutch.schema.user.response.torrent.accessor module

class clutch.schema.user.response.torrent.accessor.File(**data)

Bases: BaseModel

Parameters:

data (Any)

begin_piece: int
bytes_completed: int
end_piece: int
length: int
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str
class clutch.schema.user.response.torrent.accessor.FileStats(**data)

Bases: BaseModel

Parameters:

data (Any)

bytes_completed: int
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

priority: int
wanted: bool
class clutch.schema.user.response.torrent.accessor.Peer(**data)

Bases: BaseModel

Parameters:

data (Any)

address: str
client_is_choked: bool
client_is_interested: bool
client_name: str
flag_str: str
is_downloading_from: bool
is_encrypted: bool
is_incoming: bool
is_uploading_to: bool
is_utp: bool
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

peer_is_choked: bool
peer_is_interested: bool
port: int
progress: float
rate_to_client: int
rate_to_peer: int
class clutch.schema.user.response.torrent.accessor.PeersFrom(**data)

Bases: BaseModel

Parameters:

data (Any)

from_cache: int
from_dht: int
from_incoming: int
from_lpd: int
from_ltep: int
from_pex: int
from_tracker: int
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class clutch.schema.user.response.torrent.accessor.Status(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)

Bases: Enum

CHECK = 2
CHECK_WAIT = 1
DOWNLOAD = 4
DOWNLOAD_WAIT = 3
SEED = 6
SEED_WAIT = 5
STOPPED = 0
class clutch.schema.user.response.torrent.accessor.TorrentAccessorObject(**data)

Bases: BaseModel

Parameters:

data (Any)

activity_date: int | None
added_date: int | None
availability: list[int] | None
bandwidth_priority: int | None
comment: str | None
corrupt_ever: int | None
creator: str | None
date_created: int | None
desired_available: int | None
done_date: int | None
download_dir: str | None
download_limit: int | None
download_limited: bool | None
downloaded_ever: int | None
edit_date: int | None
error: int | None
error_string: str | None
eta: int | None
eta_idle: int | None
file_count: int | None
file_stats: Optional[Sequence[FileStats]]
files: Optional[Sequence[File]]
group: str | None
hash_string: str | None
have_unchecked: int | None
have_valid: int | None
honors_session_limits: bool | None
id: int | None
is_finished: bool | None
is_private: bool | None
is_stalled: bool | None
labels: Optional[Sequence[str]]
left_until_done: int | None
manual_announce_time: int | None
max_connected_peers: int | None
metadata_percent_complete: float | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str | None
peer_limit: int | None
peers: Optional[Sequence[Peer]]
peers_connected: int | None
peers_from: PeersFrom | None
peers_getting_from_us: int | None
peers_sending_to_us: int | None
percent_complete: float | None
percent_done: float | None
piece_count: int | None
piece_size: int | None
pieces: str | None
primary_mime_type: str | None
priorities: Optional[Sequence[int]]
queue_position: int | None
rate_download: int | None
rate_upload: int | None
recheck_progress: float | None
seconds_downloading: int | None
seconds_seeding: int | None
seed_idle_limit: int | None
seed_idle_mode: int | None
seed_ratio_limit: float | None
seed_ratio_mode: int | None
sequential_download: bool | None
size_when_done: int | None
start_date: int | None
status: Status | None
torrent_file: str | None
total_size: int | None
tracker_list: str | None
tracker_stats: Optional[Sequence[TrackerStat]]
trackers: Optional[Sequence[Tracker]]
upload_limit: int | None
upload_limited: bool | None
upload_ratio: float | None
uploaded_ever: int | None
wanted: Optional[Sequence[bool]]
webseeds: Optional[Sequence[str]]
webseeds_sending_to_us: int | None
class clutch.schema.user.response.torrent.accessor.TorrentAccessorResponse(**data)

Bases: BaseModel

Parameters:

data (Any)

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

removed: Optional[Sequence[int]]
torrents: Union[Sequence[TorrentAccessorObject], Sequence[Union[Sequence, Sequence[Literal['activity_date', 'added_date', 'availability', 'bandwidth_priority', 'comment', 'corrupt_ever', 'creator', 'date_created', 'desired_available', 'done_date', 'download_dir', 'downloaded_ever', 'download_limit', 'download_limited', 'edit_date', 'error', 'error_string', 'eta', 'eta_idle', 'file_count', 'files', 'file_stats', 'group', 'hash_string', 'have_unchecked', 'have_valid', 'honors_session_limits', 'id', 'is_finished', 'is_private', 'is_stalled', 'labels', 'left_until_done', 'magnet_link', 'manual_announce_time', 'max_connected_peers', 'metadata_percent_complete', 'name', 'peer_limit', 'peers', 'peers_connected', 'peers_from', 'peers_getting_from_us', 'peers_sending_to_us', 'percent_complete', 'percent_done', 'pieces', 'piece_count', 'piece_size', 'priorities', 'primary_mime_type', 'queue_position', 'rate_download', 'rate_upload', 'recheck_progress', 'seconds_downloading', 'seconds_seeding', 'seed_idle_limit', 'seed_idle_mode', 'seed_ratio_limit', 'seed_ratio_mode', 'sequential_download', 'size_when_done', 'start_date', 'status', 'trackers', 'tracker_list', 'tracker_stats', 'total_size', 'torrent_file', 'uploaded_ever', 'upload_limit', 'upload_limited', 'upload_ratio', 'wanted', 'webseeds', 'webseeds_sending_to_us']]]], None]
class clutch.schema.user.response.torrent.accessor.Tracker(**data)

Bases: BaseModel

Parameters:

data (Any)

announce: str
id: int
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

scrape: str
sitename: str
tier: int
class clutch.schema.user.response.torrent.accessor.TrackerStat(**data)

Bases: BaseModel

Parameters:

data (Any)

announce: str
announce_state: int
download_count: int
has_announced: bool
has_scraped: bool
host: str
id: int
is_backup: bool
last_announce_peer_count: int
last_announce_result: str
last_announce_start_time: int
last_announce_succeeded: bool
last_announce_time: int
last_announce_timed_out: bool
last_scrape_result: str
last_scrape_start_time: int
last_scrape_succeeded: bool
last_scrape_time: int
last_scrape_timed_out: bool
leecher_count: int
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

next_announce_time: int
next_scrape_time: int
scrape: str
scrape_state: int
seeder_count: int
sitename: str
tier: int

clutch.schema.user.response.torrent.add module

class clutch.schema.user.response.torrent.add.Torrent(**data)

Bases: BaseModel

Parameters:

data (Any)

hash_string: str
id: int
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str
class clutch.schema.user.response.torrent.add.TorrentAdd(**data)

Bases: BaseModel

Parameters:

data (Any)

check_exclusive_fields()
Return type:

Self

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

torrent_added: Torrent | None
torrent_duplicate: Torrent | None

clutch.schema.user.response.torrent.rename module

class clutch.schema.user.response.torrent.rename.TorrentRename(**data)

Bases: BaseModel

Parameters:

data (Any)

id: int
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str
path: str

Module contents