internlm/SWE-Fixer-Train-110K huggingface dataset:
Repository: pex-tool/pex

Issue:
Release 2.1.120
On the docket:
+ [x] Support REPL command history #2019 
+ [x] Using --complete-platform with --resolve-local-platforms should build sdists when local platform provides a subset of complete-platforms #2026
+ [x] A loose layout, venv-with-symlink PEX creates brittle symlinks #2023


Discussion:
Moved from "Release 2.1.119 #2008" to make way for #2002.

Resolving patch:
diff --git a/pex/version.py b/pex/version.py
--- a/pex/version.py
+++ b/pex/version.py
@@ -1,4 +1,4 @@
 # Copyright 2015 Pants project contributors (see CONTRIBUTORS.md).
 # Licensed under the Apache License, Version 2.0 (see LICENSE).
 
-__version__ = "2.1.119"
+__version__ = "2.1.120"


Test patch:
Repository: pex-tool/pex

Issue:
Release 2.1.121
On the docket:
+ [x] Building Pex with requirements.txt that includes local directory + Python version specifier fails #2037 
+ [x] Failed to resolve compatible distributions when building Pex from .whl with local dependencies #2038 



Discussion:
Moved from "Release 2.1.120 #2012" to make way for a fix for `--complete-platforms` + `--resolve-local-platforms` in #2031

Resolving patch:
diff --git a/pex/version.py b/pex/version.py
--- a/pex/version.py
+++ b/pex/version.py
@@ -1,4 +1,4 @@
 # Copyright 2015 Pants project contributors (see CONTRIBUTORS.md).
 # Licensed under the Apache License, Version 2.0 (see LICENSE).
 
-__version__ = "2.1.120"
+__version__ = "2.1.121"


Test patch:
Repository: pex-tool/pex

Issue:
Release 2.1.122
On the docket:
+ [x] Support the latest Pip releases: 22.3.1 & 23.0 #2056
+ [x] Lock sdists with prepare-metadata-for-build-wheel. #2053
+ [x] Fix `execute_parallel` "leaking" a thread. #2052



Discussion:
Moved from "Release 2.1.121 #2032" to make way for a few Poetry interoperability fixes.

Resolving patch:
diff --git a/pex/version.py b/pex/version.py
--- a/pex/version.py
+++ b/pex/version.py
@@ -1,4 +1,4 @@
 # Copyright 2015 Pants project contributors (see CONTRIBUTORS.md).
 # Licensed under the Apache License, Version 2.0 (see LICENSE).
 
-__version__ = "2.1.121"
+__version__ = "2.1.122"


Test patch:
Repository: pex-tool/pex

Issue:
Release 2.1.123
On the docket:
+ [x] Create lockfile for xmlsec fails #2063
+ [x] Internal not enough values to unpack error for pex3 lock create 'pip @ https://github.com/pypa/pip/archive/22.0.2.zip' ... #2057
+ [x] Pex lock creation does not handle wheels with non {cp,pp,py} pyver tag. #2059


Discussion:
Moved from "Release 2.1.122 #2040" to make way for a posix file locking bug fix and a fix to allow more classes of lock to succeed.

Resolving patch:
diff --git a/pex/version.py b/pex/version.py
--- a/pex/version.py
+++ b/pex/version.py
@@ -1,4 +1,4 @@
 # Copyright 2015 Pants project contributors (see CONTRIBUTORS.md).
 # Licensed under the Apache License, Version 2.0 (see LICENSE).
 
-__version__ = "2.1.122"
+__version__ = "2.1.123"


Test patch:
Repository: pex-tool/pex

Issue:
Release 2.1.124
On the docket:
+ [x] Pex files do not allow for OpenTelemetry auto-instrumentation #2065
+ [x] Intermittent / nondeterministic failure building `requirements.pex` due to missing `site-packages` #2066
+ [ ] Add support for Pip 23.0.1. #2072 


Discussion:
Broken off of "Release 2.1.123 #2054" to make way for a fix for #2057.

Resolving patch:
diff --git a/pex/version.py b/pex/version.py
--- a/pex/version.py
+++ b/pex/version.py
@@ -1,4 +1,4 @@
 # Copyright 2015 Pants project contributors (see CONTRIBUTORS.md).
 # Licensed under the Apache License, Version 2.0 (see LICENSE).
 
-__version__ = "2.1.123"
+__version__ = "2.1.124"


Test patch:
Repository: pex-tool/pex

Issue:
Release 2.1.125
On the docket:
+ [x] Support attempts to build sdists for foreign platforms. #2073


Discussion:
Broken off of "Release 2.1.124 #2058" to make way for addressing #2065.

Resolving patch:
diff --git a/pex/version.py b/pex/version.py
--- a/pex/version.py
+++ b/pex/version.py
@@ -1,4 +1,4 @@
 # Copyright 2015 Pants project contributors (see CONTRIBUTORS.md).
 # Licensed under the Apache License, Version 2.0 (see LICENSE).
 
-__version__ = "2.1.124"
+__version__ = "2.1.125"


Test patch:
Repository: pex-tool/pex

Issue:
Release 2.1.126
On the docket:
+ [x] Resolve sdist builds can race and fail. #2078 


Discussion:
Broken off of "Release 2.1.125 #2067" to make way for #2073.

Resolving patch:
diff --git a/pex/version.py b/pex/version.py
--- a/pex/version.py
+++ b/pex/version.py
@@ -1,4 +1,4 @@
 # Copyright 2015 Pants project contributors (see CONTRIBUTORS.md).
 # Licensed under the Apache License, Version 2.0 (see LICENSE).
 
-__version__ = "2.1.125"
+__version__ = "2.1.126"


Test patch:
Repository: pex-tool/pex

Issue:
Release 2.1.127
On the docket:
+ [x] Pex fails to subset a "foo @ file:///bar" URL lock. #2083


Discussion:
Broken off of "Release 2.1.126 #2074" to make way for a fix for #2078.

Resolving patch:
diff --git a/pex/version.py b/pex/version.py
--- a/pex/version.py
+++ b/pex/version.py
@@ -1,4 +1,4 @@
 # Copyright 2015 Pants project contributors (see CONTRIBUTORS.md).
 # Licensed under the Apache License, Version 2.0 (see LICENSE).
 
-__version__ = "2.1.126"
+__version__ = "2.1.127"


Test patch:
Repository: pex-tool/pex

Issue:
Release 2.1.128
On the docket:
+ [x] Regression in _populate_deps(?) for --venv PEXes #2088 

Perhaps:
+ [ ] pex fails to build pycryptodome due to filename too long #2087


Discussion:
Broken off of "Release 2.1.127 #2079" to make way for a fix for #2083.

Resolving patch:
diff --git a/pex/version.py b/pex/version.py
--- a/pex/version.py
+++ b/pex/version.py
@@ -1,4 +1,4 @@
 # Copyright 2015 Pants project contributors (see CONTRIBUTORS.md).
 # Licensed under the Apache License, Version 2.0 (see LICENSE).
 
-__version__ = "2.1.127"
+__version__ = "2.1.128"


Test patch:
Repository: pex-tool/pex

Issue:
Release 2.1.129
On the docket:
+ [x] Pex resolves VCS and local project requirements from locks incorrectly. #2092


Discussion:
Broken off of "Release 2.1.128 #2084" to make way for a fix for #2088.

Resolving patch:
diff --git a/pex/version.py b/pex/version.py
--- a/pex/version.py
+++ b/pex/version.py
@@ -1,4 +1,4 @@
 # Copyright 2015 Pants project contributors (see CONTRIBUTORS.md).
 # Licensed under the Apache License, Version 2.0 (see LICENSE).
 
-__version__ = "2.1.128"
+__version__ = "2.1.129"


Test patch:
Repository: pex-tool/pex

Issue:
Release 2.1.130
On the docket:
+ [x] Pex fails to lock - missing artifact #2098 


Discussion:
Broken off of "Release 2.1.129 #2089" to make way for a fix for #2092.

Resolving patch:
diff --git a/pex/version.py b/pex/version.py
--- a/pex/version.py
+++ b/pex/version.py
@@ -1,4 +1,4 @@
 # Copyright 2015 Pants project contributors (see CONTRIBUTORS.md).
 # Licensed under the Apache License, Version 2.0 (see LICENSE).
 
-__version__ = "2.1.129"
+__version__ = "2.1.130"


Test patch:
Repository: pex-tool/pex

Issue:
Release 2.1.131
On the docket:
+ [x] Stabilize JSON output format across Python 2/3. #2106
+ [x] Support --pip overrides via PEX deps. #2107



Discussion:
Broken off of "Release 2.1.130 #2093" to make way for a fix for #2098.

Resolving patch:
diff --git a/pex/version.py b/pex/version.py
--- a/pex/version.py
+++ b/pex/version.py
@@ -1,4 +1,4 @@
 # Copyright 2015 Pants project contributors (see CONTRIBUTORS.md).
 # Licensed under the Apache License, Version 2.0 (see LICENSE).
 
-__version__ = "2.1.130"
+__version__ = "2.1.131"


Test patch:
Repository: pex-tool/pex

Issue:
Release 2.1.132
Docket:
+ [x] Add support for Pip 23.1 #2114
+ [x] Add support for --pip-version latest. #2116


Discussion:
Broken off of "Release 2.1.131 #2099" to make way for a fix and a feature.

Resolving patch:
diff --git a/pex/version.py b/pex/version.py
--- a/pex/version.py
+++ b/pex/version.py
@@ -1,4 +1,4 @@
 # Copyright 2015 Pants project contributors (see CONTRIBUTORS.md).
 # Licensed under the Apache License, Version 2.0 (see LICENSE).
 
-__version__ = "2.1.131"
+__version__ = "2.1.132"


Test patch:
Repository: pex-tool/pex

Issue:
Release 2.1.133
On the docket:
+ [x] python<=3.8 symlink with a suffix (eg 3.7m) can create a venv without a pythonX.Y symlink which breaks pex assumptions that pythonX.Y is always available #2119


Discussion:
Broken off of "Release 2.1.132 #2108" to make way for addition of support for Pip 23.1 #2114 

Resolving patch:
diff --git a/pex/version.py b/pex/version.py
--- a/pex/version.py
+++ b/pex/version.py
@@ -1,4 +1,4 @@
 # Copyright 2015 Pants project contributors (see CONTRIBUTORS.md).
 # Licensed under the Apache License, Version 2.0 (see LICENSE).
 
-__version__ = "2.1.132"
+__version__ = "2.1.133"


Test patch:
Repository: pex-tool/pex

Issue:
Release 2.1.134
On the docket:
+ [x] A pex3 lock create can fail to gather metadata from sdists due to Pex being PEP-517 non-compliant. #2125


Discussion:
Broken off of "Release 2.1.133 #2115" to make way for a fix for #2119.

Resolving patch:
diff --git a/pex/version.py b/pex/version.py
--- a/pex/version.py
+++ b/pex/version.py
@@ -1,4 +1,4 @@
 # Copyright 2015 Pants project contributors (see CONTRIBUTORS.md).
 # Licensed under the Apache License, Version 2.0 (see LICENSE).
 
-__version__ = "2.1.133"
+__version__ = "2.1.134"


Test patch:
Repository: pex-tool/pex

Issue:
Release 2.1.135
On the docket:
+ [x] Add Support for Pip 23.1.1. #2133
+ [x] Introduce pex3 venv inspect. #2135
+ [x] Add support for Pip 23.1.2. #2142
+ [x] Introduce pex3 venv create. #2140 



Discussion:
Broken off of "Release 2.1.134 #2121" to make way for a fix for #2125.

Resolving patch:
diff --git a/pex/version.py b/pex/version.py
--- a/pex/version.py
+++ b/pex/version.py
@@ -1,4 +1,4 @@
 # Copyright 2015 Pants project contributors (see CONTRIBUTORS.md).
 # Licensed under the Apache License, Version 2.0 (see LICENSE).
 
-__version__ = "2.1.134"
+__version__ = "2.1.135"


Test patch:
Repository: pex-tool/pex

Issue:
Release 2.1.136
On the docket:
+ [x] Add pex3 lock export-subset. #2145

Perhaps:
+ [ ] Clarify `pex3 venv create` option applicability: flat vs venv and `--pex-repository` vs not.


Discussion:
Broken off of "Release 2.1.135 #2126" to make way for a few new Pip version additions and the new `pex3 venv {inspect,create}` commands.

Resolving patch:
diff --git a/pex/version.py b/pex/version.py
--- a/pex/version.py
+++ b/pex/version.py
@@ -1,4 +1,4 @@
 # Copyright 2015 Pants project contributors (see CONTRIBUTORS.md).
 # Licensed under the Apache License, Version 2.0 (see LICENSE).
 
-__version__ = "2.1.135"
+__version__ = "2.1.136"


Test patch:
Repository: pex-tool/pex

Issue:
Release 2.1.137
On the docket:
+ [x] A locked requirement with mixed artifact types fails to lock. #2150


Discussion:
Broken off of "Release 2.1.136 #2141" to make way for `pex3 lock export-subset` support.

Resolving patch:
diff --git a/pex/version.py b/pex/version.py
--- a/pex/version.py
+++ b/pex/version.py
@@ -1,4 +1,4 @@
 # Copyright 2015 Pants project contributors (see CONTRIBUTORS.md).
 # Licensed under the Apache License, Version 2.0 (see LICENSE).
 
-__version__ = "2.1.136"
+__version__ = "2.1.137"


Test patch:
Repository: pex-tool/pex

Issue:
Remove PipVersion 23.2.dev0+xyz and replace with Pip 23.2
Support for Python 3.12 is landing in #2172 by using an un-released main branch version of Pip. Replace that version with the official release and un-hide it.

This will complete Python 3.12 readiness work.

The Pip release is tracked here: https://github.com/pypa/pip/issues/12105



Discussion:

Resolving patch:
diff --git a/pex/pip/version.py b/pex/pip/version.py
--- a/pex/pip/version.py
+++ b/pex/pip/version.py
@@ -202,12 +202,10 @@ def values(cls):
     )
 
     v23_2 = PipVersionValue(
-        version="23.2.dev0+ea727e4d",
-        requirement="pip @ git+https://github.com/pypa/pip@ea727e4d6ab598f34f97c50a22350febc1214a97",
+        version="23.2",
         setuptools_version="68.0.0",
         wheel_version="0.40.0",
         requires_python=">=3.7",
-        hidden=True,
     )
 
     VENDORED = v20_3_4_patched


Test patch:
diff --git a/tests/integration/test_issue_1316.py b/tests/integration/test_issue_1316.py
--- a/tests/integration/test_issue_1316.py
+++ b/tests/integration/test_issue_1316.py
@@ -3,6 +3,9 @@
 
 import os
 import subprocess
+import sys
+
+import pytest
 
 from pex.testing import run_pex_command
 from pex.typing import TYPE_CHECKING
@@ -11,8 +14,19 @@
     from typing import Any
 
 
+@pytest.mark.skipif(sys.version_info[:2] < (3, 6), reason="PyYAML 6.0.1 requires Python >= 3.6")
 def test_resolve_cyclic_dependency_graph(tmpdir):
     # type: (Any) -> None
     naked_pex = os.path.join(str(tmpdir), "naked.pex")
-    run_pex_command(args=["Naked==0.1.31", "-o", naked_pex]).assert_success()
+
+    # N.B.: Naked 0.1.31 requires PyYAML unbounded and old versions of PyYAML that work with Python
+    # 2.7 have been broken by the Cython 3.0.0 release. As such we exclude older versions of Python
+    # from this test and pin PyYAML to a newer version that works with Cython>=3.
+    constraints = os.path.join(str(tmpdir), "constraints.txt")
+    with open(constraints, "w") as fp:
+        fp.write("PyYAML==6.0.1")
+
+    run_pex_command(
+        args=["Naked==0.1.31", "--constraints", constraints, "-o", naked_pex]
+    ).assert_success()
     subprocess.check_call(args=[naked_pex, "-c", "import Naked"])
diff --git a/tests/integration/test_issue_1817.py b/tests/integration/test_issue_1817.py
--- a/tests/integration/test_issue_1817.py
+++ b/tests/integration/test_issue_1817.py
@@ -3,6 +3,9 @@
 
 import os
 import shutil
+import sys
+
+import pytest
 
 from pex.cli.testing import run_pex3
 from pex.testing import run_pex_command
@@ -60,6 +63,7 @@ def test_sdist_for_project_with_native_extensions(tmpdir):
     assert_create_and_use_sdist_lock(tmpdir, "psutil==5.9.1", "import psutil")
 
 
+@pytest.mark.skipif(sys.version_info[:2] < (3, 6), reason="PyYAML 6.0.1 requires Python >= 3.6")
 def test_sdist_for_project_with_pep517_build(tmpdir):
     # type: (Any) -> None
-    assert_create_and_use_sdist_lock(tmpdir, "PyYAML==5.4.1", "import yaml")
+    assert_create_and_use_sdist_lock(tmpdir, "PyYAML==6.0.1", "import yaml")
Repository: pex-tool/pex

Issue:
Release 2.1.139
On the docket:
+ [x] The deprecated pex.pex_bootstrapper.bootstrap_pex_env API does not scrub pex.third_party. #2183
+ [x] Add option to include a Python package/module in the Pex #2134
+ [x] Support Python 3.12 / Pip 23.2



Discussion:
Broken off of "Release 2.1.138 #2151" to make way for a fix for #2160

Resolving patch:
diff --git a/pex/version.py b/pex/version.py
--- a/pex/version.py
+++ b/pex/version.py
@@ -1,4 +1,4 @@
 # Copyright 2015 Pants project contributors (see CONTRIBUTORS.md).
 # Licensed under the Apache License, Version 2.0 (see LICENSE).
 
-__version__ = "2.1.138"
+__version__ = "2.1.139"


Test patch:
Repository: pex-tool/pex

Issue:
Release 2.1.140
On the docket:
+ [x] Pex warns by default under Python 3.12 #2186
+ [x] importing a __pex__ leaks bootstrap vendored code #1954


Discussion:
Broken off of "Release 2.1.139 #2161" to make way for Python 3.12 / Pip 23.2 support.

Resolving patch:
diff --git a/pex/version.py b/pex/version.py
--- a/pex/version.py
+++ b/pex/version.py
@@ -1,4 +1,4 @@
 # Copyright 2015 Pants project contributors (see CONTRIBUTORS.md).
 # Licensed under the Apache License, Version 2.0 (see LICENSE).
 
-__version__ = "2.1.139"
+__version__ = "2.1.140"


Test patch:
Repository: pex-tool/pex

Issue:
Release 2.1.141
On the docket:
+ [x] The Pex CLI does not work when run from a read-only venv. #2203 


Discussion:
Broken off of "Release 2.1.140 #2178" to make way for Python 3.12 fixes.

Resolving patch:
diff --git a/pex/version.py b/pex/version.py
--- a/pex/version.py
+++ b/pex/version.py
@@ -1,4 +1,4 @@
 # Copyright 2015 Pants project contributors (see CONTRIBUTORS.md).
 # Licensed under the Apache License, Version 2.0 (see LICENSE).
 
-__version__ = "2.1.140"
+__version__ = "2.1.141"


Test patch:
Repository: pex-tool/pex

Issue:
Release 2.1.142
On the docket:
+ [x] KeyError when locking awscli on Python 3.11 #2211



Discussion:
Broken off of "Release 2.1.141 #2187" to make way for #336 / #838.

Resolving patch:
diff --git a/pex/version.py b/pex/version.py
--- a/pex/version.py
+++ b/pex/version.py
@@ -1,4 +1,4 @@
 # Copyright 2015 Pants project contributors (see CONTRIBUTORS.md).
 # Licensed under the Apache License, Version 2.0 (see LICENSE).
 
-__version__ = "2.1.141"
+__version__ = "2.1.142"


Test patch:
Repository: pex-tool/pex

Issue:
Release 2.1.143
On the docket:
+ [x] pex fails to build pycryptodome due to filename too long #2087 


Discussion:
Broken off of #2194 to make way for a fix for #2211.

Resolving patch:
diff --git a/pex/version.py b/pex/version.py
--- a/pex/version.py
+++ b/pex/version.py
@@ -1,4 +1,4 @@
 # Copyright 2015 Pants project contributors (see CONTRIBUTORS.md).
 # Licensed under the Apache License, Version 2.0 (see LICENSE).
 
-__version__ = "2.1.142"
+__version__ = "2.1.143"


Test patch:
Repository: pex-tool/pex

Issue:
Release 2.1.144
On the docket:
+ [x] Traverse directories in stable order when building a PEX #2220


Discussion:
Broken off of #2204 to make way for a fix for #336 and #838.

Resolving patch:
diff --git a/pex/version.py b/pex/version.py
--- a/pex/version.py
+++ b/pex/version.py
@@ -1,4 +1,4 @@
 # Copyright 2015 Pants project contributors (see CONTRIBUTORS.md).
 # Licensed under the Apache License, Version 2.0 (see LICENSE).
 
-__version__ = "2.1.143"
+__version__ = "2.1.144"


Test patch:
Repository: pex-tool/pex

Issue:
Release 2.1.145
On the docket:
+ [x] Raise the flit-core limit for Python 3 #2229



Discussion:
Broken off of #2212 to make way for #2220.

Resolving patch:
diff --git a/pex/version.py b/pex/version.py
--- a/pex/version.py
+++ b/pex/version.py
@@ -1,4 +1,4 @@
 # Copyright 2015 Pants project contributors (see CONTRIBUTORS.md).
 # Licensed under the Apache License, Version 2.0 (see LICENSE).
 
-__version__ = "2.1.144"
+__version__ = "2.1.145"


Test patch:
Repository: pex-tool/pex

Issue:
Release 2.1.146
On the docket:
+ [x] Fix non executable venv sys path bug #2236


Discussion:
Broken off of #2218 to make way for support for pip.conf in #336 / #838.
Support for pip.conf in #336 / #838 has been pushed to the top of the backlog in #2230 to make way for a fix for #2235.

Resolving patch:
diff --git a/pex/version.py b/pex/version.py
--- a/pex/version.py
+++ b/pex/version.py
@@ -1,4 +1,4 @@
 # Copyright 2015 Pants project contributors (see CONTRIBUTORS.md).
 # Licensed under the Apache License, Version 2.0 (see LICENSE).
 
-__version__ = "2.1.145"
+__version__ = "2.1.146"


Test patch:
Repository: pex-tool/pex

Issue:
Release 2.1.147
On the docket:
+ [x] pex does not use .pip/pip.conf to resolve packages #336 / #838



Discussion:

Resolving patch:
diff --git a/pex/version.py b/pex/version.py
--- a/pex/version.py
+++ b/pex/version.py
@@ -1,4 +1,4 @@
 # Copyright 2015 Pants project contributors (see CONTRIBUTORS.md).
 # Licensed under the Apache License, Version 2.0 (see LICENSE).
 
-__version__ = "2.1.146"
+__version__ = "2.1.147"


Test patch:
Repository: pex-tool/pex

Issue:
Release 2.1.148
On the docket:
+ [x] The Pex CLI should warn when it creates a PEX zip that requires zip64. #2247


Discussion:
Broken off of #2230 to make way for `--use-pip-config` support.

Resolving patch:
diff --git a/pex/version.py b/pex/version.py
--- a/pex/version.py
+++ b/pex/version.py
@@ -1,4 +1,4 @@
 # Copyright 2015 Pants project contributors (see CONTRIBUTORS.md).
 # Licensed under the Apache License, Version 2.0 (see LICENSE).
 
-__version__ = "2.1.147"
+__version__ = "2.1.148"


Test patch:
Repository: pex-tool/pex

Issue:
Release 2.1.149
On the docket:
+ [x] Fix universal lock handling of the none ABI. #2270


Discussion:
Broken off of #2244 to make way for `--check` zipapp ZIP64 check.

Resolving patch:
diff --git a/pex/version.py b/pex/version.py
--- a/pex/version.py
+++ b/pex/version.py
@@ -1,4 +1,4 @@
 # Copyright 2015 Pants project contributors (see CONTRIBUTORS.md).
 # Licensed under the Apache License, Version 2.0 (see LICENSE).
 
-__version__ = "2.1.148"
+__version__ = "2.1.149"


Test patch:
Repository: pex-tool/pex

Issue:
Release 2.1.150
On the docket:
+ [x] Add support for Pip 23.3.1. #2276
+ [x] Support .egg-info dist metadata. #2264


Discussion:
Broken off of #2254 to make way for a fix of #2268.

Resolving patch:
diff --git a/pex/version.py b/pex/version.py
--- a/pex/version.py
+++ b/pex/version.py
@@ -1,4 +1,4 @@
 # Copyright 2015 Pants project contributors (see CONTRIBUTORS.md).
 # Licensed under the Apache License, Version 2.0 (see LICENSE).
 
-__version__ = "2.1.149"
+__version__ = "2.1.150"


Test patch:
Repository: pex-tool/pex

Issue:
Release 2.1.151
On the docket:
+ [x] Relocate environment variable injection to before the interpreter is run #2260
+ [x] Implement support for --exclude <req>. #2281


Discussion:
Broken off of #2271 to make room for Pip 23.3.1 support and righting of the RTD ship.

Resolving patch:
diff --git a/pex/version.py b/pex/version.py
--- a/pex/version.py
+++ b/pex/version.py
@@ -1,4 +1,4 @@
 # Copyright 2015 Pants project contributors (see CONTRIBUTORS.md).
 # Licensed under the Apache License, Version 2.0 (see LICENSE).
 
-__version__ = "2.1.150"
+__version__ = "2.1.151"


Test patch:
Repository: PaddlePaddle/PaddleSeg

Issue:
labelme2seg.py工具生成的png文件是全黑的
您好，我使用labelme进行标注，然后使用labelme2seg.py生成数据集，但是生成的png文件打开之后是全黑的，看不到标注的物体，麻烦帮忙看看原因，谢谢。

下面附上labelme生成的json文件：
{
  "version": "3.16.7",
  "flags": {},
  "shapes": [
    {
      "label": "test",
      "line_color": null,
      "fill_color": null,
      "points": [
        [
          130.10619469026545,
          275.87610619469024
        ],
        [
          261.0796460176991,
          419.2389380530973
        ],
        [
          492.9380530973451,
          430.74336283185835
        ],
        [
          507.98230088495563,
          297.99999999999994
        ],
        [
          348.6902654867256,
          183.84070796460176
        ],
        [
          191.16814159292034,
          236.93805309734512
        ]
      ],
      "shape_type": "polygon",
      "flags": {}
    },
    {
      "label": "ttt",
      "line_color": null,
      "fill_color": null,
      "points": [
        [
          211.52212389380526,
          482.9557522123893
        ],
        [
          247.80530973451323,
          602.4247787610619
        ],
        [
          412.4070796460177,
          623.6637168141592
        ],
        [
          446.0353982300884,
          513.929203539823
        ],
        [
          425.68141592920347,
          459.9469026548672
        ],
        [
          262.84955752212386,
          460.8318584070796
        ]
      ],
      "shape_type": "polygon",
      "flags": {}
    }
  ],
  "lineColor": [
    0,
    255,
    0,
    128
  ],
  "fillColor": [
    255,
    0,
    0,
    128
  ],
  "imagePath": "6.jpg",
  "imageData": "太多，省略",
  "imageHeight": 694,
  "imageWidth": 685
}


Discussion:
@zhuyushi 生成的标注图像的数值是从0，1，2，...开始的。因此直接用图像浏览器打开，显示全黑的是正常的，你可以尝试读取标注数据，看看是否有包含这些标签值
再请教一下：
1、labelme2seg.py生成数据集中没有list文件（例如train.list、val.list等），这些list文件是必要的吗？如果是必要的，是否用工具可以生成这些文件，或者是否有工具生成完成的数据集。
2、png直接用图像浏览器打开看似全黑的问题，这个如何读取标注数据？我是使用labelme中直线类型标记的，想看看标记的效果。
谢谢
1. 列表生成可参考文档https://github.com/PaddlePaddle/PaddleSeg/blob/release/v0.2.0/docs/data_prepare.md
2. 可以使用opencv读取哈，利用cv2.imread读取图像，np.unique查看数值，检查图像的标签类别。你也可以通过乘以一个系数增大数值再保存图像，这样就可以清晰看清标注图像了。
多谢解惑，谢谢

Resolving patch:
diff --git a/pdseg/vis.py b/pdseg/vis.py
--- a/pdseg/vis.py
+++ b/pdseg/vis.py
@@ -87,7 +87,7 @@ def to_png_fn(fn):
 def visualize(cfg,
               vis_file_list=None,
               use_gpu=False,
-              vis_dir="visual_predict",
+              vis_dir="visual",
               ckpt_dir=None,
               log_writer=None,
               local_test=False,
@@ -117,7 +117,7 @@ def visualize(cfg,
 
     fluid.io.load_params(exe, ckpt_dir, main_program=test_prog)
 
-    save_dir = os.path.join('visual', vis_dir)
+    save_dir = vis_dir
     makedirs(save_dir)
 
     fetch_list = [pred.name]


Test patch: