ventilatepro-cli 0.3.0__tar.gz → 0.3.1__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.
Files changed (30) hide show
  1. {ventilatepro_cli-0.3.0 → ventilatepro_cli-0.3.1}/PKG-INFO +8 -5
  2. {ventilatepro_cli-0.3.0 → ventilatepro_cli-0.3.1}/README.md +7 -4
  3. {ventilatepro_cli-0.3.0 → ventilatepro_cli-0.3.1}/tests/test_cli.py +25 -0
  4. {ventilatepro_cli-0.3.0 → ventilatepro_cli-0.3.1}/ventilatepro/__init__.py +1 -1
  5. {ventilatepro_cli-0.3.0 → ventilatepro_cli-0.3.1}/ventilatepro/auth.py +2 -4
  6. {ventilatepro_cli-0.3.0 → ventilatepro_cli-0.3.1}/ventilatepro/cli.py +1 -1
  7. {ventilatepro_cli-0.3.0 → ventilatepro_cli-0.3.1}/ventilatepro/config.py +1 -0
  8. {ventilatepro_cli-0.3.0 → ventilatepro_cli-0.3.1}/ventilatepro_cli.egg-info/PKG-INFO +8 -5
  9. {ventilatepro_cli-0.3.0 → ventilatepro_cli-0.3.1}/pyproject.toml +0 -0
  10. {ventilatepro_cli-0.3.0 → ventilatepro_cli-0.3.1}/setup.cfg +0 -0
  11. {ventilatepro_cli-0.3.0 → ventilatepro_cli-0.3.1}/tests/test_config.py +0 -0
  12. {ventilatepro_cli-0.3.0 → ventilatepro_cli-0.3.1}/tests/test_mcp_server.py +0 -0
  13. {ventilatepro_cli-0.3.0 → ventilatepro_cli-0.3.1}/ventilatepro/__main__.py +0 -0
  14. {ventilatepro_cli-0.3.0 → ventilatepro_cli-0.3.1}/ventilatepro/api_client.py +0 -0
  15. {ventilatepro_cli-0.3.0 → ventilatepro_cli-0.3.1}/ventilatepro/calc.py +0 -0
  16. {ventilatepro_cli-0.3.0 → ventilatepro_cli-0.3.1}/ventilatepro/design_day.py +0 -0
  17. {ventilatepro_cli-0.3.0 → ventilatepro_cli-0.3.1}/ventilatepro/entities.py +0 -0
  18. {ventilatepro_cli-0.3.0 → ventilatepro_cli-0.3.1}/ventilatepro/mcp_cli.py +0 -0
  19. {ventilatepro_cli-0.3.0 → ventilatepro_cli-0.3.1}/ventilatepro/mcp_server.py +0 -0
  20. {ventilatepro_cli-0.3.0 → ventilatepro_cli-0.3.1}/ventilatepro/notes.py +0 -0
  21. {ventilatepro_cli-0.3.0 → ventilatepro_cli-0.3.1}/ventilatepro/output.py +0 -0
  22. {ventilatepro_cli-0.3.0 → ventilatepro_cli-0.3.1}/ventilatepro/payloads.py +0 -0
  23. {ventilatepro_cli-0.3.0 → ventilatepro_cli-0.3.1}/ventilatepro/projects.py +0 -0
  24. {ventilatepro_cli-0.3.0 → ventilatepro_cli-0.3.1}/ventilatepro/queue.py +0 -0
  25. {ventilatepro_cli-0.3.0 → ventilatepro_cli-0.3.1}/ventilatepro/systems.py +0 -0
  26. {ventilatepro_cli-0.3.0 → ventilatepro_cli-0.3.1}/ventilatepro_cli.egg-info/SOURCES.txt +0 -0
  27. {ventilatepro_cli-0.3.0 → ventilatepro_cli-0.3.1}/ventilatepro_cli.egg-info/dependency_links.txt +0 -0
  28. {ventilatepro_cli-0.3.0 → ventilatepro_cli-0.3.1}/ventilatepro_cli.egg-info/entry_points.txt +0 -0
  29. {ventilatepro_cli-0.3.0 → ventilatepro_cli-0.3.1}/ventilatepro_cli.egg-info/requires.txt +0 -0
  30. {ventilatepro_cli-0.3.0 → ventilatepro_cli-0.3.1}/ventilatepro_cli.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ventilatepro-cli
3
- Version: 0.3.0
3
+ Version: 0.3.1
4
4
  Summary: VentilatePro CLI
5
5
  Project-URL: Homepage, https://ventilatepro.com/exam/cli/
6
6
  Project-URL: Documentation, https://ventilatepro.com/exam/cli/
@@ -41,7 +41,7 @@ pip install -e .
41
41
  ## Commands
42
42
 
43
43
  ```bash
44
- ventilatepro auth login --url http://localhost:8000
44
+ ventilatepro auth login
45
45
  ventilatepro projects list
46
46
  ventilatepro projects show 1
47
47
  ventilatepro rooms list --project 1
@@ -67,9 +67,12 @@ and other MCP clients. It uses the same saved base URL and CLI token created by
67
67
  2. Log in locally:
68
68
 
69
69
  ```bash
70
- ventilatepro auth login --url https://app.ventilatepro.com --token vpcli_...
70
+ ventilatepro auth login --token vpcli_...
71
71
  ```
72
72
 
73
+ The production URL defaults to `https://ventilatepro.com`. Use `--url` only for
74
+ local development, staging, or self-hosted VentilatePro servers.
75
+
73
76
  3. Confirm the local setup:
74
77
 
75
78
  ```bash
@@ -102,13 +105,13 @@ command.
102
105
  If the hidden token prompt is awkward in your terminal, use either:
103
106
 
104
107
  ```bash
105
- ventilatepro auth login --url https://ventilatepro.com --token-prompt-visible
108
+ ventilatepro auth login --token-prompt-visible
106
109
  ```
107
110
 
108
111
  or pipe the token through stdin:
109
112
 
110
113
  ```bash
111
- printf '%s' "$VPCLI_TOKEN" | ventilatepro auth login --url https://ventilatepro.com --token-stdin
114
+ printf '%s' "$VPCLI_TOKEN" | ventilatepro auth login --token-stdin
112
115
  ```
113
116
 
114
117
  See the hosted install guide at `https://ventilatepro.com/exam/cli/`, plus [docs/commands.md](./docs/commands.md), [docs/auth.md](./docs/auth.md), [docs/api.md](./docs/api.md), and [docs/releasing.md](./docs/releasing.md) in this repo.
@@ -26,7 +26,7 @@ pip install -e .
26
26
  ## Commands
27
27
 
28
28
  ```bash
29
- ventilatepro auth login --url http://localhost:8000
29
+ ventilatepro auth login
30
30
  ventilatepro projects list
31
31
  ventilatepro projects show 1
32
32
  ventilatepro rooms list --project 1
@@ -52,9 +52,12 @@ and other MCP clients. It uses the same saved base URL and CLI token created by
52
52
  2. Log in locally:
53
53
 
54
54
  ```bash
55
- ventilatepro auth login --url https://app.ventilatepro.com --token vpcli_...
55
+ ventilatepro auth login --token vpcli_...
56
56
  ```
57
57
 
58
+ The production URL defaults to `https://ventilatepro.com`. Use `--url` only for
59
+ local development, staging, or self-hosted VentilatePro servers.
60
+
58
61
  3. Confirm the local setup:
59
62
 
60
63
  ```bash
@@ -87,13 +90,13 @@ command.
87
90
  If the hidden token prompt is awkward in your terminal, use either:
88
91
 
89
92
  ```bash
90
- ventilatepro auth login --url https://ventilatepro.com --token-prompt-visible
93
+ ventilatepro auth login --token-prompt-visible
91
94
  ```
92
95
 
93
96
  or pipe the token through stdin:
94
97
 
95
98
  ```bash
96
- printf '%s' "$VPCLI_TOKEN" | ventilatepro auth login --url https://ventilatepro.com --token-stdin
99
+ printf '%s' "$VPCLI_TOKEN" | ventilatepro auth login --token-stdin
97
100
  ```
98
101
 
99
102
  See the hosted install guide at `https://ventilatepro.com/exam/cli/`, plus [docs/commands.md](./docs/commands.md), [docs/auth.md](./docs/auth.md), [docs/api.md](./docs/api.md), and [docs/releasing.md](./docs/releasing.md) in this repo.
@@ -44,6 +44,31 @@ class CliTests(unittest.TestCase):
44
44
  os.environ.pop(config.CONFIG_ENV_VAR, None)
45
45
  os.environ.pop(config.DATA_ENV_VAR, None)
46
46
 
47
+ def test_auth_login_defaults_to_production_url(self):
48
+ with tempfile.TemporaryDirectory() as tmpdir:
49
+ os.environ[config.CONFIG_ENV_VAR] = tmpdir
50
+ os.environ[config.DATA_ENV_VAR] = tmpdir
51
+ try:
52
+ fake_client = mock.Mock()
53
+ fake_client.auth_me.return_value = {
54
+ "username": "demo-user",
55
+ "email": "demo@example.com",
56
+ }
57
+
58
+ with mock.patch.object(auth, "ApiClient", return_value=fake_client) as api_client:
59
+ with mock.patch.object(config, "_try_get_keyring", return_value=None):
60
+ result = self.runner.invoke(
61
+ app,
62
+ ["auth", "login", "--token", "vpcli_demo_secret", "--json"],
63
+ )
64
+
65
+ self.assertEqual(result.exit_code, 0)
66
+ api_client.assert_called_once_with(config.DEFAULT_BASE_URL, "vpcli_demo_secret")
67
+ self.assertEqual(config.get_base_url(), config.DEFAULT_BASE_URL)
68
+ finally:
69
+ os.environ.pop(config.CONFIG_ENV_VAR, None)
70
+ os.environ.pop(config.DATA_ENV_VAR, None)
71
+
47
72
  def test_auth_login_accepts_visible_prompt_input(self):
48
73
  with tempfile.TemporaryDirectory() as tmpdir:
49
74
  os.environ[config.CONFIG_ENV_VAR] = tmpdir
@@ -2,4 +2,4 @@
2
2
 
3
3
  __all__ = ["__version__"]
4
4
 
5
- __version__ = "0.3.0"
5
+ __version__ = "0.3.1"
@@ -5,7 +5,7 @@ from getpass import getpass
5
5
  from typing import Tuple
6
6
 
7
7
  from .api_client import ApiClient
8
- from .config import clear_auth, get_base_url, get_token, save_token, set_base_url
8
+ from .config import DEFAULT_BASE_URL, clear_auth, get_base_url, get_token, save_token, set_base_url
9
9
 
10
10
 
11
11
  def _read_token(*, prompt_visible: bool, token_stdin: bool) -> str:
@@ -31,9 +31,7 @@ def login(
31
31
  prompt_visible: bool = False,
32
32
  token_stdin: bool = False,
33
33
  ):
34
- normalized_url = (base_url or get_base_url() or "").strip().rstrip("/")
35
- if not normalized_url:
36
- raise ValueError("API base URL is required. Pass --url or log in with a saved URL.")
34
+ normalized_url = (base_url or get_base_url() or DEFAULT_BASE_URL).strip().rstrip("/")
37
35
 
38
36
  if token and token_stdin:
39
37
  raise ValueError("Pass either --token or --token-stdin, not both.")
@@ -38,7 +38,7 @@ def main():
38
38
 
39
39
  @auth_app.command("login")
40
40
  def auth_login(
41
- url: str = typer.Option(None, "--url", help="VentilatePro base URL"),
41
+ url: str = typer.Option(None, "--url", help="VentilatePro base URL for local, staging, or self-hosted servers"),
42
42
  token: str = typer.Option(None, "--token", help="Personal access token"),
43
43
  token_stdin: bool = typer.Option(False, "--token-stdin", help="Read the personal access token from stdin"),
44
44
  token_prompt_visible: bool = typer.Option(
@@ -8,6 +8,7 @@ from typing import Any, Dict, Optional
8
8
  APP_DIR_NAME = "ventilatepro"
9
9
  CONFIG_ENV_VAR = "VENTILATEPRO_CONFIG_DIR"
10
10
  DATA_ENV_VAR = "VENTILATEPRO_DATA_DIR"
11
+ DEFAULT_BASE_URL = "https://ventilatepro.com"
11
12
  CONFIG_FILENAME = "config.json"
12
13
  KEYRING_SERVICE = "ventilatepro-cli"
13
14
  KEYRING_USERNAME = "default"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ventilatepro-cli
3
- Version: 0.3.0
3
+ Version: 0.3.1
4
4
  Summary: VentilatePro CLI
5
5
  Project-URL: Homepage, https://ventilatepro.com/exam/cli/
6
6
  Project-URL: Documentation, https://ventilatepro.com/exam/cli/
@@ -41,7 +41,7 @@ pip install -e .
41
41
  ## Commands
42
42
 
43
43
  ```bash
44
- ventilatepro auth login --url http://localhost:8000
44
+ ventilatepro auth login
45
45
  ventilatepro projects list
46
46
  ventilatepro projects show 1
47
47
  ventilatepro rooms list --project 1
@@ -67,9 +67,12 @@ and other MCP clients. It uses the same saved base URL and CLI token created by
67
67
  2. Log in locally:
68
68
 
69
69
  ```bash
70
- ventilatepro auth login --url https://app.ventilatepro.com --token vpcli_...
70
+ ventilatepro auth login --token vpcli_...
71
71
  ```
72
72
 
73
+ The production URL defaults to `https://ventilatepro.com`. Use `--url` only for
74
+ local development, staging, or self-hosted VentilatePro servers.
75
+
73
76
  3. Confirm the local setup:
74
77
 
75
78
  ```bash
@@ -102,13 +105,13 @@ command.
102
105
  If the hidden token prompt is awkward in your terminal, use either:
103
106
 
104
107
  ```bash
105
- ventilatepro auth login --url https://ventilatepro.com --token-prompt-visible
108
+ ventilatepro auth login --token-prompt-visible
106
109
  ```
107
110
 
108
111
  or pipe the token through stdin:
109
112
 
110
113
  ```bash
111
- printf '%s' "$VPCLI_TOKEN" | ventilatepro auth login --url https://ventilatepro.com --token-stdin
114
+ printf '%s' "$VPCLI_TOKEN" | ventilatepro auth login --token-stdin
112
115
  ```
113
116
 
114
117
  See the hosted install guide at `https://ventilatepro.com/exam/cli/`, plus [docs/commands.md](./docs/commands.md), [docs/auth.md](./docs/auth.md), [docs/api.md](./docs/api.md), and [docs/releasing.md](./docs/releasing.md) in this repo.