Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issues and Ideas #1295

Open
3 of 17 tasks
uba-user92 opened this issue Jan 16, 2023 · 12 comments
Open
3 of 17 tasks

Issues and Ideas #1295

uba-user92 opened this issue Jan 16, 2023 · 12 comments
Assignees
Labels
bug Something isn't working enhancement New feature or request

Comments

@uba-user92
Copy link

uba-user92 commented Jan 16, 2023

I am a single user, and this is an amalgamation of the issues I've encountered and ideas for improvement I've had over the course of using your project these past few days.

I'd first, however, like to start, thanking you for the great work on this project. Your efforts are beyond compare, and invaluable. This is the most comprehensive, well arranged, and capable bible studying tool I've ever encountered and I've tried several (xiphos, bibletime, ezra). The open availability of this project is another thing I value highly as I do believe such tools should be at people's fingertips and not hidden behind a cumbersome price. That is not to say it is unreasonable to charge for your efforts, but that I've seen some tools cost nearly $1kUSD and that is simply far from affordable for too many people.

I will also note that I use this project under FreeBSD.

All issues/improvements will have a check mark "ToDo list item" for them.

Issues:

Important:

  • Recent commit with a focus towards Qt6 makes the project unusable under Qt5. I've fixed it with the below git diff:
diff --git a/util/ShortcutUtil.py b/util/ShortcutUtil.py
index 0538634f3..c58abf7e1 100644
--- a/util/ShortcutUtil.py
+++ b/util/ShortcutUtil.py
@@ -3,7 +3,10 @@ import pprint
 import sys
 import config
 from os import path
-from PySide6.QtCore import Qt
+if config.qtLibrary == "pyside6":
+    from PySide6.QtCore import Qt
+else:
+    from qtpy.QtCore import Qt
 
 
 # Defined sets of shortcuts:

I believe it important to keep Qt5 operable as I think Qt6 webkit/webengine is not yet ready across all platforms but could be entirely wrong regarding the thought as to Qt6 though I would retain that I'm correct in thinking keeping it operable with Qt5 important.

  • In the event that pip cannot install a certain object, using the system libraries could be preferred.
    This is of importance under FreeBSD as it insists continuously PySide* and PyQt* are unavailable, yet I've installed them as system libraries. The way around this is to run python main.py.

  • Lemmatizer does not work under FreeBSD
    The underlying C++ lib doesn't compile appropriately and I've not yet investigated this with any depth sadly.
    Note: dbernhard-0x7CD/lemmagen3 builds correctly.

  • In commentary, when you have a verse reference like Book Chapter:Verse-Verse it shows in the bottom preview panel, but if you have one like Book Chapter:Verse-Verse; Chapter:Verse-Verse then as with the prior, the first verse set shows in it's entirety, but the second only shows the first, where both "locators" point to the same book.

Noted issues that have unassigned importance:

  • Display of multiple versions in parallel can be very slow at times, and in addition the study tools (Cross references, TSK, Smart Index, etc) are slow as well.
    These things can be quite useful but the response time being so slow can slow one's study. Tested under a Ryzen 5 2600 with 96GB of RAM.

Bible Issues (some are opinions):

Something to note in general, I'll be referring to LEB and WEB versions provided by this project as Formatted Bibles quite a bit. I will also note that these are available as bbl.mybible files that when converted provide better (in the case of WEB) or somewhat better (in the case of LEB) renditions of the text in a few areas.

  • Provided formatted bibles lack red lettering. (WEB, KJV)
    Converted WEB has proper red lettering!
  • Notes (footnotes, or otherwise) display inline in provided formatted bibles.
    I'd note that if one converts from the bbl.mybible files, they get the footnote marker which is more appropriate. In the WEB version this issue is especially egregious as it interrupts the flow of the bible's text completely. I can provide screenshots if wanted.
  • Notes when doing contrasts (the clickable kind had with the aforementioned conversions) show inline instead of as footnotes (this may effect parallel, verse by verse, columnar, or other views).
  • The provided WEB version is outdated
    Simply go to the site and look at the text for John 3:16 or use Xiphos with a recently updated WEB module, or so forth, and you'll see a difference between the latest WEB rendition and the one provided by this project.
  • If a verse has multiple notes, there can be 2 issues:
    • In parallel views (columnar, verse by verse, reading, etc) the notes (all of them) show a "not found"!
    • Only the first note counts! This means if a verse has 2 footnotes (clickable indicators) and one of them says "Footnote A" (the first one) and the other says "Footnote B", the second one will display the same text as the first!

Opinionated Bible issues (these are certainly opinions):

  • Strong numbers should display as a super or subscript or directly above/underneath in a way that doesn't interrupt the flow of the text (by increasing spacing excessively). Even better would be to perhaps use a dashed underline and display a clickable strong's note upon hover instead.

Ideas:

  • Instead of having to click on footnotes, display a sidebar (all views) that has the footnotes for the entirety of the chapter.
  • Shortcuts for verse navigation so one need not click on each verse to simulate a single click event.
  • Ways to force a study tool to be stuck to a certain tab and for the study tools to update with change of verse in the main bible panel. Bonus would be to have a final study tab where one can basically select any of the other tabs, and then right click and select a "send to final tab" to store said notes for later reading as they continue to navigate the bible panel. Additionally would be awesome if the study tools could perhaps show their notes/crossreferences/etc for the entire chapter instead of simply verse by verse.
  • Named bookmarks.

If wanted, I can convert each idea into their own issue/idea/whatnot. Otherwise, I'll add to this here as I notice more issues.

@eliranwong
Copy link
Owner

Thanks for your ideas and reports of issues. I have been thinking to rewrite the UI, your ideas will be taken into account.

Some of your points are already addressed. I think just because we did not document well. Therefore, you may miss some features which already addressed the issues you encountered.

Qt5 does not work properly on my macOS M1 laptop, that's why I added an option to use Qt6. Users can choose between Qt5 and Qt6. For me, I use Qt6 on my M1 macOS, but Qt5 on Linux and Chrome OS for better compatibility.

I mentioned some of the issues you mentioned are already solved. For an example, you can use system packages instead of packages installed in virtual environment.

  1. close UBA first
  2. delete venv_* folders
  3. run in UniqueBible folder:

cd UniqueBible

touch use_system_site_packages

It may help you to run UBA on FreeBSD. I found this is essential in Arch Linux.

Another example, you mentioned about "Lemmatizer does not work under FreeBSD".

You can disable optional or unavailable packages by use of "disabled_modules.txt"

Thanks again. I appreciate your post.

@uba-user92
Copy link
Author

Thanks for your ideas and reports of issues. I have been thinking to rewrite the UI, your ideas will be taken into account.

Look forward to it, even as it stands, this is yet still the best application I've ever encountered for studying the bible!

Qt5 does not work properly on my macOS M1 laptop, that's why I added an option to use Qt6. Users can choose between Qt5 and Qt6. For me, I use Qt6 on my M1 macOS, but Qt5 on Linux and Chrome OS for better compatibility.

I mentioned some of the issues you mentioned are already solved. For an example, you can use system packages instead of packages installed in virtual environment.

  1. close UBA first
  2. delete venv_* folders
  3. run in UniqueBible folder:

cd UniqueBible

touch use_system_site_packages

It may help you to run UBA on FreeBSD. I found this is essential in Arch Linux.

Another example, you mentioned about "Lemmatizer does not work under FreeBSD".

You can disable optional or unavailable packages by use of "disabled_modules.txt"

I didn't realize the importance of Qt6 from a standpoint of Qt5 being broken under macOS.
What I've done is do a fresh checkout of the project, and followed the directions given above, though I left Lemmatizer enabled (I need to read up on how to use disabled_modules.txt a little more thoroughly). I then ran python $uba-dir/uba.py.

The issue I get is as follows (ignore the output regarding lemmagen and failed google downloads, I just manually download when necessary and would just move my data directory over except that this is for testing purposes):

python UniqueBible-upstream/uba.py 
Setting up environment ...

#
pip tool updated!
Installing missing module 'lemmagen3' ...
Optional feature 'Lemmatizer' is not enabled.
Run 'pip3 install lemmagen3' to install it first.
Downloading initial content 'images.sqlite' ...
Access denied with the following error:

 	Cannot retrieve the public link of the file. You may need to change
	the permission to 'Anyone with the link', or have had many accesses. 

You may still be able to access the file from the browser:

	https://drive.google.com/uc?id=1-aFEfnSiZSIjEPUQ2VIM75I4YRGIcy5- 

Downloaded!
Failed to download 'images.sqlite'!
Downloading initial content 'cCBSC.commentary' ...
Downloaded!
Unpacking ...
'cCBSC.commentary' is installed!
Traceback (most recent call last):
  File "/usr/home/llmII/data/archives/UniqueBible-upstream/main.py", line 535, in <module>
    from util.ShortcutUtil import ShortcutUtil
  File "/usr/local/lib/python3.9/site-packages/shiboken2/files.dir/shibokensupport/__feature__.py", line 142, in _import
    return original_import(name, *args, **kwargs)
  File "/usr/home/llmII/data/archives/UniqueBible-upstream/util/ShortcutUtil.py", line 6, in <module>
    from PySide6.QtCore import Qt
  File "/usr/local/lib/python3.9/site-packages/shiboken2/files.dir/shibokensupport/__feature__.py", line 142, in _import
    return original_import(name, *args, **kwargs)
ModuleNotFoundError: No module named 'PySide6'

Then I apply my aforementioned fix as uba.py fails to launch completely (see the above traceback), after which... it works (as in, the GUI launches, the failed google downloads thing means nothing gets displayed in the bible panel but isn't really relevant to the Qt related ordeal).

With all that said, I have no idea how my fix effects Qt6 operation under a system utilizing such. My checkout was 7898706

I'll place checkmarks on the items confirmed working (or ignorable in the case of Lemmatizer).

@eliranwong
Copy link
Owner

Here is an example about use of "disabled_modules.txt"

I use UBA on my android, I put unavailable module in the file.

Screenshot_20230116-232354~2

@otseng
Copy link
Collaborator

otseng commented Jan 17, 2023

@uba-user92 thanks for the feedback and suggestions!

@eliranwong
Copy link
Owner

@uba-user92

I just noted you encountered errors running Qt6. You can use Qt5 instead (PySide2 or PyQt5). If installing PySide2 or PyQt5 failed in virtual environment. I suggest the following steps:

  1. close UBA first
  2. install PySide2 / PyQt5 system wide not in virtual environment
  3. run in UBA folder:

cd UniqueBible

rm -rf venv_*

  1. edit config.py change to:

qtLibrary = "pyside2"

or

qtLibrary = "pyqt5"

  1. start UBA

python3 uba.py

remarks: install system package PySide2 / PyQt5 and delete old venv_* folders first are important

I use similar steps to get UBA running on Arch Linux.

@uba-user92
Copy link
Author

I backed out my changes of util/ShortcutUtil.py and set the correct thing in config.py. Removed venv_* between each check.

Result with qtLibrary = "pyside2"

Check config.py:
 ❯ grep qtLib config.py            
qtLibrary = 'pyside2'
Traceback:
Traceback (most recent call last):
  File "/usr/home/llmII/data/archives/UniqueBible/main.py", line 535, in <module>
    from util.ShortcutUtil import ShortcutUtil
  File "/usr/local/lib/python3.9/site-packages/shiboken2/files.dir/shibokensupport/__feature__.py", line 142, in _import
    return original_import(name, *args, **kwargs)
  File "/usr/home/llmII/data/archives/UniqueBible/util/ShortcutUtil.py", line 6, in <module>
    from PySide6.QtCore import Qt
  File "/usr/local/lib/python3.9/site-packages/shiboken2/files.dir/shibokensupport/__feature__.py", line 142, in _import
    return original_import(name, *args, **kwargs)
ModuleNotFoundError: No module named 'PySide6'

Result with qtLibrary = "pyqt5"

Check config.py:
❯ grep qtLib config.py
qtLibrary = 'pyqt5'
Traceback:
Traceback (most recent call last):
  File "/usr/home/llmII/data/archives/UniqueBible/main.py", line 535, in <module>
    from util.ShortcutUtil import ShortcutUtil
  File "/usr/local/lib/python3.9/site-packages/shiboken2/files.dir/shibokensupport/__feature__.py", line 142, in _import
    return original_import(name, *args, **kwargs)
  File "/usr/home/llmII/data/archives/UniqueBible/util/ShortcutUtil.py", line 6, in <module>
    from PySide6.QtCore import Qt
  File "/usr/local/lib/python3.9/site-packages/shiboken2/files.dir/shibokensupport/__feature__.py", line 142, in _import
    return original_import(name, *args, **kwargs)
ModuleNotFoundError: No module named 'PySide6'

Now, focusing on just qtLibrary = "pyqt5" I'm going to add a print in before the import of PySide6 in util/ShortcutUtil.py to prove that the program is thinking it has the right config like the below git diff:

diff --git a/util/ShortcutUtil.py b/util/ShortcutUtil.py
index 0538634f3..5025b1387 100644
--- a/util/ShortcutUtil.py
+++ b/util/ShortcutUtil.py
@@ -3,6 +3,7 @@ import pprint
 import sys
 import config
 from os import path
+print(config.qtLibrary)
 from PySide6.QtCore import Qt

Traceback:

pyqt5
Traceback (most recent call last):
  File "/usr/home/llmII/data/archives/UniqueBible/main.py", line 535, in <module>
    from util.ShortcutUtil import ShortcutUtil
  File "/usr/local/lib/python3.9/site-packages/shiboken2/files.dir/shibokensupport/__feature__.py", line 142, in _import
    return original_import(name, *args, **kwargs)
  File "/usr/home/llmII/data/archives/UniqueBible/util/ShortcutUtil.py", line 7, in <module>
    from PySide6.QtCore import Qt
  File "/usr/local/lib/python3.9/site-packages/shiboken2/files.dir/shibokensupport/__feature__.py", line 142, in _import
    return original_import(name, *args, **kwargs)
ModuleNotFoundError: No module named 'PySide6'

Now I'll restore my change back to 7898706 and then apply the following change:

diff --git a/util/ShortcutUtil.py b/util/ShortcutUtil.py
index 0538634f3..c58abf7e1 100644
--- a/util/ShortcutUtil.py
+++ b/util/ShortcutUtil.py
@@ -3,7 +3,10 @@ import pprint
 import sys
 import config
 from os import path
-from PySide6.QtCore import Qt
+if config.qtLibrary == "pyside6":
+    from PySide6.QtCore import Qt
+else:
+    from qtpy.QtCore import Qt
 
 
 # Defined sets of shortcuts:

Now it launches properly. I do not know the side effect of my change there under pyside2 or qt6 environments however.

@eliranwong
Copy link
Owner

@uba-user92 I got your point now. surely need a fix here. I think I modified the file by mistake, for testing qt6.

sorry, I was slow to understand the issue, it should be now fixed in f2a796c

@eliranwong eliranwong self-assigned this Jan 17, 2023
@eliranwong eliranwong added bug Something isn't working enhancement New feature or request labels Jan 17, 2023
@uba-user92
Copy link
Author

Qt6 issue all fixed with the latest commit. Thanks @eliranwong!

@uba-user92
Copy link
Author

Easier information regarding multiple notes in the same verse...

Visit Gen 4:1 and notice there are 2 notes. If there are 2 notes in a verse, then clicking on them in the Parallel versions view will display a 'not found' in the study area. Moving to single view, you will see if you click the first note in the verse it says "4:1 or, lay with, or, had relations with" and again if you click the second one inside UniqueBible you'll see that same note, though on the site that note reads "or, became pregnant".

This is not with the provided WEB version but with a conversion where the footnotes are not inlined into the text but kept as footnotes, from web.bbl.mybible.

Just providing a clear example in relation to the above noted issues/ideas.

@eliranwong
Copy link
Owner

Easier information regarding multiple notes in the same verse...

Visit Gen 4:1 and notice there are 2 notes. If there are 2 notes in a verse, then clicking on them in the Parallel versions view will display a 'not found' in the study area. Moving to single view, you will see if you click the first note in the verse it says "4:1 or, lay with, or, had relations with" and again if you click the second one inside UniqueBible you'll see that same note, though on the site that note reads "or, became pregnant".

This is not with the provided WEB version but with a conversion where the footnotes are not inlined into the text but kept as footnotes, from web.bbl.mybible.

Just providing a clear example in relation to the above noted issues/ideas.

Thanks. I will take a look later.

@uba-user92
Copy link
Author

  • In commentary, when you have a verse reference like Book Chapter:Verse-Verse it shows in the bottom preview panel, but if you have one like Book Chapter:Verse-Verse; Chapter:Verse-Verse then as with the prior, the first verse set shows in it's entirety, but the second only shows the first, where both "locators" point to the same book.

Regarding the above bug, the next screenshots may help:

First verse set hovers:

image
(Might not can see it in screenshot, but mouse is on "James 1:5" as shown in next):
image

Second verse set hovers:

image
(Might not can see it in screenshot, but mouse is on "James 5:14-16" as shown in next):
image

But let's hover on a verse section, instead of a single verse and show how that looks:

image
(Matthew 7:7-11):
image
But hovering on Matthew 21:21-22...
image

@RayReddingtonx
Copy link

Hello,
I think I am having the same error, as I showed in my topic.
AttributeError: 'traceback' object has no attribute 'format_exc'
and no PySide6 and no qtpy module error.

I am not into programming so I don't understand the instructions like where to run the command in UBA folder, etc. I am on Windows10. Likewise, I am able to run the UB via main.psy, after an error, but it's not saving my session after closing, it only saves the first bible.

I am hoping to have the advance syntax and linguistic search feature to take the full or actual benefit of the syntax and linguistic Marvellous versions features. Like if I want to search for an adjunct immediately after a passive verb. Or a preposition phrase immediately after an aorist form of verb X, etc, or All temporal references with respect to "law"(the lemma should be taken in search keywords automatically instead of finding the Strong's morph number or something), I dont think these features are available currently. If they are also added, it will be even greater.

Also, I couldn't find an option to download multiple bible versions simultaneously. It only shows one version at one time. I hope my interruption is not wrong here. I hope you fix the setup permanently. If you have instructions, kindly explain them for a beginner level. The software is revolutionary, and I was hoping for a long time why doesnt any website provide syntax search when the databases are free. Also, the linguistic tag based search will be amazing.

The next thing you can think of is to connect your app with academia site, to let us do advance search based on words, and directly download those articles and open in UBA. It will be very epic.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants