Adds support for Android, NixOS, Slackware. Restores (and fixes) support for CrunchBang (and derivatives).
Breaking changes:
* Adds `Packages` support for multiple package-managers, adding their totals.
Changes:
+ Adds Android & NixOS logos and colors.
+ Adds Android detection to `Model` entry.
+ Adds Android, NixOS, Crunchbang detection. Fixes CrunchBang (and derivatives) detection.
+ `Distro` and `Model` entry test-cases refactored.
- `Packages` reverted to count '\n' characters instead of `os.linesep`: see e09434a860ccded9b75e1c5e2792af3919f03c21.
* Refactors `Model` entry to prefer static methods.
* Fixes bug where `Model` has a virtual-machine value when some system tools are missing.
* Distro-detection refactor, including `Distro` entry, to allow detection
Co-authored-by: Michael Bromilow <developer@bromilow.uk>
Vastly simplifies entry tests that deal with `Configuration` by adding some helper-methods.
The main reasoning behind this is that patching `Configuration.get` in tests is delicate, and refactoring any code very easily breaks this method. The new helper methods allow us to start from a known clean state in our entry tests.
+ Adds helper methods `entry_mock` and `patch_clean_configuration` for tests.
+ Makes `Configuration` into an iterable.
+ `Configuration`'s `update_recursive` method is now public.
* Moves entry tests to a new sub-folder in `archey/test`
* Moves default configuration to `archey.constants`
* Rewrites tests' patches to use the new helper methods.
Co-authored-by: Samuel FORESTIER <dev@samuel.domains>
> Alpine Linux ASCII logo has been borrowed from Neofetch (see <404c955e8f>).
- Known bug :
- The `Disk` entry is not compatible against the BusyBox `df` implementation.
- Alpine users are advised to **disable** it from configuration.
+ Creates a new `Colors` module dedicated to ANSI colors management
+ Improves consistency between logos colors palette ordering
+ Sets (fixes ?) Arch Linux main (text) color to bright cyan
+ Sets (fixes ?) Manjaro color to bright green
* Moved constants and logo ascii art out of the main file
* Moved Configuration class to separate file
* Moved Output class to a separate file
* Moved hostname class definition to it's own separate file
* Moved Model class definition to it's own file
* Moved Kernel class to its own file
* Moved uptime class definition to it's own file
* Moved Disk class definition to its own file
* Moved RAM class definition to it's own file
* Moved CPU class definition to it's own file
* Moved LanIp class definition to it's own file
* Moved WanIp class definition to a separate file
* Moved Packages class definition to separate file
* Moved User class definition to its own file
* Moved entry class definitions to their own directory
* Moved GPU entry class definition to a separate file
* Moved temperature entry class definition to a separate file
* Moved terminal entry class definition to separate file
* Moved shell entry class definition to separate file
* Rewrited the `LanIp` module to handle more cases and optimizations
* Moved window manager and desktop environment class definitions to separate files
* Moved distro class definition to separate file
* Removed direct use of COLOR_DICT in disk.py and ram.py
* Moved unit tests and modified import paths
* Moved {DE,WM}_DICT constants to their respective modules
* Made `Configuration` & `Processes` (new class) act as singletons
* Set the `Configuration` internal `config` dictionary to "private" attribute
+ Now relies on a `.pylintrc` file for Pylint (now almost fully-compliant)
+ Fixed typos
+ Added another dependency on `netifaces`, but this should remove the assumption about tools available in the user's environment
+ The project may now be run as a Python module
+ Marked Python 3.8 as supported for SetupTools
+ Added instructions (and tests) to build a standalone version of Archey
+ Adds @lannuttia to COPYRIGHT (initiator of the major rework)
- Removed the dependency to `net-tools`
Co-authored-by: Samuel FORESTIER <dev@samuel.domains>