Skip to content

Commit

Permalink
package_checks: output dep lists with proper offset
Browse files Browse the repository at this point in the history
**Summary**

Change loader/dumper to ruamel to enable putting out dependency lists with proper offset.
This way the output can directly be copied and pasted into the recipe.

Resolves #3924

Signed-off-by: Thomas Staudinger <[email protected]>
  • Loading branch information
Staudey committed Oct 1, 2024
1 parent 0e04a2d commit 449384a
Showing 1 changed file with 21 additions and 6 deletions.
27 changes: 21 additions & 6 deletions common/CI/package_checks.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@
from dataclasses import dataclass
from datetime import datetime, timezone
from enum import Enum
from ruamel.yaml import YAML
from ruamel.yaml.compat import StringIO
from typing import Any, Callable, Dict, List, Optional, TextIO, Tuple, Union
from urllib import request
from xml.etree import ElementTree

import yaml

"""Package is either a Package YML file or Pspec XML file."""
Package = Union['PackageYML', 'PspecXML']

Expand All @@ -29,7 +29,9 @@ class PackageYML:
"""Represents a Package YML file."""

def __init__(self, stream: Any):
self._data = dict(yaml.safe_load(stream))
yaml = YAML(typ='safe', pure=True)
yaml.default_flow_style = False
self._data = dict(yaml.load(stream))

@property
def name(self) -> str:
Expand Down Expand Up @@ -92,7 +94,8 @@ class Config:

@staticmethod
def load(stream: Any) -> 'Config':
return Config(**yaml.safe_load(stream))
yaml = YAML(typ='safe', pure=True)
return Config(**yaml.load(stream))

def __post_init__(self) -> None:
self.freeze = FreezeConfig(**self.freeze) # type: ignore
Expand Down Expand Up @@ -395,7 +398,9 @@ def run(self) -> List[Result]:

def _includes_homepage(self, file: str) -> bool:
with self._open(file) as f:
return 'homepage' in yaml.safe_load(f)
yaml = YAML(typ='safe', pure=True)
yaml.default_flow_style = False
return 'homepage' in yaml.load(f)


class PackageBumped(PullRequestCheck):
Expand Down Expand Up @@ -453,8 +458,18 @@ def _check_deps(self, deps: str, file: str) -> Optional[Result]:
exp = self._sorted(cur)

if cur != exp:
class Dumper(YAML):
def dump(self, data, stream=None, **kw) -> str:
self.default_flow_style = False
self.indent(offset=4, sequence=4)
self.prefix_colon = ' ' # type: ignore[assignment]
stream = StringIO()
YAML.dump(self, data, stream, **kw)
return stream.getvalue()

yaml = Dumper(typ='safe', pure=True)
return Result(file=file, level=self._level, line=self.file_line(file, '^' + deps + r'\s*:'),
message=f'{deps} are not in order, expected: \n' + yaml.safe_dump(exp))
message=f'{deps} are not in order, expected: \n' + yaml.dump(exp))

return None

Expand Down

0 comments on commit 449384a

Please sign in to comment.