diff options
author | Patrick Griffis <pgriffis@igalia.com> | 2021-09-26 11:19:38 -0500 |
---|---|---|
committer | Patrick Griffis <pgriffis@igalia.com> | 2021-09-26 11:19:38 -0500 |
commit | d34c9360458979908ed50df2bfd10bca1221873e (patch) | |
tree | 1f291894a0ce0e3e83c6fde8852cfc0775af88e8 | |
parent | 58d0412b76801a7fee561ede4a2e5c6c56be9fa8 (diff) | |
download | libsoup-d34c9360458979908ed50df2bfd10bca1221873e.tar.gz |
Remove pygobject overrides
These will be moved to upstream pygobject where they make more sense.
-rw-r--r-- | libsoup/Soup.py | 108 | ||||
-rw-r--r-- | libsoup/meson.build | 31 | ||||
-rwxr-xr-x | tests/overrides-test.py | 38 |
3 files changed, 0 insertions, 177 deletions
diff --git a/libsoup/Soup.py b/libsoup/Soup.py deleted file mode 100644 index 0c420c8e..00000000 --- a/libsoup/Soup.py +++ /dev/null @@ -1,108 +0,0 @@ -#!/usr/bin/env python3 - -# Copyright (C) 2021 Igalia S.L. -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 -# USA - -import collections.abc - -from ..module import get_introspection_module -from ..overrides import override - -Soup = get_introspection_module('Soup') - -__all__ = [] - -if Soup._version == '3.0': - - class MessageHeadersIter(Soup.MessageHeadersIter): - - def __next__(self): - ret, key, value = self.next() - if ret is True: - return key, value - else: - raise StopIteration - - @override - class MessageHeaders(Soup.MessageHeaders): - - def __getitem__(self, key): - if not isinstance(key, str): - raise TypeError - - value = self.get_one(key) - if value is None: - raise KeyError - - return value - - def __delitem__(self, key): - if not isinstance(key, str): - raise TypeError - - self.remove(key) - - def __setitem__(self, key, value): - if not isinstance(key, str) or not isinstance(value, str): - raise TypeError - - self.replace(key, value) - - def __contains__(self, item): - if not isinstance(item, str): - raise TypeError - - return self.get_one(item) is not None - - def __iter__(self): - return MessageHeadersIter.init(self) - - def __len__(self): - return len(self.keys()) - - def keys(self): - return [k for k, _ in self] - - def values(self): - return [v for _, v in self] - - def items(self): - return {k: v for k, v in self} - - def get(self, default=None): - return collections.abc.Mapping.get(self, default) - - def pop(self, key): - return collections.abc.MutableMapping.pop(self, key) - - def update(self, key, value): - return collections.abc.MutableMapping.update(self, key, value) - - def setdefault(self, key, default=None): - return collections.abc.MutableMapping.setdefault(self, key, default) - - def popitem(self): - return collections.abc.MutableMapping.popitem(self) - - __all__.append('MessageHeaders') - __all__.append('MessageHeadersIter') - collections.abc.Iterable.register(MessageHeaders) - collections.abc.Iterator.register(MessageHeadersIter) - collections.abc.Mapping.register(MessageHeaders) - collections.abc.MutableMapping.register(MessageHeaders) - collections.abc.Container.register(MessageHeaders) - collections.abc.Sized.register(MessageHeaders) diff --git a/libsoup/meson.build b/libsoup/meson.build index a05f5752..826477a1 100644 --- a/libsoup/meson.build +++ b/libsoup/meson.build @@ -288,34 +288,3 @@ if enable_introspection or enable_vapi ) endif endif - - -# We want to find the subdirectory to install our override into: -pymod = import('python') -python3 = pymod.find_installation('python3') - -get_overridedir = ''' -import os -import sysconfig -libdir = sysconfig.get_config_var('LIBDIR') -if not libdir: - libdir = '/usr/lib' -try: - import gi - overridedir = gi._overridesdir -except ImportError: - purelibdir = sysconfig.get_path('purelib') - overridedir = os.path.join(purelibdir, 'gi', 'overrides') -if overridedir.startswith(libdir): # Should always be True.. - overridedir = overridedir[len(libdir) + 1:] -print(overridedir) -''' - -ret = run_command([python3, '-c', get_overridedir]) -if ret.returncode() != 0 - error('Failed to determine pygobject overridedir') -else - pygobject_override_dir = join_paths(get_option('libdir'), ret.stdout().strip()) -endif - -install_data('Soup.py', install_dir: pygobject_override_dir) diff --git a/tests/overrides-test.py b/tests/overrides-test.py deleted file mode 100755 index 7e548e1d..00000000 --- a/tests/overrides-test.py +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env python3 - -import collections.abc -import gi - -gi.require_version('Soup', '3.0') - -from gi.repository import Soup - -# MessageHeaders overrides -headers = Soup.MessageHeaders.new(Soup.MessageHeadersType.REQUEST) - -assert isinstance(headers, collections.abc.Mapping) -assert isinstance(headers, collections.abc.MutableMapping) - -headers['one'] = 'one-value' -headers['two'] = 'two-value' - -assert headers['one'] == 'one-value' -assert headers['two'] == 'two-value' - -assert len(headers) == 2 - -assert headers.keys() == ['one', 'two'] -assert headers.values() == ['one-value', 'two-value'] -assert headers.items() == {'one': 'one-value', 'two': 'two-value'} -assert 'one' in headers -assert headers.get('one') == 'one-value' - -del headers['one'] -assert 'one' not in headers - -assert headers.pop('two') == 'two-value' -assert not headers -headers['one'] = 'one-value' -assert headers -headers.clear() -assert not headers |