Scruby-Plugin
Library for creating plugins for Scruby.
Installation
# For Scruby version 0
uv add "scruby-plugin>=0.8.2,<1.0.0"
# For Scruby version 1
uv add "scruby-plugin>=1.0.0,<2.0.0"
# For Scruby version 2
uv add "scruby-plugin>=2.0.0,<3.0.0"
# For Scruby version 3
uv add "scruby-plugin>=3.0.0,<4.0.0"
# For Scruby version 4
uv add "scruby-plugin>=4.0.0,<5.0.0"
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 Annotated, Any
from pydantic import Field
from scruby import Scruby, ScrubyModel
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()
class Car(ScrubyModel):
"""Car model."""
brand: str = Field(frozen=True)
model: str = Field(frozen=True)
year: int
power_reserve: int
# key is always at bottom
key: Annotated[
str,
Field(
frozen=True,
default_factory=lambda data: f"{data['brand']}:{data['model']}",
),
]
async def main() -> None:
"""Example."""
# Activate database.
Scruby.run(plugins=[CollectionMeta])
# Get collection `Car`.
car_coll = Scruby(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)
Metadata
Release files for scruby-plugin 4.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| scruby_plugin-4.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Release files / scruby_plugin-4.0.3-py3-none-any.whl
| Download URL | scruby_plugin-4.0.3-py3-none-any.whl |
|---|---|
| Size | 4.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ddd35a7e761e24e2f4c589fb6394b32176386078c0bf90219539106b35e80cc1
|
|
BLAKE2b-256 checksum How to use checksums |
7a03f60f7d438144ea3aeb1dad6d1a67afb05f292656941684fb717f3eff0d37
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","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}
|