Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions src/Strategy/Python/Poetry/Common.hs
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ import Strategy.Python.Poetry.PyProject (
PyProjectPoetryGitDependency (..),
PyProjectPoetryPathDependency (..),
PyProjectPoetryUrlDependency (..),
allPoetryDevDeps,
toDependencyVersion,
)

Expand Down Expand Up @@ -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 =
Expand All @@ -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)
Expand Down
6 changes: 6 additions & 0 deletions src/Strategy/Python/Poetry/PyProject.hs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ module Strategy.Python.Poetry.PyProject (
-- * for testing only
parseConstraintExpr,
toDependencyVersion,
allPoetryDevDeps,
) where

import Control.Monad.Combinators.Expr (Operator (..), makeExprParser)
Expand Down Expand Up @@ -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
Expand All @@ -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 =
Expand Down
1 change: 1 addition & 0 deletions test/Python/Poetry/CommonSpec.hs
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ expectedPyProject =
, devDependencies =
Map.fromList
[("pytest", PoetryTextVersion "*")]
, groupDevDependencies = Map.empty -- TODO: Fill in for real.
}
}

Expand Down
1 change: 1 addition & 0 deletions test/Python/Poetry/PyProjectSpec.hs
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ expectedPyProject =
, devDependencies =
Map.fromList
[("pytest", PoetryTextVersion "*")]
, groupDevDependencies = Map.empty -- TODO: Fill this in for realsies.
}
}

Expand Down
2 changes: 1 addition & 1 deletion test/Python/PoetrySpec.hs
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down