Merge updates from master

This commit is contained in:
Repository mirror & CI
2023-10-03 09:46:29 +00:00
23 changed files with 141 additions and 967 deletions

View File

@@ -1,2 +1 @@
DIST clipboard-0.8.0.tar.gz 29340849 BLAKE2B 91635f16eee4c7fec588f3ceae34571e815680a34553ecf352f67b77c0749ad4c4ee848713d1b65d7e0a4dee0a2a597b29f59abab9082400dc02acba00ab7326 SHA512 b600e8425e48625ed2ad068500e381b1a0d40eacce92e05d45af21c1f5517dcac516287fbcdc1c03fe87cd5bdd5933258ffccf31460a03dfd7e306dc22442c63
DIST clipboard-0.8.1.tar.gz 31510477 BLAKE2B 25243b59af15ef692f466fcb2b6c35cdd05e2ebaee95ddf2b1c6a555c2225d2273c4d0cc7785fb2da8cfdf8a5afeac968a48cc191c45e1df6966a8dfcfccff0b SHA512 b4c2c857cc734c6470990348c67f31b706cb61b116794135d5e60073d8e5389d4c93ee410e47a9c07998bd3a6578013879ee5f997eda9613c864ea312b54da2e
DIST clipboard-0.8.3.tar.gz 31616928 BLAKE2B 02621ed8864056af693c9bd0a40d1fba2930df08cde1d71d80ead9050c4e639901ae716678fdcf71832d51cd7539c40025b1a7ef99fd9045e967b51087e414a7 SHA512 fd906ebd42e894da7770713a6b7f9ca7327f9550d2d046d8e93cac6bfd44f6408f3e6286c7d51e4a5087b1ed2d5097fee6a25c1b13aa5d924a63eef60acf346d

View File

@@ -1,49 +0,0 @@
# Copyright 2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake
MY_PN="Clipboard"
MY_P="${MY_PN}-${PV}"
DESCRIPTION="Cut, copy, and paste anything in your terminal"
HOMEPAGE="https://getclipboard.app/ https://github.com/Slackadays/Clipboard"
SRC_URI="https://github.com/Slackadays/${MY_PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64"
IUSE="X wayland lto debug"
RDEPEND="X? ( x11-libs/libX11 )
wayland? (
dev-libs/wayland-protocols
dev-libs/wayland
)
"
S="${WORKDIR}/${MY_P}"
PATCHES=(
"${FILESDIR}/disable-git-and-lto.patch"
)
src_prepare() {
if ! use wayland; then
sed -i '/pkg_check_modules(WAYLAND_CLIENT wayland-client wayland-protocols)/d' CMakeLists.txt || die
fi
if ! use debug; then
eapply "${FILESDIR}/disable-debug-info.patch"
fi
cmake_src_prepare
}
src_configure() {
local mycmakeargs=(
"-DCMAKE_INSTALL_LIBDIR=$(get_libdir)"
"-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=$(usex lto TRUE FALSE)"
"-DCMAKE_DISABLE_FIND_PACKAGE_X11=$(usex X OFF ON)"
)
cmake_src_configure
}

View File

@@ -16,34 +16,26 @@ SLOT="0"
KEYWORDS="~amd64"
IUSE="X wayland lto debug"
RDEPEND="X? ( x11-libs/libX11 )
RDEPEND="X? (
x11-libs/libX11
x11-libs/libXext
)
wayland? (
dev-libs/wayland-protocols
dev-libs/wayland
)
media-libs/alsa-lib
"
S="${WORKDIR}/${MY_P}"
PATCHES=(
"${FILESDIR}/disable-git-and-lto.patch"
)
src_prepare() {
if ! use wayland; then
sed -i '/pkg_check_modules(WAYLAND_CLIENT wayland-client wayland-protocols)/d' CMakeLists.txt || die
fi
if ! use debug; then
eapply "${FILESDIR}/disable-debug-info.patch"
fi
cmake_src_prepare
}
src_configure() {
local mycmakeargs=(
"-DCMAKE_INSTALL_LIBDIR=$(get_libdir)"
"-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=$(usex lto TRUE FALSE)"
"-DCMAKE_DISABLE_FIND_PACKAGE_X11=$(usex X OFF ON)"
"-DCMAKE_C_FLAGS=$(usex debug "${CFLAGS}" "${CFLAGS} -DNDEBUG")"
"-DCMAKE_CXX_FLAGS=$(usex debug "${CXXFLAGS}" "${CXXFLAGS} -DNDEBUG")"
"-DNO_WAYLAND=$(usex wayland FALSE TRUE)"
"-DNO_LTO=$(usex lto FALSE TRUE)"
)
cmake_src_configure
}

View File

@@ -1,19 +0,0 @@
#Created by Quincy Fleming.
#Disables debug info without using flag NDEBUG as unless forced it will be ignored in favor of the user's specified compiler flags
--- a/src/gui/include/all/clipboard/logging.hpp
+++ b/src/gui/include/all/clipboard/logging.hpp
@@ -17,7 +17,6 @@
#include <iostream>
#include <streambuf>
-#if defined(NDEBUG)
class NullBuffer : public std::streambuf {
public:
int overflow(int c) override { return c; }
@@ -26,6 +25,3 @@
static NullBuffer nullBuffer;
static std::ostream nullStream(&nullBuffer);
static std::ostream& debugStream = nullStream;
-#else
-static std::ostream& debugStream = std::cerr;
-#endif

View File

@@ -1,79 +0,0 @@
#Created by Quincy Fleming
#Disables git program as it will just result in fatal error during build (won't stop the build though. just annoying)
#Also, this removes enabling of LTO by default and allows the user to choose wether or not they want LTO support via USE flag
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -11,22 +11,6 @@
set(X11WL ON)
endif()
-execute_process( # save the current branch to GIT_BRANCH
- COMMAND git rev-parse --abbrev-ref HEAD
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
- OUTPUT_VARIABLE GIT_BRANCH
- OUTPUT_STRIP_TRAILING_WHITESPACE
-)
-
-execute_process( # save the current commit hash to GIT_COMMIT_HASH
- COMMAND git log -1 --format=%h
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
- OUTPUT_VARIABLE GIT_COMMIT_HASH
- OUTPUT_STRIP_TRAILING_WHITESPACE
-)
-
-add_definitions(-DGIT_COMMIT_HASH="${GIT_COMMIT_HASH}")
-add_definitions(-DGIT_BRANCH="${GIT_BRANCH}")
add_definitions(-DCLIPBOARD_VERSION="${PROJECT_VERSION}")
if (MSVC)
@@ -84,17 +68,6 @@
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_MINSIZEREL ${LIB_LOCATION})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL ${BIN_LOCATION})
-function(enable_lto this_target)
-include(CheckIPOSupported)
-check_ipo_supported(RESULT lto_supported)
-if(lto_supported AND NOT NO_LTO)
- set_property(TARGET ${this_target} PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)
- if(CMAKE_COMPILER_IS_GNUCXX)
- list(APPEND CMAKE_CXX_COMPILE_OPTIONS_IPO "-flto=auto") # set the thread amount to what is available on the CPU
- endif()
-endif()
-endfunction()
-
add_subdirectory(src/gui)
find_package(X11)
--- a/src/cb/CMakeLists.txt
+++ b/src/cb/CMakeLists.txt
@@ -5,8 +5,6 @@
src/themes.cpp
)
-enable_lto(cb)
-
target_link_libraries(cb gui)
if(WIN32)
--- a/src/cbwayland/CMakeLists.txt
+++ b/src/cbwayland/CMakeLists.txt
@@ -60,8 +60,6 @@
)
add_dependencies(cbwayland cbwayland_generatedheaders)
-enable_lto(cbwayland)
-
target_link_libraries(cbwayland
${WAYLAND_CLIENT_LIBRARIES}
gui
--- a/src/cbx11/CMakeLists.txt
+++ b/src/cbx11/CMakeLists.txt
@@ -7,8 +7,6 @@
gui
)
-enable_lto(cbx11)
-
target_include_directories(cbx11 PRIVATE ${X11_INCLUDE_DIR})
install(TARGETS cbx11 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})

View File

@@ -1 +1 @@
DIST grpc-stubs-1.53.0.2.gh.tar.gz 14607 BLAKE2B a18f17d1fe31133f7bafb4728b1748537db11b5d11f7da9364fb595c86afcfb47199d069e7eb3e05b89b92757b1080dfd443d0ee2006e85e49c75e5ad188e41a SHA512 ea8343231d12a34927bab56ddfdad69233c4e09502cd072db9ed21ec79726a600e9dc31a0b3ecbae47ea5f4357ddb0840e022fb385f6e1296665406254c59fba
DIST grpc-stubs-1.53.0.3.gh.tar.gz 14667 BLAKE2B 58f1ff46f6e4ad96fafa7583158e8a3be1ac5fc991f50dde34899fad919fbfb46afe5da8846aa7ef98cdc4de34609ee93a06d137630d505460d34ecaa3a47837 SHA512 dbcf9882b4ad986bcf17ed613c233cfd889d46340b91534d9ef33a11e1ce25db5e81a747c57b55a1e174012c81da94d29769706a1b3932ca13b020506235ccbd

View File

@@ -0,0 +1,12 @@
Tests should fail if mypy fails to find the stubs that are to be tested.
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,7 +1,7 @@
[mypy]
check_untyped_defs = True
ignore_errors = False
-ignore_missing_imports = True
+ignore_missing_imports = False
strict_optional = True
no_error_summary = True
no_color_output = True

View File

@@ -1,37 +0,0 @@
# Copyright 2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_11 )
inherit distutils-r1
DESCRIPTION="gRPC typing stubs for Python"
HOMEPAGE="
https://pypi.org/project/grpc-stubs/
https://github.com/shabbyrobe/grpc-stubs/
"
SRC_URI="https://github.com/shabbyrobe/grpc-stubs/archive/refs/tags/${PV}.tar.gz
-> ${P}.gh.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64"
RDEPEND="
dev-python/grpcio[${PYTHON_USEDEP}]
dev-python/protobuf-python[${PYTHON_USEDEP}]
"
BDEPEND="
test? (
dev-python/mypy[${PYTHON_USEDEP}]
dev-python/pytest-mypy-plugins[${PYTHON_USEDEP}]
dev-python/types-protobuf[${PYTHON_USEDEP}]
)
"
distutils_enable_tests pytest
python_test() {
epytest --mypy-ini-file=setup.cfg
}

View File

@@ -0,0 +1,40 @@
# Copyright 2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_11 )
inherit distutils-r1
DESCRIPTION="gRPC typing stubs for Python"
HOMEPAGE="
https://pypi.org/project/grpc-stubs/
https://github.com/shabbyrobe/grpc-stubs/
"
SRC_URI="https://github.com/shabbyrobe/grpc-stubs/archive/refs/tags/${PV}.tar.gz
-> ${P}.gh.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64"
RDEPEND="dev-python/types-protobuf[${PYTHON_USEDEP}]"
BDEPEND="test? (
dev-python/pytest-mypy-plugins[${PYTHON_USEDEP}]
${RDEPEND}
)"
distutils_enable_tests pytest
PATCHES="${FILESDIR}/"${P}-die-on-missing-import.patch
python_test() {
# Gentoo's PEP 517 mode runs tests in a venv-like environment.
# Pytest-mypy-plugins checks the PATH for mypy, we provide a venv-aware
# variant.
printf "#!/bin/bash\n $(which python) -m mypy \$@" > \
"${BUILD_DIR}"/install/usr/bin/mypy || die
chmod +x "${BUILD_DIR}"/install/usr/bin/mypy || die
epytest --mypy-ini-file=setup.cfg
rm "${BUILD_DIR}"/install/usr/bin/mypy || die
}

View File

@@ -1,667 +0,0 @@
From: Pedro Arizmendi <dwosky@pm.me>
Skip all tests that require an internet connection.
--- a/tests/_files/test_animation.py
+++ b/tests/_files/test_animation.py
@@ -66,11 +66,13 @@ class TestAnimationBase:
class TestAnimationWithoutRequest(TestAnimationBase):
+ @pytest.mark.skip(reason="Requires internet connection")
def test_slot_behaviour(self, animation):
for attr in animation.__slots__:
assert getattr(animation, attr, "err") != "err", f"got extra slot '{attr}'"
assert len(mro_slots(animation)) == len(set(mro_slots(animation))), "duplicate slot"
+ @pytest.mark.skip(reason="Requires internet connection")
def test_creation(self, animation):
assert isinstance(animation, Animation)
assert isinstance(animation.file_id, str)
@@ -78,6 +80,7 @@ class TestAnimationWithoutRequest(TestAnimationBase):
assert animation.file_id != ""
assert animation.file_unique_id != ""
+ @pytest.mark.skip(reason="Requires internet connection")
def test_expected_values(self, animation):
assert animation.mime_type == self.mime_type
assert animation.file_name.startswith("game.gif") == self.file_name.startswith("game.gif")
@@ -95,6 +98,7 @@ class TestAnimationWithoutRequest(TestAnimationBase):
assert animation.thumb is animation.thumbnail
check_thumb_deprecation_warnings_for_args_and_attrs(recwarn, __file__)
+ @pytest.mark.skip(reason="Requires internet connection")
def test_de_json(self, bot, animation):
json_dict = {
"file_id": self.animation_file_id,
@@ -115,6 +119,7 @@ class TestAnimationWithoutRequest(TestAnimationBase):
assert animation.mime_type == self.mime_type
assert animation.file_size == self.file_size
+ @pytest.mark.skip(reason="Requires internet connection")
def test_to_dict(self, animation):
animation_dict = animation.to_dict()
@@ -184,6 +189,7 @@ class TestAnimationWithoutRequest(TestAnimationBase):
finally:
bot._local_mode = False
+ @pytest.mark.skip(reason="Requires internet connection")
async def test_send_with_animation(self, monkeypatch, bot, chat_id, animation):
async def make_assertion(url, request_data: RequestData, *args, **kwargs):
return request_data.json_parameters["animation"] == animation.file_id
@@ -200,6 +206,7 @@ class TestAnimationWithoutRequest(TestAnimationBase):
with pytest.raises(ValueError, match="different entities as 'thumb' and 'thumbnail'"):
await bot.send_animation(chat_id, file, thumbnail=file, thumb=different_file)
+ @pytest.mark.skip(reason="Requires internet connection")
async def test_get_file_instance_method(self, monkeypatch, animation):
async def make_assertion(*_, **kwargs):
return kwargs["file_id"] == animation.file_id
--- a/tests/_files/test_audio.py
+++ b/tests/_files/test_audio.py
@@ -67,11 +67,13 @@ class TestAudioBase:
class TestAudioWithoutRequest(TestAudioBase):
+ @pytest.mark.skip(reason="Requires internet connection")
def test_slot_behaviour(self, audio):
for attr in audio.__slots__:
assert getattr(audio, attr, "err") != "err", f"got extra slot '{attr}'"
assert len(mro_slots(audio)) == len(set(mro_slots(audio))), "duplicate slot"
+ @pytest.mark.skip(reason="Requires internet connection")
def test_creation(self, audio):
# Make sure file has been uploaded.
assert isinstance(audio, Audio)
@@ -80,6 +82,7 @@ class TestAudioWithoutRequest(TestAudioBase):
assert audio.file_id != ""
assert audio.file_unique_id != ""
+ @pytest.mark.skip(reason="Requires internet connection")
def test_expected_values(self, audio):
assert audio.duration == self.duration
assert audio.performer is None
@@ -95,6 +98,7 @@ class TestAudioWithoutRequest(TestAudioBase):
assert audio.thumb is audio.thumbnail
check_thumb_deprecation_warnings_for_args_and_attrs(recwarn, __file__)
+ @pytest.mark.skip(reason="Requires internet connection")
def test_de_json(self, bot, audio):
json_dict = {
"file_id": self.audio_file_id,
@@ -120,6 +124,7 @@ class TestAudioWithoutRequest(TestAudioBase):
assert json_audio.file_size == self.file_size
assert json_audio.thumbnail == audio.thumbnail
+ @pytest.mark.skip(reason="Requires internet connection")
def test_to_dict(self, audio):
audio_dict = audio.to_dict()
@@ -131,6 +136,7 @@ class TestAudioWithoutRequest(TestAudioBase):
assert audio_dict["file_size"] == audio.file_size
assert audio_dict["file_name"] == audio.file_name
+ @pytest.mark.skip(reason="Requires internet connection")
def test_equality(self, audio):
a = Audio(audio.file_id, audio.file_unique_id, audio.duration)
b = Audio("", audio.file_unique_id, audio.duration)
@@ -151,6 +157,7 @@ class TestAudioWithoutRequest(TestAudioBase):
assert a != e
assert hash(a) != hash(e)
+ @pytest.mark.skip(reason="Requires internet connection")
async def test_send_with_audio(self, monkeypatch, bot, chat_id, audio):
async def make_assertion(url, request_data: RequestData, *args, **kwargs):
return request_data.json_parameters["audio"] == audio.file_id
@@ -198,6 +205,7 @@ class TestAudioWithoutRequest(TestAudioBase):
with pytest.raises(ValueError, match="different entities as 'thumb' and 'thumbnail'"):
await bot.send_audio(chat_id, file, thumbnail=file, thumb=different_file)
+ @pytest.mark.skip(reason="Requires internet connection")
async def test_get_file_instance_method(self, monkeypatch, audio):
async def make_assertion(*_, **kwargs):
return kwargs["file_id"] == audio.file_id
--- a/tests/_files/test_chatphoto.py
+++ b/tests/_files/test_chatphoto.py
@@ -61,11 +61,13 @@ class TestChatPhotoBase:
class TestChatPhotoWithoutRequest(TestChatPhotoBase):
+ @pytest.mark.skip(reason="Requires internet connection")
def test_slot_behaviour(self, chat_photo):
for attr in chat_photo.__slots__:
assert getattr(chat_photo, attr, "err") != "err", f"got extra slot '{attr}'"
assert len(mro_slots(chat_photo)) == len(set(mro_slots(chat_photo))), "duplicate slot"
+ @pytest.mark.skip(reason="Requires internet connection")
def test_de_json(self, bot, chat_photo):
json_dict = {
"small_file_id": self.chatphoto_small_file_id,
@@ -80,6 +82,7 @@ class TestChatPhotoWithoutRequest(TestChatPhotoBase):
assert chat_photo.small_file_unique_id == self.chatphoto_small_file_unique_id
assert chat_photo.big_file_unique_id == self.chatphoto_big_file_unique_id
+ @pytest.mark.skip(reason="Requires internet connection")
async def test_to_dict(self, chat_photo):
chat_photo_dict = chat_photo.to_dict()
@@ -121,6 +124,7 @@ class TestChatPhotoWithoutRequest(TestChatPhotoBase):
assert a != e
assert hash(a) != hash(e)
+ @pytest.mark.skip(reason="Requires internet connection")
async def test_send_with_chat_photo(self, monkeypatch, bot, super_group_id, chat_photo):
async def make_assertion(url, request_data: RequestData, *args, **kwargs):
return request_data.parameters["photo"] == chat_photo.to_dict()
@@ -129,6 +133,7 @@ class TestChatPhotoWithoutRequest(TestChatPhotoBase):
message = await bot.set_chat_photo(photo=chat_photo, chat_id=super_group_id)
assert message
+ @pytest.mark.skip(reason="Requires internet connection")
async def test_get_small_file_instance_method(self, monkeypatch, chat_photo):
async def make_assertion(*_, **kwargs):
return kwargs["file_id"] == chat_photo.small_file_id
@@ -142,6 +147,7 @@ class TestChatPhotoWithoutRequest(TestChatPhotoBase):
monkeypatch.setattr(chat_photo.get_bot(), "get_file", make_assertion)
assert await chat_photo.get_small_file()
+ @pytest.mark.skip(reason="Requires internet connection")
async def test_get_big_file_instance_method(self, monkeypatch, chat_photo):
async def make_assertion(*_, **kwargs):
return kwargs["file_id"] == chat_photo.big_file_id
--- a/tests/_files/test_document.py
+++ b/tests/_files/test_document.py
@@ -62,11 +62,13 @@ class TestDocumentBase:
class TestDocumentWithoutRequest(TestDocumentBase):
+ @pytest.mark.skip(reason="Requires internet connection")
def test_slot_behaviour(self, document):
for attr in document.__slots__:
assert getattr(document, attr, "err") != "err", f"got extra slot '{attr}'"
assert len(mro_slots(document)) == len(set(mro_slots(document))), "duplicate slot"
+ @pytest.mark.skip(reason="Requires internet connection")
def test_creation(self, document):
assert isinstance(document, Document)
assert isinstance(document.file_id, str)
@@ -74,6 +76,7 @@ class TestDocumentWithoutRequest(TestDocumentBase):
assert document.file_id != ""
assert document.file_unique_id != ""
+ @pytest.mark.skip(reason="Requires internet connection")
def test_expected_values(self, document):
assert document.file_size == self.file_size
assert document.mime_type == self.mime_type
@@ -87,6 +90,7 @@ class TestDocumentWithoutRequest(TestDocumentBase):
assert document.thumb is document.thumbnail
check_thumb_deprecation_warnings_for_args_and_attrs(recwarn, __file__)
+ @pytest.mark.skip(reason="Requires internet connection")
def test_de_json(self, bot, document):
json_dict = {
"file_id": self.document_file_id,
@@ -106,6 +110,7 @@ class TestDocumentWithoutRequest(TestDocumentBase):
assert test_document.mime_type == self.mime_type
assert test_document.file_size == self.file_size
+ @pytest.mark.skip(reason="Requires internet connection")
def test_to_dict(self, document):
document_dict = document.to_dict()
@@ -116,6 +121,7 @@ class TestDocumentWithoutRequest(TestDocumentBase):
assert document_dict["mime_type"] == document.mime_type
assert document_dict["file_size"] == document.file_size
+ @pytest.mark.skip(reason="Requires internet connection")
def test_equality(self, document):
a = Document(document.file_id, document.file_unique_id)
b = Document("", document.file_unique_id)
@@ -137,6 +143,7 @@ class TestDocumentWithoutRequest(TestDocumentBase):
await bot.send_document(chat_id=chat_id)
@pytest.mark.parametrize("disable_content_type_detection", [True, False, None])
+ @pytest.mark.skip(reason="Requires internet connection")
async def test_send_with_document(
self, monkeypatch, bot, chat_id, document, disable_content_type_detection
):
@@ -192,6 +199,7 @@ class TestDocumentWithoutRequest(TestDocumentBase):
with pytest.raises(ValueError, match="different entities as 'thumb' and 'thumbnail'"):
await bot.send_document(chat_id, file, thumbnail=file, thumb=different_file)
+ @pytest.mark.skip(reason="Requires internet connection")
async def test_get_file_instance_method(self, monkeypatch, document):
async def make_assertion(*_, **kwargs):
return kwargs["file_id"] == document.file_id
--- a/tests/_files/test_inputmedia.py
+++ b/tests/_files/test_inputmedia.py
@@ -186,6 +186,7 @@ class TestInputMediaVideoWithoutRequest(TestInputMediaVideoBase):
assert input_media_video_dict["supports_streaming"] == input_media_video.supports_streaming
assert input_media_video_dict["has_spoiler"] == input_media_video.has_spoiler
+ @pytest.mark.skip(reason="Requires internet connection")
def test_with_video(self, video): # noqa: F811
# fixture found in test_video
input_media_video = InputMediaVideo(video, caption="test 3")
@@ -258,6 +259,7 @@ class TestInputMediaPhotoWithoutRequest(TestInputMediaPhotoBase):
]
assert input_media_photo_dict["has_spoiler"] == input_media_photo.has_spoiler
+ @pytest.mark.skip(reason="Requires internet connection")
def test_with_photo(self, photo): # noqa: F811
# fixture found in test_photo
input_media_photo = InputMediaPhoto(photo, caption="test 2")
@@ -329,6 +331,7 @@ class TestInputMediaAnimationWithoutRequest(TestInputMediaAnimationBase):
assert input_media_animation_dict["duration"] == input_media_animation.duration
assert input_media_animation_dict["has_spoiler"] == input_media_animation.has_spoiler
+ @pytest.mark.skip(reason="Requires internet connection")
def test_with_animation(self, animation): # noqa: F811
# fixture found in test_animation
input_media_animation = InputMediaAnimation(animation, caption="test 2")
@@ -411,6 +414,7 @@ class TestInputMediaAudioWithoutRequest(TestInputMediaAudioBase):
ce.to_dict() for ce in input_media_audio.caption_entities
]
+ @pytest.mark.skip(reason="Requires internet connection")
def test_with_audio(self, audio): # noqa: F811
# fixture found in test_audio
input_media_audio = InputMediaAudio(audio, caption="test 3")
@@ -496,6 +500,7 @@ class TestInputMediaDocumentWithoutRequest(TestInputMediaDocumentBase):
== input_media_document.disable_content_type_detection
)
+ @pytest.mark.skip(reason="Requires internet connection")
def test_with_document(self, document): # noqa: F811
# fixture found in test_document
input_media_document = InputMediaDocument(document, caption="test 3")
@@ -559,6 +564,7 @@ def media_group_no_caption_only_parse_mode(photo, thumb): # noqa: F811
class TestSendMediaGroupWithoutRequest:
+ @pytest.mark.skip(reason="Requires internet connection")
async def test_send_media_group_throws_error_with_group_caption_and_individual_captions(
self,
bot,
--- a/tests/_files/test_photo.py
+++ b/tests/_files/test_photo.py
@@ -74,11 +74,13 @@ class TestPhotoBase:
class TestPhotoWithoutRequest(TestPhotoBase):
+ @pytest.mark.skip(reason="Requires internet connection")
def test_slot_behaviour(self, photo):
for attr in photo.__slots__:
assert getattr(photo, attr, "err") != "err", f"got extra slot '{attr}'"
assert len(mro_slots(photo)) == len(set(mro_slots(photo))), "duplicate slot"
+ @pytest.mark.skip(reason="Requires internet connection")
def test_creation(self, thumb, photo):
# Make sure file has been uploaded.
assert isinstance(photo, PhotoSize)
@@ -93,6 +95,7 @@ class TestPhotoWithoutRequest(TestPhotoBase):
assert thumb.file_id != ""
assert thumb.file_unique_id != ""
+ @pytest.mark.skip(reason="Requires internet connection")
def test_expected_values(self, photo, thumb):
assert photo.width == self.width
assert photo.height == self.height
@@ -101,6 +104,7 @@ class TestPhotoWithoutRequest(TestPhotoBase):
assert thumb.height == 90
assert thumb.file_size == 1477
+ @pytest.mark.skip(reason="Requires internet connection")
def test_de_json(self, bot, photo):
json_dict = {
"file_id": photo.file_id,
@@ -118,6 +122,7 @@ class TestPhotoWithoutRequest(TestPhotoBase):
assert json_photo.height == self.height
assert json_photo.file_size == self.file_size
+ @pytest.mark.skip(reason="Requires internet connection")
def test_to_dict(self, photo):
photo_dict = photo.to_dict()
@@ -128,6 +133,7 @@ class TestPhotoWithoutRequest(TestPhotoBase):
assert photo_dict["height"] == photo.height
assert photo_dict["file_size"] == photo.file_size
+ @pytest.mark.skip(reason="Requires internet connection")
def test_equality(self, photo):
a = PhotoSize(photo.file_id, photo.file_unique_id, self.width, self.height)
b = PhotoSize("", photo.file_unique_id, self.width, self.height)
@@ -189,6 +195,7 @@ class TestPhotoWithoutRequest(TestPhotoBase):
finally:
bot._local_mode = False
+ @pytest.mark.skip(reason="Requires internet connection")
async def test_send_with_photosize(self, monkeypatch, bot, chat_id, photo):
async def make_assertion(url, request_data: RequestData, *args, **kwargs):
return request_data.json_parameters["photo"] == photo.file_id
@@ -196,6 +203,7 @@ class TestPhotoWithoutRequest(TestPhotoBase):
monkeypatch.setattr(bot.request, "post", make_assertion)
assert await bot.send_photo(photo=photo, chat_id=chat_id)
+ @pytest.mark.skip(reason="Requires internet connection")
async def test_get_file_instance_method(self, monkeypatch, photo):
async def make_assertion(*_, **kwargs):
return kwargs["file_id"] == photo.file_id
--- a/tests/_files/test_sticker.py
+++ b/tests/_files/test_sticker.py
@@ -116,11 +116,13 @@ class TestStickerBase:
class TestStickerWithoutRequest(TestStickerBase):
+ @pytest.mark.skip(reason="Requires internet connection")
def test_slot_behaviour(self, sticker):
for attr in sticker.__slots__:
assert getattr(sticker, attr, "err") != "err", f"got extra slot '{attr}'"
assert len(mro_slots(sticker)) == len(set(mro_slots(sticker))), "duplicate slot"
+ @pytest.mark.skip(reason="Requires internet connection")
def test_creation(self, sticker):
# Make sure file has been uploaded.
assert isinstance(sticker, Sticker)
@@ -135,6 +137,7 @@ class TestStickerWithoutRequest(TestStickerBase):
assert sticker.thumbnail.file_unique_id != ""
assert isinstance(sticker.needs_repainting, bool)
+ @pytest.mark.skip(reason="Requires internet connection")
def test_expected_values(self, sticker):
assert sticker.width == self.width
assert sticker.height == self.height
@@ -163,6 +166,7 @@ class TestStickerWithoutRequest(TestStickerBase):
assert sticker.thumb is sticker.thumbnail
check_thumb_deprecation_warnings_for_args_and_attrs(recwarn, __file__)
+ @pytest.mark.skip(reason="Requires internet connection")
def test_to_dict(self, sticker):
sticker_dict = sticker.to_dict()
@@ -178,6 +182,7 @@ class TestStickerWithoutRequest(TestStickerBase):
assert sticker_dict["type"] == sticker.type
assert sticker_dict["needs_repainting"] == sticker.needs_repainting
+ @pytest.mark.skip(reason="Requires internet connection")
def test_de_json(self, bot, sticker):
json_dict = {
"file_id": self.sticker_file_id,
@@ -211,6 +216,7 @@ class TestStickerWithoutRequest(TestStickerBase):
assert json_sticker.custom_emoji_id == self.custom_emoji_id
assert json_sticker.needs_repainting == self.needs_repainting
+ @pytest.mark.skip(reason="Requires internet connection")
def test_equality(self, sticker):
a = Sticker(
sticker.file_id,
@@ -273,6 +279,7 @@ class TestStickerWithoutRequest(TestStickerBase):
with pytest.raises(TypeError):
await bot.send_sticker(chat_id)
+ @pytest.mark.skip(reason="Requires internet connection")
async def test_send_with_sticker(self, monkeypatch, bot, chat_id, sticker):
async def make_assertion(url, request_data: RequestData, *args, **kwargs):
return request_data.json_parameters["sticker"] == sticker.file_id
@@ -564,6 +571,7 @@ class TestStickerSetWithoutRequest(TestStickerSetBase):
assert sticker_set.thumb is sticker_set.thumbnail
check_thumb_deprecation_warnings_for_args_and_attrs(recwarn, __file__)
+ @pytest.mark.skip(reason="Requires internet connection")
def test_de_json(self, bot, sticker):
name = f"test_by_{bot.username}"
json_dict = {
@@ -587,6 +595,7 @@ class TestStickerSetWithoutRequest(TestStickerSetBase):
assert sticker_set.sticker_type == self.sticker_type
assert sticker_set.api_kwargs == {"contains_masks": self.contains_masks}
+ @pytest.mark.skip(reason="Requires internet connection")
def test_sticker_set_to_dict(self, sticker_set):
sticker_set_dict = sticker_set.to_dict()
@@ -927,6 +936,7 @@ class TestStickerSetWithoutRequest(TestStickerSetBase):
assert recwarn[0].filename == __file__, f"incorrect stacklevel for class {cls_name}!"
recwarn.clear()
+ @pytest.mark.skip(reason="Requires internet connection")
async def test_get_file_instance_method(self, monkeypatch, sticker):
async def make_assertion(*_, **kwargs):
return kwargs["file_id"] == sticker.file_id
--- a/tests/_files/test_video.py
+++ b/tests/_files/test_video.py
@@ -66,11 +66,13 @@ class TestVideoBase:
class TestVideoWithoutRequest(TestVideoBase):
+ @pytest.mark.skip(reason="Requires internet connection")
def test_slot_behaviour(self, video):
for attr in video.__slots__:
assert getattr(video, attr, "err") != "err", f"got extra slot '{attr}'"
assert len(mro_slots(video)) == len(set(mro_slots(video))), "duplicate slot"
+ @pytest.mark.skip(reason="Requires internet connection")
def test_creation(self, video):
# Make sure file has been uploaded.
assert isinstance(video, Video)
@@ -85,6 +87,7 @@ class TestVideoWithoutRequest(TestVideoBase):
assert video.thumbnail.file_id != ""
assert video.thumbnail.file_unique_id != ""
+ @pytest.mark.skip(reason="Requires internet connection")
def test_expected_values(self, video):
assert video.width == self.width
assert video.height == self.height
@@ -127,6 +130,7 @@ class TestVideoWithoutRequest(TestVideoBase):
assert json_video.file_size == self.file_size
assert json_video.file_name == self.file_name
+ @pytest.mark.skip(reason="Requires internet connection")
def test_to_dict(self, video):
video_dict = video.to_dict()
@@ -140,6 +144,7 @@ class TestVideoWithoutRequest(TestVideoBase):
assert video_dict["file_size"] == video.file_size
assert video_dict["file_name"] == video.file_name
+ @pytest.mark.skip(reason="Requires internet connection")
def test_equality(self, video):
a = Video(video.file_id, video.file_unique_id, self.width, self.height, self.duration)
b = Video("", video.file_unique_id, self.width, self.height, self.duration)
@@ -164,6 +169,7 @@ class TestVideoWithoutRequest(TestVideoBase):
with pytest.raises(TypeError):
await bot.send_video(chat_id=chat_id)
+ @pytest.mark.skip(reason="Requires internet connection")
async def test_send_with_video(self, monkeypatch, bot, chat_id, video):
async def make_assertion(url, request_data: RequestData, *args, **kwargs):
return request_data.json_parameters["video"] == video.file_id
@@ -212,6 +218,7 @@ class TestVideoWithoutRequest(TestVideoBase):
with pytest.raises(ValueError, match="different entities as 'thumb' and 'thumbnail'"):
await bot.send_video(chat_id, file, thumbnail=file, thumb=different_file)
+ @pytest.mark.skip(reason="Requires internet connection")
async def test_get_file_instance_method(self, monkeypatch, video):
async def make_assertion(*_, **kwargs):
return kwargs["file_id"] == video.file_id
--- a/tests/_files/test_videonote.py
+++ b/tests/_files/test_videonote.py
@@ -60,11 +60,13 @@ class TestVideoNoteBase:
class TestVideoNoteWithoutRequest(TestVideoNoteBase):
+ @pytest.mark.skip(reason="Requires internet connection")
def test_slot_behaviour(self, video_note):
for attr in video_note.__slots__:
assert getattr(video_note, attr, "err") != "err", f"got extra slot '{attr}'"
assert len(mro_slots(video_note)) == len(set(mro_slots(video_note))), "duplicate slot"
+ @pytest.mark.skip(reason="Requires internet connection")
def test_creation(self, video_note):
# Make sure file has been uploaded.
assert isinstance(video_note, VideoNote)
@@ -79,6 +81,7 @@ class TestVideoNoteWithoutRequest(TestVideoNoteBase):
assert video_note.thumbnail.file_id != ""
assert video_note.thumbnail.file_unique_id != ""
+ @pytest.mark.skip(reason="Requires internet connection")
def test_expected_values(self, video_note):
assert video_note.length == self.length
assert video_note.duration == self.duration
@@ -108,6 +111,7 @@ class TestVideoNoteWithoutRequest(TestVideoNoteBase):
assert json_video_note.duration == self.duration
assert json_video_note.file_size == self.file_size
+ @pytest.mark.skip(reason="Requires internet connection")
def test_to_dict(self, video_note):
video_note_dict = video_note.to_dict()
@@ -118,6 +122,7 @@ class TestVideoNoteWithoutRequest(TestVideoNoteBase):
assert video_note_dict["duration"] == video_note.duration
assert video_note_dict["file_size"] == video_note.file_size
+ @pytest.mark.skip(reason="Requires internet connection")
def test_equality(self, video_note):
a = VideoNote(video_note.file_id, video_note.file_unique_id, self.length, self.duration)
b = VideoNote("", video_note.file_unique_id, self.length, self.duration)
@@ -142,6 +147,7 @@ class TestVideoNoteWithoutRequest(TestVideoNoteBase):
with pytest.raises(TypeError):
await bot.send_video_note(chat_id=chat_id)
+ @pytest.mark.skip(reason="Requires internet connection")
async def test_send_with_video_note(self, monkeypatch, bot, chat_id, video_note):
async def make_assertion(url, request_data: RequestData, *args, **kwargs):
return request_data.json_parameters["video_note"] == video_note.file_id
@@ -194,6 +200,7 @@ class TestVideoNoteWithoutRequest(TestVideoNoteBase):
with pytest.raises(ValueError, match="different entities as 'thumb' and 'thumbnail'"):
await bot.send_video_note(chat_id, file, thumbnail=file, thumb=different_file)
+ @pytest.mark.skip(reason="Requires internet connection")
async def test_get_file_instance_method(self, monkeypatch, video_note):
async def make_assertion(*_, **kwargs):
return kwargs["file_id"] == video_note.file_id
--- a/tests/_files/test_voice.py
+++ b/tests/_files/test_voice.py
@@ -58,11 +58,13 @@ class TestVoiceBase:
class TestVoiceWithoutRequest(TestVoiceBase):
+ @pytest.mark.skip(reason="Requires internet connection")
def test_slot_behaviour(self, voice):
for attr in voice.__slots__:
assert getattr(voice, attr, "err") != "err", f"got extra slot '{attr}'"
assert len(mro_slots(voice)) == len(set(mro_slots(voice))), "duplicate slot"
+ @pytest.mark.skip(reason="Requires internet connection")
async def test_creation(self, voice):
# Make sure file has been uploaded.
assert isinstance(voice, Voice)
@@ -71,6 +73,7 @@ class TestVoiceWithoutRequest(TestVoiceBase):
assert voice.file_id != ""
assert voice.file_unique_id != ""
+ @pytest.mark.skip(reason="Requires internet connection")
def test_expected_values(self, voice):
assert voice.duration == self.duration
assert voice.mime_type == self.mime_type
@@ -93,6 +96,7 @@ class TestVoiceWithoutRequest(TestVoiceBase):
assert json_voice.mime_type == self.mime_type
assert json_voice.file_size == self.file_size
+ @pytest.mark.skip(reason="Requires internet connection")
def test_to_dict(self, voice):
voice_dict = voice.to_dict()
@@ -103,6 +107,7 @@ class TestVoiceWithoutRequest(TestVoiceBase):
assert voice_dict["mime_type"] == voice.mime_type
assert voice_dict["file_size"] == voice.file_size
+ @pytest.mark.skip(reason="Requires internet connection")
def test_equality(self, voice):
a = Voice(voice.file_id, voice.file_unique_id, self.duration)
b = Voice("", voice.file_unique_id, self.duration)
@@ -135,6 +140,7 @@ class TestVoiceWithoutRequest(TestVoiceBase):
assert await bot.send_voice(chat_id, voice_file, filename="custom_filename")
+ @pytest.mark.skip(reason="Requires internet connection")
async def test_send_with_voice(self, monkeypatch, bot, chat_id, voice):
async def make_assertion(url, request_data: RequestData, *args, **kwargs):
return request_data.json_parameters["voice"] == voice.file_id
@@ -164,6 +170,7 @@ class TestVoiceWithoutRequest(TestVoiceBase):
finally:
bot._local_mode = False
+ @pytest.mark.skip(reason="Requires internet connection")
async def test_get_file_instance_method(self, monkeypatch, voice):
async def make_assertion(*_, **kwargs):
return kwargs["file_id"] == voice.file_id
--- a/tests/request/test_request.py
+++ b/tests/request/test_request.py
@@ -411,6 +411,7 @@ class TestHTTPXRequestWithoutRequest:
assert self.test_flag["init"] == 1
assert self.test_flag["shutdown"] == 1
+ @pytest.mark.skip(reason="Requires internet connection")
async def test_multiple_init_cycles(self):
# nothing really to assert - this should just not fail
httpx_request = HTTPXRequest()
@@ -423,6 +424,7 @@ class TestHTTPXRequestWithoutRequest:
with pytest.raises(ValueError, match="`http_version` must be either"):
HTTPXRequest(http_version="1.0")
+ @pytest.mark.skip(reason="Requires internet connection")
async def test_http_1_response(self):
httpx_request = HTTPXRequest(http_version="1.1")
async with httpx_request:
--- a/tests/test_bot.py
+++ b/tests/test_bot.py
@@ -302,6 +302,7 @@ class TestBotWithoutRequest:
assert self.test_flag == "stop"
+ @pytest.mark.skip(reason="Requires internet connection")
async def test_equality(self):
async with make_bot(token=FALLBACKS[0]["token"]) as a, make_bot(
token=FALLBACKS[0]["token"]
@@ -343,6 +344,7 @@ class TestBotWithoutRequest:
finally:
await bot.shutdown()
+ @pytest.mark.skip(reason="Requires internet connection")
async def test_get_me_and_properties(self, bot):
get_me_bot = await ExtBot(bot.token).get_me()
@@ -377,6 +379,7 @@ class TestBotWithoutRequest:
re.match(rf"\s*\@\_log\s*async def {bot_method_name}", source)
), f"{bot_method_name} is missing the @_log decorator"
+ @pytest.mark.skip(reason="Requires internet connection")
async def test_log_decorator(self, bot: PytestExtBot, caplog):
# Second argument makes sure that we ignore logs from e.g. httpx
with caplog.at_level(logging.DEBUG, logger="telegram"):
@@ -1361,6 +1364,7 @@ class TestBotWithoutRequest:
@pytest.mark.parametrize("json_keyboard", [True, False])
@pytest.mark.parametrize("caption", ["<b>Test</b>", "", None])
+ @pytest.mark.skip(reason="Requires internet connection")
async def test_copy_message(
self, monkeypatch, bot, chat_id, media_message, json_keyboard, caption
):
--- a/tests/test_forum.py
+++ b/tests/test_forum.py
@@ -73,6 +73,7 @@ async def real_topic(bot, emoji_id, forum_group_id):
assert result is True, "Topic was not deleted"
+@pytest.mark.skip(reason="Requires internet connection")
class TestForumTopicWithoutRequest:
def test_slot_behaviour(self, forum_topic_object):
inst = forum_topic_object
@@ -336,6 +337,7 @@ class TestForumTopicCreatedWithoutRequest:
assert action_dict["name"] == TEST_TOPIC_NAME
assert action_dict["icon_color"] == TEST_TOPIC_ICON_COLOR
+ @pytest.mark.skip(reason="Requires internet connection")
def test_equality(self, emoji_id):
a = ForumTopicCreated(name=TEST_TOPIC_NAME, icon_color=TEST_TOPIC_ICON_COLOR)
b = ForumTopicCreated(

View File

@@ -1,68 +1,61 @@
# Copyright 1999-2020 Gentoo Authors
# Copyright 2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
EAPI=8
PYTHON_COMPAT=( python3_10 )
inherit distutils-r1
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{10..12} )
inherit distutils-r1 optfeature
DESCRIPTION="Python wrapper of telegram bots API"
HOMEPAGE="https://python-telegram-bot.org https://github.com/python-telegram-bot/python-telegram-bot"
HOMEPAGE="https://docs.python-telegram-bot.org https://github.com/python-telegram-bot/python-telegram-bot"
if [[ ${PV} == *9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/python-telegram-bot/python-telegram-bot"
else
SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~amd64 ~x86"
fi
LICENSE="GPL-3"
LICENSE="LGPL-3"
SLOT="0"
# This error is really strange
# UserWarning: python-telegram-bot is using upstream urllib3. This is allowed but not supported by python-telegram-bot maintainers.
RESTRICT="test"
IUSE=""
RDEPEND="
dev-python/certifi[${PYTHON_USEDEP}]
dev-python/cryptography[${PYTHON_USEDEP}]
dev-python/decorator[${PYTHON_USEDEP}]
dev-python/future[${PYTHON_USEDEP}]
dev-python/PySocks[${PYTHON_USEDEP}]
dev-python/ujson[${PYTHON_USEDEP}]
dev-python/urllib3[${PYTHON_USEDEP}]
dev-python/tornado[${PYTHON_USEDEP}]
>=dev-python/cachetools-5.3.0[${PYTHON_USEDEP}]
>=dev-python/cryptography-39.0.1[${PYTHON_USEDEP}]
>=dev-python/httpx-0.24.0[${PYTHON_USEDEP}]
>=dev-python/tornado-6.2[${PYTHON_USEDEP}]
dev-python/setuptools[${PYTHON_USEDEP}]
"
BDEPEND="
test? (
dev-python/beautifulsoup4[${PYTHON_USEDEP}]
dev-python/flaky[${PYTHON_USEDEP}]
dev-python/pytest[${PYTHON_USEDEP}]
dev-python/pytest-asyncio[${PYTHON_USEDEP}]
dev-python/pytz[${PYTHON_USEDEP}]
>=dev-python/tornado-6.2[${PYTHON_USEDEP}]
)
"
DEPEND="test? (
dev-python/APScheduler[${PYTHON_USEDEP}]
dev-python/attrs[${PYTHON_USEDEP}]
dev-python/beautifulsoup4[${PYTHON_USEDEP}]
dev-python/flaky[${PYTHON_USEDEP}]
dev-python/pytest-timeout[${PYTHON_USEDEP}]
dev-python/pytz[${PYTHON_USEDEP}]
dev-python/yapf[${PYTHON_USEDEP}]
)"
PATCHES=(
"${FILESDIR}/${P}-no-internet-tests.patch"
)
distutils_enable_tests pytest
distutils_enable_sphinx docs/source dev-python/sphinx-rtd-theme
# Run only the tests that don't require a connection
python_test() {
epytest -m no_req
}
python_prepare_all() {
# do not make a test flaky report
sed -i -e '/addopts/d' setup.cfg || die
sed -i 's/from telegram.vendor.ptb_urllib3 //g' tests/test_*.py
sed -i 's/telegram.vendor.ptb_urllib3.urllib3/urllib3/g' tests/test_*.py
# Remove tests files that require network access
rm tests/test_{animation,audio,bot,commandhandler,constants,conversationhandler}.py || die
rm tests/test_{dispatcher,document,forcereply,inlinekeyboardmarkup,inputmedia}.py || die
rm tests/test_{invoice,jobqueue,official,parsemode,persistence,photo,sticker,updater}.py || die
rm tests/test_replykeyboard{markup,remove}.py || die
rm tests/test_{video,videonote,voice}.py || die
distutils-r1_python_prepare_all
}
pkg_postinst() {
optfeature_header "Optional package dependencies:"
optfeature "using telegram.ext.JobQueue" dev-python/APScheduler
}

View File

@@ -1 +1,2 @@
DIST types-requests-2.31.0.5.tar.gz 15474 BLAKE2B d1fc25eb9003f47bca74c21d9791aae2830b2242da387e0627e7509a3a52cb417f780fd6c4d5808314000a00b7f0385e1a275d0aaa23e9ecbcfe112290bead7a SHA512 a6df779ddfdc0ad3389d9c5c200bc1b14aefa3d6baf622879789c22230fbd5a3c0a71c0660ddc7abe75a57902abfb356b5c7107136919642d403e6da398c8489
DIST types-requests-2.31.0.6.tar.gz 15535 BLAKE2B 165bbedb94cf39b271a32c37e58333d0f59b053a3c882c964e5c46f8fe95fba4ce158434714f4352fc426b6c6fcc98e31caf79407d1778c4e514c0a8a6dfe457 SHA512 e35dc869c6192cea6408407fe024c9dcaeac7baa208df250671f0d99d31e36aa20647d3d1823069bdae27b899d1278010ebfc4ad19ef00a922cd1f64636bd521
DIST types-requests-2.31.0.7.tar.gz 15689 BLAKE2B 98006bfa2da460772ccdd9fe23f25c12a7b1bc6d6cdfe64fb0f0b7114702529cb0caef334cdd91c367c6c0c67dbea32e9b6d2a1c4f757181b9b59f1066e59165 SHA512 57ab649bb0f30d2bfb790eb1e5875779a6fa5708291db2a7e18beac4b436eeb3a19de163095926d907f4e78589082ee677b1e4d68430fd2aa82dbefdaa89666b

View File

@@ -19,4 +19,5 @@ SLOT="0"
LICENSE="Apache-2.0"
KEYWORDS="~amd64"
# Depends on _typeshed util stub module bundled with mypy and other type checkers.
RDEPEND="dev-python/types-urllib3"

View File

@@ -0,0 +1,23 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYPI_NO_NORMALIZE=1
PYTHON_COMPAT=( python3_{10..11} pypy3 )
inherit distutils-r1 pypi
DESCRIPTION="Typing stubs for requests"
HOMEPAGE="
https://pypi.org/project/types-requests/
https://github.com/python/typeshed/tree/master/stubs/requests
"
SLOT="0"
LICENSE="Apache-2.0"
KEYWORDS="~amd64"
# Depends on _typeshed util stub module bundled with mypy and other type checkers.
RDEPEND=">=dev-python/urllib3-2"

View File

@@ -1,3 +1,2 @@
DIST sfwbar-1.0_beta10.tar.gz 328768 BLAKE2B 9e3530bdb51de0baa997429dcaa5799db34827ccd412872c8f145ba7aef8a02776146e4a28c251968c8d9643a563201c7aa1ab8fbbbafb290c677526c9dfa5ac SHA512 d3671564a228419bca9a8cfa94939efd4c4455b7b80e7e06de023fb694366a267b012ad8167719cf8863bb1841cfba50b269924c4b23b447089ca587616d613f
DIST sfwbar-1.0_beta11.tar.gz 335292 BLAKE2B e4f81db97b73f082fd2d670819dc99b1dcfe15fe70af0a9a6ebc4da333ed33a3db00b6a1c1f9b3c0764a82eb9cb36d08fcabb83b866db7243f0c300a7c7a3842 SHA512 390d6018183738a0c3e6321537a3ba8b477a0932b8638115e9617c1f08fefad481c0c7385784178abe0282a2d1318aa288ab5b097da45229823653632d116bb8
DIST sfwbar-1.0_beta12.tar.gz 362373 BLAKE2B b1adda8a85c90d9459c4716c10eac501062476c4a039be7c8a8ebbcbfe63bb984a6869ed43157d24c02103e996d38e0d55e0d4b0df447f6e838a82bb7b725fc8 SHA512 b817ae0a0a77f13c6347ce50308b716ab30d7fc1e7920bf365ef34b332e07736bb4c08ec260195166b3cdc9cbafccabfd656afa7679f539a0a035d12ad519832
DIST sfwbar-1.0_beta13.tar.gz 370717 BLAKE2B 1728c823b8f077ed3ddf952138cb7a15c70628df60b9dcdc43abffd7e7b7b39ddee785063b2b144889dbd265cc4851fe953bf31aa0393297b7cf3029019f9224 SHA512 e838374bfabea6cdbb71ee2e8f0e8ea814cb874ecf617b250959aec81da3a18dd178e3257ead06bf41be55a0d1492312979eab11318cbc7da913a0881e247d67

View File

@@ -1,44 +0,0 @@
# Copyright 2020-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit meson xdg
DESCRIPTION="S* Floating Window Bar"
HOMEPAGE="https://github.com/LBCrion/sfwbar"
SRC_URI="https://github.com/LBCrion/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~amd64"
LICENSE="GPL-3"
SLOT="0"
IUSE="X mpd pulseaudio"
COMMON_DEPEND="
dev-libs/glib:2
dev-libs/json-c:=
dev-libs/wayland
gui-libs/gtk-layer-shell
>=x11-libs/gtk+-3.22.0:3[introspection,wayland]
X? ( x11-libs/libxkbcommon )
mpd? ( media-libs/libmpdclient )
pulseaudio? ( media-libs/libpulse[glib] )
"
RDEPEND="${COMMON_DEPEND}
virtual/freedesktop-icon-theme
"
DEPEND="${COMMON_DEPEND}
>=dev-libs/wayland-protocols-1.17
"
BDEPEND="dev-util/wayland-scanner"
src_configure() {
local emesonargs=(
$(meson_feature mpd)
$(meson_feature pulseaudio pulse)
$(meson_feature X xkb)
-Dnetwork=enabled
)
meson_src_configure
}

View File

@@ -12,7 +12,7 @@ KEYWORDS="~amd64"
LICENSE="GPL-3"
SLOT="0"
IUSE="X mpd pulseaudio"
IUSE="X mpd pulseaudio alsa"
COMMON_DEPEND="
dev-libs/glib:2
@@ -23,6 +23,7 @@ COMMON_DEPEND="
X? ( x11-libs/libxkbcommon )
mpd? ( media-libs/libmpdclient )
pulseaudio? ( media-libs/libpulse[glib] )
alsa? ( media-libs/alsa-lib )
"
RDEPEND="${COMMON_DEPEND}
virtual/freedesktop-icon-theme
@@ -34,10 +35,13 @@ BDEPEND="dev-util/wayland-scanner"
src_configure() {
local emesonargs=(
$(meson_feature alsa)
$(meson_feature mpd)
$(meson_feature pulseaudio pulse)
$(meson_feature X xkb)
-Dnetwork=enabled
-Didleinhibit=enabled
-Dbluez=enabled
-Dbsdctl=disabled
)

View File

@@ -7,5 +7,5 @@ DIST monero-0.18.1.1.tar.gz 11609864 BLAKE2B 45591a856d251b6d11dc9eac987852fc413
DIST monero-0.18.1.2.tar.gz 11609034 BLAKE2B 3186a1038e9dd8f204a506df28c526bf3e0e5f788ad2d6b512f02735162a479be3f46d309d4e6888f30f962d68ecaf269888c8c0b21a066cad78b3c06f8cfc83 SHA512 d112f34b2fe6720c324560dd523badb68f08d03183d4bbbe7e1aa95f641cde4a1c4fa4042f1d47f9920f799269cc9620150136ebbef6dd66fcd4df0336c0d7f3
DIST monero-0.18.2.0.tar.gz 11624875 BLAKE2B e8dc2e89c664cb218d900ce0803dd1716f1ee363bbddb232fbd22570818c9a9ca307df04808ffef1eb30ee6097fbe243f6977dfad181f57b9169f22d4819f145 SHA512 19625d8e6ee3e9f27ba06eb6027ef21571a2ae8261c9e32f6e74d2f7adf8c73e9dfe34516cd456426274c41ce941e1e5b7eba9f9d20492b99decbd9262aec434
DIST monero-0.18.2.2.tar.gz 11640001 BLAKE2B 04b19e760b09636d7862af2a071128a28006d2829f08039cf55cfa1fd7d054b1382dbbcfc7f0ed381fcbd358e75ec437467349c7f250510e99e06527d1209da6 SHA512 78d4f7fee4eb37ba4837bc392c5869e21c9ea1e9bd9e95f768003bc833302935121c315fb3b4fcbe8f07a9513f928e9e9146dc7ca8892a3db2eb14cfe1371727
DIST monero-0.18.3.0.tar.gz 14004133 BLAKE2B 9318721474aa5783b79f495ab50b28f5c5e0c0157ddd68c742c3e0866f83863f58106e826036a1604b47462e1307cf60f0ffb3cff6501bf578541b8a9568fb00 SHA512 85b37bb890afa8ea2c12dde9ea3ad654fcfbaccae9feb4033b3f345ee0497fce506f461e0de32d1620b2182ba33ffdb83886f92ebdf6fb39bc4473cc0122cff1
DIST monero-0.18.3.1.tar.gz 14005197 BLAKE2B 169d876caf94090894c9a2bd9d07b71e46411971b06da0f51fc57f01396de4f5f770062e08cbebf702b6b49dbcd47923675d2375795969f5673bf2091a7da742 SHA512 b29d25043d50fa30459e59e0c82627cc3dc4a7e2e28a727a353915a32cf5e70e36f548bda152dee13329cb2d09a978ff45c2121f8bf7acc8966957a53e772f03
DIST monero-8682.patch 1053 BLAKE2B 6252ee36961d41e6c7161004f2b3ddb0916a2dc91b91eed0e500a9681040366eb7e696abc91b138484bc735da5eb13f0a79ec1ded6f3c36dd3c8f8565113d7cf SHA512 2960a937ec04bc96a3564d2c730ca53cd1369f26d47567cd08c8e90abaf126f336a083e297b4240b5fae22ab3ad3cb45d741f2f48364d30f1442df393109a6eb

View File

@@ -1 +1 @@
DIST yandex-browser-23.3.1.912_p1.deb 122419732 BLAKE2B e1081b3df190bc264332d7a575bb10d480c6231b53c55bb9c60302a8dda1675adb44f14f308f56de40ad10abac6d15f291884cd36af4e4613fb02b9d046ff567 SHA512 f42a1b9237b6f296ab354f65fe6bdca1137146b1ffed3edd12c2ebde7e8e15ea0bb6ceb6917b2d4f9c3abbe1d2c256435315362a00421e8509fb5a06445f56c1
DIST yandex-browser-23.9.1.962_p1.deb 158802680 BLAKE2B ab76c07182fc8ff253b57cffcee9dec6d2f5e5454a1b96b06235228e5ded9248a3351bc201bddb0c0ac629c1d56cca7bf1a584991d7413bb6454c1f5d313ebe8 SHA512 5da7616fea48d0ed1b1ee7e5530c69511c7303664fbf16e9ea85f7a155c87a92feea8e8f1d41659de00986e7c4a47939b56684fdc41febd4111a7764bdc94081

View File

@@ -18,13 +18,18 @@ DESCRIPTION="The web browser from Yandex"
HOMEPAGE="https://browser.yandex.ru/"
LICENSE="Yandex-EULA"
SLOT="0"
IUSE="+ffmpeg-codecs"
IUSE="X wayland +ffmpeg-codecs"
REQUIRED_USE="|| ( X wayland )"
SRC_URI="
amd64? ( https://repo.yandex.ru/yandex-browser/deb/pool/main/y/${MY_PN}/${MY_PN}_${MY_PV}_amd64.deb -> ${P}.deb )
"
KEYWORDS="~amd64"
RDEPEND="
X? ( x11-base/xorg-server )
dev-libs/expat
dev-libs/glib:2
dev-libs/nspr

View File

@@ -1,2 +1,2 @@
DIST chromium-codecs-ffmpeg-extra_110.0.5481.100-0ubuntu0.18.04.1_amd64.deb 1108300 BLAKE2B befca27cdd764d9ee6442674f817576313b566f6b249e90962e1d6200362d27e000d26578de32f4c4f7c0400326c74bc26b1ec85906d912d6b17304dfc63f021 SHA512 d3c716d571594de19df219239fa3d34971b68ffcd78cb4bdfe18fd24ff26662fd43a382a4b9e0aa9d1f3e13c9dce551ab9cd5f47321acb0e58689ba0a02aa684
DIST chromium-codecs-ffmpeg-extra_110.0.5481.100-0ubuntu0.18.04.1_i386.deb 1090256 BLAKE2B 4cc031ddac0e567d6ac3d9c8d007b3af3b3c36b79f0ebed04ca587216ee7acc60a69ef208e649bd8b8f786c0b50a75ad1c74a0c2eaaa0b65d893b983cc46da56 SHA512 7b8a5818348bd9b33b30023ef80514264038f33caf2de9a4130cf27683fa04cb60110189eeaba9693f4eb59eb0b708aa79ebfd2e05d804111901deee02e1330c
DIST chromium-codecs-ffmpeg-extra_112.0.5615.49-0ubuntu0.18.04.1_amd64.deb 1113644 BLAKE2B f189ff98c5720497b7a2cd22f3f234e1f4ea9a14ae619176b68aa6a67ff2b9948e37f3684b5a954c6d3886ca5b921879c7850957580d9946e0786446c38deab3 SHA512 1e1cdceff1d9e1c585b4d33cf8afeb8f35ebbe9bbda2044b4e3538e832bddb170917b32e321bbed7936e14f40721ad4d4d89f4c4371e32e8e69f60ea6cda9c5e
DIST chromium-codecs-ffmpeg-extra_112.0.5615.49-0ubuntu0.18.04.1_i386.deb 1095040 BLAKE2B 9fa82d21d4abfa50eec7453c9e895b71f11ceb5c7761ee94455be1b714d3ce3b5754231cbcac3a5e51a205eab7ee4b9df75c8572c578138affc0be6dc7a3ca63 SHA512 4ba7817102820f17f3b9d4ebf4f6d3f64135798ce7f0cc333712a27e0c1838c88dc314c8e01fd161368d6fadfde3e8c5003242233a1a45c50c5160d72d64578c