Skip to main content

Type hinting library for Plex plugin development.

Project description

plexhints

GitHub Workflow Status (CI) Read the Docs Codecov GitHub Releases PyPI PyPI - Downloads

Overview

Plexhints is a set of tools to aid in the development of plugins for Plex Media Server. It is not a framework, but rather a set of tools that can be used to make your life easier.

Documentation is available on Read the Docs.

This project is not affiliated with Plex Inc.

Features

  • Python library providing type hints to aid in the development of Plex plugins. Get rid of all those IDE warnings and errors!

  • A GitHub Action that will install and bootstrap a Plex Media Server in a CI environment. The action can install plugins and setup dummy libraries. Additionally the Plex token is provided as an output. This is useful for testing your plugin or other Plex project in a CI environment.

github_url:

https://github.com/LizardByte/plexhints/blob/master/docs/source/about/installation.rst

Installation

Python Package

This library is available on PyPI as plexhints. It can be installed in several ways.

PyPI

python -m pip install plexhints

git

python -m pip install git+https://github.com/lizardbyte/plexhints.git@dist#egg=plexhints

github archive

python -m pip install https://github.com/lizardbyte/plexhints/archive/dist.zip#egg=plexhints
github_url:

https://github.com/LizardByte/plexhints/blob/master/docs/source/about/usage.rst

Usage

Plexhints can be used by just importing the plexhints module and running a couple of functions. After doing so you can use plexhints in your IDE and run most of your code outside of Plex. This is useful for debugging and testing.

Main Entry Point

Place this at the top of your Contents/Code/__init__.py file. It is important to only import these when running outside of Plex.

# plex debugging
try:
    import plexhints  # noqa: F401
except ImportError:
    pass
else:  # the code is running outside of Plex
    from plexhints import plexhints_setup, update_sys_path
    plexhints_setup()  # reads the plugin plist file and determine if plexhints should use elevated policy or not
    update_sys_path()  # when running outside plex, append the path

Submodules

In files other than the main __init__.py file, you can simply import the plexhints module and use it as shown.

# plex debugging
try:
    import plexhints  # noqa: F401
except ImportError:
    pass
else:  # the code is running outside of Plex
    from plexhints.log_kit import Log

Available Imports

from plexhints.agent_kit import Agent, Media  # agent kit
from plexhints.core_kit import Core  # core kit
from plexhints.decorator_kit import handler, indirect, route  # decorator kit
from plexhints.exception_kit import Ex  # exception kit
from plexhints.locale_kit import Locale  # locale kit
from plexhints.log_kit import Log  # log kit
from plexhints.model_kit import Movie, VideoClip, VideoClipObject  # model kit
from plexhints.network_kit import HTTP  # network kit
from plexhints.object_kit import Callback, IndirectResponse, MediaObject, MessageContainer, MetadataItem, \
    MetadataSearchResult, PartObject, SearchResult  # object kit
from plexhints.parse_kit import HTML, JSON, Plist, RSS, XML, YAML  # parse kit
from plexhints.prefs_kit import Prefs  # prefs kit
from plexhints.proxy_kit import Proxy  # proxy kit
from plexhints.resource_kit import Resource  # resource kit
from plexhints.shortcut_kit import L, E, D, R, S  # shortcut kit
from plexhints.util_kit import String, Util  # util kit

from plexhints.constant_kit import CACHE_1MINUTE, CACHE_1HOUR, CACHE_1DAY, CACHE_1WEEK, CACHE_1MONTH  # constant kit
from plexhints.constant_kit import ClientPlatforms, Protocols, OldProtocols, ServerPlatforms, ViewTypes, \
    SummaryTextTypes, AudioCodecs, VideoCodecs, Containers, ContainerContents, \
    StreamTypes  # constant kit, more commonly used in URL services

# extra objects
from plexhints.extras_kit import BehindTheScenesObject, \
    ConcertVideoObject, \
    DeletedSceneObject, \
    FeaturetteObject, \
    InterviewObject, \
    LiveMusicVideoObject, \
    LyricMusicVideoObject, \
    MusicVideoObject, \
    OtherObject, \
    SceneOrSampleObject, \
    ShortObject, \
    TrailerObject

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

plexhints-2024.809.14117.tar.gz (49.6 kB view details)

Uploaded Source

Built Distribution

plexhints-2024.809.14117-py2-none-any.whl (74.2 kB view details)

Uploaded Python 2

File details

Details for the file plexhints-2024.809.14117.tar.gz.

File metadata

  • Download URL: plexhints-2024.809.14117.tar.gz
  • Upload date:
  • Size: 49.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for plexhints-2024.809.14117.tar.gz
Algorithm Hash digest
SHA256 e21e873a2f3e59debf87cf0e305c958ae2177cffb5be8283bcae4ff17e1c985b
MD5 e1722a77e722eb4852dcd8e743b5a7d9
BLAKE2b-256 dffb68ae2703386092d08f82465f45275162aa802d68f647fda512ce5fb2ce56

See more details on using hashes here.

File details

Details for the file plexhints-2024.809.14117-py2-none-any.whl.

File metadata

File hashes

Hashes for plexhints-2024.809.14117-py2-none-any.whl
Algorithm Hash digest
SHA256 c70f358f11cdaec1d46116b6143ff29b34396fbb2f77af3b0249f78d6cd6e2c7
MD5 dc6a08f600d73fe9028b9e10f3c1b91e
BLAKE2b-256 91544aba2789c474df75c8d5c121da0d1725e299d7da22b0bdf8a209a8ec1723

See more details on using hashes here.

Supported by

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