-
Notifications
You must be signed in to change notification settings - Fork 97
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #81 from zopefoundation/patch-interface-213
Patch zope.interface to remove docstrings and avoid publishing.
- Loading branch information
Showing
5 changed files
with
97 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# Import all patches. | ||
import publishing | ||
|
||
# Have the patches been applied yet? | ||
_patched = False | ||
|
||
|
||
def apply_patches(): | ||
global _patched | ||
if _patched: | ||
return | ||
_patched = True | ||
|
||
publishing.apply_patches() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
# -*- coding: utf-8 -*- | ||
|
||
|
||
def delete_method_docstring(klass, method_name): | ||
# Delete the docstring from the class method. | ||
# Objects must have a docstring to be published. | ||
# So this avoids them getting published. | ||
method = getattr(klass, method_name, None) | ||
if (method is not None and hasattr(method, 'im_func') and | ||
hasattr(method.im_func, '__doc__')): | ||
del method.im_func.__doc__ | ||
|
||
|
||
element_methods = [ | ||
'getDoc', | ||
'getName', | ||
'getTaggedValue', | ||
'getTaggedValueTags', | ||
'queryTaggedValue', | ||
'setTaggedValue', | ||
] | ||
interface_methods = [ | ||
'changed', | ||
'dependents', | ||
'direct', | ||
'extends', | ||
'get', | ||
'getBases', | ||
'getDescriptionFor', | ||
'implementedBy', | ||
'interfaces', | ||
'isEqualOrExtendedBy', | ||
'isOrExtends', | ||
'names', | ||
'namesAndDescriptions', | ||
'providedBy', | ||
'queryDescriptionFor', | ||
'subscribe', | ||
'unsubscribe', | ||
'validateInvariants', | ||
'weakref', | ||
] | ||
|
||
|
||
# Has this patch been applied yet? | ||
_patched = False | ||
|
||
|
||
def apply_patches(): | ||
global _patched | ||
if _patched: | ||
return | ||
_patched = True | ||
|
||
from zope.interface import Attribute | ||
from zope.interface import Interface | ||
from zope.interface.interface import Element | ||
from zope.interface.interface import Method | ||
|
||
for klass in [Element, Attribute, Interface, Method]: | ||
try: | ||
del klass.__doc__ | ||
except: | ||
pass | ||
for method_name in element_methods: | ||
delete_method_docstring(klass, method_name) | ||
|
||
for method_name in interface_methods: | ||
delete_method_docstring(Interface, method_name) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters