isnady 0.4.6 → 0.4.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +52 -15
  2. package/index.js +1 -1
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -8,12 +8,12 @@
8
8
 
9
9
  <p align="center">
10
10
  <a href="https://pypi.org/project/isnady/">
11
- <img src="https://img.shields.io/badge/PyPI-v0.4.6-1D4777?style=for-the-badge&logo=pypi&logoColor=white" alt="PyPI">
11
+ <img src="https://img.shields.io/badge/PyPI-v0.4.8-1D4777?style=for-the-badge&logo=pypi&logoColor=white" alt="PyPI">
12
12
  </a>
13
13
  <img src="https://img.shields.io/pypi/pyversions/isnady?style=for-the-badge&color=A47E24&logo=python&logoColor=white" alt="Python">
14
14
  <img src="https://img.shields.io/badge/Platform-Windows%20%7C%20Linux%20%7C%20macOS-5B6878?style=for-the-badge" alt="Platform">
15
15
  <a href="https://www.npmjs.com/package/isnady">
16
- <img src="https://img.shields.io/badge/npm-v0.4.6-14304F?style=for-the-badge&logo=npm" alt="npm">
16
+ <img src="https://img.shields.io/badge/npm-v0.4.8-14304F?style=for-the-badge&logo=npm" alt="npm">
17
17
  </a>
18
18
  <a href="https://github.com/bayramkotan/isnady-data">
19
19
  <img src="https://img.shields.io/badge/data-isnady--data-2E6B4F?style=for-the-badge&logo=github" alt="isnady-data">
@@ -45,7 +45,7 @@
45
45
  <img src="https://raw.githubusercontent.com/bayramkotan/isnady/main/assets/screenshots/search-arabic.png" alt="Searching النيات finds بالنيات in Sahih al-Bukhari 1, with the chain above the text" width="850">
46
46
  </p>
47
47
 
48
- > **Pre-alpha (0.4.6).** Search, chains of transmission, narrators, books, scholars, statistics and
48
+ > **Pre-alpha (0.4.8).** Search, chains of transmission, narrators, books, scholars, statistics and
49
49
  > the glossary work today, Sunni and Shia, on data you import in one click. Everything is built in
50
50
  > the open, one piece at a time.
51
51
 
@@ -391,10 +391,11 @@ looks for himself among the narrators.
391
391
  Choose a book and a number, or let isnady choose: beside the number stands the book's last number ("/ 7563") and
392
392
  where the hadith stands among the book's ("hadith 36 of 7,467"); ⏮ ‹ › ⏭ go to the first, previous, next and last
393
393
  hadith, so do the arrow keys and the mouse wheel; typing lists the numbers that begin so, a number the book does not
394
- have offers the nearest, and **Random hadith** picks one. `iy chain kafi` prints the range.
394
+ have offers the nearest, and **Random hadith** picks one among those whose chain was read. `iy chain kafi` prints
395
+ the range. A hadith a book gives without a chain says so above its text.
395
396
 
396
397
  <p align="center">
397
- <img src="https://raw.githubusercontent.com/bayramkotan/isnady/main/assets/screenshots/chain.png" alt="Isnad Chains — the chain of Sahih al-Bukhari 1 as a timeline from the book to the Prophet" width="850">
398
+ <img src="https://raw.githubusercontent.com/bayramkotan/isnady/main/assets/screenshots/chain.png" alt="Isnad Chains — Sahih al-Bukhari 1: the number with the book's last number and its place, first / previous / next / last, and the chain as a timeline from the book to the Prophet" width="850">
398
399
  </p>
399
400
 
400
401
  ### 👤 Who each narrator is
@@ -413,11 +414,16 @@ correct. Names are kept exactly as written, with the clarifications the compiler
413
414
  <summary><b>📊 How well it reads today</b></summary>
414
415
  <br>
415
416
 
416
- | | Chains | Split into narrators | Reaching the Prophet / a Ma'sum | Names identified |
417
+ | | Chains (roads) | Read whole | Reaching the Prophet / a Ma'sum | Names identified |
417
418
  |:--|--:|--:|--:|--:|
418
- | Sahih al-Bukhari | 7,580 | 85.5% | | 51.5% |
419
- | Sunan Abi Dawud | 5,272 | 71.9% | | 53.0% |
420
- | al-Kafi (read the Shia way) | 14,239 | 96.8% | 92% | 48.5% |
419
+ | Sahih al-Bukhari | 7,856 | 89.9% | 74.7% | 74.7% |
420
+ | Sahih Muslim | 9,265 | 74.9% | 58.6% | 77.4% |
421
+ | Sunan Abi Dawud | 5,809 | 85.0% | 70.2% | 74.3% |
422
+ | al-Kafi (read the Shia way) | 14,239 | 96.8% | 94.6% | 63.8% |
423
+
424
+ (isnady 0.4.8, chains isnady-isnad-11, narrators isnady-narrators-15. A road of a tahwil (ح) is a chain of its own;
425
+ "reaching" counts the chains whose last link is the Prophet ﷺ or a Ma'sum — a chain may also end with a Companion's
426
+ own word, or at a link left unread.)
421
427
 
422
428
  In a blind, hand-checked sample of 30 Sunni chains: **no wrong narrator**, 27 complete. The rest are
423
429
  kept whole, each with its reason: *tahwil* (ح, a second chain joining), two teachers at one link
@@ -580,7 +586,7 @@ whose leaves are hadith, narrators' entries or paragraphs — so commentaries, m
580
586
  other works of the scholars can be read the same way as they are added.
581
587
 
582
588
  <p align="center">
583
- <img src="https://raw.githubusercontent.com/bayramkotan/isnady/main/assets/screenshots/books.png" alt="Books — the Sunni and Shia shelves; reading Sahih al-Bukhari chapter by chapter, Arabic, English and Turkish, each hadith with its chain" width="850">
589
+ <img src="https://raw.githubusercontent.com/bayramkotan/isnady/main/assets/screenshots/books.png" alt="Books — the Sunni and Shia shelves; Sahih al-Bukhari chapter 2 of 98 and hadith 8 of 7,583, with first / previous / next / last for chapters and hadith; Arabic, English and Turkish, each hadith with its chain" width="850">
584
590
  </p>
585
591
 
586
592
  ```bash
@@ -624,6 +630,11 @@ it. Every result is computed once and saved as JSON in your data folder (`derive
624
630
  what it was computed from changed — new books or hadith, narrators identified differently, new verdicts or grades,
625
631
  books switched off — or the analysis itself; a new version of isnady alone does not.
626
632
 
633
+ **Out of isnady, piece by piece or whole:** every finding has a ⤓ — its chart as a picture (PNG, SVG), a PDF or on
634
+ the clipboard, its figures as CSV, Excel, JSON or Markdown; the page's **Export** writes a section or every section
635
+ as one PDF or one web page with the charts and their tables, every table as one Excel workbook (a sheet each) or as
636
+ CSV files, and the computed results as JSON (`iy export statistics [BOOK]`).
637
+
627
638
  | Section | What it shows |
628
639
  |---|---|
629
640
  | **All books** | the first entry of the book list: every section measured on both roads at once, each road under its own heading — never added together |
@@ -812,6 +823,13 @@ iy import-data book nawawi.isnady-book.zip
812
823
  iy import-data bookmarks a.json b.csv # several files at once
813
824
  ```
814
825
 
826
+ <p align="center">
827
+ <img src="https://raw.githubusercontent.com/bayramkotan/isnady/main/assets/screenshots/export.png" alt="Export — every book ticked (All, None, Sunni, Shia), all languages with the chains, as EPUB; the bar shows 14%, the book being written, the time gone and the time left, with Stop" width="640">
828
+ </p>
829
+ <p align="center">
830
+ <img src="https://raw.githubusercontent.com/bayramkotan/isnady/main/assets/screenshots/export-progress.png" alt="The export goes on with the dialog closed: the bar at the bottom of the window, with Stop, while the window is used" width="850">
831
+ </p>
832
+
815
833
  ---
816
834
 
817
835
  ## 🎨 Appearance and settings
@@ -874,11 +892,12 @@ was cut short is named on the Search page at the next start. At every start with
874
892
  import isnady-data — every hadith book and rijal work with one click (**Import all**) — in the background, the
875
893
  progress in the bar at the bottom; on the command line `iy` says so and `iy catalog import --all` does it.
876
894
 
877
- **Settings → Books and languages** switches imported books on and off (Sunni and Shia apart) and
878
- chooses the languages the texts are shown in; the others are folded behind an arrow on each hadith.
895
+ **Settings → Books and languages** switches imported books on and off (Sunni and Shia apart),
896
+ chooses the languages the texts are shown in — the others are folded behind an arrow on each hadith — and puts
897
+ them in your own order: Arabic always first, the others dragged or moved with the arrows.
879
898
 
880
899
  <p align="center">
881
- <img src="https://raw.githubusercontent.com/bayramkotan/isnady/main/assets/screenshots/books-languages.png" alt="Settings → Books and languages — books on and off, Sunni and Shia apart; the languages shown, the others folded behind an arrow" width="760">
900
+ <img src="https://raw.githubusercontent.com/bayramkotan/isnady/main/assets/screenshots/books-languages.png" alt="Settings → Books and languages — books on and off, Sunni and Shia apart; the languages shown and their order, Arabic always first, the others folded behind an arrow" width="760">
882
901
  </p>
883
902
 
884
903
  ```bash
@@ -892,6 +911,10 @@ iy config reset text.arabic # back to the defaults
892
911
  settings, bookmarks and the downloaded data) — each listing what is deleted and what is kept, and each asking once
893
912
  more; `iy reset settings|books|all`.
894
913
 
914
+ <p align="center">
915
+ <img src="https://raw.githubusercontent.com/bayramkotan/isnady/main/assets/screenshots/reset.png" alt="Settings → Reset — three cards: only the settings, only the books, everything; each says what is deleted and what is kept" width="760">
916
+ </p>
917
+
895
918
  ### Your data folder
896
919
 
897
920
  Everything isnady keeps is in one folder — `iy datadir` shows it, `iy datadir /elsewhere` moves it,
@@ -904,6 +927,19 @@ and a folder named `isnady-data` beside a portable application is used instead:
904
927
  | `settings.json` | appearance and other settings, shared by the window and the command line |
905
928
  | `repos/`, `user_repositories.json` | the catalogs read from the repositories, and the repositories you added |
906
929
  | `isnady.<date-time>.bak.db` | a database replaced by a ready one, kept |
930
+ | `logs/isnady.log`, `logs/crash_*.log` | what isnady did and what went wrong; a hard crash's stack (Help → Log, `iy log`) |
931
+
932
+ **The log.** Every start writes a banner — version, Python, PySide6, system, data folder, profile, database,
933
+ books — and then a line for each thing isnady does: a page drawn, a search and how long it took, an import, an
934
+ export, the chains read, the narrators identified, the statistics computed; every error with its traceback.
935
+ **Help → Log…** (Ctrl+Shift+L) follows it live, shows only the errors or the lines holding a text, larger or
936
+ smaller, copies it with the version at its head for a report, opens its folder, and removes what is older than a
937
+ day. A crash Python itself cannot catch leaves `logs/crash_<time>.log`. `iy log`, `iy log --level error`,
938
+ `iy log -f`; `iy config set log.level debug` for more.
939
+
940
+ <p align="center">
941
+ <img src="https://raw.githubusercontent.com/bayramkotan/isnady/main/assets/screenshots/log.png" alt="Help → Log — this run's banner and every step with its time, followed live; only errors, a text, larger or smaller, copy, the folder, what is older than a day removed" width="850">
942
+ </p>
907
943
 
908
944
  ---
909
945
 
@@ -944,6 +980,7 @@ command line never loads Qt. Every command that takes a book accepts its full na
944
980
  | `iy import FORMAT FILE-OR-URL` | `iy import isnady ~/my_book/book.json` | Import a file of your own; `--book`, `--language`, `--license`, `--user`, `--token-env`, `--api-key-env` |
945
981
  | `iy sources` | | Imported sources, their licence and tier |
946
982
  | `iy remove KEY` | | Remove a source and everything imported from it |
983
+ | `iy log` | `iy log --level error`, `iy log -f` | isnady's log: the last lines, errors only, a text, followed live, the crash reports (`--crash`), `--before DAY`, `--clear` |
947
984
  | `iy reset settings\|books\|all` | `iy reset books` | Back to zero: all settings, all books, or everything (`--yes` does not ask) |
948
985
  | `iy formats` | | The formats that can be imported |
949
986
  | `iy datadir [FOLDER]` | `iy datadir /data/isnady` | Show or move the data folder; `--as-is`, `--default` |
@@ -991,8 +1028,8 @@ Sunan Abu Dawud #472
991
1028
  *Tahdhib al-Kamal*), the verdicts of other critics beside Ibn Hajar's, and whether each link could
992
1029
  have met the next; fuller, richer lives of narrators and scholars.
993
1030
  - **Statistics in plain words** — every finding said simply first, the method after.
994
- - **Settings and export** — every setting in one place, export in every common format (named by the
995
- books' full names), reset and remove from inside the window.
1031
+ - **Settings and export** — more of isnady set from one place; export as ODS, TEI-XML and BibTeX/RIS, of the
1032
+ scholars and the glossary, and a preview of an import before it comes in.
996
1033
  - **Every interface language in full** — the 21 listed after English, Türkçe and العربية; the command line
997
1034
  and the glossary in them too.
998
1035
  - **isnady.net** — the same engine on the web.
package/index.js CHANGED
@@ -6,7 +6,7 @@
6
6
  * database (used by both the Python and JavaScript packages) exists.
7
7
  */
8
8
 
9
- export const version = "0.4.6";
9
+ export const version = "0.4.8";
10
10
  export const name = "isnady";
11
11
 
12
12
  /** Returns basic package information. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "isnady",
3
- "version": "0.4.6",
3
+ "version": "0.4.8",
4
4
  "description": "Hadith search with full isnad chains, narrator biographies, jarh wa ta'dil verdicts and reliability scores",
5
5
  "type": "module",
6
6
  "main": "./index.js",