Metadata-Version: 2.2
Name: webutil
Version: 0.1
Summary: Common utilities and handler code for Python web apps
Author-email: Ryan Barrett <webutil@ryanb.org>
Project-URL: Homepage, https://github.com/snarfed/webutil
Project-URL: Documentation, https://oauth-dropins.readthedocs.io/en/latest/source/oauth_dropins.webutil.html
Keywords: App Engine,Flask,HTTP,web,utilities
Classifier: Programming Language :: Python :: 3
Classifier: License :: Public Domain
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Developers
Classifier: Development Status :: 4 - Beta
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: cachetools>=3.1
Requires-Dist: domain2idna>=1.12
Requires-Dist: Flask>=2.0
Requires-Dist: google-cloud-ndb>=2.0
Requires-Dist: humanize==4.12.0
Requires-Dist: mf2util>=0.5.0
Requires-Dist: werkzeug
Provides-Extra: tests
Requires-Dist: mox3<2.0,>=0.28; extra == "tests"
Requires-Dist: beautifulsoup4>=4.8; extra == "tests"

webutil [![Circle CI](https://circleci.com/gh/snarfed/oauth-dropins.svg?style=svg)](https://circleci.com/gh/snarfed/oauth-dropins) [![Coverage Status](https://coveralls.io/repos/github/snarfed/oauth-dropins/badge.svg?branch=master)](https://coveralls.io/github/snarfed/oauth-dropins?branch=master)
===

Common utilities and handler code for Python web apps:
* [`flask_util`](https://oauth-dropins.readthedocs.io/en/stable/source/oauth_dropins.webutil.html#module-oauth_dropins.webutil.flask_util): [Flask](https://flask.palletsprojects.com/) decorators and handlers for caching, exception handling, regular expression URL routing, domain-wide redirects, rate limiting, headers, and serving XRD and JRD templates.
* [`logs`](https://oauth-dropins.readthedocs.io/en/stable/source/oauth_dropins.webutil.html#module-oauth_dropins.webutil.logs): Flask request handler that collects full trace logs from [Google Cloud Logging](https://cloud.google.com/logging/docs), formats them nicely, and serves them
* [`models`](https://oauth-dropins.readthedocs.io/en/stable/source/oauth_dropins.webutil.html#module-oauth_dropins.webutil.models): minor utility [Model classes](https://googleapis.dev/python/python-ndb/latest/model.html) for the [Google Cloud Datastore](https://console.cloud.google.com/datastore/) [ndb library](https://github.com/googleapis/python-ndb)
* [`testutil`](https://oauth-dropins.readthedocs.io/en/stable/source/oauth_dropins.webutil.html#module-oauth_dropins.webutil.testutil): misc utilities and helpers for [unittest](https://docs.python.org/3.9/library/unittest.html), [mox](https://pypi.org/project/mox3/), [requests](http://python-requests.org), and [urllib](https://docs.python.org/3.9/library/urllib.html)
* [`util`](https://oauth-dropins.readthedocs.io/en/stable/source/oauth_dropins.webutil.html#module-oauth_dropins.webutil.util): wide variety of utilities for data structures, web code, etc.
* [`webmention`](https://oauth-dropins.readthedocs.io/en/stable/source/oauth_dropins.webutil.html#module-oauth_dropins.webutil.webmention): [Webmention](https://webmention.net/) endpoint discovery and sending

webutil is not developed, maintained, or distributed as a standalone package. Instead, it's distributed as part of the [oauth-dropins](https://oauth-dropins.readthedocs.io/) library.

* Install with `pip install oauth-dropins`.
* Supports Python 3.7+.
* [Reference documentation.](https://oauth-dropins.readthedocs.io/en/stable/source/oauth_dropins.webutil.html)

webutil is public domain. You may also use it under the [CC0 public domain dedication](https://creativecommons.org/share-your-work/public-domain/cc0/).
