Hello community,

here is the log from the commit of package transifex-client for 
openSUSE:Factory checked in at 2015-03-23 12:17:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/transifex-client (Old)
 and      /work/SRC/openSUSE:Factory/.transifex-client.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "transifex-client"

Changes:
--------
--- /work/SRC/openSUSE:Factory/transifex-client/transifex-client.changes        
2014-06-01 19:40:50.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.transifex-client.new/transifex-client.changes   
2015-03-23 12:17:43.000000000 +0100
@@ -1,0 +2,6 @@
+Fri Mar 13 12:51:11 UTC 2015 - [email protected]
+
+- Version bump to 0.11.1.beta:
+  * Various small bugfixes
+
+-------------------------------------------------------------------

Old:
----
  transifex-client-0.11.beta.tar.gz

New:
----
  transifex-client-0.11.1.beta.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ transifex-client.spec ++++++
--- /var/tmp/diff_new_pack.cjePeM/_old  2015-03-23 12:17:44.000000000 +0100
+++ /var/tmp/diff_new_pack.cjePeM/_new  2015-03-23 12:17:44.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package transifex-client
 #
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -16,9 +16,9 @@
 #
 
 
-%define realver 0.11.beta
+%define realver 0.11.1.beta
 Name:           transifex-client
-Version:        0.11~beta
+Version:        0.11.1~beta
 Release:        0
 Summary:        Transifex Command-line Client
 License:        GPL-2.0+

++++++ transifex-client-0.11.beta.tar.gz -> transifex-client-0.11.1.beta.tar.gz 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transifex-client-0.11.beta/PKG-INFO 
new/transifex-client-0.11.1.beta/PKG-INFO
--- old/transifex-client-0.11.beta/PKG-INFO     2014-05-26 21:26:40.000000000 
+0200
+++ new/transifex-client-0.11.1.beta/PKG-INFO   2014-06-25 16:48:05.000000000 
+0200
@@ -1,6 +1,6 @@
-Metadata-Version: 1.0
+Metadata-Version: 1.1
 Name: transifex-client
-Version: 0.11.beta
+Version: 0.11.1.beta
 Summary: A command line interface for Transifex
 Home-page: https://www.transifex.com
 Author: Transifex
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transifex-client-0.11.beta/tests/test_project.py 
new/transifex-client-0.11.1.beta/tests/test_project.py
--- old/transifex-client-0.11.beta/tests/test_project.py        2014-03-26 
13:23:42.000000000 +0100
+++ new/transifex-client-0.11.1.beta/tests/test_project.py      2014-06-25 
16:05:22.000000000 +0200
@@ -318,7 +318,7 @@
     def test_new_translations(self):
         """Test finding new transaltions to add."""
         with patch.object(self.p, 'do_url_request') as resource_mock:
-            resource_mock.return_value = json.dumps(self.details)
+            resource_mock.return_value = json.dumps(self.details), "utf-8"
             files_keys = self.langs
             new_trans = self.p._new_translations_to_add
             for force in [True, False]:
@@ -470,7 +470,7 @@
         }
         extensions = ['.po', '.ts', '', ]
         with patch.object(self.p, "do_url_request") as mock:
-            mock.return_value = json.dumps(sample_formats)
+            mock.return_value = json.dumps(sample_formats), "utf-8"
             for (type_, ext) in zip(['PO', 'QT', 'NONE', ], extensions):
                 extension = self.p._extension_for(type_)
                 self.assertEqual(extension, ext)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/transifex-client-0.11.beta/transifex_client.egg-info/PKG-INFO 
new/transifex-client-0.11.1.beta/transifex_client.egg-info/PKG-INFO
--- old/transifex-client-0.11.beta/transifex_client.egg-info/PKG-INFO   
2014-05-26 21:26:40.000000000 +0200
+++ new/transifex-client-0.11.1.beta/transifex_client.egg-info/PKG-INFO 
2014-06-25 16:48:04.000000000 +0200
@@ -1,6 +1,6 @@
-Metadata-Version: 1.0
+Metadata-Version: 1.1
 Name: transifex-client
-Version: 0.11.beta
+Version: 0.11.1.beta
 Summary: A command line interface for Transifex
 Home-page: https://www.transifex.com
 Author: Transifex
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transifex-client-0.11.beta/txclib/__init__.py 
new/transifex-client-0.11.1.beta/txclib/__init__.py
--- old/transifex-client-0.11.beta/txclib/__init__.py   2014-05-26 
21:15:47.000000000 +0200
+++ new/transifex-client-0.11.1.beta/txclib/__init__.py 2014-06-25 
16:38:11.000000000 +0200
@@ -1,6 +1,6 @@
 # -*- coding: utf-8 -*-
 
-VERSION = (0, 11, 0, 'beta')
+VERSION = (0, 11, 1, 'beta')
 
 
 def get_version():
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transifex-client-0.11.beta/txclib/project.py 
new/transifex-client-0.11.1.beta/txclib/project.py
--- old/transifex-client-0.11.beta/txclib/project.py    2014-04-08 
16:35:11.000000000 +0200
+++ new/transifex-client-0.11.1.beta/txclib/project.py  2014-06-25 
16:05:22.000000000 +0200
@@ -496,7 +496,7 @@
                     " -> %s: %s" % (color_text(remote_lang, "RED"), local_file)
                 )
                 try:
-                    r = self.do_url_request(url, language=remote_lang)
+                    r, charset = self.do_url_request(url, language=remote_lang)
                 except Exception as e:
                     if isinstance(e, SSLError) or not skip:
                         raise
@@ -506,7 +506,7 @@
                 base_dir = os.path.split(local_file)[0]
                 mkdir_p(base_dir)
                 fd = open(local_file, 'wb')
-                fd.write(r.encode("utf-8"))
+                fd.write(r.encode(charset))
                 fd.close()
 
             if new_translations:
@@ -545,11 +545,11 @@
                         " -> %s: %s" % (color_text(remote_lang, "RED"), 
local_file)
                     )
 
-                    r = self.do_url_request(url, language=remote_lang)
+                    r, charset = self.do_url_request(url, language=remote_lang)
                     base_dir = os.path.split(local_file)[0]
                     mkdir_p(base_dir)
                     fd = open(local_file, 'wb')
-                    fd.write(r.encode("utf-8"))
+                    fd.write(r.encode(charset))
                     fd.close()
 
     def push(self, source=False, translations=False, force=False, 
resources=[], languages=[],
@@ -707,9 +707,8 @@
                 'resource': resource_slug
             }
             logger.debug("URL data are: %s" % self.url_info)
-            project_details = parse_json(
-                self.do_url_request('project_details', project=self)
-            )
+            json, _ = self.do_url_request('project_details', project=self)
+            project_details = parse_json(json)
             teams = project_details['teams']
             stats = self._get_stats_for_resource()
             delete_func(project_details, resource, stats, languages)
@@ -1040,7 +1039,7 @@
             return None
 
     def _download_pseudo(self, project_slug, resource_slug, pseudo_file):
-        response = self.do_url_request(
+        response, charset = self.do_url_request(
             'pull_pseudo_file',
             resource_slug=resource_slug,
             project_slug=project_slug
@@ -1078,7 +1077,7 @@
     def _get_stats_for_resource(self):
         """Get the statistics information for a resource."""
         try:
-            r = self.do_url_request('resource_stats')
+            r, charset = self.do_url_request('resource_stats')
             logger.debug("Statistics response is %s" % r)
             stats = parse_json(r)
         except HttpNotFound:
@@ -1153,7 +1152,8 @@
     def _extension_for(self, i18n_type):
         """Return the extension used for the specified type."""
         try:
-            res = parse_json(self.do_url_request('formats'))
+            json, charset = self.do_url_request('formats')
+            res = parse_json(json)
             return res[i18n_type]['file-extensions'].split(',')[0]
         except Exception as e:
             logger.error(e)
@@ -1215,7 +1215,8 @@
             "i18n_type": i18n_type
         }
 
-        return make_request(method, hostname, url, username, passwd, data)
+        r, charset = make_request(method, hostname, url, username, passwd, 
data)
+        return r
 
     def _get_option(self, resource, option):
         """Get the value for the option in the config file.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/transifex-client-0.11.beta/txclib/utils.py 
new/transifex-client-0.11.1.beta/txclib/utils.py
--- old/transifex-client-0.11.beta/txclib/utils.py      2014-04-09 
12:21:32.000000000 +0200
+++ new/transifex-client-0.11.1.beta/txclib/utils.py    2014-06-25 
16:05:22.000000000 +0200
@@ -5,6 +5,7 @@
     from json import loads as parse_json, dumps as compile_json
 except ImportError:
     from simplejson import loads as parse_json, dumps as compile_json
+from email.parser import Parser
 from txclib.packages import urllib3
 from txclib.packages.urllib3.packages import six
 from txclib.packages.urllib3.packages.six.moves import input
@@ -73,6 +74,16 @@
     )
 
 
+def determine_charset(response):
+    content_type = response.headers.get('content-type', None)
+    if content_type:
+        message = Parser().parsestr("Content-type: %s" % content_type)
+        for charset in message.get_charsets():
+            if charset:
+                return charset
+    return "utf-8"
+
+
 def make_request(method, host, url, username, password, fields=None):
     if host.lower().startswith('https://'):
         connection = urllib3.connection_from_url(
@@ -92,14 +103,15 @@
     try:
         r = connection.request(method, url, headers=headers, fields=fields)
         data = r.data
+        charset = determine_charset(r)
         if isinstance(data, bytes):
-            data = data.decode("utf-8")
+            data = data.decode(charset)
         if r.status < 200 or r.status >= 400:
             if r.status == 404:
                 raise HttpNotFound(data)
             else:
                 raise Exception(data)
-        return data
+        return data, charset
     except SSLError:
         logger.error("Invalid SSL certificate")
         raise
@@ -116,7 +128,7 @@
     """
     url = API_URLS[api_call] % kwargs
     try:
-        data = make_request('GET', kwargs['hostname'], url, username, password)
+        data, charset = make_request('GET', kwargs['hostname'], url, username, 
password)
         return parse_json(data)
     except Exception as e:
         logger.debug(six.u(str(e)))

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to