[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