fedora-python / pyp2rpm

Tool to convert a package from PyPI to RPM SPECFILE or to generate SRPM.
MIT License
127 stars 39 forks source link

UnicodeEncodeError on --srpm option #28

Closed FrostyX closed 8 years ago

FrostyX commented 8 years ago

I am getting this error:

[jkadlcik@unused-4-222 pyp2rpm]$ pyp2rpm kaptan --srpm
INFO  Pyp2rpm initialized.
INFO  Using /home/jkadlcik/rpmbuild/SOURCES as directory to save source.
INFO  Downloaded package from PyPI: /home/jkadlcik/rpmbuild/SOURCES/kaptan-0.5.8.tar.gz.
INFO  Getting metadata from PyPI.
INFO  Using default template: fedora.spec.
INFO  Using name: python-kaptan.spec for specfile.
Traceback (most recent call last):
  File "/home/jkadlcik/.local/bin/pyp2rpm", line 9, in <module>
    load_entry_point('pyp2rpm==2.0.0', 'console_scripts', 'pyp2rpm')()
  File "/home/jkadlcik/.local/lib/python2.7/site-packages/click/core.py", line 716, in __call__
    return self.main(*args, **kwargs)
  File "/home/jkadlcik/.local/lib/python2.7/site-packages/click/core.py", line 696, in main
    rv = self.invoke(ctx)
  File "/home/jkadlcik/.local/lib/python2.7/site-packages/click/core.py", line 889, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/jkadlcik/.local/lib/python2.7/site-packages/click/core.py", line 534, in invoke
    return callback(*args, **kwargs)
  File "/home/jkadlcik/.local/lib/python2.7/site-packages/pyp2rpm/bin.py", line 114, in main
    f.write(converted)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 3452-3453: ordinal not in range(128)

See some debugging:

> /home/jkadlcik/.local/lib/python2.7/site-packages/pyp2rpm/bin.py(115)main()
    114             import ipdb; ipdb.set_trace()
--> 115             f.write(converted)
    116             logger.info('Specfile saved at: {0}.'.format(spec_path))

ipdb> pp converted
u'# Created by pyp2rpm-2.0.0\n%global pypi_name kaptan\n\nName:           python-%{pypi_name}\nVersion:        0.5.8\nRelease:        1%{?dist}\nSummary:        Configuration Manager for JSON, YAML and INI\n\nLicense:        BSD\nURL:            https://github.com/emre/kaptan\nSource0:        https://pypi.python.org/packages/source/k/%{pypi_name}/%{pypi_name}-%{version}.tar.gz\nBuildArch:      noarch\n \nBuildRequires:  python-PyYAML\nBuildRequires:  python-setuptools\nBuildRequires:  python2-devel\n \nBuildRequires:  python3-PyYAML\nBuildRequires:  python3-setuptools\nBuildRequires:  python3-devel\n\n%description\n## kaptan ##\n\n[![Build Status](https://travis-ci.org/emre/kaptan.png)](https\n://travis-ci.org/emre/kaptan)&nbsp; <img src=\n"https://pypip.in/v/kaptan/badge.png"> &nbsp; <img\nsrc="https://pypip.in/d/kaptan/badge.png">\n\nconfiguration parser.\n\n###\ninstallation\n\n```sh\n$ pip install kaptan\n```\n\nor add kaptan directory to the\nyour path.\n\n### usage ###\n\n**supported handlers**\n\n- dict\n- json\n- yaml\n- ...\n\n%package -n     python2-%{pypi_name}\nSummary:        Configuration Manager for JSON, YAML and INI\n%{?python_provide:%python_provide python2-%{pypi_name}}\n \nRequires:       python-PyYAML\nRequires:       python-setuptools\n%description -n python2-%{pypi_name}\n## kaptan ##\n\n[![Build Status](https://travis-ci.org/emre/kaptan.png)](https\n://travis-ci.org/emre/kaptan)&nbsp; <img src=\n"https://pypip.in/v/kaptan/badge.png"> &nbsp; <img\nsrc="https://pypip.in/d/kaptan/badge.png">\n\nconfiguration parser.\n\n###\ninstallation\n\n```sh\n$ pip install kaptan\n```\n\nor add kaptan directory to the\nyour path.\n\n### usage ###\n\n**supported handlers**\n\n- dict\n- json\n- yaml\n- ...\n\n%package -n     python3-%{pypi_name}\nSummary:        Configuration Manager for JSON, YAML and INI\n%{?python_provide:%python_provide python3-%{pypi_name}}\n \nRequires:       python3-PyYAML\nRequires:       python3-setuptools\n%description -n python3-%{pypi_name}\n## kaptan ##\n\n[![Build Status](https://travis-ci.org/emre/kaptan.png)](https\n://travis-ci.org/emre/kaptan)&nbsp; <img src=\n"https://pypip.in/v/kaptan/badge.png"> &nbsp; <img\nsrc="https://pypip.in/d/kaptan/badge.png">\n\nconfiguration parser.\n\n###\ninstallation\n\n```sh\n$ pip install kaptan\n```\n\nor add kaptan directory to the\nyour path.\n\n### usage ###\n\n**supported handlers**\n\n- dict\n- json\n- yaml\n- ...\n\n\n%prep\n%autosetup -n %{pypi_name}-%{version}\n# Remove bundled egg-info\nrm -rf %{pypi_name}.egg-info\n\n%build\n%py2_build\n%py3_build\n\n%install\n# Must do the subpackages\' install first because the scripts in /usr/bin are\n# overwritten with every setup.py install.\n%py3_install\ncp %{buildroot}/%{_bindir}/kaptan %{buildroot}/%{_bindir}/kaptan-3\nln -sf %{_bindir}/kaptan-3 %{buildroot}/%{_bindir}/kaptan-%{python3_version}\n\n%py2_install\ncp %{buildroot}/%{_bindir}/kaptan %{buildroot}/%{_bindir}/kaptan-2\nln -sf %{_bindir}/kaptan-2 %{buildroot}/%{_bindir}/kaptan-%{python2_version}\n\n\n%files -n python2-%{pypi_name} \n%doc README.md LICENSE\n%{_bindir}/kaptan\n%{_bindir}/kaptan-2\n%{_bindir}/kaptan-%{python2_version}\n%{python2_sitelib}/kaptan_0.5.8_py2.7.egg_info\n%{python2_sitelib}/%{pypi_name}\n%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info\n\n%files -n python3-%{pypi_name} \n%doc README.md LICENSE\n%{_bindir}/kaptan-3\n%{_bindir}/kaptan-%{python3_version}\n%{python3_sitelib}/kaptan_0.5.8_py2.7.egg_info\n%{python3_sitelib}/%{pypi_name}\n%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info\n\n%changelog\n* Sat Feb 06 2016 Jakub Kadl\u010d\xedk <jkadlcik@redhat.com> - 0.5.8-1\n- Initial package.'

ipdb> f.write(converted)
*** UnicodeEncodeError: 'ascii' codec can't encode characters in position 3452-3453: ordinal not in range(128)