Topic: Storage parametri applicazione : un consiglio  (Letto 137 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline nuzzopippo

  • python unicellularis
  • *
  • Post: 38
  • Punti reputazione: 0
    • Mostra profilo
Storage parametri applicazione : un consiglio
« il: Aprile 20, 2019, 12:43 »
Buon giorno a Voi ... e buona Pasqua, data la prossimità :)

Desidererei un consiglio :
nei sistemi unix-like è ampiamente usato memorizzare parametri opzionali di una applicazione scelti da un utente in una direttrice nascosta nella home dell'utente, cosa semplice da realizzare con python

import os
...
def load_app_configurations():
    '''Acquisisce, se esistono, le scelte applicative salvate.'''
    home = os.path.expanduser('~')
    app_dir = os.path.join(home, '.app_name')
    if not os.path.exists(app_dir):
        os.mkdir(app_dir)

mi apprestavo ad utilizzare una tale metodologia ma mi son fermato un attimo, so che "funzionerebbe" anche in windows, almeno per alcune versioni, ma mi chiedo se esiste una qualche convenzione/linea guida in merito, almeno per l'ambito python ...  sapreste darmi suggerimenti in merito?

Offline Markon

  • python sapiens sapiens
  • *
  • moderatore
  • Post: 4.104
  • Punti reputazione: 5
    • Mostra profilo
    • Neolithic
Re:Storage parametri applicazione : un consiglio
« Risposta #1 il: Aprile 20, 2019, 22:05 »
Ciao,

che io sappia non esistono linee guida, se non quelle dettate dal sistema operativo. I file di configurazione tipicamente vanno nella home dell'utente che lancia il programma (sia su Win sia su Linux che su Mac) e spesso e' buona cosa nascondere la directory cosi' da non rendere la directory piena di file di configurazione.

Offline bebo

  • python erectus
  • ***
  • Post: 211
  • Punti reputazione: 0
    • Mostra profilo
    • bebo_sudo's personal homepage
Re:Storage parametri applicazione : un consiglio
« Risposta #2 il: Aprile 21, 2019, 14:42 »
freedesktop.org contiene una "proposta di standard" per Linux: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html

Offline nuzzopippo

  • python unicellularis
  • *
  • Post: 38
  • Punti reputazione: 0
    • Mostra profilo
Re:Storage parametri applicazione : un consiglio
« Risposta #3 il: Aprile 22, 2019, 07:40 »
Vi ringrazio delle risposte.

Per lo meno, ho conferma che detto metodo è applicabile nei s.o. più diffusi, anche se "nascondere" lascia il tempo che trova.

Interessante la proposta di standard segnalata da @bebo, sarebbe ora che si adottassero schemi di comportamento unificati, per limitare la confusione nelle home-dir ... già ci pensa l'utente a crearla :)
da una veloce verifica nel mio Ubuntu 18.04, sembrerebbe parzialmente adottata solo da unity per sue specifiche esigenze, da verificare circa i permessi in scrittura

NzP:~$ echo "$XDG_DATA_HOME"

NzP:~$ echo "$XDG_CONFIG_HOME"

NzP:~$ echo "$XDG_CONFIG_DIRS"
/etc/xdg/xdg-unity:/etc/xdg
NzP:~$ echo "$XDG_CACHE_HOME"

NzP:~$ echo "$XDG_RUNTIME_DIR"
/run/user/1000
NzP:~$ ls "$XDG_RUNTIME_DIR"
bus     dconf  gnupg  gvfs-burn  pulse    unity
dbus-1  gdm    gvfs   keyring    systemd  update-notifier.pid
NzP:~$

Comunque, faccenda da tener d'occhio

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 2.857
  • Punti reputazione: 9
    • Mostra profilo
Re:Storage parametri applicazione : un consiglio
« Risposta #4 il: Aprile 23, 2019, 14:26 »
Su Windows la policy è chiara (magari non seguita, ma...): in %ALLUSERSPROFILE%\\myapp i dati non user-dependent dell'applicazione (se ha senso), in %LOCALAPPDATA%\\myapp (o al massimo in %APPDATA%\\myapp) i dati dell'utente. E più in generale, https://docs.microsoft.com/it-it/windows/desktop/shell/knownfolderid.
Poi per fare questo sarebbe buona educazione fornire anche un installer/uninstaller che pulisce correttamente i vari pezzetti lasciati in giro...
Se però si trattta del solito programmino distribuito alla selvaggia, allora è di gran lunga preferibile usare una sub-directory "interna" all'applicazione e tenere tutto quanto il più vicino possibile senza spargere cose in giro.

In Linux in effetti.... la situazione è più sfumata. Eh.

La parola "nascosta" è ovviamente priva di significato in questo contesto, come è stato detto mille volte. Non puoi nascondere nulla sulla macchina di proprietà di un altro.

Offline nuzzopippo

  • python unicellularis
  • *
  • Post: 38
  • Punti reputazione: 0
    • Mostra profilo
Re:Storage parametri applicazione : un consiglio
« Risposta #5 il: Aprile 23, 2019, 18:21 »
Grazie delle info @RicPol

Leggersi il s.o., quindi, poi regolarsi.

...Poi per fare questo sarebbe buona educazione fornire anche un installer/uninstaller che pulisce correttamente i vari pezzetti lasciati in giro...
Se però si trattta del solito programmino distribuito alla selvaggia, allora è di gran lunga preferibile usare una sub-directory "interna" ...
beh, la parte evidenziata rientra tra le "intenzioni" in divenire, anche se argomento che temo metterà a dura prova le mie denutrite meningi, allo stato men che selvagge.
La sub interna alla directory applicativa l'avevo considerata ma in genere non la uso per abitudine, più che altro perché le piccole applicazioni che faccio a mio uso e consumo le porto in giro su chiavetta e le faccio girare su diversi computer, tutti linux ma con caratteristiche differenti, alla lunga ho una preferenza per lo storage sulla macchina in uso ... anche se come motivo non è per nulla buono :)

Grazie, ciao

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 2.857
  • Punti reputazione: 9
    • Mostra profilo
Re:Storage parametri applicazione : un consiglio
« Risposta #6 il: Aprile 23, 2019, 23:06 »
> Leggersi il s.o., quindi, poi regolarsi.
Oppure usare una roba come questa https://github.com/ActiveState/appdirs ma bisogna leggere il codice per bene e capire se fidarsi.