Skip to main content

Easily manage data storage and logging across repos

Project description

SecureData

A library that allows for easy reading/writing of settings across repositories, as well as mail and logging.

Author

Features

  • Get/Set data within a JSON file in the location of your choice
  • Using rclone, automatically sync to/from directories as needed
  • Log to a file/directory of your choice without having to configure logger each time
  • Send/receive mail using Gmail

Structure

  • Data is stored in settings.json (in ~/securedata by default)
  • Logs are written to ~/securedata/log by default

Installation and Setup

  python3 -m pip install securedata

mail

  • You will need to enable "less secure apps" for the Gmail account you use. See this article.
    • Because you're storing your password in plaintext and because your account is "less secure", I HIGHLY recommend using a "throwaway" account.
    • It's never a good idea to reduce security on an account you regularly use.
  • In settings.json, add the email object to make your settings file look like this example:
{
    "email": {
        "from": "throwaway@gmail.com",
        "from_pw": "example",
        "from_name": "Raspberry Pi",
        "to": "destination@protonmail.com"
    }
}

Configuration

  • To choose where settings.json is stored, use
securedata config
  • To choose where logs will be stored, edit settings.json and set path_log to the full path to the log folder.

Examples

setItem

from securedata import securedata

securedata.setItem("employee", "Tyler", "salary", 7.25)

results in this structure in settings.json:

{
    "employee": {
        "Tyler": {
            "salary": 7.25
        }
    }
}

getItem

from securedata import securedata

print(securedata.getItem("employee", "Tyler", "salary")) # given example settings.json above
> python3 test.py
> 7.25

mail

from securedata import mail

mail.send('Test Subject', 'Test Body')

log

from securedata import securedata

# writes to a file named LOG_DAILY YYYY-MM-DD in the default log folder (or securedata.getItem('path_log')) inside a YYYY-MM-DD folder
securedata.log("Dear Diary...")
securedata.log("This function hit a breakpoint", level="debug")
securedata.log("Looks like the server is on fire", level="critical")
securedata.log("This is fine", level="info")

# writes to a file named LOG_TEMPERATURE
securedata.log("30", logName="LOG_TEMPERATURE")

# writes to a file named LOG_TEMPERATURE in /home/pi/weather
securedata.log("30", logName="LOG_TEMPERATURE", filePath="/home/pi/weather")

    # format
    # 2021-12-29 19:29:27,896 — INFO — 30

Dependencies

  • Python >= 3.6
  • Rclone
    • optional, used to sync data to/from cloud providers
    • support for customizing this with securedata.config in a future update

Disclaimers

  • This is an early stage project. There are still some things to tweak, and although I've done quite a bit of testing, I can't guarantee everything that works on my machine will work on yours. Always back up your data to multiple places to avoid data loss.
  • If you find any issues, please contact me... or get your hands dirty and raise a PR!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

securedata-2022.1.20.1.tar.gz (7.2 kB view details)

Uploaded Source

Built Distribution

securedata-2022.1.20.1-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

Details for the file securedata-2022.1.20.1.tar.gz.

File metadata

  • Download URL: securedata-2022.1.20.1.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.8.0 tqdm/4.62.3 CPython/3.7.3

File hashes

Hashes for securedata-2022.1.20.1.tar.gz
Algorithm Hash digest
SHA256 aeb6f00026e8a8d916e8a7384a6560e79e85e1d43fe3a021c5df687b94376d31
MD5 f442ade210eadd9cdd686229b2605381
BLAKE2b-256 49b8de0c4018ba3ca16dba6d95ea994c2a9056b8cfd6a6cd99d66207fe324608

See more details on using hashes here.

File details

Details for the file securedata-2022.1.20.1-py3-none-any.whl.

File metadata

  • Download URL: securedata-2022.1.20.1-py3-none-any.whl
  • Upload date:
  • Size: 8.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.8.0 tqdm/4.62.3 CPython/3.7.3

File hashes

Hashes for securedata-2022.1.20.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3f3fdb8b85acca7fcec7d4ef0b9b988dd74e777458bc535209f2fb984b67d41f
MD5 4e3b8d4c3a1f2423205aa82a53b73e7a
BLAKE2b-256 7719ffa25e02579787225c9d2acba44ce78cef9edda8f967ff6acc75667200c8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page