◐ Shell
clean mode source ↗

Issue 4962: urlparse & nfs url (rfc 2224)

> I'd like to add the ability to parse nfs url (rfc2224). Which look like:
> nfs://server/my/path
>
> To do this, we only need to add 'nfs' in uses_netloc to make it work

Do you encounter any errors or weird behaviors while using nfs url?
The RFC2224 for NFS just says it is for local  and network files and
in turn uses specification in RFC 1738 "Uniform Resource Locators".
So, I don't think any problem or breakage should occur with NFS

('nfs', '', '//server//a/b/c/d/e/f', '', '', '')

If you have done the research already, can you please explain what
difference will adding 'nfs' to uses_netloc do in urlparse.py.
> Do you encounter any errors or weird behaviors while using nfs url?

Do you mean: Do I have problem using the python module in conjunction of
urlparse ?
No, because, I'm not yet using it. But I would like to do it. And I find
it strange that it can not find the host by itself.

>('nfs', '', '//server//a/b/c/d/e/f', '', '', '')
>If you have done the research already, can you please explain what
>difference will adding 'nfs' to uses_netloc do in urlparse.py.

As much as I've looked at the code, the uses_netloc provide an easy way
to tell urlparse.py if such scheme as nfs is composed
by a net location (host[:port]). Which is the case. Modifying
uses_netloc by addind 'nfs' into it will transform the following:
nfsurl : 'nfs://server//a/b/c/d/e/f'
in  urlparse from:
('nfs', '', '//server//a/b/c/d/e/f', '', '', '')
to
('nfs', 'server', '//a/b/c/d/e/f', '', '', '')
Patch to fix this. Looked into the RFCs and I do not find a reason why
the nfs://server/path/to/file.txt should not be parsed as:

>>> urlparse.urlsplit('nfs://server/path/to/file.txt')
SplitResult(scheme='nfs', netloc='server', path='/path/to/file.txt',
query='', fragment='')

Patch and Tests added.