Library for creating Scruby plugins.
Project description
scruby-plugin
Library for creating plugins for Scruby.
Installation
uv add scruby-plugin
Usage
from typing import Any
from scruby_plugin import ScrubyPlugin
class PluginName(ScrubyPlugin):
def __init__(self, scruby_self: Any) -> None:
ScrubyPlugin.__init__(self, scruby_self)
...your code...
Example
import anyio
from typing import Any
from pydantic import Field
from scruby import Scruby, ScrubyModel, ScrubyConfig
from scruby_plugin import ScrubyPlugin
from pprint import pprint as pp
# Create plugin
class CollectionMeta(ScrubyPlugin):
def __init__(self, scruby_self: Scruby) -> None:
ScrubyPlugin.__init__(self, scruby_self)
async def get(self) -> Any:
scruby_self = self.scruby_self()
return await scruby_self.get_meta()
# Plugins connection.
ScrubyConfig.plugins = [
CollectionMeta,
]
class Car(ScrubyModel):
"""Car model."""
brand: str = Field(strict=True, frozen=True)
model: str = Field(strict=True, frozen=True)
year: int = Field(strict=True)
power_reserve: int = Field(strict=True)
# key is always at bottom
key: str = Field(
strict=True,
frozen=True,
default_factory=lambda data: f"{data['brand']}:{data['model']}",
)
async def main() -> None:
# Get collection `Car`.
car_coll = await Scruby.collection(Car)
# Get metadata of collection
meta = await car_coll.plugins.collectionMeta.get()
# Print to console
pp(meta)
#
# Full database deletion.
# Hint: The main purpose is tests.
Scruby.napalm()
if __name__ == "__main__":
anyio.run(main)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file scruby_plugin-0.7.0-py3-none-any.whl.
File metadata
- Download URL: scruby_plugin-0.7.0-py3-none-any.whl
- Upload date:
- Size: 4.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"44","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3142df8e675edce143bc8e41b4a7fac85290bf5ca0c20a644f40862a391b7020
|
|
| MD5 |
f5b93ca7c0e05808c48aa472cbe25248
|
|
| BLAKE2b-256 |
00704161f052a91c65ea1ff97ba5f1bb496b1262c6b16043cc6ccd6b17d85ffe
|