@@ -736,7 +736,7 @@ def get(self, name, default=None, getclass=False, getlink=False, track_order=Fal
736
736
except KeyError :
737
737
return default
738
738
739
- if name is not None and name not in self :
739
+ if not isinstance ( name , list ) and name is not None and name not in self :
740
740
return default
741
741
742
742
elif getclass and not getlink :
@@ -753,14 +753,17 @@ def get(self, name, default=None, getclass=False, getlink=False, track_order=Fal
753
753
raise TypeError ("Unknown object type" )
754
754
755
755
elif getlink :
756
- if name is None :
756
+ if name is None or isinstance ( name , list ) :
757
757
# Get all links in target group(s)
758
758
# Retrieve "limit", "marker", and "pattern" from kwds
759
759
limit = kwds .get ("limit" , None )
760
760
marker = kwds .get ("marker" , None )
761
761
pattern = kwds .get ("pattern" , None )
762
762
follow_links = kwds .get ("follow_links" , False )
763
763
764
+ if name and (limit or marker or pattern or follow_links ):
765
+ raise ValueError ("Cannot specify 'name' along with 'limit', 'marker', 'pattern', or 'follow_links'" )
766
+
764
767
req = "/groups/" + self .id .uuid + "/links"
765
768
params = {}
766
769
@@ -775,7 +778,15 @@ def get(self, name, default=None, getclass=False, getlink=False, track_order=Fal
775
778
if track_order :
776
779
params ["CreateOrder" ] = 1
777
780
778
- rsp = self .GET (req , params = params )
781
+ if name :
782
+ body = {}
783
+
784
+ titles = [linkname .decode ('utf-8' ) if
785
+ isinstance (linkname , bytes ) else linkname for linkname in name ]
786
+ body ['titles' ] = titles
787
+ rsp = self .POST (req , body = body , params = params )
788
+ else :
789
+ rsp = self .GET (req , params = params )
779
790
780
791
if "links" in rsp :
781
792
# Process list of link objects so they may be accessed by name
@@ -798,24 +809,24 @@ def get(self, name, default=None, getclass=False, getlink=False, track_order=Fal
798
809
raise ValueError ("Can't parse server response to links query" )
799
810
800
811
return links_out
812
+ else :
813
+ parent_uuid , link_json = self ._get_link_json (name )
814
+ typecode = link_json ['class' ]
801
815
802
- parent_uuid , link_json = self ._get_link_json (name )
803
- typecode = link_json ['class' ]
804
-
805
- if typecode == 'H5L_TYPE_SOFT' :
806
- if getclass :
807
- return SoftLink
816
+ if typecode == 'H5L_TYPE_SOFT' :
817
+ if getclass :
818
+ return SoftLink
808
819
809
- return SoftLink (link_json ['h5path' ])
810
- elif typecode == 'H5L_TYPE_EXTERNAL' :
811
- if getclass :
812
- return ExternalLink
820
+ return SoftLink (link_json ['h5path' ])
821
+ elif typecode == 'H5L_TYPE_EXTERNAL' :
822
+ if getclass :
823
+ return ExternalLink
813
824
814
- return ExternalLink (link_json ['h5domain' ], link_json ['h5path' ])
815
- elif typecode == 'H5L_TYPE_HARD' :
816
- return HardLink if getclass else HardLink (link_json ['id' ])
817
- else :
818
- raise TypeError ("Unknown link type" )
825
+ return ExternalLink (link_json ['h5domain' ], link_json ['h5path' ])
826
+ elif typecode == 'H5L_TYPE_HARD' :
827
+ return HardLink if getclass else HardLink (link_json ['id' ])
828
+ else :
829
+ raise TypeError ("Unknown link type" )
819
830
820
831
def __setitem__ (self , name , obj ):
821
832
""" Add an object to the group. The name must not already be in use.
0 commit comments