Преглед изворни кода

Replace print with logging

jherve пре 1 година
родитељ
комит
b78534ae6a
3 измењених фајлова са 47 додато и 6 уклоњено
  1. 40 1
      pdm.lock
  2. 1 0
      pyproject.toml
  3. 6 5
      src/de_quoi_parle_le_monde/main.py

+ 40 - 1
pdm.lock

@@ -5,7 +5,7 @@
 groups = ["default"]
 strategy = ["cross_platform", "inherit_metadata"]
 lock_version = "4.4.1"
-content_hash = "sha256:eee4220e2da5545c63cad757839431089495ed121e3dafd9a1ec10dcf4264f27"
+content_hash = "sha256:4c270a78a0a28a5426bc46b9fe833d8ebd04d1352497613cc5837cc9e71bd4b8"
 
 [[package]]
 name = "aioboto3"
@@ -305,6 +305,18 @@ files = [
     {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"},
 ]
 
+[[package]]
+name = "colorama"
+version = "0.4.6"
+requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
+summary = "Cross-platform colored terminal text."
+groups = ["default"]
+marker = "sys_platform == \"win32\""
+files = [
+    {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
+    {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
+]
+
 [[package]]
 name = "dnspython"
 version = "2.6.1"
@@ -375,6 +387,21 @@ files = [
     {file = "jmespath-1.0.1.tar.gz", hash = "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe"},
 ]
 
+[[package]]
+name = "loguru"
+version = "0.7.2"
+requires_python = ">=3.5"
+summary = "Python logging made (stupidly) simple"
+groups = ["default"]
+dependencies = [
+    "colorama>=0.3.4; sys_platform == \"win32\"",
+    "win32-setctime>=1.0.0; sys_platform == \"win32\"",
+]
+files = [
+    {file = "loguru-0.7.2-py3-none-any.whl", hash = "sha256:003d71e3d3ed35f0f8984898359d65b79e5b21943f78af86aa5491210429b8eb"},
+    {file = "loguru-0.7.2.tar.gz", hash = "sha256:e671a53522515f34fd406340ee968cb9ecafbc4b36c679da03c18fd8d0bd51ac"},
+]
+
 [[package]]
 name = "lxml"
 version = "5.1.0"
@@ -641,6 +668,18 @@ files = [
     {file = "urllib3-2.0.7.tar.gz", hash = "sha256:c97dfde1f7bd43a71c8d2a58e369e9b2bf692d1334ea9f9cae55add7d0dd0f84"},
 ]
 
+[[package]]
+name = "win32-setctime"
+version = "1.1.0"
+requires_python = ">=3.5"
+summary = "A small Python utility to set file creation time on Windows"
+groups = ["default"]
+marker = "sys_platform == \"win32\""
+files = [
+    {file = "win32_setctime-1.1.0-py3-none-any.whl", hash = "sha256:231db239e959c2fe7eb1d7dc129f11172354f98361c4fa2d6d2d7e278baa8aad"},
+    {file = "win32_setctime-1.1.0.tar.gz", hash = "sha256:15cf5750465118d6929ae4de4eb46e8edae9a5634350c01ba582df868e932cb2"},
+]
+
 [[package]]
 name = "wrapt"
 version = "1.16.0"

+ 1 - 0
pyproject.toml

@@ -17,6 +17,7 @@ dependencies = [
     "lxml>=5.1.0",
     "aiolimiter>=1.1.0",
     "yarl>=1.9.4",
+    "loguru>=0.7.2",
 ]
 requires-python = "==3.11.*"
 readme = "README.md"

+ 6 - 5
src/de_quoi_parle_le_monde/main.py

@@ -2,6 +2,7 @@ from datetime import date, datetime, time, timedelta
 import asyncio
 from attrs import frozen
 import traceback
+from loguru import logger
 
 from de_quoi_parle_le_monde.http import HttpClient
 from de_quoi_parle_le_monde.internet_archive import (
@@ -29,10 +30,10 @@ class ArchiveDownloader:
         try:
             return await self.ia_client.get_snapshot_id_closest_to(collection.url, dt)
         except SnapshotNotYetAvailable as e:
-            print(f"Snapshot for {collection.url} @ {dt} not yet available")
+            logger.warning(f"Snapshot for {collection.url} @ {dt} not yet available")
             raise e
         except Exception as e:
-            print(f"Error while trying to find snapshot for {collection.url} @ {dt}")
+            logger.error(f"Error while trying to find snapshot for {collection.url} @ {dt}")
             traceback.print_exception(e)
             raise e
 
@@ -40,7 +41,7 @@ class ArchiveDownloader:
         try:
             return await self.ia_client.fetch(snap_id)
         except Exception as e:
-            print(f"Error while fetching {snap_id}")
+            logger.error(f"Error while fetching {snap_id}")
             traceback.print_exception(e)
             raise e
 
@@ -48,7 +49,7 @@ class ArchiveDownloader:
         try:
             return await collection.MainPageClass.from_snapshot(snapshot)
         except Exception as e:
-            print(f"Error while parsing {closest}")
+            logger.error(f"Error while parsing {closest}")
             traceback.print_exception(e)
             raise e
 
@@ -73,7 +74,7 @@ class ArchiveDownloader:
                 await self.storage.add_top_article(snapshot_id, top_article_snap_id, t)
 
         except Exception as e:
-            print(f"Error while attempting to store {main_page} from {collection} @ {dt}")
+            logger.error(f"Error while attempting to store {main_page} from {collection} @ {dt}")
             traceback.print_exception(e)
             raise e