Class PyProjectHelper

java.lang.Object
org.openrewrite.python.internal.PyProjectHelper

public class PyProjectHelper extends Object
Shared utilities for Python dependency recipes operating on pyproject.toml files.
  • Constructor Details

    • PyProjectHelper

      public PyProjectHelper()
  • Method Details

    • extractPackageName

      public static @Nullable String extractPackageName(String pep508Spec)
      Extract the package name from a PEP 508 dependency spec string. The name is the first token before any version specifier, extras, or marker.
    • correspondingPyprojectPath

      public static String correspondingPyprojectPath(String uvLockPath)
      Derive the pyproject.toml path that corresponds to a uv.lock path.
    • reparseToml

      public static org.openrewrite.toml.tree.Toml.Document reparseToml(org.openrewrite.toml.tree.Toml.Document original, String newContent)
      Reparse a TOML document from new content while preserving the original document's identity (id) and markers.
    • regenerateLockAndRefreshMarker

      public static org.openrewrite.toml.tree.Toml.Document regenerateLockAndRefreshMarker(org.openrewrite.toml.tree.Toml.Document updated, Map<String,String> updatedLockFiles)
      After modifying a pyproject.toml document, regenerate the uv.lock file and refresh the PythonResolutionResult marker. Returns the updated document.
      Parameters:
      updated - the modified pyproject.toml document
      updatedLockFiles - map to store regenerated lock content keyed by pyproject path
      Returns:
      the document with refreshed marker (and possibly a warning markup)
    • isInsideProjectDependencies

      public static boolean isInsideProjectDependencies(org.openrewrite.Cursor cursor)
      Check whether a cursor path represents a position inside the [project].dependencies array in a pyproject.toml.