Compare commits

..

No commits in common. "main" and "dev" have entirely different histories.
main ... dev

14 changed files with 26 additions and 79 deletions

View file

@ -5,8 +5,8 @@ __version__ = "0.0.1"
from os import linesep
class Object:
"""Root object."""
class Class:
"""Root class."""
def __repr__(self) -> str:
"""Return machine-readable state.

View file

@ -1,7 +1,7 @@
"""Handle errors."""
from rwx import Object
from rwx import Class
class Error(Object, Exception):
class Error(Class, Exception):
"""Parent class for all errors."""

View file

@ -139,9 +139,11 @@ def wipe(path: Path) -> None:
:type path: Path
"""
try:
path.unlink(missing_ok=True)
except IsADirectoryError:
shutil.rmtree(path)
except NotADirectoryError:
path.unlink(missing_ok=True)
except FileNotFoundError:
pass
def write(file_path: Path, text: str, charset: str = CHARSET) -> None:

View file

@ -3,10 +3,10 @@
from abc import ABC, abstractmethod
from pathlib import Path
from rwx import Object
from rwx import Class
class OS(Object, ABC):
class OS(Class, ABC):
"""Operating System."""
def __init__(self, path: Path) -> None:

View file

@ -2,11 +2,11 @@
from abc import ABC, abstractmethod
from rwx import Object
from rwx import Class
from rwx.ps import Command
class PM(Object, ABC):
class PM(Class, ABC):
"""Package Manager."""
def __init__(self) -> None:

View file

@ -2,10 +2,10 @@
from pathlib import Path
from rwx import Object
from rwx import Class
class Project(Object):
class Project(Class):
"""Parent class for any type of project."""
def __init__(self, file: Path) -> None:

View file

@ -2,10 +2,10 @@
import subprocess
from rwx import Object, txt
from rwx import Class, txt
class Command(Object):
class Command(Class):
"""Command to run."""
def __init__(self, *arguments: str | tuple[str, ...]) -> None:

View file

@ -1,31 +0,0 @@
"""FreeTube authors."""
from typing import TYPE_CHECKING
from rwx import Object
if TYPE_CHECKING:
from .playlists import Playlist
class Author(Object):
"""FreeTube author."""
def __init__(self, uid: str, name: str) -> None:
"""Set uid & name.
:param uid: identifier
:type uid: str
:param name: label
:type name: str
"""
self.uid = uid
self.name = name
self.playlist: Playlist
def to_db(self) -> str:
"""Return non-breakable name.
:rtype: str
"""
return self.name.replace(" ", chr(0xA0))

View file

@ -1,9 +1,9 @@
"""FreeTube channels."""
from rwx import Object
from rwx import Class
class Channel(Object):
class Channel(Class):
"""FreeTube channel."""
def __init__(self, uid: str, name: str) -> None:

View file

@ -1,24 +0,0 @@
"""FreeTube languages."""
from typing import TYPE_CHECKING
from rwx import Object
if TYPE_CHECKING:
from .playlists import Playlist
class Language(Object):
"""FreeTube language."""
def __init__(self, uid: str, name: str) -> None:
"""Set uid & name.
:param uid: identifier
:type uid: str
:param name: label
:type name: str
"""
self.uid = uid
self.name = name
self.playlist: Playlist

View file

@ -1,11 +1,11 @@
"""FreeTube playlists."""
from rwx import Object
from rwx import Class
from .videos import Video
class Playlist(Object):
class Playlist(Class):
"""FreeTube playlist."""
def __init__(self, uid: str, name: str) -> None:

View file

@ -1,11 +1,11 @@
"""FreeTube profiles."""
from rwx import Object
from rwx import Class
from .channels import Channel
class Profile(Object):
class Profile(Class):
"""FreeTube profile."""
def __init__(self, uid: str, name: str) -> None:

View file

@ -1,11 +1,11 @@
"""FreeTube settings."""
from rwx import Object
from rwx import Class
from .db import to_db
class Setting(Object):
class Setting(Class):
"""FreeTube setting."""
def __init__(self, uid: str, value: object) -> None:

View file

@ -1,9 +1,9 @@
"""FreeTube videos."""
from rwx import Object
from rwx import Class
class Video(Object):
class Video(Class):
"""FreeTube video."""
def __init__(self, uid: str, name: str) -> None: