Bug fixes and small improvements

Fix :
- paths : true instead of True
- paths : Path has no len convert to str first to get the number of
  characters

Improvements :
- Replace all PosixPath by Path
This commit is contained in:
2026-01-01 17:24:46 +01:00
parent 48179034a7
commit 27924013d9
3 changed files with 16 additions and 15 deletions

View File

@@ -3,7 +3,7 @@
from configparser import UNNAMED_SECTION
from dataclasses import dataclass, field
from pathlib import Path, PosixPath
from pathlib import Path
import ipaddress
import configparser
@@ -13,10 +13,10 @@ class ServerConfig:
Dataclass keeping the config for connecting to the server
"""
user: str
sshargs: list[str] | None = field(default_factory=list)
sshargs: str = ""
hostname: str = ""
ip: str = ""
port: int = 22
port: int | None = 22
def __post_init__(self):
"""
@@ -52,7 +52,7 @@ class OtherConfig:
"""
Dataclass keeping miscellanous configuration options
"""
cache_dir_path: PosixPath = Path("~/.unisync").expanduser()
cache_dir_path: Path = Path("~/.unisync").expanduser()
@dataclass
class Config:
@@ -82,9 +82,9 @@ def load_config(config_path:str) -> Config:
server_config = ServerConfig(
config.get(server_section, "user"),
config.get(server_section, "sshargs", fallback=None),
config.get(server_section, "hostname", fallback=None),
config.get(server_section, "ip", fallback=None),
config.get(server_section, "sshargs", fallback=""),
config.get(server_section, "hostname", fallback=""),
config.get(server_section, "ip", fallback=""),
config.getint(server_section, "port", fallback=None)
)
roots_config = RootsConfig(

View File

@@ -4,12 +4,13 @@
import os.path
import subprocess
import sys
from pathlib import Path, PosixPath
from pathlib import Path
class PathsManager:
def __init__(self, local_dir:PosixPath, cache_dir:PosixPath):
def __init__(self, local_dir:Path, cache_dir:Path):
"""
Creates a PathsManager with the necessary data
Args:
@@ -24,7 +25,7 @@ class PathsManager:
raise ValueError("Invalid cache directory")
self.cache_dir = cache_dir
self.paths_file:PosixPath = self.cache_dir / "paths"
self.paths_file:Path = self.cache_dir / "paths"
if not self.paths_file.is_file():
raise ValueError("The paths file does not exist")
@@ -48,7 +49,7 @@ class PathsManager:
"-p", "-",
self.local_dir
]
nnn_process = subprocess.Popen(command, stdout=subprocess.PIPE)
nnn_process:subprocess.Popen = subprocess.Popen(command, stdout=subprocess.PIPE)
try:
ret_code = nnn_process.wait(timeout=choice_timeout)
except subprocess.TimeoutExpired as e:
@@ -57,18 +58,18 @@ class PathsManager:
if ret_code != 0:
print("File selection failed", file=sys.stderr)
raise subprocess.CalledProcessError("File selection failed")
raise subprocess.CalledProcessError(1, "File selection failed")
paths_list:list[str] = []
while (next_path := nnn_process.stdout.readline()) != b'':
next_path = next_path.decode().strip()
# Make the path relative to the top directory
next_path = next_path[len(self.local_dir):].lstrip("/")
next_path = next_path[len(str(self.local_dir)):].lstrip("/")
paths_list.append(next_path)
return paths_list
def add_files_to_sync(self):
while true:
while True:
try:
paths = self.user_select_files()
break

View File

@@ -182,7 +182,7 @@ class Synchroniser:
- subprocess.CalledProcessError: An error occured with sshfs
"""
# Get the absolute path to the correct .data directory resolving symlinks
path_to_mount:PosixPath = Path(f"{self.local}/../.data").resolve()
path_to_mount:Path = Path(f"{self.local}/../.data").resolve()
if path_to_mount.is_mount():
raise RemoteMountedError
# Check if it is an empty directory