lupaxa-sysinfo 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,23 @@
1
+ # OS
2
+ .DS_Store
3
+
4
+ # Cursor
5
+ .superpowers/
6
+ .worktrees/
7
+ cursor-docs
8
+
9
+ # Make
10
+ .makefiles/
11
+
12
+ # MkDocs
13
+ site/
14
+
15
+ # Python
16
+ .venv/
17
+ __pycache__/
18
+ .mypy_cache/
19
+ .ruff_cache/
20
+ .pytest_cache/
21
+ dist/
22
+ build/
23
+ *.egg-info/
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 The Lupaxa Project
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,180 @@
1
+ Metadata-Version: 2.5
2
+ Name: lupaxa-sysinfo
3
+ Version: 0.1.0
4
+ Summary: Cross-platform system inventory library and CLI with modular collectors, redaction, and JSON/YAML/XML/HTML reports.
5
+ Project-URL: Homepage, https://github.com/lupaxa-developers-toolbox/sysinfo
6
+ Project-URL: Repository, https://github.com/lupaxa-developers-toolbox/sysinfo
7
+ Project-URL: Issues, https://github.com/lupaxa-developers-toolbox/sysinfo/issues
8
+ Project-URL: Documentation, https://sysinfo.thelupaxaproject.org/
9
+ Author: The Lupaxa Project
10
+ License: MIT License
11
+
12
+ Copyright (c) 2026 The Lupaxa Project
13
+
14
+ Permission is hereby granted, free of charge, to any person obtaining a copy
15
+ of this software and associated documentation files (the "Software"), to deal
16
+ in the Software without restriction, including without limitation the rights
17
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
18
+ copies of the Software, and to permit persons to whom the Software is
19
+ furnished to do so, subject to the following conditions:
20
+
21
+ The above copyright notice and this permission notice shall be included in all
22
+ copies or substantial portions of the Software.
23
+
24
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
25
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
26
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
27
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
28
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
29
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
30
+ SOFTWARE.
31
+ License-File: LICENCE
32
+ Keywords: cli,inventory,psutil,sysinfo,system-info
33
+ Classifier: Development Status :: 4 - Beta
34
+ Classifier: Environment :: Console
35
+ Classifier: Intended Audience :: Developers
36
+ Classifier: License :: OSI Approved :: MIT License
37
+ Classifier: Operating System :: OS Independent
38
+ Classifier: Programming Language :: Python :: 3
39
+ Classifier: Programming Language :: Python :: 3.10
40
+ Classifier: Programming Language :: Python :: 3.11
41
+ Classifier: Programming Language :: Python :: 3.12
42
+ Classifier: Programming Language :: Python :: 3.13
43
+ Classifier: Programming Language :: Python :: 3.14
44
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
45
+ Classifier: Topic :: System :: Systems Administration
46
+ Classifier: Topic :: Utilities
47
+ Requires-Python: >=3.10
48
+ Requires-Dist: distro>=1.8; sys_platform == 'linux'
49
+ Requires-Dist: psutil>=5.9
50
+ Requires-Dist: pyyaml>=6.0
51
+ Requires-Dist: tldextract>=5.0
52
+ Provides-Extra: dev
53
+ Requires-Dist: bump-my-version>=1.2.0; extra == 'dev'
54
+ Requires-Dist: hatch>=1.12.0; extra == 'dev'
55
+ Requires-Dist: mkdocs-material==9.7.7; extra == 'dev'
56
+ Requires-Dist: mkdocs==1.6.1; extra == 'dev'
57
+ Requires-Dist: mypy>=1.12.0; extra == 'dev'
58
+ Requires-Dist: pip-audit>=2.7.0; extra == 'dev'
59
+ Requires-Dist: pytest-cov>=5.0; extra == 'dev'
60
+ Requires-Dist: pytest>=8.0; extra == 'dev'
61
+ Requires-Dist: ruff>=0.6.0; extra == 'dev'
62
+ Provides-Extra: test
63
+ Requires-Dist: pytest-cov>=5.0; extra == 'test'
64
+ Requires-Dist: pytest>=8.0; extra == 'test'
65
+ Description-Content-Type: text/markdown
66
+
67
+ <!-- markdownlint-disable -->
68
+ <p align="center">
69
+ <a href="https://github.com/lupaxa-developers-toolbox">
70
+ <img src="https://raw.githubusercontent.com/the-lupaxa-project/brand-assets/master/logos/organisations/developers-toolbox/readme-logo.png" alt="Project Logo" width="256"/><br/>
71
+ </a>
72
+ </p>
73
+ <h3 align="center">
74
+ The Lupaxa Developers Toolbox<br />
75
+ Part of The Lupaxa Project
76
+ </h3>
77
+
78
+ <br />
79
+
80
+ # lupaxa-sysinfo
81
+
82
+ Cross-platform system inventory **library and CLI**: modular collectors, granular
83
+ redaction, and JSON / YAML / XML / HTML reports.
84
+
85
+ Built for automation and support workflows used by The Lupaxa Project.
86
+
87
+ ## Features
88
+
89
+ - Lightweight defaults: basic host info as pretty-printed JSON
90
+ - Opt-in collectors: CPU, memory, disks, network, listening ports, processes,
91
+ firewall, runtimes, GPU, packages
92
+ - Granular redaction for hosts, users, IPs, secrets, domains, and custom regexes
93
+ - Profiles for common workflows: `minimal`, `ci`, `support`
94
+ - Output formats (CLI): JSON, YAML, XML, human summary, and compact HTML
95
+ - Library API returns plain dictionaries with `schema_version` and `tool_version`
96
+ - Fully typed, linted, formatted, and tested
97
+ - MkDocs documentation included
98
+
99
+ ## Installation
100
+
101
+ ### From PyPI
102
+
103
+ ```bash
104
+ pip install lupaxa-sysinfo
105
+ ```
106
+
107
+ ### From source (development mode)
108
+
109
+ ```bash
110
+ pip install -e ".[dev]"
111
+ ```
112
+
113
+ ## Library quick start
114
+
115
+ ```python
116
+ from lupaxa.sysinfo import collect_report
117
+
118
+ report = collect_report(cpu=True, memory=True)
119
+ ```
120
+
121
+ For `CollectOptions`, `RedactOptions`, and profiles, see the
122
+ [documentation](https://sysinfo.thelupaxaproject.org/).
123
+
124
+ ## CLI quick start
125
+
126
+ ```bash
127
+ sysinfo --help
128
+ sysinfo --version
129
+ sysinfo --profile ci --json report.json
130
+ sysinfo --all --yaml report.yaml
131
+ sysinfo --all --output xml
132
+ sysinfo --profile support --xml report.xml
133
+ ```
134
+
135
+ You can also run the CLI as a module:
136
+
137
+ ```bash
138
+ python -m lupaxa.sysinfo --help
139
+ python -m lupaxa.sysinfo --profile ci --json out.json
140
+ ```
141
+
142
+ ## Requirements
143
+
144
+ - Python 3.10+
145
+ - Runtime dependencies: `psutil`, `PyYAML`, `tldextract`
146
+ (plus `distro` on Linux)
147
+
148
+ ## Documentation
149
+
150
+ Online documentation:
151
+
152
+ [Documentation](https://sysinfo.thelupaxaproject.org/)
153
+
154
+ Source repository:
155
+
156
+ [GitHub](https://github.com/lupaxa-developers-toolbox/sysinfo)
157
+
158
+ ### Serve docs locally
159
+
160
+ From a clone of the repository:
161
+
162
+ ```bash
163
+ make mkdocs-serve
164
+ ```
165
+
166
+ Then open the local URL printed by MkDocs in your browser.
167
+
168
+ ## Development
169
+
170
+ Clone the repository and install with Make:
171
+
172
+ ```bash
173
+ make init # first-time makefile-skills checkout
174
+ make python-install-dev # editable install with [dev]
175
+ make python-check # lint, type-check, and test
176
+ ```
177
+
178
+ <a href="https://github.com/the-lupaxa-project">
179
+ <img src="https://raw.githubusercontent.com/the-lupaxa-project/brand-assets/master/logos/components/footer-for-child-orgs.svg" alt="The Lupaxa Project Footer" width="100%" />
180
+ </a>
@@ -0,0 +1,114 @@
1
+ <!-- markdownlint-disable -->
2
+ <p align="center">
3
+ <a href="https://github.com/lupaxa-developers-toolbox">
4
+ <img src="https://raw.githubusercontent.com/the-lupaxa-project/brand-assets/master/logos/organisations/developers-toolbox/readme-logo.png" alt="Project Logo" width="256"/><br/>
5
+ </a>
6
+ </p>
7
+ <h3 align="center">
8
+ The Lupaxa Developers Toolbox<br />
9
+ Part of The Lupaxa Project
10
+ </h3>
11
+
12
+ <br />
13
+
14
+ # lupaxa-sysinfo
15
+
16
+ Cross-platform system inventory **library and CLI**: modular collectors, granular
17
+ redaction, and JSON / YAML / XML / HTML reports.
18
+
19
+ Built for automation and support workflows used by The Lupaxa Project.
20
+
21
+ ## Features
22
+
23
+ - Lightweight defaults: basic host info as pretty-printed JSON
24
+ - Opt-in collectors: CPU, memory, disks, network, listening ports, processes,
25
+ firewall, runtimes, GPU, packages
26
+ - Granular redaction for hosts, users, IPs, secrets, domains, and custom regexes
27
+ - Profiles for common workflows: `minimal`, `ci`, `support`
28
+ - Output formats (CLI): JSON, YAML, XML, human summary, and compact HTML
29
+ - Library API returns plain dictionaries with `schema_version` and `tool_version`
30
+ - Fully typed, linted, formatted, and tested
31
+ - MkDocs documentation included
32
+
33
+ ## Installation
34
+
35
+ ### From PyPI
36
+
37
+ ```bash
38
+ pip install lupaxa-sysinfo
39
+ ```
40
+
41
+ ### From source (development mode)
42
+
43
+ ```bash
44
+ pip install -e ".[dev]"
45
+ ```
46
+
47
+ ## Library quick start
48
+
49
+ ```python
50
+ from lupaxa.sysinfo import collect_report
51
+
52
+ report = collect_report(cpu=True, memory=True)
53
+ ```
54
+
55
+ For `CollectOptions`, `RedactOptions`, and profiles, see the
56
+ [documentation](https://sysinfo.thelupaxaproject.org/).
57
+
58
+ ## CLI quick start
59
+
60
+ ```bash
61
+ sysinfo --help
62
+ sysinfo --version
63
+ sysinfo --profile ci --json report.json
64
+ sysinfo --all --yaml report.yaml
65
+ sysinfo --all --output xml
66
+ sysinfo --profile support --xml report.xml
67
+ ```
68
+
69
+ You can also run the CLI as a module:
70
+
71
+ ```bash
72
+ python -m lupaxa.sysinfo --help
73
+ python -m lupaxa.sysinfo --profile ci --json out.json
74
+ ```
75
+
76
+ ## Requirements
77
+
78
+ - Python 3.10+
79
+ - Runtime dependencies: `psutil`, `PyYAML`, `tldextract`
80
+ (plus `distro` on Linux)
81
+
82
+ ## Documentation
83
+
84
+ Online documentation:
85
+
86
+ [Documentation](https://sysinfo.thelupaxaproject.org/)
87
+
88
+ Source repository:
89
+
90
+ [GitHub](https://github.com/lupaxa-developers-toolbox/sysinfo)
91
+
92
+ ### Serve docs locally
93
+
94
+ From a clone of the repository:
95
+
96
+ ```bash
97
+ make mkdocs-serve
98
+ ```
99
+
100
+ Then open the local URL printed by MkDocs in your browser.
101
+
102
+ ## Development
103
+
104
+ Clone the repository and install with Make:
105
+
106
+ ```bash
107
+ make init # first-time makefile-skills checkout
108
+ make python-install-dev # editable install with [dev]
109
+ make python-check # lint, type-check, and test
110
+ ```
111
+
112
+ <a href="https://github.com/the-lupaxa-project">
113
+ <img src="https://raw.githubusercontent.com/the-lupaxa-project/brand-assets/master/logos/components/footer-for-child-orgs.svg" alt="The Lupaxa Project Footer" width="100%" />
114
+ </a>
@@ -0,0 +1,82 @@
1
+ <p align="center">
2
+ <a href="https://github.com/lupaxa-developers-toolbox">
3
+ <img src="https://raw.githubusercontent.com/the-lupaxa-project/brand-assets/master/logos/organisations/developers-toolbox/readme-logo.png" alt="Developers Toolbox" />
4
+ </a>
5
+ </p>
6
+
7
+ <h1 align="center">sysinfo</h1>
8
+
9
+ Cross-platform system inventory with modular collectors, redaction, and JSON/YAML/XML/HTML reports.
10
+
11
+ <p align="center">
12
+ <a href="https://sysinfo.thelupaxaproject.org/">Documentation</a>
13
+ ·
14
+ <a href="https://github.com/lupaxa-developers-toolbox/sysinfo">GitHub</a>
15
+ </p>
16
+
17
+ ## Install
18
+
19
+ ```bash
20
+ pip install lupaxa-sysinfo
21
+ sysinfo --help
22
+ ```
23
+
24
+ ## Features
25
+
26
+ - Lightweight defaults: basic host info as pretty-printed JSON
27
+ - Opt-in collectors: CPU, memory, disks, network, listening ports, processes, firewall, runtimes, GPU, packages
28
+ - Granular redaction for hosts, users, IPs, secrets, domains, and custom regexes
29
+ - Profiles for common workflows: `minimal`, `ci`, `support`
30
+ - JSON, YAML, XML, human summary, and compact HTML output (CLI)
31
+
32
+ ## Requirements
33
+
34
+ - Python 3.10+
35
+ - Runtime: `psutil` (plus `distro` on Linux; `tldextract` for PSL-aware redaction)
36
+
37
+ ## Library quick start
38
+
39
+ ```python
40
+ from lupaxa.sysinfo import collect_report
41
+
42
+ report = collect_report(cpu=True, memory=True)
43
+ ```
44
+
45
+ Reports are plain dictionaries with `schema_version` and `tool_version` keys,
46
+ ready for JSON serialisation. See the
47
+ [documentation](https://sysinfo.thelupaxaproject.org/) for `CollectOptions`,
48
+ `RedactOptions`, and profiles.
49
+
50
+ ## CLI quick start
51
+
52
+ ```bash
53
+ sysinfo --version
54
+ sysinfo --profile ci --json report.json
55
+ sysinfo --all --yaml report.yaml
56
+ sysinfo --all --output xml
57
+ sysinfo --profile support --xml report.xml
58
+ ```
59
+
60
+ You can also run the CLI as a module:
61
+
62
+ ```bash
63
+ python -m lupaxa.sysinfo --help
64
+ python -m lupaxa.sysinfo --profile ci --json out.json
65
+ ```
66
+
67
+ ## Development
68
+
69
+ From a clone of this repository:
70
+
71
+ ```bash
72
+ make init # first-time makefile-skills checkout
73
+ make python-install-dev # editable install with [dev]
74
+ make python-check # lint, type-check, and test
75
+ make mkdocs-serve # after skills are installed
76
+ ```
77
+
78
+ Community standards (code of conduct, contributing, security) are in [`docs/`](docs/).
79
+
80
+ <a href="https://github.com/the-lupaxa-project">
81
+ <img src="https://raw.githubusercontent.com/the-lupaxa-project/brand-assets/master/logos/components/footer-for-child-orgs.svg" alt="The Lupaxa Project Footer" width="100%" />
82
+ </a>
@@ -0,0 +1,23 @@
1
+ <p align="center">
2
+ <a href="https://github.com/lupaxa-developers-toolbox">
3
+ <img src="https://raw.githubusercontent.com/the-lupaxa-project/brand-assets/master/logos/organisations/developers-toolbox/readme-logo.png" alt="Organisation Logo" />
4
+ </a>
5
+ </p>
6
+
7
+ <h1 align="center">Core Documentation</h1>
8
+
9
+ The following documents define the standards that apply across **The Lupaxa Project**:
10
+
11
+ | Document | Purpose |
12
+ | :------------------------------------ | :---------------------------------------------------------------- |
13
+ | [Code of Conduct](CODE_OF_CONDUCT.md) | Expected behaviour and reporting procedures. |
14
+ | [How to Contribute](CONTRIBUTING.md) | Development workflow, coding standards, and contribution process. |
15
+ | [Governance](GOVERNANCE.md) | Project governance, roles, and decision-making. |
16
+ | [Maintainers](MAINTAINERS.md) | Maintainer responsibilities and expectations. |
17
+ | [Projects Overview](PROJECTS.md) | Overview of organisations, repositories, and project structure. |
18
+ | [Security Policy](SECURITY.md) | Responsible disclosure and secure development practices. |
19
+ | [Support Guide](SUPPORT.md) | How to obtain help and support. |
20
+
21
+ <a href="https://github.com/the-lupaxa-project">
22
+ <img src="https://raw.githubusercontent.com/the-lupaxa-project/brand-assets/master/logos/components/footer-for-child-orgs.svg" alt="The Lupaxa Project Footer" width="100%" />
23
+ </a>
@@ -0,0 +1,156 @@
1
+ [build-system]
2
+ requires = ["hatchling>=1.18"]
3
+ build-backend = "hatchling.build"
4
+
5
+ [project]
6
+ name = "lupaxa-sysinfo"
7
+ dynamic = ["version"]
8
+ description = "Cross-platform system inventory library and CLI with modular collectors, redaction, and JSON/YAML/XML/HTML reports."
9
+ readme = "README-PYPI.md"
10
+ license = { file = "LICENCE" }
11
+ requires-python = ">=3.10"
12
+
13
+ authors = [
14
+ { name = "The Lupaxa Project" }
15
+ ]
16
+
17
+ keywords = ["sysinfo", "system-info", "inventory", "cli", "psutil"]
18
+
19
+ dependencies = [
20
+ "psutil>=5.9",
21
+ "distro>=1.8; sys_platform == 'linux'",
22
+ "tldextract>=5.0",
23
+ "PyYAML>=6.0",
24
+ ]
25
+
26
+ classifiers = [
27
+ "Development Status :: 4 - Beta",
28
+ "Environment :: Console",
29
+ "Intended Audience :: Developers",
30
+ "License :: OSI Approved :: MIT License",
31
+ "Operating System :: OS Independent",
32
+ "Programming Language :: Python :: 3",
33
+ "Programming Language :: Python :: 3.10",
34
+ "Programming Language :: Python :: 3.11",
35
+ "Programming Language :: Python :: 3.12",
36
+ "Programming Language :: Python :: 3.13",
37
+ "Programming Language :: Python :: 3.14",
38
+ "Topic :: System :: Systems Administration",
39
+ "Topic :: Software Development :: Libraries :: Python Modules",
40
+ "Topic :: Utilities",
41
+ ]
42
+
43
+ [project.urls]
44
+ Homepage = "https://github.com/lupaxa-developers-toolbox/sysinfo"
45
+ Repository = "https://github.com/lupaxa-developers-toolbox/sysinfo"
46
+ Issues = "https://github.com/lupaxa-developers-toolbox/sysinfo/issues"
47
+ Documentation = "https://sysinfo.thelupaxaproject.org/"
48
+
49
+ [project.scripts]
50
+ sysinfo = "lupaxa.sysinfo.cli:main"
51
+
52
+ [project.optional-dependencies]
53
+ dev = [
54
+ "pytest>=8.0",
55
+ "pytest-cov>=5.0",
56
+ "ruff>=0.6.0",
57
+ "mypy>=1.12.0",
58
+ "hatch>=1.12.0",
59
+ "bump-my-version>=1.2.0",
60
+ "pip-audit>=2.7.0",
61
+ "mkdocs==1.6.1",
62
+ "mkdocs-material==9.7.7",
63
+ ]
64
+ test = [
65
+ "pytest>=8.0",
66
+ "pytest-cov>=5.0",
67
+ ]
68
+
69
+ [tool.hatch.version]
70
+ path = "src/lupaxa/sysinfo/version.py"
71
+
72
+ [tool.hatch.build.targets.sdist]
73
+ include = [
74
+ "src/**",
75
+ "README.md",
76
+ "README-PYPI.md",
77
+ "LICENCE",
78
+ ]
79
+
80
+ [tool.hatch.build.targets.wheel]
81
+ packages = ["src/lupaxa"]
82
+
83
+ [tool.ruff]
84
+ line-length = 100
85
+ target-version = "py310"
86
+
87
+ [tool.ruff.lint]
88
+ # Core Lupaxa rule set
89
+ select = [
90
+ # --- Essential correctness + hygiene ---
91
+ "E", # pycodestyle: basic style errors
92
+ "F", # pyflakes: unused vars, undefined names
93
+ "I", # import sorting
94
+ "B", # bugbear: common footguns
95
+
96
+ # --- Security layer ---
97
+ "S", # bandit-like security checks
98
+
99
+ # --- Modernisation + cleanup ---
100
+ "UP", # pyupgrade: modern Python idioms
101
+ "SIM", # simplify complex expressions/conditions
102
+ "C4", # flake8-comprehensions
103
+ "ISC", # implicit string-concat safety
104
+
105
+ # --- New additions (strict mode) ---
106
+ "D", # pydocstyle: docstring formatting/consistency
107
+ "ANN", # annotations: missing/incorrect typing hints
108
+ "PT", # pytest: best practices for tests
109
+ ]
110
+
111
+ # Disable D2xx summary/spacing rules that conflict with our preferred style
112
+ ignore = [
113
+ "D200", # one-line docstring violation (not needed for multi-line)
114
+ "D201", # no blank line before docstring
115
+ "D202", # blank line after docstring
116
+ "D203", # 1 blank line before class docstring
117
+ "D204", # 1 blank line after class docstring
118
+ "D205", # 1 blank line required between summary line and description
119
+ "D206", # various indentation rules
120
+ "D207",
121
+ "D208",
122
+ "D209",
123
+ "D210",
124
+ "D211",
125
+ "D212", # "Summary should start at first line" (we prefer second line)
126
+ ]
127
+
128
+ [tool.ruff.lint.per-file-ignores]
129
+ # Nested test layout (tests/cli, tests/core); `tests/*` alone does not match.
130
+ "tests/**/*.py" = [
131
+ "S101", # allow bare assert in tests
132
+ "S105", # allow test-only "password"-like literals
133
+ "ANN001", # allow untyped fixture arguments
134
+ "ANN201", # allow untyped test function returns
135
+ ]
136
+
137
+ [tool.ruff.lint.pydocstyle]
138
+ # NumPy-style docstrings, closest to our format
139
+ convention = "numpy"
140
+
141
+ [tool.ruff.format]
142
+ quote-style = "double"
143
+
144
+ [tool.mypy]
145
+ python_version = "3.10"
146
+ files = ["src", "tests"]
147
+ mypy_path = "src"
148
+ explicit_package_bases = true
149
+ namespace_packages = true
150
+ warn_unused_configs = true
151
+ ignore_missing_imports = true
152
+
153
+ [tool.pytest.ini_options]
154
+ addopts = "-ra -q --disable-warnings"
155
+ testpaths = ["tests"]
156
+ pythonpath = ["src"]
@@ -0,0 +1,20 @@
1
+ """Lupaxa sysinfo — cross-platform system inventory library."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from .api import collect_report
6
+ from .collectors import SCHEMA_VERSION, set_strict_missing
7
+ from .options import CollectOptions, RedactOptions
8
+ from .redact import public_suffix_available
9
+ from .version import __version__, get_version
10
+
11
+ __all__ = [
12
+ "SCHEMA_VERSION",
13
+ "CollectOptions",
14
+ "RedactOptions",
15
+ "__version__",
16
+ "collect_report",
17
+ "get_version",
18
+ "public_suffix_available",
19
+ "set_strict_missing",
20
+ ]
@@ -0,0 +1,8 @@
1
+ """Allow ``python -m lupaxa.sysinfo`` to run the CLI."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from .cli import main
6
+
7
+ if __name__ == "__main__":
8
+ main()