Skip to main content

A utility for managing logging directories.

Project description

LogDir

A Python library for managing logging directories.

Source PyPI Conda CI/CD Docs Docs Status
GitHub PyPI Conda Recipe Test and Deploy logdir.btjanaka.net Netlify Status

Installation

To install from PyPI, run:

pip install logdir

To install from Conda, run:

conda install -c conda-forge logdir

To install from source, clone this repo, cd into it, and run:

pip install .

logdir is tested on Python 3.7+. Earlier Python versions may work but are not guaranteed.

Usage

If your experiment is called My Experiment, you can create a logging directory for it with:

from logdir import LogDir

logdir = LogDir("My Experiment")

This will create a logging directory of the form ./logs/YYYY-MM-DD_HH-MM-SS_my-experiment; you can change ./logs by passing in a second argument for the root directory when initializing LogDir, i.e. LogDir("My Experiment", "./different-log-dir").

You now have access to useful methods for creating files and saving data in the directory. For example, start writing to a file new.txt in the directory with:

with logdir.pfile("new.txt").open() as file:
    file.write("Hello World!")

This takes advantage of the pfile() method, which creates a pathlib.Path to the new file. It also uses pathlib.Path.open().

pfile() will also create intermediate directories, so this will work even if foo/bar/ does not exist in the logging directory already:

with logdir.pfile("foo/bar/new.txt").open() as file:
    file.write("Hello World!")

There is also save_data(), which saves data to a file. JSON, YAML, TOML, and pickle files are currently supported.

logdir.save_data({"a": 1, "b": 2, "c": 3}, "file.json")

Finally, readme() adds a README.md to the directory with multiple pieces of information. For instance, this command:

logdir.readme(date=True, git_commit=True)

Will create something like:

# My Experiment

- Date: 2020-10-04 23:04:05
- Git Commit: e3rftyt543rt5y67jhtgr4yhju

See the API for all available methods.

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

logdir-0.13.0.tar.gz (6.7 kB view details)

Uploaded Source

Built Distribution

logdir-0.13.0-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file logdir-0.13.0.tar.gz.

File metadata

  • Download URL: logdir-0.13.0.tar.gz
  • Upload date:
  • Size: 6.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.7.17 Linux/5.15.0-1039-azure

File hashes

Hashes for logdir-0.13.0.tar.gz
Algorithm Hash digest
SHA256 b04e4a58220489fbb7e6ba4781a3f45f872ffbd529aa295ba8b4495007f1a7b5
MD5 d15a1a3b97ee3c002228a2a0214bb824
BLAKE2b-256 6b1db98e43359fb75d7c4e1fdfeb400df3440f2410ac86f72ce1906e6dbce477

See more details on using hashes here.

File details

Details for the file logdir-0.13.0-py3-none-any.whl.

File metadata

  • Download URL: logdir-0.13.0-py3-none-any.whl
  • Upload date:
  • Size: 7.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.7.17 Linux/5.15.0-1039-azure

File hashes

Hashes for logdir-0.13.0-py3-none-any.whl
Algorithm Hash digest
SHA256 702dcd4952d14c54086ac0b58c71816ca068a9e589db6d8a123746090ee318c9
MD5 8991ee84b185b5e9b3e4deab717d5c80
BLAKE2b-256 c27b681636a7a7422c113354ce06422b3722a339624ea21e6a06d7e5ac98d3b4

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