diff --git a/src/Strategy/Python/Poetry/Common.hs b/src/Strategy/Python/Poetry/Common.hs index 4ca54a66b6..cf842a9ef2 100644 --- a/src/Strategy/Python/Poetry/Common.hs +++ b/src/Strategy/Python/Poetry/Common.hs @@ -35,6 +35,7 @@ import Strategy.Python.Poetry.PyProject ( PyProjectPoetryGitDependency (..), PyProjectPoetryPathDependency (..), PyProjectPoetryUrlDependency (..), + allPoetryDevDeps, toDependencyVersion, ) @@ -63,7 +64,7 @@ logIgnoredDeps pyproject poetryLock = for_ notSupportedDepsMsgs (logDebug . pret notSupportedPyProjectDevDeps = Map.keys $ Map.filter (not . supportedPyProjectDep) $ - maybe Map.empty devDependencies (pyprojectPoetry pyproject) + maybe Map.empty allPoetryDevDeps (pyprojectPoetry pyproject) notSupportedPyProjectDeps :: [Text] notSupportedPyProjectDeps = @@ -83,7 +84,9 @@ pyProjectDeps project = filter notNamedPython $ map snd allDeps notNamedPython = (/= "python") . dependencyName supportedDevDeps :: Map Text PoetryDependency - supportedDevDeps = Map.filter supportedPyProjectDep $ maybe Map.empty devDependencies (pyprojectPoetry project) + supportedDevDeps = + Map.filter supportedPyProjectDep $ + maybe Map.empty allPoetryDevDeps (pyprojectPoetry project) supportedProdDeps :: Map Text PoetryDependency supportedProdDeps = Map.filter supportedPyProjectDep $ maybe Map.empty dependencies (pyprojectPoetry project) diff --git a/src/Strategy/Python/Poetry/PyProject.hs b/src/Strategy/Python/Poetry/PyProject.hs index 46e4167a16..ed1f0a655e 100644 --- a/src/Strategy/Python/Poetry/PyProject.hs +++ b/src/Strategy/Python/Poetry/PyProject.hs @@ -13,6 +13,7 @@ module Strategy.Python.Poetry.PyProject ( -- * for testing only parseConstraintExpr, toDependencyVersion, + allPoetryDevDeps, ) where import Control.Monad.Combinators.Expr (Operator (..), makeExprParser) @@ -114,9 +115,13 @@ data PyProjectPoetry = PyProjectPoetry , description :: Maybe Text , dependencies :: Map Text PoetryDependency , devDependencies :: Map Text PoetryDependency + , groupDevDependencies :: Map Text PoetryDependency } deriving (Show, Eq, Ord) +allPoetryDevDeps :: PyProjectPoetry -> Map Text PoetryDependency +allPoetryDevDeps PyProjectPoetry{devDependencies, groupDevDependencies} = devDependencies <> groupDevDependencies + data PoetryDependency = PoetryTextVersion Text | PyProjectPoetryDetailedVersionDependencySpec PyProjectPoetryDetailedVersionDependency @@ -133,6 +138,7 @@ pyProjectPoetryCodec = <*> Toml.dioptional (Toml.text "description") .= description <*> Toml.tableMap Toml._KeyText pyProjectPoetryDependencyCodec "dependencies" .= dependencies <*> Toml.tableMap Toml._KeyText pyProjectPoetryDependencyCodec "dev-dependencies" .= devDependencies + <*> Toml.tableMap Toml._KeyText pyProjectPoetryDependencyCodec "group.dev.dependencies" .= groupDevDependencies pyProjectPoetryDependencyCodec :: Toml.Key -> TomlCodec PoetryDependency pyProjectPoetryDependencyCodec key = diff --git a/test/Python/Poetry/CommonSpec.hs b/test/Python/Poetry/CommonSpec.hs index 9769e581a7..fb586c3f02 100644 --- a/test/Python/Poetry/CommonSpec.hs +++ b/test/Python/Poetry/CommonSpec.hs @@ -100,6 +100,7 @@ expectedPyProject = , devDependencies = Map.fromList [("pytest", PoetryTextVersion "*")] + , groupDevDependencies = Map.empty -- TODO: Fill in for real. } } diff --git a/test/Python/Poetry/PyProjectSpec.hs b/test/Python/Poetry/PyProjectSpec.hs index 244aa64923..4cd69dd277 100644 --- a/test/Python/Poetry/PyProjectSpec.hs +++ b/test/Python/Poetry/PyProjectSpec.hs @@ -77,6 +77,7 @@ expectedPyProject = , devDependencies = Map.fromList [("pytest", PoetryTextVersion "*")] + , groupDevDependencies = Map.empty -- TODO: Fill this in for realsies. } } diff --git a/test/Python/PoetrySpec.hs b/test/Python/PoetrySpec.hs index 66f15de435..bf91376e02 100644 --- a/test/Python/PoetrySpec.hs +++ b/test/Python/PoetrySpec.hs @@ -26,7 +26,7 @@ candidatePyProject :: PyProject candidatePyProject = PyProject (Just $ PyProjectBuildSystem "poetry.core.masonry.api") - (Just $ PyProjectPoetry Nothing Nothing Nothing (Map.fromList ([("flow_pipes", PoetryTextVersion "^1.21")])) Map.empty) + (Just $ PyProjectPoetry Nothing Nothing Nothing (Map.fromList ([("flow_pipes", PoetryTextVersion "^1.21")])) Map.empty Map.empty) Nothing Nothing