Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
python-poetry
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
open
python-poetry
Commits
b144f02d
Commit
b144f02d
authored
Oct 03, 2022
by
Bart Kamphorst
Committed by
Bjorn Neergaard
Oct 10, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
refactor: introduce PrioritizedRepository
parent
df90acb6
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
17 additions
and
8 deletions
+17
-8
src/poetry/repositories/pool.py
+17
-8
No files found.
src/poetry/repositories/pool.py
View file @
b144f02d
...
...
@@ -3,6 +3,7 @@ from __future__ import annotations
import
enum
from
collections
import
OrderedDict
from
dataclasses
import
dataclass
from
enum
import
IntEnum
from
typing
import
TYPE_CHECKING
...
...
@@ -26,6 +27,12 @@ class Priority(IntEnum):
SECONDARY
=
enum
.
auto
()
@dataclass
(
frozen
=
True
)
class
PrioritizedRepository
:
repository
:
Repository
priority
:
Priority
class
Pool
(
AbstractRepository
):
def
__init__
(
self
,
...
...
@@ -33,9 +40,7 @@ class Pool(AbstractRepository):
ignore_repository_names
:
bool
=
False
,
)
->
None
:
super
()
.
__init__
(
"poetry-pool"
)
self
.
_repositories
:
OrderedDict
[
str
,
tuple
[
Repository
,
RepositoryPriority
]
]
=
OrderedDict
()
self
.
_repositories
:
OrderedDict
[
str
,
PrioritizedRepository
]
=
OrderedDict
()
self
.
_ignore_repository_names
=
ignore_repository_names
if
repositories
is
None
:
...
...
@@ -46,8 +51,10 @@ class Pool(AbstractRepository):
@property
def
repositories
(
self
)
->
list
[
Repository
]:
unsorted_repositories
=
self
.
_repositories
.
values
()
sorted_repositories
=
sorted
(
unsorted_repositories
,
key
=
lambda
p
:
p
[
1
]
.
value
)
return
[
repo
for
(
repo
,
_
)
in
sorted_repositories
]
sorted_repositories
=
sorted
(
unsorted_repositories
,
key
=
lambda
prio_repo
:
prio_repo
.
priority
)
return
[
prio_repo
.
repository
for
prio_repo
in
sorted_repositories
]
def
has_default
(
self
)
->
bool
:
return
self
.
_contains_priority
(
Priority
.
DEFAULT
)
...
...
@@ -57,7 +64,7 @@ class Pool(AbstractRepository):
def
_contains_priority
(
self
,
priority
:
Priority
)
->
bool
:
return
any
(
repo_prio
is
priority
for
_
,
repo_pri
o
in
self
.
_repositories
.
values
()
prio_repo
.
priority
is
priority
for
prio_rep
o
in
self
.
_repositories
.
values
()
)
def
has_repository
(
self
,
name
:
str
)
->
bool
:
...
...
@@ -66,7 +73,7 @@ class Pool(AbstractRepository):
def
repository
(
self
,
name
:
str
)
->
Repository
:
name
=
name
.
lower
()
if
self
.
has_repository
(
name
):
return
self
.
_repositories
[
name
]
[
0
]
return
self
.
_repositories
[
name
]
.
repository
raise
IndexError
(
f
'Repository "{name}" does not exist.'
)
def
add_repository
(
...
...
@@ -89,7 +96,9 @@ class Pool(AbstractRepository):
priority
=
Priority
.
DEFAULT
elif
secondary
:
priority
=
Priority
.
SECONDARY
self
.
_repositories
[
repository_name
]
=
(
repository
,
priority
)
self
.
_repositories
[
repository_name
]
=
PrioritizedRepository
(
repository
,
priority
)
return
self
def
remove_repository
(
self
,
name
:
str
)
->
Pool
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment