[sword-devel] Grep or Sed Command to Automate OSIS References?

Cyrille lafricain79 at gmail.com
Tue Feb 4 14:27:14 MST 2020



Le 04/02/2020 à 16:25, Greg Hellings a écrit :
> No, that's this project: https://pypi.org/project/pysword/
>
> It attempts to be compatible with reading Sword files, but it wouldn't
> have all the same bindings and features of the whole engine.
>
Ok I just wrote to Roberto Sanchez, he is the debian package manager for
Sword.
> --Greg
>
> On Tue, Feb 4, 2020, 15:23 Cyrille <lafricain79 at gmail.com
> <mailto:lafricain79 at gmail.com>> wrote:
>
>
>
>     Le 04/02/2020 à 13:21, Greg Hellings a écrit :
>>
>>
>>     On Tue, Feb 4, 2020 at 12:05 PM Cyrille <lafricain79 at gmail.com
>>     <mailto:lafricain79 at gmail.com>> wrote:
>>
>>
>>
>>         Le 04/02/2020 à 13:01, Greg Hellings a écrit :
>>>
>>>
>>>         On Tue, Feb 4, 2020 at 11:52 AM Cyrille
>>>         <lafricain79 at gmail.com <mailto:lafricain79 at gmail.com>> wrote:
>>>
>>>             Hello Greg,
>>>             Can you give more information about this python library
>>>             please. It's interesting. How to use it?
>>>
>>>
>>>         The Python library is a binding of the C++ library that is
>>>         auto-generated with Swig. So its API is almost the exact
>>>         same as the C++ library, with a tiny number of additional
>>>         bits to smooth the way into the Python world. In general, if
>>>         it happens in the C++ code, you can rely on the same
>>>         classes, objects, and methods to exist in the Python
>>>         bindings. Even most of the operator definitions are
>>>         maintained, although not all of them are possible as you are
>>>         more limited in how you express those in Python.
>>>
>>>         As I'm not an expert on the C++ API, any particular details
>>>         you will need to ask those more knowledgeable about. But you
>>>         should be able to scan any C or C++ Sword code and directly
>>>         translate the calls into Python.
>>
>>         This is Chinese for me 😜 I'm sorry! I would like to knwo how
>>         to use this script. I had a look for some package related to
>>         sword and python. But I couldn't find anything in Debian/Ubuntu.
>>
>>
>>     Oh! I thought you were asking how to use the Sword Python module
>>     as a whole. My apologies.
>>
>>     If Debian doesn't ship the Sword Python bindings, you should open
>>     a bug with the distro against the Sword package and ask them to
>>     add it. If you point them to my repo from Fedora, they should
>>     have all they need to get it working. I'd be very surprised if
>>     the maintainers (I don't know who does that these days) don't
>>     lurk this mailing list, though, so maybe they'll see this thread
>>     themselves. After that, just download the script I linked, put it
>>     on your system, and call it like you would any other program. It
>>     should "just work" if you have the Sword bindings installed.
>     Is this package https://packages.debian.org/sid/python3-pysword
>     the good one. I found inside the deb this python scripts, but I
>     don't know how to use it:
>     bible.py  canon-parser.py  cleaner.py   modules.py   sapphire.py
>     books.py  canons.py        __init__.py  __pycache__  utils.py
>
>>
>>     --Greg
>>
>>>
>>>             Is the library in the linux repo?
>>>
>>>
>>>         That is going to be distro dependent. I maintain it in
>>>         Fedora 31 as "python3-sword" (and previous as python2-sword
>>>         and python-sword before that). I believe it's also in the
>>>         EPEL7 repository for CentOS/RHEL 7 users. It might be in
>>>         EPEL8, if that's your thing, as well, but if not let me know
>>>         and I'll make the branch for that.
>>>
>>>         Other distros, you'll have to check. As long as your distro
>>>         includes Python 2 or 3 build headers and the Swig tool (most
>>>         of them do), then building it shouldn't be difficult. My
>>>         build tree for Fedora is here:
>>>         https://src.fedoraproject.org/rpms/sword/tree/master. To
>>>         build the same either use SVN HEAD, or use my two
>>>         swig-related patches in that tree, and add the appropriate
>>>         options to your CMake invocation (they can be found in the
>>>         sword.spec file but amount to -DSWORD_PYTHON_3:BOOL=TRUE to
>>>         build the Python 3 version).
>>>
>>>         --Greg
>>>
>>>
>>>             Le 04/02/2020 à 12:41, Greg Hellings a écrit :
>>>>             Maxwell,
>>>>
>>>>             If you install the Python bindings to the Sword
>>>>             library, you can use the library's extensive parsing
>>>>             information as well as its knowledge of locales. A very
>>>>             simple Python script[0] will iterate all lines of input
>>>>             (you can give it a list of file arguments, you can pipe
>>>>             the output of a different program to it, you can write
>>>>             the lines in manually from stdin) and parse them. Doing
>>>>             exactly this work was impetus to get the bindings fixed
>>>>             up and compiling again some years back when converting
>>>>             references by external means was awfully slow for
>>>>             another member of this list. Using the bindings like
>>>>             this became nearly fool-proof and brought down the
>>>>             amount of time required to execute from unbearably long
>>>>             periods to under a second.
>>>>
>>>>             --Greg
>>>>
>>>>             [0]
>>>>             https://gist.github.com/greg-hellings/0de55fc3e07d5014f005efc12ffbdffa
>>>>
>>>>             On Tue, Feb 4, 2020 at 11:28 AM Maxwell Murunga
>>>>             <maxmmur at gmail.com <mailto:maxmmur at gmail.com>> wrote:
>>>>
>>>>                 Thank you Dominique; Thanks Cyrille; Thanks Greg.
>>>>
>>>>                  
>>>>
>>>>                 # “Additional” steps to get the awk script 
>>>>
>>>>                 # working fine on macOS as it does on Linux
>>>>
>>>>                 $ brew install gawk
>>>>
>>>>                  
>>>>
>>>>                 # If Terminal Throws Error
>>>>
>>>>                 $ brew unlink awk
>>>>
>>>>                 $ brew link --overwrite gawk
>>>>
>>>>                  
>>>>
>>>>                 # Confirm all went well!
>>>>
>>>>                 $ gawk --version
>>>>
>>>>                  
>>>>
>>>>                 # Now proceed as normal
>>>>
>>>>                 # Make the executable
>>>>
>>>>                 $ chmod +x Ref2Osis.sh
>>>>
>>>>                  
>>>>
>>>>                 # Thereafter, run it
>>>>
>>>>                 $ ./Ref2Osis.sh
>>>>
>>>>
>>>>                 Works Perfect. 
>>>>
>>>>
>>>>                 Blessed [be] the LORD God of Israel from
>>>>                 everlasting, and to everlasting. Amen, and Amen. 
>>>>
>>>>                  
>>>>
>>>>                 ~~Shalom.
>>>>
>>>>
>>>>                 On Sun, Feb 2, 2020 at 3:39 AM Cyrille
>>>>                 <lafricain79 at gmail.com
>>>>                 <mailto:lafricain79 at gmail.com>> wrote:
>>>>
>>>>                     What are you doing exactly? If you try to
>>>>                     convert the ref to osisRef Dominique wrote an
>>>>                     awk script which works pretty good.
>>>>                     See the attached file.
>>>>
>>>>                     Le 01/02/2020 à 18:06, Maxwell Murunga a écrit :
>>>>>                     Greetings Saints,
>>>>>
>>>>>                     I'm processing an OSIS Commentary in InDesign
>>>>>                     using GREP:
>>>>>
>>>>>                     *Find: *((\d+ )?(\w+?.? \d+[:]\d+)(.\d+)?([,
>>>>>                     \d]+(.\d+)?)*)
>>>>>                     *Replace:* <reference osisRef="$1">$1</reference>
>>>>>
>>>>>                     It partially accomplishes the task, but does
>>>>>                     not automatically convert the book names to
>>>>>                     the standard OSIS abbreviations. I also need
>>>>>                     help in figuring out how to add looking for
>>>>>                     Arabic and Roman numerals (1-2 instances of
>>>>>                     the letter "I"; or simply "1" or "2" ) to
>>>>>                     cover instances of something like I
>>>>>                     Corinthians or II Corinthians; 1 Corinthians
>>>>>                     or 2 Corinthians.
>>>>>
>>>>>                     Could anyone be so kind enough as to provide a
>>>>>                     *grep* or *sed* script to auto convert any
>>>>>                     kind of Bible reference into this format:
>>>>>
>>>>>                     <reference osisRef="Gen.1.1">Genesis
>>>>>                     1:1</reference>
>>>>>                     <reference osisRef="2Chr.1.1">2 Chronicles 1:1</reference>
>>>>>                     <reference osisRef="2Chr.1.1">II
>>>>>                     Chronicles 1:1</reference>
>>>>>
>>>>>                     In Christ Alone,
>>>>>
>>>>>                     Maxwell.
>>>>>
>>>>>                     _______________________________________________
>>>>>                     sword-devel mailing list: sword-devel at crosswire.org <mailto:sword-devel at crosswire.org>
>>>>>                     http://www.crosswire.org/mailman/listinfo/sword-devel
>>>>>                     Instructions to unsubscribe/change your settings at above page
>>>>
>>>>                 _______________________________________________
>>>>                 sword-devel mailing list: sword-devel at crosswire.org
>>>>                 <mailto:sword-devel at crosswire.org>
>>>>                 http://www.crosswire.org/mailman/listinfo/sword-devel
>>>>                 Instructions to unsubscribe/change your settings at
>>>>                 above page
>>>>
>>>
>>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.crosswire.org/pipermail/sword-devel/attachments/20200204/d8c7e934/attachment-0001.html>


More information about the sword-devel mailing list