syntopica-codeality-py 0.2.0__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.
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/CHANGELOG.md +17 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/PKG-INFO +1 -1
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/pyproject.toml +1 -1
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/assets/codeality-py-ci.yml +2 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/units/legacy_type_alias.py +9 -6
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/rules/test_one_primary_unit.py +11 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/uv.lock +1 -1
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/.gitignore +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/LICENSE +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/README.md +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/codeality-py.toml +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/mypy.ini +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/ruff.toml +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/__init__.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/assets/codeality-py.toml +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/assets/importlinter.ini +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/assets/mypy.ini +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/assets/pyproject-sections.toml +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/assets/ruff.toml +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/baseline/__init__.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/baseline/baseline_file.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/baseline/classified_findings.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/baseline/classify_findings.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/baseline/finding_context.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/baseline/fingerprint.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/baseline/fingerprint_context.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/baseline/read_baseline.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/baseline/write_baseline.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/cli.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/commands/__init__.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/commands/baseline_check_command.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/commands/baseline_command.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/commands/baseline_update_command.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/commands/check_command.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/commands/checked_project.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/commands/gate_command.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/commands/init_command.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/commands/project_option.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/config/__init__.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/config/baseline_config.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/config/check_schema_version.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/config/config_error.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/config/default_generated_globs.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/config/discover_source_roots.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/config/discover_test_roots.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/config/limits.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/config/load_config.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/config/module_role.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/config/override.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/config/parse_overrides.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/config/parse_roles.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/config/parse_rule_codes.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/config/pyproject_layout_hints.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/config/read_config_document.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/config/reject_duplicate_role_claims.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/config/reject_unknown_keys.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/engine/__init__.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/engine/check_project.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/engine/check_result.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/engine/check_source_file.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/engine/fingerprint_findings.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/engine/rule_registry.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/gate/__init__.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/gate/build_stage_result.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/gate/gate_result.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/gate/gate_stages.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/gate/run_gate.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/gate/run_stage.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/gate/stage.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/gate/stage_kind.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/gate/stage_result.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/gate/stage_status.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/init/__init__.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/init/add_missing_rules.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/init/apply_init.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/init/current_branch.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/init/first_party_packages.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/init/has_ruff_table.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/init/managed_asset_files.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/init/managed_file.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/init/merge_pyproject_sections.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/init/merge_quality_group.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/init/merge_ruff_config.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/init/plan_asset_file.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/init/plan_disposition.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/init/plan_init.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/init/plan_pyproject.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/init/plan_ruff.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/init/plan_shadowed_ruff.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/init/python_floor_minor.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/init/read_asset.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/init/read_requires_python.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/init/render_asset.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/init/render_nested_workflow.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/init/repository_root.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/init/workflow_target.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/model/__init__.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/model/finding.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/model/location.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/model/rule_code.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/model/severity.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/parsing/__init__.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/parsing/infrastructure_error.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/parsing/parse_source_file.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/parsing/read_source_text.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/parsing/source_file.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/parsing/syntax_error_finding.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/report/__init__.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/report/exit_code.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/report/finding_document.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/report/findings_summary.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/report/render_gate_report.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/report/render_json_report.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/report/render_text_report.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/report/stage_document.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/roles/__init__.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/roles/assign_module_role.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/roles/compile_glob.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/roles/matches_any_pattern.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/roles/matches_glob.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/roles/test_file_patterns.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/rules/__init__.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/rules/barrel_only_init.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/rules/count_code_lines.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/rules/data_unit_findings.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/rules/docstring_line_spans.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/rules/file_matches_unit.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/rules/grab_bag_names.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/rules/is_allowed_barrel_statement.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/rules/is_column_list.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/rules/is_docstring_statement.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/rules/is_sql_literal.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/rules/is_static_dunder_assignment.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/rules/is_type_checking_block.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/rules/joined_string_text.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/rules/looks_like_sql.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/rules/max_file_lines.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/rules/no_grab_bag_names.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/rules/no_inline_sql.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/rules/one_primary_unit.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/rules/ordinary_unit_findings.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/rules/sql_subject.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/rules/unit_finding.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/suppression/__init__.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/suppression/apply_suppressions.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/suppression/build_suppression.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/suppression/covering_suppression.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/suppression/is_overridden.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/suppression/parse_suppression_line.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/suppression/parse_suppressions.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/suppression/suppression.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/traversal/__init__.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/traversal/collect_source_files.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/traversal/default_excludes.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/traversal/gitignore_matcher.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/traversal/walk_root.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/units/__init__.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/units/coalesce_overloads.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/units/coalesce_singledispatch.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/units/collect_declarations.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/units/count_primary_declarations.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/units/declaration.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/units/declaration_for.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/units/declaration_kind.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/units/decorator_name.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/units/decorator_names.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/units/is_main_guard.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/units/is_private_local_handler.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/units/literal_string_names.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/units/merge_stray_letters.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/units/named_declaration.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/units/overload_family_length.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/units/resolve_exported_names.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/units/to_snake_case.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/units/top_level_statements.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/baseline/test_classify_findings.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/commands/test_baseline_command.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/commands/test_check_command.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/config/test_load_config.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/config/test_pyproject_layout_hints.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/conftest.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/gate/test_gate_stages.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/gate/test_run_gate.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/init/test_merge_ruff_config.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/init/test_plan_init.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/init/test_render_asset.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/model/test_finding.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/model/test_rule_code.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/parsing/test_parse_source_file.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/roles/test_assign_module_role.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/roles/test_matches_glob.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/rules/test_barrel_only_init.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/rules/test_file_matches_unit.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/rules/test_max_file_lines.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/rules/test_no_grab_bag_names.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/rules/test_no_inline_sql.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/test_cli_version.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/traversal/test_collect_source_files.py +0 -0
- {syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/units/test_to_snake_case.py +0 -0
|
@@ -4,6 +4,23 @@ All notable changes to `syntopica-codeality-py` are documented here. The format
|
|
|
4
4
|
follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and the project
|
|
5
5
|
adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## 0.2.2
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- The CI workflow `init --ci` writes now checks out without persisting the
|
|
12
|
+
GitHub token in the runner's git config. Nothing in that workflow pushes, so
|
|
13
|
+
the credential only widened what a compromised step could reach.
|
|
14
|
+
|
|
15
|
+
## 0.2.1
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
|
|
19
|
+
- A functional `TypedDict` or `NamedTuple` assigned to a name is the module's
|
|
20
|
+
unit, like the `NewType` beside it. The class syntax is not always available:
|
|
21
|
+
a field named `in`, or any other Python keyword, can only be declared this
|
|
22
|
+
way, and such a module was reported as having no declaration at all.
|
|
23
|
+
|
|
7
24
|
## 0.2.0
|
|
8
25
|
|
|
9
26
|
### Changed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: syntopica-codeality-py
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Summary: Structural linter and config scaffolder for Python: atomic files, placement, size caps, no inline SQL
|
|
5
5
|
Project-URL: Homepage, https://github.com/syntopica/codeality
|
|
6
6
|
Project-URL: Issues, https://github.com/syntopica/codeality/issues
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "syntopica-codeality-py"
|
|
7
|
-
version = "0.2.
|
|
7
|
+
version = "0.2.2"
|
|
8
8
|
description = "Structural linter and config scaffolder for Python: atomic files, placement, size caps, no inline SQL"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.11"
|
|
@@ -17,6 +17,8 @@ jobs:
|
|
|
17
17
|
python-version: ['3.11', '3.13']
|
|
18
18
|
steps:
|
|
19
19
|
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
|
|
20
|
+
with:
|
|
21
|
+
persist-credentials: false
|
|
20
22
|
|
|
21
23
|
- name: Install uv
|
|
22
24
|
uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7.6.0
|
|
@@ -9,10 +9,13 @@ from codeality_py.units.named_declaration import named_declaration
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
def legacy_type_alias(statement: ast.stmt, location: Location) -> Declaration | None:
|
|
12
|
-
"""Return a declaration for ``X: TypeAlias`` or
|
|
12
|
+
"""Return a declaration for ``X: TypeAlias`` or a functional type call.
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
The functional forms - ``NewType``, ``TypedDict`` and ``NamedTuple`` - are
|
|
15
|
+
the same declaration the class syntax makes, written the only way that
|
|
16
|
+
works when a field name is a Python keyword. A plain ``Alias = list[str]``
|
|
17
|
+
is deliberately not recognised: inferring intent from an unannotated
|
|
18
|
+
assignment produces false positives.
|
|
16
19
|
"""
|
|
17
20
|
if isinstance(statement, ast.AnnAssign) and isinstance(statement.target, ast.Name):
|
|
18
21
|
annotation = statement.annotation
|
|
@@ -23,11 +26,11 @@ def legacy_type_alias(statement: ast.stmt, location: Location) -> Declaration |
|
|
|
23
26
|
return None
|
|
24
27
|
target = statement.targets[0]
|
|
25
28
|
value = statement.value
|
|
26
|
-
|
|
29
|
+
is_type_call = (
|
|
27
30
|
isinstance(value, ast.Call)
|
|
28
31
|
and isinstance(value.func, ast.Name)
|
|
29
|
-
and value.func.id
|
|
32
|
+
and value.func.id in ("NewType", "TypedDict", "NamedTuple")
|
|
30
33
|
)
|
|
31
|
-
if isinstance(target, ast.Name) and
|
|
34
|
+
if isinstance(target, ast.Name) and is_type_call:
|
|
32
35
|
return named_declaration(target.id, DeclarationKind.TYPE_ALIAS, location)
|
|
33
36
|
return None
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/rules/test_one_primary_unit.py
RENAMED
|
@@ -77,6 +77,17 @@ def test_new_type_counts(make_source, config) -> None:
|
|
|
77
77
|
assert not _clean(make_source, config, body)
|
|
78
78
|
|
|
79
79
|
|
|
80
|
+
def test_a_functional_typed_dict_is_the_module_unit(make_source, config) -> None:
|
|
81
|
+
# The only way to declare a field whose name is a Python keyword.
|
|
82
|
+
body = "from typing import TypedDict\n\nNode = TypedDict('Node', {'id': str, 'in': int})\n"
|
|
83
|
+
assert _clean(make_source, config, body)
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
def test_a_functional_named_tuple_is_the_module_unit(make_source, config) -> None:
|
|
87
|
+
body = "from typing import NamedTuple\n\nPoint = NamedTuple('Point', [('x', int)])\n"
|
|
88
|
+
assert _clean(make_source, config, body)
|
|
89
|
+
|
|
90
|
+
|
|
80
91
|
def test_a_plain_assignment_alias_does_not_count(make_source, config) -> None:
|
|
81
92
|
body = "Rows = list[str]\n\n\ndef load() -> Rows:\n return []\n"
|
|
82
93
|
assert _clean(make_source, config, body)
|
|
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
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/assets/mypy.ini
RENAMED
|
File without changes
|
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/assets/ruff.toml
RENAMED
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/baseline/__init__.py
RENAMED
|
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
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/commands/__init__.py
RENAMED
|
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
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/config/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/config/limits.py
RENAMED
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/config/load_config.py
RENAMED
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/config/module_role.py
RENAMED
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/config/override.py
RENAMED
|
File without changes
|
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/config/parse_roles.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/engine/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/gate/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/gate/gate_result.py
RENAMED
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/gate/gate_stages.py
RENAMED
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/gate/run_gate.py
RENAMED
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/gate/run_stage.py
RENAMED
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/gate/stage.py
RENAMED
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/gate/stage_kind.py
RENAMED
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/gate/stage_result.py
RENAMED
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/gate/stage_status.py
RENAMED
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/init/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/init/apply_init.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/init/managed_file.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/init/plan_init.py
RENAMED
|
File without changes
|
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/init/plan_ruff.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/init/read_asset.py
RENAMED
|
File without changes
|
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/init/render_asset.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/model/__init__.py
RENAMED
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/model/finding.py
RENAMED
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/model/location.py
RENAMED
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/model/rule_code.py
RENAMED
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/model/severity.py
RENAMED
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/parsing/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/report/__init__.py
RENAMED
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/report/exit_code.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/roles/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/roles/compile_glob.py
RENAMED
|
File without changes
|
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/roles/matches_glob.py
RENAMED
|
File without changes
|
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/rules/__init__.py
RENAMED
|
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
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/rules/sql_subject.py
RENAMED
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/rules/unit_finding.py
RENAMED
|
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
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/traversal/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/units/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/src/codeality_py/units/declaration.py
RENAMED
|
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
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/commands/test_check_command.py
RENAMED
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/config/test_load_config.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/gate/test_gate_stages.py
RENAMED
|
File without changes
|
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/init/test_merge_ruff_config.py
RENAMED
|
File without changes
|
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/init/test_render_asset.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/roles/test_assign_module_role.py
RENAMED
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/roles/test_matches_glob.py
RENAMED
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/rules/test_barrel_only_init.py
RENAMED
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/rules/test_file_matches_unit.py
RENAMED
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/rules/test_max_file_lines.py
RENAMED
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/rules/test_no_grab_bag_names.py
RENAMED
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/rules/test_no_inline_sql.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{syntopica_codeality_py-0.2.0 → syntopica_codeality_py-0.2.2}/tests/units/test_to_snake_case.py
RENAMED
|
File without changes
|