Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
setuptools
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jérome Perrin
setuptools
Commits
811c4fea
Commit
811c4fea
authored
May 18, 2018
by
Jason R. Coombs
Committed by
GitHub
May 18, 2018
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1364 from seawolf42/feature/issue-1330
Feature/issue 1330
parents
5749b9cf
58ad1e14
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
43 additions
and
0 deletions
+43
-0
changelog.d/1364.rst
changelog.d/1364.rst
+1
-0
pkg_resources/__init__.py
pkg_resources/__init__.py
+13
-0
pkg_resources/tests/test_resources.py
pkg_resources/tests/test_resources.py
+29
-0
No files found.
changelog.d/1364.rst
0 → 100644
View file @
811c4fea
Add `__dir__()` implementation to `pkg_resources.Distribution()` that includes the attributes in the `_provider` instance variable.
\ No newline at end of file
pkg_resources/__init__.py
View file @
811c4fea
...
@@ -2663,6 +2663,19 @@ class Distribution(object):
...
@@ -2663,6 +2663,19 @@ class Distribution(object):
raise
AttributeError
(
attr
)
raise
AttributeError
(
attr
)
return
getattr
(
self
.
_provider
,
attr
)
return
getattr
(
self
.
_provider
,
attr
)
def
__dir__
(
self
):
return
list
(
set
(
super
(
Distribution
,
self
).
__dir__
())
|
set
(
attr
for
attr
in
self
.
_provider
.
__dir__
()
if
not
attr
.
startswith
(
'_'
)
)
)
if
not
hasattr
(
object
,
'__dir__'
):
# python 2.7 not supported
del
__dir__
@
classmethod
@
classmethod
def
from_filename
(
cls
,
filename
,
metadata
=
None
,
**
kw
):
def
from_filename
(
cls
,
filename
,
metadata
=
None
,
**
kw
):
return
cls
.
from_location
(
return
cls
.
from_location
(
...
...
pkg_resources/tests/test_resources.py
View file @
811c4fea
...
@@ -145,6 +145,35 @@ class TestDistro:
...
@@ -145,6 +145,35 @@ class TestDistro:
for
v
in
"Twisted>=1.5"
,
"Twisted>=1.5
\
n
ZConfig>=2.0"
:
for
v
in
"Twisted>=1.5"
,
"Twisted>=1.5
\
n
ZConfig>=2.0"
:
self
.
checkRequires
(
self
.
distRequires
(
v
),
v
)
self
.
checkRequires
(
self
.
distRequires
(
v
),
v
)
needs_object_dir
=
pytest
.
mark
.
skipif
(
not
hasattr
(
object
,
'__dir__'
),
reason
=
'object.__dir__ necessary for self.__dir__ implementation'
,
)
def
test_distribution_dir
(
self
):
d
=
pkg_resources
.
Distribution
()
dir
(
d
)
@
needs_object_dir
def
test_distribution_dir_includes_provider_dir
(
self
):
d
=
pkg_resources
.
Distribution
()
before
=
d
.
__dir__
()
assert
'test_attr'
not
in
before
d
.
_provider
.
test_attr
=
None
after
=
d
.
__dir__
()
assert
len
(
after
)
==
len
(
before
)
+
1
assert
'test_attr'
in
after
@
needs_object_dir
def
test_distribution_dir_ignores_provider_dir_leading_underscore
(
self
):
d
=
pkg_resources
.
Distribution
()
before
=
d
.
__dir__
()
assert
'_test_attr'
not
in
before
d
.
_provider
.
_test_attr
=
None
after
=
d
.
__dir__
()
assert
len
(
after
)
==
len
(
before
)
assert
'_test_attr'
not
in
after
def
testResolve
(
self
):
def
testResolve
(
self
):
ad
=
pkg_resources
.
Environment
([])
ad
=
pkg_resources
.
Environment
([])
ws
=
WorkingSet
([])
ws
=
WorkingSet
([])
...
...
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