New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

homebase

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

homebase

A platform independent API for paths in which applications can write data.

  • 1.0.1
  • PyPI
  • Socket score

Maintainers
1

Coverage Status Build Status Documentation Status

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\<user_name>\AppData\Local/app_name

and the problem gets worse if you are running inside of a virtualenv

A similar issue happens for other forms of data, like caches, logs, configuration files, or application state.

Installation

python setup.py install

Usage

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

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

Acknowledgement

This project is inspired by and is derived from appdirs

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc