nepher-cli 0.2.7__tar.gz → 0.2.8__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {nepher_cli-0.2.7 → nepher_cli-0.2.8}/.gitignore +8 -8
- {nepher_cli-0.2.7 → nepher_cli-0.2.8}/PKG-INFO +1 -1
- {nepher_cli-0.2.7 → nepher_cli-0.2.8}/README.md +149 -149
- {nepher_cli-0.2.7 → nepher_cli-0.2.8}/pyproject.toml +62 -62
- {nepher_cli-0.2.7 → nepher_cli-0.2.8}/src/nepher_cli/__init__.py +10 -10
- {nepher_cli-0.2.7 → nepher_cli-0.2.8}/src/nepher_cli/__main__.py +4 -4
- {nepher_cli-0.2.7 → nepher_cli-0.2.8}/src/nepher_cli/cli.py +64 -64
- {nepher_cli-0.2.7 → nepher_cli-0.2.8}/src/nepher_cli/commands/__init__.py +1 -1
- {nepher_cli-0.2.7 → nepher_cli-0.2.8}/src/nepher_cli/commands/account.py +718 -718
- {nepher_cli-0.2.7 → nepher_cli-0.2.8}/src/nepher_cli/commands/envhub.py +535 -528
- {nepher_cli-0.2.7 → nepher_cli-0.2.8}/src/nepher_cli/commands/hackathon.py +760 -760
- {nepher_cli-0.2.7 → nepher_cli-0.2.8}/src/nepher_cli/commands/highlight.py +307 -307
- {nepher_cli-0.2.7 → nepher_cli-0.2.8}/src/nepher_cli/commands/simstore.py +49 -49
- {nepher_cli-0.2.7 → nepher_cli-0.2.8}/src/nepher_cli/commands/tournament.py +685 -685
- {nepher_cli-0.2.7 → nepher_cli-0.2.8}/src/nepher_cli/config.py +47 -47
- {nepher_cli-0.2.7 → nepher_cli-0.2.8}/src/nepher_cli/core/__init__.py +1 -1
- {nepher_cli-0.2.7 → nepher_cli-0.2.8}/src/nepher_cli/core/credentials.py +243 -243
- {nepher_cli-0.2.7 → nepher_cli-0.2.8}/src/nepher_cli/core/http.py +90 -90
- {nepher_cli-0.2.7 → nepher_cli-0.2.8}/src/nepher_cli/envhub/__init__.py +1 -1
- {nepher_cli-0.2.7 → nepher_cli-0.2.8}/src/nepher_cli/envhub/bundle.py +73 -73
- {nepher_cli-0.2.7 → nepher_cli-0.2.8}/src/nepher_cli/envhub/cache.py +61 -61
- {nepher_cli-0.2.7 → nepher_cli-0.2.8}/src/nepher_cli/envhub/config.py +203 -203
- {nepher_cli-0.2.7 → nepher_cli-0.2.8}/src/nepher_cli/tournament/__init__.py +1 -1
- {nepher_cli-0.2.7 → nepher_cli-0.2.8}/src/nepher_cli/tournament/agent_check.py +60 -60
- {nepher_cli-0.2.7 → nepher_cli-0.2.8}/src/nepher_cli/tournament/api.py +117 -117
- {nepher_cli-0.2.7 → nepher_cli-0.2.8}/src/nepher_cli/tournament/packer.py +50 -50
- {nepher_cli-0.2.7 → nepher_cli-0.2.8}/src/nepher_cli/tournament/wallet.py +89 -89
- {nepher_cli-0.2.7 → nepher_cli-0.2.8}/src/nepher_cli/py.typed +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
.venv/
|
|
2
|
-
__pycache__/
|
|
3
|
-
*.py[cod]
|
|
4
|
-
.ruff_cache/
|
|
5
|
-
.pytest_cache/
|
|
6
|
-
*.egg-info/
|
|
7
|
-
dist/
|
|
8
|
-
build/
|
|
1
|
+
.venv/
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
.ruff_cache/
|
|
5
|
+
.pytest_cache/
|
|
6
|
+
*.egg-info/
|
|
7
|
+
dist/
|
|
8
|
+
build/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nepher-cli
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.8
|
|
4
4
|
Summary: npcli — unified Nepher command-line interface for accounts, hackathons, EnvHub, tournaments, and SimStore
|
|
5
5
|
Project-URL: Homepage, https://github.com/nepher-ai/nepher-cli
|
|
6
6
|
Author: Nepher
|
|
@@ -1,149 +1,149 @@
|
|
|
1
|
-
<div align="center">
|
|
2
|
-
|
|
3
|
-
# nepher-cli
|
|
4
|
-
|
|
5
|
-
**The unified CLI for [Nepher Robotics](https://nepher.ai): accounts, tournaments, hackathons, EnvHub and SimStore.**
|
|
6
|
-
|
|
7
|
-
[](https://pypi.org/project/nepher-cli/)
|
|
8
|
-
[](https://www.python.org/downloads/)
|
|
9
|
-
[](#license)
|
|
10
|
-
|
|
11
|
-
[Install](#install) •
|
|
12
|
-
[Commands](#commands) •
|
|
13
|
-
[Tournaments](#tournaments) •
|
|
14
|
-
[EnvHub](#envhub) •
|
|
15
|
-
[Hackathons](#hackathons) •
|
|
16
|
-
[Account](#account) •
|
|
17
|
-
[Troubleshooting](#troubleshooting)
|
|
18
|
-
|
|
19
|
-
</div>
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## Install
|
|
24
|
-
|
|
25
|
-
```bash
|
|
26
|
-
pip install nepher-cli
|
|
27
|
-
pip install "nepher-cli[bittensor]" # adds wallet signing for tournament submit and coldkey registration
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
This installs two equivalent commands, `npcli` and `nepher-cli`.
|
|
31
|
-
|
|
32
|
-
## Quick start
|
|
33
|
-
|
|
34
|
-
```bash
|
|
35
|
-
npcli login --api-key nepher_xxxxxxxx
|
|
36
|
-
npcli whoami
|
|
37
|
-
npcli --help
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
Get your API key at [nepher.ai/account](https://nepher.ai/account) under **API Keys**. In CI/CD, set `NEPHER_API_KEY` instead of logging in.
|
|
41
|
-
|
|
42
|
-
## Commands
|
|
43
|
-
|
|
44
|
-
| Command | Description |
|
|
45
|
-
|---|---|
|
|
46
|
-
| `npcli login` / `whoami` / `logout` | Manage authentication |
|
|
47
|
-
| `npcli account` | API keys and coldkey registration |
|
|
48
|
-
| `npcli tournament` | Browse tournaments, check and submit agents, view leaderboards |
|
|
49
|
-
| `npcli envhub` | Manage Isaac Lab environment bundles |
|
|
50
|
-
| `npcli hackathon` | Browse and submit to hackathons |
|
|
51
|
-
| `npcli simstore` | SimStore marketplace (coming soon) |
|
|
52
|
-
|
|
53
|
-
Run any command with `--help` for all options.
|
|
54
|
-
|
|
55
|
-
## Tournaments
|
|
56
|
-
|
|
57
|
-
```bash
|
|
58
|
-
npcli tournament list # or list-active
|
|
59
|
-
npcli tournament status <tournament_id>
|
|
60
|
-
npcli tournament leaderboard <tournament_id>
|
|
61
|
-
npcli tournament check --path ./my-agent
|
|
62
|
-
npcli tournament submit --path ./my-agent --wallet-name miner --wallet-hotkey default
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
`check` validates the agent directory (add `--verbose` for recommended-file warnings). `submit` requires `bittensor-wallet`.
|
|
66
|
-
|
|
67
|
-
<details>
|
|
68
|
-
<summary>Full <code>tournament submit</code> options</summary>
|
|
69
|
-
|
|
70
|
-
| Option | Description |
|
|
71
|
-
|---|---|
|
|
72
|
-
| `--path <path>` | Agent directory |
|
|
73
|
-
| `--wallet-name <str>` | Bittensor wallet name (default: `miner`) |
|
|
74
|
-
| `--wallet-hotkey <str>` | Bittensor wallet hotkey (default: `default`) |
|
|
75
|
-
| `--api-key <key>` | Nepher API key (falls back to stored credentials) |
|
|
76
|
-
| `--tournament-id <id>` | Target tournament, required when several are active |
|
|
77
|
-
| `--api-url <url>` | Override the tournament API URL |
|
|
78
|
-
| `-v`, `--verbose` | Verbose output |
|
|
79
|
-
|
|
80
|
-
</details>
|
|
81
|
-
|
|
82
|
-
## EnvHub
|
|
83
|
-
|
|
84
|
-
```bash
|
|
85
|
-
npcli envhub list
|
|
86
|
-
npcli envhub download <env_id>
|
|
87
|
-
npcli envhub upload ./my-bundle --category navigation
|
|
88
|
-
npcli envhub cache list | info | clear
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
Shares login, API and cache with the standalone [`nepher`](https://github.com/nepher-ai/envhub) package.
|
|
92
|
-
|
|
93
|
-
## Hackathons
|
|
94
|
-
|
|
95
|
-
```bash
|
|
96
|
-
npcli hackathon list
|
|
97
|
-
npcli hackathon submit --title "My entry" --submission ./my-project --assets ./my-assets
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
<details>
|
|
101
|
-
<summary>Full <code>hackathon submit</code> options</summary>
|
|
102
|
-
|
|
103
|
-
| Option | Description |
|
|
104
|
-
|---|---|
|
|
105
|
-
| `--hackathon-id <uuid>` | Required when several hackathons are open |
|
|
106
|
-
| `--title <str>` | Entry title |
|
|
107
|
-
| `--description <markdown>` | Entry description |
|
|
108
|
-
| `--thumbnail <file>` | Cover image (JPEG, PNG, WebP, GIF) |
|
|
109
|
-
| `--submission <path>` | Project folder or `submission.zip` |
|
|
110
|
-
| `--assets <path>` | Assets folder or `assets.zip` (images, videos, PDFs) |
|
|
111
|
-
| `--public-source` | Mark source as public |
|
|
112
|
-
|
|
113
|
-
</details>
|
|
114
|
-
|
|
115
|
-
## Account
|
|
116
|
-
|
|
117
|
-
API key management needs a session from `npcli account login`. Don't pass `--api-key` to the `api-keys` commands; the account API rejects `X-API-Key` for key management.
|
|
118
|
-
|
|
119
|
-
```bash
|
|
120
|
-
npcli account login --api-key nepher_...
|
|
121
|
-
npcli account api-keys list
|
|
122
|
-
npcli account api-keys create --name "CI key" --platform hackathon
|
|
123
|
-
npcli account api-keys revoke <key_id>
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
Bind a Bittensor coldkey to your account (requires `bittensor-wallet`; `btcli` is not needed):
|
|
127
|
-
|
|
128
|
-
```bash
|
|
129
|
-
npcli account register-coldkey --wallet <wallet_name>
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
Keys must start with `nepher_` and be active. `hackathon submit` needs Hackathon scope and `tournament submit` needs Tournament scope, or use an unrestricted key.
|
|
133
|
-
|
|
134
|
-
## Troubleshooting
|
|
135
|
-
|
|
136
|
-
| Error | Fix |
|
|
137
|
-
|---|---|
|
|
138
|
-
| `npcli: command not found` | Check the install succeeded and Python's scripts directory is on `PATH` |
|
|
139
|
-
| `Not logged in` | `npcli login --api-key nepher_...` |
|
|
140
|
-
| `invalid api key format` | Key must start with `nepher_` |
|
|
141
|
-
| `api key expired` | Create a new key with `npcli account api-keys create` |
|
|
142
|
-
| `api key does not have hackathon access` | Enable Hackathon scope or use an unrestricted key |
|
|
143
|
-
| `Several hackathons are accepting submissions` | Re-run with `--hackathon-id` |
|
|
144
|
-
| `bittensor-wallet not installed` | `pip install bittensor-wallet` |
|
|
145
|
-
| `Conflict detected: 'scalecodec' ... 'cyscale'` | Leftover `scalecodec` from a Bittensor upgrade. Install `bittensor-wallet` so npcli doesn't need `btcli`, or repair `btcli` with `pip uninstall scalecodec cyscale -y && pip install -U cyscale --force-reinstall` |
|
|
146
|
-
|
|
147
|
-
## License
|
|
148
|
-
|
|
149
|
-
MIT © 2026 Nepher Robotics
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# nepher-cli
|
|
4
|
+
|
|
5
|
+
**The unified CLI for [Nepher Robotics](https://nepher.ai): accounts, tournaments, hackathons, EnvHub and SimStore.**
|
|
6
|
+
|
|
7
|
+
[](https://pypi.org/project/nepher-cli/)
|
|
8
|
+
[](https://www.python.org/downloads/)
|
|
9
|
+
[](#license)
|
|
10
|
+
|
|
11
|
+
[Install](#install) •
|
|
12
|
+
[Commands](#commands) •
|
|
13
|
+
[Tournaments](#tournaments) •
|
|
14
|
+
[EnvHub](#envhub) •
|
|
15
|
+
[Hackathons](#hackathons) •
|
|
16
|
+
[Account](#account) •
|
|
17
|
+
[Troubleshooting](#troubleshooting)
|
|
18
|
+
|
|
19
|
+
</div>
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Install
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
pip install nepher-cli
|
|
27
|
+
pip install "nepher-cli[bittensor]" # adds wallet signing for tournament submit and coldkey registration
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
This installs two equivalent commands, `npcli` and `nepher-cli`.
|
|
31
|
+
|
|
32
|
+
## Quick start
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
npcli login --api-key nepher_xxxxxxxx
|
|
36
|
+
npcli whoami
|
|
37
|
+
npcli --help
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Get your API key at [nepher.ai/account](https://nepher.ai/account) under **API Keys**. In CI/CD, set `NEPHER_API_KEY` instead of logging in.
|
|
41
|
+
|
|
42
|
+
## Commands
|
|
43
|
+
|
|
44
|
+
| Command | Description |
|
|
45
|
+
|---|---|
|
|
46
|
+
| `npcli login` / `whoami` / `logout` | Manage authentication |
|
|
47
|
+
| `npcli account` | API keys and coldkey registration |
|
|
48
|
+
| `npcli tournament` | Browse tournaments, check and submit agents, view leaderboards |
|
|
49
|
+
| `npcli envhub` | Manage Isaac Lab environment bundles |
|
|
50
|
+
| `npcli hackathon` | Browse and submit to hackathons |
|
|
51
|
+
| `npcli simstore` | SimStore marketplace (coming soon) |
|
|
52
|
+
|
|
53
|
+
Run any command with `--help` for all options.
|
|
54
|
+
|
|
55
|
+
## Tournaments
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
npcli tournament list # or list-active
|
|
59
|
+
npcli tournament status <tournament_id>
|
|
60
|
+
npcli tournament leaderboard <tournament_id>
|
|
61
|
+
npcli tournament check --path ./my-agent
|
|
62
|
+
npcli tournament submit --path ./my-agent --wallet-name miner --wallet-hotkey default
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
`check` validates the agent directory (add `--verbose` for recommended-file warnings). `submit` requires `bittensor-wallet`.
|
|
66
|
+
|
|
67
|
+
<details>
|
|
68
|
+
<summary>Full <code>tournament submit</code> options</summary>
|
|
69
|
+
|
|
70
|
+
| Option | Description |
|
|
71
|
+
|---|---|
|
|
72
|
+
| `--path <path>` | Agent directory |
|
|
73
|
+
| `--wallet-name <str>` | Bittensor wallet name (default: `miner`) |
|
|
74
|
+
| `--wallet-hotkey <str>` | Bittensor wallet hotkey (default: `default`) |
|
|
75
|
+
| `--api-key <key>` | Nepher API key (falls back to stored credentials) |
|
|
76
|
+
| `--tournament-id <id>` | Target tournament, required when several are active |
|
|
77
|
+
| `--api-url <url>` | Override the tournament API URL |
|
|
78
|
+
| `-v`, `--verbose` | Verbose output |
|
|
79
|
+
|
|
80
|
+
</details>
|
|
81
|
+
|
|
82
|
+
## EnvHub
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
npcli envhub list
|
|
86
|
+
npcli envhub download <env_id>
|
|
87
|
+
npcli envhub upload ./my-bundle --category navigation
|
|
88
|
+
npcli envhub cache list | info | clear
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Shares login, API and cache with the standalone [`nepher`](https://github.com/nepher-ai/envhub) package.
|
|
92
|
+
|
|
93
|
+
## Hackathons
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
npcli hackathon list
|
|
97
|
+
npcli hackathon submit --title "My entry" --submission ./my-project --assets ./my-assets
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
<details>
|
|
101
|
+
<summary>Full <code>hackathon submit</code> options</summary>
|
|
102
|
+
|
|
103
|
+
| Option | Description |
|
|
104
|
+
|---|---|
|
|
105
|
+
| `--hackathon-id <uuid>` | Required when several hackathons are open |
|
|
106
|
+
| `--title <str>` | Entry title |
|
|
107
|
+
| `--description <markdown>` | Entry description |
|
|
108
|
+
| `--thumbnail <file>` | Cover image (JPEG, PNG, WebP, GIF) |
|
|
109
|
+
| `--submission <path>` | Project folder or `submission.zip` |
|
|
110
|
+
| `--assets <path>` | Assets folder or `assets.zip` (images, videos, PDFs) |
|
|
111
|
+
| `--public-source` | Mark source as public |
|
|
112
|
+
|
|
113
|
+
</details>
|
|
114
|
+
|
|
115
|
+
## Account
|
|
116
|
+
|
|
117
|
+
API key management needs a session from `npcli account login`. Don't pass `--api-key` to the `api-keys` commands; the account API rejects `X-API-Key` for key management.
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
npcli account login --api-key nepher_...
|
|
121
|
+
npcli account api-keys list
|
|
122
|
+
npcli account api-keys create --name "CI key" --platform hackathon
|
|
123
|
+
npcli account api-keys revoke <key_id>
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Bind a Bittensor coldkey to your account (requires `bittensor-wallet`; `btcli` is not needed):
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
npcli account register-coldkey --wallet <wallet_name>
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
Keys must start with `nepher_` and be active. `hackathon submit` needs Hackathon scope and `tournament submit` needs Tournament scope, or use an unrestricted key.
|
|
133
|
+
|
|
134
|
+
## Troubleshooting
|
|
135
|
+
|
|
136
|
+
| Error | Fix |
|
|
137
|
+
|---|---|
|
|
138
|
+
| `npcli: command not found` | Check the install succeeded and Python's scripts directory is on `PATH` |
|
|
139
|
+
| `Not logged in` | `npcli login --api-key nepher_...` |
|
|
140
|
+
| `invalid api key format` | Key must start with `nepher_` |
|
|
141
|
+
| `api key expired` | Create a new key with `npcli account api-keys create` |
|
|
142
|
+
| `api key does not have hackathon access` | Enable Hackathon scope or use an unrestricted key |
|
|
143
|
+
| `Several hackathons are accepting submissions` | Re-run with `--hackathon-id` |
|
|
144
|
+
| `bittensor-wallet not installed` | `pip install bittensor-wallet` |
|
|
145
|
+
| `Conflict detected: 'scalecodec' ... 'cyscale'` | Leftover `scalecodec` from a Bittensor upgrade. Install `bittensor-wallet` so npcli doesn't need `btcli`, or repair `btcli` with `pip uninstall scalecodec cyscale -y && pip install -U cyscale --force-reinstall` |
|
|
146
|
+
|
|
147
|
+
## License
|
|
148
|
+
|
|
149
|
+
MIT © 2026 Nepher Robotics
|
|
@@ -1,62 +1,62 @@
|
|
|
1
|
-
[build-system]
|
|
2
|
-
requires = ["hatchling>=1.27,<1.32"]
|
|
3
|
-
build-backend = "hatchling.build"
|
|
4
|
-
|
|
5
|
-
[project]
|
|
6
|
-
name = "nepher-cli"
|
|
7
|
-
version = "0.2.
|
|
8
|
-
description = "npcli — unified Nepher command-line interface for accounts, hackathons, EnvHub, tournaments, and SimStore"
|
|
9
|
-
readme = "README.md"
|
|
10
|
-
requires-python = ">=3.10"
|
|
11
|
-
license = { text = "MIT" }
|
|
12
|
-
authors = [{ name = "Nepher" }]
|
|
13
|
-
keywords = ["nepher", "bittensor", "hackathon", "envhub", "cli", "tournament", "subnet"]
|
|
14
|
-
classifiers = [
|
|
15
|
-
"Development Status :: 4 - Beta",
|
|
16
|
-
"Environment :: Console",
|
|
17
|
-
"Intended Audience :: Developers",
|
|
18
|
-
"Programming Language :: Python :: 3",
|
|
19
|
-
"Programming Language :: Python :: 3.10",
|
|
20
|
-
"Programming Language :: Python :: 3.11",
|
|
21
|
-
"Programming Language :: Python :: 3.12",
|
|
22
|
-
]
|
|
23
|
-
dependencies = [
|
|
24
|
-
"httpx>=0.27.0",
|
|
25
|
-
"rich>=13.7.0",
|
|
26
|
-
"click>=8.1.0",
|
|
27
|
-
"keyring>=25.0.0",
|
|
28
|
-
"platformdirs>=4.0.0",
|
|
29
|
-
]
|
|
30
|
-
|
|
31
|
-
[project.optional-dependencies]
|
|
32
|
-
bittensor = ["bittensor-wallet>=4.1.0"]
|
|
33
|
-
dev = [
|
|
34
|
-
"pytest>=8.0.0",
|
|
35
|
-
"ruff>=0.4.0",
|
|
36
|
-
]
|
|
37
|
-
|
|
38
|
-
[project.scripts]
|
|
39
|
-
npcli = "nepher_cli.cli:main"
|
|
40
|
-
nepher-cli = "nepher_cli.cli:main"
|
|
41
|
-
|
|
42
|
-
[project.urls]
|
|
43
|
-
Homepage = "https://github.com/nepher-ai/nepher-cli"
|
|
44
|
-
|
|
45
|
-
[tool.hatch.build.targets.wheel]
|
|
46
|
-
packages = ["src/nepher_cli"]
|
|
47
|
-
core-metadata-version = "2.4"
|
|
48
|
-
|
|
49
|
-
[tool.hatch.build.targets.sdist]
|
|
50
|
-
include = ["src/nepher_cli", "README.md", "pyproject.toml"]
|
|
51
|
-
core-metadata-version = "2.4"
|
|
52
|
-
|
|
53
|
-
[tool.ruff]
|
|
54
|
-
line-length = 100
|
|
55
|
-
target-version = "py310"
|
|
56
|
-
|
|
57
|
-
[tool.ruff.lint]
|
|
58
|
-
select = ["E", "F", "I", "UP", "B"]
|
|
59
|
-
|
|
60
|
-
[tool.pytest.ini_options]
|
|
61
|
-
testpaths = ["tests"]
|
|
62
|
-
pythonpath = ["src"]
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling>=1.27,<1.32"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "nepher-cli"
|
|
7
|
+
version = "0.2.8"
|
|
8
|
+
description = "npcli — unified Nepher command-line interface for accounts, hackathons, EnvHub, tournaments, and SimStore"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.10"
|
|
11
|
+
license = { text = "MIT" }
|
|
12
|
+
authors = [{ name = "Nepher" }]
|
|
13
|
+
keywords = ["nepher", "bittensor", "hackathon", "envhub", "cli", "tournament", "subnet"]
|
|
14
|
+
classifiers = [
|
|
15
|
+
"Development Status :: 4 - Beta",
|
|
16
|
+
"Environment :: Console",
|
|
17
|
+
"Intended Audience :: Developers",
|
|
18
|
+
"Programming Language :: Python :: 3",
|
|
19
|
+
"Programming Language :: Python :: 3.10",
|
|
20
|
+
"Programming Language :: Python :: 3.11",
|
|
21
|
+
"Programming Language :: Python :: 3.12",
|
|
22
|
+
]
|
|
23
|
+
dependencies = [
|
|
24
|
+
"httpx>=0.27.0",
|
|
25
|
+
"rich>=13.7.0",
|
|
26
|
+
"click>=8.1.0",
|
|
27
|
+
"keyring>=25.0.0",
|
|
28
|
+
"platformdirs>=4.0.0",
|
|
29
|
+
]
|
|
30
|
+
|
|
31
|
+
[project.optional-dependencies]
|
|
32
|
+
bittensor = ["bittensor-wallet>=4.1.0"]
|
|
33
|
+
dev = [
|
|
34
|
+
"pytest>=8.0.0",
|
|
35
|
+
"ruff>=0.4.0",
|
|
36
|
+
]
|
|
37
|
+
|
|
38
|
+
[project.scripts]
|
|
39
|
+
npcli = "nepher_cli.cli:main"
|
|
40
|
+
nepher-cli = "nepher_cli.cli:main"
|
|
41
|
+
|
|
42
|
+
[project.urls]
|
|
43
|
+
Homepage = "https://github.com/nepher-ai/nepher-cli"
|
|
44
|
+
|
|
45
|
+
[tool.hatch.build.targets.wheel]
|
|
46
|
+
packages = ["src/nepher_cli"]
|
|
47
|
+
core-metadata-version = "2.4"
|
|
48
|
+
|
|
49
|
+
[tool.hatch.build.targets.sdist]
|
|
50
|
+
include = ["src/nepher_cli", "README.md", "pyproject.toml"]
|
|
51
|
+
core-metadata-version = "2.4"
|
|
52
|
+
|
|
53
|
+
[tool.ruff]
|
|
54
|
+
line-length = 100
|
|
55
|
+
target-version = "py310"
|
|
56
|
+
|
|
57
|
+
[tool.ruff.lint]
|
|
58
|
+
select = ["E", "F", "I", "UP", "B"]
|
|
59
|
+
|
|
60
|
+
[tool.pytest.ini_options]
|
|
61
|
+
testpaths = ["tests"]
|
|
62
|
+
pythonpath = ["src"]
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
"""npcli — unified Nepher command-line interface."""
|
|
2
|
-
|
|
3
|
-
from __future__ import annotations
|
|
4
|
-
|
|
5
|
-
from importlib.metadata import PackageNotFoundError, version
|
|
6
|
-
|
|
7
|
-
try:
|
|
8
|
-
__version__ = version("nepher-cli")
|
|
9
|
-
except PackageNotFoundError: # pragma: no cover
|
|
10
|
-
__version__ = "0.0.0"
|
|
1
|
+
"""npcli — unified Nepher command-line interface."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from importlib.metadata import PackageNotFoundError, version
|
|
6
|
+
|
|
7
|
+
try:
|
|
8
|
+
__version__ = version("nepher-cli")
|
|
9
|
+
except PackageNotFoundError: # pragma: no cover
|
|
10
|
+
__version__ = "0.0.0"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from nepher_cli.cli import main
|
|
2
|
-
|
|
3
|
-
if __name__ == "__main__":
|
|
4
|
-
raise SystemExit(main())
|
|
1
|
+
from nepher_cli.cli import main
|
|
2
|
+
|
|
3
|
+
if __name__ == "__main__":
|
|
4
|
+
raise SystemExit(main())
|
|
@@ -1,64 +1,64 @@
|
|
|
1
|
-
"""npcli — unified Nepher command-line interface."""
|
|
2
|
-
|
|
3
|
-
from __future__ import annotations
|
|
4
|
-
|
|
5
|
-
import click
|
|
6
|
-
|
|
7
|
-
from nepher_cli import __version__
|
|
8
|
-
from nepher_cli.commands.account import account, cmd_login, cmd_logout, cmd_whoami
|
|
9
|
-
from nepher_cli.commands.envhub import envhub
|
|
10
|
-
from nepher_cli.commands.hackathon import hackathon
|
|
11
|
-
from nepher_cli.commands.simstore import simstore
|
|
12
|
-
from nepher_cli.commands.tournament import tournament
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
@click.group(
|
|
16
|
-
context_settings={"help_option_names": ["-h", "--help"], "max_content_width": 100},
|
|
17
|
-
)
|
|
18
|
-
@click.version_option(version=__version__, package_name="nepher-cli", prog_name="npcli")
|
|
19
|
-
def main() -> None:
|
|
20
|
-
"""npcli — the unified Nepher command-line interface.
|
|
21
|
-
|
|
22
|
-
Provides centralized access to all Nepher sub-platforms:
|
|
23
|
-
|
|
24
|
-
\b
|
|
25
|
-
login Log in with a Nepher API key
|
|
26
|
-
whoami Show the currently authenticated user
|
|
27
|
-
logout Clear locally stored credentials
|
|
28
|
-
account API keys and coldkey registration
|
|
29
|
-
tournament Browse tournaments, submit agents, leaderboards
|
|
30
|
-
envhub Manage Isaac Lab environment bundles
|
|
31
|
-
hackathon Browse and submit to hackathons
|
|
32
|
-
simstore SimStore marketplace (coming soon)
|
|
33
|
-
|
|
34
|
-
\b
|
|
35
|
-
Quick start:
|
|
36
|
-
npcli login --api-key nepher_xxxxxxxx
|
|
37
|
-
npcli whoami
|
|
38
|
-
npcli hackathon list
|
|
39
|
-
npcli envhub list
|
|
40
|
-
npcli tournament list
|
|
41
|
-
|
|
42
|
-
\b
|
|
43
|
-
Tournament submit requires bittensor-wallet for wallet signing:
|
|
44
|
-
pip install bittensor-wallet
|
|
45
|
-
# or: pip install "nepher-cli[bittensor]"
|
|
46
|
-
|
|
47
|
-
Run any sub-command with --help for details and examples.
|
|
48
|
-
|
|
49
|
-
API keys are created at https://nepher.ai/account (Account > API Keys).
|
|
50
|
-
"""
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
main.add_command(cmd_login, name="login")
|
|
54
|
-
main.add_command(cmd_logout, name="logout")
|
|
55
|
-
main.add_command(cmd_whoami, name="whoami")
|
|
56
|
-
main.add_command(account)
|
|
57
|
-
main.add_command(tournament)
|
|
58
|
-
main.add_command(envhub)
|
|
59
|
-
main.add_command(hackathon)
|
|
60
|
-
main.add_command(simstore)
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
if __name__ == "__main__":
|
|
64
|
-
raise SystemExit(main())
|
|
1
|
+
"""npcli — unified Nepher command-line interface."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import click
|
|
6
|
+
|
|
7
|
+
from nepher_cli import __version__
|
|
8
|
+
from nepher_cli.commands.account import account, cmd_login, cmd_logout, cmd_whoami
|
|
9
|
+
from nepher_cli.commands.envhub import envhub
|
|
10
|
+
from nepher_cli.commands.hackathon import hackathon
|
|
11
|
+
from nepher_cli.commands.simstore import simstore
|
|
12
|
+
from nepher_cli.commands.tournament import tournament
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@click.group(
|
|
16
|
+
context_settings={"help_option_names": ["-h", "--help"], "max_content_width": 100},
|
|
17
|
+
)
|
|
18
|
+
@click.version_option(version=__version__, package_name="nepher-cli", prog_name="npcli")
|
|
19
|
+
def main() -> None:
|
|
20
|
+
"""npcli — the unified Nepher command-line interface.
|
|
21
|
+
|
|
22
|
+
Provides centralized access to all Nepher sub-platforms:
|
|
23
|
+
|
|
24
|
+
\b
|
|
25
|
+
login Log in with a Nepher API key
|
|
26
|
+
whoami Show the currently authenticated user
|
|
27
|
+
logout Clear locally stored credentials
|
|
28
|
+
account API keys and coldkey registration
|
|
29
|
+
tournament Browse tournaments, submit agents, leaderboards
|
|
30
|
+
envhub Manage Isaac Lab environment bundles
|
|
31
|
+
hackathon Browse and submit to hackathons
|
|
32
|
+
simstore SimStore marketplace (coming soon)
|
|
33
|
+
|
|
34
|
+
\b
|
|
35
|
+
Quick start:
|
|
36
|
+
npcli login --api-key nepher_xxxxxxxx
|
|
37
|
+
npcli whoami
|
|
38
|
+
npcli hackathon list
|
|
39
|
+
npcli envhub list
|
|
40
|
+
npcli tournament list
|
|
41
|
+
|
|
42
|
+
\b
|
|
43
|
+
Tournament submit requires bittensor-wallet for wallet signing:
|
|
44
|
+
pip install bittensor-wallet
|
|
45
|
+
# or: pip install "nepher-cli[bittensor]"
|
|
46
|
+
|
|
47
|
+
Run any sub-command with --help for details and examples.
|
|
48
|
+
|
|
49
|
+
API keys are created at https://nepher.ai/account (Account > API Keys).
|
|
50
|
+
"""
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
main.add_command(cmd_login, name="login")
|
|
54
|
+
main.add_command(cmd_logout, name="logout")
|
|
55
|
+
main.add_command(cmd_whoami, name="whoami")
|
|
56
|
+
main.add_command(account)
|
|
57
|
+
main.add_command(tournament)
|
|
58
|
+
main.add_command(envhub)
|
|
59
|
+
main.add_command(hackathon)
|
|
60
|
+
main.add_command(simstore)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
if __name__ == "__main__":
|
|
64
|
+
raise SystemExit(main())
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"""npcli command groups."""
|
|
1
|
+
"""npcli command groups."""
|