X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=gdcmPython%2F__init__.py;h=dcad484cb23efa8365c080bd12deb841451ba881;hb=ebee24c21fea75fcb7d0e4479cf72072fe6775f1;hp=d15ab74da3930478c057586a2848131171b6798d;hpb=c912efe3318a297cfa8ce267ab57cfee973c8125;p=gdcm.git diff --git a/gdcmPython/__init__.py b/gdcmPython/__init__.py index d15ab74d..dcad484c 100644 --- a/gdcmPython/__init__.py +++ b/gdcmPython/__init__.py @@ -1,7 +1,36 @@ import os, sys +def BuildInstallOrPreinstallPath(DirName, FileName = None): + # Builds a path to the DirName directory. This should work both when: + # - the package is properly installed in which case DirName is a subdir + # of the package, + # - when in pre-installation mode (basically inside a CVS hierarchy) + # in which case DirName and the package itself lie at the same + # filesystem level. + # In both cases we need to express the full path to DirName relatively + # to the path to this __init__.py. For this we rely on __path__ variable. + # In order to make sure we got the correct Path, we check for the + # existence of FileName if it is setted otherwise for the existence of the + # DirName. + InstallModePath = os.path.join(__path__[0], DirName + "/") + if(FileName): + if os.path.isfile(os.path.join(InstallModePath, FileName)): + return InstallModePath + else: + if os.path.isdir(InstallModePath): + return InstallModePath + + PreInstallModePath = os.path.join(__path__[0], "..", DirName + "/") + if(FileName): + if os.path.isfile(os.path.join(PreInstallModePath, FileName)): + return PreInstallModePath + else: + if os.path.isdir(PreInstallModePath): + return PreInstallModePath + return None + ### Setup the path to the dictionaries. WARNING: this needs to be done -# BEFORE importation of the shadow classse generated by swig as found +# BEFORE importation of the shadow classes generated by swig as found # in gdcm, since the dynamic library loads the standard dictionary # when dynamically loaded. # We consider we succefully found the dictionaries path when we encounter @@ -14,43 +43,19 @@ try: "dicomV3.dic")): raise KeyError except KeyError: - # When environnement variable is unavailable assume the package was - # properly installed i.e. the layout is such that the directory containing - # the dictionaries is BELOW (the root is at the top) the current file. - # Note: when importing this __init__ file the pathes are relative to the - # invocation directory. In order to get them relative to the package - # (or more simply to this file) we rely on the __path__ variable. - InstallModePath = os.path.join(__path__[0], "Dicts/") - if os.path.isfile(os.path.join(InstallModePath, "dicomV3.dic")): - os.environ["GDCM_DICT_PATH"] = InstallModePath - PreInstallModePath = None - else: - # When both environnement variable and proper package installation - # strategy fail we eventually consider the pre-installation mode - # i.e. when developpers are toying in a CVS tree. In this case - # the layout is such that the directory containing the dictionaries is - # ABOVE (the root is at the top) the current directory. - PreInstallModePath = os.path.join(__path__[0], "..", "Dicts/") - if os.path.isfile(os.path.join(PreInstallModePath, "dicomV3.dic")): - os.environ["GDCM_DICT_PATH"] = PreInstallModePath - InstallModePath = None - else: - print "Unfound gdcm dictionaries path" - sys.exit(1) - -### Set up the path to the data images (for the test suite and the demo -# examples). As for GDCM_DICT_PATH we offer both proper python package -# installation scheme and the pre-install mode (see above). -InstallModePath = os.path.join(__path__[0], "Data") -if os.path.isfile(os.path.join(InstallModePath, "test.acr")): - GDCM_DATA_PATH = InstallModePath -else: - PreInstallModePath = os.path.join(__path__[0], "..", "Data") - if os.path.isfile(os.path.join(PreInstallModePath, "test.acr")): - GDCM_DATA_PATH = PreInstallModePath - else: - print "Unfound data path" + Path = BuildInstallOrPreinstallPath("Dicts", "dicomV3.dic") + if not Path: + print "Path to dictionaries is mandatory. Exiting" sys.exit(1) + os.environ["GDCM_DICT_PATH"] = Path + +### Set up the path to the data images for the demos. +GDCM_DATA_PATH = BuildInstallOrPreinstallPath("Test", "test.acr") +if not GDCM_DATA_PATH: + print "GDCM_DATA_PATH is not setup properly: unfound Test directory" + +### Set up the path to the data images of the test suite. +GDCM_TEST_DATA_PATH = BuildInstallOrPreinstallPath("gdcmData") ### Import the swig generated shadow classes. try: @@ -63,3 +68,9 @@ except ImportError,e: gdcmHeader = gdcm.gdcmHeader gdcmDictSet = gdcm.gdcmDictSet gdcmFile = gdcm.gdcmFile + +def GetPubDictTagNames(): + return gdcm.cvar.gdcmGlob.GetDicts().GetPubDictTagNames() + +def GetPubDictTagNamesByCategory(): + return gdcm.cvar.gdcmGlob.GetDicts().GetPubDictTagNamesByCategory()