def docs_copy_samples_into_dir_if_necessary(Prg, LoadDefaultsForced=False): util.dir_create_if_necessary(Prg, Prg["DirDocuments"]) # print(f'Program dir documents: {Prg["DirDocuments"]}', flush=True) DirTextSamples = os.path.join(Prg["DirDocuments"], "text_samples") util.dir_create_if_necessary(Prg, DirTextSamples) FilesTxt = util.files_abspath_collect_from_dir( DirTextSamples, WantedExtensions=ExtensionsConvertable + [".txt"]) if (not FilesTxt) or LoadDefaultsForced: util.web_get_pack_wikipedia(Prg, DirTextSamples) docs_copy_samples_into_dir(Prg, DirTextSamples)
def docs_copy_samples_into_dir(Prg, DirTarget): util.dir_create_if_necessary(Prg, DirTarget) # sample texts are gzipped for FileName in util.files_abspath_collect_from_dir(Prg["DirTextSamples"]): # don't duplicate other files, document info json for example if ".gz" in FileName[-3:]: BaseName = os.path.basename(FileName).replace(".gz", "") # print(f"Sample doc duplication... {BaseName} {FileName}") ReadSuccess, TextContent = util.file_read_all(Prg, FileName, Gzipped=True) FileNameSaved = os.path.join(DirTarget, BaseName) # if a previous file exists with same name, it overwrites util.file_write_utf8_error_avoid(Prg, FileNameSaved, TextContent)
def test_docs_copy_samples_into_dir(self): if self._test_exec("test_collect_docs_from_working_dir"): Prg = self.Prg DirTestBaseName = "test_" + str(int(time.time())) DirTest = os.path.join(Prg["DirWork"], DirTestBaseName) util.dir_create_if_necessary(Prg, DirTest) document.docs_copy_samples_into_dir(Prg, DirTest) Files = util.files_abspath_collect_from_dir(DirTest) FileNamesInOneLine = " ".join(Files) Wanted = "DanielDefoe__LifeAdventuresRobinsonCrusoe__gutenberg_org_521-0.txt" self.assertIn(Wanted, FileNamesInOneLine) for FileAbsPath in Files: util.file_del(FileAbsPath) DelRes = util.dir_delete_if_exist(Prg, DirTest) self.assertEqual("deleted", DelRes)
def test_util_dir_create_if_necessary(self): if self._test_exec("test_dir_create_if_necessary"): Prg = self.Prg # dir exists, can't create Created = util.dir_create_if_necessary( Prg, os.path.join(Prg["DirPrgRoot"], "src")) self.assertFalse(Created) # file exists with the same name, can't create Created = util.dir_create_if_necessary( Prg, os.path.join(Prg["DirPrgRoot"], ".gitignore")) self.assertFalse(Created) # test dir created DirTryToMake = os.path.join(Prg["DirWork"], "TryToMakeThis") util.dir_delete_if_exist(Prg, DirTryToMake, Print=True) Created = util.dir_create_if_necessary(Prg, DirTryToMake) self.assertTrue(Created) util.dir_delete_if_exist(Prg, DirTryToMake, Print=True)
def config_get(Key, DirPrgExecRoot="", DefaultVal="", DirConfigFileParent=None, FileNameConfigInitial=".sentence-seeker.config"): _Status, ConfigInitial = obj_from_file(os.path.join(DirPrgExecRoot, FileNameConfigInitial)) DirWorkFromUserHome = ConfigInitial["DirWorkFromUserHome"] if not DirConfigFileParent: DirConfigFileParent = os.path.join(util.dir_user_home(), DirWorkFromUserHome) util.dir_create_if_necessary(Path=DirConfigFileParent) FileConfigAbsPath = os.path.join(DirConfigFileParent, FileNameConfig) if not os.path.isfile(FileConfigAbsPath): print(f"create new config file from default: {FileConfigAbsPath}") util.file_copy(os.path.join(DirPrgExecRoot, FileNameConfigInitial), FileConfigAbsPath) else: # print(f"config file exists: {FileConfigAbsPath}") pass _Status, Json = obj_from_file(FileConfigAbsPath) if Key in Json: return Json[Key] return DefaultVal
"DirTmpPath": os.path.join(DirPrgParent, "tmp"), "DirsDeleteAfterRun": [], "FilesDeleteAfterRun": [], "DirDefaultFileSelectPath": os.path.abspath(__file__), "PathPrgExec": os.path.realpath(__file__), "Color": { "TextSelectFrame": (255, 0, 0) }, "ImagesLoaded": {}, "ImageIdSelected": "" } sys.path.append(os.path.join(Prg["DirPrgParent"], "src")) import util, test_mark_collect, test_mark_util, test_area, test_vector util.dir_create_if_necessary(Prg, Prg["DirTmpPath"]) util.ui_msg_init(Prg) util.installed_environment_detect(Prg) util.os_detect(Prg) TestOnly = False print(sys.argv) if "testonly" in sys.argv: TestOnly = True sys.argv = sys.argv[: 1] # the testing environment gives a warning when I use a prg param so I hide it, temporary solution test_mark_collect.run_all_tests(Prg) test_mark_util.run_all_tests(Prg) test_area.run_all_tests(Prg) test_vector.run_all_tests(Prg)