This is #1440 <https://github.com/leo-editor/leo-editor/issues/1440>. On Christmas day the Fstringify class passed all its unit tests. Yesterday I polished the code and ran additional tests.
Imo, this class is now good enough to be used as the basis of Leo's fstringify command. However, considerable packaging work remains. *Testing* Yesterday I fstringified leoAtFile.py from the "master" branch. This version of the file contains fewer f-strings, so is a better test. There were several *valid *warnings about strings followed by an "%" that could not be fstringified. For example: '%s %s' % delims # delims is a 2-tuple. Such strings must be converted by hand, or just left alone. *Packaging* leoAst.py contains all the work. It imports only standard python library functions at the top level. Anyone should be able to use leoAst.py without installing Leo. The LeoGlobals class contains simplified versions of several functions in leoGlobals.py. Two functions contain: import leo.core.leoGlobals as leo_g. Only unit tests in unitTest.leo call these two functions, so importing leo.core.leoGlobals in them is harmless. *Remaining work* 1. Add "traditional" unit tests to leoAst.py. Anyone should be able to run these tests without installing Leo. 2. Convert Leo's own fstringify command so it uses the new classes. 3. Several experimental improvements. I'll discuss them if and when they work. *Summary* This project has succeeded. Anyone should be able to use leoAst.py now, without installing Leo. I'll soon convert existing unit tests in unitTest.leo to traditional unit tests, probably contained within leoAst.py. Considerable work remains. Edward -- You received this message because you are subscribed to the Google Groups "leo-editor" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/leo-editor/de70bcec-46e1-418f-b9a2-d8ab036cea02%40googlegroups.com.
