[Pki-devel] [PATCH 022] Modernize for Python 3 support

Christian Heimes cheimes at redhat.com
Mon Aug 17 06:04:30 UTC 2015


On 2015-08-15 00:36, Endi Sukma Dewata wrote:
> On 8/14/2015 10:03 AM, Christian Heimes wrote:
>> And now with attachment.
>>
>> I also attached a 2nd patch that fixes the one unit test under Python 3.
>>
>> Christian
> 
> Some comments:
> 
> 1. Build works on F22, but fails on F21:
> 
> ************* Module pylint-build-scan
> I: 33, 0: Locally disabling import-error (F0401) (locally-disabled)
> ************* Module pki
> I: 33, 0: Locally disabling redefined-builtin (W0622) (locally-disabled)
> I:127, 0: Locally disabling too-few-public-methods (R0903)
> (locally-disabled)
> I:141, 0: Locally disabling too-few-public-methods (R0903)
> (locally-disabled)
> I:149, 0: Locally disabling invalid-name (C0103) (locally-disabled)
> I:161, 0: Locally disabling invalid-name (C0103) (locally-disabled)
> F: 33, 0: Unable to import 'six.moves' (import-error)
> ************* Module pki.encoder
> I: 36, 0: Locally disabling method-hidden (E0202) (locally-disabled)
> ************* Module pki.profile
> I:1361, 0: Locally disabling broad-except (W0703) (locally-disabled)
> I:1398, 0: Locally disabling broad-except (W0703) (locally-disabled)
> ************* Module pki.key
> I: 34, 0: Locally disabling no-name-in-module (E0611) (locally-disabled)
> I: 36, 0: Locally disabling no-name-in-module (E0611) (locally-disabled)
> I: 43, 0: Locally disabling too-few-public-methods (R0903)
> (locally-disabled)
> I: 54, 0: Locally disabling too-few-public-methods (R0903)
> (locally-disabled)
> I: 66, 0: Locally disabling invalid-name (C0103) (locally-disabled)
> I:118, 0: Locally disabling invalid-name (C0103) (locally-disabled)
> I:150, 0: Locally disabling too-few-public-methods (R0903)
> (locally-disabled)
> I:186, 0: Locally disabling invalid-name (C0103) (locally-disabled)
> I:222, 0: Locally disabling too-few-public-methods (R0903)
> (locally-disabled)
> I:258, 0: Locally disabling invalid-name (C0103) (locally-disabled)
> F: 34, 4: Unable to import 'urllib.parse' (import-error)
> ************* Module pki.upgrade
> I:545, 0: Locally disabling exec-used (W0122) (locally-disabled)
> I:632, 0: Locally disabling broad-except (W0703) (locally-disabled)
> I:699, 0: Locally disabling broad-except (W0703) (locally-disabled)
> ************* Module pki.server.cli.migrate
> I:166, 0: Locally disabling protected-access (W0212) (locally-disabled)
> I:279, 0: Locally disabling protected-access (W0212) (locally-disabled)
> ************* Module pki.server.cli.instance
> I:327, 0: Locally disabling no-member (E1101) (locally-disabled)
> I:327, 0: Locally disabling maybe-no-member (E1103) (locally-disabled)
> I:383, 0: Locally disabling no-member (E1101) (locally-disabled)
> I:383, 0: Locally disabling maybe-no-member (E1103) (locally-disabled)
> I:439, 0: Locally disabling no-member (E1101) (locally-disabled)
> I:439, 0: Locally disabling maybe-no-member (E1103) (locally-disabled)
> ************* Module pki.server.deployment.pkiparser
> I: 36, 0: Locally disabling no-name-in-module (E0611) (locally-disabled)
> I: 38, 0: Locally disabling import-error (F0401) (locally-disabled)
> I: 40, 0: Locally disabling redefined-builtin (W0622) (locally-disabled)
> I:362, 0: Locally disabling no-member (E1101) (locally-disabled)
> I:377, 0: Locally disabling no-member (E1101) (locally-disabled)
> F: 36, 4: Unable to import 'urllib.parse' (import-error)
> F: 40, 0: Unable to import 'six.moves' (import-error)
> F: 41, 0: Unable to import 'six.moves' (import-error)
> ************* Module pki.server.deployment.pkiscriptlet
> I: 36, 0: Locally disabling unused-argument (W0613) (locally-disabled)
> W: 29, 0: Class has no __init__ method (no-init)
> ************* Module pki.server.deployment.pkihelper
> I: 35, 0: Locally disabling no-name-in-module (E0611) (locally-disabled)
> I:1091, 0: Locally disabling broad-except (W0703) (locally-disabled)
> I:2978, 0: Locally disabling broad-except (W0703) (locally-disabled)
> I:2999, 0: Locally disabling broad-except (W0703) (locally-disabled)
> I:3903, 0: Locally disabling no-member (E1101) (locally-disabled)
> ************* Module pki.server.deployment.pkiconfig
> I: 25, 0: Locally disabling redefined-builtin (W0622) (locally-disabled)
> F: 25, 0: Unable to import 'six.moves' (import-error)
> ************* Module pki.server.deployment.scriptlets.security_databases
> W: 31, 0: Class has no __init__ method (no-init)
> ************* Module pki.server.deployment.scriptlets.webapp_deployment
> W: 33, 0: Class has no __init__ method (no-init)
> ************* Module pki.server.deployment.scriptlets.instance_layout
> W: 33, 0: Class has no __init__ method (no-init)
> ************* Module pki.server.deployment.scriptlets.finalization
> W: 32, 0: Class has no __init__ method (no-init)
> ************* Module pki.server.deployment.scriptlets.infrastructure_layout
> W: 32, 0: Class has no __init__ method (no-init)
> ************* Module pki.server.deployment.scriptlets.subsystem_layout
> W: 31, 0: Class has no __init__ method (no-init)
> ************* Module pki.server.deployment.scriptlets.selinux_setup
> W: 36, 0: Class has no __init__ method (no-init)
> ************* Module pki.server.deployment.scriptlets.slot_substitution
> W: 31, 0: Class has no __init__ method (no-init)
> ************* Module pki.server.deployment.scriptlets.initialization
> W: 31, 0: Class has no __init__ method (no-init)
> ************* Module pki.server.deployment.scriptlets.configuration
> W: 34, 0: Class has no __init__ method (no-init)
> I: 83, 0: Locally disabling unused-argument (W0613) (locally-disabled)
> ************* Module pkispawn
> I: 58, 0: Locally disabling unused-argument (W0613) (locally-disabled)
> I:602, 0: Locally disabling broad-except (W0703) (locally-disabled)
> ************* Module pkidestroy
> I: 55, 0: Locally disabling unused-argument (W0613) (locally-disabled)
> ************* Module pki-upgrade
> I: 31, 0: Locally disabling unused-argument (W0613) (locally-disabled)
> ************* Module pki-server-upgrade
> I: 33, 0: Locally disabling unused-argument (W0613) (locally-disabled)
> ************* Module 01-RemoveInaccessableURLsFromServerXML
> I: 34, 0: Locally disabling anomalous-backslash-in-string (W1401)
> (locally-disabled)
> ************* Module 01-AddKraAuditEvents
> I: 48, 0: Locally disabling unused-argument (W0613) (locally-disabled)

Thanks for the tests. Older versions of pylint

I've addressed the six.moves import-error failures in my updated patch.
The no-init warnings seem to be unrelated to my work, though.

> 2. In "Manually fix import problems and access to Exception.message" you
> replaced e.message['desc'] with e.args[0]['desc']. I suppose the code
> works fine, but it's kind of strange that we'd have to use a more
> cryptic code. Are there other alternatives?

No, there is no better way to write it. :( I checked python-ldap's and
pyldap's source code as well as tested a couple of alternative
approaches interactively. The LDAPError exception doesn't have other
means to access the error dict.

In Python 2 Exceception.message is an alternative spelling for
Exception.args[0] if len(args) == 1. The alternative is gone in Python 3.

Christian


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 455 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/pki-devel/attachments/20150817/b0b3f480/attachment.sig>


More information about the Pki-devel mailing list