Skip to main content

Building blocks for IndieWeb applications.

Project description

Python indieweb-utils Library

Documentation Status image image image image

indieweb-utils provides building blocks for people implementing IndieWeb applications in Python. Discover IndieWeb endpoints, find feeds on a page, infer page names, generate reply contexts, and more!

The documentation for this project is available at indieweb-utils.readthedocs.io.

Installation 💻

To get started, pip install indieweb-utils:

pip install indieweb-utils

Quickstart ⚡

Here are a few quick code snippets for actions enabled by IndieWeb Utils.

get reply context about a URL

import indieweb_utils

context = indieweb_utils.get_reply_context(
    url="https://jamesg.blog",
    summary_word_limit=50
)

print(context.name) # "Home | James' Coffee Blog"

Remove tracking parameters from a URL

import indieweb_utils

url = "https://jamesg.blog/indieweb/?utm_source=twitter&utm_medium=social&utm_campaign=webmention"

url_without_tracking = indieweb_utils.remove_tracking_params(url)

print(url_without_tracking) # https://jamesg.blog/indieweb/

Create a paginator for a series

import indieweb_utils

pages = indieweb_utils.Paginator(["post1", "post2", ...], 1)

print(pages.next_page()) [["post1"]]

License 👩‍⚖️

The code in this project is licensed under the Zero-Clause BSD License.

The documentation in this project is licensed under a CC BY-SA 4.0 license.

Running Tests 🧪

Quality is maintained ensuring each merged passes testing, typing, linting, and formatting requirements.

To check locally install the development dependencies and run the suite using [tox]{.title-ref}.

$ pip install -r requirements_dev.txt
$ tox

Alternatively, you can run just a single check by passing the environment to tox.

Unit Tests

Tests use pytest.

$ tox -e py39  # Run all tests
$ tox -e py39 tests/test_indieweb_utils.py::TestPostTypeDiscovery  # Run a single test

Linting

Linting is checked with black, isort, and flake8.

$ tox -e lint

Black and isort errors can be fixed automatically. Use fmt to fix those errors automatically.

$ tox -e fmt

Typing

Types are validated with mypy.

$ tox -e typecheck

Contributing 🛠️

This project welcomes contributions from anyone who wants to improve the library.

Please see the contributing guidelines for more information on how to contribute to the repository.

Contributors 💻

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

indieweb_utils-0.10.0.tar.gz (38.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

indieweb_utils-0.10.0-py3-none-any.whl (52.6 kB view details)

Uploaded Python 3

File details

Details for the file indieweb_utils-0.10.0.tar.gz.

File metadata

  • Download URL: indieweb_utils-0.10.0.tar.gz
  • Upload date:
  • Size: 38.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for indieweb_utils-0.10.0.tar.gz
Algorithm Hash digest
SHA256 50bc93431b4a8e5568ca50edf40f301c574286422d8bae458ba8b33277bea37c
MD5 8be25d3398ae9cc39f65a1fb178b194b
BLAKE2b-256 dd3aac0f2e70bad633975ddb9a8deb58e70aacc685bd69d96fa8adc8379572bb

See more details on using hashes here.

File details

Details for the file indieweb_utils-0.10.0-py3-none-any.whl.

File metadata

File hashes

Hashes for indieweb_utils-0.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 574a00fc40de940147459edf9ddc8e9972f7b699dff854941a157177ad6816b0
MD5 9701b1bb44f34ba3396c04482971b901
BLAKE2b-256 e4f12aabec2d21e1fc6ddb7144499c75fe7fb8e41aedbc0ac6e034eb9d3879c6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page