From e56a4d983668cfa3c2f54356fc7484d031ce49de Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Tue, 11 Apr 2023 04:01:30 +0000 Subject: automatic import of python-dsnparse --- .gitignore | 1 + python-dsnparse.spec | 279 +++++++++++++++++++++++++++++++++++++++++++++++++++ sources | 1 + 3 files changed, 281 insertions(+) create mode 100644 python-dsnparse.spec create mode 100644 sources diff --git a/.gitignore b/.gitignore index e69de29..378009e 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/dsnparse-0.2.0.tar.gz diff --git a/python-dsnparse.spec b/python-dsnparse.spec new file mode 100644 index 0000000..6b9c986 --- /dev/null +++ b/python-dsnparse.spec @@ -0,0 +1,279 @@ +%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 +* Tue Apr 11 2023 Python_Bot - 0.2.0-1 +- Package Spec generated diff --git a/sources b/sources new file mode 100644 index 0000000..76120d9 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +17c50414804e8431c5d223f27c3f8b8e dsnparse-0.2.0.tar.gz -- cgit v1.2.3