fix root cause: use Zotero-valid character set in key generators

The _zotero_key() functions in add_carrier_to_zotero.py,
add_zipcode_to_zotero.py, and bib/sync.py used ascii_uppercase +
digits which includes 0, 1, and O — characters outside Zotero's
allowed set [23456789ABCDEFGHIJKLMNPQRSTUVWXYZ].
This commit is contained in:
kert
2026-03-21 23:34:04 -04:00
parent 79794ff47a
commit b60d4800d0
3 changed files with 6 additions and 6 deletions

View File

@@ -52,8 +52,8 @@ TAG_YEARS = {2010: 36, 2017: 20}
def _zotero_key() -> str:
"""Generate a random 8-char Zotero key (uppercase + digits)."""
chars = string.ascii_uppercase + string.digits
"""Generate a random 8-char Zotero key using the allowed character set."""
chars = "23456789ABCDEFGHIJKLMNPQRSTUVWXYZ"
return "".join(random.choices(chars, k=8))

View File

@@ -91,7 +91,8 @@ TAG_MODULE_PFS = 8
def _zotero_key() -> str:
chars = string.ascii_uppercase + string.digits
"""Generate a random 8-char Zotero key using the allowed character set."""
chars = "23456789ABCDEFGHIJKLMNPQRSTUVWXYZ"
return "".join(random.choices(chars, k=8))

View File

@@ -22,7 +22,6 @@ from __future__ import annotations
import json
import random
import sqlite3
import string
from datetime import datetime, timezone
from bib.item import Item
@@ -67,8 +66,8 @@ _FIELD_IDS = {
def _zotero_key() -> str:
"""Generate an 8-char Zotero-style key."""
chars = string.ascii_uppercase + string.digits
"""Generate an 8-char Zotero key using the allowed character set."""
chars = "23456789ABCDEFGHIJKLMNPQRSTUVWXYZ"
return "".join(random.choices(chars, k=8)) # noqa: S311