@@ -27,13 +27,24 @@ def _check_tag_regex(value):
27
27
28
28
29
29
def _check_absolute_root (root , relative_to ):
30
+ trace ("l" , repr (locals ()))
30
31
if relative_to :
31
32
if os .path .isabs (root ) and not root .startswith (relative_to ):
32
33
warnings .warn (
33
34
"absolute root path '%s' overrides relative_to '%s'"
34
35
% (root , relative_to )
35
36
)
36
- root = os .path .join (os .path .dirname (relative_to ), root )
37
+ if os .path .isdir (relative_to ):
38
+ warnings .warn (
39
+ "relative_to is expected to be a file,"
40
+ " its the directory %r\n "
41
+ "assuming the parent directory was passed" % (relative_to ,)
42
+ )
43
+ trace ("dir" , relative_to )
44
+ root = os .path .join (relative_to , root )
45
+ else :
46
+ trace ("file" , relative_to )
47
+ root = os .path .join (os .path .dirname (relative_to ), root )
37
48
return os .path .abspath (root )
38
49
39
50
@@ -94,6 +105,7 @@ def relative_to(self, value):
94
105
self ._absolute_root = _check_absolute_root (self ._root , value )
95
106
self ._relative_to = value
96
107
trace ("root" , repr (self ._absolute_root ))
108
+ trace ("relative_to" , repr (value ))
97
109
98
110
@property
99
111
def root (self ):
@@ -104,6 +116,7 @@ def root(self, value):
104
116
self ._absolute_root = _check_absolute_root (value , self ._relative_to )
105
117
self ._root = value
106
118
trace ("root" , repr (self ._absolute_root ))
119
+ trace ("relative_to" , repr (self ._relative_to ))
107
120
108
121
@property
109
122
def tag_regex (self ):
0 commit comments