rdetoolkit


Namerdetoolkit JSON
Version 1.0.1 PyPI version JSON
download
home_pageNone
SummaryA module that supports the workflow of the RDE2.0 dataset construction program
upload_time2024-08-01 03:52:17
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseNone
keywords rde dataset rdetoolkit structure toolkit
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![GitHub Release](https://img.shields.io/github/v/release/nims-dpfc/rdetoolkit)
[![python.org](https://img.shields.io/badge/Python-3.9%7C3.10%7C3.11-%233776AB?logo=python)](https://www.python.org/downloads/release/python-3917/)
[![MIT License](https://img.shields.io/badge/license-MIT-green)](https://github.com/nims-dpfc/rdetoolkit/blob/main/LICENSE)
[![Issue](https://img.shields.io/badge/issue_tracking-github-orange)](https://github.com/nims-dpfc/rdetoolkit/issues)
![workflow](https://github.com/nims-dpfc/rdetoolkit/actions/workflows/main.yml/badge.svg)
![coverage](docs/img/coverage.svg)

# RDEToolKit

RDEToolKitは、RDE2.0構造化プログラムのワークフローを作成するための基本的なPythonパッケージです。
RDEToolKitの各種モジュールを使うことで、RDEへの研究・実験データの登録処理を簡単に構築できます。
また、ユーザーが研究や実験データに対して使用されているPythonモジュールと組み合わせることで、データの登録から加工、グラフ化などより多様な処理を実現できます。

## Documents

See [documentation](https://nims-dpfc.github.io/rdetoolkit/) for more details.

## Contributing

変更を加える場合、以下のドキュメントを一読お願いします。

- [CONTRIBUTING.md](CONTRIBUTING.md)

## Install

インストールは、下記コマンドを実行してください。

```shell
pip install rdetoolkit
```

## Usage

RDE構造化プログラム構築の一例です。

### プロジェクトを作成する

まず、RDE構造化プログラムに必要なファイルを準備します。以下のコマンドをターミナルやシェル上で実行してください。

```python
python3 -m rdetoolkit init
```

コマンドが正しく動作すると、下記で示したファイル・ディレクトリが生成されます。

この例では、`container`というディレクトリを作成して、開発を進めます。

- **requirements.txt**
  - 構造化プログラム構築で使用したいPythonパッケージを追加してください。必要に応じて`pip install`を実行してください。
- **modules**
  - 構造化処理で使用したいプログラムを格納してください。別セクションで説明します。
- **main.py**
  - 構造化プログラムの起動処理を定義
- **data/inputdata**
  - 構造化処理対象データファイルを配置してください。
- **data/invoice**
  - ローカル実行させるためには空ファイルでも必要になります。
- **data/tasksupport**
  - 構造化処理の補助するファイル群を配置してください。

```shell
container
├── data
│   ├── inputdata
│   ├── invoice
│   │   └── invoice.json
│   └── tasksupport
│       ├── invoice.schema.json
│       └── metadata-def.json
├── main.py
├── modules
└── requirements.txt
```

### 構造化処理の実装

入力データに対してデータ加工・グラフ化・機械学習用のcsvファイルの作成など処理を実行し、RDEへデータを登録できます。下記の書式に従っていただければ、独自の処理をRDEの構造化処理のフローに組み込み込むことが可能です。

`dataset()`は、以下の2つの引数を渡してください。

- srcpaths (RdeInputDirPaths): 処理のための入力リソースへのパス
- resource_paths (RdeOutputResourcePath): 処理結果を保存するための出力リソースへのパス

```python
def dataset(srcpaths: RdeInputDirPaths, resource_paths: RdeOutputResourcePath):
    ...
```

今回の例では、`modules`以下に、`def display_messsage()`というダミー処理を定義し、独自の構造化処理を定義したいと思います。`modules/modules.py`というファイルを作成します。

```python
# modules/modules.py
def display_messsage(path):
    print(f"Test Message!: {path}")

def dataset(srcpaths, resource_paths):
    display_messsage(srcpaths)
    display_messsage(resource_paths)
```

### 起動処理について

続いて、`rdetoolkit.workflow.run()`を使って、起動処理を定義します。起動処理で主に実行処理は、

- 入力ファイルのチェック
- 入力ファイルとRDE構造化で規定する各種ディレクトリパスを取得する
- ユーザーごとで定義した具体的な構造化処理を実行

```python
import rdetoolkit
from modules.modules import dataset#独自で定義した構造化処理関数

#独自で定義した構造化処理関数を引数として渡す
rdetoolkit.workflows.run(custom_dataset_function=dataset)
```

もし、独自の構造化処理を渡さない場合、以下のように定義してください。

```python
import rdetoolkit

rdetoolkit.workflows.run()
```

### ローカル環境で動作させる場合

各自のローカル環境で、デバッグやテスト的にRDEの構造化処理を実行したい場合、`data`ディレクトリに必要な入力データを追加することで、ローカル環境でも実行可能です。ディレクトリ構造は、以下のように、main.pyと同じ階層にdataディレクトリを配置していただければ動作します。

```shell
container/
├── main.py
├── requirements.txt
├── modules/
│   └── modules.py
└── data/
    ├── inputdata/
    │   └── <処理したい実験データ>
    ├── invoice/
    │   └── invoice.json
    └── tasksupport/
        ├── metadata-def.json
        └── invoice.schema.json
```

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "rdetoolkit",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "RDE, dataset, rdetoolkit, structure, toolkit",
    "author": null,
    "author_email": "Sonokawa Hayato <SONOKAWA.Hayato@nims.go.jp>",
    "download_url": "https://files.pythonhosted.org/packages/a3/27/42a39ab11d8737803ae110f29392e7c59dc9daaa62081bb1d2d4a34202e6/rdetoolkit-1.0.1.tar.gz",
    "platform": null,
    "description": "![GitHub Release](https://img.shields.io/github/v/release/nims-dpfc/rdetoolkit)\n[![python.org](https://img.shields.io/badge/Python-3.9%7C3.10%7C3.11-%233776AB?logo=python)](https://www.python.org/downloads/release/python-3917/)\n[![MIT License](https://img.shields.io/badge/license-MIT-green)](https://github.com/nims-dpfc/rdetoolkit/blob/main/LICENSE)\n[![Issue](https://img.shields.io/badge/issue_tracking-github-orange)](https://github.com/nims-dpfc/rdetoolkit/issues)\n![workflow](https://github.com/nims-dpfc/rdetoolkit/actions/workflows/main.yml/badge.svg)\n![coverage](docs/img/coverage.svg)\n\n# RDEToolKit\n\nRDEToolKit\u306f\u3001RDE2.0\u69cb\u9020\u5316\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u3092\u4f5c\u6210\u3059\u308b\u305f\u3081\u306e\u57fa\u672c\u7684\u306aPython\u30d1\u30c3\u30b1\u30fc\u30b8\u3067\u3059\u3002\nRDEToolKit\u306e\u5404\u7a2e\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u4f7f\u3046\u3053\u3068\u3067\u3001RDE\u3078\u306e\u7814\u7a76\u30fb\u5b9f\u9a13\u30c7\u30fc\u30bf\u306e\u767b\u9332\u51e6\u7406\u3092\u7c21\u5358\u306b\u69cb\u7bc9\u3067\u304d\u307e\u3059\u3002\n\u307e\u305f\u3001\u30e6\u30fc\u30b6\u30fc\u304c\u7814\u7a76\u3084\u5b9f\u9a13\u30c7\u30fc\u30bf\u306b\u5bfe\u3057\u3066\u4f7f\u7528\u3055\u308c\u3066\u3044\u308bPython\u30e2\u30b8\u30e5\u30fc\u30eb\u3068\u7d44\u307f\u5408\u308f\u305b\u308b\u3053\u3068\u3067\u3001\u30c7\u30fc\u30bf\u306e\u767b\u9332\u304b\u3089\u52a0\u5de5\u3001\u30b0\u30e9\u30d5\u5316\u306a\u3069\u3088\u308a\u591a\u69d8\u306a\u51e6\u7406\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002\n\n## Documents\n\nSee [documentation](https://nims-dpfc.github.io/rdetoolkit/) for more details.\n\n## Contributing\n\n\u5909\u66f4\u3092\u52a0\u3048\u308b\u5834\u5408\u3001\u4ee5\u4e0b\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u4e00\u8aad\u304a\u9858\u3044\u3057\u307e\u3059\u3002\n\n- [CONTRIBUTING.md](CONTRIBUTING.md)\n\n## Install\n\n\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306f\u3001\u4e0b\u8a18\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n\n```shell\npip install rdetoolkit\n```\n\n## Usage\n\nRDE\u69cb\u9020\u5316\u30d7\u30ed\u30b0\u30e9\u30e0\u69cb\u7bc9\u306e\u4e00\u4f8b\u3067\u3059\u3002\n\n### \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u4f5c\u6210\u3059\u308b\n\n\u307e\u305a\u3001RDE\u69cb\u9020\u5316\u30d7\u30ed\u30b0\u30e9\u30e0\u306b\u5fc5\u8981\u306a\u30d5\u30a1\u30a4\u30eb\u3092\u6e96\u5099\u3057\u307e\u3059\u3002\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3092\u30bf\u30fc\u30df\u30ca\u30eb\u3084\u30b7\u30a7\u30eb\u4e0a\u3067\u5b9f\u884c\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n\n```python\npython3 -m rdetoolkit init\n```\n\n\u30b3\u30de\u30f3\u30c9\u304c\u6b63\u3057\u304f\u52d5\u4f5c\u3059\u308b\u3068\u3001\u4e0b\u8a18\u3067\u793a\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u30fb\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304c\u751f\u6210\u3055\u308c\u307e\u3059\u3002\n\n\u3053\u306e\u4f8b\u3067\u306f\u3001`container`\u3068\u3044\u3046\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u6210\u3057\u3066\u3001\u958b\u767a\u3092\u9032\u3081\u307e\u3059\u3002\n\n- **requirements.txt**\n  - \u69cb\u9020\u5316\u30d7\u30ed\u30b0\u30e9\u30e0\u69cb\u7bc9\u3067\u4f7f\u7528\u3057\u305f\u3044Python\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u5fc5\u8981\u306b\u5fdc\u3058\u3066`pip install`\u3092\u5b9f\u884c\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n- **modules**\n  - \u69cb\u9020\u5316\u51e6\u7406\u3067\u4f7f\u7528\u3057\u305f\u3044\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u683c\u7d0d\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u5225\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u8aac\u660e\u3057\u307e\u3059\u3002\n- **main.py**\n  - \u69cb\u9020\u5316\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u8d77\u52d5\u51e6\u7406\u3092\u5b9a\u7fa9\n- **data/inputdata**\n  - \u69cb\u9020\u5316\u51e6\u7406\u5bfe\u8c61\u30c7\u30fc\u30bf\u30d5\u30a1\u30a4\u30eb\u3092\u914d\u7f6e\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n- **data/invoice**\n  - \u30ed\u30fc\u30ab\u30eb\u5b9f\u884c\u3055\u305b\u308b\u305f\u3081\u306b\u306f\u7a7a\u30d5\u30a1\u30a4\u30eb\u3067\u3082\u5fc5\u8981\u306b\u306a\u308a\u307e\u3059\u3002\n- **data/tasksupport**\n  - \u69cb\u9020\u5316\u51e6\u7406\u306e\u88dc\u52a9\u3059\u308b\u30d5\u30a1\u30a4\u30eb\u7fa4\u3092\u914d\u7f6e\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n\n```shell\ncontainer\n\u251c\u2500\u2500 data\n\u2502   \u251c\u2500\u2500 inputdata\n\u2502   \u251c\u2500\u2500 invoice\n\u2502   \u2502   \u2514\u2500\u2500 invoice.json\n\u2502   \u2514\u2500\u2500 tasksupport\n\u2502       \u251c\u2500\u2500 invoice.schema.json\n\u2502       \u2514\u2500\u2500 metadata-def.json\n\u251c\u2500\u2500 main.py\n\u251c\u2500\u2500 modules\n\u2514\u2500\u2500 requirements.txt\n```\n\n### \u69cb\u9020\u5316\u51e6\u7406\u306e\u5b9f\u88c5\n\n\u5165\u529b\u30c7\u30fc\u30bf\u306b\u5bfe\u3057\u3066\u30c7\u30fc\u30bf\u52a0\u5de5\u30fb\u30b0\u30e9\u30d5\u5316\u30fb\u6a5f\u68b0\u5b66\u7fd2\u7528\u306ecsv\u30d5\u30a1\u30a4\u30eb\u306e\u4f5c\u6210\u306a\u3069\u51e6\u7406\u3092\u5b9f\u884c\u3057\u3001RDE\u3078\u30c7\u30fc\u30bf\u3092\u767b\u9332\u3067\u304d\u307e\u3059\u3002\u4e0b\u8a18\u306e\u66f8\u5f0f\u306b\u5f93\u3063\u3066\u3044\u305f\u3060\u3051\u308c\u3070\u3001\u72ec\u81ea\u306e\u51e6\u7406\u3092RDE\u306e\u69cb\u9020\u5316\u51e6\u7406\u306e\u30d5\u30ed\u30fc\u306b\u7d44\u307f\u8fbc\u307f\u8fbc\u3080\u3053\u3068\u304c\u53ef\u80fd\u3067\u3059\u3002\n\n`dataset()`\u306f\u3001\u4ee5\u4e0b\u306e2\u3064\u306e\u5f15\u6570\u3092\u6e21\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n\n- srcpaths (RdeInputDirPaths): \u51e6\u7406\u306e\u305f\u3081\u306e\u5165\u529b\u30ea\u30bd\u30fc\u30b9\u3078\u306e\u30d1\u30b9\n- resource_paths (RdeOutputResourcePath): \u51e6\u7406\u7d50\u679c\u3092\u4fdd\u5b58\u3059\u308b\u305f\u3081\u306e\u51fa\u529b\u30ea\u30bd\u30fc\u30b9\u3078\u306e\u30d1\u30b9\n\n```python\ndef dataset(srcpaths: RdeInputDirPaths, resource_paths: RdeOutputResourcePath):\n    ...\n```\n\n\u4eca\u56de\u306e\u4f8b\u3067\u306f\u3001`modules`\u4ee5\u4e0b\u306b\u3001`def display_messsage()`\u3068\u3044\u3046\u30c0\u30df\u30fc\u51e6\u7406\u3092\u5b9a\u7fa9\u3057\u3001\u72ec\u81ea\u306e\u69cb\u9020\u5316\u51e6\u7406\u3092\u5b9a\u7fa9\u3057\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002`modules/modules.py`\u3068\u3044\u3046\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002\n\n```python\n# modules/modules.py\ndef display_messsage(path):\n    print(f\"Test Message!: {path}\")\n\ndef dataset(srcpaths, resource_paths):\n    display_messsage(srcpaths)\n    display_messsage(resource_paths)\n```\n\n### \u8d77\u52d5\u51e6\u7406\u306b\u3064\u3044\u3066\n\n\u7d9a\u3044\u3066\u3001`rdetoolkit.workflow.run()`\u3092\u4f7f\u3063\u3066\u3001\u8d77\u52d5\u51e6\u7406\u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002\u8d77\u52d5\u51e6\u7406\u3067\u4e3b\u306b\u5b9f\u884c\u51e6\u7406\u306f\u3001\n\n- \u5165\u529b\u30d5\u30a1\u30a4\u30eb\u306e\u30c1\u30a7\u30c3\u30af\n- \u5165\u529b\u30d5\u30a1\u30a4\u30eb\u3068RDE\u69cb\u9020\u5316\u3067\u898f\u5b9a\u3059\u308b\u5404\u7a2e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u30d1\u30b9\u3092\u53d6\u5f97\u3059\u308b\n- \u30e6\u30fc\u30b6\u30fc\u3054\u3068\u3067\u5b9a\u7fa9\u3057\u305f\u5177\u4f53\u7684\u306a\u69cb\u9020\u5316\u51e6\u7406\u3092\u5b9f\u884c\n\n```python\nimport rdetoolkit\nfrom modules.modules import dataset#\u72ec\u81ea\u3067\u5b9a\u7fa9\u3057\u305f\u69cb\u9020\u5316\u51e6\u7406\u95a2\u6570\n\n#\u72ec\u81ea\u3067\u5b9a\u7fa9\u3057\u305f\u69cb\u9020\u5316\u51e6\u7406\u95a2\u6570\u3092\u5f15\u6570\u3068\u3057\u3066\u6e21\u3059\nrdetoolkit.workflows.run(custom_dataset_function=dataset)\n```\n\n\u3082\u3057\u3001\u72ec\u81ea\u306e\u69cb\u9020\u5316\u51e6\u7406\u3092\u6e21\u3055\u306a\u3044\u5834\u5408\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u5b9a\u7fa9\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n\n```python\nimport rdetoolkit\n\nrdetoolkit.workflows.run()\n```\n\n### \u30ed\u30fc\u30ab\u30eb\u74b0\u5883\u3067\u52d5\u4f5c\u3055\u305b\u308b\u5834\u5408\n\n\u5404\u81ea\u306e\u30ed\u30fc\u30ab\u30eb\u74b0\u5883\u3067\u3001\u30c7\u30d0\u30c3\u30b0\u3084\u30c6\u30b9\u30c8\u7684\u306bRDE\u306e\u69cb\u9020\u5316\u51e6\u7406\u3092\u5b9f\u884c\u3057\u305f\u3044\u5834\u5408\u3001`data`\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u5fc5\u8981\u306a\u5165\u529b\u30c7\u30fc\u30bf\u3092\u8ffd\u52a0\u3059\u308b\u3053\u3068\u3067\u3001\u30ed\u30fc\u30ab\u30eb\u74b0\u5883\u3067\u3082\u5b9f\u884c\u53ef\u80fd\u3067\u3059\u3002\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u69cb\u9020\u306f\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u3001main.py\u3068\u540c\u3058\u968e\u5c64\u306bdata\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u914d\u7f6e\u3057\u3066\u3044\u305f\u3060\u3051\u308c\u3070\u52d5\u4f5c\u3057\u307e\u3059\u3002\n\n```shell\ncontainer/\n\u251c\u2500\u2500 main.py\n\u251c\u2500\u2500 requirements.txt\n\u251c\u2500\u2500 modules/\n\u2502   \u2514\u2500\u2500 modules.py\n\u2514\u2500\u2500 data/\n    \u251c\u2500\u2500 inputdata/\n    \u2502   \u2514\u2500\u2500 <\u51e6\u7406\u3057\u305f\u3044\u5b9f\u9a13\u30c7\u30fc\u30bf>\n    \u251c\u2500\u2500 invoice/\n    \u2502   \u2514\u2500\u2500 invoice.json\n    \u2514\u2500\u2500 tasksupport/\n        \u251c\u2500\u2500 metadata-def.json\n        \u2514\u2500\u2500 invoice.schema.json\n```\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A module that supports the workflow of the RDE2.0 dataset construction program",
    "version": "1.0.1",
    "project_urls": {
        "Bug Tracker": "https://github.com/nims-dpfc/rdetoolkit",
        "Homepage": "https://github.com/nims-dpfc/rdetoolkit"
    },
    "split_keywords": [
        "rde",
        " dataset",
        " rdetoolkit",
        " structure",
        " toolkit"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "59c74f8d4c9a126bea2e2209db0680fa95e523595153a6ceb3dc478668cd3270",
                "md5": "020689024165654e6525d566ddaf0325",
                "sha256": "d24a11849bf02472faade2c184759063e823e09c4e6c2a48d89028da0c3605a1"
            },
            "downloads": -1,
            "filename": "rdetoolkit-1.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "020689024165654e6525d566ddaf0325",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 88541,
            "upload_time": "2024-08-01T03:52:15",
            "upload_time_iso_8601": "2024-08-01T03:52:15.653764Z",
            "url": "https://files.pythonhosted.org/packages/59/c7/4f8d4c9a126bea2e2209db0680fa95e523595153a6ceb3dc478668cd3270/rdetoolkit-1.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a32742a39ab11d8737803ae110f29392e7c59dc9daaa62081bb1d2d4a34202e6",
                "md5": "5d69f609b2ece4c864a83ee6fd336972",
                "sha256": "ea64a7324a3279d52c9bcde8e645516e27e9e52561df7aaccc736be419c74800"
            },
            "downloads": -1,
            "filename": "rdetoolkit-1.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "5d69f609b2ece4c864a83ee6fd336972",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 10044623,
            "upload_time": "2024-08-01T03:52:17",
            "upload_time_iso_8601": "2024-08-01T03:52:17.721335Z",
            "url": "https://files.pythonhosted.org/packages/a3/27/42a39ab11d8737803ae110f29392e7c59dc9daaa62081bb1d2d4a34202e6/rdetoolkit-1.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-01 03:52:17",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "nims-dpfc",
    "github_project": "rdetoolkit",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "tox": true,
    "lcname": "rdetoolkit"
}
        
Elapsed time: 2.03178s