Custom configuration
37 |
38 |
39 | ```json
40 | {}
41 | ```
42 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Suggest an idea for Archey4
4 | title: "[FEATURE] "
5 | labels: 'enhancement'
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Is your feature request related to a problem? Please describe.**
11 |
12 |
13 | **Describe the solution you'd like**
14 |
15 |
16 | **Describe alternatives you've considered**
17 |
18 |
19 | **Additional context**
20 |
21 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ## Description
5 |
6 |
7 |
8 | ## Reason and / or context
9 |
10 |
11 |
12 |
13 | ## How has this been tested ?
14 |
15 |
16 |
17 | ## Types of changes :
18 |
19 | - [ ] Bug fix (non-breaking change which fixes an issue)
20 | - [ ] Typo / style fix (non-breaking change which improves readability)
21 | - [ ] New feature (non-breaking change which adds functionality)
22 | - [ ] Breaking change (fix or feature that would cause existing functionality to change)
23 |
24 | ## Checklist :
25 |
26 | - [ ] \[IF NEEDED\] I have updated the _README.md_ file accordingly ;
27 | - [ ] \[IF NEEDED\] I have updated the test cases (which pass) accordingly ;
28 | - [ ] \[IF BREAKING\] This pull request targets next Archey version branch ;
29 | - [ ] My changes looks good ;
30 | - [ ] I agree that my code may be modified in the future ;
31 | - [ ] My code follows the code style of this project ([PEP8](https://www.python.org/dev/peps/pep-0008/)).
32 |
--------------------------------------------------------------------------------
/.github/archey4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HorlogeSkynet/archey4/f9e98a281bd6832fa7f3abf353dae16853d01f02/.github/archey4.png
--------------------------------------------------------------------------------
/.github/workflows/deployment.yml:
--------------------------------------------------------------------------------
1 | ---
2 | name: Deployment
3 |
4 | on:
5 | # Run when new releases are published.
6 | release:
7 | types: [published]
8 | # Allow manual triggers from GitHub.
9 | workflow_dispatch:
10 | inputs:
11 | tag:
12 | required: true
13 | description: 'Git tag'
14 |
15 | jobs:
16 | bump_homebrew_formula:
17 | runs-on: macos-latest
18 | steps:
19 | - name: Bump Homebrew formula
20 | uses: dawidd6/action-homebrew-bump-formula@v3
21 | with:
22 | token: ${{ secrets.HOMEBREW_BUMP_FORMULA_GITHUB_TOKEN }}
23 | formula: archey4
24 | tag: ${{ github.event.release.tag_name || github.event.inputs.tag }}
25 |
--------------------------------------------------------------------------------
/.github/workflows/integration.yml:
--------------------------------------------------------------------------------
1 | ---
2 | name: Integration
3 |
4 | on: [push, pull_request]
5 |
6 | jobs:
7 | python_test:
8 | name: Run against Python ${{ matrix.python-version }} on ${{ matrix.os }}
9 | runs-on: ${{ matrix.os }}
10 | env:
11 | CLICOLOR_FORCE: 1
12 | strategy:
13 | fail-fast: false
14 | matrix:
15 | os:
16 | - 'macOS-latest'
17 | - 'ubuntu-latest'
18 | python-version:
19 | # - '3.7'
20 | # - '3.8'
21 | - '3.9'
22 | # - '3.10'
23 | - '3.11'
24 | # - '3.12'
25 | - '3.13'
26 | - '3.14-dev'
27 | - 'pypy3.9'
28 | include:
29 | - os: 'ubuntu-20.04'
30 | python-version: '3.6'
31 |
32 | steps:
33 | - uses: actions/checkout@v4
34 |
35 | - uses: actions/setup-python@v5
36 | with:
37 | python-version: ${{ matrix.python-version }}
38 |
39 | - name: Install required dependencies
40 | run: |
41 | python -m pip install --upgrade pip setuptools
42 |
43 | - name: Install module regularly
44 | run: pip install .
45 |
46 | - name: Simple module executions
47 | run: |
48 | time archey
49 | time python -m archey
50 |
51 | - name: Run our test suite
52 | run: python -m unittest
53 |
54 | standalone_build:
55 | name: Standalone builds
56 | runs-on: ubuntu-latest
57 | env:
58 | CLICOLOR_FORCE: 1
59 |
60 | steps:
61 | - uses: actions/checkout@v4
62 |
63 | - uses: actions/setup-python@v5
64 | with:
65 | python-version: "3.11"
66 |
67 | - name: Install required dependencies
68 | run: |
69 | sudo apt update && sudo apt install -y patchelf
70 | python -m pip install --upgrade pip setuptools
71 | pip install nuitka pex stickytape pyinstaller
72 | pip install .
73 |
74 | - name: Standalone building (with Nuitka)
75 | run: |
76 | python -m nuitka \
77 | --onefile \
78 | --include-package=archey.logos \
79 | --output-filename=archey \
80 | --output-dir=dist \
81 | --quiet \
82 | archey/__main__.py
83 | time ./dist/archey
84 | rm dist/archey
85 |
86 | - name: Standalone building (with PEX)
87 | run: |
88 | pex \
89 | -o dist/archey \
90 | -m archey \
91 | .
92 | time ./dist/archey
93 | rm dist/archey
94 |
95 | - name: Standalone building (with Stickytape)
96 | run: |
97 | stickytape \
98 | --copy-shebang \
99 | --add-python-path . \
100 | --output-file dist/archey \
101 | --add-python-module archey.logos."$(python -c 'import distro; print(distro.id())')" \
102 | archey/__main__.py
103 | chmod +x dist/archey
104 | time ./dist/archey
105 | rm dist/archey
106 |
107 | - name: Standalone building (with PyInstaller)
108 | run: |
109 | pyinstaller \
110 | --distpath dist \
111 | --specpath dist \
112 | --name archey \
113 | --onefile archey/__main__.py \
114 | --hidden-import archey.logos."$(python -c 'import distro; print(distro.id())')" \
115 | --log-level WARN
116 | time ./dist/archey
117 | rm dist/archey
118 |
119 | python_lint:
120 | name: Lint Python sources
121 | runs-on: ubuntu-latest
122 |
123 | steps:
124 | - uses: actions/checkout@v4
125 |
126 | - uses: actions/setup-python@v5
127 | with:
128 | python-version: "3.11"
129 |
130 | - name: Install required dependencies
131 | run: |
132 | python -m pip install --upgrade pip
133 | pip install pylint pylint-secure-coding-standard mypy black isort
134 | pip install .
135 |
136 | - name: Lint sources against Pylint
137 | run: pylint archey/
138 |
139 | - name: Lint sources against Mypy
140 | run: mypy archey/
141 |
142 | - name: Run isort
143 | run: isort --check --diff archey/
144 |
145 | - name: Run Black
146 | run: black --check --diff archey/
147 |
148 | shell_lint:
149 | name: Lint packaging shell scripts
150 | runs-on: ubuntu-latest
151 |
152 | steps:
153 | - uses: actions/checkout@v4
154 |
155 | - run: shellcheck packaging/*
156 |
157 | man_lint:
158 | name: Lint manual page
159 | runs-on: ubuntu-latest
160 |
161 | steps:
162 | - uses: actions/checkout@v4
163 |
164 | - run: sudo apt update && sudo apt install -y groff
165 |
166 | - run: |
167 | groff -man -Tascii -z archey.1 2&>1 | tee errors
168 | test ! -s errors
169 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 |
2 | ### Python ###
3 | # Byte-compiled / optimized / DLL files
4 | __pycache__/
5 | *.py[cod]
6 | *$py.class
7 |
8 | # C extensions
9 | *.so
10 |
11 | # Distribution / packaging
12 | .Python
13 | build/
14 | develop-eggs/
15 | dist/
16 | downloads/
17 | eggs/
18 | .eggs/
19 | parts/
20 | sdist/
21 | var/
22 | wheels/
23 | pip-wheel-metadata/
24 | share/python-wheels/
25 | *.egg-info/
26 | .installed.cfg
27 | *.egg
28 | MANIFEST
29 |
30 | # PyInstaller
31 | # Usually these files are written by a python script from a template
32 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
33 | *.manifest
34 | *.spec
35 |
36 | # Installer logs
37 | pip-log.txt
38 | pip-delete-this-directory.txt
39 |
40 | # Unit test / coverage reports
41 | htmlcov/
42 | .tox/
43 | .nox/
44 | .coverage
45 | .coverage.*
46 | .cache
47 | nosetests.xml
48 | coverage.xml
49 | *.cover
50 | *.py,cover
51 | .hypothesis/
52 | .pytest_cache/
53 | pytestdebug.log
54 |
55 | # Translations
56 | *.mo
57 | *.pot
58 |
59 | # Django stuff:
60 | *.log
61 | local_settings.py
62 | db.sqlite3
63 | db.sqlite3-journal
64 |
65 | # Flask stuff:
66 | instance/
67 | .webassets-cache
68 |
69 | # Scrapy stuff:
70 | .scrapy
71 |
72 | # Sphinx documentation
73 | docs/_build/
74 | doc/_build/
75 |
76 | # PyBuilder
77 | target/
78 |
79 | # Jupyter Notebook
80 | .ipynb_checkpoints
81 |
82 | # IPython
83 | profile_default/
84 | ipython_config.py
85 |
86 | # pyenv
87 | .python-version
88 |
89 | # pipenv
90 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
91 | # However, in case of collaboration, if having platform-specific dependencies or dependencies
92 | # having no cross-platform support, pipenv may install dependencies that don't work, or not
93 | # install all needed dependencies.
94 | #Pipfile.lock
95 |
96 | # poetry
97 | #poetry.lock
98 |
99 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow
100 | __pypackages__/
101 |
102 | # Celery stuff
103 | celerybeat-schedule
104 | celerybeat.pid
105 |
106 | # SageMath parsed files
107 | *.sage.py
108 |
109 | # Environments
110 | # .env
111 | .env/
112 | .venv/
113 | env/
114 | venv/
115 | ENV/
116 | env.bak/
117 | venv.bak/
118 | pythonenv*
119 |
120 | # Spyder project settings
121 | .spyderproject
122 | .spyproject
123 |
124 | # Rope project settings
125 | .ropeproject
126 |
127 | # mkdocs documentation
128 | /site
129 |
130 | # mypy
131 | .mypy_cache/
132 | .dmypy.json
133 | dmypy.json
134 |
135 | # Pyre type checker
136 | .pyre/
137 |
138 | # pytype static type analyzer
139 | .pytype/
140 |
141 | # operating system-related files
142 | # file properties cache/storage on macOS
143 | *.DS_Store
144 | # thumbnail cache on Windows
145 | Thumbs.db
146 |
147 | # profiling data
148 | .prof
149 |
--------------------------------------------------------------------------------
/COPYRIGHT.md:
--------------------------------------------------------------------------------
1 | # Copyrights
2 |
3 | Copyright 2010 Melik Manukyan