VertexEngine-CLI 1.0.1__tar.gz → 1.2rc1__tar.gz

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: VertexEngine-CLI
3
- Version: 1.0.1
3
+ Version: 1.2rc1
4
4
  Summary: An Offical CLI library for VertexEngine.
5
5
  Author-email: Tyrel Miguel <annbasilan0828@gmail.com>
6
6
  License: MIT
@@ -22,6 +22,11 @@ Commands:
22
22
  `python -m vertex build [path]` - build an exe with 2 flags:
23
23
  `--onefile, --windowed`
24
24
 
25
+ ### Change Logs (1.1), NEW!
26
+ 1.1:
27
+ - Added 2 new commands!:
28
+ vertex remove {filepath}
29
+ vertex upload {flags}
25
30
  ## How to install Pyinstaller
26
31
  Step 1. Type in:
27
32
  pip install pyinstaller
@@ -5,6 +5,11 @@ Commands:
5
5
  `python -m vertex build [path]` - build an exe with 2 flags:
6
6
  `--onefile, --windowed`
7
7
 
8
+ ### Change Logs (1.1), NEW!
9
+ 1.1:
10
+ - Added 2 new commands!:
11
+ vertex remove {filepath}
12
+ vertex upload {flags}
8
13
  ## How to install Pyinstaller
9
14
  Step 1. Type in:
10
15
  pip install pyinstaller
@@ -4,21 +4,23 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "VertexEngine-CLI"
7
- version = "1.0.1"
7
+ version = "1.2rc1"
8
8
  description = "An Offical CLI library for VertexEngine."
9
9
  authors = [
10
10
  { name = "Tyrel Miguel", email = "annbasilan0828@gmail.com" }
11
11
  ]
12
- readme = "README.md"
13
- license = { text = "MIT" }
14
- requires-python = ">=3.10"
15
-
16
12
  dependencies = [
17
13
  "pygame>=2.0",
18
14
  "PyQt6>=6.7",
19
15
  "pyinstaller>=6.5.0",
20
16
  "VertexEngine>=1.0.1"
21
17
  ]
18
+ readme = "README.md"
19
+ license = { text = "MIT" }
20
+ requires-python = ">=3.10"
21
+
22
+ [project.scripts]
23
+ vertex = "vertex.__main__:main"
22
24
 
23
25
  [project.urls]
24
26
  Documentation = "https://vertexenginedocs.netlify.app/"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: VertexEngine-CLI
3
- Version: 1.0.1
3
+ Version: 1.2rc1
4
4
  Summary: An Offical CLI library for VertexEngine.
5
5
  Author-email: Tyrel Miguel <annbasilan0828@gmail.com>
6
6
  License: MIT
@@ -22,6 +22,11 @@ Commands:
22
22
  `python -m vertex build [path]` - build an exe with 2 flags:
23
23
  `--onefile, --windowed`
24
24
 
25
+ ### Change Logs (1.1), NEW!
26
+ 1.1:
27
+ - Added 2 new commands!:
28
+ vertex remove {filepath}
29
+ vertex upload {flags}
25
30
  ## How to install Pyinstaller
26
31
  Step 1. Type in:
27
32
  pip install pyinstaller
@@ -4,6 +4,7 @@ pyproject.toml
4
4
  src/VertexEngine_CLI.egg-info/PKG-INFO
5
5
  src/VertexEngine_CLI.egg-info/SOURCES.txt
6
6
  src/VertexEngine_CLI.egg-info/dependency_links.txt
7
+ src/VertexEngine_CLI.egg-info/entry_points.txt
7
8
  src/VertexEngine_CLI.egg-info/requires.txt
8
9
  src/VertexEngine_CLI.egg-info/top_level.txt
9
10
  src/vertex/__init__.py
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ vertex = vertex.__main__:main
@@ -0,0 +1,120 @@
1
+ # __main__.py
2
+ from pathlib import Path
3
+ import os
4
+ import subprocess
5
+ from PyInstaller.__main__ import run as pyinstaller_run
6
+
7
+ from .minicli import CLI
8
+ from .templates import TEMPLATES
9
+ import sys
10
+ import glob
11
+
12
+ def main():
13
+ cli = CLI()
14
+
15
+ # -----------------
16
+ # Upload
17
+ # -----------------
18
+ @cli.command("upload")
19
+ def upload_package(dist_path="dist/*", username=None, password=None):
20
+ """
21
+ Upload a Python package to PyPI using Twine.
22
+
23
+ dist_path: glob path to distribution files (default: dist/*)
24
+ username: PyPI username (optional if stored in .pypirc)
25
+ password: PyPI password or token (optional if stored in .pypirc)
26
+ """
27
+ # Expand wildcards in a cross-platform way
28
+ files = glob.glob(dist_path)
29
+ if not files:
30
+ print(f"❌ No files found at {dist_path}")
31
+ return
32
+
33
+ # Use Python to call Twine (works on Windows, Linux, macOS)
34
+ command = [sys.executable, "-m", "twine", "upload"] + files
35
+
36
+ if username:
37
+ command += ["-u", username]
38
+ if password:
39
+ command += ["-p", password]
40
+
41
+ print(f"🚀 Running: {' '.join(command)}")
42
+ try:
43
+ subprocess.run(command, check=True)
44
+ print("✅ Upload complete!")
45
+ except subprocess.CalledProcessError as e:
46
+ print(f"❌ Upload failed: {e}")
47
+
48
+
49
+ print(f"🚀 Running: {' '.join(command)}")
50
+ try:
51
+ subprocess.run(command, check=True)
52
+ print("✅ Upload complete!")
53
+ except subprocess.CalledProcessError as e:
54
+ print(f"❌ Upload failed: {e}")
55
+ # -----------------
56
+ # Remove
57
+ # -----------------
58
+ @cli.command("remove")
59
+ def remove_file(
60
+ script_path: str
61
+ ):
62
+ """Remove a script from your project."""
63
+ if not os.path.isfile(script_path):
64
+ raise FileNotFoundError(f"Script not found: {script_path}")
65
+ os.remove(script_path)
66
+ # ------------------
67
+ # build command
68
+ # ------------------
69
+ @cli.command("build")
70
+ def build_executable(
71
+ script_path: str,
72
+ onefile: bool = False,
73
+ windowed: bool = False,
74
+ ):
75
+ """
76
+ Build an executable from a Python script using PyInstaller.
77
+ """
78
+ if not os.path.isfile(script_path):
79
+ raise FileNotFoundError(f"Script not found: {script_path}")
80
+
81
+ args = ["--clean"]
82
+
83
+ if onefile:
84
+ args.append("--onefile")
85
+ if windowed:
86
+ args.append("--windowed")
87
+
88
+ args.append(script_path)
89
+
90
+ print(f"Running PyInstaller with args: {args}")
91
+ pyinstaller_run(args)
92
+
93
+ # ------------------
94
+ # init command
95
+ # ------------------
96
+ @cli.command("init")
97
+ def init(kind: str = "game"):
98
+ """Initialize a project template"""
99
+ if kind not in TEMPLATES:
100
+ print("Available templates:", ", ".join(TEMPLATES))
101
+ return
102
+
103
+ for rel_path, content in TEMPLATES[kind].items():
104
+ path = Path.cwd() / rel_path
105
+ path.parent.mkdir(parents=True, exist_ok=True)
106
+
107
+ if path.exists():
108
+ print(f"Skipped existing file: {rel_path}")
109
+ continue
110
+
111
+ path.write_text(content, encoding="utf-8")
112
+ print(f"Created {rel_path}")
113
+
114
+ print(f"Template '{kind}' initialized ✔")
115
+
116
+ cli.run()
117
+
118
+
119
+ if __name__ == "__main__":
120
+ main()
@@ -43,7 +43,7 @@ TEMPLATES: dict[str, dict[str, str]] = {
43
43
  app.exec()
44
44
  """
45
45
  ),
46
- "README.md": "# VertexEngine Game\n\nGenerated with MiniCLI ✨\n",
46
+ "README.md": "# VertexEngine Game\n\nGenerated with VertexEngine. ✨\n",
47
47
  ".gitignore": "__pycache__/\n.env\n",
48
48
  },
49
49
  }
@@ -1,68 +0,0 @@
1
- # __main__.py
2
- from pathlib import Path
3
- import os
4
-
5
- from PyInstaller.__main__ import run as pyinstaller_run
6
-
7
- from .minicli import CLI
8
- from .templates import TEMPLATES
9
-
10
-
11
- def main():
12
- cli = CLI()
13
-
14
- # ------------------
15
- # build command
16
- # ------------------
17
- @cli.command("build")
18
- def build_executable(
19
- script_path: str,
20
- onefile: bool = False,
21
- windowed: bool = False,
22
- ):
23
- """
24
- Build an executable from a Python script using PyInstaller.
25
- """
26
- if not os.path.isfile(script_path):
27
- raise FileNotFoundError(f"Script not found: {script_path}")
28
-
29
- args = ["--clean"]
30
-
31
- if onefile:
32
- args.append("--onefile")
33
- if windowed:
34
- args.append("--windowed")
35
-
36
- args.append(script_path)
37
-
38
- print(f"Running PyInstaller with args: {args}")
39
- pyinstaller_run(args)
40
-
41
- # ------------------
42
- # init command
43
- # ------------------
44
- @cli.command("init")
45
- def init(kind: str = "game"):
46
- """Initialize a project template"""
47
- if kind not in TEMPLATES:
48
- print("Available templates:", ", ".join(TEMPLATES))
49
- return
50
-
51
- for rel_path, content in TEMPLATES[kind].items():
52
- path = Path.cwd() / rel_path
53
- path.parent.mkdir(parents=True, exist_ok=True)
54
-
55
- if path.exists():
56
- print(f"Skipped existing file: {rel_path}")
57
- continue
58
-
59
- path.write_text(content, encoding="utf-8")
60
- print(f"Created {rel_path}")
61
-
62
- print(f"Template '{kind}' initialized ✔")
63
-
64
- cli.run()
65
-
66
-
67
- if __name__ == "__main__":
68
- main()