Compare commits

..

No commits in common. "25-llm-archlinux-package-manager" and "master" have entirely different histories.

325 changed files with 11178 additions and 127896 deletions

4
.gitattributes vendored

@ -1,9 +1,5 @@
releases/tar/** filter=lfs diff=lfs merge=lfs -text releases/tar/** filter=lfs diff=lfs merge=lfs -text
releases/whl/** filter=lfs diff=lfs merge=lfs -text releases/whl/** filter=lfs diff=lfs merge=lfs -text
python/online/fxreader/pr34/commands_typed/archlinux/tests/res/*.db filter=lfs diff=lfs merge=lfs -text
python/deps/whl/** filter=lfs diff=lfs merge=lfs -text python/deps/whl/** filter=lfs diff=lfs merge=lfs -text
docker/*/deps/whl/** filter=lfs diff=lfs merge=lfs -text docker/*/deps/whl/** filter=lfs diff=lfs merge=lfs -text
**/*.gpg filter=lfs diff=lfs merge=lfs -text **/*.gpg filter=lfs diff=lfs merge=lfs -text
python/.venv-whl-cache/** filter=lfs diff=lfs merge=lfs -text
meson/**/.venv-whl-cache/** filter=lfs diff=lfs merge=lfs -text
meson/**/deps/whl/** filter=lfs diff=lfs merge=lfs -text

5
.gitignore vendored

@ -14,8 +14,6 @@ d2/book1/books
!.vscode/launch.json !.vscode/launch.json
!python/deps/whl/**/*.whl !python/deps/whl/**/*.whl
python/build python/build
python/pyproject.toml
meson/**/pyproject.toml
.*.kate-swp .*.kate-swp
!releases/whl/*.whl !releases/whl/*.whl
.env .env
@ -24,6 +22,3 @@ meson/**/pyproject.toml
!docker/*/deps/whl/** !docker/*/deps/whl/**
!dotfiles/.vim !dotfiles/.vim
!python/.venv-whl-cache/**
!meson/**/.venv-whl-cache/**
!meson/**/deps/whl/**

@ -60,17 +60,6 @@ python_put_pr34:
ln -sf $(INSTALL_ROOT)/env3/bin/oom_firefox $(INSTALL_ROOT)/oom_firefox ln -sf $(INSTALL_ROOT)/env3/bin/oom_firefox $(INSTALL_ROOT)/oom_firefox
ARCHLINUX_MESON_DIR ?= meson/online/fxreader/pr34/commands_typed/archlinux
python_put_archlinux_venv:
cd python && ./.venv/bin/python3 -m uv pip install \
--no-cache --no-index --reinstall \
-f ../releases/whl \
-f ./.venv-whl-cache \
-f ../$(ARCHLINUX_MESON_DIR)/.venv-whl-cache \
'online.fxreader.pr34.commands_typed.archlinux[solv]'
PYTHON_PROJECTS_NAMES ?= online.fxreader.pr34 PYTHON_PROJECTS_NAMES ?= online.fxreader.pr34
python_whl: python_whl:
for f in $(PYTHON_PROJECTS_NAMES); do \ for f in $(PYTHON_PROJECTS_NAMES); do \
@ -229,29 +218,3 @@ nginx_reload_common:
nginx_reload: nginx_reload:
make nginx_reload_common NGINX_SERVICE=ssl-app make nginx_reload_common NGINX_SERVICE=ssl-app
make nginx_reload_common NGINX_SERVICE=app make nginx_reload_common NGINX_SERVICE=app
LLM_COMPOSE ?= podman-compose -f docker-compose.local.yml
LLM_DOCKER ?= podman
llm-podman-pull:
$(LLM_COMPOSE) pull llm
llm-podman-create:
$(LLM_COMPOSE) up --no-start --force-recreate llm
llm-podman-up:
# $(LLM_COMPOSE) start
$(LLM_DOCKER) start claude_llm_1
llm-podman-down:
# $(LLM_COMPOSE) stop
$(LLM_DOCKER) stop claude_llm_1
llm-podman-run:
$(LLM_COMPOSE) exec -w /app llm /bin/bash
llm-podman-run-zsh:
$(LLM_COMPOSE) exec -u nartes -w /app llm /usr/bin/zsh
llm-podman-ps:
$(LLM_COMPOSE) ps

BIN
deps/greasyfork/dist/linkedin.user.js (Stored with Git LFS) vendored

File diff suppressed because it is too large Load Diff

BIN
deps/greasyfork/dist/linkedin.user.js.map (Stored with Git LFS) vendored

File diff suppressed because one or more lines are too long

@ -1,45 +0,0 @@
version: '3.7'
x-json-logging: &json-logging
logging:
driver: "json-file"
options:
max-size: 10m
max-file: "3"
x-resources-normal: &resources-normal
deploy:
resources:
limits:
cpus: '1'
memory: 2GB
x-resources-small: &resources-small
deploy:
resources:
limits:
cpus: '0.5'
memory: 1GB
x-resources-micro: &resources-micro
deploy:
resources:
limits:
cpus: '0.25'
memory: 128M
services:
llm:
<<: *resources-normal
# image: archlinux@sha256:19f09c502102d6d249f4e15667144cab1b8a195d9a549996774a665f582bea99
image: online.fxreader.pr34.claude.v1:v0.2
command: ['sh', '-c', 'while true; do sleep 1; done']
init: true
volumes:
- ./:/app:rw
- online.fxreader.pr34.claude.v1:/mnt/online.fxreader.pr34.claude
volumes:
online.fxreader.pr34.claude.v1:

File diff suppressed because it is too large Load Diff

@ -1,58 +0,0 @@
project(
run_command(
'.venv/bin/toml', 'get', '--toml-path', 'pyproject.toml', 'project.name',
check: true
).stdout().strip('\n'),
version: run_command(
'.venv/bin/toml', 'get', '--toml-path', 'pyproject.toml', 'project.version',
check: true
).stdout().strip('\n'),
)
install_path = get_option('install_path')
message('install_path = ' + install_path)
modes = get_option('modes')
fs = import('fs')
assert(modes.length() == 1, 'only one mode allowed')
mode = modes[0]
# python sources live relative to this meson.build
python_source_root = meson.project_source_root() / '../../../../../../python'
project_root = '.'
if mode == 'meson'
endif
if mode == 'pyproject'
py = import('python').find_installation(pure: false)
namespace_path = meson.project_name().replace('.', '/')
install_root = py.get_install_dir(pure: true)
# find .py files only under the archlinux namespace
pkg_sources = run_command(
'find', python_source_root / namespace_path, '-iname', '*.py',
check: true
).stdout().strip().split('\n')
foreach src : pkg_sources
rel = fs.relative_to(src, python_source_root)
install_data(
src,
install_dir: install_root / fs.parent(rel),
install_tag: 'python-runtime',
)
endforeach
install_data(
python_source_root / namespace_path / 'py.typed',
install_dir: install_root / namespace_path,
install_tag: 'python-runtime',
)
endif

@ -1,2 +0,0 @@
option('modes', type: 'array', choices: ['meson', 'pyproject'], value: ['pyproject'])
option('install_path', type : 'string', value: '')

@ -1,127 +0,0 @@
[project]
description = 'Arch Linux package management tools'
requires-python = '>= 3.10'
maintainers = [
{ name = 'Siarhei Siniak', email = 'siarheisiniak@gmail.com' },
]
classifiers = [
'Programming Language :: Python',
]
dynamic = [
'version',
]
dependencies = [
'pydantic',
'pydantic-settings',
'online.fxreader.pr34>=0.1.5.69',
]
[project.optional-dependencies]
solv = [
'solv==0.7.35',
]
dev = [
'toml-cli',
'ninja',
'patchelf',
]
lint = [
'tomli',
'mypy',
'pyright',
'pyrefly',
'ruff',
]
[tool.online-fxreader-pr34]
early_features = ['default', 'solv', 'dev', 'lint']
pip_find_links = [
'deps/whl',
]
requirements = { default_dev_lint_solv_3_13 = 'requirements.3.13.txt' }
modules = [
{ name = 'online.fxreader.pr34.commands_typed.archlinux', scripts = { 'online-fxreader-pr34-archlinux' = 'online.fxreader.pr34.commands_typed.archlinux.cli.main:main' }, project = { version = '0.53', dynamic = [] } },
]
[tool.online-fxreader-pr34.tests]
search_paths = ['../../../../../../python']
test_names = [
'online.fxreader.pr34.commands_typed.archlinux.tests.test_models',
'online.fxreader.pr34.commands_typed.archlinux.tests.test_resolver',
'online.fxreader.pr34.commands_typed.archlinux.tests.test_cli',
'online.fxreader.pr34.commands_typed.archlinux.tests.test_compile',
'online.fxreader.pr34.commands_typed.archlinux.tests.test_db',
'online.fxreader.pr34.commands_typed.archlinux.tests.test_pacman',
'online.fxreader.pr34.commands_typed.archlinux.tests.test_diff',
'online.fxreader.pr34.commands_typed.archlinux.tests.test_download_cli',
'*TestSolvPoolUnit*',
'*TestRepoStoreCache*',
'online.fxreader.pr34.commands_typed.archlinux.tests.test_orm',
'online.fxreader.pr34.commands_typed.archlinux.tests.test_cve',
'online.fxreader.pr34.commands_typed.archlinux.tests.test_package_mapping',
'online.fxreader.pr34.commands_typed.archlinux.tests.test_archive_versions',
'online.fxreader.pr34.commands_typed.archlinux.tests.test_network',
'online.fxreader.pr34.commands_typed.archlinux.tests.test_cache_settings',
'online.fxreader.pr34.commands_typed.archlinux.tests.test_install',
]
discovery_paths = ['../../../../../../python']
[build-system]
requires = ["meson-python", "pybind11"]
build-backend = "mesonpy"
[tool.ruff]
line-length = 160
target-version = 'py310'
include = [
'../../../../../../python/online/fxreader/pr34/commands_typed/archlinux/**/*.py',
]
exclude = [
'.venv',
'*/tests/res/*',
'*/tests/experiments/*',
]
[tool.ruff.format]
quote-style = 'single'
indent-style = 'tab'
skip-magic-trailing-comma = false
[tool.ruff.lint]
ignore = [
'E402', 'E722', 'E741', 'W191', 'E101', 'E501', 'I001', 'F401', 'E714',
'E713', 'E731', 'E712', 'E703', 'F841', 'F403', 'W292',
]
select = ['E', 'F', 'I', 'W', 'INT']
[tool.ruff.lint.isort]
detect-same-package = true
relative-imports-order = "closest-to-furthest"
split-on-trailing-comma = true
section-order = [
"future",
"standard-library", "third-party", "first-party", "local-folder"
]
force-wrap-aliases = true
[tool.pyrefly]
project-includes = [
'../../../../../../python/online/fxreader/pr34/commands_typed/archlinux/**/*.py',
]
project-excludes = [
'.venv',
'../../../../../../python/online/fxreader/pr34/commands_typed/archlinux/tests/res',
'../../../../../../python/online/fxreader/pr34/commands_typed/archlinux/tests/experiments',
]
search-path = [
'../../../../../../python',
'../../../../../../mypy-stubs/types-debugpy',
'../../../../../../mypy-stubs/types-solv',
'../../../../../../mypy-stubs/marisa-trie-types',
]
python-version = '3.13'

@ -1,96 +0,0 @@
annotated-doc==0.0.4 \
--hash=sha256:571ac1dc6991c450b25a9c2d84a3705e2ae7a53467b5d111c24fa8baabbed320
annotated-types==0.7.0 \
--hash=sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53
argcomplete==3.6.3 \
--hash=sha256:f5007b3a600ccac5d25bbce33089211dfd49eab4a7718da3f10e3082525a92ce
build==1.4.0 \
--hash=sha256:6a07c1b8eb6f2b311b96fcbdbce5dab5fe637ffda0fd83c9cac622e927501596
click==8.3.2 \
--hash=sha256:1924d2c27c5653561cd2cae4548d1406039cb79b858b747cfea24924bbc1616d
jmespath==1.1.0 \
--hash=sha256:a5663118de4908c91729bea0acadca56526eb2698e83de10cd116ae0f4e97c64
librt==0.8.1 \
--hash=sha256:5e4af413908f77294605e28cfd98063f54b2c790561383971d2f52d113d9c363
marisa-trie==1.4.0 \
--hash=sha256:33cca20e60a78da01650d67ef97d60f3ec8a2b60d4dea2d65306fb418d17039d
markdown-it-py==4.0.0 \
--hash=sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147
mdurl==0.1.2 \
--hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8
meson==1.10.2 \
--hash=sha256:5f84ef186e6e788d9154db63620fc61b3ece69f643b94b43c8b9203c43d89b36
meson-python==0.19.0 \
--hash=sha256:67b5906c37404396d23c195e12c8825506074460d4a2e7083266b845d14f0298
mypy==1.20.0 \
--hash=sha256:555658c611099455b2da507582ea20d2043dfdfe7f5ad0add472b1c6238b433f
mypy-extensions==1.1.0 \
--hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505
ninja==1.13.0 \
--hash=sha256:fb46acf6b93b8dd0322adc3a4945452a4e774b75b91293bafcc7b7f8e6517dfa
nodeenv==1.10.0 \
--hash=sha256:5bb13e3eed2923615535339b3c620e76779af4cb4c6a90deccc9e36b274d3827
online-fxreader-pr34==0.1.5.69 \
--hash=sha256:eaf594af168f24460f98b16615abc20399ad44392ee7f54bc9b2b27e917baa6b
packaging==26.0 \
--hash=sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529
patchelf==0.17.2.4 \
--hash=sha256:d9b35ebfada70c02679ad036407d9724ffe1255122ba4ac5e4be5868618a5689
pathspec==1.0.4 \
--hash=sha256:fb6ae2fd4e7c921a165808a552060e722767cfa526f99ca5156ed2ce45a5c723
pip==25.1 \
--hash=sha256:13b4aa0aaad055020a11bec8a1c2a70a2b2d080e12d89b962266029fff0a16ba
pybind11==3.0.3 \
--hash=sha256:fb5f8e4a64946b4dcc0451c83a8c384f803bc0a62dd1ba02f199e97dbc9aad4c
pydantic==2.12.5 \
--hash=sha256:e561593fccf61e8a20fc46dfc2dfe075b8be7d0188df33f221ad1f0139180f9d
pydantic-core==2.41.5 \
--hash=sha256:406bf18d345822d6c21366031003612b9c77b3e29ffdb0f612367352aab7d586
pydantic-settings==2.13.1 \
--hash=sha256:d56fd801823dbeae7f0975e1f8c8e25c258eb75d278ea7abb5d9cebb01b56237
pygments==2.20.0 \
--hash=sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176
pyproject-hooks==1.2.0 \
--hash=sha256:9e5c6bfa8dcc30091c74b0cf803c81fdd29d94f01992a7707bc97babb1141913
pyproject-metadata==0.11.0 \
--hash=sha256:85bbecca8694e2c00f63b492c96921d6c228454057c88e7c352b2077fcaa4096
pyrefly==0.59.1 \
--hash=sha256:59a2d01723b84d042f4fa6ec871ffd52d0a7e83b0ea791c2e0bb0ff750abce56
pyright==1.1.408 \
--hash=sha256:090b32865f4fdb1e0e6cd82bf5618480d48eecd2eb2e70f960982a3d9a4c17c1
python-dotenv==1.2.2 \
--hash=sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a
pyyaml==6.0.3 \
--hash=sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6
regex==2026.4.4 \
--hash=sha256:ffa81f81b80047ba89a3c69ae6a0f78d06f4a42ce5126b0eb2a0a10ad44e0b2e
rich==14.3.3 \
--hash=sha256:793431c1f8619afa7d3b52b2cdec859562b950ea0d4b6b505397612db8d5362d
ruff==0.15.9 \
--hash=sha256:2b0c7c341f68adb01c488c3b7d4b49aa8ea97409eae6462d860a79cf55f431b6
setuptools==82.0.1 \
--hash=sha256:a59e362652f08dcd477c78bb6e7bd9d80a7995bc73ce773050228a348ce2e5bb
shellingham==1.5.4 \
--hash=sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686
solv==0.7.35 \
--hash=sha256:05aaa3abaf05482d22946cab81e328b536a59465cc47d628a72bc3d2e4dcafac
toml-cli==0.8.2 \
--hash=sha256:7af4679ca04c53ad0f6d300dab26f45a78fedf88e8310305bfe0a8ead37fd000
tomli==2.4.1 \
--hash=sha256:f3c6818a1a86dd6dca7ddcaaf76947d5ba31aecc28cb1b67009a5877c9a64f3f
tomlkit==0.14.0 \
--hash=sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680
tomlq==0.1.0 \
--hash=sha256:4b966fd999ed2bf69081b7c7f5caadbc4c9542d0ed5fcf2e9b7b4d8d7ada3c82
typer==0.24.1 \
--hash=sha256:112c1f0ce578bfb4cab9ffdabc68f031416ebcc216536611ba21f04e9aa84c9e
typing-extensions==4.15.0 \
--hash=sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548
typing-inspection==0.4.2 \
--hash=sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7
uv==0.11.3 \
--hash=sha256:0fde893b5ab9f6997fe357138e794bac09d144328052519fbbe2e6f72145e457
xmltodict==1.0.4 \
--hash=sha256:a4a00d300b0e1c59fc2bfccb53d7b2e88c32f200df138a0dd2229f842497026a
yq==3.4.3 \
--hash=sha256:547e34bc3caacce83665fd3429bf7c85f8e8b6b9aaee3f953db1ad716ff3434d

@ -1,145 +0,0 @@
# This file was autogenerated by uv via the following command:
# uv --cache-dir /app/meson/online/fxreader/pr34/commands_typed/archlinux/.uv-cache pip compile --python-version 3.14 --generate-hashes -c /app/meson/online/fxreader/pr34/commands_typed/archlinux/requirements.txt -o /app/meson/online/fxreader/pr34/commands_typed/archlinux/requirementsa_w7bg1p.txt /tmp/requirements7q27fon2.in
annotated-types==0.7.0 \
--hash=sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53
# via
# -c requirements.txt
# pydantic
build==1.4.0 \
--hash=sha256:6a07c1b8eb6f2b311b96fcbdbce5dab5fe637ffda0fd83c9cac622e927501596
# via
# -c requirements.txt
# -r /tmp/requirements7q27fon2.in
librt==0.8.1 \
--hash=sha256:6b1977c4ea97ce5eb7755a78fae68d87e4102e4aaf54985e8b56806849cc06a3
# via
# -c requirements.txt
# mypy
meson==1.10.2 \
--hash=sha256:5f84ef186e6e788d9154db63620fc61b3ece69f643b94b43c8b9203c43d89b36
# via
# -c requirements.txt
# meson-python
meson-python==0.19.0 \
--hash=sha256:67b5906c37404396d23c195e12c8825506074460d4a2e7083266b845d14f0298
# via
# -c requirements.txt
# -r /tmp/requirements7q27fon2.in
mypy==1.19.1 \
--hash=sha256:28902ee51f12e0f19e1e16fbe2f8f06b6637f482c459dd393efddd0ec7f82045
# via
# -c requirements.txt
# -r /tmp/requirements7q27fon2.in
mypy-extensions==1.1.0 \
--hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505
# via
# -c requirements.txt
# mypy
nodeenv==1.10.0 \
--hash=sha256:5bb13e3eed2923615535339b3c620e76779af4cb4c6a90deccc9e36b274d3827
# via
# -c requirements.txt
# pyright
packaging==26.0 \
--hash=sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529
# via
# -c requirements.txt
# build
# meson-python
# pyproject-metadata
pathspec==1.0.4 \
--hash=sha256:fb6ae2fd4e7c921a165808a552060e722767cfa526f99ca5156ed2ce45a5c723
# via
# -c requirements.txt
# mypy
pip==23.3.2 \
--hash=sha256:5052d7889c1f9d05224cd41741acb7c5d6fa735ab34e339624a614eaaa7e7d76
# via
# -c requirements.txt
# -r /tmp/requirements7q27fon2.in
pybind11==3.0.2 \
--hash=sha256:f8a6500548919cc33bcd220d5f984688326f574fa97f1107f2f4fdb4c6fb019f
# via
# -c requirements.txt
# -r /tmp/requirements7q27fon2.in
pydantic==2.12.5 \
--hash=sha256:e561593fccf61e8a20fc46dfc2dfe075b8be7d0188df33f221ad1f0139180f9d
# via
# -c requirements.txt
# -r /tmp/requirements7q27fon2.in
# pydantic-settings
pydantic-core==2.41.5 \
--hash=sha256:22f0fb8c1c583a3b6f24df2470833b40207e907b90c928cc8d3594b76f874375
# via
# -c requirements.txt
# pydantic
pydantic-settings==2.13.1 \
--hash=sha256:d56fd801823dbeae7f0975e1f8c8e25c258eb75d278ea7abb5d9cebb01b56237
# via
# -c requirements.txt
# -r /tmp/requirements7q27fon2.in
pyproject-hooks==1.2.0 \
--hash=sha256:9e5c6bfa8dcc30091c74b0cf803c81fdd29d94f01992a7707bc97babb1141913
# via
# -c requirements.txt
# build
pyproject-metadata==0.11.0 \
--hash=sha256:85bbecca8694e2c00f63b492c96921d6c228454057c88e7c352b2077fcaa4096
# via
# -c requirements.txt
# meson-python
pyrefly==0.56.0 \
--hash=sha256:ec6ab3f9e2c03bae8dfa520f52778f47b6762020929a664177d36aa3b941db22
# via
# -c requirements.txt
# -r /tmp/requirements7q27fon2.in
pyright==1.1.408 \
--hash=sha256:090b32865f4fdb1e0e6cd82bf5618480d48eecd2eb2e70f960982a3d9a4c17c1
# via
# -c requirements.txt
# -r /tmp/requirements7q27fon2.in
python-dotenv==1.2.2 \
--hash=sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a
# via
# -c requirements.txt
# pydantic-settings
ruff==0.15.6 \
--hash=sha256:98893c4c0aadc8e448cfa315bd0cc343a5323d740fe5f28ef8a3f9e21b381f7e
# via
# -c requirements.txt
# -r /tmp/requirements7q27fon2.in
setuptools==82.0.1 \
--hash=sha256:a59e362652f08dcd477c78bb6e7bd9d80a7995bc73ce773050228a348ce2e5bb
# via
# -c requirements.txt
# -r /tmp/requirements7q27fon2.in
solv==0.7.35 \
--hash=sha256:d5606cd8e4bb1b3f30bbff592632fbc47c0e4f79d42869eff1af78dca8e6fd47
# via
# -c requirements.txt
# -r /tmp/requirements7q27fon2.in
tomli==2.4.0 \
--hash=sha256:a26d7ff68dfdb9f87a016ecfd1e1c2bacbe3108f4e0f8bcd2228ef9a766c787d
# via
# -c requirements.txt
# -r /tmp/requirements7q27fon2.in
typing-extensions==4.15.0 \
--hash=sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548
# via
# -c requirements.txt
# mypy
# pydantic
# pydantic-core
# pyright
# typing-inspection
typing-inspection==0.4.2 \
--hash=sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7
# via
# -c requirements.txt
# pydantic
# pydantic-settings
uv==0.10.10 \
--hash=sha256:e42e9e4a196ef75d1089715574eb1fe9bb62d390da05c6c8b36650a4de23d59f
# via
# -c requirements.txt
# -r /tmp/requirements7q27fon2.in

@ -1,263 +0,0 @@
from typing import Iterator, Sequence
REL_GT: int
REL_EQ: int
REL_LT: int
REL_AND: int
REL_OR: int
REL_WITH: int
REL_NAMESPACE: int
REL_ARCH: int
REL_FILECONFLICT: int
REL_COND: int
REL_COMPAT: int
REL_KIND: int
REL_MULTIARCH: int
REL_ELSE: int
REL_ERROR: int
REL_WITHOUT: int
REL_UNLESS: int
REL_CONDA: int
def xfopen(path: str, mode: str = ...) -> XFile: ...
def xfopen_fd(path: str, fd: int) -> XFile: ...
class XFile:
def close(self) -> None: ...
class Dep:
...
class Pool:
DISTTYPE_RPM: int
DISTTYPE_DEB: int
DISTTYPE_ARCH: int
DISTTYPE_HAIKU: int
DISTTYPE_CONDA: int
DISTTYPE_APK: int
installed: Repo | None
repos: list[Repo]
def setdisttype(self, disttype: int) -> None: ...
def setarch(self, arch: str) -> None: ...
def add_repo(self, name: str) -> Repo: ...
def createwhatprovides(self) -> None: ...
def str2id(self, s: str, create: bool = ...) -> int: ...
def rel2id(self, name: int, evr: int, flags: int, create: bool = ...) -> int: ...
def dep2str(self, dep: int) -> str: ...
def id2str(self, id: int) -> str: ...
def select(self, name: str, flags: int) -> Selection: ...
def Solver(self) -> Solver: ...
def Selection(self) -> Selection: ...
def Selection_all(self) -> Selection: ...
def Job(self, how: int, what: int) -> Job: ...
def Dep(self, s: str, create: bool = ...) -> Dep: ...
def isknownarch(self, id: int) -> bool: ...
def set_debuglevel(self, level: int) -> None: ...
def set_flag(self, flag: int, value: int) -> int: ...
def get_flag(self, flag: int) -> int: ...
def set_rootdir(self, rootdir: str) -> None: ...
def get_rootdir(self) -> str: ...
def repos_iter(self) -> Iterator[Repo]: ...
def solvables_iter(self) -> Iterator[Solvable]: ...
def id2repo(self, id: int) -> Repo | None: ...
def id2solvable(self, id: int) -> Solvable: ...
class Repo:
REPO_EXTEND_SOLVABLES: int
REPO_LOCALPOOL: int
REPO_NO_INTERNALIZE: int
REPO_NO_LOCATION: int
REPO_REUSE_REPODATA: int
REPO_USE_LOADING: int
REPO_USE_ROOTDIR: int
SOLV_ADD_NO_STUBS: int
name: str
nsolvables: int
id: int
pool: Pool
def add_solvable(self) -> Solvable: ...
def add_solv(self, f: XFile, flags: int = ...) -> bool: ...
def add_rpmmd(self, f: XFile, language: str | None, flags: int = ...) -> bool: ...
def add_repomdxml(self, f: XFile, flags: int = ...) -> bool: ...
def write(self, f: XFile) -> bool: ...
def write_first_repodata(self, f: XFile) -> bool: ...
def internalize(self) -> None: ...
def isempty(self) -> bool: ...
def empty(self) -> None: ...
def free(self, reuseids: bool = ...) -> None: ...
def solvables_iter(self) -> Iterator[Solvable]: ...
def Selection(self, flags: int = ...) -> Selection: ...
class Solvable:
name: str
evr: str
arch: str
nameid: int
evrid: int
archid: int
id: int
repo: Repo
pool: Pool
vendor: str
vendorid: int
def add_provides(self, dep: int) -> None: ...
def add_requires(self, dep: int) -> None: ...
def add_conflicts(self, dep: int) -> None: ...
def add_obsoletes(self, dep: int) -> None: ...
def add_recommends(self, dep: int) -> None: ...
def add_suggests(self, dep: int) -> None: ...
def add_supplements(self, dep: int) -> None: ...
def add_enhances(self, dep: int) -> None: ...
def add_deparray(self, keyname: int, dep: int, marker: int = ...) -> None: ...
def installable(self) -> bool: ...
def isinstalled(self) -> bool: ...
def identical(self, other: Solvable) -> bool: ...
def evrcmp(self, other: Solvable) -> int: ...
def matchesdep(self, keyname: int, dep: int, marker: int = ...) -> bool: ...
def lookup_str(self, keyname: int) -> str | None: ...
def lookup_num(self, keyname: int, notfound: int = ...) -> int: ...
def lookup_id(self, keyname: int) -> int: ...
def lookup_idarray(self, keyname: int, marker: int = ...) -> list[int]: ...
def lookup_deparray(self, keyname: int, marker: int = ...) -> list[Dep]: ...
def lookup_checksum(self, keyname: int) -> Chksum | None: ...
def lookup_location(self) -> tuple[str | None, int]: ...
def lookup_sourcepkg(self) -> str | None: ...
def lookup_void(self, keyname: int) -> bool: ...
def Selection(self, flags: int = ...) -> Selection: ...
def unset(self, keyname: int) -> None: ...
def __str__(self) -> str: ...
class Solver:
SOLVER_FLAG_ALLOW_DOWNGRADE: int
SOLVER_FLAG_ALLOW_ARCHCHANGE: int
SOLVER_FLAG_ALLOW_VENDORCHANGE: int
SOLVER_FLAG_ALLOW_UNINSTALL: int
SOLVER_FLAG_ALLOW_NAMECHANGE: int
SOLVER_FLAG_SPLITPROVIDES: int
SOLVER_FLAG_IGNORE_RECOMMENDED: int
SOLVER_FLAG_ADD_ALREADY_RECOMMENDED: int
SOLVER_FLAG_NO_INFARCHCHECK: int
SOLVER_FLAG_BEST_OBEY_POLICY: int
SOLVER_FLAG_NO_AUTOTARGET: int
SOLVER_FLAG_FOCUS_INSTALLED: int
SOLVER_FLAG_FOCUS_BEST: int
SOLVER_FLAG_INSTALL_ALSO_UPDATES: int
SOLVER_FLAG_STRICT_REPO_PRIORITY: int
def solve(self, jobs: Sequence[Job]) -> list[Problem]: ...
def transaction(self) -> Transaction: ...
def write_testcase(self, path: str) -> bool: ...
class Problem:
def __str__(self) -> str: ...
class Selection:
SELECTION_NAME: int
SELECTION_PROVIDES: int
SELECTION_FILELIST: int
SELECTION_CANON: int
SELECTION_DOTARCH: int
SELECTION_REL: int
SELECTION_INSTALLED_ONLY: int
SELECTION_GLOB: int
SELECTION_FLAT: int
SELECTION_NOCASE: int
SELECTION_SOURCE_ONLY: int
SELECTION_WITH_SOURCE: int
SELECTION_SKIP_KIND: int
SELECTION_MATCH_DEPSTR: int
SELECTION_WITH_DISABLED: int
SELECTION_WITH_BADARCH: int
SELECTION_WITH_ALL: int
SELECTION_ADD: int
SELECTION_SUBTRACT: int
SELECTION_FILTER: int
SELECTION_FILTER_KEEP_IFEMPTY: int
SELECTION_FILTER_SWAPPED: int
def isempty(self) -> bool: ...
def jobs(self, action: int) -> list[Job]: ...
def solvables(self) -> list[Solvable]: ...
def select(self, name: str, flags: int) -> None: ...
def add_raw(self, how: int, what: int) -> None: ...
class Job:
SOLVER_INSTALL: int
SOLVER_ERASE: int
SOLVER_UPDATE: int
SOLVER_WEAKENDEPS: int
SOLVER_MULTIVERSION: int
SOLVER_LOCK: int
SOLVER_DISTUPGRADE: int
SOLVER_VERIFY: int
SOLVER_DROP_ORPHANED: int
SOLVER_USERINSTALLED: int
SOLVER_ALLOWUNINSTALL: int
SOLVER_FAVOR: int
SOLVER_DISFAVOR: int
SOLVER_EXCLUDEFROMWEAK: int
SOLVER_SOLVABLE: int
SOLVER_SOLVABLE_NAME: int
SOLVER_SOLVABLE_PROVIDES: int
SOLVER_SOLVABLE_ONE_OF: int
SOLVER_SOLVABLE_REPO: int
SOLVER_SOLVABLE_ALL: int
SOLVER_SELECTMASK: int
SOLVER_JOBMASK: int
SOLVER_NOOP: int
SOLVER_WEAK: int
SOLVER_ESSENTIAL: int
SOLVER_CLEANDEPS: int
SOLVER_FORCEBEST: int
SOLVER_TARGETED: int
SOLVER_NOTBYUSER: int
SOLVER_SETEV: int
SOLVER_SETEVR: int
SOLVER_SETARCH: int
SOLVER_SETVENDOR: int
SOLVER_SETREPO: int
SOLVER_SETNAME: int
SOLVER_NOAUTOSET: int
SOLVER_SETMASK: int
def isemptyupdate(self) -> bool: ...
class Transaction:
pool: Pool
def isempty(self) -> bool: ...
def newsolvables(self) -> list[Solvable]: ...
def keptsolvables(self) -> list[Solvable]: ...
def newpackages(self) -> list[Solvable]: ...
def keptpackages(self) -> list[Solvable]: ...
def steps(self) -> list[Solvable]: ...
def steptype(self, solvable: Solvable, mode: int) -> int: ...
def othersolvable(self, solvable: Solvable) -> Solvable | None: ...
def allothersolvables(self, solvable: Solvable) -> list[Solvable]: ...
def calc_installsizechange(self) -> int: ...
def order(self, flags: int = ...) -> None: ...
def classify(self, mode: int = ...) -> list[TransactionClass]: ...
class TransactionClass:
...
class Chksum:
...

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More