rewrite the parsed info is not efficient
I want to use this package to do auto-migration git repo
eg: import repo from github.com to gitlab.com
I need some code like this :
u = 'https://github.com/nephila/giturlparse'
repo = parse(u)
repo.domain = 'gitlab.com'
new_url = repo.format('https')
# Expect new_url is --> https://gitlab.com/nephila/giturlparse.git
# but it real not changed --> https://github.com/nephila/giturlparse.git
I find the way to rewrite the repo info
u = 'https://github.com/nephila/giturlparse'
repo = parse(u)
repo._parsed['domain'] = 'gitlab.com'
new_url = repo.format('https')
# Expect new_url is --> https://gitlab.com/nephila/giturlparse.git
# Yes, it work, but not so efficient,
# and need user to know there is a `_parsed` field, a little not pythonic
@alingse could you elaborate please?
@yakky I update the code in the begin comment.
I want repo instance (GitUrlParsed ) have some method to rewrite the subpart.
@alingse having a comprehensive way to mutate a URL from one provider to another is not really in scope
It's subject to too many pitfalls (just an example: gitlab supports subgroups - URL like /organization/something/repo.git- while github doesn't) to be reliable the best we can do is to add a public method which does nothing but replacing a single value in _parsed attribute, something like
@data.setter
def data(self, key, value):
self._parsed[key] = value