Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gestione motore ricerca file #22

Open
ZompaSenior opened this issue Feb 21, 2023 · 2 comments
Open

Gestione motore ricerca file #22

ZompaSenior opened this issue Feb 21, 2023 · 2 comments
Labels
todo semplicemente una cosa da fare

Comments

@ZompaSenior
Copy link
Contributor

ZompaSenior commented Feb 21, 2023

Questo motore si occuperà di cercare i file nei percorsi indicati, e li passerà all'oggetto per la raccolta dei metadati e in seguito invierà le informazioni al DB.

Questo è il segnaposto su cui basare la classe:
https://github.com/ConoscereLinux/DeskApp/blob/06c050cda852395a8c9e35ad49cceefbf11b0188/src/dig/digger_manager.py

Per ora mi limiterei alla ricerca nella cartella configurata e alla scrittura sullo stdout (banalmente con il print) dei nomi dei file trovati.

Il costruttore dovrebbe prendere in ingresso il parametro di tipo ResourceManager (lo trovi qui: https://github.com/ConoscereLinux/DeskApp/blob/06c050cda852395a8c9e35ad49cceefbf11b0188/src/util/resource.py). Dato che al momento nessun oggetto sarà funzionante, predisponiamo temporaneamente un secondo parametro path, con il percorso radice da cui cominciare a cercare.

Per la ricerca utilizzare os.scandire, che è in assoluto la più efficrente e riesce a gestire bene anche cartelle con numero di file enorme.

Per qualsiasi domanda, commenta pure qui sotto.

@ZompaSenior ZompaSenior added the todo semplicemente una cosa da fare label Feb 21, 2023
@ZompaSenior ZompaSenior changed the title Creazione Motore Ricerca File Gestione Motore Ricerca File Feb 23, 2023
@ZompaSenior ZompaSenior changed the title Gestione Motore Ricerca File Gestione motore ricerca file Feb 23, 2023
@pg-88
Copy link
Contributor

pg-88 commented Mar 4, 2023

Ciao,
sto lavorando al DiggerManager, usando os.scandir().
Ho un paio di dubbi:

  • devo assumere che dal path manager mi arrivi già il percorso di una cartella o è meglio che faccia un controllo nel costruttore?
  • Per quanto riguarda opzioni e log sto usando dei parametri inventati, c'è qualche funzionalità particolare da implementare? Ad esempio per le opzioni le cose che mi vengono in mente sono follow_symlinks (True|False) ed eventualmente la possibilità di scegliere il formato dell'output.

Spero di riuscire a fare un pull request a breve così magari mi riesci a dare un feedback più mirato su cosa sistemare, rifare o ripartire proprio 😅
A presto
Pietro

@ZompaSenior
Copy link
Contributor Author

ZompaSenior commented Mar 9, 2023

Ciao Pietro,
allora ti rispondo per punti:

  1. il path_manager in realtà conterrà solo delle funzioni e delle utilità per avere dei riferimenti ai vari percorsi ed alle risorse dell'applicazione, ma non gestirà le configurazioni del percorso da monitorare. Quello sarà compito del config_manager, che inizialmente si appoggerà ad un file .ini, poi magari passerà ad un database. Io non darei per scontato nulla, e farei un controllo sul percorso da scansionare, però non lo fare nel costruttore: nel costruttore ti predisponi tutto, poi farei un metodo (per esempio scan) che prima di scansionare controlla. Ti avevo indicato, di aggiungere un secondo parametro al costruttore per passare il path da scansionare, però poi ho implementato la struttura base dell'applicazione, per cui non cambiare il prototipo del costruttore, se no scassiamo tutto, mettiti una costante o qualcosa di simile che punti alla cartella di test source_folder, poi la sistemeremo
  2. Per ora ignora tutti gli altri oggetti a contorno: finché non abbiamo option_manager.py e config_manager.py funzionanti, è inutile inventare cose strane. In seguito la tua classe dovrà diventare un thread, quindi avremo un sacco di parametri da aggiungere.

Scusa, forse ho scritto troppo!

Comunque se hai altri dubbi scrivimi pure.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
todo semplicemente una cosa da fare
Projects
None yet
Development

No branches or pull requests

2 participants