Commit graph

45 commits

Author SHA1 Message Date
InsanePrawn
acee95a003 dictscheme: rename from dataclass as it's confusing with builtin dataclasses 2023-04-17 02:37:10 +02:00
InsanePrawn
b84d2202db python 3.9 compat: introduce typehelpers.py for NoneType, UnionType, TypeAlias 2023-04-17 02:37:10 +02:00
InsanePrawn
67590fe12b config/cli: drop obsolete warning when pkgbuilds arent initialised in prompt_profile() 2023-04-16 06:00:50 +02:00
InsanePrawn
91d2cd3681 config/cli: use wrapper.execute_without_exit() for prompt_profile_{flavour,device}() to avoid prompting in docker 2023-04-16 03:37:22 +02:00
InsanePrawn
ec0e430c00 config/cli: save main config body separately from profiles to support flavour and device listing 2023-04-16 03:37:22 +02:00
InsanePrawn
954592fc62 config/cli: warn when saving config in container 2023-04-16 03:37:22 +02:00
InsanePrawn
dfd191060a config/state: remove field_name from missing device/flavour hint as it gets used as the profile name 2023-04-16 03:37:22 +02:00
InsanePrawn
ff1c31e157 TEMP: WIP: add repo_config
TEMP cause it spams a bunch of prints in dataclass handling
2023-03-27 09:18:57 +02:00
InsanePrawn
63156776a2 devices/cli: make device list way more readable, add package name and path, mark currently selected 2023-03-17 16:34:20 +01:00
InsanePrawn
00613096d5 config/state: add config.runtime.colors, fill in main.py 2023-03-17 16:34:20 +01:00
InsanePrawn
785e41f8b7 logger: add --force-colors/--no-colors cli flag 2023-03-17 16:34:20 +01:00
InsanePrawn
a8e8ddc4b4 typecheck: add --check-untyped-defs and fix some associated type errors 2022-11-09 20:19:04 +01:00
InsanePrawn
3eeeafb30f config.state: try_load_file(): clear state.exception after successful load 2022-11-09 20:19:04 +01:00
InsanePrawn
11125e525f config: remove accidental scheme validation circumvention, improve errors, warn on config loading failure in main()
This will fail on values of the wrong type, but still warn about and allow unknown keys.
2022-11-09 20:19:04 +01:00
InsanePrawn
82a87e7ea9 implement explicit Optional type hints for =None parameters
Thanks https://github.com/hauntsaninja/no_implicit_optional
2022-11-09 20:19:04 +01:00
InsanePrawn
254d59959b config: add new __init__.py 2022-11-09 20:19:04 +01:00
InsanePrawn
33f4a81981 config: move code from __init__.py into cli.py 2022-11-09 20:19:04 +01:00
InsanePrawn
777b3172d8 move packages/flavour.py to flavours/ 2022-11-09 20:19:04 +01:00
InsanePrawn
6581e34087 move packages/{device,deviceinfo}.py to devices/ 2022-11-09 20:19:04 +01:00
InsanePrawn
ba5cda7cfa config: prompt_profile(): handle uninitialised PKGBUILDs gracefully and warn user 2022-11-09 20:19:04 +01:00
InsanePrawn
72d9bf3a37 config: cmd_profile_init(): make profile name optional, default to config.file.profiles.current 2022-11-09 20:19:04 +01:00
InsanePrawn
f77aa4f2a2 config: add listings of devices and flavours to config profile init aka prompt_profile() and --no-parse flag
This is slow-ish without SRCINFO caching
2022-11-09 20:19:04 +01:00
InsanePrawn
2a20f6c45a config: add Config.enforce_profile_flavour_set() 2022-11-09 20:19:04 +01:00
InsanePrawn
7d803fc5bd config: Config.update(): avoid Munch attr error by calling .toDict() on self.file before comparison with merged 2022-11-09 20:19:04 +01:00
InsanePrawn
ad83d14861 config.enforce_profile_device_set(): default profile_name from profiles.current to output in error msgs if "None" passed 2022-11-09 20:11:20 +01:00
InsanePrawn
2cd41e75ca config/scheme: move DataClass to dataclass.py 2022-11-09 19:39:59 +01:00
InsanePrawn
76b5b26157 config: DataClass.transform(): add allow_extra=False parameter 2022-11-09 19:39:59 +01:00
InsanePrawn
a3ec35bcd6 config: introduce rust cache 2022-11-09 19:39:59 +01:00
InsanePrawn
47e74fb415 config: introduce per-arch persisted ccache dir 2022-11-09 19:39:59 +01:00
InsanePrawn
8ad18c00a6 global: refactor to use config.{file,runtime}.$member instead of config.file["$member"] 2022-11-09 19:39:59 +01:00
InsanePrawn
a13fdc70e1 config: add config.runtime.uid 2022-11-02 00:38:18 +01:00
InsanePrawn
2b539f5a5b Merge branch 'dev' into prawn/flavours 2022-08-25 16:53:13 +02:00
InsanePrawn
f940fd2301 test_config: remove double import of Profile 2022-08-23 21:43:18 +02:00
InsanePrawn
2d13d82943 config/: rework code around parsing profiles, add scheme.SparseProfile to account for the partial profiles in config 2022-08-20 04:32:33 +02:00
InsanePrawn
688f9e2375 config.ConfigStateHolder: initialize self._profile_cache in constructor 2022-08-19 18:12:21 +02:00
InsanePrawn
aaef4b7699 config/scheme: type annotate ConfigLoadState class 2022-08-18 05:47:05 +02:00
InsanePrawn
91b44299ae config/scheme.py: fix detection of extra profiles as 'unknown keys' and add unit test using pickle 2022-08-18 05:39:51 +02:00
InsanePrawn
30d9be0950 config: more fixes for scheme.py 2022-08-18 05:39:51 +02:00
InsanePrawn
7eefafc386 config: split up into state.py and profile.py, fixup tests 2022-08-18 03:45:12 +02:00
InsanePrawn
16fd2f1590 config: add data schemas based on munch in scheme.py, add unit tests 2022-08-18 02:44:54 +02:00
InsanePrawn
4298d15178 config/test_config.py: add test for saving modifications 2022-08-18 02:20:17 +02:00
InsanePrawn
5e9b0448dc config: improve tests 2022-08-17 23:24:41 +02:00
InsanePrawn
924f125893 config: add rudimentary tests 2022-08-17 21:20:51 +02:00
InsanePrawn
7ca0e80682 config: make filepath the first argument for ConfigStateHolder 2022-08-17 21:17:23 +02:00
InsanePrawn
7f86c80cec create submodule for config (move config.py) 2022-08-17 20:10:20 +02:00