Skip to main content

Simplify scientific data logging

Project description

CI Status PyPI

SimLogger

See the docs! - https://joey-kilgore.github.io/SimLogger/index.html Logger and python data archiving

Archive your python objects simply and easiy, and never worry about overwriting files. All data is defined with 3 key components
simTag - tag unique for each simulation (like naming the experiment)
objTag - tag unique for each object (like the variable within the experiments)
date-time - this is automatically added by SimLogger to help ensure unqiueness of files

With that you can save your data easily!

from SimLogger import SimLogger
simTag = 'sampleSimulation'
objTag = 'sampleArray'
sampleArray = [1,2,3,4]
SimLogger.saveObj(simTag, objTag, sampleArray, makeNote=True)

# Outputs
# 2024-06-25 10:44:44,063 [INFO ] Logger Loaded
# 2024-06-25 10:44:44,064 [INFO ] OBJECT,sampleSimulation,sampleArray,data/obj/sampleSimulation_sampleArray_2024-06-25_10-44-44.pkl
#
# additionally a file is saved: data/obj/sampleSimulation_sampleArray_2024-06-25_10-44-44.pkl

And you can load your data later using a uniqueId
uniqueId - unique identifier that goes to the python pkl file (almost always is simTag_objTag)

from SimLogger import SimLogger
sampleArrayLoaded = SimLogger.getObjectFromuniqueId('sampleSimulation_sampleArray')
print(sampleArrayLoaded)

# Ouptuts
# [1, 2, 3, 4]

Installation

Install the python package
pip install SimLogger

To utilize the FigLogger you will need to register your machine ssh keys with kachery
Run the following command and follow the instructions
kachery-cloud-init

To utilize SimNotify you will need to create a notify channel so that your phone (or device) can be linked to where the notifications will be sent.
Go to https://notify.run/ and click create a channel
Scan the QR code and subscribe/enable notifications (you may need to check your system settings to ensure these are turned on)
Copy the link generated, and set the config files on your machine to this link by running:
notify-run configure <paste-link-here>

Now you should be able to run the python script:

from SimLogger import SimNotify
endpoint = "<paste-link-here>"
SimNotify.sendNotification("Hello World", endpoint=endpoint)

Development

install all dependencies (including linting and testing) with:
pip install -e '.[lint,test,doc]

run tests with:
pytest tests/

run linting + formatting + etc with:
pre-commit run --all-files

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

simlogger-0.4.0.tar.gz (16.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

simlogger-0.4.0-py2.py3-none-any.whl (19.0 kB view details)

Uploaded Python 2Python 3

File details

Details for the file simlogger-0.4.0.tar.gz.

File metadata

  • Download URL: simlogger-0.4.0.tar.gz
  • Upload date:
  • Size: 16.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.27.0

File hashes

Hashes for simlogger-0.4.0.tar.gz
Algorithm Hash digest
SHA256 3b7cc872cadcb30be4e2b67fbc4d7157d404f742ed32e900a3f179da01dbc7b3
MD5 45cf3627d63c8c664aa7f7cb7c00695f
BLAKE2b-256 894ae204ea65d9a9184019566dcdb1deddeb9081f99f3bf51a704b3d5bfa21e1

See more details on using hashes here.

File details

Details for the file simlogger-0.4.0-py2.py3-none-any.whl.

File metadata

  • Download URL: simlogger-0.4.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 19.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.27.0

File hashes

Hashes for simlogger-0.4.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 f8118c90a258d9ffdc9380a7713f8046afcefc6e569153ed32f135dece8ace56
MD5 af2411ac726b8e3ab729614377e9a2a7
BLAKE2b-256 e9ec8ed882395432784b1125c2713c81e97eda664ef9a938237ed37ca21a17b7

See more details on using hashes here.

Supported by

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