version.py
author Andrey Skvortsov <andrej.skvortzov@gmail.com>
Wed, 13 Mar 2019 11:47:03 +0300
changeset 2537 eb4a4cc41914
parent 2515 6551a73702a3
child 3570 eb915a9fdcb0
permissions -rw-r--r--
Fix various pylint and pep8 errors

Check basic code-style problems for PEP-8
pep8 version: 2.4.0
./connectors/PYRO/__init__.py:57:43: E261 at least two spaces before inline comment
./connectors/SchemeEditor.py:29:21: E128 continuation line under-indented for visual indent
./controls/IDBrowser.py:101:23: E127 continuation line over-indented for visual indent
./controls/IDBrowser.py:102:23: E127 continuation line over-indented for visual indent

Check for problems using pylint ...
No config file found, using default configuration
pylint 1.9.4,
astroid 1.6.5
Python 2.7.16rc1 (default, Feb 18 2019, 11:05:09)
[GCC 8.2.0]
Use multiple threads for pylint
Using config file /home/developer/WorkData/PLC/beremiz/beremiz/.pylint
************* Module connectors.PYRO_dialog
connectors/PYRO_dialog.py:9: [W0611(unused-import), ] Unused import wx
************* Module connectors
connectors/__init__.py:32: [W1652(deprecated-types-field), ] Accessing a deprecated fields on the types module
connectors/__init__.py:32: [C0411(wrong-import-order), ] standard import "from types import ClassType" should be placed before "from connectors.ConnectorBase import ConnectorBase"
************* Module connectors.PYRO.PSK_Adapter
connectors/PYRO/PSK_Adapter.py:7: [C0411(wrong-import-order), ] standard import "import ssl" should be placed before "import sslpsk"
************* Module connectors.SchemeEditor
connectors/SchemeEditor.py:29: [C0330(bad-continuation), ] Wrong continued indentation (add 1 space).
wx.ALIGN_CENTER_VERTICAL),
^|
connectors/SchemeEditor.py:42: [W0631(undefined-loop-variable), SchemeEditor.__init__] Using possibly undefined loop variable 'tag'
************* Module runtime.WampClient
runtime/WampClient.py:138: [W1612(unicode-builtin), WampSession.onJoin] unicode built-in referenced
runtime/WampClient.py:154: [W1612(unicode-builtin), WampSession.publishWithOwnID] unicode built-in referenced
runtime/WampClient.py:346: [W1612(unicode-builtin), PublishEvent] unicode built-in referenced
runtime/WampClient.py:351: [W1612(unicode-builtin), PublishEventWithOwnID] unicode built-in referenced
runtime/WampClient.py:31: [W0611(unused-import), ] Unused str imported from builtins as text
************* Module runtime.PLCObject
runtime/PLCObject.py:35: [W1648(bad-python3-import), ] Module moved in Python 3
runtime/PLCObject.py:35: [C0411(wrong-import-order), ] standard import "import md5" should be placed before "from six.moves import xrange"
runtime/PLCObject.py:36: [C0411(wrong-import-order), ] standard import "from tempfile import mkstemp" should be placed before "from six.moves import xrange"
runtime/PLCObject.py:37: [C0411(wrong-import-order), ] standard import "import shutil" should be placed before "from six.moves import xrange"
runtime/PLCObject.py:38: [C0411(wrong-import-order), ] standard import "from functools import wraps, partial" should be placed before "from six.moves import xrange"
************* Module runtime.Worker
runtime/Worker.py:12: [W1648(bad-python3-import), ] Module moved in Python 3
************* Module runtime.spawn_subprocess
runtime/spawn_subprocess.py:125: [C0325(superfluous-parens), ] Unnecessary parens after 'print' keyword
runtime/spawn_subprocess.py:130: [C0325(superfluous-parens), ] Unnecessary parens after 'print' keyword
runtime/spawn_subprocess.py:125: [E1601(print-statement), ] print statement used
runtime/spawn_subprocess.py:130: [E1601(print-statement), ] print statement used
************* Module controls.IDBrowser
controls/IDBrowser.py:101: [C0330(bad-continuation), ] Wrong continued indentation (remove 5 spaces).
if self.isManager
| ^
controls/IDBrowser.py:102: [C0330(bad-continuation), ] Wrong continued indentation (remove 5 spaces).
else dv.DATAVIEW_CELL_INERT),
| ^
************* Module Beremiz_service
Beremiz_service.py:34: [W0611(unused-import), ] Unused import __builtin__
#!/usr/bin/env python
# -*- coding: utf-8 -*-

# This file is part of Beremiz, a Integrated Development Environment for
# programming IEC 61131-3 automates supporting plcopen standard and CanFestival.
#
# Copyright (C) 2016: Andrey Skvortsov
#
# See COPYING file for copyrights details.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.


from __future__ import absolute_import
from __future__ import unicode_literals

import subprocess
import os

import util.paths as paths


def GetCommunityHelpMsg():
    return _(
        "The best place to ask questions about Beremiz/PLCOpenEditor\n"
        "is project's mailing list: beremiz-devel@lists.sourceforge.net\n"
        "\n"
        "This is the main community support channel.\n"
        "For posting it is required to be subscribed to the mailing list.\n"
        "\n"
        "You can subscribe to the list here:\n"
        "https://lists.sourceforge.net/lists/listinfo/beremiz-devel"
    )


def GetAppRevision():
    rev = None
    app_dir = paths.AbsDir(__file__)
    try:
        pipe = subprocess.Popen(
            ["hg", "id", "-i"],
            stdout=subprocess.PIPE,
            cwd=app_dir
        )
        rev = pipe.communicate()[0]
        if pipe.returncode != 0:
            rev = None
    except Exception:
        pass

    # if this is not mercurial repository
    # try to read revision from file
    if rev is None:
        try:
            f = open(os.path.join(app_dir, "revision"))
            rev = f.readline()
        except Exception:
            pass
    return rev


def GetAboutDialogInfo():
    import wx
    info = wx.AboutDialogInfo()

    info.Name = "Beremiz"
    info.Version = app_version

    info.Copyright = ""
    info.Copyright += "(C) 2016-2018 Andrey Skvortsov\n"
    info.Copyright += "(C) 2008-2018 Eduard Tisserant\n"
    info.Copyright += "(C) 2008-2015 Laurent Bessard"

    info.WebSite = ("http://beremiz.org", "beremiz.org")

    info.Description = _("Open Source framework for automation, "
                         "implemented IEC 61131 IDE with constantly growing set of extensions "
                         "and flexible PLC runtime.")

    info.Developers = (
        "Andrey Skvortsov <andrej.skvortzov@gmail.com>",
        "Sergey Surkov <surkov.sv@summatechnology.ru>",
        "Edouard Tisserant <edouard.tisserant@gmail.com>",
        "Laurent Bessard <laurent.bessard@gmail.com>")

    info.License = (
        '\n This program is free software; you can redistribute it and/or\n'
        ' modify it under the terms of the GNU General Public License\n'
        ' as published by the Free Software Foundation; either version 2\n'
        ' of the License, or (at your option) any later version.\n'
        '\n'
        ' This program is distributed in the hope that it will be useful,\n'
        ' but WITHOUT ANY WARRANTY; without even the implied warranty of\n'
        ' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n'
        ' GNU General Public License below for more details.\n'
        '\n'
        '\n'
        '\n'
        ''
    )

    # read license file
    path = paths.AbsDir(__file__)
    license_path = os.path.join(path, "COPYING")
    if os.path.exists(license_path):
        with open(license_path) as f:
            info.License += f.read()

    info.Icon = wx.Icon(os.path.join(path, "images", "about_brz_logo.png"), wx.BITMAP_TYPE_PNG)

    info.Translators = (
        "Basque",
        "José Miguel Andonegi <jm.andonegi@gmail.com>, 2019",
        "",

        "Bengali (Bangladesh)",
        "  Adhir Dutta <likhon52@gmail.com>, 2017",
        "",

        "Chinese",
        "  Frank Guan <gpfrank@163.com>, 2018",
        "  Tango Wu <wuyangtang@live.com>, 2017",
        "  Yiwei Yan <523136664@qq.com>, 2018",
        "  Ji Wang <2485567515@qq.com>, 2019",
        "  珂 曾 <15627997@qq.com>, 2019",
        "",

        "Dutch (Netherlands)",
        "  Martijn Berntsen <mxberntsen@gmail.com>, 2019",
        "  Jordy van der Heijden <jordyvanderheijden@gmail.com>, 2018",
        "",

        "French",
        "  Edouard Tisserant <edouard.tisserant@gmail.com>, 2018",
        "  Fabien Marteau <mail@fabienm.eu>, 2017",
        "  Laurent Bessard <laurent.bessard@gmail.com>, 2008",
        "",

        "German",
        "  Andrey Skvortsov <andrej.skvortzov@gmail.com>, 2017",
        "  Hendrik Knackstedt <h.knackstedt@stud.uni-hannover.de>, 2017 ",
        "  Mark Muzenhardt <mark.muzenhardt@gmail.com>, 2012",
        "",

        "Hungarian",
        "  Krisztián Veress <krive001@gmail.com>, 2018",
        "  Gábor Véninger <veninger.gabor@gmail.com>, 2017",
        "",

        "Italian",
        "  Luca Magnabosco <magnabosco.luca@gmail.com>, 2017",
        "  Manuele Conti <manuele.conti@sirius-es.it>, 2017",
        "",

        "Korean",
        "  Ikhwan Kim <duo821228@gmail.com>, 2018",
        "  Reinhard Lee <lij3105@gmail.com>, 2012",
        "",

        "Polish",
        "  Adam B <adisz.pl@gmail.com>, 2019",
        "",

        "Portuguese",
        "  Pedro Coimbra <pcoimbra310@gmail.com>, 2017",
        "",

        "Portuguese (Brazil)",
        "  Rodrigo Rolle <ro_pita@hotmail.com>, 2018",
        "  Thiago Alves <thiagoralves@gmail.com>, 2017",
        "",

        "Romanian",
        "  Emil Saracutu <emil_saracutu@yahoo.com>, 2018",
        "",

        "Russian",
        "  Andrey Skvortsov <andrej.skvortzov@gmail.com>, 2018",
        "  Sergey Surkov <surkov.sv@summatechnology.ru>, 2018",
        "  zx_alexis <zxalexis@gmail.com>, 2017",
        "",

        "Slovenian",
        "  Janez Pregelj <janezpregelj@gmail.com>, 2018",
        "  Andraz Gregorcic <andraz.gregorcic@smarteh.si>, 2017",
        "",

        "Spanish",
        "  Carlos Guilarte <guilartec@gmail.com>, 2018",
        "  Yegor Yefremov <yegorslists@googlemail.com>, 2018",
        "  Jorge Rojas, 2018",
        "  Marcial González de Armas <mgacod@gmail.com>, 2017",
        "  Nelson Mambre <nmambre@gmail.com>, 2017",
        "",

        "Turkish",
        "  Ibrahim Kilicarslan <ibrahimhalilkilicarslan@outlook.com>, 2018",
        "",

        "Vietnamese (Viet Nam)",
        "  Nhất Thìn, 2019",
        "",


    )
    return info


app_version = "1.2"
rev = GetAppRevision()
if rev is not None:
    app_version = app_version + "-" + rev.rstrip()