tarnished-cli 0.2.1__tar.gz → 0.2.2__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.
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/PKG-INFO +4 -4
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/README.md +3 -3
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/pyproject.toml +1 -1
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/src/tarnished_cli/models/requests.py +6 -6
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/test_admin_commands.py +3 -2
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/uv.lock +1 -1
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/.gitignore +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/LICENSE +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/examples/evidence/current-meaning.json +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/examples/evidence/document-text.json +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/examples/evidence/history-correction.json +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/examples/evidence/insights.json +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/examples/evidence/report-intent-pipeline.json +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/examples/evidence/report-intent.json +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/examples/evidence/response-clear.json +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/examples/evidence/response-record.json +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/examples/evidence/transcript-edit.json +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/examples/evidence/transcript-paste.json +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/src/tarnished_cli/__init__.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/src/tarnished_cli/auth_diagnostics.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/src/tarnished_cli/auth_storage.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/src/tarnished_cli/client.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/src/tarnished_cli/commands/__init__.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/src/tarnished_cli/commands/admin.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/src/tarnished_cli/commands/analytics.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/src/tarnished_cli/commands/applications.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/src/tarnished_cli/commands/auth.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/src/tarnished_cli/commands/dashboard.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/src/tarnished_cli/commands/exports.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/src/tarnished_cli/commands/imports.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/src/tarnished_cli/commands/job_leads.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/src/tarnished_cli/commands/preferences.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/src/tarnished_cli/commands/profile.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/src/tarnished_cli/commands/reports.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/src/tarnished_cli/commands/round_types.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/src/tarnished_cli/commands/rounds.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/src/tarnished_cli/commands/statuses.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/src/tarnished_cli/commands/transcriptions.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/src/tarnished_cli/commands/user_settings.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/src/tarnished_cli/config.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/src/tarnished_cli/files.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/src/tarnished_cli/input.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/src/tarnished_cli/main.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/src/tarnished_cli/models/__init__.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/src/tarnished_cli/models/auth.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/src/tarnished_cli/output.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/src/tarnished_cli/polling.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/src/tarnished_cli/state.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/conftest.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/test_analytics_commands.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/test_applications_commands.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/test_auth_commands.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/test_auth_storage.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/test_cli_config.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/test_cli_connection_docs.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/test_client.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/test_dashboard_commands.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/test_date_requests.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/test_documented_commands.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/test_download_output.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/test_evidence_commands.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/test_evidence_requests.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/test_export_commands.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/test_help_surfaces.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/test_import_commands.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/test_import_wait.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/test_job_leads_commands.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/test_lead_capture.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/test_local_file_errors.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/test_main.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/test_output_contract.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/test_profile_commands.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/test_report_wait.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/test_reports_commands.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/test_round_types_commands.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/test_rounds_commands.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/test_shipped_promises.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/test_statuses_commands.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/test_transcript_document_commands.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/test_transcriptions_commands.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/test_transport_contract.py +0 -0
- {tarnished_cli-0.2.1 → tarnished_cli-0.2.2}/tests/test_user_settings_commands.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: tarnished-cli
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Summary: Command-line interface for Tarnished
|
|
5
5
|
Project-URL: Homepage, https://markoonakic.github.io/tarnished/
|
|
6
6
|
Project-URL: Repository, https://github.com/markoonakic/tarnished
|
|
@@ -18,7 +18,7 @@ Description-Content-Type: text/markdown
|
|
|
18
18
|
|
|
19
19
|
# Tarnished CLI
|
|
20
20
|
|
|
21
|
-
Command-line interface for Tarnished, version **0.2.
|
|
21
|
+
Command-line interface for Tarnished, version **0.2.2**. Use a matching Tarnished backend.
|
|
22
22
|
|
|
23
23
|
**Documentation:** https://markoonakic.github.io/tarnished/
|
|
24
24
|
|
|
@@ -27,10 +27,10 @@ For the user-facing CLI guide, see:
|
|
|
27
27
|
|
|
28
28
|
## Install
|
|
29
29
|
|
|
30
|
-
Install version 0.2.
|
|
30
|
+
Install version 0.2.2 from PyPI once that release is available:
|
|
31
31
|
|
|
32
32
|
```bash
|
|
33
|
-
uv tool install tarnished-cli==0.2.
|
|
33
|
+
uv tool install tarnished-cli==0.2.2
|
|
34
34
|
```
|
|
35
35
|
|
|
36
36
|
To install this checkout, including before a release is published, run from the repository root:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Tarnished CLI
|
|
2
2
|
|
|
3
|
-
Command-line interface for Tarnished, version **0.2.
|
|
3
|
+
Command-line interface for Tarnished, version **0.2.2**. Use a matching Tarnished backend.
|
|
4
4
|
|
|
5
5
|
**Documentation:** https://markoonakic.github.io/tarnished/
|
|
6
6
|
|
|
@@ -9,10 +9,10 @@ For the user-facing CLI guide, see:
|
|
|
9
9
|
|
|
10
10
|
## Install
|
|
11
11
|
|
|
12
|
-
Install version 0.2.
|
|
12
|
+
Install version 0.2.2 from PyPI once that release is available:
|
|
13
13
|
|
|
14
14
|
```bash
|
|
15
|
-
uv tool install tarnished-cli==0.2.
|
|
15
|
+
uv tool install tarnished-cli==0.2.2
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
To install this checkout, including before a release is published, run from the repository root:
|
|
@@ -267,14 +267,14 @@ class TranscriptEdit(BaseModel):
|
|
|
267
267
|
|
|
268
268
|
|
|
269
269
|
def validate_new_password(password: str) -> str:
|
|
270
|
+
if not password:
|
|
271
|
+
raise ValueError("Password must not be empty")
|
|
272
|
+
if len(password) > 64:
|
|
273
|
+
raise ValueError("Use at most 64 characters.")
|
|
270
274
|
try:
|
|
271
|
-
|
|
275
|
+
password.encode("utf-8")
|
|
272
276
|
except UnicodeError:
|
|
273
|
-
|
|
274
|
-
if not valid:
|
|
275
|
-
raise ValueError(
|
|
276
|
-
"Password must have at least 12 characters and at most 72 UTF-8 bytes"
|
|
277
|
-
)
|
|
277
|
+
raise ValueError("Password cannot be encoded as UTF-8") from None
|
|
278
278
|
return password
|
|
279
279
|
|
|
280
280
|
|
|
@@ -141,7 +141,7 @@ def test_admin_password_and_null_validation_does_not_echo_inputs(
|
|
|
141
141
|
):
|
|
142
142
|
import json
|
|
143
143
|
|
|
144
|
-
for password in ("
|
|
144
|
+
for password in ("x" * 65, "é" * 65, "😀" * 65, "\ud800", "", None):
|
|
145
145
|
body = tmp_path / "body.json"
|
|
146
146
|
body.write_text(json.dumps({"email": "new@example.com", "password": password}))
|
|
147
147
|
result = runner.invoke(
|
|
@@ -167,11 +167,12 @@ def test_admin_password_and_null_validation_does_not_echo_inputs(
|
|
|
167
167
|
def test_admin_new_password_unicode_and_omitted_reset_contract():
|
|
168
168
|
from tarnished_cli.models import AdminUserCreate, AdminUserUpdate
|
|
169
169
|
|
|
170
|
-
for password in ("
|
|
170
|
+
for password in ("x", " ", "x" * 64, "é" * 64, "😀" * 50):
|
|
171
171
|
assert (
|
|
172
172
|
AdminUserCreate(email="new@example.com", password=password).password
|
|
173
173
|
== password
|
|
174
174
|
)
|
|
175
|
+
assert AdminUserUpdate(password=password).password == password
|
|
175
176
|
assert AdminUserUpdate(is_active=False).model_dump(exclude_unset=True) == {
|
|
176
177
|
"is_active": False
|
|
177
178
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|