Skip to content

Commit de650b8

Browse files
committed
move Profile to __init__.py
1 parent 853dbf4 commit de650b8

File tree

4 files changed

+51
-45
lines changed

4 files changed

+51
-45
lines changed

qbpm/__init__.py

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,51 @@
1+
from pathlib import Path
2+
from sys import platform
3+
from typing import Optional
4+
5+
from xdg import BaseDirectory
6+
7+
from .utils import error
8+
19
try:
210
from qbpm.version import version as __version__ # type: ignore
311
except ImportError:
412
__version__ = "unknown"
13+
14+
15+
class Profile:
16+
name: str
17+
profile_dir: Path
18+
root: Path
19+
20+
def __init__(self, name: str, profile_dir: Optional[Path]) -> None:
21+
self.name = name
22+
self.profile_dir = profile_dir or Path(
23+
BaseDirectory.save_data_path("qutebrowser-profiles")
24+
)
25+
self.root = self.profile_dir / name
26+
27+
def check(self) -> Optional["Profile"]:
28+
if "/" in self.name:
29+
error("profile name cannot contain slashes")
30+
return None
31+
return self
32+
33+
def exists(self) -> bool:
34+
return self.root.exists() and self.root.is_dir()
35+
36+
def cmdline(self) -> list[str]:
37+
macos_app = "/Applications/qutebrowser.app/Contents/MacOS/qutebrowser"
38+
if platform == "darwin" and Path(macos_app).exists():
39+
qb = macos_app
40+
else:
41+
qb = "qutebrowser"
42+
return [
43+
qb,
44+
"-B",
45+
str(self.root),
46+
"--qt-arg",
47+
"name",
48+
self.name,
49+
"--desktop-file-name",
50+
self.name,
51+
]

qbpm/main.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44

55
import click
66

7-
from . import operations, profiles
8-
from .profiles import Profile
7+
from . import Profile, operations, profiles
98
from .utils import SUPPORTED_MENUS, default_profile_dir, error, user_data_dir
109

1110
CONTEXT_SETTINGS = {"help_option_names": ["-h", "--help"]}
@@ -162,7 +161,7 @@ def icon(profile_dir: Path, profile_name: str) -> None:
162161
profile = Profile(profile_name, profile_dir)
163162
if not profile.exists():
164163
error(f"profile {profile.name} not found at {profile.root}")
165-
exit(1)
164+
sys.exit(1)
166165
profile.root / "config" / "config.py"
167166

168167

qbpm/operations.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@
66

77
from xdg import BaseDirectory
88

9-
from . import profiles
10-
from .profiles import Profile
9+
from . import Profile, profiles
1110
from .utils import AUTO_MENUS, error, installed_menus
1211

1312

qbpm/profiles.py

Lines changed: 1 addition & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import subprocess
22
from functools import partial
33
from pathlib import Path
4-
from sys import platform
54
from tempfile import TemporaryDirectory
65
from typing import Optional
76

@@ -11,48 +10,10 @@
1110
from xdg import BaseDirectory
1211
from xdg.DesktopEntry import DesktopEntry
1312

13+
from . import Profile
1414
from .utils import error, user_config_dir
1515

1616

17-
class Profile:
18-
name: str
19-
profile_dir: Path
20-
root: Path
21-
22-
def __init__(self, name: str, profile_dir: Optional[Path]) -> None:
23-
self.name = name
24-
self.profile_dir = profile_dir or Path(
25-
BaseDirectory.save_data_path("qutebrowser-profiles")
26-
)
27-
self.root = self.profile_dir / name
28-
29-
def check(self) -> Optional["Profile"]:
30-
if "/" in self.name:
31-
error("profile name cannot contain slashes")
32-
return None
33-
return self
34-
35-
def exists(self) -> bool:
36-
return self.root.exists() and self.root.is_dir()
37-
38-
def cmdline(self) -> list[str]:
39-
macos_app = "/Applications/qutebrowser.app/Contents/MacOS/qutebrowser"
40-
if platform == "darwin" and Path(macos_app).exists():
41-
qb = macos_app
42-
else:
43-
qb = "qutebrowser"
44-
return [
45-
qb,
46-
"-B",
47-
str(self.root),
48-
"--qt-arg",
49-
"name",
50-
self.name,
51-
"--desktop-file-name",
52-
self.name,
53-
]
54-
55-
5617
def create_profile(profile: Profile, overwrite: bool = False) -> bool:
5718
if not profile.check():
5819
return False

0 commit comments

Comments
 (0)