Remove vobject dependency from project and workflow

Eliminated the use of the vobject library from the codebase, dependency groups, and GitHub Actions workflow. vobject is no longer a dependency for vCards enrichment.
This commit is contained in:
KnugiHK
2025-12-14 23:47:24 +08:00
parent ddd0ac3143
commit bb10203b44
3 changed files with 7 additions and 23 deletions

View File

@@ -20,7 +20,7 @@ jobs:
- name: Install dependencies - name: Install dependencies
run: | run: |
python -m pip install --upgrade pip python -m pip install --upgrade pip
pip install pycryptodome vobject javaobj-py3 ordered-set zstandard nuitka==2.6.7 pip install pycryptodome javaobj-py3 ordered-set zstandard nuitka==2.6.7
pip install . pip install .
- name: Build binary with Nuitka - name: Build binary with Nuitka
run: | run: |
@@ -45,7 +45,7 @@ jobs:
- name: Install dependencies - name: Install dependencies
run: | run: |
python -m pip install --upgrade pip python -m pip install --upgrade pip
pip install pycryptodome vobject javaobj-py3 ordered-set zstandard nuitka==2.6.7 pip install pycryptodome javaobj-py3 ordered-set zstandard nuitka==2.6.7
pip install . pip install .
- name: Build binary with Nuitka - name: Build binary with Nuitka
run: | run: |
@@ -69,7 +69,7 @@ jobs:
- name: Install dependencies - name: Install dependencies
run: | run: |
python -m pip install --upgrade pip python -m pip install --upgrade pip
pip install pycryptodome vobject javaobj-py3 ordered-set zstandard nuitka==2.6.7 pip install pycryptodome javaobj-py3 ordered-set zstandard nuitka==2.6.7
pip install . pip install .
- name: Build binary with Nuitka - name: Build binary with Nuitka
run: | run: |

View File

@@ -20,16 +20,8 @@ from argparse import ArgumentParser, SUPPRESS
from datetime import datetime from datetime import datetime
from getpass import getpass from getpass import getpass
from sys import exit from sys import exit
from typing import Tuple, Optional, List, Dict, Any, Union from typing import Optional, List, Dict
from Whatsapp_Chat_Exporter.vcards_contacts import ContactsFromVCards
# Try to import vobject for contacts processing
try:
import vobject
except ModuleNotFoundError:
vcards_deps_installed = False
else:
from Whatsapp_Chat_Exporter.vcards_contacts import ContactsFromVCards
vcards_deps_installed = True
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@@ -432,13 +424,6 @@ def process_single_date_filter(parser: ArgumentParser, args) -> None:
def setup_contact_store(args) -> Optional['ContactsFromVCards']: def setup_contact_store(args) -> Optional['ContactsFromVCards']:
"""Set up and return a contact store if needed.""" """Set up and return a contact store if needed."""
if args.enrich_from_vcards is not None: if args.enrich_from_vcards is not None:
if not vcards_deps_installed:
logger.error(
"You don't have the dependency to enrich contacts with vCard.\n"
"Read more on how to deal with enriching contacts:\n"
"https://github.com/KnugiHK/Whatsapp-Chat-Exporter/blob/main/README.md#usage\n"
)
exit(1)
contact_store = ContactsFromVCards() contact_store = ContactsFromVCards()
contact_store.load_vcf_file( contact_store.load_vcf_file(
args.enrich_from_vcards, args.default_country_code) args.enrich_from_vcards, args.default_country_code)

View File

@@ -44,10 +44,9 @@ android_backup = ["pycryptodome", "javaobj-py3"]
crypt12 = ["pycryptodome"] crypt12 = ["pycryptodome"]
crypt14 = ["pycryptodome"] crypt14 = ["pycryptodome"]
crypt15 = ["pycryptodome", "javaobj-py3"] crypt15 = ["pycryptodome", "javaobj-py3"]
all = ["pycryptodome", "javaobj-py3", "vobject"] all = ["pycryptodome", "javaobj-py3"]
everything = ["pycryptodome", "javaobj-py3", "vobject"] everything = ["pycryptodome", "javaobj-py3"]
backup = ["pycryptodome", "javaobj-py3"] backup = ["pycryptodome", "javaobj-py3"]
vcards = ["vobject", "pycryptodome", "javaobj-py3"]
[project.scripts] [project.scripts]
wtsexporter = "Whatsapp_Chat_Exporter.__main__:main" wtsexporter = "Whatsapp_Chat_Exporter.__main__:main"