from wisdom_extract import allam import garood from concurrent.futures import ThreadPoolExecutor, as_completed _log_file = None def print(txt=""): global _log_file if _log_file is None: _log_file = open("complete.tmp", "w") _log_file.write(f"{txt}\n") _log_file.flush() def suggest(input): resp = allam("allam/akmil.txt", {"input": input}) poss = [] for line in resp.split("\n"): if not line.startswith("- "): continue verse = line[2:].strip() if len(verse) <= len(input): continue poss.append(verse) return poss def shakkil(p): return allam("allam/shakl.txt", {"input": p}).strip() def gen(input): print("SUGGESTING...") poss = set() with ThreadPoolExecutor(max_workers=16) as executor: futures = [ executor.submit(suggest, input) for _ in range(5) ] for future in as_completed(futures): for p in future.result(): poss.add(p) print("\n".join(poss)) return poss def shakk(poss): print("TASHKEELING...") pshak = [] with ThreadPoolExecutor(max_workers=16) as executor: futures = [ executor.submit(shakkil, p) for p in poss ] for future in as_completed(futures): pshak.append(future.result()) print("\n".join(pshak)) return pshak def filter(pshak): print(f"EVALUATING...") BH = garood.config()['bahr']['kamil_1'] for p in pshak: EN, HR = garood.en_gen_enhr(garood.ar_gen_en(p)) c, s = garood.bh_gen_best(BH, EN, HR, True) g = garood.state_to_str(s, EN) if c >= 0: yield (c, p, s, g) if __name__ == "__main__": pshak =\ """ هَلْ سَامَرَ الْأَصْحَابَ فِي دَارَةٍ هَلْ سَامَرَ الْأَصْحَابَ فِي حُبِّ النَّبِي هَلْ سَامَر الْأَصْحَابَ فِي كُلِّ مَعْقِلِ هَلْ سَامَرَ الْأَصْحَابَ فِي مَحْفِلِ هَلْ سَامَرَ الْأَصْحَابَ فِي رَمْلِ دَارِسِ؟ هَلْ سَامَرَ الْأَصْحَابُ فِي كُلِّ مَرْتَعِ هَلْ سَامَرَ الْأَصْحَابُ فِي مَدْحِ النَّبِيِّ هَلْ سَامَرَ الْأَصْحَابَ فِي نَشْرِ الْفَضَا هَلْ سَامَرَ الْأَصْحَابُ فِي مَدْحِ الْعَلَا هَلْ سَامَرَ الْأَصْحَابَ فِي الْوَادِي الرَّطْبِ؟ هَلْ سَامَرَ الْأَصْحَابَ فِي نَادِي الْعُلَى هَلْ سَامَرَ الْأَصْحَابُ فِي جَبَلٍ صَعْبٍ؟ هَلْ سَامَرَ الْأَصْحَابَ فِي مَجْلِسِ هَلْ سَامَرَ الْأَصْحَابُ فِي أَرْضِ السَّمَا هَلْ سَامَرَ الْأَصْحَابُ فِي نَادِي الْحَيِّ؟ هَلْ سَامَرَ الْأَصْحَابُ فِي سَفْحِ الثَّرَى هَلْ سَامَرَ الْأَصْحَابُ فِي نَادِيِ الْهَنَا هَلْ سَامَرَ الْأَصْحَابُ فِي خَيْرِ مَشْهَدِ هَلْ سَامَرَ الْأَصْحَابُ فِي مَدْحِ الْكَرِيمِ هَلْ سَامَرَ الْأَصْحَابُ فِي مَدِّ الْكَرِيمِ هَلْ سَامَرَ الْأَصْحَابُ فِي دَعَةٍ وَرَاحَةٍ هَلْ سَامَرَ الْأَصْحَابَ فِي نَادِي الرَّبَى هَلْ سَامَرَ الْأَصْحَابَ فِي كُلِّ مُشْرِقِ هَلْ سَامَرَ الْأَصْحَابَ فِي حَيِّهِ هَلْ سَامَرَ الْأَصْحَابَ فِي كُلِّ مَوْقِعِ هَلْ سَامَرَ الْأَصْحَابَ فِي كُلِّ مُنْتَجَعِ هَلْ سَامَرَ الْأَصْحَابَ فِي كُلِّ مَوْسِمِ """.strip().split("\n") input = "قد سامر الأصحاب في" poss = gen(input) pshak = shakk(poss) for p, c, s, g in filter(pshak): print(p)