hungerlib 2.3.5.dev0__py3-none-any.whl → 2.4.dev0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
hungerlib/__init__.py CHANGED
@@ -1,74 +1,33 @@
1
1
  from importlib.metadata import version as _pkg_version, PackageNotFoundError
2
- import importlib
3
2
 
3
+ # Package version
4
4
  try:
5
5
  __version__ = _pkg_version("hungerlib")
6
6
  except PackageNotFoundError:
7
7
  __version__ = "0.0.0"
8
8
 
9
-
10
- # Public API map
11
- # name -> (module_path, attribute_name or None)
12
- _EXPORTS = {
13
- # core modules
14
- "panel": ("panel", None),
15
- "config": ("config", None),
16
- "logger": ("logger", None),
17
- "scheduler": ('scheduler', None),
18
-
19
- # core module utilities
20
- "Panel": ('panel', 'Panel'),
21
- 'Config': ('config', 'Config'),
22
- 'HungerLogger': ('logger', 'HungerLogger'),
23
- "snapSchedule": ("scheduler", "snapSchedule"),
24
- "secsUntil": ("scheduler", "secsUntil"),
25
- "minsUntil": ("scheduler", "minsUntil"),
26
-
27
- # servers
28
- "GenericServer": ("servers.generic", "GenericServer"),
29
- "MinecraftServer": ("servers.minecraft", "MinecraftServer"),
30
-
31
- # addons
32
- "genericAddons": ("addons.generic", None),
33
- "minecraftAddons": ("addons.minecraft", None),
34
- "colormap": ("addons.colormap", None),
35
-
36
- # addon utilities
37
- "runCountdownEvents": ("addons.generic", "runCountdownEvents"),
38
- "validateAll": ("addons.generic", "validateAll"),
39
- "waitForOnline": ("addons.generic", "waitForOnline"),
40
- "waitForOffline": ("addons.generic", "waitForOffline"),
41
- "checkLag": ("addons.minecraft", "checkLag"),
42
- "MC_COLOR_MAP": ("addons.colormap", "MC_COLOR_MAP"),
43
- "ASCI_COLOR_MAP": ("addons.colormap", "ASCI_COLOR_MAP"),
44
-
45
- # api endpoints
46
- "ScheduleAPI": ("api.schedule", "ScheduleAPI"),
47
- "FileManagerAPI": ("api.filemanager", "FileManagerAPI"),
48
- "BackupsAPI": ("api.backups", "BackupsAPI"),
49
- "DatabasesAPI": ("api.databases", "DatabasesAPI"),
50
- "StartupAPI": ("api.startup", "StartupAPI")
51
-
52
- }
53
-
54
-
55
- __all__ = list(_EXPORTS.keys()) + ["__version__"]
56
-
57
-
58
- # Lazy loader
59
- def __getattr__(name):
60
- if name not in _EXPORTS:
61
- raise AttributeError(f"module 'hungerlib' has no attribute '{name}'")
62
-
63
- module_name, attr = _EXPORTS[name]
64
- module = importlib.import_module(f"hungerlib.{module_name}")
65
-
66
- # Export module itself
67
- if attr is None:
68
- globals()[name] = module
69
- return module
70
-
71
- # Export attribute from module
72
- value = getattr(module, attr)
73
- globals()[name] = value
74
- return value
9
+ # --- Core modules ---
10
+ from .panel import Panel
11
+ from .logger import HungerLogger
12
+
13
+ # --- API endpoints ---
14
+ from .api.schedule import ScheduleAPI
15
+ from .api.filemanager import FileManagerAPI
16
+ from .api.backups import BackupsAPI
17
+ from .api.databases import DatabasesAPI
18
+ from .api.startup import StartupAPI
19
+
20
+ __all__ = [
21
+ "__version__",
22
+
23
+ # core utilities
24
+ "Panel",
25
+ "HungerLogger",
26
+
27
+ # API endpoints
28
+ "ScheduleAPI",
29
+ "FileManagerAPI",
30
+ "BackupsAPI",
31
+ "DatabasesAPI",
32
+ "StartupAPI",
33
+ ]
@@ -0,0 +1,19 @@
1
+ from .colormap import ColorMap, MC_COLOR_MAP, ASCII_COLOR_MAP
2
+ from .countdown import runCountdownEvents, waitForOnline, waitForOffline
3
+ from .lag import checkLag
4
+ from .scheduler import snapSchedule, secsUntil, minsUntil
5
+ from .validation import validateAll
6
+
7
+ __all__ = [
8
+ 'ColorMap',
9
+ 'MC_COLOR_MAP',
10
+ 'ASCII_COLOR_MAP',
11
+ 'runCountdownEvents',
12
+ 'waitForOnline',
13
+ 'waitForOffline',
14
+ 'checkLag',
15
+ 'snapSchedule',
16
+ 'secsUntil',
17
+ 'minsUntil',
18
+ 'validateAll',
19
+ ]
@@ -1,44 +1,77 @@
1
1
  # Environment-based color translation and mapping
2
+ from dataclasses import dataclass, field
2
3
 
3
- MC_COLOR_MAP = {
4
- "<black>": "§0",
5
- "<dark_blue>": "§1",
6
- "<dark_green>": "§2",
7
- "<dark_aqua>": "§3",
8
- "<dark_red>": "§4",
9
- "<dark_purple>": "§5",
10
- "<gold>": "§6",
11
- "<gray>": "§7",
12
- "<dark_gray>": "§8",
13
- "<blue>": "§9",
14
- "<green>": "§a",
15
- "<aqua>": "§b",
16
- "<red>": "§c",
17
- "<light_purple>": "§d",
18
- "<yellow>": "§e",
19
- "<white>": "§f",
20
- "<reset>": "§r",
21
- "<bold>": "§l",
22
- "<italic>": "§o"
23
- }
24
- ASCI_COLOR_MAP = {
25
- "<black>": "\033[30m",
26
- "<dark_blue>": "\033[34m",
27
- "<dark_green>": "\033[32m",
28
- "<dark_aqua>": "\033[36m",
29
- "<dark_red>": "\033[31m",
30
- "<dark_purple>": "\033[35m",
31
- "<gold>": "\033[33m",
32
- "<gray>": "\033[37m",
33
- "<dark_gray>": "\033[90m",
34
- "<blue>": "\033[94m",
35
- "<green>": "\033[92m",
36
- "<aqua>": "\033[96m",
37
- "<red>": "\033[91m",
38
- "<light_purple>": "\033[95m",
39
- "<yellow>": "\033[93m",
40
- "<white>": "\033[97m",
41
- "<reset>": "\033[0m",
42
- "<bold>": "\033[1m",
43
- "<italic>": "\033[3m"
44
- }
4
+
5
+ @dataclass(frozen=True)
6
+ class ColorMap:
7
+ black: str
8
+ dark_blue: str
9
+ dark_green: str
10
+ dark_aqua: str
11
+ dark_red: str
12
+ dark_purple: str
13
+ gold: str
14
+ gray: str
15
+ dark_gray: str
16
+ blue: str
17
+ green: str
18
+ aqua: str
19
+ red: str
20
+ light_purple: str
21
+ yellow: str
22
+ white: str
23
+ reset: str
24
+ bold: str
25
+ italic: str
26
+
27
+ def as_dict(self):
28
+ """Convert dataclass to dict with <tags> as keys."""
29
+ return {
30
+ f"<{field}>": getattr(self, field)
31
+ for field in self.__dataclass_fields__
32
+ }
33
+
34
+
35
+ MC_COLOR_MAP = ColorMap(
36
+ black="§0",
37
+ dark_blue="§1",
38
+ dark_green="§2",
39
+ dark_aqua="§3",
40
+ dark_red="§4",
41
+ dark_purple="§5",
42
+ gold="§6",
43
+ gray="§7",
44
+ dark_gray="§8",
45
+ blue="§9",
46
+ green="§a",
47
+ aqua="§b",
48
+ red="§c",
49
+ light_purple="§d",
50
+ yellow="§e",
51
+ white="§f",
52
+ reset="§r",
53
+ bold="§l",
54
+ italic="§o"
55
+ )
56
+
57
+ ASCII_COLOR_MAP = ColorMap(
58
+ black="\033[30m",
59
+ dark_blue="\033[34m",
60
+ dark_green="\033[32m",
61
+ dark_aqua="\033[36m",
62
+ dark_red="\033[31m",
63
+ dark_purple="\033[35m",
64
+ gold="\033[33m",
65
+ gray="\033[37m",
66
+ dark_gray="\033[90m",
67
+ blue="\033[94m",
68
+ green="\033[92m",
69
+ aqua="\033[96m",
70
+ red="\033[91m",
71
+ light_purple="\033[95m",
72
+ yellow="\033[93m",
73
+ white="\033[97m",
74
+ reset="\033[0m",
75
+ bold="\033[1m",
76
+ italic="\033[3m"
77
+ )
@@ -59,15 +59,7 @@ def runCountdownEvents(
59
59
  time.sleep(tick_interval)
60
60
 
61
61
 
62
- def validateAll(panel, server):
63
- """
64
- Validate panel connectivity, API access, and server running state.
65
- """
66
- return (
67
- panel.ping() is True and
68
- panel.validateAPI() is True and
69
- server.getStatus() == "running"
70
- )
62
+
71
63
 
72
64
 
73
65
  # ============================================================
@@ -0,0 +1,9 @@
1
+ def validateAll(panel, server):
2
+ """
3
+ Validate panel connectivity, API access, and server running state.
4
+ """
5
+ return (
6
+ panel.ping() is True and
7
+ panel.validateAPI() is True and
8
+ server.getStatus() == "running"
9
+ )
hungerlib/logger.py CHANGED
@@ -8,7 +8,7 @@ time.tzset()
8
8
  import logging
9
9
  from pathlib import Path
10
10
  from datetime import datetime
11
- from hungerlib.addons.colormap import ASCI_COLOR_MAP, MC_COLOR_MAP
11
+ from hungerlib.addons import ASCII_COLOR_MAP, MC_COLOR_MAP
12
12
 
13
13
 
14
14
  class HungerLogger:
@@ -24,8 +24,8 @@ class HungerLogger:
24
24
 
25
25
  # color mapping
26
26
  file_color_map=None,
27
- origin_color_map=ASCI_COLOR_MAP,
28
- destination_color_map=ASCI_COLOR_MAP,
27
+ origin_color_map=ASCII_COLOR_MAP.as_dict(),
28
+ destination_color_map=ASCII_COLOR_MAP.as_dict(),
29
29
  mc_color_map=MC_COLOR_MAP,
30
30
 
31
31
  # prefixes
hungerlib/panel.py CHANGED
@@ -1,11 +1,11 @@
1
1
  import requests
2
2
 
3
- from hungerlib.api.command import CommandAPI
4
- from hungerlib.api.schedule import ScheduleAPI
5
- from hungerlib.api.filemanager import FileManagerAPI
6
- from hungerlib.api.backups import BackupsAPI
7
- from hungerlib.api.databases import DatabasesAPI
8
- from hungerlib.api.startup import StartupAPI
3
+ from hungerlib.api import CommandAPI
4
+ from hungerlib.api import ScheduleAPI
5
+ from hungerlib.api import FileManagerAPI
6
+ from hungerlib.api import BackupsAPI
7
+ from hungerlib.api import DatabasesAPI
8
+ from hungerlib.api import StartupAPI
9
9
 
10
10
 
11
11
  class Panel:
@@ -0,0 +1,7 @@
1
+ from .generic import GenericServer
2
+ from .minecraft import MinecraftServer
3
+
4
+ __all__ = [
5
+ "GenericServer",
6
+ "MinecraftServer",
7
+ ]
@@ -1,5 +1,5 @@
1
1
  # Universal server class
2
- from hungerlib.panel import Panel
2
+ from hungerlib import Panel
3
3
 
4
4
 
5
5
  class GenericServer:
@@ -2,8 +2,8 @@
2
2
  import time
3
3
  import re
4
4
  import mcrcon
5
- from hungerlib.panel import Panel
6
- from hungerlib.servers.generic import GenericServer
5
+ from hungerlib import Panel
6
+ from hungerlib.servers import GenericServer
7
7
 
8
8
 
9
9
  class MinecraftServer(GenericServer):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hungerlib
3
- Version: 2.3.5.dev0
3
+ Version: 2.4.dev0
4
4
  Summary: Powerful automation library for Pterodactyl.
5
5
  Author: iFamished
6
6
  License: MIT
@@ -0,0 +1,25 @@
1
+ hungerlib/__init__.py,sha256=tgUaYt_H1BUKCvIGz0KHhgsDg6AMY9UiEGPBNHnq1kg,708
2
+ hungerlib/logger.py,sha256=-2amipjJi2tLY5RwG0Poe0Mr2Tr_Sq5aFC0R574Zjqc,4140
3
+ hungerlib/panel.py,sha256=WMKBVh9MUM1KEYbvYwLFVzLCMZW4Dopfcxs09FEvfhU,2123
4
+ hungerlib/addons/__init__.py,sha256=LBvYij6tCS59E0p735CUw9FwIqdoDErOagVzepnBaEY,486
5
+ hungerlib/addons/colormap.py,sha256=W06Y9Pd8jGiXUbCNyaCmh8_pN_40Gl04qO7yWulEarw,1508
6
+ hungerlib/addons/countdown.py,sha256=fE922-W9VTTMMkeVKLQfuTR6CK0A4sHkrPSOU2tbXP0,2601
7
+ hungerlib/addons/lag.py,sha256=Ch-E781HRcmCl9CNb3Wx2rg9NyMQ_30tTYLP2RPXONU,963
8
+ hungerlib/addons/mchelpers.py,sha256=PuENTlzwPIBHymlmdynMK28CCy_l8x8yzJSzaguvMMM,3789
9
+ hungerlib/addons/scheduler.py,sha256=40WcKF5Bc4Fmx-pviZuWA4GkNwrn8RP_TupA00SwD2A,890
10
+ hungerlib/addons/validation.py,sha256=QKVrp-NriH9ZkMNwwjpPRvLQAbFtTd4N0Sq_yz63UUg,250
11
+ hungerlib/api/__init__.py,sha256=xuPbWBXVTkr9Jtcmvk8PPiVvi8HDxrIOmb_gOcDZy-M,336
12
+ hungerlib/api/backups.py,sha256=P_3b4_UPF7y9LDpfyKPh3TpHDIrTm8k_Z3xGmvBE5Qk,730
13
+ hungerlib/api/command.py,sha256=OvqzEmqMbDFnlhecxzJ2z_NxVoybEHq94fcGAk383_0,328
14
+ hungerlib/api/databases.py,sha256=xxPGMsqZQZ8eP0tSgNVB3i9m-3tdR5ws2aqbMmJDH2c,849
15
+ hungerlib/api/filemanager.py,sha256=kB5NP3ELQzY1uW6JWVN1g4dekVl8Kk-u9cK7N5dsg3w,2050
16
+ hungerlib/api/schedule.py,sha256=3gdl0jiIOScdVXWy4aOef-KIoKqUopbI8b1dPgXf5Vg,953
17
+ hungerlib/api/startup.py,sha256=hKhBjpLMVYa3jjq6ahqm2N32B_fu-bZnOJTZ-P57v4M,434
18
+ hungerlib/servers/__init__.py,sha256=iL2KajxhGHLdvGzEujTaEQmj1wvoHEB5f23YMu1gpyQ,133
19
+ hungerlib/servers/generic.py,sha256=wZ7zphkzmK_Xto33ftWVgokn-Pz0FnK5Lp5cNVS5Yrc,6529
20
+ hungerlib/servers/minecraft.py,sha256=DJ2GwJ4KLnZsxVN66YsCZgQfgMizcKp-9Tcdze23tfg,2541
21
+ hungerlib-2.4.dev0.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
22
+ hungerlib-2.4.dev0.dist-info/METADATA,sha256=HSRFFLfZOOOc8Yl0RSErOukkJH6nXxpiFPPkPSZQynE,1514
23
+ hungerlib-2.4.dev0.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
24
+ hungerlib-2.4.dev0.dist-info/top_level.txt,sha256=uHBMIM8b2Gt6daNkDF4uw-M2Hm2IpIVw1jOK9wC0fNQ,10
25
+ hungerlib-2.4.dev0.dist-info/RECORD,,
examples/Config.py DELETED
@@ -1,24 +0,0 @@
1
- from hungerlib import Config, Panel
2
- from pathlib import Path
3
- from hungerlib.addons.colormap import ASCI_COLOR_MAP, MC_COLOR_MAP
4
-
5
- ExampleConfig = Config(
6
-
7
- # Color maps
8
- file_color_map=None,
9
- origin_color_map=ASCI_COLOR_MAP.copy(),
10
- destination_color_map=ASCI_COLOR_MAP.copy(),
11
- mc_color_map=MC_COLOR_MAP.copy(),
12
-
13
-
14
- # --- Prefixes ---
15
- info_prefix='<white>[INFO]: ',
16
- warn_prefix='<yellow>[WARN]: ',
17
- error_prefix='<red>[ERROR]: ',
18
- console_backspaces=8,
19
-
20
- # --- Logging ---
21
- log_path=Path("/home/container/logs"),
22
- log_destination_method='rcon',
23
-
24
- )
hungerlib/config.py DELETED
@@ -1,30 +0,0 @@
1
- # =====================================
2
- # CORE CONFIG SYSTEM
3
- # =====================================
4
- # The variables in this file can be used to control many things in Hungerlib's functions.
5
- # It helps keep track of constants and serves as an easy-to-use configuration system.
6
-
7
- from dataclasses import dataclass, field
8
- from pathlib import Path
9
- from hungerlib.addons.colormap import *
10
-
11
- @dataclass
12
- class Config:
13
-
14
- # Color maps
15
- file_color_map: dict | None = None
16
- origin_color_map: dict = field(default_factory=lambda: ASCI_COLOR_MAP.copy())
17
- destination_color_map: dict = field(default_factory=lambda: ASCI_COLOR_MAP.copy())
18
- mc_color_map: dict = field(default_factory=lambda: MC_COLOR_MAP.copy())
19
-
20
- # Prefixes
21
- info_prefix: str = '<white>[INFO]: '
22
- warn_prefix: str = '<yellow>[WARN]: '
23
- error_prefix: str = '<red>[ERROR]: '
24
- console_backspaces: int = 8
25
-
26
- # Logging
27
- log_path: Path = Path("/home/container/logs")
28
- log_destination_method: str = 'rcon'
29
-
30
- _internal_config = Config()
@@ -1,24 +0,0 @@
1
- examples/Config.py,sha256=3sgbcahc0H6PWcFV9WQ0Ykc_QayYYWWAt2EAzchKPso,591
2
- hungerlib/__init__.py,sha256=owBo4YCdX29GFuAXX1-kzbYYbeqGLDgryBDKjvChsDQ,2254
3
- hungerlib/config.py,sha256=NWEj4C8SetNOwQMXKuuPRQ0OWEe8S4M3QWmEI5OW8R8,1026
4
- hungerlib/logger.py,sha256=Gx8oegOjXzQAsXbTOV3pIZMXNMPROvUvc3nK1pPSDHc,4126
5
- hungerlib/mchelpers.py,sha256=PuENTlzwPIBHymlmdynMK28CCy_l8x8yzJSzaguvMMM,3789
6
- hungerlib/panel.py,sha256=H0B6Ohshombsz2w3dFjJTbOfyRgcO-l-DARRfo0PVqQ,2178
7
- hungerlib/scheduler.py,sha256=40WcKF5Bc4Fmx-pviZuWA4GkNwrn8RP_TupA00SwD2A,890
8
- hungerlib/addons/colormap.py,sha256=s3GGE2g6xfRTsJdGnevFJ9tyaY0pDpX8pnxvv013fl8,1072
9
- hungerlib/addons/generic.py,sha256=jUuoV7nlvApQBmtOkVbD2B5SkA2b2SUx5fGlpfZRT9Y,2851
10
- hungerlib/addons/minecraft.py,sha256=Ch-E781HRcmCl9CNb3Wx2rg9NyMQ_30tTYLP2RPXONU,963
11
- hungerlib/api/__init__.py,sha256=xuPbWBXVTkr9Jtcmvk8PPiVvi8HDxrIOmb_gOcDZy-M,336
12
- hungerlib/api/backups.py,sha256=P_3b4_UPF7y9LDpfyKPh3TpHDIrTm8k_Z3xGmvBE5Qk,730
13
- hungerlib/api/command.py,sha256=OvqzEmqMbDFnlhecxzJ2z_NxVoybEHq94fcGAk383_0,328
14
- hungerlib/api/databases.py,sha256=xxPGMsqZQZ8eP0tSgNVB3i9m-3tdR5ws2aqbMmJDH2c,849
15
- hungerlib/api/filemanager.py,sha256=kB5NP3ELQzY1uW6JWVN1g4dekVl8Kk-u9cK7N5dsg3w,2050
16
- hungerlib/api/schedule.py,sha256=3gdl0jiIOScdVXWy4aOef-KIoKqUopbI8b1dPgXf5Vg,953
17
- hungerlib/api/startup.py,sha256=hKhBjpLMVYa3jjq6ahqm2N32B_fu-bZnOJTZ-P57v4M,434
18
- hungerlib/servers/generic.py,sha256=PKVoxV9KI8Ep9Cv7pYj8gXcJXrfycMW7UeQphgmqp28,6535
19
- hungerlib/servers/minecraft.py,sha256=FPIaaelHtMulucD42fxnx4pXfc_TN0RPY2onv--zMQ8,2555
20
- hungerlib-2.3.5.dev0.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
21
- hungerlib-2.3.5.dev0.dist-info/METADATA,sha256=UPpJ2zqWtNRAj4PhegUxC3jUVdC0euQ0U204lFf9rH0,1516
22
- hungerlib-2.3.5.dev0.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
23
- hungerlib-2.3.5.dev0.dist-info/top_level.txt,sha256=-oFAkOTGMfuvp0CBu82Ltag3EZwIqb663p_fymgcaqI,19
24
- hungerlib-2.3.5.dev0.dist-info/RECORD,,
File without changes
File without changes
File without changes