Skip to content

Commit 347eea5

Browse files
committed
move due.py to external
1 parent 5795b12 commit 347eea5

File tree

1 file changed

+72
-0
lines changed

1 file changed

+72
-0
lines changed

nipype/external/due.py

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# emacs: at the end of the file
2+
# ex: set sts=4 ts=4 sw=4 et:
3+
# ## ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### #
4+
"""
5+
6+
Stub file for a guaranteed safe import of duecredit constructs: if duecredit
7+
is not available.
8+
9+
To use it, place it into your project codebase to be imported, e.g. copy as
10+
11+
cp stub.py /path/tomodule/module/due.py
12+
13+
Note that it might be better to avoid naming it duecredit.py to avoid shadowing
14+
installed duecredit.
15+
16+
Then use in your code as
17+
18+
from .due import due, Doi, BibTeX
19+
20+
See https://github.com/duecredit/duecredit/blob/master/README.md for examples.
21+
22+
Origin: Originally a part of the duecredit
23+
Copyright: 2015-2016 DueCredit developers
24+
License: BSD-2
25+
"""
26+
27+
__version__ = '0.0.5'
28+
29+
30+
class InactiveDueCreditCollector(object):
31+
"""Just a stub at the Collector which would not do anything"""
32+
def _donothing(self, *args, **kwargs):
33+
"""Perform no good and no bad"""
34+
pass
35+
36+
def dcite(self, *args, **kwargs):
37+
"""If I could cite I would"""
38+
def nondecorating_decorator(func):
39+
return func
40+
return nondecorating_decorator
41+
42+
cite = load = add = _donothing
43+
44+
def __repr__(self):
45+
return self.__class__.__name__ + '()'
46+
47+
48+
def _donothing_func(*args, **kwargs):
49+
"""Perform no good and no bad"""
50+
pass
51+
52+
try:
53+
from duecredit import due, BibTeX, Doi, Url
54+
if 'due' in locals() and not hasattr(due, 'cite'):
55+
raise RuntimeError(
56+
"Imported due lacks .cite. DueCredit is now disabled")
57+
except Exception as e:
58+
if type(e).__name__ != 'ImportError':
59+
import logging
60+
logging.getLogger("duecredit").error(
61+
"Failed to import duecredit due to %s" % str(e))
62+
# Initiate due stub
63+
due = InactiveDueCreditCollector()
64+
BibTeX = Doi = Url = _donothing_func
65+
66+
# Emacs mode definitions
67+
# Local Variables:
68+
# mode: python
69+
# py-indent-offset: 4
70+
# tab-width: 4
71+
# indent-tabs-mode: nil
72+
# End:

0 commit comments

Comments
 (0)