15 Commits

Author SHA1 Message Date
Lerking 8c19c4a97b Merge pull request '0.1.0 #23 Added 'Autorun' flag to XtendRSystem Attach() method. Also added a new version() method. /JL' (#24) from 0.1.0 into main
Reviewed-on: https://gitea.com/Lerking/XtendR/pulls/24
2025-03-08 17:28:27 +00:00
Lerking c7662a5d47 0.1.0 #23 Added 'Autorun' flag to XtendRSystem Attach() method. Also added a new version() method. /JL 2025-03-08 18:20:34 +01:00
Lerking 68d3aa3ed2 Merge pull request '0.0.9 build. /JL' (#22) from 0.0.9 into main
Reviewed-on: https://gitea.com/Lerking/XtendR/pulls/22
2025-03-01 20:14:52 +00:00
Lerking 2ea29fe5ea 0.0.9 build. /JL 2025-03-01 21:14:15 +01:00
Lerking 1195d399b6 Merge pull request '0.0.8 update. /JL' (#21) from 0.0.8 into main
Reviewed-on: https://gitea.com/Lerking/XtendR/pulls/21
2025-03-01 12:19:32 +00:00
Lerking b709e4d942 0.0.8 update. /JL 2025-03-01 13:18:10 +01:00
Lerking 96bb0f0f3d Merge pull request '0.0.7' (#20) from 0.0.7 into main
Reviewed-on: https://gitea.com/Lerking/XtendR/pulls/20
2025-02-25 06:28:11 +00:00
Lerking 993617976f Add Makefile 2025-02-25 06:27:47 +00:00
Lerking 828213912e Update setup.py 2025-02-25 06:26:29 +00:00
Lerking 44136c33b8 Merge pull request 'Update setup.py' (#17) from lerking-patch-1 into main
Reviewed-on: https://gitea.com/Lerking/XtendR/pulls/17
2025-02-25 06:22:07 +00:00
Lerking 490423e94a Update setup.py 2025-02-25 06:21:51 +00:00
Lerking fa2c25d6c5 Merge pull request 'Update setup.py' (#15) from lerking-patch-1 into main
Reviewed-on: https://gitea.com/Lerking/XtendR/pulls/15
2025-02-24 16:08:07 +00:00
Lerking 0db2e1dfca Update setup.py 2025-02-24 16:07:16 +00:00
Lerking 7200cb0bf8 Merge pull request 'Updated. /JL' (#14) from 0.0.6 into main
Reviewed-on: https://gitea.com/Lerking/XtendR/pulls/14
2025-02-24 11:19:02 +00:00
Jan Lerking da3d09d3b1 Updated. /JL 2025-02-24 12:17:07 +01:00
4 changed files with 27 additions and 6 deletions
+13
View File
@@ -0,0 +1,13 @@
dist:
python -m build
test:
twine upload --repository testpypi dist/*
publish:
twine upload --repository pypi dist/*
all:
$(dist)
$(test)
$(publish)
+1 -1
View File
@@ -1,6 +1,6 @@
# XtendR
A very basic Python >= 3.12 plugin system based on the K.I.S.S principle.
A very basic Python 3.12 plugin system based on the K.I.S.S principle.
I was in need of a new plugin system, which should meet these requirements:
:heavy_plus_sign: Simple to use
+4 -4
View File
@@ -3,17 +3,17 @@ if __name__ == "__main__":
setup(
name="XtendR",
version="0.0.5",
version="0.0.9",
packages=find_packages(),
install_requires=[],
author="Jan Lerking",
author_email="",
description="A modular plugin system for Python.",
url="www.gitea.com/Lerking/XtendR",
url="https://www.gitea.com/Lerking/XtendR",
classifiers=[
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.11",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
python_requires='>=3.12',
python_requires='>=3.11',
)
+9 -1
View File
@@ -4,11 +4,15 @@ import os
import json
from xtendr.xtendrbase import XtendRBase
__version__ = "0.1.0"
class XtendRSystem:
"""Plugin system to manage plugins.
Example:
>>> system = XtendRSystem()
>>> system.version()
XtendR v0.1.0
>>> system.attach("example_plugin") # Assuming 'example_plugin/example_plugin.json' exists
>>> system.run("example_plugin")
ExamplePlugin is running!
@@ -20,6 +24,9 @@ class XtendRSystem:
def __init__(self):
self.plugins = {}
def version(self) -> str:
return "XtendR v" + __version__
def attach(self, name: str) -> None:
"""Dynamically load a plugin from its folder."""
if name in self.plugins:
@@ -55,7 +62,8 @@ class XtendRSystem:
self.plugins[name] = {
'instance': instance,
'running': False,
'info': plugin_info
'info': plugin_info,
'autorun': False
}
print(f"Attached plugin '{name}'.")
except (ModuleNotFoundError, json.JSONDecodeError, AttributeError) as e: