summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBarry Warsaw2015-01-04 20:40:47 -0500
committerBarry Warsaw2015-01-04 20:40:47 -0500
commit81be16cdfd9ecf86092c90874eb661be2e754043 (patch)
treeb7493a05db05a93f875e3a27754d852b702cfb50 /src
parent3ed695772e7e9c17234097e820a4cedfb0ad3a5d (diff)
downloadmailman-81be16cdfd9ecf86092c90874eb661be2e754043.tar.gz
mailman-81be16cdfd9ecf86092c90874eb661be2e754043.tar.zst
mailman-81be16cdfd9ecf86092c90874eb661be2e754043.zip
Diffstat (limited to 'src')
-rw-r--r--src/mailman/app/notifications.py2
-rw-r--r--src/mailman/app/templates.py9
-rw-r--r--src/mailman/app/tests/test_templates.py5
-rw-r--r--src/mailman/archiving/mailarchive.py2
-rw-r--r--src/mailman/archiving/mhonarc.py2
-rw-r--r--src/mailman/archiving/prototype.py2
-rw-r--r--src/mailman/commands/cli_import.py6
-rw-r--r--src/mailman/commands/cli_qfile.py7
-rw-r--r--src/mailman/commands/docs/inject.rst3
-rw-r--r--src/mailman/commands/docs/members.rst2
-rw-r--r--src/mailman/commands/tests/test_conf.py2
-rw-r--r--src/mailman/config/config.py2
-rw-r--r--src/mailman/core/runner.py2
-rw-r--r--src/mailman/core/switchboard.py17
-rw-r--r--src/mailman/database/sqlite.py2
-rw-r--r--src/mailman/handlers/decorate.py2
-rw-r--r--src/mailman/model/domain.py2
-rw-r--r--src/mailman/model/mailinglist.py2
-rw-r--r--src/mailman/model/requests.py8
-rw-r--r--src/mailman/rest/addresses.py6
-rw-r--r--src/mailman/rest/docs/helpers.rst5
-rw-r--r--src/mailman/rest/domains.py10
-rw-r--r--src/mailman/rest/listconf.py18
-rw-r--r--src/mailman/rest/lists.py6
-rw-r--r--src/mailman/rest/members.py12
-rw-r--r--src/mailman/rest/queues.py6
-rw-r--r--src/mailman/rest/tests/test_addresses.py2
-rw-r--r--src/mailman/rest/tests/test_domains.py2
-rw-r--r--src/mailman/rest/tests/test_lists.py2
-rw-r--r--src/mailman/rest/tests/test_membership.py2
-rw-r--r--src/mailman/rest/tests/test_moderation.py2
-rw-r--r--src/mailman/rest/tests/test_preferences.py2
-rw-r--r--src/mailman/rest/tests/test_queues.py2
-rw-r--r--src/mailman/rest/tests/test_root.py2
-rw-r--r--src/mailman/rest/tests/test_systemconf.py2
-rw-r--r--src/mailman/rest/tests/test_users.py2
-rw-r--r--src/mailman/runners/command.py12
-rw-r--r--src/mailman/runners/digest.py4
-rw-r--r--src/mailman/runners/nntp.py2
-rw-r--r--src/mailman/testing/helpers.py4
-rw-r--r--src/mailman/testing/mta.py2
-rw-r--r--src/mailman/utilities/i18n.py4
-rw-r--r--src/mailman/utilities/importer.py2
-rw-r--r--src/mailman/utilities/tests/test_import.py5
44 files changed, 87 insertions, 110 deletions
diff --git a/src/mailman/app/notifications.py b/src/mailman/app/notifications.py
index 1e8f1b820..fc8a0549e 100644
--- a/src/mailman/app/notifications.py
+++ b/src/mailman/app/notifications.py
@@ -35,7 +35,7 @@ from mailman.interfaces.member import DeliveryMode
from mailman.interfaces.templates import ITemplateLoader
from mailman.utilities.i18n import make
from mailman.utilities.string import expand, wrap
-from six.moves.urllib_error import URLError
+from urllib.error import URLError
from zope.component import getUtility
diff --git a/src/mailman/app/templates.py b/src/mailman/app/templates.py
index 4c4684523..86c61d046 100644
--- a/src/mailman/app/templates.py
+++ b/src/mailman/app/templates.py
@@ -27,11 +27,10 @@ from mailman.interfaces.languages import ILanguageManager
from mailman.interfaces.listmanager import IListManager
from mailman.interfaces.templates import ITemplateLoader
from mailman.utilities.i18n import TemplateNotFoundError, find
-from six.moves.urllib_error import URLError
-from six.moves.urllib_parse import urlparse
-from six.moves.urllib_request import (
- BaseHandler, build_opener, install_opener, urlopen)
-from six.moves.urllib_response import addinfourl
+from urllib.error import URLError
+from urllib.parse import urlparse
+from urllib.request import BaseHandler, build_opener, install_opener, urlopen
+from urllib.response import addinfourl
from zope.component import getUtility
from zope.interface import implementer
diff --git a/src/mailman/app/tests/test_templates.py b/src/mailman/app/tests/test_templates.py
index 880e3da90..7aab8f1f9 100644
--- a/src/mailman/app/tests/test_templates.py
+++ b/src/mailman/app/tests/test_templates.py
@@ -23,7 +23,6 @@ __all__ = [
import os
-import six
import shutil
import tempfile
import unittest
@@ -33,7 +32,7 @@ from mailman.config import config
from mailman.interfaces.languages import ILanguageManager
from mailman.interfaces.templates import ITemplateLoader
from mailman.testing.layers import ConfigLayer
-from six.moves.urllib_error import URLError
+from urllib.error import URLError
from zope.component import getUtility
@@ -132,5 +131,5 @@ class TestTemplateLoader(unittest.TestCase):
with open(os.path.join(path, 'demo.txt'), 'wb') as fp:
fp.write(test_text)
content = self._loader.get('mailman:///it/demo.txt')
- self.assertIsInstance(content, six.text_type)
+ self.assertIsInstance(content, str)
self.assertEqual(content, test_text.decode('utf-8'))
diff --git a/src/mailman/archiving/mailarchive.py b/src/mailman/archiving/mailarchive.py
index 4ede57856..b7f3847f0 100644
--- a/src/mailman/archiving/mailarchive.py
+++ b/src/mailman/archiving/mailarchive.py
@@ -25,7 +25,7 @@ __all__ = [
from mailman.config import config
from mailman.config.config import external_configuration
from mailman.interfaces.archiver import ArchivePolicy, IArchiver
-from six.moves.urllib_parse import quote, urljoin
+from urllib.parse import quote, urljoin
from zope.interface import implementer
diff --git a/src/mailman/archiving/mhonarc.py b/src/mailman/archiving/mhonarc.py
index bdba612f3..ff8baf079 100644
--- a/src/mailman/archiving/mhonarc.py
+++ b/src/mailman/archiving/mhonarc.py
@@ -29,7 +29,7 @@ from mailman.config import config
from mailman.config.config import external_configuration
from mailman.interfaces.archiver import IArchiver
from mailman.utilities.string import expand
-from six.moves.urllib_parse import urljoin
+from urllib.parse import urljoin
from zope.interface import implementer
diff --git a/src/mailman/archiving/prototype.py b/src/mailman/archiving/prototype.py
index 41b413105..b0328211e 100644
--- a/src/mailman/archiving/prototype.py
+++ b/src/mailman/archiving/prototype.py
@@ -31,7 +31,7 @@ from flufl.lock import Lock, TimeOutError
from mailbox import Maildir
from mailman.config import config
from mailman.interfaces.archiver import IArchiver
-from six.moves.urllib_parse import urljoin
+from urllib.parse import urljoin
from zope.interface import implementer
diff --git a/src/mailman/commands/cli_import.py b/src/mailman/commands/cli_import.py
index b91a288ea..30aeb7894 100644
--- a/src/mailman/commands/cli_import.py
+++ b/src/mailman/commands/cli_import.py
@@ -23,13 +23,13 @@ __all__ = [
import sys
+import pickle
from mailman.core.i18n import _
from mailman.database.transaction import transactional
from mailman.interfaces.command import ICLISubCommand
from mailman.interfaces.listmanager import IListManager
from mailman.utilities.importer import import_config_pck, Import21Error
-from six.moves import cPickle
from zope.component import getUtility
from zope.interface import implementer
@@ -77,10 +77,10 @@ class Import21:
with open(filename, 'rb') as fp:
while True:
try:
- config_dict = cPickle.load(fp)
+ config_dict = pickle.load(fp)
except EOFError:
break
- except cPickle.UnpicklingError:
+ except pickle.UnpicklingError:
self.parser.error(
_('Not a Mailman 2.1 configuration file: $filename'))
return
diff --git a/src/mailman/commands/cli_qfile.py b/src/mailman/commands/cli_qfile.py
index 3ce007dad..55669e981 100644
--- a/src/mailman/commands/cli_qfile.py
+++ b/src/mailman/commands/cli_qfile.py
@@ -22,13 +22,12 @@ __all__ = [
]
-import six
+import pickle
from mailman.core.i18n import _
from mailman.interfaces.command import ICLISubCommand
from mailman.utilities.interact import interact
from pprint import PrettyPrinter
-from six.moves import cPickle
from zope.interface import implementer
@@ -72,7 +71,7 @@ class QFile:
with open(args.qfile[0], 'rb') as fp:
while True:
try:
- m.append(cPickle.load(fp))
+ m.append(pickle.load(fp))
except EOFError:
break
if args.doprint:
@@ -80,7 +79,7 @@ class QFile:
for i, obj in enumerate(m):
count = i + 1
print(_('<----- start object $count ----->'))
- if isinstance(obj, six.string_types):
+ if isinstance(obj, (bytes, str)):
print(obj)
else:
printer.pprint(obj)
diff --git a/src/mailman/commands/docs/inject.rst b/src/mailman/commands/docs/inject.rst
index de295b8f6..68a5d534d 100644
--- a/src/mailman/commands/docs/inject.rst
+++ b/src/mailman/commands/docs/inject.rst
@@ -133,9 +133,8 @@ Standard input
The message text can also be provided on standard input.
::
- >>> from six import StringIO
+ >>> from io import StringIO
- # Remember: we've got unicode literals turned on.
>>> standard_in = StringIO(str("""\
... From: bperson@example.com
... To: test@example.com
diff --git a/src/mailman/commands/docs/members.rst b/src/mailman/commands/docs/members.rst
index 28f238f31..490287235 100644
--- a/src/mailman/commands/docs/members.rst
+++ b/src/mailman/commands/docs/members.rst
@@ -229,7 +229,7 @@ You can also specify ``-`` as the filename, in which case the addresses are
taken from standard input.
::
- >>> from six import StringIO
+ >>> from io import StringIO
>>> fp = StringIO()
>>> for address in ('dperson@example.com',
... 'Elly Person <eperson@example.com>',
diff --git a/src/mailman/commands/tests/test_conf.py b/src/mailman/commands/tests/test_conf.py
index 972148cc2..5ff93895d 100644
--- a/src/mailman/commands/tests/test_conf.py
+++ b/src/mailman/commands/tests/test_conf.py
@@ -28,9 +28,9 @@ import mock
import tempfile
import unittest
+from io import StringIO
from mailman.commands.cli_conf import Conf
from mailman.testing.layers import ConfigLayer
-from six import StringIO
diff --git a/src/mailman/config/config.py b/src/mailman/config/config.py
index 6e518dea0..ada4c6bac 100644
--- a/src/mailman/config/config.py
+++ b/src/mailman/config/config.py
@@ -28,6 +28,7 @@ import os
import sys
import mailman.templates
+from configparser import ConfigParser, RawConfigParser
from flufl.lock import Lock
from lazr.config import ConfigSchema, as_boolean
from mailman import version
@@ -37,7 +38,6 @@ from mailman.interfaces.languages import ILanguageManager
from mailman.utilities.filesystem import makedirs
from mailman.utilities.modules import call_name, expand_path
from pkg_resources import resource_filename, resource_string as resource_bytes
-from six.moves.configparser import ConfigParser, RawConfigParser
from string import Template
from unittest.mock import patch
from zope.component import getUtility
diff --git a/src/mailman/core/runner.py b/src/mailman/core/runner.py
index f198a4641..75dc644b3 100644
--- a/src/mailman/core/runner.py
+++ b/src/mailman/core/runner.py
@@ -27,6 +27,7 @@ import signal
import logging
import traceback
+from io import StringIO
from lazr.config import as_boolean, as_timedelta
from mailman.config import config
from mailman.core.i18n import _
@@ -36,7 +37,6 @@ from mailman.interfaces.languages import ILanguageManager
from mailman.interfaces.listmanager import IListManager
from mailman.interfaces.runner import IRunner, RunnerCrashEvent
from mailman.utilities.string import expand
-from six.moves import cStringIO as StringIO
from zope.component import getUtility
from zope.event import notify
from zope.interface import implementer
diff --git a/src/mailman/core/switchboard.py b/src/mailman/core/switchboard.py
index 15ad06416..402770cd9 100644
--- a/src/mailman/core/switchboard.py
+++ b/src/mailman/core/switchboard.py
@@ -43,7 +43,6 @@ from mailman.interfaces.configuration import ConfigurationUpdatedEvent
from mailman.interfaces.switchboard import ISwitchboard
from mailman.utilities.filesystem import makedirs
from mailman.utilities.string import expand
-from six.moves import cPickle
from zope.interface import implementer
@@ -114,10 +113,10 @@ class Switchboard:
now = repr(time.time())
if data.get('_plaintext'):
protocol = 0
- msgsave = cPickle.dumps(str(_msg), protocol)
+ msgsave = pickle.dumps(str(_msg), protocol)
else:
protocol = pickle.HIGHEST_PROTOCOL
- msgsave = cPickle.dumps(_msg, protocol)
+ msgsave = pickle.dumps(_msg, protocol)
# The list-id field is a string but the input to the hash function must
# be bytes.
hashfood = msgsave + list_id.encode('utf-8') + now.encode('utf-8')
@@ -141,7 +140,7 @@ class Switchboard:
# Write to the pickle file the message object and metadata.
with open(tmpfile, 'wb') as fp:
fp.write(msgsave)
- cPickle.dump(data, fp, protocol)
+ pickle.dump(data, fp, protocol)
fp.flush()
os.fsync(fp.fileno())
os.rename(tmpfile, filename)
@@ -158,8 +157,8 @@ class Switchboard:
# process crashes uncleanly the .bak file will be used to
# re-instate the .pck file in order to try again.
os.rename(filename, backfile)
- msg = cPickle.load(fp)
- data = cPickle.load(fp)
+ msg = pickle.load(fp)
+ data = pickle.load(fp)
if data.get('_parsemsg'):
# Calculate the original size of the text now so that we won't
# have to generate the message later when we do size restriction
@@ -226,9 +225,9 @@ class Switchboard:
with open(src, 'rb+') as fp:
try:
# Throw away the message object.
- cPickle.load(fp)
+ pickle.load(fp)
data_pos = fp.tell()
- data = cPickle.load(fp)
+ data = pickle.load(fp)
except Exception as error:
# If unpickling throws any exception, just log and
# preserve this entry
@@ -242,7 +241,7 @@ class Switchboard:
protocol = 0
else:
protocol = 1
- cPickle.dump(data, fp, protocol)
+ pickle.dump(data, fp, protocol)
fp.truncate()
fp.flush()
os.fsync(fp.fileno())
diff --git a/src/mailman/database/sqlite.py b/src/mailman/database/sqlite.py
index e6c9857b2..e1c3bf095 100644
--- a/src/mailman/database/sqlite.py
+++ b/src/mailman/database/sqlite.py
@@ -25,7 +25,7 @@ __all__ = [
import os
from mailman.database.base import SABaseDatabase
-from six.moves.urllib_parse import urlparse
+from urllib.parse import urlparse
diff --git a/src/mailman/handlers/decorate.py b/src/mailman/handlers/decorate.py
index be6620019..7f09c74e4 100644
--- a/src/mailman/handlers/decorate.py
+++ b/src/mailman/handlers/decorate.py
@@ -33,7 +33,7 @@ from mailman.email.message import Message
from mailman.interfaces.handler import IHandler
from mailman.interfaces.templates import ITemplateLoader
from mailman.utilities.string import expand
-from six.moves.urllib_error import URLError
+from urllib.error import URLError
from zope.component import getUtility
from zope.interface import implementer
diff --git a/src/mailman/model/domain.py b/src/mailman/model/domain.py
index 768075c30..9e627c119 100644
--- a/src/mailman/model/domain.py
+++ b/src/mailman/model/domain.py
@@ -29,7 +29,7 @@ from mailman.interfaces.domain import (
BadDomainSpecificationError, DomainCreatedEvent, DomainCreatingEvent,
DomainDeletedEvent, DomainDeletingEvent, IDomain, IDomainManager)
from mailman.model.mailinglist import MailingList
-from six.moves.urllib_parse import urljoin, urlparse
+from urllib.parse import urljoin, urlparse
from sqlalchemy import Column, Integer, Unicode
from zope.event import notify
from zope.interface import implementer
diff --git a/src/mailman/model/mailinglist.py b/src/mailman/model/mailinglist.py
index 738ce6fbd..a204d54cd 100644
--- a/src/mailman/model/mailinglist.py
+++ b/src/mailman/model/mailinglist.py
@@ -52,12 +52,12 @@ from mailman.model.mime import ContentFilter
from mailman.model.preferences import Preferences
from mailman.utilities.filesystem import makedirs
from mailman.utilities.string import expand
-from six.moves.urllib_parse import urljoin
from sqlalchemy import (
Boolean, Column, DateTime, Float, ForeignKey, Integer, Interval,
LargeBinary, PickleType, Unicode)
from sqlalchemy.event import listen
from sqlalchemy.orm import relationship
+from urllib.parse import urljoin
from zope.component import getUtility
from zope.event import notify
from zope.interface import implementer
diff --git a/src/mailman/model/requests.py b/src/mailman/model/requests.py
index de0c51d99..e984d0aea 100644
--- a/src/mailman/model/requests.py
+++ b/src/mailman/model/requests.py
@@ -23,15 +23,13 @@ __all__ = [
]
-import six
-
from datetime import timedelta
from mailman.database.model import Model
from mailman.database.transaction import dbconnection
from mailman.database.types import Enum
from mailman.interfaces.pending import IPendable, IPendings
from mailman.interfaces.requests import IListRequests, RequestType
-from six.moves.cPickle import dumps, loads
+from pickle import dumps, loads
from sqlalchemy import Column, ForeignKey, Integer, Unicode
from sqlalchemy.orm import relationship
from zope.component import getUtility
@@ -50,8 +48,8 @@ class DataPendable(dict):
# such a way that it will be properly reconstituted when unpended.
clean_mapping = {}
for key, value in mapping.items():
- assert isinstance(key, six.string_types)
- if not isinstance(value, six.text_type):
+ assert isinstance(key, (bytes, str))
+ if not isinstance(value, str):
key = '_pck_' + key
value = dumps(value).decode('raw-unicode-escape')
clean_mapping[key] = value
diff --git a/src/mailman/rest/addresses.py b/src/mailman/rest/addresses.py
index 0d06391ea..2ce456b98 100644
--- a/src/mailman/rest/addresses.py
+++ b/src/mailman/rest/addresses.py
@@ -24,8 +24,6 @@ __all__ = [
]
-import six
-
from mailman.interfaces.address import (
ExistingAddressError, InvalidEmailAddressError)
from mailman.interfaces.usermanager import IUserManager
@@ -196,8 +194,8 @@ class UserAddresses(_AddressBase):
not_found(response)
return
user_manager = getUtility(IUserManager)
- validator = Validator(email=six.text_type,
- display_name=six.text_type,
+ validator = Validator(email=str,
+ display_name=str,
_optional=('display_name',))
try:
address = user_manager.create_address(**validator(request))
diff --git a/src/mailman/rest/docs/helpers.rst b/src/mailman/rest/docs/helpers.rst
index 5614e6544..c40619c01 100644
--- a/src/mailman/rest/docs/helpers.rst
+++ b/src/mailman/rest/docs/helpers.rst
@@ -69,9 +69,8 @@ Another helper unpacks ``POST`` and ``PUT`` request variables, validating and
converting their values.
::
- >>> import six
>>> from mailman.rest.validator import Validator
- >>> validator = Validator(one=int, two=six.text_type, three=bool)
+ >>> validator = Validator(one=int, two=str, three=bool)
>>> class FakeRequest:
... params = None
@@ -120,7 +119,7 @@ Extra keys are also not allowed.
However, if optional keys are missing, it's okay.
::
- >>> validator = Validator(one=int, two=six.text_type, three=bool,
+ >>> validator = Validator(one=int, two=str, three=bool,
... four=int, five=int,
... _optional=('four', 'five'))
diff --git a/src/mailman/rest/domains.py b/src/mailman/rest/domains.py
index 02b46494b..345e8327d 100644
--- a/src/mailman/rest/domains.py
+++ b/src/mailman/rest/domains.py
@@ -23,8 +23,6 @@ __all__ = [
]
-import six
-
from mailman.interfaces.domain import (
BadDomainSpecificationError, IDomainManager)
from mailman.rest.helpers import (
@@ -98,10 +96,10 @@ class AllDomains(_DomainBase):
"""Create a new domain."""
domain_manager = getUtility(IDomainManager)
try:
- validator = Validator(mail_host=six.text_type,
- description=six.text_type,
- base_url=six.text_type,
- contact_address=six.text_type,
+ validator = Validator(mail_host=str,
+ description=str,
+ base_url=str,
+ contact_address=str,
_optional=('description', 'base_url',
'contact_address'))
domain = domain_manager.add(**validator(request))
diff --git a/src/mailman/rest/listconf.py b/src/mailman/rest/listconf.py
index 831d6fefe..e83f52833 100644
--- a/src/mailman/rest/listconf.py
+++ b/src/mailman/rest/listconf.py
@@ -22,8 +22,6 @@ __all__ = [
]
-import six
-
from lazr.config import as_boolean, as_timedelta
from mailman.config import config
from mailman.core.errors import (
@@ -108,9 +106,9 @@ ATTRIBUTES = dict(
autorespond_postings=GetterSetter(enum_validator(ResponseAction)),
autorespond_requests=GetterSetter(enum_validator(ResponseAction)),
autoresponse_grace_period=GetterSetter(as_timedelta),
- autoresponse_owner_text=GetterSetter(six.text_type),
- autoresponse_postings_text=GetterSetter(six.text_type),
- autoresponse_request_text=GetterSetter(six.text_type),
+ autoresponse_owner_text=GetterSetter(str),
+ autoresponse_postings_text=GetterSetter(str),
+ autoresponse_request_text=GetterSetter(str),
archive_policy=GetterSetter(enum_validator(ArchivePolicy)),
bounces_address=GetterSetter(None),
collapse_alternatives=GetterSetter(as_boolean),
@@ -118,7 +116,7 @@ ATTRIBUTES = dict(
created_at=GetterSetter(None),
default_member_action=GetterSetter(enum_validator(Action)),
default_nonmember_action=GetterSetter(enum_validator(Action)),
- description=GetterSetter(six.text_type),
+ description=GetterSetter(str),
digest_last_sent_at=GetterSetter(None),
digest_size_threshold=GetterSetter(float),
filter_content=GetterSetter(as_boolean),
@@ -137,16 +135,16 @@ ATTRIBUTES = dict(
post_id=GetterSetter(None),
posting_address=GetterSetter(None),
posting_pipeline=GetterSetter(pipeline_validator),
- display_name=GetterSetter(six.text_type),
+ display_name=GetterSetter(str),
reply_goes_to_list=GetterSetter(enum_validator(ReplyToMunging)),
- reply_to_address=GetterSetter(six.text_type),
+ reply_to_address=GetterSetter(str),
request_address=GetterSetter(None),
scheme=GetterSetter(None),
send_welcome_message=GetterSetter(as_boolean),
- subject_prefix=GetterSetter(six.text_type),
+ subject_prefix=GetterSetter(str),
volume=GetterSetter(None),
web_host=GetterSetter(None),
- welcome_message_uri=GetterSetter(six.text_type),
+ welcome_message_uri=GetterSetter(str),
)
diff --git a/src/mailman/rest/lists.py b/src/mailman/rest/lists.py
index c6233796b..f6bc27917 100644
--- a/src/mailman/rest/lists.py
+++ b/src/mailman/rest/lists.py
@@ -27,8 +27,6 @@ __all__ = [
]
-import six
-
from lazr.config import as_boolean
from mailman.app.lifecycle import create_list, remove_list
from mailman.config import config
@@ -202,8 +200,8 @@ class AllLists(_ListBase):
def on_post(self, request, response):
"""Create a new mailing list."""
try:
- validator = Validator(fqdn_listname=six.text_type,
- style_name=six.text_type,
+ validator = Validator(fqdn_listname=str,
+ style_name=str,
_optional=('style_name',))
mlist = create_list(**validator(request))
except ListAlreadyExistsError:
diff --git a/src/mailman/rest/members.py b/src/mailman/rest/members.py
index 5451f7f76..925cd6718 100644
--- a/src/mailman/rest/members.py
+++ b/src/mailman/rest/members.py
@@ -25,8 +25,6 @@ __all__ = [
]
-import six
-
from mailman.app.membership import delete_member
from mailman.interfaces.address import InvalidEmailAddressError
from mailman.interfaces.listmanager import IListManager, NoSuchListError
@@ -174,7 +172,7 @@ class AMember(_MemberBase):
return
try:
values = Validator(
- address=six.text_type,
+ address=str,
delivery_mode=enum_validator(DeliveryMode),
_optional=('address', 'delivery_mode'))(request)
except ValueError as error:
@@ -205,9 +203,9 @@ class AllMembers(_MemberBase):
service = getUtility(ISubscriptionService)
try:
validator = Validator(
- list_id=six.text_type,
+ list_id=str,
subscriber=subscriber_validator,
- display_name=six.text_type,
+ display_name=str,
delivery_mode=enum_validator(DeliveryMode),
role=enum_validator(MemberRole),
_optional=('delivery_mode', 'display_name', 'role'))
@@ -254,8 +252,8 @@ class FindMembers(_MemberBase):
"""Find a member"""
service = getUtility(ISubscriptionService)
validator = Validator(
- list_id=six.text_type,
- subscriber=six.text_type,
+ list_id=str,
+ subscriber=str,
role=enum_validator(MemberRole),
_optional=('list_id', 'subscriber', 'role'))
try:
diff --git a/src/mailman/rest/queues.py b/src/mailman/rest/queues.py
index f1007052e..190f9091e 100644
--- a/src/mailman/rest/queues.py
+++ b/src/mailman/rest/queues.py
@@ -24,8 +24,6 @@ __all__ = [
]
-import six
-
from mailman.config import config
from mailman.app.inject import inject_text
from mailman.interfaces.listmanager import IListManager
@@ -75,8 +73,8 @@ class AQueue(_QueuesBase):
def on_post(self, request, response):
"""Inject a message into the queue."""
try:
- validator = Validator(list_id=six.text_type,
- text=six.text_type)
+ validator = Validator(list_id=str,
+ text=str)
values = validator(request)
except ValueError as error:
bad_request(response, str(error))
diff --git a/src/mailman/rest/tests/test_addresses.py b/src/mailman/rest/tests/test_addresses.py
index d08152333..584b81695 100644
--- a/src/mailman/rest/tests/test_addresses.py
+++ b/src/mailman/rest/tests/test_addresses.py
@@ -30,7 +30,7 @@ from mailman.interfaces.usermanager import IUserManager
from mailman.testing.helpers import call_api
from mailman.testing.layers import RESTLayer
from mailman.utilities.datetime import now
-from six.moves.urllib_error import HTTPError
+from urllib.error import HTTPError
from zope.component import getUtility
diff --git a/src/mailman/rest/tests/test_domains.py b/src/mailman/rest/tests/test_domains.py
index d10af30ef..bf53c8e70 100644
--- a/src/mailman/rest/tests/test_domains.py
+++ b/src/mailman/rest/tests/test_domains.py
@@ -29,7 +29,7 @@ from mailman.database.transaction import transaction
from mailman.interfaces.listmanager import IListManager
from mailman.testing.helpers import call_api
from mailman.testing.layers import RESTLayer
-from six.moves.urllib_error import HTTPError
+from urllib.error import HTTPError
from zope.component import getUtility
diff --git a/src/mailman/rest/tests/test_lists.py b/src/mailman/rest/tests/test_lists.py
index fed9865c4..a365db969 100644
--- a/src/mailman/rest/tests/test_lists.py
+++ b/src/mailman/rest/tests/test_lists.py
@@ -32,7 +32,7 @@ from mailman.database.transaction import transaction
from mailman.interfaces.usermanager import IUserManager
from mailman.testing.helpers import call_api
from mailman.testing.layers import RESTLayer
-from six.moves.urllib_error import HTTPError
+from urllib.error import HTTPError
from zope.component import getUtility
diff --git a/src/mailman/rest/tests/test_membership.py b/src/mailman/rest/tests/test_membership.py
index 2841f6634..e1bff833b 100644
--- a/src/mailman/rest/tests/test_membership.py
+++ b/src/mailman/rest/tests/test_membership.py
@@ -35,7 +35,7 @@ from mailman.testing.helpers import (
from mailman.runners.incoming import IncomingRunner
from mailman.testing.layers import ConfigLayer, RESTLayer
from mailman.utilities.datetime import now
-from six.moves.urllib_error import HTTPError
+from urllib.error import HTTPError
from zope.component import getUtility
diff --git a/src/mailman/rest/tests/test_moderation.py b/src/mailman/rest/tests/test_moderation.py
index 83261e8e4..262a7ec60 100644
--- a/src/mailman/rest/tests/test_moderation.py
+++ b/src/mailman/rest/tests/test_moderation.py
@@ -32,7 +32,7 @@ from mailman.interfaces.member import DeliveryMode
from mailman.testing.helpers import (
call_api, specialized_message_from_string as mfs)
from mailman.testing.layers import RESTLayer
-from six.moves.urllib_error import HTTPError
+from urllib.error import HTTPError
diff --git a/src/mailman/rest/tests/test_preferences.py b/src/mailman/rest/tests/test_preferences.py
index 1caf61d61..909b1e0e3 100644
--- a/src/mailman/rest/tests/test_preferences.py
+++ b/src/mailman/rest/tests/test_preferences.py
@@ -29,7 +29,7 @@ from mailman.database.transaction import transaction
from mailman.interfaces.usermanager import IUserManager
from mailman.testing.helpers import call_api
from mailman.testing.layers import RESTLayer
-from six.moves.urllib_error import HTTPError
+from urllib.error import HTTPError
from zope.component import getUtility
diff --git a/src/mailman/rest/tests/test_queues.py b/src/mailman/rest/tests/test_queues.py
index 43659a2e4..cc860112b 100644
--- a/src/mailman/rest/tests/test_queues.py
+++ b/src/mailman/rest/tests/test_queues.py
@@ -29,7 +29,7 @@ from mailman.config import config
from mailman.database.transaction import transaction
from mailman.testing.helpers import call_api, get_queue_messages
from mailman.testing.layers import RESTLayer
-from six.moves.urllib_error import HTTPError
+from urllib.error import HTTPError
TEXT = """\
diff --git a/src/mailman/rest/tests/test_root.py b/src/mailman/rest/tests/test_root.py
index 75e53dd8c..6d10fc635 100644
--- a/src/mailman/rest/tests/test_root.py
+++ b/src/mailman/rest/tests/test_root.py
@@ -32,7 +32,7 @@ from mailman.config import config
from mailman.core.system import system
from mailman.testing.helpers import call_api
from mailman.testing.layers import RESTLayer
-from six.moves.urllib_error import HTTPError
+from urllib.error import HTTPError
diff --git a/src/mailman/rest/tests/test_systemconf.py b/src/mailman/rest/tests/test_systemconf.py
index 0360baace..d7d0fe9a2 100644
--- a/src/mailman/rest/tests/test_systemconf.py
+++ b/src/mailman/rest/tests/test_systemconf.py
@@ -26,7 +26,7 @@ import unittest
from mailman.testing.helpers import call_api
from mailman.testing.layers import RESTLayer
-from six.moves.urllib_error import HTTPError
+from urllib.error import HTTPError
diff --git a/src/mailman/rest/tests/test_users.py b/src/mailman/rest/tests/test_users.py
index 2d85b3452..e009f63c1 100644
--- a/src/mailman/rest/tests/test_users.py
+++ b/src/mailman/rest/tests/test_users.py
@@ -33,7 +33,7 @@ from mailman.database.transaction import transaction
from mailman.interfaces.usermanager import IUserManager
from mailman.testing.helpers import call_api, configuration
from mailman.testing.layers import RESTLayer
-from six.moves.urllib_error import HTTPError
+from urllib.error import HTTPError
from zope.component import getUtility
diff --git a/src/mailman/runners/command.py b/src/mailman/runners/command.py
index b19d1aede..e7c732b09 100644
--- a/src/mailman/runners/command.py
+++ b/src/mailman/runners/command.py
@@ -28,12 +28,12 @@ __all__ = [
# -owner.
import re
-import six
import logging
from email.errors import HeaderParseError
from email.header import decode_header, make_header
from email.iterators import typed_subpart_iterator
+from io import StringIO
from mailman.config import config
from mailman.core.i18n import _
from mailman.core.runner import Runner
@@ -80,7 +80,7 @@ class CommandFinder:
# subject is a unicode object, convert it to ASCII ignoring all
# bogus characters. Otherwise, there's nothing in the subject
# that we can use.
- if isinstance(raw_subject, six.text_type):
+ if isinstance(raw_subject, str):
safe_subject = raw_subject.encode('us-ascii', 'ignore')
self.command_lines.append(safe_subject)
# Find the first text/plain part of the message.
@@ -96,7 +96,7 @@ class CommandFinder:
return
body = part.get_payload()
# text/plain parts better have string payloads.
- assert isinstance(body, six.string_types), 'Non-string decoded payload'
+ assert isinstance(body, (bytes, str)), 'Non-string decoded payload'
lines = body.splitlines()
# Use no more lines than specified
max_lines = int(config.mailman.email_commands_max_lines)
@@ -114,7 +114,7 @@ class CommandFinder:
# Ensure that all the parts are unicodes. Since we only accept
# ASCII commands and arguments, ignore anything else.
parts = [(part
- if isinstance(part, six.text_type)
+ if isinstance(part, str)
else part.decode('ascii', 'ignore'))
for part in parts]
yield parts
@@ -126,7 +126,7 @@ class Results:
"""The email command results."""
def __init__(self, charset='us-ascii'):
- self._output = six.StringIO()
+ self._output = StringIO()
self.charset = charset
print(_("""\
The results of your email command are provided below.
@@ -139,7 +139,7 @@ The results of your email command are provided below.
def __str__(self):
value = self._output.getvalue()
- assert isinstance(value, six.text_type), 'Not a unicode: %r' % value
+ assert isinstance(value, str), 'Not a string: %r' % value
return value
diff --git a/src/mailman/runners/digest.py b/src/mailman/runners/digest.py
index c7882af02..ad6e0b1c5 100644
--- a/src/mailman/runners/digest.py
+++ b/src/mailman/runners/digest.py
@@ -30,6 +30,7 @@ from email.header import Header
from email.mime.message import MIMEMessage
from email.mime.text import MIMEText
from email.utils import formatdate, getaddresses, make_msgid
+from io import StringIO
from mailman.config import config
from mailman.core.i18n import _
from mailman.core.runner import Runner
@@ -39,8 +40,7 @@ from mailman.interfaces.member import DeliveryMode, DeliveryStatus
from mailman.utilities.i18n import make
from mailman.utilities.mailbox import Mailbox
from mailman.utilities.string import oneline, wrap
-from six.moves import cStringIO as StringIO
-from six.moves.urllib_error import URLError
+from urllib.error import URLError
log = logging.getLogger('mailman.error')
diff --git a/src/mailman/runners/nntp.py b/src/mailman/runners/nntp.py
index c19f06417..ac77b014c 100644
--- a/src/mailman/runners/nntp.py
+++ b/src/mailman/runners/nntp.py
@@ -28,10 +28,10 @@ import socket
import logging
import nntplib
+from io import StringIO
from mailman.config import config
from mailman.core.runner import Runner
from mailman.interfaces.nntp import NewsgroupModeration
-from six.moves import cStringIO as StringIO
COMMA = ','
diff --git a/src/mailman/testing/helpers.py b/src/mailman/testing/helpers.py
index f38641cf3..a869c8d55 100644
--- a/src/mailman/testing/helpers.py
+++ b/src/mailman/testing/helpers.py
@@ -67,8 +67,8 @@ from mailman.interfaces.styles import IStyleManager
from mailman.interfaces.usermanager import IUserManager
from mailman.runners.digest import DigestRunner
from mailman.utilities.mailbox import Mailbox
-from six.moves.urllib_error import HTTPError
-from six.moves.urllib_parse import urlencode
+from urllib.error import HTTPError
+from urllib.parse import urlencode
from zope import event
from zope.component import getUtility
diff --git a/src/mailman/testing/mta.py b/src/mailman/testing/mta.py
index 98f1ffa8c..351ef631a 100644
--- a/src/mailman/testing/mta.py
+++ b/src/mailman/testing/mta.py
@@ -27,7 +27,7 @@ import logging
from lazr.smtptest.controller import QueueController
from lazr.smtptest.server import Channel, QueueServer
from mailman.interfaces.mta import IMailTransportAgentLifecycle
-from six.moves.queue import Empty, Queue
+from queue import Empty, Queue
from zope.interface import implementer
diff --git a/src/mailman/utilities/i18n.py b/src/mailman/utilities/i18n.py
index 8f6f27af4..1d3fbca6f 100644
--- a/src/mailman/utilities/i18n.py
+++ b/src/mailman/utilities/i18n.py
@@ -26,7 +26,6 @@ __all__ = [
import os
-import six
import sys
import errno
@@ -200,8 +199,7 @@ def make(template_file, mlist=None, language=None, wrap=True,
template = _(fp.read()[:-1])
finally:
fp.close()
- assert isinstance(template, six.text_type), (
- 'Translated template is not unicode')
+ assert isinstance(template, str), 'Translated template is not a string'
text = expand(template, kw)
if wrap:
return wrap_text(text)
diff --git a/src/mailman/utilities/importer.py b/src/mailman/utilities/importer.py
index 46140f282..8590d9b1b 100644
--- a/src/mailman/utilities/importer.py
+++ b/src/mailman/utilities/importer.py
@@ -45,7 +45,7 @@ from mailman.interfaces.nntp import NewsgroupModeration
from mailman.interfaces.usermanager import IUserManager
from mailman.utilities.filesystem import makedirs
from mailman.utilities.i18n import search
-from six.moves.urllib_error import URLError
+from urllib.error import URLError
from zope.component import getUtility
diff --git a/src/mailman/utilities/tests/test_import.py b/src/mailman/utilities/tests/test_import.py
index 68a02c720..b0ab9938d 100644
--- a/src/mailman/utilities/tests/test_import.py
+++ b/src/mailman/utilities/tests/test_import.py
@@ -29,7 +29,6 @@ __all__ = [
import os
-import six
import mock
import unittest
@@ -53,8 +52,8 @@ from mailman.testing.layers import ConfigLayer
from mailman.utilities.filesystem import makedirs
from mailman.utilities.importer import import_config_pck, Import21Error
from mailman.utilities.string import expand
+from pickle import load
from pkg_resources import resource_filename
-from six.moves.cPickle import load
from zope.component import getUtility
@@ -189,7 +188,7 @@ class TestBasicImport(unittest.TestCase):
# moderator_password must not be unicode
self._pckdict['mod_password'] = b'TESTVALUE'
self._import()
- self.assertNotIsInstance(self._mlist.moderator_password, six.text_type)
+ self.assertNotIsInstance(self._mlist.moderator_password, str)
self.assertEqual(self._mlist.moderator_password, b'TESTVALUE')
def test_newsgroup_moderation(self):