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
df90acb6
Commit
df90acb6
authored
Oct 01, 2022
by
Bart Kamphorst
Committed by
Bjorn Neergaard
Oct 10, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
refactor: introduce AbstractRepository
parent
46ae4f54
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
45 additions
and
15 deletions
+45
-15
src/poetry/repositories/abstract_repository.py
+37
-0
src/poetry/repositories/cached.py
+1
-1
src/poetry/repositories/http.py
+1
-2
src/poetry/repositories/pool.py
+3
-6
src/poetry/repositories/repository.py
+3
-6
No files found.
src/poetry/repositories/abstract_repository.py
0 → 100644
View file @
df90acb6
from
__future__
import
annotations
from
abc
import
ABC
from
abc
import
abstractmethod
from
typing
import
TYPE_CHECKING
if
TYPE_CHECKING
:
from
poetry.core.packages.dependency
import
Dependency
from
poetry.core.packages.package
import
Package
from
poetry.core.semver.version
import
Version
class
AbstractRepository
(
ABC
):
def
__init__
(
self
,
name
:
str
)
->
None
:
self
.
_name
=
name
@property
def
name
(
self
)
->
str
:
return
self
.
_name
@abstractmethod
def
find_packages
(
self
,
dependency
:
Dependency
)
->
list
[
Package
]:
...
@abstractmethod
def
search
(
self
,
query
:
str
)
->
list
[
Package
]:
...
@abstractmethod
def
package
(
self
,
name
:
str
,
version
:
Version
,
extras
:
list
[
str
]
|
None
=
None
,
)
->
Package
:
...
src/poetry/repositories/cached.py
View file @
df90acb6
...
...
@@ -46,7 +46,7 @@ class CachedRepository(Repository, ABC):
def
_get_release_info
(
self
,
name
:
NormalizedName
,
version
:
Version
)
->
dict
[
str
,
Any
]:
raise
NotImplementedError
()
...
def
get_release_info
(
self
,
name
:
NormalizedName
,
version
:
Version
)
->
PackageInfo
:
"""
...
...
src/poetry/repositories/http.py
View file @
df90acb6
...
...
@@ -5,7 +5,6 @@ import os
import
urllib
import
urllib.parse
from
abc
import
ABC
from
collections
import
defaultdict
from
pathlib
import
Path
from
typing
import
TYPE_CHECKING
...
...
@@ -35,7 +34,7 @@ if TYPE_CHECKING:
from
poetry.utils.authenticator
import
RepositoryCertificateConfig
class
HTTPRepository
(
CachedRepository
,
ABC
):
class
HTTPRepository
(
CachedRepository
):
def
__init__
(
self
,
name
:
str
,
...
...
src/poetry/repositories/pool.py
View file @
df90acb6
...
...
@@ -6,6 +6,7 @@ from collections import OrderedDict
from
enum
import
IntEnum
from
typing
import
TYPE_CHECKING
from
poetry.repositories.abstract_repository
import
AbstractRepository
from
poetry.repositories.exceptions
import
PackageNotFound
...
...
@@ -25,13 +26,13 @@ class Priority(IntEnum):
SECONDARY
=
enum
.
auto
()
class
Pool
:
class
Pool
(
AbstractRepository
)
:
def
__init__
(
self
,
repositories
:
list
[
Repository
]
|
None
=
None
,
ignore_repository_names
:
bool
=
False
,
)
->
None
:
s
elf
.
_name
=
"poetry-pool"
s
uper
()
.
__init__
(
"poetry-pool"
)
self
.
_repositories
:
OrderedDict
[
str
,
tuple
[
Repository
,
RepositoryPriority
]
]
=
OrderedDict
()
...
...
@@ -43,10 +44,6 @@ class Pool:
self
.
add_repository
(
repository
)
@property
def
name
(
self
)
->
str
:
return
self
.
_name
@property
def
repositories
(
self
)
->
list
[
Repository
]:
unsorted_repositories
=
self
.
_repositories
.
values
()
sorted_repositories
=
sorted
(
unsorted_repositories
,
key
=
lambda
p
:
p
[
1
]
.
value
)
...
...
src/poetry/repositories/repository.py
View file @
df90acb6
...
...
@@ -8,6 +8,7 @@ from packaging.utils import canonicalize_name
from
poetry.core.constraints.version
import
Version
from
poetry.core.constraints.version
import
VersionRange
from
poetry.repositories.abstract_repository
import
AbstractRepository
from
poetry.repositories.exceptions
import
PackageNotFound
...
...
@@ -19,19 +20,15 @@ if TYPE_CHECKING:
from
poetry.core.packages.utils.link
import
Link
class
Repository
:
class
Repository
(
AbstractRepository
)
:
def
__init__
(
self
,
name
:
str
,
packages
:
list
[
Package
]
|
None
=
None
)
->
None
:
s
elf
.
_name
=
name
s
uper
()
.
__init__
(
name
)
self
.
_packages
:
list
[
Package
]
=
[]
for
package
in
packages
or
[]:
self
.
add_package
(
package
)
@property
def
name
(
self
)
->
str
:
return
self
.
_name
@property
def
packages
(
self
)
->
list
[
Package
]:
return
self
.
_packages
...
...
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