mirror of
https://github.com/jo1gi/grawlix.git
synced 2026-03-27 13:49:58 -06:00
feat: migrate to bbpb and platformdirs, add dependency version constraints
- Migrate from blackboxprotobuf to bbpb (new PyPI package name)
- Update pyproject.toml and shell.nix dependencies
- Import name remains 'blackboxprotobuf' (no code changes)
- Migrate from appdirs to platformdirs
- Replace deprecated appdirs with actively maintained platformdirs
- Update grawlix/config.py to use platformdirs.user_config_dir
- Update dependency declarations in pyproject.toml and shell.nix
- Add minimum version constraints for all dependencies
- Set requires-python = ">=3.9" (required by httpx and importlib.resources.files())
- Add Python version classifiers (3.9-3.13)
- Specify minimum versions: beautifulsoup4>=4.9.0, bbpb>=1.0.0,
EbookLib>=0.17, httpx>=0.23.0, importlib-resources>=5.0,
lxml>=4.6.0, platformdirs>=3.0.0, pycryptodome>=3.10.0, rich>=10.0.0
- Make tomli conditional: only required for Python < 3.11
- Update shell.nix with correct SHA256 hash for bbpb 1.4.2
These changes ensure all dependencies meet minimum version requirements
for Python 3.9+ compatibility and replace deprecated packages with
actively maintained alternatives.
This commit is contained in:
parent
4efb963168
commit
08af04ab32
@ -1,7 +1,7 @@
|
||||
from dataclasses import dataclass
|
||||
from typing import Optional
|
||||
import tomli
|
||||
import appdirs
|
||||
from platformdirs import user_config_dir
|
||||
import os
|
||||
|
||||
|
||||
@ -26,7 +26,7 @@ def load_config() -> Config:
|
||||
|
||||
:returns: Config object
|
||||
"""
|
||||
config_dir = appdirs.user_config_dir("grawlix", "jo1gi")
|
||||
config_dir = user_config_dir("grawlix", "jo1gi")
|
||||
config_file = os.path.join(config_dir, "grawlix.toml")
|
||||
if os.path.exists(config_file):
|
||||
try:
|
||||
|
||||
@ -6,21 +6,27 @@ authors = [
|
||||
description = "CLI tool for downloading ebooks"
|
||||
readme = "README.md"
|
||||
keywords = ["ebook", "cli", "downloader"]
|
||||
requires-python = ">=3.9"
|
||||
classifiers = [
|
||||
"Programming Language :: Python :: 3",
|
||||
"Programming Language :: Python :: 3.9",
|
||||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Programming Language :: Python :: 3.13",
|
||||
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
|
||||
]
|
||||
dependencies = [
|
||||
"appdirs",
|
||||
"beautifulsoup4",
|
||||
"blackboxprotobuf",
|
||||
"EbookLib",
|
||||
"httpx",
|
||||
"importlib-resources",
|
||||
"lxml",
|
||||
"pycryptodome",
|
||||
"rich",
|
||||
"tomli",
|
||||
"beautifulsoup4>=4.9.0",
|
||||
"bbpb>=1.0.0",
|
||||
"EbookLib>=0.17",
|
||||
"httpx>=0.23.0",
|
||||
"importlib-resources>=5.0",
|
||||
"lxml>=4.6.0",
|
||||
"platformdirs>=3.0.0",
|
||||
"pycryptodome>=3.10.0",
|
||||
"rich>=10.0.0",
|
||||
"tomli>=1.0.0; python_version<'3.11'",
|
||||
]
|
||||
dynamic = ["version"]
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user