git: d7ae323d8abc - main - devel/pylyzer: New port: Static code analyzer & language server for Python

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Sun, 12 Nov 2023 18:25:27 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=d7ae323d8abc4a31095068d8945dbdcecf73e1ac

commit d7ae323d8abc4a31095068d8945dbdcecf73e1ac
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2023-11-12 18:24:46 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2023-11-12 18:25:25 +0000

    devel/pylyzer: New port: Static code analyzer & language server for Python
---
 devel/Makefile          |   1 +
 devel/pylyzer/Makefile  | 139 ++++++++++++++++++++++++++++++++
 devel/pylyzer/distinfo  | 209 ++++++++++++++++++++++++++++++++++++++++++++++++
 devel/pylyzer/pkg-descr |   3 +
 4 files changed, 352 insertions(+)

diff --git a/devel/Makefile b/devel/Makefile
index 72e4ff3d0821..842ef87cd640 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -5906,6 +5906,7 @@
     SUBDIR += pyenv
     SUBDIR += pygobject3-common
     SUBDIR += pylint
+    SUBDIR += pylyzer
     SUBDIR += pymsteams
     SUBDIR += pyobfuscate
     SUBDIR += pyotherside-qt5
diff --git a/devel/pylyzer/Makefile b/devel/pylyzer/Makefile
new file mode 100644
index 000000000000..aee891c6c9d1
--- /dev/null
+++ b/devel/pylyzer/Makefile
@@ -0,0 +1,139 @@
+PORTNAME=	pylyzer
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.0.49
+CATEGORIES=	devel python
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Static code analyzer & language server for Python
+WWW=		https://mtshiba.github.io/pylyzer/
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	${PY_SETUPTOOLS} \
+		${PYTHON_PKGNAMEPREFIX}setuptools-rust>0:devel/py-setuptools-rust@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}tomli>0:textproc/py-tomli@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR} \
+		git:devel/git
+
+USES=		cargo python
+USE_PYTHON=	pep517 noflavors autoplist
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	mtshiba
+
+CARGO_CRATES=	Inflector-0.11.4 \
+		addr2line-0.21.0 \
+		adler-1.0.2 \
+		anyhow-1.0.75 \
+		autocfg-1.1.0 \
+		backtrace-0.3.69 \
+		backtrace-on-stack-overflow-0.3.0 \
+		base64-0.13.1 \
+		bitflags-1.3.2 \
+		cc-1.0.83 \
+		cfg-if-1.0.0 \
+		convert_case-0.4.0 \
+		crunchy-0.2.2 \
+		derive_more-0.99.17 \
+		either-1.9.0 \
+		els-0.1.37-nightly.1 \
+		embed-doc-image-0.1.4 \
+		erg_common-0.6.25-nightly.1 \
+		erg_compiler-0.6.25-nightly.1 \
+		erg_parser-0.6.25-nightly.1 \
+		form_urlencoded-1.2.0 \
+		gimli-0.28.0 \
+		idna-0.4.0 \
+		is-macro-0.2.2 \
+		itertools-0.10.5 \
+		itertools-0.11.0 \
+		itoa-1.0.9 \
+		lalrpop-util-0.20.0 \
+		libc-0.2.149 \
+		lock_api-0.4.11 \
+		log-0.4.20 \
+		lsp-types-0.93.2 \
+		malachite-0.4.4 \
+		malachite-base-0.4.4 \
+		malachite-bigint-0.1.1 \
+		malachite-nz-0.4.4 \
+		malachite-q-0.4.4 \
+		memchr-2.6.4 \
+		memoffset-0.6.5 \
+		miniz_oxide-0.7.1 \
+		molc-0.2.7 \
+		nix-0.23.2 \
+		num-integer-0.1.45 \
+		num-traits-0.2.17 \
+		object-0.32.1 \
+		once_cell-1.18.0 \
+		parking_lot-0.12.1 \
+		parking_lot_core-0.9.9 \
+		paste-1.0.14 \
+		percent-encoding-2.3.0 \
+		phf-0.11.2 \
+		phf_codegen-0.11.2 \
+		phf_generator-0.11.2 \
+		phf_shared-0.11.2 \
+		pmutil-0.5.3 \
+		proc-macro2-1.0.69 \
+		quote-1.0.33 \
+		rand-0.8.5 \
+		rand_core-0.6.4 \
+		redox_syscall-0.4.1 \
+		rustc-demangle-0.1.23 \
+		rustc-hash-1.1.0 \
+		rustc_version-0.4.0 \
+		rustpython-ast-0.3.0 \
+		rustpython-parser-0.3.0 \
+		rustpython-parser-core-0.3.0 \
+		rustpython-parser-vendored-0.3.0 \
+		ryu-1.0.15 \
+		scopeguard-1.2.0 \
+		semver-1.0.20 \
+		serde-1.0.190 \
+		serde_derive-1.0.190 \
+		serde_json-1.0.108 \
+		serde_repr-0.1.17 \
+		siphasher-0.3.11 \
+		smallvec-1.11.1 \
+		static_assertions-1.1.0 \
+		syn-1.0.109 \
+		syn-2.0.38 \
+		thread_local-1.1.7 \
+		tiny-keccak-2.0.2 \
+		tinyvec-1.6.0 \
+		tinyvec_macros-0.1.1 \
+		unic-char-property-0.9.0 \
+		unic-char-range-0.9.0 \
+		unic-common-0.9.0 \
+		unic-emoji-char-0.9.0 \
+		unic-ucd-ident-0.9.0 \
+		unic-ucd-version-0.9.0 \
+		unicode-bidi-0.3.13 \
+		unicode-ident-1.0.12 \
+		unicode-normalization-0.1.22 \
+		unicode-xid-0.2.4 \
+		unicode_names2-0.6.0 \
+		url-2.4.1 \
+		windows-targets-0.48.5 \
+		windows_aarch64_gnullvm-0.48.5 \
+		windows_aarch64_msvc-0.48.5 \
+		windows_i686_gnu-0.48.5 \
+		windows_i686_msvc-0.48.5 \
+		windows_x86_64_gnu-0.48.5 \
+		windows_x86_64_gnullvm-0.48.5 \
+		windows_x86_64_msvc-0.48.5
+
+CARGO_BUILD=	no
+CARGO_INSTALL=	no
+CARGO_TEST=	no
+CARGO_TARGET_DIR=	${WRKSRC}/target
+
+MAKE_ENV=	${CARGO_ENV}
+
+post-install:
+	@${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/pylyzer
+
+.include <bsd.port.mk>
diff --git a/devel/pylyzer/distinfo b/devel/pylyzer/distinfo
new file mode 100644
index 000000000000..981d7fd121bd
--- /dev/null
+++ b/devel/pylyzer/distinfo
@@ -0,0 +1,209 @@
+TIMESTAMP = 1699810305
+SHA256 (rust/crates/Inflector-0.11.4.crate) = fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3
+SIZE (rust/crates/Inflector-0.11.4.crate) = 17438
+SHA256 (rust/crates/addr2line-0.21.0.crate) = 8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb
+SIZE (rust/crates/addr2line-0.21.0.crate) = 40807
+SHA256 (rust/crates/adler-1.0.2.crate) = f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe
+SIZE (rust/crates/adler-1.0.2.crate) = 12778
+SHA256 (rust/crates/anyhow-1.0.75.crate) = a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6
+SIZE (rust/crates/anyhow-1.0.75.crate) = 43901
+SHA256 (rust/crates/autocfg-1.1.0.crate) = d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa
+SIZE (rust/crates/autocfg-1.1.0.crate) = 13272
+SHA256 (rust/crates/backtrace-0.3.69.crate) = 2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837
+SIZE (rust/crates/backtrace-0.3.69.crate) = 77299
+SHA256 (rust/crates/backtrace-on-stack-overflow-0.3.0.crate) = 7fd2d70527f3737a1ad17355e260706c1badebabd1fa06a7a053407380df841b
+SIZE (rust/crates/backtrace-on-stack-overflow-0.3.0.crate) = 7017
+SHA256 (rust/crates/base64-0.13.1.crate) = 9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8
+SIZE (rust/crates/base64-0.13.1.crate) = 61002
+SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a
+SIZE (rust/crates/bitflags-1.3.2.crate) = 23021
+SHA256 (rust/crates/cc-1.0.83.crate) = f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0
+SIZE (rust/crates/cc-1.0.83.crate) = 68343
+SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
+SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
+SHA256 (rust/crates/convert_case-0.4.0.crate) = 6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e
+SIZE (rust/crates/convert_case-0.4.0.crate) = 8098
+SHA256 (rust/crates/crunchy-0.2.2.crate) = 7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7
+SIZE (rust/crates/crunchy-0.2.2.crate) = 2995
+SHA256 (rust/crates/derive_more-0.99.17.crate) = 4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321
+SIZE (rust/crates/derive_more-0.99.17.crate) = 55771
+SHA256 (rust/crates/either-1.9.0.crate) = a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07
+SIZE (rust/crates/either-1.9.0.crate) = 16660
+SHA256 (rust/crates/els-0.1.37-nightly.1.crate) = ee6ddd6641e1e40061947a859149f5f0e65d620288fcabb07117f702e4bb831a
+SIZE (rust/crates/els-0.1.37-nightly.1.crate) = 58003
+SHA256 (rust/crates/embed-doc-image-0.1.4.crate) = af36f591236d9d822425cb6896595658fa558fcebf5ee8accac1d4b92c47166e
+SIZE (rust/crates/embed-doc-image-0.1.4.crate) = 7351
+SHA256 (rust/crates/erg_common-0.6.25-nightly.1.crate) = 7cc1c8a91c85f8b2501f0e600551e4468f896e477fc7721da1a3802ca7f223ce
+SIZE (rust/crates/erg_common-0.6.25-nightly.1.crate) = 61757
+SHA256 (rust/crates/erg_compiler-0.6.25-nightly.1.crate) = 551419179c1f2f7587956f5983bcb59d06b5e3650b7294cd7c38cabf46c68dac
+SIZE (rust/crates/erg_compiler-0.6.25-nightly.1.crate) = 389798
+SHA256 (rust/crates/erg_parser-0.6.25-nightly.1.crate) = d83edffb962792280d35bc43287e0507ba1ed7995acde42c1ffae1e77b83fa6c
+SIZE (rust/crates/erg_parser-0.6.25-nightly.1.crate) = 89871
+SHA256 (rust/crates/form_urlencoded-1.2.0.crate) = a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652
+SIZE (rust/crates/form_urlencoded-1.2.0.crate) = 8923
+SHA256 (rust/crates/gimli-0.28.0.crate) = 6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0
+SIZE (rust/crates/gimli-0.28.0.crate) = 269277
+SHA256 (rust/crates/idna-0.4.0.crate) = 7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c
+SIZE (rust/crates/idna-0.4.0.crate) = 271429
+SHA256 (rust/crates/is-macro-0.2.2.crate) = 8a7d079e129b77477a49c5c4f1cfe9ce6c2c909ef52520693e8e811a714c7b20
+SIZE (rust/crates/is-macro-0.2.2.crate) = 5247
+SHA256 (rust/crates/itertools-0.10.5.crate) = b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473
+SIZE (rust/crates/itertools-0.10.5.crate) = 115354
+SHA256 (rust/crates/itertools-0.11.0.crate) = b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57
+SIZE (rust/crates/itertools-0.11.0.crate) = 125074
+SHA256 (rust/crates/itoa-1.0.9.crate) = af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38
+SIZE (rust/crates/itoa-1.0.9.crate) = 10492
+SHA256 (rust/crates/lalrpop-util-0.20.0.crate) = 3f35c735096c0293d313e8f2a641627472b83d01b937177fe76e5e2708d31e0d
+SIZE (rust/crates/lalrpop-util-0.20.0.crate) = 10403
+SHA256 (rust/crates/libc-0.2.149.crate) = a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b
+SIZE (rust/crates/libc-0.2.149.crate) = 715592
+SHA256 (rust/crates/lock_api-0.4.11.crate) = 3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45
+SIZE (rust/crates/lock_api-0.4.11.crate) = 27487
+SHA256 (rust/crates/log-0.4.20.crate) = b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f
+SIZE (rust/crates/log-0.4.20.crate) = 38307
+SHA256 (rust/crates/lsp-types-0.93.2.crate) = 9be6e9c7e2d18f651974370d7aff703f9513e0df6e464fd795660edc77e6ca51
+SIZE (rust/crates/lsp-types-0.93.2.crate) = 59507
+SHA256 (rust/crates/malachite-0.4.4.crate) = 220cb36c52aa6eff45559df497abe0e2a4c1209f92279a746a399f622d7b95c7
+SIZE (rust/crates/malachite-0.4.4.crate) = 2281
+SHA256 (rust/crates/malachite-base-0.4.4.crate) = 6538136c5daf04126d6be4899f7fe4879b7f8de896dd1b4210fe6de5b94f2555
+SIZE (rust/crates/malachite-base-0.4.4.crate) = 794583
+SHA256 (rust/crates/malachite-bigint-0.1.1.crate) = 76c3eca3b5df299486144c8423c45c24bdf9e82e2452c8a1eeda547c4d8b5d41
+SIZE (rust/crates/malachite-bigint-0.1.1.crate) = 12352
+SHA256 (rust/crates/malachite-nz-0.4.4.crate) = 5f0b05577b7a3f09433106460b10304f97fc572f0baabf6640e6cb1e23f5fc52
+SIZE (rust/crates/malachite-nz-0.4.4.crate) = 2304746
+SHA256 (rust/crates/malachite-q-0.4.4.crate) = a1cfdb4016292e6acd832eaee261175f3af8bbee62afeefe4420ebce4c440cb5
+SIZE (rust/crates/malachite-q-0.4.4.crate) = 195279
+SHA256 (rust/crates/memchr-2.6.4.crate) = f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167
+SIZE (rust/crates/memchr-2.6.4.crate) = 94439
+SHA256 (rust/crates/memoffset-0.6.5.crate) = 5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce
+SIZE (rust/crates/memoffset-0.6.5.crate) = 7686
+SHA256 (rust/crates/miniz_oxide-0.7.1.crate) = e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7
+SIZE (rust/crates/miniz_oxide-0.7.1.crate) = 55194
+SHA256 (rust/crates/molc-0.2.7.crate) = 94e83b17c033b7b617f21f4a9ba52520dd473bb73a4e9132710c48aee5669095
+SIZE (rust/crates/molc-0.2.7.crate) = 6780
+SHA256 (rust/crates/nix-0.23.2.crate) = 8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c
+SIZE (rust/crates/nix-0.23.2.crate) = 242042
+SHA256 (rust/crates/num-integer-0.1.45.crate) = 225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9
+SIZE (rust/crates/num-integer-0.1.45.crate) = 22529
+SHA256 (rust/crates/num-traits-0.2.17.crate) = 39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c
+SIZE (rust/crates/num-traits-0.2.17.crate) = 50190
+SHA256 (rust/crates/object-0.32.1.crate) = 9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0
+SIZE (rust/crates/object-0.32.1.crate) = 275463
+SHA256 (rust/crates/once_cell-1.18.0.crate) = dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d
+SIZE (rust/crates/once_cell-1.18.0.crate) = 32969
+SHA256 (rust/crates/parking_lot-0.12.1.crate) = 3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f
+SIZE (rust/crates/parking_lot-0.12.1.crate) = 40967
+SHA256 (rust/crates/parking_lot_core-0.9.9.crate) = 4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e
+SIZE (rust/crates/parking_lot_core-0.9.9.crate) = 32445
+SHA256 (rust/crates/paste-1.0.14.crate) = de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c
+SIZE (rust/crates/paste-1.0.14.crate) = 18157
+SHA256 (rust/crates/percent-encoding-2.3.0.crate) = 9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94
+SIZE (rust/crates/percent-encoding-2.3.0.crate) = 10196
+SHA256 (rust/crates/phf-0.11.2.crate) = ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc
+SIZE (rust/crates/phf-0.11.2.crate) = 21569
+SHA256 (rust/crates/phf_codegen-0.11.2.crate) = e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a
+SIZE (rust/crates/phf_codegen-0.11.2.crate) = 12977
+SHA256 (rust/crates/phf_generator-0.11.2.crate) = 48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0
+SIZE (rust/crates/phf_generator-0.11.2.crate) = 14190
+SHA256 (rust/crates/phf_shared-0.11.2.crate) = 90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b
+SIZE (rust/crates/phf_shared-0.11.2.crate) = 14284
+SHA256 (rust/crates/pmutil-0.5.3.crate) = 3894e5d549cccbe44afecf72922f277f603cd4bb0219c8342631ef18fffbe004
+SIZE (rust/crates/pmutil-0.5.3.crate) = 11031
+SHA256 (rust/crates/proc-macro2-1.0.69.crate) = 134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da
+SIZE (rust/crates/proc-macro2-1.0.69.crate) = 44271
+SHA256 (rust/crates/quote-1.0.33.crate) = 5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae
+SIZE (rust/crates/quote-1.0.33.crate) = 28090
+SHA256 (rust/crates/rand-0.8.5.crate) = 34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404
+SIZE (rust/crates/rand-0.8.5.crate) = 87113
+SHA256 (rust/crates/rand_core-0.6.4.crate) = ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c
+SIZE (rust/crates/rand_core-0.6.4.crate) = 22666
+SHA256 (rust/crates/redox_syscall-0.4.1.crate) = 4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa
+SIZE (rust/crates/redox_syscall-0.4.1.crate) = 24858
+SHA256 (rust/crates/rustc-demangle-0.1.23.crate) = d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76
+SIZE (rust/crates/rustc-demangle-0.1.23.crate) = 28970
+SHA256 (rust/crates/rustc-hash-1.1.0.crate) = 08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2
+SIZE (rust/crates/rustc-hash-1.1.0.crate) = 9331
+SHA256 (rust/crates/rustc_version-0.4.0.crate) = bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366
+SIZE (rust/crates/rustc_version-0.4.0.crate) = 12175
+SHA256 (rust/crates/rustpython-ast-0.3.0.crate) = fcf9438da3660e6b88bd659fdc0cd13bcff4b85c584026a48b800c75bf0f8d00
+SIZE (rust/crates/rustpython-ast-0.3.0.crate) = 54065
+SHA256 (rust/crates/rustpython-parser-0.3.0.crate) = 9db993974ff12f33c5be8a801741463691502f85ead5c503277937c4077bd92a
+SIZE (rust/crates/rustpython-parser-0.3.0.crate) = 181041
+SHA256 (rust/crates/rustpython-parser-core-0.3.0.crate) = 5e9d560c6dd4dc774d4bbad48c770e074c178c4ed5f6fd0521fcdb639af21bdd
+SIZE (rust/crates/rustpython-parser-core-0.3.0.crate) = 4381
+SHA256 (rust/crates/rustpython-parser-vendored-0.3.0.crate) = 17ae3062d7fe5fe38073f3a1c7145ed9a04e15f6e4a596d642c7db2d5cd2b51b
+SIZE (rust/crates/rustpython-parser-vendored-0.3.0.crate) = 15304
+SHA256 (rust/crates/ryu-1.0.15.crate) = 1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741
+SIZE (rust/crates/ryu-1.0.15.crate) = 46906
+SHA256 (rust/crates/scopeguard-1.2.0.crate) = 94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49
+SIZE (rust/crates/scopeguard-1.2.0.crate) = 11619
+SHA256 (rust/crates/semver-1.0.20.crate) = 836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090
+SIZE (rust/crates/semver-1.0.20.crate) = 30451
+SHA256 (rust/crates/serde-1.0.190.crate) = 91d3c334ca1ee894a2c6f6ad698fe8c435b76d504b13d436f0685d648d6d96f7
+SIZE (rust/crates/serde-1.0.190.crate) = 76455
+SHA256 (rust/crates/serde_derive-1.0.190.crate) = 67c5609f394e5c2bd7fc51efda478004ea80ef42fee983d5c67a65e34f32c0e3
+SIZE (rust/crates/serde_derive-1.0.190.crate) = 55676
+SHA256 (rust/crates/serde_json-1.0.108.crate) = 3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b
+SIZE (rust/crates/serde_json-1.0.108.crate) = 146476
+SHA256 (rust/crates/serde_repr-0.1.17.crate) = 3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145
+SIZE (rust/crates/serde_repr-0.1.17.crate) = 9971
+SHA256 (rust/crates/siphasher-0.3.11.crate) = 38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d
+SIZE (rust/crates/siphasher-0.3.11.crate) = 10442
+SHA256 (rust/crates/smallvec-1.11.1.crate) = 942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a
+SIZE (rust/crates/smallvec-1.11.1.crate) = 34831
+SHA256 (rust/crates/static_assertions-1.1.0.crate) = a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f
+SIZE (rust/crates/static_assertions-1.1.0.crate) = 18480
+SHA256 (rust/crates/syn-1.0.109.crate) = 72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237
+SIZE (rust/crates/syn-1.0.109.crate) = 237611
+SHA256 (rust/crates/syn-2.0.38.crate) = e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b
+SIZE (rust/crates/syn-2.0.38.crate) = 243284
+SHA256 (rust/crates/thread_local-1.1.7.crate) = 3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152
+SIZE (rust/crates/thread_local-1.1.7.crate) = 13585
+SHA256 (rust/crates/tiny-keccak-2.0.2.crate) = 2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237
+SIZE (rust/crates/tiny-keccak-2.0.2.crate) = 20129
+SHA256 (rust/crates/tinyvec-1.6.0.crate) = 87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50
+SIZE (rust/crates/tinyvec-1.6.0.crate) = 45991
+SHA256 (rust/crates/tinyvec_macros-0.1.1.crate) = 1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20
+SIZE (rust/crates/tinyvec_macros-0.1.1.crate) = 5865
+SHA256 (rust/crates/unic-char-property-0.9.0.crate) = a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221
+SIZE (rust/crates/unic-char-property-0.9.0.crate) = 6809
+SHA256 (rust/crates/unic-char-range-0.9.0.crate) = 0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc
+SIZE (rust/crates/unic-char-range-0.9.0.crate) = 7020
+SHA256 (rust/crates/unic-common-0.9.0.crate) = 80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc
+SIZE (rust/crates/unic-common-0.9.0.crate) = 2558
+SHA256 (rust/crates/unic-emoji-char-0.9.0.crate) = 0b07221e68897210270a38bde4babb655869637af0f69407f96053a34f76494d
+SIZE (rust/crates/unic-emoji-char-0.9.0.crate) = 5667
+SHA256 (rust/crates/unic-ucd-ident-0.9.0.crate) = e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987
+SIZE (rust/crates/unic-ucd-ident-0.9.0.crate) = 16128
+SHA256 (rust/crates/unic-ucd-version-0.9.0.crate) = 96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4
+SIZE (rust/crates/unic-ucd-version-0.9.0.crate) = 2246
+SHA256 (rust/crates/unicode-bidi-0.3.13.crate) = 92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460
+SIZE (rust/crates/unicode-bidi-0.3.13.crate) = 44477
+SHA256 (rust/crates/unicode-ident-1.0.12.crate) = 3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b
+SIZE (rust/crates/unicode-ident-1.0.12.crate) = 42168
+SHA256 (rust/crates/unicode-normalization-0.1.22.crate) = 5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921
+SIZE (rust/crates/unicode-normalization-0.1.22.crate) = 122604
+SHA256 (rust/crates/unicode-xid-0.2.4.crate) = f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c
+SIZE (rust/crates/unicode-xid-0.2.4.crate) = 15352
+SHA256 (rust/crates/unicode_names2-0.6.0.crate) = 446c96c6dd42604779487f0a981060717156648c1706aa1f464677f03c6cc059
+SIZE (rust/crates/unicode_names2-0.6.0.crate) = 480122
+SHA256 (rust/crates/url-2.4.1.crate) = 143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5
+SIZE (rust/crates/url-2.4.1.crate) = 78228
+SHA256 (rust/crates/windows-targets-0.48.5.crate) = 9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c
+SIZE (rust/crates/windows-targets-0.48.5.crate) = 6904
+SHA256 (rust/crates/windows_aarch64_gnullvm-0.48.5.crate) = 2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8
+SIZE (rust/crates/windows_aarch64_gnullvm-0.48.5.crate) = 418492
+SHA256 (rust/crates/windows_aarch64_msvc-0.48.5.crate) = dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc
+SIZE (rust/crates/windows_aarch64_msvc-0.48.5.crate) = 798483
+SHA256 (rust/crates/windows_i686_gnu-0.48.5.crate) = a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e
+SIZE (rust/crates/windows_i686_gnu-0.48.5.crate) = 844891
+SHA256 (rust/crates/windows_i686_msvc-0.48.5.crate) = 8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406
+SIZE (rust/crates/windows_i686_msvc-0.48.5.crate) = 864300
+SHA256 (rust/crates/windows_x86_64_gnu-0.48.5.crate) = 53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e
+SIZE (rust/crates/windows_x86_64_gnu-0.48.5.crate) = 801619
+SHA256 (rust/crates/windows_x86_64_gnullvm-0.48.5.crate) = 0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc
+SIZE (rust/crates/windows_x86_64_gnullvm-0.48.5.crate) = 418486
+SHA256 (rust/crates/windows_x86_64_msvc-0.48.5.crate) = ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538
+SIZE (rust/crates/windows_x86_64_msvc-0.48.5.crate) = 798412
+SHA256 (mtshiba-pylyzer-v0.0.49_GH0.tar.gz) = c07e9adba4a475cfce76fafbf34fdd7153e2ccecdad3bbb01eb99b53d7b66484
+SIZE (mtshiba-pylyzer-v0.0.49_GH0.tar.gz) = 1269867
diff --git a/devel/pylyzer/pkg-descr b/devel/pylyzer/pkg-descr
new file mode 100644
index 000000000000..9cfe101183a0
--- /dev/null
+++ b/devel/pylyzer/pkg-descr
@@ -0,0 +1,3 @@
+pylyzer is a static code analyzer / language server for Python, written in Rust.
+
+It allows to check types of Python variables and more.