Skip to content

Commit

Permalink
do not write empty or any markers
Browse files Browse the repository at this point in the history
  • Loading branch information
JBKahn authored and Joseph Kahn committed Nov 28, 2019
1 parent a7188a1 commit 1692495
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 1 deletion.
10 changes: 9 additions & 1 deletion poetry/version/markers.py
Original file line number Diff line number Diff line change
Expand Up @@ -628,7 +628,15 @@ def __hash__(self):
return h

def __str__(self):
return " or ".join(str(m) for m in self._markers)
return " or ".join(
str(m) for m in self._markers if not m.is_any() and not m.is_empty()
)

def is_any(self):
return all(m.is_any() for m in self._markers)

def is_empty(self):
return all(m.is_empty() for m in self._markers)


def parse_marker(marker):
Expand Down
26 changes: 26 additions & 0 deletions tests/version/test_markers.py
Original file line number Diff line number Diff line change
Expand Up @@ -354,6 +354,32 @@ def test_marker_union_union_duplicates():
)


def test_marker_union_all_any():
union = MarkerUnion(parse_marker(""), parse_marker(""),)

assert union.is_any()


def test_marker_union_all_any():
union = MarkerUnion(parse_marker("<empty>"), parse_marker("<empty>"),)

assert union.is_empty()


def test_marker_str_conversion_skips_empty_and_any():
union = MarkerUnion(
parse_marker("<empty>"),
parse_marker(
'sys_platform == "darwin" or python_version <= "3.6" or os_name == "Windows"'
),
parse_marker(""),
)

assert str(union) == (
'sys_platform == "darwin" or python_version <= "3.6" or os_name == "Windows"'
)


def test_intersect_compacts_constraints():
m = parse_marker('python_version < "4.0"')

Expand Down

0 comments on commit 1692495

Please sign in to comment.