Import functions explicitly
This commit is contained in:
parent
e9cbd8fe4e
commit
298b25ed9e
12
bot/data.py
12
bot/data.py
|
@ -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
|
||||||
|
|
|
@ -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", ""],
|
||||||
|
|
|
@ -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()
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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 ""
|
||||||
|
|
Loading…
Reference in a new issue