Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Lowercase and CamelCase checking of module imports in UMDP3 checker

Đang mở
#220 0 bình luận 0 reaction 1 người được giao Xem trên GitHub

@Pierre-siddall đang làm issue này rồi.

Từ ngày 28/4/2026.

Đánh giá

Issue này chưa được đánh giá.

Mô tả

bug

During the runtime of umdp3_conformance.py it was noted that changing module imports to be uppercase did not result in a failure being registered in the output of the script as expected. umdp3_conformance.py calls the following code in umdp3_checker_rules.py

    def lowercase_variable_names(self, lines: List[str]) -> TestResult:
        """Check for lowercase or CamelCase variable names only"""
        """
    TODO: This is a very simplistic check and will not detect many
        cases which break UMDP3. I suspect the Perl Predecessor concatenated
        continuation lines prior to 'cleaning' and checking. Having identified
        a declaration, it also then scanned the rest of the file for that
        variable name in any case."""
        failures = 0
        error_log = {}
        count = -1
        for count, line in enumerate(lines):
            clean_line = self.remove_quoted(line)
            clean_line = re.sub(r"!.*$", "", clean_line)

            # Simple check for UPPERCASE variable declarations
            if re.search(
                r"^\s*(INTEGER|REAL|LOGICAL|CHARACTER|TYPE)\s*.*::\s*[A-Z_]+",
                clean_line,
                re.IGNORECASE,
            ):
                clean_line = re.sub(
                    r"^\s*(INTEGER|REAL|LOGICAL|CHARACTER|TYPE)\s*.*::\s*",
                    "",
                    clean_line,
                )
                if match := re.search(r"([A-Z]{2,})", clean_line):
                    self.add_extra_error(f"UPPERCASE variable name : {match[1]}")
                    failures += 1
                    error_log = self.add_error_log(
                        error_log, f"UPPERCASE variable name {match[1]}", count +1
                    )

        output = f"Checked {count + 1} lines, found {failures} failures."
        return TestResult(
            checker_name="Lowercase or CamelCase variable names only",
            failure_count=failures,
            passed=(failures == 0),
            output=output,
            errors=error_log,
        )

addressing this issue will involve a refactor of this function to ensure module level imports are checked.

Ngôn ngữ chính
Python
Star
9
Fork
19
Merge trung bình
1 ngày 20 giờ
Pull request đã merge (30 ngày)
3

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của MetOffice/SimSys_Scripts

Tất cả issue của MetOffice/SimSys_Scripts

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.