maskflow-cli 0.2.0__tar.gz → 0.3.0__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.
- {maskflow_cli-0.2.0 → maskflow_cli-0.3.0}/PKG-INFO +3 -3
- {maskflow_cli-0.2.0 → maskflow_cli-0.3.0}/pyproject.toml +8 -3
- {maskflow_cli-0.2.0 → maskflow_cli-0.3.0}/tests/test_cli_explain.py +8 -5
- {maskflow_cli-0.2.0 → maskflow_cli-0.3.0}/.gitignore +0 -0
- {maskflow_cli-0.2.0 → maskflow_cli-0.3.0}/README.md +0 -0
- {maskflow_cli-0.2.0 → maskflow_cli-0.3.0}/src/maskflow_cli/__init__.py +0 -0
- {maskflow_cli-0.2.0 → maskflow_cli-0.3.0}/src/maskflow_cli/app.py +0 -0
- {maskflow_cli-0.2.0 → maskflow_cli-0.3.0}/src/maskflow_cli/commands/__init__.py +0 -0
- {maskflow_cli-0.2.0 → maskflow_cli-0.3.0}/src/maskflow_cli/commands/config_cmd.py +0 -0
- {maskflow_cli-0.2.0 → maskflow_cli-0.3.0}/src/maskflow_cli/commands/doctor_cmd.py +0 -0
- {maskflow_cli-0.2.0 → maskflow_cli-0.3.0}/src/maskflow_cli/commands/explain_cmd.py +0 -0
- {maskflow_cli-0.2.0 → maskflow_cli-0.3.0}/src/maskflow_cli/doctor.py +0 -0
- {maskflow_cli-0.2.0 → maskflow_cli-0.3.0}/src/maskflow_cli/doctor_render.py +0 -0
- {maskflow_cli-0.2.0 → maskflow_cli-0.3.0}/src/maskflow_cli/explain.py +0 -0
- {maskflow_cli-0.2.0 → maskflow_cli-0.3.0}/src/maskflow_cli/explain_render.py +0 -0
- {maskflow_cli-0.2.0 → maskflow_cli-0.3.0}/src/maskflow_cli/render.py +0 -0
- {maskflow_cli-0.2.0 → maskflow_cli-0.3.0}/tests/conftest.py +0 -0
- {maskflow_cli-0.2.0 → maskflow_cli-0.3.0}/tests/fixtures/partial.toml +0 -0
- {maskflow_cli-0.2.0 → maskflow_cli-0.3.0}/tests/fixtures/typo.toml +0 -0
- {maskflow_cli-0.2.0 → maskflow_cli-0.3.0}/tests/fixtures/valid.toml +0 -0
- {maskflow_cli-0.2.0 → maskflow_cli-0.3.0}/tests/test_cli_doctor.py +0 -0
- {maskflow_cli-0.2.0 → maskflow_cli-0.3.0}/tests/test_cli_show.py +0 -0
- {maskflow_cli-0.2.0 → maskflow_cli-0.3.0}/tests/test_cli_validate.py +0 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: maskflow-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
4
4
|
Summary: Command-line interface for MaskFlow: .maskflowrc config validation and inspection
|
|
5
5
|
License: MIT
|
|
6
6
|
Requires-Python: >=3.10
|
|
7
|
-
Requires-Dist: maskflow-core[yaml]<0.
|
|
8
|
-
Requires-Dist: maskflow-pack-india<0.
|
|
7
|
+
Requires-Dist: maskflow-core[yaml]<0.6,>=0.5.0
|
|
8
|
+
Requires-Dist: maskflow-pack-india<0.4,>=0.1.0
|
|
9
9
|
Requires-Dist: maskflow-pack-intl<0.3,>=0.2.0
|
|
10
10
|
Requires-Dist: rich>=13.0
|
|
11
11
|
Requires-Dist: tomli-w>=1.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "maskflow-cli"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.3.0"
|
|
4
4
|
description = "Command-line interface for MaskFlow: .maskflowrc config validation and inspection"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.10"
|
|
@@ -10,7 +10,7 @@ dependencies = [
|
|
|
10
10
|
# maskflow_core.config, which only exists from core 0.3.0 -- [yaml]
|
|
11
11
|
# since the CLI, unlike the SDK, should accept a YAML .maskflowrc out
|
|
12
12
|
# of the box (it's already a heavier, more optional install than the SDK).
|
|
13
|
-
"maskflow-core[yaml]>=0.
|
|
13
|
+
"maskflow-core[yaml]>=0.5.0,<0.6",
|
|
14
14
|
# maskflow_pack_intl is imported (side-effect only, to populate the
|
|
15
15
|
# PIIType registry) for `maskflow config validate`'s soft entity-name
|
|
16
16
|
# cross-check -- see app.py. pack-intl 0.1.0 itself requires core<0.3,
|
|
@@ -19,7 +19,12 @@ dependencies = [
|
|
|
19
19
|
"maskflow-pack-intl>=0.2.0,<0.3",
|
|
20
20
|
# Same reasoning as pack-intl above, for AADHAAR/PAN/GSTIN/IFSC/UPI_VPA
|
|
21
21
|
# -- also makes `maskflow doctor`/`maskflow explain` aware of them.
|
|
22
|
-
|
|
22
|
+
# 0.2.0 adds INDIAN_MOBILE/PIN_CODE/VOTER_ID/INDIAN_PASSPORT/
|
|
23
|
+
# DRIVING_LICENCE/VEHICLE_REG/ABHA_NUMBER/ABHA_ADDRESS/BANK_ACCOUNT_IN;
|
|
24
|
+
# 0.3.0 adds PERSON_NAME (Indian)/INDIAN_ADDRESS (gazetteer + structural
|
|
25
|
+
# + NLP-agreement layers). Both additive only -- no API change, so the
|
|
26
|
+
# existing lower bound still holds.
|
|
27
|
+
"maskflow-pack-india>=0.1.0,<0.4",
|
|
23
28
|
"typer>=0.12",
|
|
24
29
|
# CLI-only: pretty-prints `maskflow config show`'s plain TOML dump.
|
|
25
30
|
"tomli-w>=1.0",
|
|
@@ -55,14 +55,17 @@ def test_explain_lowering_threshold_via_set_promotes_a_near_miss_to_masked() ->
|
|
|
55
55
|
text = "Random unrelated text with a number 123456789 in it, nothing special."
|
|
56
56
|
result = runner.invoke(app, ["explain", "--set", "entities.SSN.threshold=0.3", text])
|
|
57
57
|
assert result.exit_code == 0
|
|
58
|
-
assert "NEAREST MISSES" not in result.stdout
|
|
59
|
-
assert "SSN" in result.stdout
|
|
60
58
|
assert "masked" in result.stdout
|
|
59
|
+
# SSN itself moved out of the near-miss section and into the masked
|
|
60
|
+
# section above it -- maskflow-pack-india's BANK_ACCOUNT_IN (9-18
|
|
61
|
+
# digits, always context-required) is a separate, still-legitimate
|
|
62
|
+
# near miss on this same bare 9-digit span, so "no near misses at all"
|
|
63
|
+
# isn't the right assertion here.
|
|
64
|
+
assert "[1] SSN" in result.stdout
|
|
65
|
+
assert "[entities.SSN]" not in result.stdout
|
|
61
66
|
|
|
62
67
|
|
|
63
68
|
def test_explain_bad_config_exits_nonzero(fixtures_dir: Path) -> None:
|
|
64
|
-
result = runner.invoke(
|
|
65
|
-
app, ["explain", "--config", str(fixtures_dir / "typo.toml"), "hello"]
|
|
66
|
-
)
|
|
69
|
+
result = runner.invoke(app, ["explain", "--config", str(fixtures_dir / "typo.toml"), "hello"])
|
|
67
70
|
assert result.exit_code == 1
|
|
68
71
|
assert "did you mean 'threshold'?" in result.stderr
|
|
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
|