From c70cd40a012760e584677940d90d4d6613176238 Mon Sep 17 00:00:00 2001 From: Vincent Post Date: Fri, 7 Aug 2020 16:57:39 +0200 Subject: 2to3 -w accounts contrib --- accounts/__init__.py | 12 ++++---- accounts/backend/mail/dummy.py | 6 ++-- accounts/backend/mail/sendmail.py | 2 +- accounts/backend/user/dummy.py | 2 +- accounts/backend/user/ldap.py | 10 +++---- accounts/forms.py | 60 ++++++++++++++++++-------------------- accounts/models.py | 12 ++++---- accounts/utils/__init__.py | 6 ++-- accounts/utils/confirmation.py | 4 +-- accounts/utils/console.py | 18 ++++++------ accounts/utils/login.py | 2 +- accounts/utils/sessions.py | 2 +- accounts/views/admin/__init__.py | 10 +++---- accounts/views/default/__init__.py | 34 ++++++++++----------- accounts/views/login/__init__.py | 10 +++---- accounts/views/login/forms.py | 2 +- contrib/create_service.py | 6 ++-- contrib/munin/accounts.py | 2 +- 18 files changed, 99 insertions(+), 101 deletions(-) diff --git a/accounts/__init__.py b/accounts/__init__.py index e069527..48cd252 100644 --- a/accounts/__init__.py +++ b/accounts/__init__.py @@ -2,12 +2,12 @@ import os from flask import Flask, g, session -from models import Service -from utils import get_backend -from utils.confirmation import Confirmation -from utils.sessions import EncryptedSessionInterface -from utils.login import create_login_manager -from views import default, login, admin +from .models import Service +from .utils import get_backend +from .utils.confirmation import Confirmation +from .utils.sessions import EncryptedSessionInterface +from .utils.login import create_login_manager +from .views import default, login, admin def absolute_paths(app, config): diff --git a/accounts/backend/mail/dummy.py b/accounts/backend/mail/dummy.py index ad38d42..61e7b75 100644 --- a/accounts/backend/mail/dummy.py +++ b/accounts/backend/mail/dummy.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import + from . import Backend from accounts.utils import ensure_utf8 @@ -41,8 +41,8 @@ class DummyBackend(Backend): if not self.plain: body = "\n| ".join(body.split("\n")) - print(self.format.format( + print((self.format.format( subject=ensure_utf8(content.subject()), sender=ensure_utf8(content.sender()), to=ensure_utf8(recipient), - body=ensure_utf8(body))) + body=ensure_utf8(body)))) diff --git a/accounts/backend/mail/sendmail.py b/accounts/backend/mail/sendmail.py index 9a39b03..84900db 100644 --- a/accounts/backend/mail/sendmail.py +++ b/accounts/backend/mail/sendmail.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import + import subprocess from email.mime.text import MIMEText diff --git a/accounts/backend/user/dummy.py b/accounts/backend/user/dummy.py index c7afdb7..573ac85 100644 --- a/accounts/backend/user/dummy.py +++ b/accounts/backend/user/dummy.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import + from copy import deepcopy from fnmatch import fnmatch diff --git a/accounts/backend/user/ldap.py b/accounts/backend/user/ldap.py index 0cb18f1..57dd8ac 100644 --- a/accounts/backend/user/ldap.py +++ b/accounts/backend/user/ldap.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import + import ldap3 from ldap3.utils.conv import escape_filter_chars @@ -10,7 +10,7 @@ from accounts.models import Account def _escape(value, wildcard=False): - if not isinstance(value, basestring): + if not isinstance(value, str): value = str(value) if not wildcard: value = escape_filter_chars(value) @@ -80,7 +80,7 @@ class LdapBackend(Backend): filters['objectClass'] = 'splineAccount' filter_as_list = ['(%s=%s)' % (attr, _escape(value, wildcard)) - for attr, value in filters.items()] + for attr, value in list(filters.items())] filterstr = '(&%s)' % ''.join(filter_as_list) conn = self._connect() @@ -127,7 +127,7 @@ class LdapBackend(Backend): conn = self._connect(user_dn, account.password) attrs = {key: [(ldap3.MODIFY_REPLACE, [value])] - for key, value in account.attributes.items()} + for key, value in list(account.attributes.items())} conn.modify(user_dn, attrs) self._alter_passwords(conn, account, as_admin=as_admin) @@ -179,7 +179,7 @@ class LdapBackend(Backend): _, account.password = account.new_password_root account.new_password_root = None - for service, passwords in account.new_password_services.items(): + for service, passwords in list(account.new_password_services.items()): service_id = service.lower() service_dn = self._format_dn([('cn', service_id), ('uid', account.uid), ('ou', 'users')]) diff --git a/accounts/forms.py b/accounts/forms.py index b8856bf..b3cc425 100644 --- a/accounts/forms.py +++ b/accounts/forms.py @@ -6,7 +6,7 @@ from flask.ext.login import current_user from wtforms import TextField, PasswordField, ValidationError, BooleanField,\ validators from wtforms.form import FormMeta -from utils import NotRegexp +from .utils import NotRegexp USERNAME_RE = re.compile(r'^[a-zA-Z][a-zA-Z0-9-]{1,15}$') @@ -15,13 +15,13 @@ USERNAME_EXCLUDE_RE = re.compile(r'^(admin|root)') class RegisterForm(Form): username = TextField('Benutzername', [ - validators.Regexp(USERNAME_RE, message=u'Benutzername darf nur aus a-z, ' - u'Zahlen und - bestehen (2-16 Zeichen, am Anfang nur a-z).'), - NotRegexp(USERNAME_EXCLUDE_RE, message=u'Dieser Benutzername ist nicht erlaubt.'), + validators.Regexp(USERNAME_RE, message='Benutzername darf nur aus a-z, ' + 'Zahlen und - bestehen (2-16 Zeichen, am Anfang nur a-z).'), + NotRegexp(USERNAME_EXCLUDE_RE, message='Dieser Benutzername ist nicht erlaubt.'), ]) mail = TextField('E-Mail-Adresse', [validators.Email(), validators.Length(min=6, max=50)]) question = TextField('Hauptstadt von Deutschland?', [validators.AnyOf( - ('Berlin', 'berlin'), message=u'Bitte beantworte die Frage.')]) + ('Berlin', 'berlin'), message='Bitte beantworte die Frage.')]) def validate_username(self, field): try: @@ -30,11 +30,11 @@ class RegisterForm(Form): if current_app.username_blacklist: if field.data.lower() in current_app.username_blacklist: raise ValidationError(Markup( - u'Dieser Benutzername ist momentan nicht erlaubt. ' - u'Weitere Informationen' + 'Dieser Benutzername ist momentan nicht erlaubt. ' + 'Weitere Informationen' % url_for('default.about'))) else: - raise ValidationError(u'Dieser Benutzername ist schon vergeben.') + raise ValidationError('Dieser Benutzername ist schon vergeben.') def validate_mail(self, field): try: @@ -43,9 +43,9 @@ class RegisterForm(Form): pass else: raise ValidationError(Markup( - u'Ein Benutzername mit dieser Adresse existiert bereits. ' - u'Falls du deinen Benutzernamen vergessen hast, kannst du ' - u'die Passwort-vergessen-Funktion benutzen.' + 'Ein Benutzername mit dieser Adresse existiert bereits. ' + 'Falls du deinen Benutzernamen vergessen hast, kannst du ' + 'die Passwort-vergessen-Funktion benutzen.' % url_for('default.lost_password'))) class AdminCreateAccountForm(RegisterForm): @@ -55,20 +55,20 @@ class AdminCreateAccountForm(RegisterForm): except current_app.user_backend.NoSuchUserError: return else: - raise ValidationError(u'Dieser Benutzername ist schon vergeben') + raise ValidationError('Dieser Benutzername ist schon vergeben') question = None class RegisterCompleteForm(Form): password = PasswordField('Passwort', [validators.Required(), - validators.EqualTo('password_confirm', message=u'Passwörter stimmen nicht überein')]) - password_confirm = PasswordField(u'Passwort bestätigen') + validators.EqualTo('password_confirm', message='Passwörter stimmen nicht überein')]) + password_confirm = PasswordField('Passwort bestätigen') # n.b. this form is also used in lost_password_complete class LostPasswordForm(Form): - username_or_mail = TextField(u'Benutzername oder E-Mail') + username_or_mail = TextField('Benutzername oder E-Mail') user = None def validate_username_or_mail(self, field): @@ -76,53 +76,51 @@ class LostPasswordForm(Form): try: self.user = current_app.user_backend.get_by_uid(field.data) except current_app.user_backend.NoSuchUserError: - raise ValidationError(u'Es gibt keinen Benutzer mit diesem Namen.') + raise ValidationError('Es gibt keinen Benutzer mit diesem Namen.') else: try: self.user = current_app.user_backend.get_by_mail(field.data) except current_app.user_backend.NoSuchUserError: - raise ValidationError(u'Es gibt keinen Benutzer mit dieser Adresse.') + raise ValidationError('Es gibt keinen Benutzer mit dieser Adresse.') class SettingsMeta(FormMeta): def __call__(cls, *args, **kwargs): for service in current_app.all_services: setattr(cls, 'password_%s' % service.id, PasswordField( - u'Passwort für %s' % service.name, [ + 'Passwort für %s' % service.name, [ validators.Optional(), validators.EqualTo( 'password_confirm_%s' % service.id, - message=u'Passwörter stimmen nicht überein'), + message='Passwörter stimmen nicht überein'), ])) setattr(cls, 'password_confirm_%s' % service.id, PasswordField( - u'Passwort für %s (Bestätigung)' % service.name)) + 'Passwort für %s (Bestätigung)' % service.name)) setattr(cls, 'delete_%s' % service.id, BooleanField( - u'Passwort für %s löschen' % service.name)) + 'Passwort für %s löschen' % service.name)) return super(SettingsMeta, cls).__call__(*args, **kwargs) -class SettingsForm(Form): - __metaclass__ = SettingsMeta - +class SettingsForm(Form, metaclass=SettingsMeta): old_password = PasswordField('Altes Passwort') password = PasswordField('Neues Passwort', [validators.Optional(), - validators.EqualTo('password_confirm', message=u'Passwörter stimmen nicht überein')]) - password_confirm = PasswordField(u'Passwort bestätigen') + validators.EqualTo('password_confirm', message='Passwörter stimmen nicht überein')]) + password_confirm = PasswordField('Passwort bestätigen') mail = TextField('E-Mail-Adresse', [validators.Optional(), validators.Email(), validators.Length(min=6, max=50)]) def validate_old_password(self, field): if self.password.data: if not field.data: - raise ValidationError(u'Gib bitte dein altes Passwort ein, um ein neues zu setzen.') + raise ValidationError('Gib bitte dein altes Passwort ein, um ein neues zu setzen.') if field.data != current_user.password: - raise ValidationError(u'Altes Passwort ist falsch.') + raise ValidationError('Altes Passwort ist falsch.') def validate_mail(self, field): results = current_app.user_backend.find_by_mail(field.data) for user in results: if user.uid != current_user.uid: - raise ValidationError(u'Diese E-Mail-Adresse wird schon von einem anderen Account benutzt!') + raise ValidationError('Diese E-Mail-Adresse wird schon von einem anderen Account benutzt!') def get_servicepassword(self, service_id): return getattr(self, 'password_%s' % service_id) @@ -135,11 +133,11 @@ class SettingsForm(Form): class AdminDisableAccountForm(Form): - username = TextField(u'Benutzername') + username = TextField('Benutzername') user = None def validate_username(self, field): try: self.user = current_app.user_backend.get_by_uid(field.data) except current_app.user_backend.NoSuchUserError: - raise ValidationError(u'Dieser Benutzername existiert nicht') + raise ValidationError('Dieser Benutzername existiert nicht') diff --git a/accounts/models.py b/accounts/models.py index 82dab45..40db977 100644 --- a/accounts/models.py +++ b/accounts/models.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import + from flask.ext.login import UserMixin from accounts.utils.login import create_userid @@ -13,9 +13,9 @@ class Account(UserMixin): _ready = False def __init__(self, uid, mail, services=None, password=None, uidNumber=None): - self.uid = uid.encode('utf8') if isinstance(uid, unicode) else uid + self.uid = uid.encode('utf8') if isinstance(uid, str) else uid self.services = list() if services is None else services - self.password = password.encode('utf8') if isinstance(password, unicode) else password + self.password = password.encode('utf8') if isinstance(password, str) else password self.new_password_root = None self.new_password_services = {} self.attributes = {} @@ -37,10 +37,10 @@ class Account(UserMixin): the root password will be changed. """ - if isinstance(new_password, unicode): + if isinstance(new_password, str): new_password = new_password.encode('utf8') - if isinstance(old_password, unicode): + if isinstance(old_password, str): old_password = old_password.encode('utf8') if not service: @@ -49,7 +49,7 @@ class Account(UserMixin): self.new_password_services[service] = (old_password, new_password) def _set_attribute(self, key, value): - if isinstance(value, unicode): + if isinstance(value, str): value = value.encode('utf8') self.attributes[key] = value diff --git a/accounts/utils/__init__.py b/accounts/utils/__init__.py index 7e658d0..8d49363 100644 --- a/accounts/utils/__init__.py +++ b/accounts/utils/__init__.py @@ -25,7 +25,7 @@ def templated(template=None): def ensure_utf8(s): - if isinstance(s, unicode): + if isinstance(s, str): s = s.encode('utf8') return s @@ -35,9 +35,9 @@ class NotRegexp(Regexp): Like wtforms.validators.Regexp, but rejects data that DOES match the regex. """ def __call__(self, form, field): - if self.regex.match(field.data or u''): + if self.regex.match(field.data or ''): if self.message is None: - self.message = field.gettext(u'Invalid input.') + self.message = field.gettext('Invalid input.') raise ValidationError(self.message) diff --git a/accounts/utils/confirmation.py b/accounts/utils/confirmation.py index 3ae66fe..79ac7dc 100644 --- a/accounts/utils/confirmation.py +++ b/accounts/utils/confirmation.py @@ -20,6 +20,6 @@ class Confirmation(URLSafeTimedSerializer): try: return self.loads(s, max_age, return_timestamp, salt) except BadSignature: - raise Forbidden(u'Ungültiger Bestätigungslink.') + raise Forbidden('Ungültiger Bestätigungslink.') except SignatureExpired: - raise Forbidden(u'Bestätigungslink ist zu alt.') + raise Forbidden('Bestätigungslink ist zu alt.') diff --git a/accounts/utils/console.py b/accounts/utils/console.py index 8ee717f..841a78a 100644 --- a/accounts/utils/console.py +++ b/accounts/utils/console.py @@ -45,7 +45,7 @@ class TablePrinter(object): self.widths = [_column_width(column, width) for column, width - in zip(zip(*rows), self.widths)] + in zip(list(zip(*rows)), self.widths)] self._update_format_string() @@ -68,13 +68,13 @@ class TablePrinter(object): self._print_row(row) def _print_headline(self): - print('%s%s%s' % ( + print(('%s%s%s' % ( self.separator, self.separator.join(['-' * (width + 2) for width in self.widths]), - self.separator)) + self.separator))) def _print_row(self, row): - print(self.format_string % tuple(row)) + print((self.format_string % tuple(row))) class ConsoleForm(object): @@ -86,19 +86,19 @@ class ConsoleForm(object): self._ready = True def _fill(self, data): - for key, value in data.items(): + for key, value in list(data.items()): field = getattr(self.form, key, None) if field is not None: field.data = value def print_errors(self): - for field, errors in self.form.errors.items(): + for field, errors in list(self.form.errors.items()): if len(errors) > 1: - print('%s:' % field) + print(('%s:' % field)) for error in errors: - print(' %s' % error) + print((' %s' % error)) else: - print('%s: %s' % (field, errors[0])) + print(('%s: %s' % (field, errors[0]))) def __getattr__(self, name): return getattr(self.form, name) diff --git a/accounts/utils/login.py b/accounts/utils/login.py index 12e7881..71b4f59 100644 --- a/accounts/utils/login.py +++ b/accounts/utils/login.py @@ -36,7 +36,7 @@ def logout_required(f): @wraps(f) def logout_required_(*args, **kwargs): if current_user.is_authenticated(): - raise Forbidden(u'Diese Seite ist nur für nicht eingeloggte Benutzer gedacht!') + raise Forbidden('Diese Seite ist nur für nicht eingeloggte Benutzer gedacht!') return f(*args, **kwargs) return logout_required_ diff --git a/accounts/utils/sessions.py b/accounts/utils/sessions.py index 8dc8cf3..7b24f8a 100644 --- a/accounts/utils/sessions.py +++ b/accounts/utils/sessions.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import + from Crypto import Random from Crypto.Cipher import AES diff --git a/accounts/views/admin/__init__.py b/accounts/views/admin/__init__.py index df5777d..0d273d2 100644 --- a/accounts/views/admin/__init__.py +++ b/accounts/views/admin/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import + from flask import Blueprint from flask import current_app, redirect, request, g, flash, url_for @@ -19,7 +19,7 @@ def restrict_bp_to_admins(): if not current_user.is_authenticated(): return current_app.login_manager.unauthorized() if current_user.uid not in current_app.config.get('ADMIN_USERS', []): - raise Forbidden(u'Du bist kein Admin.') + raise Forbidden('Du bist kein Admin.') @bp.route('/') @@ -36,7 +36,7 @@ def create_account(): current_app.mail_backend.send(form.mail.data, 'mail/register.txt', username=form.username.data) - flash(u'Mail versandt.', 'success') + flash('Mail versandt.', 'success') return redirect(url_for('admin.index')) return {'form': form} @@ -77,8 +77,8 @@ def disable_account(): current_app.user_backend.update(form.user, as_admin=True) - flash(u'Passwort auf ein zufälliges und Mailadresse auf %s ' - u'gesetzt.' % mail, 'success') + flash('Passwort auf ein zufälliges und Mailadresse auf %s ' + 'gesetzt.' % mail, 'success') current_app.mail_backend.send( current_app.config['MAIL_REGISTER_NOTIFY'], diff --git a/accounts/views/default/__init__.py b/accounts/views/default/__init__.py index e4083f0..a14e113 100644 --- a/accounts/views/default/__init__.py +++ b/accounts/views/default/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import + from copy import deepcopy from flask import Blueprint @@ -28,9 +28,9 @@ def register(): current_app.mail_backend.send(form.mail.data, 'mail/register.txt', username=form.username.data) - flash(u'Es wurde eine E-Mail an die angegebene Adresse geschickt, ' - u'um diese zu überprüfen. Bitte folge den Anweisungen in der ' - u'E-Mail.', 'success') + flash('Es wurde eine E-Mail an die angegebene Adresse geschickt, ' + 'um diese zu überprüfen. Bitte folge den Anweisungen in der ' + 'E-Mail.', 'success') return redirect(url_for('.index')) @@ -50,7 +50,7 @@ def register_complete(token): except current_app.user_backend.NoSuchUserError: pass else: - flash(u'Du hast den Benutzer bereits angelegt! Du kannst dich jetzt einfach einloggen:') + flash('Du hast den Benutzer bereits angelegt! Du kannst dich jetzt einfach einloggen:') return redirect(url_for('.index')) form = RegisterCompleteForm() @@ -64,7 +64,7 @@ def register_complete(token): 'mail/register_notify.txt', username=username, mail=mail) - flash(u'Benutzer erfolgreich angelegt.', 'success') + flash('Benutzer erfolgreich angelegt.', 'success') return redirect(url_for('.index')) return { @@ -86,8 +86,8 @@ def lost_password(): current_app.mail_backend.send( form.user.mail, 'mail/lost_password.txt', username=form.user.uid) - flash(u'Wir haben dir eine E-Mail mit einem Link zum Passwort ändern ' - u'geschickt. Bitte folge den Anweisungen in der E-Mail.', 'success') + flash('Wir haben dir eine E-Mail mit einem Link zum Passwort ändern ' + 'geschickt. Bitte folge den Anweisungen in der E-Mail.', 'success') return redirect(url_for('.index')) @@ -107,7 +107,7 @@ def lost_password_complete(token): current_app.user_backend.update(user, as_admin=True) login_user(user) - flash(u'Passwort geändert.', 'success') + flash('Passwort geändert.', 'success') return redirect(url_for('.index')) return { @@ -138,14 +138,14 @@ def index(): form.mail.data, 'mail/change_mail.txt', username=current_user.uid) - flash(u'Es wurde eine E-Mail an die angegebene Adresse geschickt, ' - u'um diese zu überprüfen. Bitte folge den Anweisungen in der ' - u'E-Mail.', 'success') + flash('Es wurde eine E-Mail an die angegebene Adresse geschickt, ' + 'um diese zu überprüfen. Bitte folge den Anweisungen in der ' + 'E-Mail.', 'success') changed = True if form.password.data: current_user.change_password(form.password.data, form.old_password.data) - flash(u'Passwort geändert', 'success') + flash('Passwort geändert', 'success') changed = True for service in current_app.all_services: @@ -159,7 +159,7 @@ def index(): login_user(current_user) return redirect(url_for('.index')) else: - flash(u'Nichts geändert.') + flash('Nichts geändert.') services = deepcopy(current_app.all_services) @@ -178,17 +178,17 @@ def change_mail(token): username, mail = Confirmation('change_mail').loads_http(token, max_age=3*24*60*60) if current_user.uid != username: - raise Forbidden(u'Bitte logge dich als der Benutzer ein, dessen E-Mail-Adresse du ändern willst.') + raise Forbidden('Bitte logge dich als der Benutzer ein, dessen E-Mail-Adresse du ändern willst.') results = current_app.user_backend.find_by_mail(mail) for user in results: if user.uid != current_user.uid: - raise Forbidden(u'Diese E-Mail-Adresse wird schon von einem anderen account benutzt!') + raise Forbidden('Diese E-Mail-Adresse wird schon von einem anderen account benutzt!') current_user.change_email(mail) current_app.user_backend.update(current_user) - flash(u'E-Mail-Adresse geändert.', 'success') + flash('E-Mail-Adresse geändert.', 'success') return redirect(url_for('.index')) diff --git a/accounts/views/login/__init__.py b/accounts/views/login/__init__.py index 3950cf9..7371f84 100644 --- a/accounts/views/login/__init__.py +++ b/accounts/views/login/__init__.py @@ -1,10 +1,10 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import + from flask import Blueprint from flask import current_app, redirect, request, g, flash, render_template, url_for from flask.ext.login import login_user, logout_user, current_user -from urlparse import urljoin, urlparse +from urllib.parse import urljoin, urlparse from .forms import LoginForm @@ -33,7 +33,7 @@ def login(): user = current_app.user_backend.auth(form.username.data, form.password.data) login_user(user) - flash(u'Erfolgreich eingeloggt', 'success') + flash('Erfolgreich eingeloggt', 'success') next = request.form['next'] if not is_safe_url(next): @@ -41,7 +41,7 @@ def login(): return redirect(next or url_for('default.index')) except (current_app.user_backend.NoSuchUserError, current_app.user_backend.InvalidPasswordError): - flash(u'Ungültiger Benutzername und/oder Passwort', 'error') + flash('Ungültiger Benutzername und/oder Passwort', 'error') return render_template("login/login.html", form=form, next=request.values.get('next')) @@ -50,5 +50,5 @@ def login(): @bp.route('/logout') def logout(): logout_user() - flash(u'Erfolgreich ausgeloggt.', 'success') + flash('Erfolgreich ausgeloggt.', 'success') return redirect(url_for('.login')) diff --git a/accounts/views/login/forms.py b/accounts/views/login/forms.py index a82fa39..2db25b9 100644 --- a/accounts/views/login/forms.py +++ b/accounts/views/login/forms.py @@ -4,5 +4,5 @@ from wtforms import TextField, PasswordField, validators class LoginForm(Form): - username = TextField(u'Benutzername') + username = TextField('Benutzername') password = PasswordField('Passwort', [validators.Required()]) diff --git a/contrib/create_service.py b/contrib/create_service.py index 1da956a..54714df 100755 --- a/contrib/create_service.py +++ b/contrib/create_service.py @@ -21,7 +21,7 @@ from app import app if __name__ == "__main__": if len(sys.argv) < 2: - print("Usage: %s name" % sys.argv[0]) + print(("Usage: %s name" % sys.argv[0])) exit(-1) name = sys.argv[1] @@ -36,7 +36,7 @@ if __name__ == "__main__": try: data = service.connection.search_s(dn, ldap.SCOPE_SUBTREE) - print("'%s' already exists as service." % name) + print(("'%s' already exists as service." % name)) except ldap.NO_SUCH_OBJECT: attr = [ @@ -45,6 +45,6 @@ if __name__ == "__main__": ] service.connection.add_s(dn, attr) - print("Successfully created '%s' as a new service." % name) + print(("Successfully created '%s' as a new service." % name)) service._unbind() diff --git a/contrib/munin/accounts.py b/contrib/munin/accounts.py index 684f278..8ad929f 100755 --- a/contrib/munin/accounts.py +++ b/contrib/munin/accounts.py @@ -20,4 +20,4 @@ if __name__ == "__main__": accounts = service.find() - print('accounts.value %d' % len(accounts)) + print(('accounts.value %d' % len(accounts))) -- cgit v1.2.3-1-g7c22