mirror of
https://github.com/1j01/textual-paint.git
synced 2024-11-28 10:03:29 +03:00
Add --recode-samples for testing
This commit is contained in:
parent
8463f2069f
commit
eaa64c992e
@ -90,6 +90,7 @@ options:
|
|||||||
--inspect-layout Inspect the layout with middle click, for development
|
--inspect-layout Inspect the layout with middle click, for development
|
||||||
--clear-screen Clear the screen before starting; useful for development, to avoid seeing fixed errors
|
--clear-screen Clear the screen before starting; useful for development, to avoid seeing fixed errors
|
||||||
--restart-on-changes Restart the app when the source code is changed, for development
|
--restart-on-changes Restart the app when the source code is changed, for development
|
||||||
|
--recode-samples Open and save each file in samples/, for testing
|
||||||
```
|
```
|
||||||
|
|
||||||
### Keyboard Shortcuts
|
### Keyboard Shortcuts
|
||||||
|
@ -139,6 +139,8 @@ parser.add_argument('--version', action='version', version=f'%(prog)s {__version
|
|||||||
parser.add_argument('--theme', default='light', help='Theme to use, either "light" or "dark"', choices=['light', 'dark'])
|
parser.add_argument('--theme', default='light', help='Theme to use, either "light" or "dark"', choices=['light', 'dark'])
|
||||||
parser.add_argument('--language', default='en', help='Language to use', choices=['ar', 'cs', 'da', 'de', 'el', 'en', 'es', 'fi', 'fr', 'he', 'hu', 'it', 'ja', 'ko', 'nl', 'no', 'pl', 'pt', 'pt-br', 'ru', 'sk', 'sl', 'sv', 'tr', 'zh', 'zh-simplified'])
|
parser.add_argument('--language', default='en', help='Language to use', choices=['ar', 'cs', 'da', 'de', 'el', 'en', 'es', 'fi', 'fr', 'he', 'hu', 'it', 'ja', 'ko', 'nl', 'no', 'pl', 'pt', 'pt-br', 'ru', 'sk', 'sl', 'sv', 'tr', 'zh', 'zh-simplified'])
|
||||||
parser.add_argument('--ascii-only-icons', action='store_true', help='Use only ASCII characters for tool icons')
|
parser.add_argument('--ascii-only-icons', action='store_true', help='Use only ASCII characters for tool icons')
|
||||||
|
|
||||||
|
# TODO: hide development options from help? there's quite a few of them now
|
||||||
parser.add_argument('--inspect-layout', action='store_true', help='Inspect the layout with middle click, for development')
|
parser.add_argument('--inspect-layout', action='store_true', help='Inspect the layout with middle click, for development')
|
||||||
# This flag is for development, because it's very confusing
|
# This flag is for development, because it's very confusing
|
||||||
# to see the error message from the previous run,
|
# to see the error message from the previous run,
|
||||||
@ -147,6 +149,8 @@ parser.add_argument('--inspect-layout', action='store_true', help='Inspect the l
|
|||||||
# I really don't want false ones mixed in. You want to reward your brain for finding good solutions, after all.
|
# I really don't want false ones mixed in. You want to reward your brain for finding good solutions, after all.
|
||||||
parser.add_argument('--clear-screen', action='store_true', help='Clear the screen before starting; useful for development, to avoid seeing fixed errors')
|
parser.add_argument('--clear-screen', action='store_true', help='Clear the screen before starting; useful for development, to avoid seeing fixed errors')
|
||||||
parser.add_argument('--restart-on-changes', action='store_true', help='Restart the app when the source code is changed, for development')
|
parser.add_argument('--restart-on-changes', action='store_true', help='Restart the app when the source code is changed, for development')
|
||||||
|
parser.add_argument('--recode-samples', action='store_true', help='Open and save each file in samples/, for testing')
|
||||||
|
|
||||||
parser.add_argument('filename', nargs='?', default=None, help='File to open')
|
parser.add_argument('filename', nargs='?', default=None, help='File to open')
|
||||||
|
|
||||||
# Automatically update the readme with the current arguments.
|
# Automatically update the readme with the current arguments.
|
||||||
@ -3407,6 +3411,27 @@ if args.filename:
|
|||||||
app.image = AnsiArtDocument.from_text(my_file.read())
|
app.image = AnsiArtDocument.from_text(my_file.read())
|
||||||
app.image_initialized = True
|
app.image_initialized = True
|
||||||
app.file_path = os.path.abspath(args.filename)
|
app.file_path = os.path.abspath(args.filename)
|
||||||
|
if args.recode_samples:
|
||||||
|
# Re-encode the sample files to test for changes/inconsistency in encoding.
|
||||||
|
# For each file, open and save it. All files are directly under samples/.
|
||||||
|
async def recode_samples() -> None:
|
||||||
|
for filename in os.listdir("samples"):
|
||||||
|
if not filename.endswith(".ans"):
|
||||||
|
continue
|
||||||
|
with open(os.path.join("samples", filename), "r") as my_file:
|
||||||
|
app.image = AnsiArtDocument.from_text(my_file.read())
|
||||||
|
app.image_initialized = True
|
||||||
|
app.file_path = os.path.abspath(os.path.join("samples", filename))
|
||||||
|
await app.save()
|
||||||
|
print(f"Saved {filename}")
|
||||||
|
# asyncio.run(recode_samples())
|
||||||
|
# have to wait for the app to be initialized
|
||||||
|
def callback() -> None:
|
||||||
|
# RuntimeError: asyncio.run() cannot be called from a running event loop
|
||||||
|
# asyncio.run(recode_samples())
|
||||||
|
asyncio.create_task(recode_samples())
|
||||||
|
app.call_later(callback)
|
||||||
|
|
||||||
if args.clear_screen:
|
if args.clear_screen:
|
||||||
os.system("cls||clear")
|
os.system("cls||clear")
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user