File tree Expand file tree Collapse file tree 1 file changed +6
-1
lines changed Expand file tree Collapse file tree 1 file changed +6
-1
lines changed Original file line number Diff line number Diff line change @@ -77,21 +77,26 @@ class Reference:
7777 def __init__ (self ,
7878 target : str | Any ,
7979 ext_key : str | None = None ,
80- key_type : KeyType = KeyType . EXTERNAL ,
80+ key_type : KeyType | None = None ,
8181 parent = None ):
8282 if not isinstance (target , BaseMetaDataMixin ) and ext_key :
8383 raise ValueError ('Need to pass an object as target when specifying '
8484 'an external key!' )
8585 if ext_key :
86+ key_type = key_type or KeyType .EXTERNAL
8687 target .set_external_key (ext_key , key_type ) # type: ignore
8788 self .target = target
8889 self .target_key = ext_key
8990 self .key_type = key_type
9091 elif isinstance (target , BaseMetaDataMixin ):
92+ if key_type and key_type != KeyType .INTERNAL :
93+ raise ValueError ('key_type should be None or INTERNAL when '
94+ 'passing in an object without a key!' )
9195 self .target = target
9296 self .target_key = target .get_or_create_key ()
9397 self .key_type = KeyType .INTERNAL
9498 else :
99+ key_type = key_type or KeyType .EXTERNAL
95100 self .target_key = target
96101 self .key_type = key_type
97102 self .target = parent .get_object_by_key (target , key_type )
You can’t perform that action at this time.
0 commit comments