]> Creatis software - gdcm.git/blobdiff - gdcmPython/__init__.py
BUG: Remove tons of mem leaks. There are still plenty that explains why gdcm is dog...
[gdcm.git] / gdcmPython / __init__.py
index 26de4736dda7eb8520978e990b586ebd7422470e..4b2b8cc6ee5383b997132f2303161bf3437c5188 100644 (file)
@@ -1,6 +1,11 @@
 import os, sys
 
-def BuildInstallOrPreinstallPath(DirName, FileName):
+try:
+       from gdcmVersion import *
+except:
+       print "gdcmVersion not imported"
+
+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,
@@ -10,13 +15,23 @@ def BuildInstallOrPreinstallPath(DirName, FileName):
    # 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.
+   # existence of FileName if it is setted otherwise for the existence of the
+   # DirName.
    InstallModePath = os.path.join(__path__[0], DirName + "/")
-   if os.path.isfile(os.path.join(InstallModePath, FileName)):
-      return InstallModePath
+   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 os.path.isfile(os.path.join(PreInstallModePath, FileName)):
-      return PreInstallModePath
+   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
@@ -38,14 +53,19 @@ except KeyError:
       print "Path to dictionaries is mandatory. Exiting"
       sys.exit(1)
    os.environ["GDCM_DICT_PATH"] = Path
+GDCM_DICT_PATH = os.environ["GDCM_DICT_PATH"]
 
 ### Set up the path to the data images for the demos.
-GDCM_DATA_PATH = BuildInstallOrPreinstallPath("Test", "test.acr")
+if os.environ["GDCM_DATA_PATH"]:
+   GDCM_DATA_PATH = BuildInstallOrPreinstallPath(os.environ["GDCM_DATA_PATH"],
+                                                 "test.acr")
+else:
+   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", "test.acr")
+GDCM_TEST_DATA_PATH = BuildInstallOrPreinstallPath("gdcmData")
 
 ### Import the swig generated shadow classes.
 try:
@@ -55,12 +75,21 @@ except ImportError,e:
    raise ImportError, "gdcm extension not imported."
 
 ### Expose only the necessary stuff
-gdcmHeader = gdcm.gdcmHeader
-gdcmDictSet = gdcm.gdcmDictSet
-gdcmFile = gdcm.gdcmFile
+gdcmGlobal          = gdcm.gdcmGlobal
+gdcmDictSet         = gdcm.gdcmDictSet
+gdcmDicomDir        = gdcm.gdcmDicomDir
+gdcmHeader          = gdcm.gdcmHeader
+gdcmHeaderHelper    = gdcm.gdcmHeaderHelper
+gdcmFile            = gdcm.gdcmFile
+
+gdcmDicomDirMeta    = gdcm.gdcmDicomDirMeta
+gdcmDicomDirPatient = gdcm.gdcmDicomDirPatient
+gdcmDicomDirStudy   = gdcm.gdcmDicomDirStudy
+gdcmDicomDirSerie   = gdcm.gdcmDicomDirSerie
+gdcmDicomDirImage   = gdcm.gdcmDicomDirImage
 
-def GetPubDictTagNames():
-   return gdcm.cvar.gdcmGlob.GetDicts().GetPubDictTagNames()
+def GetPubDictEntryNames():
+   return gdcmGlobal.GetDicts().GetPubDictEntryNames()
 
-def GetPubDictTagNamesByCategory():
-   return gdcm.cvar.gdcmGlob.GetDicts().GetPubDictTagNamesByCategory()
+def GetPubDictEntryNamesByCategory():
+   return gdcmGlobal.GetDicts().GetPubDictEntryNamesByCategory()