https://github.com/dwavesystems/homebase
platform independent access to user data folders.
https://github.com/dwavesystems/homebase
Last synced: 3 months ago
JSON representation
platform independent access to user data folders.
- Host: GitHub
- URL: https://github.com/dwavesystems/homebase
- Owner: dwavesystems
- License: other
- Created: 2017-11-13T23:18:50.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2022-02-16T20:07:02.000Z (over 4 years ago)
- Last Synced: 2025-10-21T20:56:59.652Z (7 months ago)
- Language: Python
- Homepage: http://homebase.readthedocs.io/
- Size: 51.8 KB
- Stars: 5
- Watchers: 6
- Forks: 11
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
[](https://coveralls.io/github/dwavesystems/homebase?branch=master)
[](https://travis-ci.org/dwavesystems/homebase)
[](http://homebase.readthedocs.io/en/latest/?badge=latest)
# homebase
A place for your app to call home.
*homebase* provides a platform independent API for querying paths in which applications can write caches, data, configs, and
other information.
## rationale
Since each operating system expects applications to write their data to OS dependant paths, managing cache writing
on portable applications can become difficult.
For example, on macOS:
~/Library/Application Support/app_name
while on Linux it may be:
~/.local/share/app_name
and on Windows:
c:\users\\AppData\Local/app_name
and the problem gets worse if you are running inside of a [virtualenv](https://virtualenv.pypa.io/en/stable/)
A similar issue happens for other forms of data, like caches, logs, configuration files, or application state.
## Installation
```bash
python setup.py install
```
## Usage
```python
import homebase
app_name = "my_app"
app_author = "nakatomi-corp"
user_data_dir = homebase.user_data_dir(app_name=app_name, app_author=app_author)
user_cache_dir = homebase.user_cache_dir(app_name=app_name, app_author=app_author)
user_logs_dir = homebase.user_logs_dir(app_name=app_name, app_author=app_author)
user_config_dir = homebase.user_config_dir(app_name=app_name, app_author=app_author)
user_state_dir = homebase.user_state_dir(app_name=app_name, app_author=app_author)
# site specific directories, e.g. /usr/share
site_data_dir = homebase.site_data_dir(app_name=app_name, app_author=app_author)
site_config_dir = homebase.site_config_dir(app_name=app_name, app_author=app_author)
```
If you are running inside of a virtualenv, *homebase* will return paths that are relative to that environment.
If you still want the user path, pass `use_virtualenv=False` in the call.
For example, suppose you have set up a virtual environment in `/home/username/env` on linux
```python
import homebase
app_name = "my_app"
app_author = "nakatomi-corp"
user_data_dir = homebase.user_data_dir(app_name=app_name, app_author=app_author)
# /home/username/env/data/my_app
user_data_dir = homebase.user_data_dir(app_name=app_name, app_author=app_author, use_virtualenv=False)
# /home/username/.local/share/my_app.
```
See the [documentation](# TODO) for more details and examples.
## License
See [LICENSE.txt](LICENSE.txt)
## Acknowledgement
This project is inspired by and is derived from [appdirs](https://github.com/ActiveState/appdirs)