effectual 0.3.4__py3-none-any.whl → 0.3.5__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.
- effectual/build.py +9 -7
- effectual/config.py +14 -3
- effectual/developer.py +3 -3
- effectual/minifier.py +2 -2
- {effectual-0.3.4.dist-info → effectual-0.3.5.dist-info}/METADATA +1 -1
- effectual-0.3.5.dist-info/RECORD +12 -0
- effectual-0.3.4.dist-info/RECORD +0 -12
- {effectual-0.3.4.dist-info → effectual-0.3.5.dist-info}/WHEEL +0 -0
- {effectual-0.3.4.dist-info → effectual-0.3.5.dist-info}/entry_points.txt +0 -0
- {effectual-0.3.4.dist-info → effectual-0.3.5.dist-info}/licenses/LICENSE +0 -0
effectual/build.py
CHANGED
@@ -1,8 +1,10 @@
|
|
1
|
+
import importlib
|
1
2
|
import os
|
2
3
|
import shutil
|
3
4
|
import zipfile
|
4
5
|
from pathlib import Path
|
5
6
|
from time import perf_counter
|
7
|
+
from typing import Any
|
6
8
|
|
7
9
|
import rtoml
|
8
10
|
|
@@ -65,7 +67,7 @@ def bundleFiles(
|
|
65
67
|
|
66
68
|
def dependencies(minify: bool) -> None:
|
67
69
|
with open("./pyproject.toml", "r", encoding="utf-8") as file:
|
68
|
-
packages: list[str] = dict(rtoml.load(file)).get("project").get("dependencies")
|
70
|
+
packages: list[str] = dict(rtoml.load(file)).get("project").get("dependencies") # type: ignore
|
69
71
|
|
70
72
|
arguments: list[str] = ["--no-compile", "--quiet", "--no-binary=none", "--no-cache"]
|
71
73
|
|
@@ -81,7 +83,7 @@ def dependencies(minify: bool) -> None:
|
|
81
83
|
|
82
84
|
print(f"{tagColor('optimizing')} || {', '.join(packages)}")
|
83
85
|
|
84
|
-
|
86
|
+
multiprocessing = importlib.import_module("multiprocessing")
|
85
87
|
|
86
88
|
with multiprocessing.Pool(processes=multiprocessing.cpu_count()) as pool:
|
87
89
|
pool.map(optimizeDependencies, Path(pathToInstallTo).rglob("*"))
|
@@ -109,7 +111,7 @@ def main() -> None:
|
|
109
111
|
RuntimeError: In the event there is no source directory
|
110
112
|
"""
|
111
113
|
|
112
|
-
configData: dict = loadConfig("./pyproject.toml")
|
114
|
+
configData: dict[Any, Any] = loadConfig("./pyproject.toml")
|
113
115
|
|
114
116
|
sourceDirectory: Path = Path(configData.get("sourceDirectory", "src/"))
|
115
117
|
outputDirectory: Path = Path(configData.get("outputDirectory", "out/"))
|
@@ -126,14 +128,14 @@ def main() -> None:
|
|
126
128
|
)
|
127
129
|
|
128
130
|
uvHashPath: Path = Path("./.effectual_cache/pyprojectHash.toml")
|
129
|
-
currentHash: dict[str] = dict()
|
131
|
+
currentHash: dict[str, dict] = dict()
|
130
132
|
|
131
133
|
startTime = perf_counter()
|
132
134
|
|
133
135
|
Path("./.effectual_cache/").mkdir(parents=True, exist_ok=True)
|
134
|
-
currentHash["hashes"]
|
135
|
-
currentHash["hashes"]["pyproject"] = getFilehash("./pyproject.toml")
|
136
|
-
currentHash["hashes"]["lock"] = getFilehash("./uv.lock")
|
136
|
+
currentHash["hashes"] = dict()
|
137
|
+
currentHash["hashes"]["pyproject"] = getFilehash(Path("./pyproject.toml"))
|
138
|
+
currentHash["hashes"]["lock"] = getFilehash(Path("./uv.lock"))
|
137
139
|
|
138
140
|
if uvHashPath.exists():
|
139
141
|
with open(uvHashPath, "r") as file:
|
effectual/config.py
CHANGED
@@ -1,7 +1,9 @@
|
|
1
|
+
from typing import Any
|
2
|
+
|
1
3
|
import rtoml
|
2
4
|
|
3
5
|
|
4
|
-
def loadConfig(configPath: str) -> dict:
|
6
|
+
def loadConfig(configPath: str) -> dict[Any, Any]:
|
5
7
|
"""Loads effectual config from a file
|
6
8
|
|
7
9
|
Args:
|
@@ -16,8 +18,17 @@ def loadConfig(configPath: str) -> dict:
|
|
16
18
|
"""
|
17
19
|
try:
|
18
20
|
with open(configPath, "r", encoding="utf-8") as file:
|
19
|
-
|
20
|
-
configData
|
21
|
+
configData: dict[Any, Any] = dict(rtoml.load(file))
|
22
|
+
if configData is None:
|
23
|
+
configData = {
|
24
|
+
"sourceDirectory": "./src/",
|
25
|
+
"outputDirectory": "./dist/",
|
26
|
+
"outputFileName": "bundle.pyz",
|
27
|
+
"minification": True,
|
28
|
+
"compressionLevel": 5,
|
29
|
+
}
|
30
|
+
else:
|
31
|
+
configData = configData.get("tool").get("effectual") # type: ignore
|
21
32
|
|
22
33
|
except ValueError as e:
|
23
34
|
raise RuntimeError(f"Invalid TOML in {configPath}: {e}")
|
effectual/developer.py
CHANGED
@@ -2,6 +2,7 @@ import subprocess
|
|
2
2
|
import time
|
3
3
|
import zipfile
|
4
4
|
from pathlib import Path
|
5
|
+
from typing import Any
|
5
6
|
|
6
7
|
from .colors import completeColor, fileColor, tagColor
|
7
8
|
from .config import loadConfig
|
@@ -27,10 +28,9 @@ def bundle(sourceDirectory: Path, outputFile: Path) -> None:
|
|
27
28
|
|
28
29
|
def main() -> None:
|
29
30
|
"""Super fast bundling for the 'task dev' command"""
|
30
|
-
|
31
|
-
configData: dict = loadConfig("./pyproject.toml")
|
31
|
+
configData: dict[Any, Any] = loadConfig("./pyproject.toml")
|
32
32
|
sourceDirectory: Path = Path(configData.get("sourceDirectory", "src/"))
|
33
|
-
outputFileName:
|
33
|
+
outputFileName: Path = Path(configData.get("outputFileName", "bundle.pyz"))
|
34
34
|
devBundlePath: Path = Path("./.effectual_cache/dev/")
|
35
35
|
devBundlePath.mkdir(parents=True, exist_ok=True)
|
36
36
|
|
effectual/minifier.py
CHANGED
@@ -38,7 +38,7 @@ def minifyToString(filePath: Path) -> str:
|
|
38
38
|
Returns:
|
39
39
|
str: Minified string
|
40
40
|
"""
|
41
|
-
with filePath.open("r"
|
41
|
+
with filePath.open("r") as fileR:
|
42
42
|
minifiedCode: str = str(
|
43
43
|
minify(
|
44
44
|
fileR.read(),
|
@@ -46,6 +46,6 @@ def minifyToString(filePath: Path) -> str:
|
|
46
46
|
remove_literal_statements=True,
|
47
47
|
remove_debug=True,
|
48
48
|
)
|
49
|
-
)
|
49
|
+
)
|
50
50
|
|
51
51
|
return minifiedCode
|
@@ -0,0 +1,12 @@
|
|
1
|
+
effectual/__init__.py,sha256=9hA5S-390BtY7m-NojGHioaBJJ8vEM3IXuMvmzWBv0E,407
|
2
|
+
effectual/build.py,sha256=jyLiuQXKl1pjG8gtgQDafqiFQXgGo8DLwVn9kdIzqdw,5629
|
3
|
+
effectual/colors.py,sha256=na7SEUSXM7aHvEKeIAn5shrZJtrBYq_ZUp121GRO_PQ,1411
|
4
|
+
effectual/config.py,sha256=otTF0HIBwECrHpXsB-e_rlxDZg5uRwIIoUPC37TZl8Q,1165
|
5
|
+
effectual/developer.py,sha256=l7olxXwsGbdd5uGkxXMaFabaQo8A8qzrFMCewKuzx9M,2047
|
6
|
+
effectual/fileHash.py,sha256=m2oPjhAcSH0Qc7J7aMkmjOlgDr5Lzilcfl1ppeoDxI8,810
|
7
|
+
effectual/minifier.py,sha256=7GHgQWzin2J1W62yMReHXaYIChXc3f0rNJA-yY4LDEI,1313
|
8
|
+
effectual-0.3.5.dist-info/METADATA,sha256=CtVXhoTgNE7vkUj-Y_yOm9wwporcS_rXE0cw6xIc6yw,2527
|
9
|
+
effectual-0.3.5.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
|
10
|
+
effectual-0.3.5.dist-info/entry_points.txt,sha256=1W7EjlLZkw_Wz8V1SgdzzDis-CRE5IINyg74upsB0zU,40
|
11
|
+
effectual-0.3.5.dist-info/licenses/LICENSE,sha256=RrVXS_K_FctToNx9BLuZm9vbcpTi3PHNzWMaz7QyVeg,1082
|
12
|
+
effectual-0.3.5.dist-info/RECORD,,
|
effectual-0.3.4.dist-info/RECORD
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
effectual/__init__.py,sha256=9hA5S-390BtY7m-NojGHioaBJJ8vEM3IXuMvmzWBv0E,407
|
2
|
-
effectual/build.py,sha256=AfeQXckE2dhEpJAZg7T0dxYKudg7n7Ghy1BVc4f6L9A,5517
|
3
|
-
effectual/colors.py,sha256=na7SEUSXM7aHvEKeIAn5shrZJtrBYq_ZUp121GRO_PQ,1411
|
4
|
-
effectual/config.py,sha256=LzGT8e-zq7Rc-HOp3-r6g1XRiN9v0sCq5aeWL0bqFLY,754
|
5
|
-
effectual/developer.py,sha256=Ia6LPvDbO5kkF9dRIw3H23sulmWT8pLis55-PRQIInI,2014
|
6
|
-
effectual/fileHash.py,sha256=m2oPjhAcSH0Qc7J7aMkmjOlgDr5Lzilcfl1ppeoDxI8,810
|
7
|
-
effectual/minifier.py,sha256=RlUD0mUNDi7YZ1P-dDL6Y4FlCkfiiJP8G4TpX2y45iI,1347
|
8
|
-
effectual-0.3.4.dist-info/METADATA,sha256=E0sHvdgK8jKXY-B6pP5Cn8dWVDERD7h-kU3GfZ7eK8M,2527
|
9
|
-
effectual-0.3.4.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
|
10
|
-
effectual-0.3.4.dist-info/entry_points.txt,sha256=1W7EjlLZkw_Wz8V1SgdzzDis-CRE5IINyg74upsB0zU,40
|
11
|
-
effectual-0.3.4.dist-info/licenses/LICENSE,sha256=RrVXS_K_FctToNx9BLuZm9vbcpTi3PHNzWMaz7QyVeg,1082
|
12
|
-
effectual-0.3.4.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|