Skip to content

Commit 51d2b56

Browse files
committed
ENH: fix version import in a pristine source tree
Avoid crash when importing `version` module from a pristine source tree that has no egg-info data. Use setuptools Requirement only if installed in a standard mode.
1 parent 0e3f10d commit 51d2b56

1 file changed

Lines changed: 11 additions & 4 deletions

File tree

src/diffpy/pdfgui/gui/pdfguiglobals.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,18 +28,25 @@
2828
isAltered = False
2929

3030
# Resolve APPDATADIR base path to application data files.
31-
_req = Requirement.parse("diffpy.pdfgui")
31+
_upbasedir = os.path.normpath(resource_filename(__name__, '../../..'))
3232
_development_mode = (
33-
os.path.basename(resource_filename(_req, "")) == "src" and
34-
os.path.isfile(resource_filename(_req, "../setup.py"))
33+
os.path.basename(_upbasedir) == "src" and
34+
os.path.isfile(os.path.join(_upbasedir, "../setup.py"))
3535
)
3636

37-
APPDATADIR = resource_filename(_req, ".." if _development_mode else "")
37+
# Requirement must have egg-info. Do not use in _development_mode.
38+
_req = Requirement.parse("diffpy.pdfgui")
39+
APPDATADIR = (os.path.dirname(_upbasedir) if _development_mode
40+
else resource_filename(_req, ""))
3841
APPDATADIR = os.path.abspath(APPDATADIR)
3942

4043
# Location of the HTML manual
4144
docMainFile = os.path.join(APPDATADIR, 'doc/manual/pdfgui.html')
4245

46+
del _upbasedir
47+
del _development_mode
48+
del _req
49+
4350

4451
def iconpath(iconfilename):
4552
"""Full path to the icon file in pdfgui installation.

0 commit comments

Comments
 (0)