<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class=""><br class="">
</div>
<div><br class=""><blockquote type="cite" class=""><div class="">Le 23 avr. 2019 à 23:35, Nyall Dawson <<a href="mailto:nyall.dawson@gmail.com" class="">nyall.dawson@gmail.com</a>> a écrit :</div><br class="Apple-interchange-newline"><div class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">On Fri, 19 Apr 2019 at 23:24, David Marteau <</span><a href="mailto:dmarteau@3liz.com" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">dmarteau@3liz.com</a><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">> wrote:</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><br class="">Hi devs,<br class=""><br class="">I have  a strange behavior with QgsPathResolver that prevent layer to be loaded if a QgsProject read config file from relative path:<br class=""><br class="">The problem has been reduced to the following behavior (pyQgis):<br class=""><br class="">```<br class=""># Init a QgsPathResolver as with a relative path<br class="">pr = QgsPathResolver('./geography/data/france_parts.qgs')<br class=""></blockquote><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">Isn't this an odd/dangerous/fragile situation to begin with? I'd be in</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">favour of requiring QgsPathResolver to accept only absolute paths in</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">the constructor.</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""></div></blockquote><div><br class=""></div><div>Hi,</div><div><br class=""></div><div>That would mean that only absolute may be passed to QgsProjet::read(), why not, it's  a decision to make; I cannot</div><div>tell it there would be side effects or not.</div><div><br class=""></div><div>but IMHO, in all case,  I think we should have explicite error/warnings and not end with </div><div>meaningless path (see below) and ' unavailable layers found' errors which is confusing.</div><div><br class=""></div><div>Regards</div><div>David,</div><br class=""><blockquote type="cite" class=""><div class=""><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">Nyall</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><br class="">pr.readPath('./france_parts/france_parts.shp')<br class=""># Output -> '/geography/data/france_parts/france_parts.shp'<br class=""># Note the leading '/'<br class="">```<br class=""><br class="">Worst:<br class="">```<br class="">pr = QgsPathResolver('../geography/data/france_parts.qgs')<br class=""><br class="">pr.readPath('./france_parts/france_parts.shp')<br class=""># Output -> '/../geography/data/france_parts/france_parts.shp'<br class=""># which is a meaningless path<br class="">```<br class=""><br class="">The side effect is that if you do:<br class="">```<br class="">prj = QgsProject()<br class="">prj.read("./geography/data/france_parts.qgs")<br class="">```<br class="">then you get the error:<br class="">```<br class=""><br class="">Qgis OGR: Cannot open /geography/data/france_parts/france_parts.shp.()<br class="">Qgis : 1 unavailable layers found:<br class="">Qgis :  * ./france_parts/france_parts.shp<br class=""><br class="">```<br class=""><br class="">This is with Qgis 3.6.1<br class=""><br class="">Can anybody confirm that this behavior is a bug ? I will submit a PR  if this is the case.<br class="">Thanks,<br class=""><br class="">Cheers<br class="">David<br class=""><br class="">_______________________________________________<br class="">QGIS-Developer mailing list<br class=""><a href="mailto:QGIS-Developer@lists.osgeo.org" class="">QGIS-Developer@lists.osgeo.org</a><br class="">List info:<span class="Apple-converted-space"> </span><a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" class="">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a><br class="">Unsubscribe:<span class="Apple-converted-space"> </span><a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" class="">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a></blockquote></div></blockquote></div><br class=""></body></html>