[Python-modules-commits] [python-django-extensions] 01/05: New upstream version 1.8.1

Brian May bam at moszumanska.debian.org
Wed Jul 5 22:17:09 UTC 2017


This is an automated email from the git hooks/post-receive script.

bam pushed a commit to branch debian/master
in repository python-django-extensions.

commit b1c3df4aa875bdc313d94d77bd39dff7af4aebc7
Author: Brian May <bam at debian.org>
Date:   Thu Jul 6 07:28:10 2017 +1000

    New upstream version 1.8.1
---
 .travis.yml                                        | 66 +++++++++++-----------
 CHANGELOG.md                                       | 13 +++++
 Makefile                                           |  6 ++
 README.rst                                         |  4 +-
 django_extensions/__init__.py                      |  2 +-
 django_extensions/compat.py                        | 43 ++++++++++++++
 .../locale/pt_BR/LC_MESSAGES/django.po             |  2 +-
 .../management/commands/export_emails.py           |  7 +--
 django_extensions/management/commands/reset_db.py  |  2 +-
 django_extensions/management/utils.py              | 32 -----------
 docs/conf.py                                       |  2 +-
 docs/index.rst                                     |  4 +-
 tests/management/commands/test_export_emails.py    | 16 +++++-
 tox.ini                                            |  8 +++
 14 files changed, 125 insertions(+), 82 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index dd165aa..e6a0a5c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -6,75 +6,77 @@ matrix:
   fast_finish: true
   include:
     - python: 2.7
-      env: TOX_ENV=py27-flake8
+      env: TOXENV=py27-flake8
     - python: 3.4
-      env: TOX_ENV=py34-flake8
+      env: TOXENV=py34-flake8
     - python: 3.5
-      env: TOX_ENV=py35-flake8
+      env: TOXENV=py35-flake8
     - python: 3.6
-      env: TOX_ENV=py36-flake8
+      env: TOXENV=py36-flake8
     - python: 3.6
-      env: TOX_ENV=precommit
+      env: TOXENV=precommit
     - python: 3.6
-      env: TOX_ENV=safety
+      env: TOXENV=safety
+    - python: 3.6
+      env: TOXENV=compile-catalog
     - python: 2.7
-      env: TOX_ENV=py27-dj18
+      env: TOXENV=py27-dj18
     - python: 2.7
-      env: TOX_ENV=py27-dj110
+      env: TOXENV=py27-dj110
     - python: 2.7
-      env: TOX_ENV=py27-dj111
+      env: TOXENV=py27-dj111
     - python: 3.3
-      env: TOX_ENV=py33-dj18
+      env: TOXENV=py33-dj18
     - python: 3.4
-      env: TOX_ENV=py34-dj18
+      env: TOXENV=py34-dj18
     - python: 3.4
-      env: TOX_ENV=py34-dj110
+      env: TOXENV=py34-dj110
     - python: 3.4
-      env: TOX_ENV=py34-dj111
+      env: TOXENV=py34-dj111
     - python: 3.5
-      env: TOX_ENV=py35-dj18
+      env: TOXENV=py35-dj18
     - python: 3.5
-      env: TOX_ENV=py35-dj110
+      env: TOXENV=py35-dj110
     - python: 3.5
-      env: TOX_ENV=py35-dj111
+      env: TOXENV=py35-dj111
     - python: 3.5
-      env: TOX_ENV=py35-djmaster
+      env: TOXENV=py35-djmaster
     - python: 3.6
-      env: TOX_ENV=py36-dj18
+      env: TOXENV=py36-dj18
     - python: 3.6
-      env: TOX_ENV=py36-dj110
+      env: TOXENV=py36-dj110
     - python: 3.6
-      env: TOX_ENV=py36-dj111
+      env: TOXENV=py36-dj111
     - python: 3.6
-      env: TOX_ENV=py36-djmaster
+      env: TOXENV=py36-djmaster
     - python: pypy
-      env: TOX_ENV=pypy-dj18
+      env: TOXENV=pypy-dj18
     - python: pypy
-      env: TOX_ENV=pypy-dj110
+      env: TOXENV=pypy-dj110
     - python: pypy
-      env: TOX_ENV=pypy-dj111
+      env: TOXENV=pypy-dj111
     - python: pypy3.5-5.8.0
-      env: TOX_ENV=pypy3-dj18
+      env: TOXENV=pypy3-dj18
     - python: pypy3.5-5.8.0
-      env: TOX_ENV=pypy3-dj110
+      env: TOXENV=pypy3-dj110
     - python: pypy3.5-5.8.0
-      env: TOX_ENV=pypy3-djmaster
+      env: TOXENV=pypy3-djmaster
 
   allow_failures:
     - python: 3.5
-      env: TOX_ENV=py35-djmaster
+      env: TOXENV=py35-djmaster
     - python: 3.6
-      env: TOX_ENV=py36-djmaster
+      env: TOXENV=py36-djmaster
     - python: pypy3.5-5.8.0
-      env: TOX_ENV=pypy3-dj110
+      env: TOXENV=pypy3-dj110
     - python: pypy3.5-5.8.0
-      env: TOX_ENV=pypy3-djmaster
+      env: TOXENV=pypy3-djmaster
 
 install:
   - pip install virtualenv tox coveralls
 
 script:
-  - tox -e $TOX_ENV
+  - tox
 
 after_success:
   - coveralls
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8da6c99..d7637a3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,19 @@
 Changelog
 =========
 
+1.8.1
+-----
+
+Changes:
+ - Build: use tox's 'TOXENV' environment variable
+ - Fix: resetdb, fix problem that 'utf8_support' option is ignored
+ - Improvement: export_emails, moved custom csv UnicodeWriter (for py2) into compat.py
+ - Translations: pt, removed since it was causing issues with the builds
+                     if anybody wants to update and fix it that would be
+                     much appreciated !
+
+
+
 1.8.0
 -----
 
diff --git a/Makefile b/Makefile
index 335ad19..7270a2b 100644
--- a/Makefile
+++ b/Makefile
@@ -3,6 +3,7 @@ help:
 	@echo "clean-build - remove build artifacts"
 	@echo "clean-pyc - remove Python file artifacts"
 	@echo "clean-test - remove test and coverage artifacts"
+	@echo "compile-catalog - compile translation catalogs"
 	@echo "test - run tests quickly with the default Python"
 	@echo "coverage - check code coverage quickly with the default Python"
 	@echo "install - install the package to the active Python's site-packages"
@@ -28,6 +29,11 @@ clean-test:
 	rm -f .coverage
 	rm -fr htmlcov/
 
+compile-catalog:
+	for loc in django_extensions/locale/*; do \
+		python setup.py compile_catalog --directory django_extensions/locale/ --locale $$(basename $$loc) --domain django || exit 1; \
+	done
+
 test:
 	python setup.py test
 
diff --git a/README.rst b/README.rst
index 0943760..e4b49c6 100644
--- a/README.rst
+++ b/README.rst
@@ -42,11 +42,9 @@ Django Extensions requires Django 1.8 or later.
 Getting It
 ==========
 
-You can get Django Extensions by using pip or easy_install::
+You can get Django Extensions by using pip::
 
     $ pip install django-extensions
-    or
-    $ easy_install django-extensions
 
 If you want to install it from source, grab the git repository from GitHub and run setup.py::
 
diff --git a/django_extensions/__init__.py b/django_extensions/__init__.py
index 2a6ac94..911b341 100644
--- a/django_extensions/__init__.py
+++ b/django_extensions/__init__.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-VERSION = (1, 8, 0)
+VERSION = (1, 8, 1)
 
 # Dynamically calculate the version based on VERSION tuple
 if len(VERSION) > 2 and VERSION[2] is not None:
diff --git a/django_extensions/compat.py b/django_extensions/compat.py
index 57583d9..75515a5 100644
--- a/django_extensions/compat.py
+++ b/django_extensions/compat.py
@@ -1,6 +1,11 @@
 # -*- coding: utf-8 -*-
 from __future__ import unicode_literals
 
+from io import BytesIO
+
+import csv
+import six
+import codecs
 import importlib
 import django
 
@@ -43,3 +48,41 @@ def get_template_setting(template_key, default=None):
         value = getattr(settings, pre18_template_key, default)
         return value
     return default
+
+
+class UnicodeWriter:
+    """
+    A CSV writer which will write rows to CSV file "f",
+    which is encoded in the given encoding.
+    We are using this custom UnicodeWriter for python versions 2.x
+    """
+    def __init__(self, f, dialect=csv.excel, encoding="utf-8", **kwds):
+        self.queue = BytesIO()
+        self.writer = csv.writer(self.queue, dialect=dialect, **kwds)
+        self.stream = f
+        self.encoder = codecs.getincrementalencoder(encoding)()
+
+    def writerow(self, row):
+        self.writer.writerow([s.encode("utf-8") for s in row])
+        # Fetch UTF-8 output from the queue ...
+        data = self.queue.getvalue()
+        data = data.decode("utf-8")
+        # ... and reencode it into the target encoding
+        data = self.encoder.encode(data)
+        # write to the target stream
+        self.stream.write(data)
+        # empty queue
+        self.queue.truncate(0)
+
+    def writerows(self, rows):
+        for row in rows:
+            self.writerow(row)
+
+
+from csv import writer  # noqa
+
+# Default csv.writer for PY3 versions
+csv_writer = writer
+if six.PY2:
+    # unicode CSVWriter for PY2
+    csv_writer = UnicodeWriter  # noqa
diff --git a/django_extensions/locale/pt_BR/LC_MESSAGES/django.po b/django_extensions/locale/pt_BR/LC_MESSAGES/django.po
index c5e12b0..5928e28 100644
--- a/django_extensions/locale/pt_BR/LC_MESSAGES/django.po
+++ b/django_extensions/locale/pt_BR/LC_MESSAGES/django.po
@@ -12,7 +12,7 @@ msgstr ""
 "PO-Revision-Date: 2013-09-13 22:49-0300\n"
 "Last-Translator: Claudemiro Alves Feitosa <dimiro1 at gmail.com>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: \n"
+"Language: pt_BR\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/django_extensions/management/commands/export_emails.py b/django_extensions/management/commands/export_emails.py
index d72c6af..ffa2414 100644
--- a/django_extensions/management/commands/export_emails.py
+++ b/django_extensions/management/commands/export_emails.py
@@ -1,17 +1,14 @@
 # -*- coding: utf-8 -*-
 from __future__ import unicode_literals, print_function
 import sys
-import six
-from csv import writer  # noqa
 
 from django.contrib.auth import get_user_model
 from django.contrib.auth.models import Group
 from django.core.management.base import BaseCommand, CommandError
 
-from django_extensions.management.utils import signalcommand, UnicodeWriter
+from django_extensions.compat import csv_writer as writer
+from django_extensions.management.utils import signalcommand
 
-if six.PY2:
-    writer = UnicodeWriter  # noqa
 
 FORMATS = [
     'address',
diff --git a/django_extensions/management/commands/reset_db.py b/django_extensions/management/commands/reset_db.py
index 1e6adfe..5a8ef94 100644
--- a/django_extensions/management/commands/reset_db.py
+++ b/django_extensions/management/commands/reset_db.py
@@ -122,7 +122,7 @@ Type 'yes' to continue, or 'no' to cancel: """ % (database_name,))
 
             connection = Database.connect(**kwargs)
             drop_query = 'DROP DATABASE IF EXISTS `%s`' % database_name
-            utf8_support = options.get('no_utf8_support', False) and '' or 'CHARACTER SET utf8'
+            utf8_support = 'CHARACTER SET utf8' if options.get('no_utf8_support', False) else ''
             create_query = 'CREATE DATABASE `%s` %s' % (database_name, utf8_support)
             logging.info('Executing... "' + drop_query + '"')
             connection.query(drop_query)
diff --git a/django_extensions/management/utils.py b/django_extensions/management/utils.py
index 60ea6bf..b62b5fe 100644
--- a/django_extensions/management/utils.py
+++ b/django_extensions/management/utils.py
@@ -2,10 +2,6 @@
 import logging
 import os
 import sys
-import csv
-import codecs
-
-from io import BytesIO
 
 from django_extensions.management.signals import post_command, pre_command
 
@@ -72,31 +68,3 @@ def has_ipdb():
         return True
     except ImportError:
         return False
-
-
-class UnicodeWriter:
-    """
-    A CSV writer which will write rows to CSV file "f",
-    which is encoded in the given encoding.
-    """
-    def __init__(self, f, dialect=csv.excel, encoding="utf-8", **kwds):
-        self.queue = BytesIO()
-        self.writer = csv.writer(self.queue, dialect=dialect, **kwds)
-        self.stream = f
-        self.encoder = codecs.getincrementalencoder(encoding)()
-
-    def writerow(self, row):
-        self.writer.writerow([s.encode("utf-8") for s in row])
-        # Fetch UTF-8 output from the queue ...
-        data = self.queue.getvalue()
-        data = data.decode("utf-8")
-        # ... and reencode it into the target encoding
-        data = self.encoder.encode(data)
-        # write to the target stream
-        self.stream.write(data)
-        # empty queue
-        self.queue.truncate(0)
-
-    def writerows(self, rows):
-        for row in rows:
-            self.writerow(row)
diff --git a/docs/conf.py b/docs/conf.py
index 27fddcf..d01afaa 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -47,7 +47,7 @@ copyright = u'Copyright (C) 2008-2015 Michael Trier, Bas van Oostveen and contri
 # The short X.Y version.
 version = '1.8'
 # The full version, including alpha/beta/rc tags.
-release = '1.8.0'
+release = '1.8.1'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff --git a/docs/index.rst b/docs/index.rst
index f7cc2df..85554e4 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -21,11 +21,9 @@ The easiest way to figure out what Django Extensions are all about is to watch t
 Getting it
 ==========
 
-You can get Django Extensions by using pip or easy_install::
+You can get Django Extensions by using pip::
 
  $ pip install django-extensions
- or
- $ easy_install django-extensions
 
 If you want to install it from source, grab the git repository and run setup.py::
 
diff --git a/tests/management/commands/test_export_emails.py b/tests/management/commands/test_export_emails.py
index bd12566..942a5c3 100644
--- a/tests/management/commands/test_export_emails.py
+++ b/tests/management/commands/test_export_emails.py
@@ -36,9 +36,7 @@ def django_db_setup(django_db_setup, django_db_blocker):  # noqa
 def test_do_export_emails_stdout_start(capsys):
     """Testing export_emails command without args.stdout starts."""
     export_emails = Command()
-    export_emails.run_from_argv(
-        ['manage.py', 'export_emails']
-    )
+    export_emails.run_from_argv(['manage.py', 'export_emails'])
 
     out, err = capsys.readouterr()
     assert out.startswith('"Mijaíl Bulgakóv')
@@ -85,6 +83,18 @@ def test_do_export_emails_format_google(capsys):
 
 
 @pytest.mark.django_db()
+def test_do_export_emails_format_linkedin(capsys):
+    """Testing python manage.py export_emails -f linkedin"""
+    export_emails = Command()
+    export_emails.run_from_argv(['manage.py', 'export_emails', '--format=linkedin'])
+
+    out, err = capsys.readouterr()
+
+    assert out.startswith('First Name,')
+    assert 'Gabriel Garcia,Marquéz' in out
+
+
+ at pytest.mark.django_db()
 def test_do_export_emails_format_outlook(capsys):
     """Testing python manage.py export_emails -f outlook"""
     export_emails = Command()
diff --git a/tox.ini b/tox.ini
index 8dc8493..aa68e1b 100644
--- a/tox.ini
+++ b/tox.ini
@@ -37,6 +37,14 @@ deps =
 	safety
 commands = safety check --full-report
 
+[testenv:compile-catalog]
+whitelist_externals =
+	make
+deps =
+	Babel
+commands =
+	make compile-catalog
+
 [testenv:py27-flake8]
 deps =
 	flake8

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/python-django-extensions.git



More information about the Python-modules-commits mailing list