src.core package

Submodules

src.core.cache_manager module

Gestionnaire de cache centralisé pour tous les analyseurs. Permet une gestion uniforme du cache across l’application.

class src.core.cache_manager.CacheManager(base_cache_dir='cache')[source]

Bases : object

Gestionnaire de cache centralisé avec support multi-analyseurs.

clear(analyzer_name=None, operation=None)[source]

Nettoie le cache.

Paramètres:
  • analyzer_name (Optional[str]) – Si spécifié, nettoie seulement cet analyseur

  • operation (Optional[str]) – Si spécifié (avec analyzer_name), nettoie seulement cette opération

Type renvoyé:

int

Renvoie:

Nombre de fichiers supprimés

get(analyzer_name, operation, params)[source]

Récupère un objet du cache.

Paramètres:
  • analyzer_name (str) – Nom de l’analyseur

  • operation (str) – Nom de l’opération

  • params (Dict[str, Any]) – Paramètres de l’opération

Type renvoyé:

Optional[TypeVar(T)]

Renvoie:

Objet mis en cache ou None si pas trouvé

get_info()[source]

Retourne des informations sur le cache.

Type renvoyé:

Dict[str, Any]

Renvoie:

Dictionnaire avec les statistiques du cache

set(analyzer_name, operation, params, data)[source]

Sauvegarde un objet dans le cache.

Paramètres:
  • analyzer_name (str) – Nom de l’analyseur

  • operation (str) – Nom de l’opération

  • params (Dict[str, Any]) – Paramètres de l’opération

  • data (TypeVar(T)) – Données à mettre en cache

Type renvoyé:

bool

Renvoie:

True si la sauvegarde a réussi

src.core.cache_manager.get_cache_manager()[source]

Retourne l’instance globale du gestionnaire de cache.

Type renvoyé:

CacheManager

src.core.cacheable_mixin module

Mixin pour ajouter des capacités de cache aux analyseurs.

class src.core.cacheable_mixin.CacheableMixin(*args, **kwargs)[source]

Bases : object

Mixin qui ajoute des capacités de cache à une classe.

cached_operation(operation_name, operation_func, cache_params=None)[source]

Exécute une opération avec mise en cache automatique.

Paramètres:
  • operation_name (str) – Nom de l’opération (pour la clé de cache)

  • operation_func (Callable[[], TypeVar(T)]) – Fonction à exécuter si pas en cache

  • cache_params (Optional[Dict[str, Any]]) – Paramètres pour générer la clé de cache

Type renvoyé:

TypeVar(T)

Renvoie:

Résultat de l’opération (depuis le cache ou calculé)

clear_cache(operation=None)[source]

Nettoie le cache pour cet analyseur.

Paramètres:

operation (Optional[str]) – Si spécifié, nettoie seulement cette opération

Type renvoyé:

int

Renvoie:

Nombre de fichiers supprimés

enable_cache(enabled=True)[source]

Active ou désactive le cache pour cet analyseur.

Type renvoyé:

None

get_cache_info()[source]

Retourne les informations de cache pour cet analyseur.

Type renvoyé:

Dict[str, Any]

src.core.data_explorer module

class src.core.data_explorer.DataExplorer(df=None, loader=None)[source]

Bases : object

property df: DataFrame
reload(force=True)[source]
Type renvoyé:

DataFrame

src.core.data_loader module

class src.core.data_loader.DataLoader(data_path, cache=True)[source]

Bases : object

get_data()[source]
Type renvoyé:

DataFrame

load_data(force=False)[source]

Load data from the configured path.

Paramètres:

force (bool) – If True, bypass cache even if already loaded.

Type renvoyé:

DataFrame

preprocess(df)[source]

Apply light preprocessing steps. Override/customize as needed.

Type renvoyé:

DataFrame

src.core.ingredients_analyzer module

src.core.interactions_analyzer module

class src.core.interactions_analyzer.InteractionsAnalyzer(interactions=None, recipes=None, merged=None, preprocessing=<factory>, cache_enabled=True)[source]

Bases : CacheableMixin

Compute relational aggregates between interactions & recipe metadata.

Paramètres:
  • interactions (pd.DataFrame) – Raw interactions dataframe (expects at least recipe_id; may include rating)

  • recipes (pd.DataFrame | None) – Recipes dataframe providing features (minutes, n_steps, ingredients…)

  • merged (pd.DataFrame | None) – Pre‑merged dataframe (bypasses merge step if provided). If given it supersedes interactions/recipes arguments.

aggregate()[source]

Return core aggregate per recipe.

Type renvoyé:

DataFrame

Metrics:
  • interaction_count

  • avg_rating (if ratings provided)

  • minutes / n_steps / n_ingredients (if present)

cache_enabled: bool = True
cached_operation(operation_name, operation_func, cache_params=None)

Exécute une opération avec mise en cache automatique.

Paramètres:
  • operation_name (str) – Nom de l’opération (pour la clé de cache)

  • operation_func (Callable[[], TypeVar(T)]) – Fonction à exécuter si pas en cache

  • cache_params (Optional[Dict[str, Any]]) – Paramètres pour générer la clé de cache

Type renvoyé:

TypeVar(T)

Renvoie:

Résultat de l’opération (depuis le cache ou calculé)

clear_cache(operation=None)

Nettoie le cache pour cet analyseur.

Paramètres:

operation (Optional[str]) – Si spécifié, nettoie seulement cette opération

Type renvoyé:

int

Renvoie:

Nombre de fichiers supprimés

create_popularity_segments(df=None)[source]

Create popularity segments based on interaction_count.

Type renvoyé:

DataFrame

create_recipe_categories(df=None)[source]

Create sophisticated categorization based on recipe characteristics.

Type renvoyé:

DataFrame

enable_cache(enabled=True)

Active ou désactive le cache pour cet analyseur.

Type renvoyé:

None

get_cache_info()[source]

Get cache information compatible with the old interface.

Type renvoyé:

dict

get_category_insights(df=None)[source]

Get insights and statistics about the created categories.

Type renvoyé:

dict

get_preprocessing_stats()[source]

Get preprocessing statistics if available.

Type renvoyé:

Optional[dict]

interactions: Optional[DataFrame] = None
merged: Optional[DataFrame] = None
popularity_vs_feature(feature, min_interactions=1)[source]
Type renvoyé:

DataFrame

popularity_vs_rating(min_interactions=1)[source]
Type renvoyé:

DataFrame

preprocessing: PreprocessingConfig
rating_vs_feature(feature, min_interactions=1)[source]
Type renvoyé:

DataFrame

recipes: Optional[DataFrame] = None
src.core.interactions_analyzer.InteractionsExplorer

alias de InteractionsAnalyzer

class src.core.interactions_analyzer.PreprocessingConfig(enable_preprocessing=True, outlier_method='iqr', outlier_threshold=5.0)[source]

Bases : object

Configuration for data preprocessing options.

enable_preprocessing: bool = True
get_hash()[source]

Generate hash for cache validation.

Type renvoyé:

str

outlier_method: str = 'iqr'
outlier_threshold: float = 5.0

src.core.logger module

Simple logging system for the Mangetamain application.

Provides a centralized logger with appropriate levels and file output.

class src.core.logger.MangetamainLogger(name='mangetamain', level='INFO', debug_log_file=None, error_log_file=None)[source]

Bases : object

Simple logger for the application with console and file output.

debug(message, **kwargs)[source]

Log debug message.

error(message, **kwargs)[source]

Log error message.

exception(message, **kwargs)[source]

Log exception with traceback.

info(message, **kwargs)[source]

Log info message.

warning(message, **kwargs)[source]

Log warning message.

src.core.logger.get_logger(name='mangetamain')[source]

Get the global logger instance.

Type renvoyé:

MangetamainLogger

src.core.logger.log_debug(message)[source]

Quick debug log.

src.core.logger.log_error(message)[source]

Quick error log.

src.core.logger.log_info(message)[source]

Quick info log.

src.core.logger.log_warning(message)[source]

Quick warning log.

src.core.logger.setup_logging(level='INFO', debug_log_file=None, error_log_file=None)[source]

Setup application logging with specified level and optional files.

Paramètres:
  • level (str) – Logging level (DEBUG, INFO, WARNING, ERROR)

  • debug_log_file (Optional[Path]) – Optional file for debug logs (DEBUG+)

  • error_log_file (Optional[Path]) – Optional file for error logs (ERROR+)

Type renvoyé:

MangetamainLogger

Renvoie:

Configured logger instance

Module contents