Skip to content

opendilab/DI-toolkit

Repository files navigation

DI-toolkit

PyPI PyPI - Python Version Loc Comments

Docs Deploy Code Test Badge Creation Package Release codecov

GitHub stars GitHub forks GitHub commit activity GitHub issues GitHub pulls Contributors GitHub license

A simple toolkit package for opendilab, including the following utilities:

  • ditk.logging, a easy-to-use logger system
  • ditk.annonated, an annotated documentation generation script
  • ditk.tensorboard, a utility for extract data from tensorboard log file
    • ditk.tensorboard.plot, plot utilities for plotting data extracted from tensorboard log file

Installation

You can simply install it with pip command line from the official PyPI site.

pip install DI-toolkit

Or installing from the latest source code as follows:

git clone https://github.com/opendilab/DI-toolkit.git
cd di-toolkit
pip install . --user

Quick Start

Example of ditk.logging

Here is an example of logging.

from ditk import logging

if __name__ == '__main__':
    logging.try_init_root(logging.INFO)
    logging.info('This is info')
    logging.warning('This is warning with integer 233')
    logging.error('This is a error with string \'233\'.')

    try:
        _ = 1 / 0
    except ZeroDivisionError as err:
        logging.exception(err)

ditk.logginghas almost the same interface as native logging module. You can directly replace import logging in the code with from ditk import logging.

ditk.annonated

Python annotated documentation generation script like the following

Usage

python -m ditk.doc.annotated create -i ditk/doc/annotated/ppo.py -o my_doc/index.html -L zh

You will get

my_doc
├── assets
│   ├── pylit.css
│   └── solarized.css
└── index.html

Help Information

  • python -m ditk.doc.annotated --help
Usage: python -m ditk.doc.annotated [OPTIONS] COMMAND [ARGS]...

  Utils for creating annotation documentation.

Options:
  -v, --version  Show version information.
  -h, --help     Show this message and exit.

Commands:
  create  Utils for creating annotation documentation from local code.
  • python -m ditk.doc.annotated create --help
Usage: python -m ditk.doc.annotated create [OPTIONS]

  Utils for creating annotation documentation from local code.

Options:
  -i, --input_file FILE       Input source code.  [required]
  -o, --output_file FILE      Output annotated documentation code.  [required]
  -A, --assets_dir DIRECTORY  Directory for assets file of this documentation.
  -L, --language [zh|en]      Language for documentation.  [default: en]
  -T, --title TEXT            Title of the documentation.  [default: <Untitled
                              Documentation>]
  -h, --help                  Show this message and exit.

Related Library

Create Multi-Seed Multi-Algorithm Benchmark Plots

import matplotlib.pyplot as plt
import seaborn as sns

from ditk.tensorboard.plots import tb_create_range_plots

sns.set()

tb_create_range_plots(
    'test/testfile/pong_tb',  # directory of tensorboard log
    xname='step',
    yname='evaluator_step/reward_mean',
)

plt.show()

tb_create_range_plots

Contributing

We appreciate all contributions to improve DI-toolkit, both logic and system designs. Please refer to CONTRIBUTING.md for more guides.

License

DI-toolkit released under the Apache 2.0 license.