Fix CI/CD issues: linting errors and test file corruption
Some checks failed
CI / test (ubuntu-latest, 3.10) (push) Has been cancelled
CI / test (ubuntu-latest, 3.11) (push) Has been cancelled
CI / test (ubuntu-latest, 3.12) (push) Has been cancelled
CI / test (ubuntu-latest, 3.8) (push) Has been cancelled
CI / test (ubuntu-latest, 3.9) (push) Has been cancelled
CI / test-minimal (push) Has been cancelled
CI / lint (push) Has been cancelled
CI / build (push) Has been cancelled
CI / release (push) Has been cancelled
Some checks failed
CI / test (ubuntu-latest, 3.10) (push) Has been cancelled
CI / test (ubuntu-latest, 3.11) (push) Has been cancelled
CI / test (ubuntu-latest, 3.12) (push) Has been cancelled
CI / test (ubuntu-latest, 3.8) (push) Has been cancelled
CI / test (ubuntu-latest, 3.9) (push) Has been cancelled
CI / test-minimal (push) Has been cancelled
CI / lint (push) Has been cancelled
CI / build (push) Has been cancelled
CI / release (push) Has been cancelled
This commit is contained in:
@@ -20,7 +20,7 @@ from .type_check import validate_types, infer_schema_from_data
|
|||||||
def find_files(
|
def find_files(
|
||||||
pattern: str,
|
pattern: str,
|
||||||
recursive: bool = False,
|
recursive: bool = False,
|
||||||
directory: Optional[str] = None
|
directory: Optional[str] = None,
|
||||||
) -> List[str]:
|
) -> List[str]:
|
||||||
"""Find files matching a pattern."""
|
"""Find files matching a pattern."""
|
||||||
search_dir = directory or "."
|
search_dir = directory or "."
|
||||||
@@ -39,7 +39,7 @@ def resolve_format(fmt: Optional[str], file_path: str) -> str:
|
|||||||
if fmt not in SUPPORTED_FORMATS:
|
if fmt not in SUPPORTED_FORMATS:
|
||||||
raise click.BadParameter(
|
raise click.BadParameter(
|
||||||
f"Unsupported format: {fmt}. Supported: {', '.join(SUPPORTED_FORMATS)}",
|
f"Unsupported format: {fmt}. Supported: {', '.join(SUPPORTED_FORMATS)}",
|
||||||
param_hint="--format"
|
param_hint="--format",
|
||||||
)
|
)
|
||||||
return fmt
|
return fmt
|
||||||
return detect_format(file_path)
|
return detect_format(file_path)
|
||||||
@@ -48,8 +48,16 @@ def resolve_format(fmt: Optional[str], file_path: str) -> str:
|
|||||||
@click.command()
|
@click.command()
|
||||||
@click.argument("input_file", type=click.Path(exists=True))
|
@click.argument("input_file", type=click.Path(exists=True))
|
||||||
@click.argument("output_file", type=click.Path())
|
@click.argument("output_file", type=click.Path())
|
||||||
@click.option("--from", "-f", "from_format", help="Input format (json, yaml, toml)")
|
@click.option(
|
||||||
@click.option("--to", "-t", "to_format", required=True, help="Output format (json, yaml, toml)")
|
"--from", "-f", "from_format", help="Input format (json, yaml, toml)"
|
||||||
|
)
|
||||||
|
@click.option(
|
||||||
|
"--to",
|
||||||
|
"-t",
|
||||||
|
"to_format",
|
||||||
|
required=True,
|
||||||
|
help="Output format (json, yaml, toml)",
|
||||||
|
)
|
||||||
@click.option("--indent", "-i", default=2, help="Indentation spaces (0 for compact)")
|
@click.option("--indent", "-i", default=2, help="Indentation spaces (0 for compact)")
|
||||||
@click.option("--quiet", "-q", is_flag=True, help="Minimal output")
|
@click.option("--quiet", "-q", is_flag=True, help="Minimal output")
|
||||||
def convert(
|
def convert(
|
||||||
@@ -58,7 +66,7 @@ def convert(
|
|||||||
from_format: Optional[str],
|
from_format: Optional[str],
|
||||||
to_format: str,
|
to_format: str,
|
||||||
indent: int,
|
indent: int,
|
||||||
quiet: bool
|
quiet: bool,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Convert a file from one format to another.
|
"""Convert a file from one format to another.
|
||||||
|
|
||||||
@@ -70,11 +78,12 @@ def convert(
|
|||||||
if to_format not in SUPPORTED_FORMATS:
|
if to_format not in SUPPORTED_FORMATS:
|
||||||
raise click.BadParameter(
|
raise click.BadParameter(
|
||||||
f"Unsupported format: {to_format}. Supported: {', '.join(SUPPORTED_FORMATS)}",
|
f"Unsupported format: {to_format}. Supported: {', '.join(SUPPORTED_FORMATS)}",
|
||||||
param_hint="--to"
|
param_hint="--to",
|
||||||
)
|
)
|
||||||
|
|
||||||
if input_file == "-":
|
if input_file == "-":
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
content = sys.stdin.read()
|
content = sys.stdin.read()
|
||||||
input_format = from_format or "json"
|
input_format = from_format or "json"
|
||||||
data = load_data(content, input_format)
|
data = load_data(content, input_format)
|
||||||
@@ -87,6 +96,7 @@ def convert(
|
|||||||
|
|
||||||
if output_file == "-":
|
if output_file == "-":
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
sys.stdout.write(result)
|
sys.stdout.write(result)
|
||||||
else:
|
else:
|
||||||
with open(output_file, "w", encoding="utf-8") as f:
|
with open(output_file, "w", encoding="utf-8") as f:
|
||||||
@@ -101,11 +111,24 @@ def convert(
|
|||||||
|
|
||||||
@click.command()
|
@click.command()
|
||||||
@click.argument("input_files", nargs=-1, type=click.Path(exists=True))
|
@click.argument("input_files", nargs=-1, type=click.Path(exists=True))
|
||||||
@click.option("--from", "-f", "from_format", help="Input format (json, yaml, toml)")
|
@click.option(
|
||||||
@click.option("--to", "-t", "to_format", required=True, help="Output format (json, yaml, toml)")
|
"--from", "-f", "from_format", help="Input format (json, yaml, toml)"
|
||||||
|
)
|
||||||
|
@click.option(
|
||||||
|
"--to",
|
||||||
|
"-t",
|
||||||
|
"to_format",
|
||||||
|
required=True,
|
||||||
|
help="Output format (json, yaml, toml)",
|
||||||
|
)
|
||||||
@click.option("--output-dir", "-o", default=".", help="Output directory for converted files")
|
@click.option("--output-dir", "-o", default=".", help="Output directory for converted files")
|
||||||
@click.option("--indent", "-i", default=2, help="Indentation spaces")
|
@click.option("--indent", "-i", default=2, help="Indentation spaces")
|
||||||
@click.option("--pattern", "-p", default="*.{json,yaml,yml,toml}", help="File pattern for batch processing")
|
@click.option(
|
||||||
|
"--pattern",
|
||||||
|
"-p",
|
||||||
|
default="*.{json,yaml,yml,toml}",
|
||||||
|
help="File pattern for batch processing",
|
||||||
|
)
|
||||||
@click.option("--recursive", "-r", is_flag=True, help="Search recursively")
|
@click.option("--recursive", "-r", is_flag=True, help="Search recursively")
|
||||||
@click.option("--quiet", "-q", is_flag=True, help="Minimal output")
|
@click.option("--quiet", "-q", is_flag=True, help="Minimal output")
|
||||||
def batch_convert(
|
def batch_convert(
|
||||||
@@ -116,7 +139,7 @@ def batch_convert(
|
|||||||
indent: int,
|
indent: int,
|
||||||
pattern: str,
|
pattern: str,
|
||||||
recursive: bool,
|
recursive: bool,
|
||||||
quiet: bool
|
quiet: bool,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Convert multiple files from one format to another.
|
"""Convert multiple files from one format to another.
|
||||||
|
|
||||||
@@ -126,7 +149,7 @@ def batch_convert(
|
|||||||
if to_format not in SUPPORTED_FORMATS:
|
if to_format not in SUPPORTED_FORMATS:
|
||||||
raise click.BadParameter(
|
raise click.BadParameter(
|
||||||
f"Unsupported format: {to_format}. Supported: {', '.join(SUPPORTED_FORMATS)}",
|
f"Unsupported format: {to_format}. Supported: {', '.join(SUPPORTED_FORMATS)}",
|
||||||
param_hint="--to"
|
param_hint="--to",
|
||||||
)
|
)
|
||||||
|
|
||||||
os.makedirs(output_dir, exist_ok=True)
|
os.makedirs(output_dir, exist_ok=True)
|
||||||
@@ -173,7 +196,7 @@ def validate(
|
|||||||
input_file: str,
|
input_file: str,
|
||||||
schema_file: Optional[str],
|
schema_file: Optional[str],
|
||||||
strict: bool,
|
strict: bool,
|
||||||
quiet: bool
|
quiet: bool,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Validate a file against a JSON Schema.
|
"""Validate a file against a JSON Schema.
|
||||||
|
|
||||||
@@ -182,6 +205,7 @@ def validate(
|
|||||||
try:
|
try:
|
||||||
if input_file == "-":
|
if input_file == "-":
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
content = sys.stdin.read()
|
content = sys.stdin.read()
|
||||||
input_format = "json"
|
input_format = "json"
|
||||||
data = load_data(content, input_format)
|
data = load_data(content, input_format)
|
||||||
@@ -197,7 +221,9 @@ def validate(
|
|||||||
if not quiet:
|
if not quiet:
|
||||||
for error in validator.get_error_messages(errors):
|
for error in validator.get_error_messages(errors):
|
||||||
click.echo(error)
|
click.echo(error)
|
||||||
raise click.ClickException(f"Validation failed with {len(errors)} error(s)")
|
raise click.ClickException(
|
||||||
|
f"Validation failed with {len(errors)} error(s)"
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
if not quiet:
|
if not quiet:
|
||||||
click.echo("Validation passed")
|
click.echo("Validation passed")
|
||||||
@@ -211,8 +237,15 @@ def validate(
|
|||||||
|
|
||||||
@click.command()
|
@click.command()
|
||||||
@click.argument("input_files", nargs=-1, type=click.Path(exists=True))
|
@click.argument("input_files", nargs=-1, type=click.Path(exists=True))
|
||||||
@click.option("--schema", "-s", "schema_file", required=True, help="Path to JSON Schema file")
|
@click.option(
|
||||||
@click.option("--pattern", "-p", default="*.{json,yaml,yml,toml}", help="File pattern for batch processing")
|
"--schema", "-s", "schema_file", required=True, help="Path to JSON Schema file"
|
||||||
|
)
|
||||||
|
@click.option(
|
||||||
|
"--pattern",
|
||||||
|
"-p",
|
||||||
|
default="*.{json,yaml,yml,toml}",
|
||||||
|
help="File pattern for batch processing",
|
||||||
|
)
|
||||||
@click.option("--recursive", "-r", is_flag=True, help="Search recursively")
|
@click.option("--recursive", "-r", is_flag=True, help="Search recursively")
|
||||||
@click.option("--quiet", "-q", is_flag=True, help="Minimal output")
|
@click.option("--quiet", "-q", is_flag=True, help="Minimal output")
|
||||||
def batch_validate(
|
def batch_validate(
|
||||||
@@ -220,7 +253,7 @@ def batch_validate(
|
|||||||
schema_file: str,
|
schema_file: str,
|
||||||
pattern: str,
|
pattern: str,
|
||||||
recursive: bool,
|
recursive: bool,
|
||||||
quiet: bool
|
quiet: bool,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Validate multiple files against a JSON Schema.
|
"""Validate multiple files against a JSON Schema.
|
||||||
|
|
||||||
@@ -268,7 +301,9 @@ def batch_validate(
|
|||||||
click.echo(f"Valid: {valid_count}, Invalid: {invalid_count}", err=True)
|
click.echo(f"Valid: {valid_count}, Invalid: {invalid_count}", err=True)
|
||||||
|
|
||||||
if invalid_count > 0:
|
if invalid_count > 0:
|
||||||
raise click.ClickException(f"Validation failed for {invalid_count} file(s)")
|
raise click.ClickException(
|
||||||
|
f"Validation failed for {invalid_count} file(s)"
|
||||||
|
)
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
raise click.ClickException(str(e))
|
raise click.ClickException(str(e))
|
||||||
@@ -281,7 +316,7 @@ def batch_validate(
|
|||||||
def typecheck(
|
def typecheck(
|
||||||
input_file: str,
|
input_file: str,
|
||||||
infer: bool,
|
infer: bool,
|
||||||
quiet: bool
|
quiet: bool,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Check types in a data file.
|
"""Check types in a data file.
|
||||||
|
|
||||||
@@ -290,6 +325,7 @@ def typecheck(
|
|||||||
try:
|
try:
|
||||||
if input_file == "-":
|
if input_file == "-":
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
content = sys.stdin.read()
|
content = sys.stdin.read()
|
||||||
input_format = "json"
|
input_format = "json"
|
||||||
data = load_data(content, input_format)
|
data = load_data(content, input_format)
|
||||||
@@ -301,6 +337,7 @@ def typecheck(
|
|||||||
schema = infer_schema_from_data(data)
|
schema = infer_schema_from_data(data)
|
||||||
if not quiet:
|
if not quiet:
|
||||||
import json
|
import json
|
||||||
|
|
||||||
click.echo(json.dumps(schema, indent=2))
|
click.echo(json.dumps(schema, indent=2))
|
||||||
else:
|
else:
|
||||||
if not quiet:
|
if not quiet:
|
||||||
|
|||||||
Reference in New Issue
Block a user