Package: ngiri
Ngiri- A next-generation HTTP client for Python.Ngiri is a fully featured Poxy and HTTP client library for Python 3. It includesan integrated
command line client, has support for bothHTTP/1.1 and HTTP/2, and provides bothsync
and async APIs.Install ngiri using pip:$pipinstallngiriNow, let's get started:>>>importngiri>>>r=ngiri.get('https://www.example.org/')>>>r<Response [200 OK]>>>>r.status_code200>>>r.headers['content-type']'text/html; charset=UTF-8'>>>r.text'<!doctype html>\n<html>\n<head>\n<title>Example Domain</title>...'Or, using the command-line client.$pipinstall'ngiri[cli]'# The command line client is an optional dependency.Which now allows us to use ngiri directly from the command-line...Sending a request...Featuresngiri builds on the well-established usability ofrequests, and gives you:A broadlyrequests-compatible API.An integrated command-line client.HTTP/1.1and HTTP/2 support.Standard synchronous interface, but withasync support if you need it.Ability to make requests directly toWSGI applicationsorASGI applications.Strict timeouts everywhere.Fully type annotated.100% test coverage.Plus all the standard features ofrequests...International Domains and URLsKeep-Alive & Connection PoolingSessions with Cookie PersistenceBrowser-style SSL VerificationBasic/Digest AuthenticationElegant Key/Value CookiesAutomatic DecompressionAutomatic Content DecodingUnicode Response BodiesMultipart File UploadsHTTP(S) Proxy SupportConnection TimeoutsStreaming Downloads.netrc SupportChunked RequestsInstallationInstall with pip:$pipinstallngiriOr, to include the optional HTTP/2 support, use:$pipinstallngiri[http2]ngiri requires Python 3.8+.DocumentationProject documentation is available athttps://www.ngiri.co.tz/.For a run-through of all the basics, head over to theQuickStart.For more advanced topics, see theAdvanced Usagesection, theasync supportsection, or theHTTP/2section.TheDeveloper Interfaceprovides a comprehensive API reference.To find out about tools that integrate with ngiri, seeThird Party Packages.ContributeIf you want to contribute with ngiri check out theContributing Guideto learn how to start.DependenciesThe ngiri project relies on these excellent libraries:httpcore- The underlying transport implementation forngiri.h11- HTTP/1.1 support.certifi- SSL certificates.idna- Internationalized domain name support.sniffio- Async library autodetection.As well as these optional installs:h2- HTTP/2 support.(Optional, withngiri[http2])socksio- SOCKS proxy support.(Optional, withngiri[socks])rich- Rich terminal support.(Optional, withngiri[cli])click- Command line client support.(Optional, withngiri[cli])brotliorbrotlicffi- Decoding for "brotli" compressed responses.(Optional, withngiri[brotli])A huge amount of credit is due torequestsfor the API layout that
much of this work follows, as well as tourllib3for plenty of design
inspiration around the lower-level networking details.Release InformationAddedTheproxyargument was added. You should use theproxyargument instead of the deprecatedproxies, or usemounts=for more complex configurations. (#2879)DeprecatedTheproxiesargument is now deprecated. It will still continue to work, but it will be removed in the future. (#2879)FixedFix cases of double escaping of URL path components. Allow / as a safe character in the query portion. (#2990)HandleNO_PROXYenvvar cases when a fully qualified URL is supplied as the value. (#2741)Allow URLs where username or password contains unescaped '@'. (#2986)Ensure ASGIraw_pathdoes not include URL query component. (#2999)EnsureResponse.iter_text()cannot yield empty strings. (#2998)Full changelog