is it necessary the urllib.parse._splitnetloc support # and ? in username or password within the netloc?
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 77.2k
- Forks
- 35.9k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
Feature or enhancement
Proposal:
def _splitnetloc(url: str, start=0):
delim = len(url) # position of end of domain part of url, default is end
**slashlim, queslim, warnlim = [url.find(c, start) for c in '/?#']**
**if slashlim > queslim or slashlim > warnlim:** # support the character '#' or '?' in the username or password within the netloc.
**return url[start:slashlim], url[slashlim:]**
for c in '/?#': # look for delimiters; the order is NOT important
wdelim = url.find(c, start) # find first of this delim
if wdelim >= 0: # if found
delim = min(delim, wdelim) # use earliest delim position
return url[start:delim], url[delim:] # return (domain, rest)
the situation from linked the mysql url, e.g., mysql://test123:test#789@127.0.0.1:6313/urlTest?charset=utf8#section1.
when the password has '#' or '?' word in the netloc, it brings exception.
As result of the '/' index value is higher than the '#', I wanna whether it is necessary to level it up.
I suggest a proposal that is the code wrapped by **.
Besides, using the quote/quote_plus/unquote could figure it out. however, it need to parse the username, password, hostname, port before.
Or, we have others.
Sincerely
Has this already been discussed elsewhere?
No response given
Links to previous discussion of this feature:
No response
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginnen Sie mit der Überprüfung von urllib.parse._splitnetloc und des MySQL-style URL-Beispiels im Issue. Bestimmen Sie die vorgesehene Behandlung von # und ? in Benutzernamen oder Passwörtern innerhalb von netloc, und überprüfen Sie anschließend, dass das gewählte Verhalten die verbleibenden URL-Trennzeichen beibehält und keine Parsing-Regressionen verursacht.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- backend
- Issue-Typ
- Feature
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100