Import functions explicitly

This commit is contained in:
stephenmk 2023-04-23 12:33:42 -05:00
parent e9cbd8fe4e
commit 298b25ed9e
No known key found for this signature in database
GPG key ID: B6DA730DB06235F1
6 changed files with 21 additions and 21 deletions

View file

@ -7,7 +7,7 @@ from pathlib import Path
from platformdirs import user_config_dir from platformdirs import user_config_dir
def config(): def load_config():
config_dir = user_config_dir("jitenbot") config_dir = user_config_dir("jitenbot")
if not Path(config_dir).is_dir(): if not Path(config_dir).is_dir():
os.makedirs(config_dir) os.makedirs(config_dir)
@ -16,25 +16,25 @@ def config():
with open(config_file, "r") as f: with open(config_file, "r") as f:
config = json.load(f) config = json.load(f)
else: else:
config = __default_config() config = __load_default_config()
with open(config_file, "w") as f: with open(config_file, "w") as f:
json.dump(config, f, indent=4) json.dump(config, f, indent=4)
return config return config
def yomichan_inflection_categories(): def load_yomichan_inflection_categories():
file_name = "yomichan_inflection_categories.json" file_name = "yomichan_inflection_categories.json"
data = __load_json(file_name) data = __load_json(file_name)
return data return data
def yomichan_metadata(): def load_yomichan_metadata():
file_name = "yomichan_metadata.json" file_name = "yomichan_metadata.json"
data = __load_json(file_name) data = __load_json(file_name)
return data return data
def variant_kanji(): def load_variant_kanji():
def loader(data, row): def loader(data, row):
data[row[0]] = row[1] data[row[0]] = row[1]
file_name = "variant_kanji.csv" file_name = "variant_kanji.csv"
@ -43,7 +43,7 @@ def variant_kanji():
return data return data
def __default_config(): def __load_default_config():
file_name = "default_config.json" file_name = "default_config.json"
data = __load_json(file_name) data = __load_json(file_name)
return data return data

View file

@ -2,7 +2,7 @@ import re
from datetime import datetime, date from datetime import datetime, date
from bs4 import BeautifulSoup from bs4 import BeautifulSoup
import bot.data as Data from bot.data import load_variant_kanji
import bot.expressions as Expressions import bot.expressions as Expressions
@ -11,12 +11,12 @@ class JitenonEntry:
def __init__(self, entry_id): def __init__(self, entry_id):
if self._VARIANT_KANJI is None: if self._VARIANT_KANJI is None:
self._VARIANT_KANJI = Data.variant_kanji() self._VARIANT_KANJI = load_variant_kanji()
self.entry_id = entry_id self.entry_id = entry_id
self.markup = "" self.markup = ""
self.modified_date = date(1970, 1, 1) self.modified_date = date(1970, 1, 1)
self.attribution = "" self.attribution = ""
for column in self.COLUMNS.values(): for column in self._COLUMNS.values():
setattr(self, column[0], column[1]) setattr(self, column[0], column[1])
self._headwords = None self._headwords = None
@ -74,7 +74,7 @@ class JitenonEntry:
self.modified_date = date self.modified_date = date
def __set_column(self, colname, colval): def __set_column(self, colname, colval):
attr_name = self.COLUMNS[colname][0] attr_name = self._COLUMNS[colname][0]
attr_value = getattr(self, attr_name) attr_value = getattr(self, attr_name)
if isinstance(attr_value, str): if isinstance(attr_value, str):
setattr(self, attr_name, colval) setattr(self, attr_name, colval)
@ -130,7 +130,7 @@ class JitenonEntry:
def __str__(self): def __str__(self):
colvals = [str(self.entry_id)] colvals = [str(self.entry_id)]
for attr in self.COLUMNS.values(): for attr in self._COLUMNS.values():
attr_val = getattr(self, attr[0]) attr_val = getattr(self, attr[0])
if isinstance(attr_val, str): if isinstance(attr_val, str):
colvals.append(attr_val) colvals.append(attr_val)
@ -140,7 +140,7 @@ class JitenonEntry:
class JitenonYojiEntry(JitenonEntry): class JitenonYojiEntry(JitenonEntry):
COLUMNS = { _COLUMNS = {
"四字熟語": ["expression", ""], "四字熟語": ["expression", ""],
"読み方": ["yomikata", ""], "読み方": ["yomikata", ""],
"意味": ["imi", ""], "意味": ["imi", ""],
@ -160,7 +160,7 @@ class JitenonYojiEntry(JitenonEntry):
class JitenonKotowazaEntry(JitenonEntry): class JitenonKotowazaEntry(JitenonEntry):
COLUMNS = { _COLUMNS = {
"言葉": ["expression", ""], "言葉": ["expression", ""],
"読み方": ["yomikata", ""], "読み方": ["yomikata", ""],
"意味": ["imi", ""], "意味": ["imi", ""],

View file

@ -11,7 +11,7 @@ from urllib.parse import urlparse
from requests.adapters import HTTPAdapter from requests.adapters import HTTPAdapter
from requests.packages.urllib3.util.retry import Retry from requests.packages.urllib3.util.retry import Retry
import bot.data as Data from bot.data import load_config
class Scraper(): class Scraper():
@ -19,7 +19,7 @@ class Scraper():
def __init__(self): def __init__(self):
if self.__CONFIG is None: if self.__CONFIG is None:
self.__CONFIG = Data.config() self.__CONFIG = load_config()
pattern = r"^(?:([A-Za-z0-9.\-]+)\.)?" + self.domain + r"$" pattern = r"^(?:([A-Za-z0-9.\-]+)\.)?" + self.domain + r"$"
self.netloc_re = re.compile(pattern) self.netloc_re = re.compile(pattern)
self.__set_session() self.__set_session()

View file

@ -5,7 +5,7 @@ from pathlib import Path
from datetime import datetime from datetime import datetime
from platformdirs import user_documents_dir, user_cache_dir from platformdirs import user_documents_dir, user_cache_dir
from bot.data import yomichan_metadata from bot.data import load_yomichan_metadata
from bot.yomichan.terms.jitenon import JitenonYojiTerminator from bot.yomichan.terms.jitenon import JitenonYojiTerminator
from bot.yomichan.terms.jitenon import JitenonKotowazaTerminator from bot.yomichan.terms.jitenon import JitenonKotowazaTerminator
@ -17,7 +17,7 @@ class Exporter:
self._terms_per_file = 2000 self._terms_per_file = 2000
def export(self, entries): def export(self, entries):
meta = yomichan_metadata() meta = load_yomichan_metadata()
index = meta[self._name]["index"] index = meta[self._name]["index"]
index["revision"] = self._get_revision(entries) index["revision"] = self._get_revision(entries)
index["attribution"] = self._get_attribution(entries) index["attribution"] = self._get_attribution(entries)

View file

@ -1,7 +1,7 @@
from sudachipy import tokenizer from sudachipy import tokenizer
from sudachipy import dictionary from sudachipy import dictionary
import bot.data as Data from bot.data import load_yomichan_inflection_categories
__U_KANA_LIST = ["", "", "", "", "", "", "", __U_KANA_LIST = ["", "", "", "", "", "", "",
"", "", "", "", "", "", ""] "", "", "", "", "", "", ""]
@ -16,7 +16,7 @@ def sudachi_rules(expression):
if __SUDACHI_DICTIONARY is None: if __SUDACHI_DICTIONARY is None:
__SUDACHI_DICTIONARY = dictionary.Dictionary(dict="full").create() __SUDACHI_DICTIONARY = dictionary.Dictionary(dict="full").create()
if __SUDACHI_INFLECTION_TYPES is None: if __SUDACHI_INFLECTION_TYPES is None:
categories = Data.yomichan_inflection_categories() categories = load_yomichan_inflection_categories()
__SUDACHI_INFLECTION_TYPES = categories["sudachi"] __SUDACHI_INFLECTION_TYPES = categories["sudachi"]
splitmode = tokenizer.Tokenizer.SplitMode.A splitmode = tokenizer.Tokenizer.SplitMode.A
tokens = __SUDACHI_DICTIONARY.tokenize(expression, splitmode) tokens = __SUDACHI_DICTIONARY.tokenize(expression, splitmode)

View file

@ -1,4 +1,4 @@
import bot.yomichan.grammar as Grammar from bot.yomichan.grammar import sudachi_rules
from bot.yomichan.terms.terminator import Terminator from bot.yomichan.terms.terminator import Terminator
from bot.yomichan.glossary.jitenon import make_glossary from bot.yomichan.glossary.jitenon import make_glossary
@ -44,7 +44,7 @@ class JitenonKotowazaTerminator(JitenonTerminator):
super().__init__() super().__init__()
def _inflection_rules(self, entry, expression): def _inflection_rules(self, entry, expression):
return Grammar.sudachi_rules(expression) return sudachi_rules(expression)
def _term_tags(self, entry): def _term_tags(self, entry):
return "" return ""