# 魔術言語 Zoltraak
Zoltraakは本格的な魔法時代のプログラミング言語です。
Zoltraakには自然言語を別の形の言語に変換するプロンプトコンパイラシステムを採用し、数語の呪文から複雑な魔導書を生成し、微調整の後それを古代語として圧縮し呪文を秘匿する事も可能です。
これにより無詠唱での高速なプログラム実行と、独自言語呪文や暗号呪文へのコンパイルも可能とするため周りから呪文を抜き取られリバースエンジニアリングされる心配もありません。
また、独自言語を用い数語微修正するのみで、実行言語が瞬時に変わり術が発動します。
これにより相対する敵よりも高速かつ柔軟な術の発動を可能とします。

![](assets/images/dai4697_A_digital_painting_of_a_female_wizard_casting_a_powerfu_84046a02-5831-48c1-b8e3-c8b5a49d69e8.png)

# 目次

1. [魔術言語 Zoltraak](#魔術言語-zoltraak)
   - [用語定義](#用語定義)
   - [文字](#文字)
   - [主な機能（予定）](#主な機能予定)
   - [利用方法](#利用方法)
2. [オプション（Option）](#オプションoption)
3. [様々なプログラミング言語でのZoltraakの利用方法](#様々なプログラミング言語でのzoltraakの利用方法)
4. [インストール方法](#インストール方法)
5. [プロジェクトへの参加](#プロジェクトへの参加)
6. [使用方法](#使用方法)
7. [プロンプトコンパイラの分類について](#プロンプトコンパイラの分類について)
   - [世界・国家](#世界国家)
8. [TODO](#todo)
   - [ドキュメント生成](#ドキュメント生成)
   - [テスト](#テスト)
   - [Issue管理](#issue管理)
   - [ファイル管理](#ファイル管理)
   - [要件定義関連](#要件定義関連)
   - [その他](#その他)


![Last frame of video](assets/images/last_frame.png)


## 用語定義

| システム用語 | 魔法体系 | 説明 | 自然言語プログラミング体系 |
|---|---|---|---|
| インタプリタ実行 | 即時魔法 | 対話形式の自然言語による指示のこと。即座に魔法を発動できる。 | zoltraak 魔導書 |
| コンパイラ実行 | 錬成魔法 | ドキュメント形式で記述された魔法の定義のこと。じっくりと魔法を錬成できる。 | zoltraak 魔導書 --prompt 呪文 |
| コンパイラ | 錬成器 | 魔法を錬成するための道具のこと。魔法の品質を高めるのに役立つ。 | zoltraak -c 錬成器 |
| 自然言語プログラム | 魔導書 | 魔法の理論や使い方を体系的にまとめた書物のこと。魔法の学習に役立ちこれ自体は一般言語で執筆されている。zoltraakにより魔法を発動することも出来る。 | zoltraak 魔導書 |
| 高級言語プログラム | 古代魔導書 | 太古の魔法使いたちが残した神秘的な書物。ルーン文字で書かれており、強力な魔法の秘密が記されている。解読は容易ではないが、魔法の真髄を学ぶことができる。 | zoltraak -a 古代魔導書 |
| 機械語 | 魔法石 | 魔導書を錬成器で錬成したもの、魔導書を実行すると魔法石により魔法が発動する | zoltraak -c 魔法石.md |



### 文字
| システム用語 | 魔法体系 | 説明 |
|---|---|---|
| 自然言語 | 世界語 | 人間が日常的に使用する言語。自然に発生し、文法や語彙が複雑。魔法を唱えるのに使われる。 |
| プログラミング言語 | 古代語 | 魔法を正確に記述するための言語。厳密な文法と限られた語彙を持つ。魔導書の記述に使われる。 |
| Python | ルーン文字 | 魔法陣や魔法具に刻まれる神秘的な文字。魔力を込めて使われる。 |

## 主な機能（予定）

- マークダウンファイルから様々な高級言語のコードへの変換
  - 対応言語: Python, Java, C++, JavaScript, TypeScriptなど
- AnthropicのClaude AIモデルを利用したコード生成
- 変換済みファイルのキャッシュによる高速な再実行 
- 進捗状況の追跡とテストケースの実行
- CI/CDワークフローとの統合

## 利用方法

```sh
pip install zoltraak
```

```
zoltraak book.md -p "本を書きたい"
```

ファイル作成後は以下のように何度でも書き換えることができる。
```
zoltraak book.md -p "もっと分量増やしたい"
```

```sh
# RAGに突っ込むファイル群を指定
zoltraak aaaa.md -f ./input.md （作成予定）
# 一括修正
zoltraak dir/*.md （作成予定）
```


![llmcomment.png](assets/images/llmcomment.png)


| |プロンプト|ドキュメント|高級言語|
|---|---|---|---|
|ファイルなし|zoltraak docs --prompt text|zoltraak docs|zoltraak docs|
|ファイルあり (修正変更なし)|zoltraak docs --prompt text|zoltraak docs|zoltraak docs|
|ファイルあり (修正変更あり)|zoltraak docs --prompt text|zoltraak docs|zoltraak docs|

この表では、各セルに `zoltraak {ファイル名}` の形式でファイル名を入れています。

- 左側の列は、ファイルの有無とファイルの状態を表しています。
  1. ファイルなし
  2. ファイルあり (修正変更なし)
  3. ファイルあり (修正変更あり)

- 上側の行は、ファイルの種類とその説明を表しています。
  - テキストファイル (読み上げ文章)
  - マークダウンファイル (要件定義書)
  - Pythonファイル (高級言語)

各セルには、対応するファイルの種類に基づいて `zoltraak 読み上げ文章`、`zoltraak 要件定義書`、`zoltraak 高級言語` のようなコマンドが入っています

この表は、ファイルの有無とファイルの状態の関係性を明確に表現しており、ファイルの種類ごとにそれぞれの状態が適用可能であることを示しています。また、各セルにファイル名を入れることで、具体的なファイルの例を提供しています。


## オプション（Option）

Zoltraakには以下のようなオプションが用意されています。

- `--output-dir`: 生成されたPythonファイルの出力ディレクトリを指定します。デフォルトは"generated"ディレクトリです。
- `-p`, `--prompt`: 追加のプロンプト情報を指定します。これにより、既存のMarkdownファイルに対して変更を提案したり、新しい要件定義書を生成することができます。
- `-c`, `--compiler`: 要件定義書のテンプレートとなるMarkdownファイルのパスを指定します。デフォルトは"reqdef.md"です。

これらのオプションを使うことで、Zoltraakの機能をより柔軟に活用できます。例えば、既存のMarkdownファイルに対して変更を提案したり、新しい要件定義書を生成することができます。

また、要件定義書のテンプレートとなるMarkdownファイルを変更することで、生成される要件定義書の形式を変更することも可能です。




## 様々なプログラミング言語でのZoltraakの利用方法（作成予定）

Zoltraakは様々なプログラミング言語のファイルを処理することができます。以下に主要な言語での利用例を示します。

ファイル作成 & 

```
# 様々な言語でzoltraak を試してみよう

## Python
zoltraak script.py -p "ユーザー情報を管理するクラスを作成したい"
zoltraak utils.py -p "CSVファイルを読み込んでデータを処理する関数が必要"

## JavaScript
zoltraak app.js -p "TODOリストを管理するReactコンポーネントが必要"
zoltraak server.js -p "ExpressでRESTful APIを実装したい"

## Java  
zoltraak Main.java -p "学生の成績を計算するメソッドを追加してほしい"
zoltraak UserService.java -p "ユーザーのCRUD操作を行うメソッドを作成"

## C++
zoltraak main.cpp -p "リンクリストを使ってデータを管理する関数を書きたい" 
zoltraak utils.h -p "数学計算用のユーティリティ関数を定義したい"

## Ruby
zoltraak app.rb -p "ユーザー認証機能を実装したい"
zoltraak parser.rb -p "JSONデータをパースしてオブジェクトに変換する機能が欲しい"

上記は一例ですが、このようにzoltraak を使えば様々な言語やシチュエーションでコード生成ができます。
ぜひ色々なプロンプトを試して、zoltraak の可能性を探ってみてください！
```

実行



このように、zoltraak は対象となるファイルの拡張子から言語を判断し、適切な形式でコードを生成します。プロンプトには自然言語で実現したい機能や要件を記述するだけで、zoltraak が自動的にコードを生成してくれます。
プログラミング言語に関わらず、同じようにzoltraak を使うことができるため、様々なプロジェクトで活用できるでしょう。







## インストール方法


## プロジェクトへの参加

1. リポジトリをクローンします:
   ```
   git clone https://github.com/yourusername/Zoltraak.git
   ```

2. プロジェクトディレクトリに移動します:
   ```
   cd Zoltraak
   ```

3. 必要な依存関係をインストールします:
   ```
   pip install -r requirements.txt
   ```

4. Anthropic APIキーを設定します:
   - プロジェクトのルートディレクトリに`.env`ファイルを作成します。
   - 以下の行を`.env`ファイルに追加し、`YOUR_API_KEY`を実際のAnthropicのAPIキーに置き換えます:
     ```
     ANTHROPIC_API_KEY=YOUR_API_KEY
     ```


# pypiパッケージをローカル環境で開発するには以下の手順を踏むのが一般的です。

1. 仮想環境の作成
まず、パッケージ開発用の独立した仮想環境を作成します。これにより、システム全体のPythonとは分離された環境で開発できます。

```bash
python -m venv zoltraak-dev
source zoltraak-dev/bin/activate  # Linuxの場合
mypackage-env\Scripts\activate.bat  # Windowsの場合 
```

2. 必要なパッケージのインストール
開発に必要な依存パッケージをインストールします。例えば、`setuptools`と`wheel`は最低限必要です。

```bash
pip install setuptools wheel
```

3. パッケージのディレクトリ構成
以下のような基本的なディレクトリ構成でパッケージを作成します。

```
mypackage/
    mypackage/
        __init__.py
        module1.py
        module2.py
    tests/
        test_module1.py
        test_module2.py
    setup.py
    README.md
```

4. `setup.py`の作成
パッケージのメタデータや依存関係を記述した`setup.py`ファイルを作成します。例えば以下のようになります。

```python
from setuptools import setup, find_packages

setup(
    name='mypackage',
    version='0.1.0',
    packages=find_packages(),
    install_requires=[
        # 依存パッケージ
    ],
)
```

5. パッケージのインストール
開発中のパッケージを仮想環境にインストールします。

```bash
pip install -e .
```

これで、仮想環境内でパッケージを使用したり、変更を加えたりできるようになります。

6. パッケージの使用とテスト
パッケージの機能を使用したり、ユニットテストを実行したりして、開発を進めます。

7. ビルドと配布
完成したパッケージは以下のコマンドでビルドし、PyPIに公開できます。

```bash
python setup.py sdist bdist_wheel
twine upload dist/*
```

以上が、ローカル環境でのpypiパッケージ開発の基本的な流れです。仮想環境を使い、適切なディレクトリ構成と`setup.py`を用意することがポイントです。






### 追加コマンド


update_and_upload.sh
```sh

echo "バージョンをアップデート中..."
python update_version.py

echo "パッケージをビルド中..."
python setup.py sdist bdist_wheel

echo "ビルドしたパッケージをPyPIにアップロード中..."
twine upload dist/*
```

## ディレクトリ構成

```
zoltraak/setting/
├── compiler: 詠唱から自然言語への変換器
│   ├── akirapp.md
│   ├── func.md
│   ├── lisp.md
│   ├── obj.md
│   ├── obj_lisp.md
│   ├── obj_lisp_g.md
│   ├── obj_lisp_g_base64.md
│   └── reqdef.md
├── encryption: 暗号化ツール
│   └── emoji.md
├── formatter: プロンプトフォーマッタ
│   ├── md_comment.md
│   └── py_comment.md
├── interpretspec: インタプリタ型LLM強化プロンプト
│   └── hirokichi.md
└── softdb: 柔らかいDB


memo: setting内の全てのベンチマークは各々やるような実験システムもいれたい

```


## 使用方法

MarkdownファイルをPythonコードに変換するには、以下のコマンドを使用します。


はい、以下に英語のREADMEを日本語に翻訳しました。

## インストール
Zoltraakをインストールするには、以下のコマンドを実行します。

```sh
pip install zoltraak 
```

## 使用方法

MarkdownファイルをPythonコードに変換するには、以下のコマンドを使用します。

```
zoltraak <path_to_markdown_file>
```

`<path_to_markdown_file>`をMarkdownファイルのパスに置き換えてください。

生成されたPythonコードは、`generated`ディレクトリに、Markdownファイルと同じファイル名で`.py`拡張子を持つファイルとして保存されます。

## キャッシング

Zoltraakは、変更されていないMarkdownファイルの不要な変換を避けるために、キャッシングメカニズムを実装しています。各Markdownファイルのハッシュ値を計算し、`hashes.txt`ファイルに保存します。変換コマンドを実行すると、Zoltraakは現在のハッシュ値を保存されているものと比較します。ハッシュ値が一致する場合、Markdownファイルが変更されていないことを示しているため、変換はスキップされ、以前に生成されたPythonコードが使用されます。

## CI/CDとの統合

ZoltraakはCI/CDワークフローに統合して、変換プロセスを自動化することができます。`run_tests.sh`スクリプトは、この統合を容易にするために提供されています。以下の手順を実行します。

1. 仮想環境を作成し、アクティベートします。

2. 必要な依存関係をインストールします。

3. MarkdownファイルをPythonコードに変換します。

4. 生成されたPythonコードを実行します。

5. 対応するユニットテストを実行します。

`run_tests.sh`スクリプトをCI/CDパイプラインで使用するには、CI/CDシステムがビルドプロセスの一部としてスクリプトを実行するように設定してください。

## 貢献

コントリビューションを歓迎します！問題を見つけた場合や改善の提案がある場合は、issueを開くかプルリクエストを送信してください。

## ライセンス

このプロジェクトはMITライセンスの下でライセンスされています。詳細については、[LICENSE](LICENSE)ファイルを参照してください。


## TODO

### 急ぎ

- [ ] https://x.com/ai_syacho/status/1782956863912649114
- [ ] zoltraak "slkajfka" -c ファイルパス（これで自作もいける様にする）

```
ModuleNotFoundError系は
pip install ~~~~
で解決されます。

今回は
pip install anthropic
を行うことで解決されます。

↓
pip install zoltraak
一発で依存関係全て入る様に調整します。
```

### CLIコマンド関連
- [ ] zoltraak -p "manim動画を作りたい"  これで要件定義書とプログラムが生成

  - 

### ドキュメント生成
- [ ] 出力されたPythonファイルと詳細設計書のドキュメントを欲しい。
  - pythonファイルからドキュメントを生成したい
    - 例: `Zoltraakgenerated/calc.py` のようにpythonファイルを指定すると、そのファイルに対応するマークダウンドキュメントを生成、更新できるようにする 
    - pythonファイルのdocstringやコメントからドキュメントを自動生成する
    - 生成されたドキュメントはマークダウン形式で出力する

### テスト
- [ ] テストファイルは別途作成し、必要なタイミングでgit pushなどによりテストが実行されるようにしたい。

### Issue管理
- [ ] issueを記述したい。

### ファイル管理
- [x] 繰り返し利用する場合は、MarkdownファイルとPythonファイルを自動的に紐付けたい。（変更がある場合のみ再コンパイル）

### 要件定義関連
- [ ] 読み上げ文章から要件定義書を生成するプログラムをあきらさんのプロジェクトで実装する。
  - 宣言型と手続き型はごちゃっと入れた方が良さそう
- [ ] ZoltraakAAA.md 〜したい で定義書を修正
- [ ] あると嬉しいのは要件定義を決める際のプロンプトドキュメント 
  - コンパイラファイルは選択したい
- [ ] プログラムから要件定義に戻すフローが必要。

### その他
- [ ] 各種高級言語の変な癖を解消するための中間ファイルを事前に用意しておくのがよい。
- [ ] このファイルで、色合いに相当する部分のプロンプトの行数を教えて
- [ ] 差分をプロンプトとして伝達したい。
- [ ] 全て１から作り直す。mdファイルから
![image](assets/images//graph.png)







## プロンプトの分類

プロンプトは以下の4つの分類に分けることができます。

|       | 抽象的 | 具体的 |
|-------|-------|--------|
| 曖昧 | ① 初期プロンプト<br>例）ほにゃらしたい | ③ 試行錯誤段階<br>対話型（インタプリタ）|
| 厳密 | ② 要件定義書<br>曖昧さが排除された状態 | ④ マニュアル化<br>ドキュメント型（コンパイル）|

- ①曖昧で抽象的：初期のプロンプトがこれに相当。「ほにゃらしたい」という曖昧な要求。
- ②厳密で抽象的：要件定義書など。プロンプトから定義書を作成することで曖昧さが排除され、抽象的な状態になる。 
- ③曖昧で具体的：具体的な行動は伴っているが、まだ試行錯誤している段階。対話型（インタプリタ）とも言える。
- ④厳密で具体的：1本の具体的な行動に落とし込まれており、マニュアル化（ドキュメント型、コンパイル）された状態。

つまり、プロンプトが「曖昧」な時は対話型、「厳密」な時はドキュメント型で使っていると言えます。
プロンプトの性質を理解することで、AIとの対話をより効果的に行うことができるでしょう。


## 全体の流れ

- ①曖昧で抽象的：初期のプロンプトがこれに相当。「ほにゃらしたい」という曖昧な要求。

shell
```
zoltraak "本書きたい"
```
↓

mdファイル
gen_def_{goal}.md

```
# ゴール: 本を書きたい
要件定義書:
{def}
```
↓

- ②厳密で抽象的：要件定義書など。プロンプトから定義書を作成することで曖昧さが排除され、抽象的な状態になる。 
def_{goal}.md
```
書籍執筆要件定義書:
import {def}
import {def}
import {def}

~~~~~~~
~~~~~~~
~~~~~~~
~~~~~~~
~~~~~~~
```
↓

- ③曖昧で具体的：具体的な行動は伴っているが、まだ試行錯誤している段階。対話型（インタプリタ）とも言える。
exe_{goal}.py
```
プログラム # コメント
プログラム # コメント
プログラム # コメント
プログラム # コメント
```
- ④厳密で具体的：1本の具体的な行動に落とし込まれており、マニュアル化（ドキュメント型、コンパイル）された状態。

exe_{goal}.md
```
詳細手順書（暗号化、抽象化、使い手がわかりやすい状態にする。[]

```

zoltraak book.md













### 自然言語プログラミングの系譜


```
*ChatGPT登場
    |→ プロンプトエンジニアリング
        *プロンプトのシステム開発適用の必要性
            |→ プロンプトプログラミング
                * Claude3 Opusの出現
                |→ ドキュメントプログラミング
                    |→ 自然言語プログラミング
                            motoki → arbor → zoltraak
                                        * Groq x Llama3の対話不可能な高速テキスト出力制御
                                                |→ 自然言語フレームワーク zoltraak
                                                |→ プログラミング統一言語 babel
                                                                        ↑ イマココ
```



### アップロードの仕方


PyPIにパッケージをアップロードする手順は以下の通りです。

1. パッケージの準備:
   - プロジェクトのディレクトリ構成を適切に設定します。
   - [setup.py](file:///Users/motokidaisuke/motoki/setup.py#1%2C1-1%2C1)ファイルを作成し、パッケージの情報（名前、バージョン、依存関係など）を記述します。
   - [README.md](file:///Users/motokidaisuke/motoki/README.md#1%2C1-1%2C1)ファイルを作成し、パッケージの説明や使用方法を記載します。

2. アカウントの作成とAPIトークンの取得:
   - PyPIのWebサイト（https://pypi.org/）にアクセスします。
   - 新しいアカウントを作成するか、既存のアカウントにログインします。
   - アカウントの設定ページで、APIトークンを生成します。

3. ビルドとアップロード用ツールのインストール:
   - `twine`と`setuptools`をインストールします。
     ```
     pip install twine setuptools
     ```

4. パッケージのビルド:
   - プロジェクトのルートディレクトリで以下のコマンドを実行し、パッケージをビルドします。
     ```
     python setup.py sdist bdist_wheel
     ```
   - これにより、`dist`ディレクトリにパッケージの配布用ファイルが生成されます。

5. PyPIへのアップロード:
   - 以下のコマンドを実行し、パッケージをPyPIにアップロードします。
     ```
     twine upload dist/*
     ```
   - ユーザー名とパスワードの代わりに、取得したAPIトークンを使用します。

6. アップロードの確認:
   - PyPIのWebサイトにアクセスし、アップロードしたパッケージが正しく表示されていることを確認します。

これで、`zoltraak`パッケージがPyPIに公開されました。ユーザーは`pip install zoltraak`コマンドを使用してパッケージをインストールできます。

注意点:
- パッケージ名は一意である必要があります。既に存在する名前は使用できません。
- バージョン番号は、新しいバージョンをアップロードするたびに増やす必要があります。
- `setup.py`ファイルには、適切なメタデータと依存関係を記述してください。
- `README.md`ファイルには、パッケージの説明や使用方法を明確に記載してください。

以上が、PyPIへのパッケージのアップロード手順です。問題がある場合は、PyPIのドキュメンテーションを参照するか、コミュニティに質問してください。




## 仮想環境を用いて実行

`pyenv` はPythonのバージョン管理ツールですが、直接的に仮想環境を作成する機能は持っていません。仮想環境を作成するためには、`pyenv-virtualenv` というプラグインを使用する必要があります。

以下は `pyenv-virtualenv` を使用して仮想環境を作成する手順です。

1. **pyenv-virtualenv のインストール**

   まずは `pyenv-virtualenv` プラグインをインストールします。これは `pyenv` が既にインストールされていることを前提としています。

   ```bash
   git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
   ```

   インストール後、シェルの設定ファイル (例えば `.bashrc` や `.zshrc`) に以下を追加して、シェルを再起動します。

   ```bash
   eval "$(pyenv init --path)"
   eval "$(pyenv virtualenv-init -)"
   ```

2. **Python のインストール**

   `pyenv` を使用して、仮想環境用の Python バージョンをインストールします。

   ```bash
   pyenv install 3.8.5  # 例として Python 3.8.5 をインストール
   ```

3. **仮想環境の作成**

   次に、指定した Python バージョンで仮想環境を作成します。

   ```bash
   pyenv virtualenv 3.8.5 my-virtual-env-3.8.5
   ```

   ここで `my-virtual-env-3.8.5` は仮想環境の名前です。

4. **仮想環境のアクティベーション**

   作成した仮想環境をアクティブにします。

   ```bash
   pyenv activate my-virtual-env-3.8.5
   ```

   これで、指定した仮想環境がアクティブになります。

5. **仮想環境のデアクティベーション**

   仮想環境をデアクティブにするには、以下のコマンドを使用します。

   ```bash
   pyenv deactivate
   ```

これで `pyenv` と `pyenv-virtualenv` を使用して Python の仮想環境を作成し、管理する方法を説明しました。


### howto

使い方
1 .env ファイルにANTHROPIC_API_KEY={Anthropicのキー}
2. pip install zoltraak
3. zoltraak "最新の大規模言語モデルが学べるポケモンゲームの様なシステムを作りたい"

これで、以下の様な要件定義書が出来ます。
叩き台なので、適宜修正してください。

-c 以降は用途に応じて変更できるプロンプトコンパイラになります。
コンパイラ名: dev_func
説明: 関数型プログラミングを用いた開発タスクに関する要件定義書を生成するコンパイラ

コンパイラ名: dev_obj
説明: オブジェクト指向設計を用いた開発タスクに関する要件定義書を生成するコンパイラ

コンパイラ名: biz_consult
説明: ビジネスコンサルティングに関するドキュメントを生成するコンパイラ

コンパイラ名: general_def
説明: 一般的な開発タスクに関する要件定義書を生成するコンパイラ

コンパイラ名: general_reqdef
説明: 一般的な要求事項に関する要件定義書を生成するコンパイラ

具体例
zoltraak "Manimを用いて、MoE（専門家の混合）モデルを視覚化するプログラムを開発する" -c dev_func
zoltraak "今月中にオブジェクト指向設計を用いて、多機能在庫管理システムを開発する" -c dev_obj
zoltraak "今月中に中小企業向けのビジネスコンサルティングドキュメントを作成する。具体的には、マーケティング戦略、財務管理、人材育成に関するアドバイスを含む" -c biz_consult
zoltraak "今月中に教育用の拡張現実（AR）アプリケーションを開発する" -c general_def
zoltraak "今月中に政府向けの少子化対策として、具体的な施策と予算案を含む提言書を執筆する" -c general_reqdef

dev_func
dev_obj
biz_consult
general_def
general_reqdef



ローカル環境

pip install -e .

を行うと
Users/motokidaisuke/.pyenv/versions/3.11.5 
に入ってしまうらしい

python setup.py sdist bdist_wheel
twine upload --verbose dist/*


仮想環境
deactivate
rm -rf /Users/motokidaisuke/aaaaa/zoltraak-env
python3 -m venv /Users/motokidaisuke/aaaaa/zoltraak-env
source /Users/motokidaisuke/aaaaa/zoltraak-env/bin/activate



