txt2ebook 0.1.127__tar.gz → 0.1.129__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/PKG-INFO +1 -1
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/pyproject.toml +2 -2
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/helpers/__init__.py +9 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/languages/zh_cn.py +0 -2
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/models/book.py +13 -12
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/LICENSE.md +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/README.md +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/__init__.py +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/__main__.py +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/cli.py +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/exceptions.py +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/formats/__init__.py +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/formats/base.py +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/formats/epub.py +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/formats/gmi.py +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/formats/md.py +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/formats/pdf.py +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/formats/templates/__init__.py +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/formats/templates/epub/__init__.py +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/formats/templates/epub/clean.css +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/formats/templates/epub/condense.css +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/formats/templates/epub/noindent.css +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/formats/tex.py +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/formats/txt.py +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/formats/typ.py +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/languages/__init__.py +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/languages/en.py +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/languages/zh_tw.py +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/locales/en/LC_MESSAGES/txt2ebook.mo +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/locales/en/LC_MESSAGES/txt2ebook.po +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/locales/txt2ebook.pot +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/locales/zh-cn/LC_MESSAGES/txt2ebook.mo +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/locales/zh-cn/LC_MESSAGES/txt2ebook.po +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/locales/zh-tw/LC_MESSAGES/txt2ebook.mo +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/locales/zh-tw/LC_MESSAGES/txt2ebook.po +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/models/__init__.py +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/models/chapter.py +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/models/volume.py +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/parser.py +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/subcommands/__init__.py +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/subcommands/env.py +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/subcommands/epub.py +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/subcommands/gmi.py +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/subcommands/massage.py +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/subcommands/md.py +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/subcommands/parse.py +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/subcommands/pdf.py +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/subcommands/tex.py +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/subcommands/typ.py +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/tokenizer.py +0 -0
- {txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/zh_utils.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
[tool.poetry]
|
2
2
|
name = "txt2ebook"
|
3
|
-
version = "0.1.
|
3
|
+
version = "0.1.129"
|
4
4
|
description = "CLI tool to convert txt file to ebook format"
|
5
5
|
authors = ["Kian-Meng Ang <kianmeng@cpan.org>"]
|
6
6
|
license = "AGPL-3.0-or-later"
|
@@ -45,7 +45,7 @@ lxml = "^5.2.2"
|
|
45
45
|
jieba = "^0.42.1"
|
46
46
|
|
47
47
|
[tool.poetry.scripts]
|
48
|
-
txt2ebook = 'txt2ebook.cli
|
48
|
+
txt2ebook = 'txt2ebook.cli:main'
|
49
49
|
tte = 'txt2ebook.cli:main'
|
50
50
|
|
51
51
|
[tool.poetry.group.dev.dependencies]
|
@@ -32,5 +32,14 @@ def lower_underscore(string: str) -> str:
|
|
32
32
|
|
33
33
|
Returns:
|
34
34
|
str: Formatted string.
|
35
|
+
|
36
|
+
Examples:
|
37
|
+
|
38
|
+
>>> lower_underscore("Hello World")
|
39
|
+
'hello_world'
|
40
|
+
>>> lower_underscore("Hello World")
|
41
|
+
'hello_world'
|
42
|
+
>>> lower_underscore("Hello\tWorld")
|
43
|
+
'hello_world'
|
35
44
|
"""
|
36
45
|
return re.sub(r'\s+', '_', string.lower().strip())
|
@@ -33,15 +33,15 @@ class Book:
|
|
33
33
|
"""A book class model."""
|
34
34
|
|
35
35
|
title: str = field(default="")
|
36
|
-
authors: List[str] = field(default_factory=
|
37
|
-
translators: List[str] = field(default_factory=
|
38
|
-
tags: List[str] = field(default_factory=
|
39
|
-
index: List[str] = field(default_factory=
|
36
|
+
authors: List[str] = field(default_factory=list)
|
37
|
+
translators: List[str] = field(default_factory=list)
|
38
|
+
tags: List[str] = field(default_factory=list)
|
39
|
+
index: List[str] = field(default_factory=list)
|
40
40
|
language: str = field(default="")
|
41
41
|
cover: str = field(default="", repr=False)
|
42
42
|
raw_content: str = field(default="", repr=False)
|
43
43
|
toc: List[Union[Volume, Chapter]] = field(
|
44
|
-
default_factory=
|
44
|
+
default_factory=list, repr=False
|
45
45
|
)
|
46
46
|
|
47
47
|
def stats(self) -> Counter:
|
@@ -59,13 +59,14 @@ class Book:
|
|
59
59
|
) -> str:
|
60
60
|
"""Generate the filename format based on the available selection."""
|
61
61
|
authors = ", ".join(self.authors)
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
62
|
+
format_options = {
|
63
|
+
1: f"{self.title}_{authors}",
|
64
|
+
2: f"{authors}_{self.title}"
|
65
|
+
}
|
66
|
+
try:
|
67
|
+
return format_options[filename_format]
|
68
|
+
except KeyError:
|
69
|
+
raise AttributeError(f"Invalid filename format: '{filename_format}'!")
|
69
70
|
|
70
71
|
def debug(self, verbosity: int = 1) -> None:
|
71
72
|
"""Dump debug log of sections in self.toc."""
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/locales/zh-cn/LC_MESSAGES/txt2ebook.mo
RENAMED
File without changes
|
{txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/locales/zh-cn/LC_MESSAGES/txt2ebook.po
RENAMED
File without changes
|
{txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/locales/zh-tw/LC_MESSAGES/txt2ebook.mo
RENAMED
File without changes
|
{txt2ebook-0.1.127 → txt2ebook-0.1.129}/src/txt2ebook/locales/zh-tw/LC_MESSAGES/txt2ebook.po
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|