tag | 804b1b4d05814b2e2cd8deaaa719bc341f3fcd98 | |
---|---|---|
tagger | Trent Mick <trentm@gmail.com> | Thu Sep 02 10:16:10 2010 -0700 |
object | ea16003f987b414e5fc3146c9159093ab83dabc5 |
version 1.1.0
commit | ea16003f987b414e5fc3146c9159093ab83dabc5 | [log] [tgz] |
---|---|---|
author | Trent Mick <trentm@gmail.com> | Thu Sep 02 10:16:10 2010 -0700 |
committer | Trent Mick <trentm@gmail.com> | Thu Sep 02 10:16:10 2010 -0700 |
tree | a509b6946df89c1ed062d9d348330c6b3a3ae682 | |
parent | aafa76fb4835b0055657f778fe2b04ac2dde83c5 [diff] |
prepare for 1.1.0 release
What directory should your app use for storing user data? If running on Mac OS X, you should use:
~/Library/Application Support/<AppName>
If on Windows (at least English Win XP) that should be:
C:\Documents and Settings\<User>\Application Data\Local Settings\<AppAuthor>\<AppName>
or possibly:
C:\Documents and Settings\<User>\Application Data\<AppAuthor>\<AppName>
for roaming profiles but that is another story.
On Linux (and other Unices) the dir, according to the XDG spec (and subject to some interpretation), is:
~/.config/<appname> # note AppName was lowercased
appdirs
to the rescueThis kind of thing is what the appdirs
module is for. appdirs
will help you choose an appropriate:
user_data_dir
)user_cache_dir
)site_data_dir
)user_log_dir
)and also:
On Mac OS X:
>>> from appdirs import * >>> appname = "SuperApp" >>> appauthor = "Acme" >>> user_data_dir(appname, appauthor) '/Users/trentm/Library/Application Support/SuperApp' >>> site_data_dir(appname, appauthor) '/Library/Application Support/SuperApp' >>> user_cache_dir(appname, appauthor) '/Users/trentm/Library/Caches/SuperApp' >>> user_log_dir(appname, appauthor) '/Users/trentm/Library/Logs/SuperApp'
On Windows 7:
>>> from appdirs import * >>> appname = "SuperApp" >>> appauthor = "Acme" >>> user_data_dir(appname, appauthor) 'C:\\Users\\trentm\\AppData\\Local\\Acme\\SuperApp' >>> user_data_dir(appname, appauthor, roaming=True) 'C:\\Users\\trentm\\AppData\\Roaming\\Acme\\SuperApp' >>> user_cache_dir(appname, appauthor) 'C:\\Users\\trentm\\AppData\\Local\\Acme\\SuperApp\\Cache' >>> user_log_dir(appname, appauthor) 'C:\\Users\\trentm\\AppData\\Local\\Acme\\SuperApp\\Logs'
On Linux:
>>> from appdirs import * >>> appname = "SuperApp" >>> appauthor = "Acme" >>> user_data_dir(appname, appauthor) '/home/trentm/.config/superapp >>> site_data_dir(appname, appauthor) '/etc/xdg/superapp' >>> user_cache_dir(appname, appauthor) '/home/trentm/.cache/superapp' >>> user_log_dir(appname, appauthor) '/home/trentm/.config/superapp/log'
AppDirs
for convenience>>> from appdirs import AppDirs >>> dirs = AppDirs("SuperApp", "Acme") >>> dirs.user_data_dir '/Users/trentm/Library/Application Support/SuperApp' >>> dirs.site_data_dir '/Library/Application Support/SuperApp' >>> dirs.user_cache_dir '/Users/trentm/Library/Caches/SuperApp'
If you have multiple versions of your app in use that you want to be able to run side-by-side, then you may want version-isolation for these dirs.
>>> from appdirs import AppDirs >>> dirs = AppDirs("SuperApp", "Acme", version="1.0") >>> dirs.user_data_dir '/Users/trentm/Library/Application Support/SuperApp/1.0' >>> dirs.site_data_dir '/Library/Application Support/SuperApp/1.0' >>> dirs.user_cache_dir '/Users/trentm/Library/Caches/SuperApp/1.0' >>> dirs.user_log_dir '/Users/trentm/Library/Logs/SuperApp/1.0'