txt2ebook 0.1.128__py3-none-any.whl → 0.1.130__py3-none-any.whl
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/__init__.py +19 -11
 - txt2ebook/exceptions.py +1 -1
 - txt2ebook/languages/zh_cn.py +0 -2
 - txt2ebook/models/book.py +13 -12
 - {txt2ebook-0.1.128.dist-info → txt2ebook-0.1.130.dist-info}/METADATA +1 -1
 - {txt2ebook-0.1.128.dist-info → txt2ebook-0.1.130.dist-info}/RECORD +9 -9
 - {txt2ebook-0.1.128.dist-info → txt2ebook-0.1.130.dist-info}/LICENSE.md +0 -0
 - {txt2ebook-0.1.128.dist-info → txt2ebook-0.1.130.dist-info}/WHEEL +0 -0
 - {txt2ebook-0.1.128.dist-info → txt2ebook-0.1.130.dist-info}/entry_points.txt +0 -0
 
    
        txt2ebook/__init__.py
    CHANGED
    
    | 
         @@ -28,34 +28,34 @@ __version__ = "0.1.126" 
     | 
|
| 
       28 
28 
     | 
    
         | 
| 
       29 
29 
     | 
    
         | 
| 
       30 
30 
     | 
    
         
             
            def setup_logger(config: argparse.Namespace) -> None:
         
     | 
| 
       31 
     | 
    
         
            -
                """ 
     | 
| 
      
 31 
     | 
    
         
            +
                """Configures logging based on command-line arguments.
         
     | 
| 
       32 
32 
     | 
    
         | 
| 
       33 
33 
     | 
    
         
             
                Args:
         
     | 
| 
       34 
     | 
    
         
            -
                    config 
     | 
| 
      
 34 
     | 
    
         
            +
                    config: Namespace containing parsed arguments.
         
     | 
| 
       35 
35 
     | 
    
         
             
                """
         
     | 
| 
       36 
36 
     | 
    
         
             
                if config.quiet:
         
     | 
| 
       37 
37 
     | 
    
         
             
                    logging.disable(logging.NOTSET)
         
     | 
| 
       38 
38 
     | 
    
         
             
                    return
         
     | 
| 
       39 
39 
     | 
    
         | 
| 
       40 
     | 
    
         
            -
                 
     | 
| 
       41 
     | 
    
         
            -
                 
     | 
| 
      
 40 
     | 
    
         
            +
                log_level = logging.DEBUG if config.debug else logging.INFO
         
     | 
| 
      
 41 
     | 
    
         
            +
                log_format = (
         
     | 
| 
       42 
42 
     | 
    
         
             
                    "%(levelname)5s: %(message)s" if config.debug else "%(message)s"
         
     | 
| 
       43 
43 
     | 
    
         
             
                )
         
     | 
| 
       44 
44 
     | 
    
         | 
| 
       45 
45 
     | 
    
         
             
                logging.basicConfig(
         
     | 
| 
       46 
     | 
    
         
            -
                    level= 
     | 
| 
       47 
     | 
    
         
            -
                    format= 
     | 
| 
      
 46 
     | 
    
         
            +
                    level=log_level,
         
     | 
| 
      
 47 
     | 
    
         
            +
                    format=log_format,
         
     | 
| 
       48 
48 
     | 
    
         
             
                    stream=sys.stdout,
         
     | 
| 
       49 
49 
     | 
    
         
             
                    datefmt="%Y-%m-%d %H:%M:%S",
         
     | 
| 
       50 
50 
     | 
    
         
             
                )
         
     | 
| 
       51 
51 
     | 
    
         | 
| 
       52 
52 
     | 
    
         | 
| 
       53 
     | 
    
         
            -
            def log_or_raise_on_warning( 
     | 
| 
       54 
     | 
    
         
            -
                """ 
     | 
| 
      
 53 
     | 
    
         
            +
            def log_or_raise_on_warning(message: str, raise_on_warning: bool = False) -> None:
         
     | 
| 
      
 54 
     | 
    
         
            +
                """Logs a warning message or raises an exception.
         
     | 
| 
       55 
55 
     | 
    
         | 
| 
       56 
56 
     | 
    
         
             
                Args:
         
     | 
| 
       57 
     | 
    
         
            -
                     
     | 
| 
       58 
     | 
    
         
            -
                    raise_on_warning 
     | 
| 
      
 57 
     | 
    
         
            +
                    message: The warning message to log or raise.
         
     | 
| 
      
 58 
     | 
    
         
            +
                    raise_on_warning: If True, raises a RuntimeError instead of logging.
         
     | 
| 
       59 
59 
     | 
    
         
             
                """
         
     | 
| 
       60 
60 
     | 
    
         
             
                if raise_on_warning:
         
     | 
| 
       61 
61 
     | 
    
         
             
                    raise RuntimeError(msg)
         
     | 
| 
         @@ -75,7 +75,15 @@ def print_env() -> None: 
     | 
|
| 
       75 
75 
     | 
    
         | 
| 
       76 
76 
     | 
    
         | 
| 
       77 
77 
     | 
    
         
             
            def detect_and_expect_language(content: str, config_language: str) -> str:
         
     | 
| 
       78 
     | 
    
         
            -
                """ 
     | 
| 
      
 78 
     | 
    
         
            +
                """Detects the content language and compares it to the configured language.
         
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
      
 80 
     | 
    
         
            +
                Args:
         
     | 
| 
      
 81 
     | 
    
         
            +
                    content: The text content to analyze.
         
     | 
| 
      
 82 
     | 
    
         
            +
                    config_language: The language specified in the configuration.
         
     | 
| 
      
 83 
     | 
    
         
            +
             
     | 
| 
      
 84 
     | 
    
         
            +
                Returns:
         
     | 
| 
      
 85 
     | 
    
         
            +
                    The configured language, or the detected language if none is configured.
         
     | 
| 
      
 86 
     | 
    
         
            +
            """
         
     | 
| 
       79 
87 
     | 
    
         
             
                detect_language = langdetect.detect(content)
         
     | 
| 
       80 
88 
     | 
    
         
             
                config_language = config_language or detect_language
         
     | 
| 
       81 
89 
     | 
    
         
             
                logger.info("Config language: %s", config_language)
         
     | 
    
        txt2ebook/exceptions.py
    CHANGED
    
    
    
        txt2ebook/languages/zh_cn.py
    CHANGED
    
    
    
        txt2ebook/models/book.py
    CHANGED
    
    | 
         @@ -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."""
         
     | 
| 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            txt2ebook/__init__.py,sha256= 
     | 
| 
      
 1 
     | 
    
         
            +
            txt2ebook/__init__.py,sha256=fGY85W8w8DeOlkucIpQCcbMx2iaKvnN8jEw1yXssqDs,2958
         
     | 
| 
       2 
2 
     | 
    
         
             
            txt2ebook/__main__.py,sha256=L29rlfPSx9XMnVaHBYP2dyYgDmutJvONR3yUejjYwRY,855
         
     | 
| 
       3 
3 
     | 
    
         
             
            txt2ebook/cli.py,sha256=D0jseJLlFDjLfX-yiGCC0e98a5IJ1IbRFx_mVGyYIxc,4241
         
     | 
| 
       4 
     | 
    
         
            -
            txt2ebook/exceptions.py,sha256= 
     | 
| 
      
 4 
     | 
    
         
            +
            txt2ebook/exceptions.py,sha256=PT3m85PE5QopHHUfRwEQzp0kJ4AA9yjLO6V6lYC8WhQ,858
         
     | 
| 
       5 
5 
     | 
    
         
             
            txt2ebook/formats/__init__.py,sha256=yNF426_jHKNCKenKj1JTbOs22vEBuGScEk6TKhFaZUk,1716
         
     | 
| 
       6 
6 
     | 
    
         
             
            txt2ebook/formats/base.py,sha256=ODguJ7OBPXfRQLLeoL-G66NZihroXb4kG5-56ZrlygI,5819
         
     | 
| 
       7 
7 
     | 
    
         
             
            txt2ebook/formats/epub.py,sha256=IVz-FmYQlcChOw38YqfKy46bPVSIrHyxA_94iz06N3Y,6941
         
     | 
| 
         @@ -19,7 +19,7 @@ txt2ebook/formats/typ.py,sha256=_a3PKFh5jlHvaqRes6XvtPoDJI_HJaH7pCBbBRFeYyM,6647 
     | 
|
| 
       19 
19 
     | 
    
         
             
            txt2ebook/helpers/__init__.py,sha256=-Awv2qDnsDHnku_XunOCsn-HDLvkBDpI0b24WFs0H74,1379
         
     | 
| 
       20 
20 
     | 
    
         
             
            txt2ebook/languages/__init__.py,sha256=1AfDn-D0q-dvODGP-9KxPHY_Wtk-ifZdN1FutZMT9-Q,763
         
     | 
| 
       21 
21 
     | 
    
         
             
            txt2ebook/languages/en.py,sha256=e5VzZwfrO2kABMwEB0l--eo4XbOre6f6uJ-ySU3ORT8,960
         
     | 
| 
       22 
     | 
    
         
            -
            txt2ebook/languages/zh_cn.py,sha256= 
     | 
| 
      
 22 
     | 
    
         
            +
            txt2ebook/languages/zh_cn.py,sha256=lcbgPFO4Uaog8sKHKF5fQtvRwkKiQ3v5wMvYNEvNk9k,1943
         
     | 
| 
       23 
23 
     | 
    
         
             
            txt2ebook/languages/zh_tw.py,sha256=_fdXOOSLK0nTMuBe1Om2qjb4zr2PVd6N4xi2rrYkNTI,1515
         
     | 
| 
       24 
24 
     | 
    
         
             
            txt2ebook/locales/en/LC_MESSAGES/txt2ebook.mo,sha256=Ym6soeijV3zsv9FUPWlJnu18-CNb5tcOTN5JsMOfV9c,672
         
     | 
| 
       25 
25 
     | 
    
         
             
            txt2ebook/locales/en/LC_MESSAGES/txt2ebook.po,sha256=YhI4ZnZVWIqR3WpbLL940xXdLwAAp9-OBQShD6QtSWU,698
         
     | 
| 
         @@ -29,7 +29,7 @@ txt2ebook/locales/zh-cn/LC_MESSAGES/txt2ebook.po,sha256=zVvD8AEL6gcxg4QPfc_NnDy2 
     | 
|
| 
       29 
29 
     | 
    
         
             
            txt2ebook/locales/zh-tw/LC_MESSAGES/txt2ebook.mo,sha256=1GIuOcO_bISiFcfhFez-A7mSi11Mo-x3PBobBENgMEc,675
         
     | 
| 
       30 
30 
     | 
    
         
             
            txt2ebook/locales/zh-tw/LC_MESSAGES/txt2ebook.po,sha256=Y-oJYvufQKqiUmAJR6RAB9DZdsu2hChUUtkEApu7byI,698
         
     | 
| 
       31 
31 
     | 
    
         
             
            txt2ebook/models/__init__.py,sha256=Z3zClWLj08Q8HgaWV1RRgIKatEhIUfYBAVWm-j4m05w,930
         
     | 
| 
       32 
     | 
    
         
            -
            txt2ebook/models/book.py,sha256= 
     | 
| 
      
 32 
     | 
    
         
            +
            txt2ebook/models/book.py,sha256=OkYg9ogOyH6mizP4qACTBTq4x6OAfY01gmaEzlerhLw,2788
         
     | 
| 
       33 
33 
     | 
    
         
             
            txt2ebook/models/chapter.py,sha256=6YvUDHzR6amGMZgkQl_xHWrYZUmlfpF7mnDLilG2BpA,1686
         
     | 
| 
       34 
34 
     | 
    
         
             
            txt2ebook/models/volume.py,sha256=koz1KfWjvGWLFbmGEQlZ23frsP93cDsuBMySYBHiXm8,1597
         
     | 
| 
       35 
35 
     | 
    
         
             
            txt2ebook/parser.py,sha256=ClcmWdFMSLfU-76vVnoHVAb6N7qYhCy6zmIwK0MPx9M,9006
         
     | 
| 
         @@ -45,8 +45,8 @@ txt2ebook/subcommands/tex.py,sha256=X6ZBfuAs_mcJe8PNjzoW339ecPynZduVbcCq0henjiA, 
     | 
|
| 
       45 
45 
     | 
    
         
             
            txt2ebook/subcommands/typ.py,sha256=r4Xf7xSINbYfaIKkVzdyQDlUMWPvOIcbvOwC71spu6w,3682
         
     | 
| 
       46 
46 
     | 
    
         
             
            txt2ebook/tokenizer.py,sha256=H9AaZVmNP43L3ONvj58u_5weZAjFG9SzQSeS9upGN1U,9642
         
     | 
| 
       47 
47 
     | 
    
         
             
            txt2ebook/zh_utils.py,sha256=0Yq9r-JL4HntW68vFR6TBP9yQim1a07mfsh_sp-XmaE,4887
         
     | 
| 
       48 
     | 
    
         
            -
            txt2ebook-0.1. 
     | 
| 
       49 
     | 
    
         
            -
            txt2ebook-0.1. 
     | 
| 
       50 
     | 
    
         
            -
            txt2ebook-0.1. 
     | 
| 
       51 
     | 
    
         
            -
            txt2ebook-0.1. 
     | 
| 
       52 
     | 
    
         
            -
            txt2ebook-0.1. 
     | 
| 
      
 48 
     | 
    
         
            +
            txt2ebook-0.1.130.dist-info/LICENSE.md,sha256=tGtFDwxWTjuR9syrJoSv1Hiffd2u8Tu8cYClfrXS_YU,31956
         
     | 
| 
      
 49 
     | 
    
         
            +
            txt2ebook-0.1.130.dist-info/METADATA,sha256=i12D6Adog_3oBXtQLXocmuTpE7SwmrO1WbN_C21ZHUM,4969
         
     | 
| 
      
 50 
     | 
    
         
            +
            txt2ebook-0.1.130.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
         
     | 
| 
      
 51 
     | 
    
         
            +
            txt2ebook-0.1.130.dist-info/entry_points.txt,sha256=AFikuCV6fqf8_GHwsvWuo9jTGNrCkWY1TJWk5GfMWSk,71
         
     | 
| 
      
 52 
     | 
    
         
            +
            txt2ebook-0.1.130.dist-info/RECORD,,
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     |