Name | rdetoolkit JSON |
Version |
1.0.1
JSON |
| download |
home_page | None |
Summary | A module that supports the workflow of the RDE2.0 dataset construction program |
upload_time | 2024-08-01 03:52:17 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.9 |
license | None |
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"
}