
Product
Introducing Immutable Scans
Scan results now load faster and remain consistent over time, with stable URLs and on-demand rescans for fresh security data.
grimo
Advanced tools
* 現在パッケージマネージャーは各々ご自身のAWSアカウントにおけるS3バケットに格納する形になっています。 バージョンアップに従って、全員共有バケットにする予定です。
grimo のインストール
pip install grimo
AWS S3 バケットの作成
grimo では、パッケージを AWS S3 バケットに保存します。 まだ S3 バケットを作成していない場合は、AWS マネジメントコンソールから "grimo" という名前のバケットを作成してください。
AWS 認証情報の設定
grimo が S3 バケットにアクセスできるように、AWS の認証情報を設定する必要があります。 環境変数 AWS_SECRET_ACCESS_KEY と AWS_ACCESS_KEY_ID に、それぞれあなたの AWS シークレットアクセスキーとアクセスキー ID を設定してください。
export AWS_SECRET_ACCESS_KEY=xxx
export AWS_ACCESS_KEY_ID=xxx
grimo では、以下のコマンドラインオプションが利用可能です。
利用可能なサブコマンド
install パッケージをインストールする(利用可)
upload パッケージをアップロードする(利用可)
search パッケージを検索する(利用可)
update パッケージをアップデートする(未開発)
uninstall パッケージをアンインストールする(未開発)
grimo upload コマンドを使って、独自のパッケージをアップロードできます。パッケージは以下のディレクトリ構造で作成してください。
project/
├── package_name/
│ ├── grimo.toml # パッケージのメタデータ
│ ├── def.md # パッケージの定義
│ ├── util.md # パッケージのユーティリティ
│ ├── var.md # パッケージの変数
│ └── ...
grimo.toml ファイルには、パッケージのメタ情報を以下のように記述します。
# パッケージ名
name = "i18niwatoko"
# パッケージバージョン (SemVer 形式)
version = "1.1.0"
# パッケージの説明
description = "多言語翻訳ツール"
# 作者名
author = "dai.motoki"
# 作者のメールアドレス
email = "motoki.daisuke@kandaquantum.co.jp"
# パッケージのライセンス
license = "MIT"
# Supabase Storage 上のファイルパス (アップロード後に設定されます)
# file_path = "i18niwatoko/1.0.0/i18niwatoko.tar.gz"
# その他の項目 (任意)
language = "python"
category = "utilities"
tags = ["translation", "i18n"]
homepage = "https://example.com/i18niwatoko"
repository = "https://github.com/your-username/i18niwatoko"
readme = """
# i18niwatoko
多言語翻訳ツールです。
grimo install i18niwatoko
""" dependencies = "{ "rich" : "^13.3.5", "claude3" : "^1.0.0" }"
パッケージをアップロードするには、`package_name` ディレクトリで以下のコマンドを実行します。
```bash
grimo upload .
grimo search コマンドは、指定されたクエリに基づいてパッケージを検索するために使用されます。 以下のように使用します。
grimo search <query> [オプション]
引数
<query>: 検索クエリを指定します。 例: grimo search "banner"オプション
-l, --language <言語>: 検索対象の言語を指定します。-c, --category <カテゴリ>: 検索対象のカテゴリを指定します。-t, --tags <タグ>: 検索対象のタグを指定します。 複数のタグをスペースで区切って指定できます。例
基本的な検索:
grimo search "example query"
言語を指定して検索:
grimo search "example query" --language "python"
カテゴリを指定して検索:
grimo search "example query" --category "utilities"
タグを指定して検索:
grimo search "example query" --tags "tag1" "tag2"
grimo install コマンドを使って、パッケージをインストールできます。 インストールされたファイルは grimoires ディレクトリに格納されます。
以下のようなバージョン指定ルールがサポートされています。
特定バージョンの指定:
grimo install <package>@3.3.2
上記の例では、バージョン 3.3.2 を厳密に指定してインストールします。
バージョンの範囲指定:
grimo install "<package>@[3.3.2, 3.6.3]"
上記の例では、バージョン 3.3.2 以上、3.6.3 以下の範囲でインストールします。
grimo install "<package>@(3.3.2, 3.6.3)"
上記の例では、バージョン 3.3.2 より大きく、3.6.3 より小さい範囲でインストールします。
メジャー/マイナーバージョンの範囲指定:(未実装)
grimo install <package>@M3.3.2
上記の例では、バージョン 3.x.x の範囲(3.3.2 以上、4.0.0 未満)でインストールします。
grimo install <package>@m3.3.2
上記の例では、バージョン 3.3.x の範囲(3.3.2 以上、3.4.0 未満)でインストールします。
最新バージョンのインストール:
grimo install <package>@latest
上記の例では、パッケージの最新バージョンをインストールします。
インストールされたパッケージは、grimoires ディレクトリ内に保存されます。

grimo/
├── grimo/ # パッケージのコアロジック
│ ├── __init__.py
│ ├── core.py
│ ├── utils.py
│ ├── package.py # パッケージ操作関連モジュール
│ ├── storage.py # ストレージ操作関連モジュール
│ └── ...
├── tests/
│ ├── test_core.py
│ ├── test_utils.py
│ ├── test_package.py
│ ├── test_storage.py
│ └── ...
├── auth/
├── Procfile
├── requirements.txt
└── server.py
├── docs/
│ ├── conf.py
│ ├── index.rst
│ └── ...
├── README.md
├── LICENSE
├── setup.py
├── requirements.txt
├── Dockerfile
├── docker-compose.yml
├── .github/workflows/
│ ├── ci.yml
│ └── cd.yml
└── app.py # Streamlit/Gradio アプリケーション
from setuptools import setup, find_packages
setup(
name='grimo',
version='0.1.0',
description='Abstract Programming Language Package Manager',
long_description=open('README.md', 'r').read(),
author='Your Name',
author_email='your@email.com',
url='https://github.com/your-username/grimo',
packages=find_packages(exclude=['tests']),
install_requires=[
'requests',
'click',
'colorama',
'boto3', # AWS SDK for Python
'streamlit', # or 'gradio'
],
entry_points={
'console_scripts': [
'grimo=grimo.cli:main',
],
},
classifiers=[
'Development Status :: 3 - Alpha',
'Intended Audience :: Developers',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
],
)
PyPIアカウントの作成:
setup.pyの準備:
setup.py ファイルが正しく記述されていることを確認します。必要なパッケージのインストール:
twine をインストールします。
pip install twine
パッケージのビルド:
python setup.py sdist bdist_wheel
PyPIへのアップロード:
twine を使用してパッケージをPyPIにアップロードします。
twine upload dist/*
アップロードの確認:
多様なプログラミング言語のパッケージを一元管理できる、強力かつユーザーフレンドリーな抽象プログラミング言語パッケージマネージャー「grimo」をPythonで実装する。grimoは、プログラミング言語に依存せず、あらゆるパッケージの検索、インストール、アップグレードをシームレスに実行できるツールを目指します。
__version__ 変数でパッケージバージョンを定義pip install grimo 等の手順を明記grimo install, grimo search など) の使用例を提示unittest モジュールを使用coverage.py などを使用grimo install, grimo search など、各コマンドの詳細な説明、オプション、使用例を記載Dockerfile でビルドと実行環境を定義docker-compose.yml で複数コンテナ (アプリケーション、データベースなど) を定義ci.yml:
cd.yml:
grimo パッケージのコマンドを呼び出して処理を実行grimo.storage モジュール:
Heroku で grimo という名前のアプリを作成したとのことですね。引き続き、FastAPI アプリケーションを grimo にデプロイして起動する方法を説明します。
1. ローカルリポジトリの作成と初期化
# grimo ディレクトリに移動
cd grimo
# Git リポジトリの初期化
git init
2. アプリケーションファイルの追加とコミット
# ファイルを追加
git add .
# コミット
git commit -m "Initial commit"
3. Heroku リモートリポジトリの追加
# Heroku リモートリポジトリの追加
git remote add heroku https://git.heroku.com/grimo.git
4. アプリケーションのデプロイ
# Heroku にプッシュ
git push heroku main
5. アプリケーションの起動
# アプリケーションの起動
heroku open
これで、grimo アプリケーションが Heroku 上で起動します。
補足
heroku open コマンドは、Heroku 上で実行されているアプリケーションへのリンクを開きます。heroku logs コマンドでログを確認して問題を診断してください。さらなる手順
heroku config:set コマンドを使って環境変数を設定できます。heroku logs コマンドでアプリケーションのログを確認できます。詳細については、Heroku の公式ドキュメントを参照してください。 https://devcenter.heroku.com/
これで、Heroku 上に FastAPI アプリケーションをデプロイして、Web サービスとして公開できるようになります。
| 項目 | インタプリタ | コンパイラ |
|---|---|---|
| フレームワーク Zoltraak | 構築中 | まだ |
| プログラミング言語 Niwatoko | まだ | 構築中 |
| パッケージマネージャー Grimo | まだ | 構築中 |
| パッケージ(banner, i18niwatoko) | まだ | 構築中 |
FAQs
Abstract Programming Language Package Manager
We found that grimo demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Scan results now load faster and remain consistent over time, with stable URLs and on-demand rescans for fresh security data.

Product
Socket's new Alert Details page is designed to surface more context, with a clearer layout, reachability dependency chains, and structured review.

Product
Campaign-level threat intelligence in Socket now shows when active supply chain attacks affect your repositories and packages.