%global _empty_manifest_terminate_build 0 Name: python-dsnparse Version: 0.2.0 Release: 1 Summary: parse dsn urls License: MIT URL: http://github.com/Jaymon/dsnparse Source0: https://mirrors.nju.edu.cn/pypi/web/packages/7f/4f/1ce63e6248acff57f890f75058f7b03f61c366f023a48e65fce8ee001115/dsnparse-0.2.0.tar.gz BuildArch: noarch %description # dsnparse Parse [dsn connection url strings](http://en.wikipedia.org/wiki/Data_source_name). Responsible for parsing dsn strings in projects like [prom](https://github.com/jaymon/prom) and [morp](https://github.com/jaymon/morp). This is a generic version of [dj-database-url](https://github.com/kennethreitz/dj-database-url). So, now you can create dsns like this: scheme://user:pass@host:port/path?query=query_val#fragment For example, let's look at a prom dsn: prom.interface.postgres.Interface://testuser:testpw@localhost/testdb Now let's parse it: ```python import dsnparse dsn = "prom.interface.postgres.Interface://testuser:testpw@localhost:1234/testdb" r = dsnparse.parse(dsn) print(r.scheme) # prom.interface.postgres.Interface print(r.username) # testuser print(r.password) # testpw print(r.host) # localhost print(r.port) # 1234 print(r.hostloc) # localhost:1234 print(r.paths) # ['testdb'] ``` Also, dsnparse can easily use environment variables: ```python r = dsnparse.parse_environ('ENVIRONMENT_VARIABLE_NAME') ``` I tried to keep the interface very similar to [urlparse](https://docs.python.org/3/library/urllib.parse.html#urllib.parse.urlparse) so it will feel familiar to use. ## Customizing By default, `dsnparse.parse(dsn)` returns a `ParseResult` instance, but that can be customized: ```python import dsnparse class MyResult(dsnparse.ParseResult): def configure(self): # expose an interface property self.interface = self.scheme dsn = "Interface://testuser:testpw@localhost:1234/testdb" r = dsnparse.parse(dsn, parse_class=MyResult) print(isinstance(r, MyResult)) # True print(r.interface) # Interface ``` ## Install Use pip: pip install dsnparse or use pip with github: pip install -U "git+https://github.com/Jaymon/dsnparse#egg=dsnparse" %package -n python3-dsnparse Summary: parse dsn urls Provides: python-dsnparse BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-dsnparse # dsnparse Parse [dsn connection url strings](http://en.wikipedia.org/wiki/Data_source_name). Responsible for parsing dsn strings in projects like [prom](https://github.com/jaymon/prom) and [morp](https://github.com/jaymon/morp). This is a generic version of [dj-database-url](https://github.com/kennethreitz/dj-database-url). So, now you can create dsns like this: scheme://user:pass@host:port/path?query=query_val#fragment For example, let's look at a prom dsn: prom.interface.postgres.Interface://testuser:testpw@localhost/testdb Now let's parse it: ```python import dsnparse dsn = "prom.interface.postgres.Interface://testuser:testpw@localhost:1234/testdb" r = dsnparse.parse(dsn) print(r.scheme) # prom.interface.postgres.Interface print(r.username) # testuser print(r.password) # testpw print(r.host) # localhost print(r.port) # 1234 print(r.hostloc) # localhost:1234 print(r.paths) # ['testdb'] ``` Also, dsnparse can easily use environment variables: ```python r = dsnparse.parse_environ('ENVIRONMENT_VARIABLE_NAME') ``` I tried to keep the interface very similar to [urlparse](https://docs.python.org/3/library/urllib.parse.html#urllib.parse.urlparse) so it will feel familiar to use. ## Customizing By default, `dsnparse.parse(dsn)` returns a `ParseResult` instance, but that can be customized: ```python import dsnparse class MyResult(dsnparse.ParseResult): def configure(self): # expose an interface property self.interface = self.scheme dsn = "Interface://testuser:testpw@localhost:1234/testdb" r = dsnparse.parse(dsn, parse_class=MyResult) print(isinstance(r, MyResult)) # True print(r.interface) # Interface ``` ## Install Use pip: pip install dsnparse or use pip with github: pip install -U "git+https://github.com/Jaymon/dsnparse#egg=dsnparse" %package help Summary: Development documents and examples for dsnparse Provides: python3-dsnparse-doc %description help # dsnparse Parse [dsn connection url strings](http://en.wikipedia.org/wiki/Data_source_name). Responsible for parsing dsn strings in projects like [prom](https://github.com/jaymon/prom) and [morp](https://github.com/jaymon/morp). This is a generic version of [dj-database-url](https://github.com/kennethreitz/dj-database-url). So, now you can create dsns like this: scheme://user:pass@host:port/path?query=query_val#fragment For example, let's look at a prom dsn: prom.interface.postgres.Interface://testuser:testpw@localhost/testdb Now let's parse it: ```python import dsnparse dsn = "prom.interface.postgres.Interface://testuser:testpw@localhost:1234/testdb" r = dsnparse.parse(dsn) print(r.scheme) # prom.interface.postgres.Interface print(r.username) # testuser print(r.password) # testpw print(r.host) # localhost print(r.port) # 1234 print(r.hostloc) # localhost:1234 print(r.paths) # ['testdb'] ``` Also, dsnparse can easily use environment variables: ```python r = dsnparse.parse_environ('ENVIRONMENT_VARIABLE_NAME') ``` I tried to keep the interface very similar to [urlparse](https://docs.python.org/3/library/urllib.parse.html#urllib.parse.urlparse) so it will feel familiar to use. ## Customizing By default, `dsnparse.parse(dsn)` returns a `ParseResult` instance, but that can be customized: ```python import dsnparse class MyResult(dsnparse.ParseResult): def configure(self): # expose an interface property self.interface = self.scheme dsn = "Interface://testuser:testpw@localhost:1234/testdb" r = dsnparse.parse(dsn, parse_class=MyResult) print(isinstance(r, MyResult)) # True print(r.interface) # Interface ``` ## Install Use pip: pip install dsnparse or use pip with github: pip install -U "git+https://github.com/Jaymon/dsnparse#egg=dsnparse" %prep %autosetup -n dsnparse-0.2.0 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-dsnparse -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Sun Apr 23 2023 Python_Bot - 0.2.0-1 - Package Spec generated