• Login
Community
  • Login

Python 3 and Python scripts plugin

Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
24 Posts 7 Posters 18.8k Views
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • B
    Bill Winder
    last edited by Feb 12, 2018, 5:38 PM

    I will be pasting French text, with accented characters. After struggling with encoding for some time in 2.7 (writing and reading to Windows in utf-8, reading sometimes from ansi, the locale setting), I finally threw in the towel and moved to 3. The encoding waters are much calmer.

    I can write
    with open(tempHtml,“w”, encoding=“utf8”) as f:
    f.write(message)

    I’m sure something equivalent can be done in 2.7, but 3 handles unicode in a much simpler way. That turns out to be important if you are constantly going from ansi to utf-8 (with or without BOM!).

    In short, like any language, or software version, once you have set up shop there, you don’t want to have to switch, n’est-ce pas? (The looooong reason is here: https://docs.python.org/3/howto/unicode.html )

    Now, no more (or less): ‘ascii’ codec can’t encode character ‘\ua000’ in
    position 0: ordinal not in range(128)

    1 Reply Last reply Reply Quote 0
    • C
      chcg
      last edited by Feb 12, 2018, 5:47 PM

      Latest version of https://sourceforge.net/projects/npppythonscript/files/ is from 2014-09-27 and python 3 was not so popular at that time.

      B 1 Reply Last reply Feb 12, 2018, 6:47 PM Reply Quote 0
      • B
        Bill Winder @chcg
        last edited by Feb 12, 2018, 6:47 PM

        @chcg I wonder whether six would allow pyscript to transition to 3. …I have never used six, so I don’t know what I’m asking! (for the moment, npp is pretty restrictive: a 3 installation won’t allow pyscript to be installed…)

        S 1 Reply Last reply Feb 13, 2018, 1:12 AM Reply Quote 0
        • G
          guy038
          last edited by guy038 Feb 12, 2018, 11:52 PM Feb 12, 2018, 11:52 PM

          Hi, @scott-sumner, and All,

          Here are three links, on that eternal question : Python 2.x or Python 3.x !

          The first one is a very interesting article ! See also the comments. As for the third one, it seems more code-oriented.

          Probably, you are already aware of all that stuff, but who knows ?

          http://python-notes.curiousefficiency.org/en/latest/python3/questions_and_answers.html

          https://wiki.python.org/moin/Python2orPython3

          https://docs.python.org/3/whatsnew/3.0.html

          I wish you good reading !

          Cheers,

          guy038

          1 Reply Last reply Reply Quote 0
          • S
            Scott Sumner @Bill Winder
            last edited by Feb 13, 2018, 1:12 AM

            @Scott-Sumner said:

            I am looking forward to being enlightened

            And I am enlightened…to your need… Yes, this is one area where Python3 is advantageous over Python2. Fortunately, for myself, I don’t encounter the unicode need very often. Back to the why of Python2 for the Pythonscript plugin, I believe that there were some issues with Scintilla interaction which necessitated (at the time) using Python2 byte-strings versus Python3 unicode strings. I’m sure you can read about all the details of the design decisions on the old Pythonscript Soucreforge forums if you’d like…

            1 Reply Last reply Reply Quote 1
            • D
              dail @Bill Winder
              last edited by dail Feb 13, 2018, 5:05 AM Feb 13, 2018, 5:04 AM

              @Bill-Winder said:

              And then it became: What!??? pythonscript can only use 2.7? Why?

              @Scott-Sumner said:

              I’m sure you can read about all the details of the design decisions on the old Pythonscript Soucreforge forums if you’d like…

              Discussion from a few years ago which discusses some of the hurdles switching from v2 to v3: https://sourceforge.net/p/npppythonscript/discussion/1188885/thread/cf066585/

              B 1 Reply Last reply Feb 13, 2018, 6:55 PM Reply Quote 2
              • B
                Bill Winder @dail
                last edited by Feb 13, 2018, 6:55 PM

                @dail Wow! Hairy!

                I do encounter just that problem in my normal use of npp. I can paste in è or ã and it generally works fine. But when I open or paste in certain texts (like phonetic transcription from espeak), I get o~ where I should get õ. Npp interprets some accent encoding as two characters, not one (works fine here):

                la diskysjˈɔ̃ fˈy syspɑ̃dˈy pɑ̃dˈɑ̃ lə ʁˈɔbʁ
                mɛ bjɛ̃tˈoˈandʁuː styˈaʁ la ʁəpʁənˈɛ

                I have found no way to fix it by shifting the encoding. (Jedit does the same thing…, but notepad does not.)

                C 1 Reply Last reply Feb 13, 2018, 7:07 PM Reply Quote 0
                • C
                  Claudia Frank @Bill Winder
                  last edited by Feb 13, 2018, 7:07 PM

                  @Bill-Winder said:

                  la diskysjˈɔ̃ fˈy syspɑ̃dˈy pɑ̃dˈɑ̃ lə ʁˈɔbʁ
                  mɛ bjɛ̃tˈoˈandʁuː styˈaʁ la ʁəpʁənˈɛ

                  make sure that the font you use is capable of displaying needed symbols

                  Cheers
                  Claudia

                  B 1 Reply Last reply Feb 14, 2018, 12:31 AM Reply Quote 3
                  • B
                    Bill Winder @Claudia Frank
                    last edited by Feb 14, 2018, 12:31 AM

                    @Claudia-Frank Thanks Claudia! – that fixed it, the moment I checked “enable global font”.

                    Thanks! (It’s been bugging me…for a long time…)

                    1 Reply Last reply Reply Quote 1
                    • V
                      Vitaliy Dovgan
                      last edited by Feb 17, 2018, 9:48 AM

                      Here is one of possible ways to get the text from an unsaved file tab in NppExec to allow further processing of the text:

                      // temporary file name
                      set local tmpfile = $(SYS.TEMP)\text.txt
                      // current selection
                      sci_sendmsg SCI_GETSELECTIONSTART
                      set local selStart = $(MSG_RESULT)
                      sci_sendmsg SCI_GETSELECTIONEND
                      set local selEnd = $(MSG_RESULT)
                      // select all the text and save it
                      sci_sendmsg SCI_SELECTALL
                      sel_saveto "$(tmpfile)"
                      // restore the selection
                      sci_sendmsg SCI_SETSELECTIONSTART $(selStart)
                      sci_sendmsg SCI_SETSELECTIONEND $(selEnd)
                      // now it's time to process the tmpfile...
                      
                      1 Reply Last reply Reply Quote 1
                      • V
                        Vitaliy Dovgan
                        last edited by Feb 17, 2018, 10:04 AM

                        Here is more “advanced” version that avoids visible selection change:

                        // temporary file name
                        set local tmpfile = $(SYS.TEMP)\text.txt
                        // disable redrawing
                        sci_sendmsg 0x000B 0 // WM_SETREDRAW FALSE
                        // current selection
                        sci_sendmsg SCI_GETSELECTIONSTART
                        set local selStart = $(MSG_RESULT)
                        sci_sendmsg SCI_GETSELECTIONEND
                        set local selEnd = $(MSG_RESULT)
                        // select all the text and save it
                        sci_sendmsg SCI_SELECTALL
                        sel_saveto "$(tmpfile)"
                        // restore the selection
                        sci_sendmsg SCI_SETSELECTIONSTART $(selStart)
                        sci_sendmsg SCI_SETSELECTIONEND $(selEnd)
                        // enable redrawing
                        sci_sendmsg 0x000B 1 // WM_SETREDRAW TRUE
                        // now it's time to process the tmpfile...
                        
                        1 Reply Last reply Reply Quote 1
                        • V
                          Vitaliy Dovgan
                          last edited by Feb 17, 2018, 4:28 PM

                          NppExec v0.6 beta 1 will introduce new command TEXT_SAVETO and TEXT_LOADFROM that will work with the whole current text. Apart from that, these commands will be similar to SEL_SAVETO and SEL_LOADFROM.

                          B 1 Reply Last reply Feb 19, 2018, 8:52 PM Reply Quote 1
                          • G
                            guy038
                            last edited by guy038 Feb 19, 2018, 7:21 PM Feb 18, 2018, 10:08 PM

                            Hello, @bill-winder, and All,

                            I’m quite late, but I had have to update my list of fonts and to do some tests, in Notepad++, first ;-))

                            So, Bill, here is below, a list of Unicode fonts which can, correctly, display your text example :

                            la diskysjˈɔ̃ fˈy syspɑ̃dˈy pɑ̃dˈɑ̃ lə ʁˈɔbʁ
                            mɛ bjɛ̃tˈoˈandʁuː styˈaʁ la ʁəpʁənˈɛ

                            • The first table concerns Monospaced fonts, where all characters have the same width

                            • The second table concerns Proportional fonts, with variable width


                            Notes :

                            • The Unicode number of code-points, handled by the font, is located in the Glyphs column

                            • The different fonts are sorted out by increasing number of their glyphs

                            • The default regular weight, only, of each font, is listed. The other weights ( Bold, Italic… ) are absent of the tables, below

                            • The Lucida Sans Unicode is certainly already installed on your configuation ( v5.00 or higher )

                            • The Segoe UI family font is probably installed, too ( v5.28 or higher )

                            • For the Ioveska and Ioveska Slab fonts, read very carefully the README.md part, scrolling downwards, because these fonts are highly configurable ! Refer to :

                            https://github.com/be5invis/Iosevka

                            • You may also consult this valuable article, Large, multi-script Unicode fonts for Windows computers, at :

                            http://www.alanwood.net/unicode/fonts.html


                            •------------------------•------------•--------•-----------------------------------------------------------------------------------•
                            |  MONOSPACED Font Name  |   Version  | Glyphs |                                Web Site Link                                      |
                            •------------------------•------------•--------•-----------------------------------------------------------------------------------•
                            | Linux Libertine Mono   |   v5.17    |  1,021 | http://www.linuxlibertine.org                                                     |
                            | SourceCodePro          |   v2.030   |  1,585 | https://github.com/adobe-fonts/source-code-pro/releases/tag/2.030R-ro%2F1.050R-it |
                            | DejaVu Sans Mono       |   v2.37    |  3,377 | https://dejavu-fonts.github.io/Download.html                                      |
                            |                        |            |        |                                                                                   |
                            | Iosevka                |   v1.14.0  |  3,654 | https://github.com/be5invis/Iosevka/releases                                      |
                            | Iosevka Slab           |   v1.14.0  |  3,654 | https://github.com/be5invis/Iosevka/releases                                      |
                            |                        |            |        |                                                                                   |
                            | FreeMono               | v0412.2268 |  4,177 | http://ftp.gnu.org/gnu/freefont/freefont-ttf-20120503.zip                         |
                            •------------------------•------------•--------•-----------------------------------------------------------------------------------•
                            
                            •------------------------•------------•--------•-----------------------------------------------------------------------------------•
                            | PROPORTIONAL Font Name |   Version  | Glyphs |                                Web Site Link                                      |
                            •------------------------•------------•--------•-----------------------------------------------------------------------------------•
                            | Lucida Sans Unicode    |   v2.00    |  1,776 | https://fr.ffonts.net/Lucida-Sans-Unicode.font.zip                                |
                            | Lucida Sans Unicode    |   v5.00    |  1,779 | Usually installed in Windows 8 and higher                                         |
                            |                        |            |        |                                                                                   |
                            | Linux Biolinum         |   v1.1.8   |  2,403 | http://www.linuxlibertine.org                                                     |
                            | Linux Libertine        |   v5.3.0   |  2,676 | http://www.linuxlibertine.org                                                     |
                            |                        |            |        |                                                                                   |
                            | SegoeUI                |   v5.05    |  2,901 | https://github.com/KingRider/frontcom/tree/master/css/fonts                       |
                            | SegoeUI                |   v5.28    |  4,516 | Usually installed in Windows 8 and higher                                         |
                            |                        |            |        |                                                                                   |
                            | Junicode               |   v0.78    |  3,286 | http://sourceforge.net/projects/junicode                                          |
                            |                        |            |        |                                                                                   |
                            | DejaVuSerif            |   v2.37    |  3,528 | https://dejavu-fonts.github.io/Download.html                                      |
                            | DejaVuSans             |   v2.37    |  6,253 | https://dejavu-fonts.github.io/Download.html                                      |
                            |                        |            |        |                                                                                   |
                            | FreeIdgSerif           |   v1.52    |  6,256 | https://en.m.fontke.com/font/10352047/download/                                   |
                            |                        |            |        |                                                                                   |
                            | FreeSans               | v0412.2268 |  6,272 | http://ftp.gnu.org/gnu/freefont/freefont-ttf-20120503.zip                         |
                            | FreeSerif              | v0412.2263 | 10,538 | http://ftp.gnu.org/gnu/freefont/freefont-ttf-20120503.zip                         |
                            |                        |            |        |                                                                                   |
                            | Quivira                |   v4.1     | 10,486 | http://www.quivira-font.com                                                       |
                            |                        |            |        |                                                                                   |
                            | Arial Unicode MS       |   v1.01    | 50,377 | https://www.wfonts.com/font/arial-unicode-ms                                      |
                            |                        |            |        |                                                                                   |
                            | Code 2000              |   v1.171   | 63,546 | http://www.fontspace.com/james-kass/code2000                                      |
                            •------------------------•------------•--------•-----------------------------------------------------------------------------------•
                            

                            Best Regards,

                            guy038

                            B 1 Reply Last reply Feb 19, 2018, 9:36 PM Reply Quote 0
                            • B
                              Bill Winder @Vitaliy Dovgan
                              last edited by Feb 19, 2018, 8:52 PM

                              @Vitaliy-Dovgan Thanks! Good work around. There must be somewhere direct access to an unsaved tab, because I can close npp with an unsaved tab and when I reopen, it is there. So the unsaved tab is actually saved somewhere. Curious!

                              S 1 Reply Last reply Feb 19, 2018, 9:01 PM Reply Quote 0
                              • S
                                Scott Sumner @Bill Winder
                                last edited by Feb 19, 2018, 9:01 PM

                                @Bill-Winder said:

                                So the unsaved tab is actually saved somewhere.

                                Yes, saved under a “Backup” folder by default. I just made 5 “new files” and they were created in this folder with the following names:

                                new 1@2018-02-19_155611
                                new 2@2018-02-19_155613
                                new 3@2018-02-19_155613
                                new 4@2018-02-19_155615
                                new 5@2018-02-19_155618
                                
                                B 1 Reply Last reply Feb 20, 2018, 10:11 PM Reply Quote 0
                                • B
                                  Bill Winder @guy038
                                  last edited by Feb 19, 2018, 9:36 PM

                                  @guy038 Very cool! I just chose fonts at random until things looked right. Useful description, which will serve elsewhere also – same issue in Jedit. (Though I use Jedit less and less - npp has everything I need and is very fast.)

                                  1 Reply Last reply Reply Quote 0
                                  • B
                                    Bill Winder @Scott Sumner
                                    last edited by Feb 20, 2018, 10:11 PM

                                    @Scott-Sumner and they are numbered! Perfect. Which essentially solves my problem.

                                    I hope! There is one further step. I will have to capture the name of the active tab and give it to NPPEXec.

                                    But that should be possible through the sci_sendmessage function (will look into that), since this is possible:

                                    sci_sendmsg SCI_GETSELECTIONSTART
                                    set local selStart = $(MSG_RESULT)

                                    1 Reply Last reply Reply Quote 0
                                    17 out of 24
                                    • First post
                                      17/24
                                      Last post
                                    The Community of users of the Notepad++ text editor.
                                    Powered by NodeBB | Contributors