diff options
Diffstat (limited to 'dev-python/h2')
| -rw-r--r-- | dev-python/h2/Manifest | 3 | ||||
| -rw-r--r-- | dev-python/h2/files/hyper-h2-3.2.0-failed-healthcheck.patch | 74 | ||||
| -rw-r--r-- | dev-python/h2/h2-3.2.0.ebuild | 52 | ||||
| -rw-r--r-- | dev-python/h2/h2-4.0.0.ebuild | 52 | ||||
| -rw-r--r-- | dev-python/h2/h2-4.1.0.ebuild | 29 | ||||
| -rw-r--r-- | dev-python/h2/metadata.xml | 18 |
6 files changed, 228 insertions, 0 deletions
diff --git a/dev-python/h2/Manifest b/dev-python/h2/Manifest new file mode 100644 index 000000000000..33ef6e0747bf --- /dev/null +++ b/dev-python/h2/Manifest @@ -0,0 +1,3 @@ +DIST h2-4.1.0.tar.gz 2143812 BLAKE2B b9d9a771340b4bde1675b9fd65c242732a1a262456f84a409662cf2b57326e24e0583160ba0531c0b105b79342578714127dddb560d2a27de58af34d1052c698 SHA512 4e9cf88b3ae702a8a42bded775ad337809787fe8172d501c230d55abbf1edd764acf3b227f2e58756d882499661ffcf6bbdd4812a4d938c04fac3f1aa2390b28 +DIST hyper-h2-3.2.0.tar.gz 2203333 BLAKE2B 245bab162852070e850613c41162c75efe5e43535945dacf448afdc948cade83402f77259aa46f375d0772a5287e42d8842b1259cb36392cc8fc222dec7cef75 SHA512 103a4ea2cd29037ce03ae676864125b4111c7d31a82bbbe7028557da886d88fb5363d885f08d5d3f68dfa29013b7b03350cc0cb4d9dddf32735e98dae5d7fc7c +DIST hyper-h2-4.0.0.tar.gz 2142185 BLAKE2B e5ae692c1f21b6e3ea8695ec269a4d02f72b8d385b6f9c523775f3db2200379f9af5accb70fa06a357575728a6a5b2644dd1225cfdf458fffa80e84c7b1c7b2f SHA512 84578174a13782897f9286c62d450eaf11aa71c01c96b8660179cd2df77618dc1a6c4b354b2bc5731cd21c4709c8c0a8282a859a98c4a62a7295b6dfd1b5cfb2 diff --git a/dev-python/h2/files/hyper-h2-3.2.0-failed-healthcheck.patch b/dev-python/h2/files/hyper-h2-3.2.0-failed-healthcheck.patch new file mode 100644 index 000000000000..04adc2748c21 --- /dev/null +++ b/dev-python/h2/files/hyper-h2-3.2.0-failed-healthcheck.patch @@ -0,0 +1,74 @@ +diff --git a/test/test_basic_logic.py b/test/test_basic_logic.py +index fb54fe50..8c8f3b7d 100644 +--- a/test/test_basic_logic.py ++++ b/test/test_basic_logic.py +@@ -21,7 +21,7 @@ + + from . import helpers + +-from hypothesis import given ++from hypothesis import given, settings, HealthCheck + from hypothesis.strategies import integers + + +@@ -790,6 +790,7 @@ def test_headers_are_lowercase(self, frame_factory): + assert c.data_to_send() == expected_frame.serialize() + + @given(frame_size=integers(min_value=2**14, max_value=(2**24 - 1))) ++ @settings(suppress_health_check=[HealthCheck.function_scoped_fixture]) + def test_changing_max_frame_size(self, frame_factory, frame_size): + """ + When the user changes the max frame size and the change is ACKed, the +diff --git a/test/test_flow_control_window.py b/test/test_flow_control_window.py +index 24b345aa..7a445af1 100644 +--- a/test/test_flow_control_window.py ++++ b/test/test_flow_control_window.py +@@ -7,7 +7,7 @@ + """ + import pytest + +-from hypothesis import given ++from hypothesis import given, settings, HealthCheck + from hypothesis.strategies import integers + + import h2.config +@@ -715,6 +715,7 @@ def _setup_connection_and_send_headers(self, frame_factory): + return c + + @given(stream_id=integers(max_value=0)) ++ @settings(suppress_health_check=[HealthCheck.function_scoped_fixture]) + def test_must_acknowledge_for_stream(self, frame_factory, stream_id): + """ + Flow control acknowledgements must be done on a stream ID that is +@@ -740,6 +741,7 @@ def test_must_acknowledge_for_stream(self, frame_factory, stream_id): + ) + + @given(size=integers(max_value=-1)) ++ @settings(suppress_health_check=[HealthCheck.function_scoped_fixture]) + def test_cannot_acknowledge_less_than_zero(self, frame_factory, size): + """ + The user must acknowledge at least 0 bytes. +@@ -837,6 +839,7 @@ def test_acknowledging_streams_we_never_saw(self, frame_factory): + c.acknowledge_received_data(2048, stream_id=101) + + @given(integers(min_value=1025, max_value=DEFAULT_FLOW_WINDOW)) ++ @settings(suppress_health_check=[HealthCheck.function_scoped_fixture]) + def test_acknowledging_1024_bytes_when_empty_increments(self, + frame_factory, + increment): +@@ -873,6 +876,7 @@ def test_acknowledging_1024_bytes_when_empty_increments(self, + # This test needs to use a lower cap, because otherwise the algo will + # increment the stream window anyway. + @given(integers(min_value=1025, max_value=(DEFAULT_FLOW_WINDOW // 4) - 1)) ++ @settings(suppress_health_check=[HealthCheck.function_scoped_fixture]) + def test_connection_only_empty(self, frame_factory, increment): + """ + If the connection flow control window is empty, but the stream flow +@@ -916,5 +920,6 @@ def test_connection_only_empty(self, frame_factory, increment): + assert c.data_to_send() == expected_data + + @given(integers(min_value=1025, max_value=DEFAULT_FLOW_WINDOW)) ++ @settings(suppress_health_check=[HealthCheck.function_scoped_fixture]) + def test_mixing_update_forms(self, frame_factory, increment): + """ + If the user mixes ackowledging data with manually incrementing windows, diff --git a/dev-python/h2/h2-3.2.0.ebuild b/dev-python/h2/h2-3.2.0.ebuild new file mode 100644 index 000000000000..d851095606ad --- /dev/null +++ b/dev-python/h2/h2-3.2.0.ebuild @@ -0,0 +1,52 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{6,7,8,9,10} ) +inherit distutils-r1 + +MY_P=hyper-h2-${PV} +DESCRIPTION="HTTP/2 State-Machine based protocol implementation" +HOMEPAGE="https://python-hyper.org/h2/en/stable/ https://pypi.org/project/h2/" +SRC_URI="https://github.com/python-hyper/${PN}/archive/v${PV}.tar.gz -> ${MY_P}.tar.gz" +S=${WORKDIR}/${MY_P} + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86" + +RDEPEND=" + >=dev-python/hyperframe-5.2.0[${PYTHON_USEDEP}] + <dev-python/hyperframe-6.0.0[${PYTHON_USEDEP}] + >=dev-python/hpack-3.0.0[${PYTHON_USEDEP}] + <dev-python/hpack-4.0.0[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/hypothesis[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest + +PATCHES=( + # From https://github.com/python-hyper/h2/pull/1248 + # Disables some failing healthchecks + "${FILESDIR}/hyper-h2-3.2.0-failed-healthcheck.patch" +) + +python_test() { + local deselect=() + [[ ${EPYTHON} == python3.10 ]] && deselect+=( + # these rely on fixed string repr() and fail because enum repr + # changed in py3.10 + test/test_basic_logic.py::TestBasicServer::test_stream_repr + test/test_events.py::TestEventReprs::test_remotesettingschanged_repr + test/test_events.py::TestEventReprs::test_streamreset_repr + test/test_events.py::TestEventReprs::test_settingsacknowledged_repr + test/test_events.py::TestEventReprs::test_connectionterminated_repr + ) + + epytest --hypothesis-profile=travis ${deselect[@]/#/--deselect } +} diff --git a/dev-python/h2/h2-4.0.0.ebuild b/dev-python/h2/h2-4.0.0.ebuild new file mode 100644 index 000000000000..1659c2cc8142 --- /dev/null +++ b/dev-python/h2/h2-4.0.0.ebuild @@ -0,0 +1,52 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{6,7,8,9,10} ) +inherit distutils-r1 + +MY_P=hyper-h2-${PV} +DESCRIPTION="HTTP/2 State-Machine based protocol implementation" +HOMEPAGE="https://python-hyper.org/h2/en/stable/ https://pypi.org/project/h2/" +SRC_URI="https://github.com/python-hyper/${PN}/archive/v${PV}.tar.gz -> ${MY_P}.tar.gz" +S=${WORKDIR}/${MY_P} + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86" + +RDEPEND=" + >=dev-python/hyperframe-6.0[${PYTHON_USEDEP}] + <dev-python/hyperframe-7[${PYTHON_USEDEP}] + >=dev-python/hpack-4.0[${PYTHON_USEDEP}] + <dev-python/hpack-5[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/hypothesis[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest + +PATCHES=( + # From https://github.com/python-hyper/h2/pull/1248 + # Disables some failing healthchecks + "${FILESDIR}/hyper-h2-3.2.0-failed-healthcheck.patch" +) + +python_test() { + local deselect=() + [[ ${EPYTHON} == python3.10 ]] && deselect+=( + # these rely on fixed string repr() and fail because enum repr + # changed in py3.10 + test/test_basic_logic.py::TestBasicServer::test_stream_repr + test/test_events.py::TestEventReprs::test_remotesettingschanged_repr + test/test_events.py::TestEventReprs::test_streamreset_repr + test/test_events.py::TestEventReprs::test_settingsacknowledged_repr + test/test_events.py::TestEventReprs::test_connectionterminated_repr + ) + + epytest ${deselect[@]/#/--deselect } +} diff --git a/dev-python/h2/h2-4.1.0.ebuild b/dev-python/h2/h2-4.1.0.ebuild new file mode 100644 index 000000000000..ff75eddec21c --- /dev/null +++ b/dev-python/h2/h2-4.1.0.ebuild @@ -0,0 +1,29 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{6,7,8,9,10} ) +inherit distutils-r1 + +DESCRIPTION="HTTP/2 State-Machine based protocol implementation" +HOMEPAGE="https://python-hyper.org/h2/en/stable/ https://pypi.org/project/h2/" +SRC_URI="https://github.com/python-hyper/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +RDEPEND=" + >=dev-python/hyperframe-6.0[${PYTHON_USEDEP}] + <dev-python/hyperframe-7[${PYTHON_USEDEP}] + >=dev-python/hpack-4.0[${PYTHON_USEDEP}] + <dev-python/hpack-5[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/hypothesis[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest diff --git a/dev-python/h2/metadata.xml b/dev-python/h2/metadata.xml new file mode 100644 index 000000000000..d2619faf4798 --- /dev/null +++ b/dev-python/h2/metadata.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>python@gentoo.org</email> + <name>Python</name> + </maintainer> + <longdescription>A pure-Python implementation of a HTTP/2 protocol stack. + It’s written from the ground up to be embeddable in whatever program + you choose to use, ensuring that you can speak HTTP/2 regardless of + your programming paradigm. + </longdescription> + <upstream> + <remote-id type="pypi">h2</remote-id> + </upstream> + <origin>gentoo-staging</origin> + <stabilize-allarches/> +</pkgmetadata>
\ No newline at end of file |
