generated from Hazel/python-project
implemented setting cache directory properly
This commit is contained in:
parent
df971afea4
commit
a8bcb38618
@ -1,6 +1,6 @@
|
|||||||
import pathlib
|
import pathlib
|
||||||
from .connections import Connection, SilentConnection
|
from .connections import Connection, SilentConnection
|
||||||
from .cache import clean_cache, clear_cache, set_cache_directory
|
from .cache import clean_cache, clear_cache, set_cache_directory, get_cache_stats
|
||||||
|
|
||||||
|
|
||||||
__name__ = "python_requests"
|
__name__ = "python_requests"
|
||||||
@ -10,5 +10,6 @@ __all__ = [
|
|||||||
"SilentConnection",
|
"SilentConnection",
|
||||||
"clean_cache",
|
"clean_cache",
|
||||||
"clear_cache",
|
"clear_cache",
|
||||||
|
"get_cache_stats",
|
||||||
"set_cache_directory",
|
"set_cache_directory",
|
||||||
]
|
]
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
import argparse
|
import argparse
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from .connections import Connection, SilentConnection
|
from . import Connection, clean_cache, clear_cache, set_cache_directory, get_cache_stats, __folder__
|
||||||
from . import cache
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
@ -49,11 +48,13 @@ def cli():
|
|||||||
format='%(asctime)s - %(levelname)s - %(message)s'
|
format='%(asctime)s - %(levelname)s - %(message)s'
|
||||||
)
|
)
|
||||||
logging.debug("Debug logging enabled")
|
logging.debug("Debug logging enabled")
|
||||||
|
set_cache_directory("cache")
|
||||||
else:
|
else:
|
||||||
logging.basicConfig(
|
logging.basicConfig(
|
||||||
level=logging.INFO,
|
level=logging.INFO,
|
||||||
format='%(asctime)s - %(levelname)s - %(message)s'
|
format='%(asctime)s - %(levelname)s - %(message)s'
|
||||||
)
|
)
|
||||||
|
set_cache_directory()
|
||||||
|
|
||||||
|
|
||||||
if hasattr(args, 'func'):
|
if hasattr(args, 'func'):
|
||||||
@ -65,7 +66,7 @@ def cli():
|
|||||||
def handle_show_cache(args):
|
def handle_show_cache(args):
|
||||||
"""Handle the show-cache command"""
|
"""Handle the show-cache command"""
|
||||||
try:
|
try:
|
||||||
file_count, db_count = cache.get_cache_stats()
|
file_count, db_count = get_cache_stats()
|
||||||
logging.info(f"Cache Statistics:")
|
logging.info(f"Cache Statistics:")
|
||||||
logging.info(f" - Files in cache: {file_count}")
|
logging.info(f" - Files in cache: {file_count}")
|
||||||
logging.info(f" - Database entries: {db_count}")
|
logging.info(f" - Database entries: {db_count}")
|
||||||
@ -75,7 +76,7 @@ def handle_show_cache(args):
|
|||||||
def handle_clean_cache(args):
|
def handle_clean_cache(args):
|
||||||
"""Handle the clean-cache command"""
|
"""Handle the clean-cache command"""
|
||||||
try:
|
try:
|
||||||
files_deleted, entries_deleted = cache.clean_cache()
|
files_deleted, entries_deleted = clean_cache()
|
||||||
logging.info(f"Cleaned cache:")
|
logging.info(f"Cleaned cache:")
|
||||||
logging.info(f" - Files deleted: {files_deleted}")
|
logging.info(f" - Files deleted: {files_deleted}")
|
||||||
logging.info(f" - Database entries removed: {entries_deleted}")
|
logging.info(f" - Database entries removed: {entries_deleted}")
|
||||||
@ -88,7 +89,7 @@ def handle_clear_cache(args):
|
|||||||
# Confirm before clearing all cache
|
# Confirm before clearing all cache
|
||||||
confirm = input("Are you sure you want to clear ALL cache? This cannot be undone. [y/N]: ")
|
confirm = input("Are you sure you want to clear ALL cache? This cannot be undone. [y/N]: ")
|
||||||
if confirm.lower() == 'y':
|
if confirm.lower() == 'y':
|
||||||
files_deleted, entries_deleted = cache.clear_cache()
|
files_deleted, entries_deleted = clear_cache()
|
||||||
logging.info(f"Cleared ALL cache:")
|
logging.info(f"Cleared ALL cache:")
|
||||||
logging.info(f" - Files deleted: {files_deleted}")
|
logging.info(f" - Files deleted: {files_deleted}")
|
||||||
logging.info(f" - Database entries removed: {entries_deleted}")
|
logging.info(f" - Database entries removed: {entries_deleted}")
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
from typing import Optional, Tuple
|
from typing import Optional, Tuple, Union
|
||||||
from codecs import encode
|
from codecs import encode
|
||||||
from hashlib import sha1
|
from hashlib import sha1
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
@ -9,22 +9,10 @@ from datetime import datetime, timedelta
|
|||||||
|
|
||||||
from . import __name__
|
from . import __name__
|
||||||
|
|
||||||
CACHE_DIRECTORY = f"/tmp/{__name__}"
|
CACHE_DIRECTORY = Path(f"/tmp/{__name__}")
|
||||||
|
|
||||||
|
|
||||||
def set_cache_directory(cache_directory: Optional[str] = None):
|
|
||||||
global CACHE_DIRECTORY
|
|
||||||
|
|
||||||
if cache_directory is not None:
|
|
||||||
CACHE_DIRECTORY = cache_directory
|
|
||||||
|
|
||||||
Path(CACHE_DIRECTORY).mkdir(exist_ok=True, parents=True)
|
|
||||||
|
|
||||||
|
|
||||||
# SQLite database file path
|
|
||||||
DB_FILE = Path(CACHE_DIRECTORY, "cache_metadata.db")
|
DB_FILE = Path(CACHE_DIRECTORY, "cache_metadata.db")
|
||||||
|
|
||||||
# Initialize the database
|
|
||||||
def _init_db():
|
def _init_db():
|
||||||
with sqlite3.connect(DB_FILE) as conn:
|
with sqlite3.connect(DB_FILE) as conn:
|
||||||
conn.execute("""
|
conn.execute("""
|
||||||
@ -35,8 +23,17 @@ def _init_db():
|
|||||||
""")
|
""")
|
||||||
conn.commit()
|
conn.commit()
|
||||||
|
|
||||||
# Initialize the database when module is imported
|
|
||||||
_init_db()
|
def set_cache_directory(cache_directory: Optional[Union[str, Path]] = None):
|
||||||
|
global CACHE_DIRECTORY, DB_FILE
|
||||||
|
|
||||||
|
if cache_directory is not None:
|
||||||
|
CACHE_DIRECTORY = cache_directory
|
||||||
|
DB_FILE = Path(CACHE_DIRECTORY, "cache_metadata.db")
|
||||||
|
_init_db()
|
||||||
|
|
||||||
|
print(CACHE_DIRECTORY, DB_FILE)
|
||||||
|
Path(CACHE_DIRECTORY).mkdir(exist_ok=True, parents=True)
|
||||||
|
|
||||||
|
|
||||||
def get_url_hash(url: str) -> str:
|
def get_url_hash(url: str) -> str:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user