maya-cli 0.1.0__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
maya_cli-0.1.0/LICENSE ADDED
@@ -0,0 +1 @@
1
+ # LICENSE
@@ -0,0 +1,25 @@
1
+ Metadata-Version: 2.2
2
+ Name: maya-cli
3
+ Version: 0.1.0
4
+ Summary: Maya CLI - AI Project Generator
5
+ Home-page: https://github.com/anointingmayami/Maya.ai
6
+ Author: King Anointing Joseph Mayami
7
+ Author-email: anointingmayami@gmail.com
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Classifier: Operating System :: OS Independent
11
+ Requires-Python: >=3.7
12
+ Description-Content-Type: text/markdown
13
+ License-File: LICENSE
14
+ Requires-Dist: click
15
+ Dynamic: author
16
+ Dynamic: author-email
17
+ Dynamic: classifier
18
+ Dynamic: description
19
+ Dynamic: description-content-type
20
+ Dynamic: home-page
21
+ Dynamic: requires-dist
22
+ Dynamic: requires-python
23
+ Dynamic: summary
24
+
25
+ # README.md
@@ -0,0 +1 @@
1
+ # README.md
@@ -0,0 +1 @@
1
+ # __init__.py
@@ -0,0 +1,27 @@
1
+ # cli.py
2
+ import os
3
+ import click
4
+ from project_generator import create_project_structure, PROJECT_STRUCTURE
5
+
6
+ @click.group()
7
+ def maya():
8
+ "Maya CLI - AI Project Generator"
9
+ pass
10
+
11
+ @click.command()
12
+ @click.argument("project_name")
13
+ def create(project_name):
14
+ "Create a new AI project structure"
15
+ base_path = os.path.join(os.getcwd(), project_name)
16
+ if os.path.exists(base_path):
17
+ click.echo(f"Error: Project '{project_name}' already exists.")
18
+ return
19
+ os.makedirs(base_path, exist_ok=True)
20
+ create_project_structure(base_path, PROJECT_STRUCTURE)
21
+ click.echo(f"✅ AI project '{project_name}' created successfully!")
22
+
23
+ # Add commands to CLI
24
+ maya.add_command(create)
25
+
26
+ if __name__ == "__main__":
27
+ maya()
@@ -0,0 +1,28 @@
1
+ # project_generator.py
2
+ import os
3
+
4
+ # Define the AI Project Structure
5
+ PROJECT_STRUCTURE = {
6
+ "data_source": {"ingestion": {}, "processing": {}, "storage": {}},
7
+ "knowledge_base": {"models": {}, "training": {}, "evaluation": {}},
8
+ "ai_governance": {"compliance": {}, "fairness": {}, "monitoring": {}},
9
+ "api": {"endpoints": {}, "authentication": {}},
10
+ "tests": {},
11
+ "docs": {},
12
+ "scripts": {},
13
+ "configs": {}
14
+ }
15
+
16
+ # Function to create folders
17
+ def create_project_structure(base_path, structure):
18
+ for folder, subfolders in structure.items():
19
+ folder_path = os.path.join(base_path, folder)
20
+ os.makedirs(folder_path, exist_ok=True)
21
+
22
+ # Create __init__.py for package folders
23
+ init_file = os.path.join(folder_path, "__init__.py")
24
+ with open(init_file, "w") as f:
25
+ f.write(f"# {folder.replace('_', ' ').title()} package\n")
26
+
27
+ if isinstance(subfolders, dict):
28
+ create_project_structure(folder_path, subfolders)
@@ -0,0 +1,25 @@
1
+ Metadata-Version: 2.2
2
+ Name: maya-cli
3
+ Version: 0.1.0
4
+ Summary: Maya CLI - AI Project Generator
5
+ Home-page: https://github.com/anointingmayami/Maya.ai
6
+ Author: King Anointing Joseph Mayami
7
+ Author-email: anointingmayami@gmail.com
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Classifier: Operating System :: OS Independent
11
+ Requires-Python: >=3.7
12
+ Description-Content-Type: text/markdown
13
+ License-File: LICENSE
14
+ Requires-Dist: click
15
+ Dynamic: author
16
+ Dynamic: author-email
17
+ Dynamic: classifier
18
+ Dynamic: description
19
+ Dynamic: description-content-type
20
+ Dynamic: home-page
21
+ Dynamic: requires-dist
22
+ Dynamic: requires-python
23
+ Dynamic: summary
24
+
25
+ # README.md
@@ -0,0 +1,14 @@
1
+ LICENSE
2
+ README.md
3
+ pyproject.toml
4
+ setup.py
5
+ maya_cli/__init__.py
6
+ maya_cli/cli.py
7
+ maya_cli/project_generator.py
8
+ maya_cli.egg-info/PKG-INFO
9
+ maya_cli.egg-info/SOURCES.txt
10
+ maya_cli.egg-info/dependency_links.txt
11
+ maya_cli.egg-info/entry_points.txt
12
+ maya_cli.egg-info/requires.txt
13
+ maya_cli.egg-info/top_level.txt
14
+ tests/test_maya.py
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ maya = maya.cli:maya
@@ -0,0 +1 @@
1
+ click
@@ -0,0 +1 @@
1
+ maya_cli
@@ -0,0 +1,4 @@
1
+ # pyproject.toml
2
+ [build-system]
3
+ requires = ["setuptools", "wheel"]
4
+ build-backend = "setuptools.build_meta"
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,29 @@
1
+ # setup.py
2
+
3
+ from setuptools import setup, find_packages
4
+
5
+ setup(
6
+ name="maya-cli",
7
+ version="0.1.0",
8
+ author="King Anointing Joseph Mayami",
9
+ author_email="anointingmayami@gmail.com",
10
+ description="Maya CLI - AI Project Generator",
11
+ long_description=open("README.md").read(),
12
+ long_description_content_type="text/markdown",
13
+ url="https://github.com/anointingmayami/Maya.ai",
14
+ packages=find_packages(),
15
+ install_requires=[
16
+ "click",
17
+ ],
18
+ entry_points={
19
+ "console_scripts": [
20
+ "maya=maya.cli:maya",
21
+ ],
22
+ },
23
+ classifiers=[
24
+ "Programming Language :: Python :: 3",
25
+ "License :: OSI Approved :: MIT License",
26
+ "Operating System :: OS Independent",
27
+ ],
28
+ python_requires=">=3.7",
29
+ )
@@ -0,0 +1,42 @@
1
+ # test_maya.py
2
+ import os
3
+ import shutil
4
+ import unittest
5
+ from click.testing import CliRunner
6
+ from maya_cli.cli import maya
7
+ from maya_cli.project_generator import PROJECT_STRUCTURE
8
+
9
+ test_project_name = "test_ai_project"
10
+
11
+ def project_exists(base_path, structure):
12
+ """ Recursively check if project structure exists """
13
+ for folder in structure.keys():
14
+ folder_path = os.path.join(base_path, folder)
15
+ if not os.path.exists(folder_path):
16
+ return False
17
+ if isinstance(structure[folder], dict) and not project_exists(folder_path, structure[folder]):
18
+ return False
19
+ return True
20
+
21
+ class TestMayaCLI(unittest.TestCase):
22
+ def setUp(self):
23
+ self.runner = CliRunner()
24
+
25
+ def tearDown(self):
26
+ if os.path.exists(test_project_name):
27
+ shutil.rmtree(test_project_name)
28
+
29
+ def test_create_project(self):
30
+ result = self.runner.invoke(maya, ["create", test_project_name])
31
+ self.assertEqual(result.exit_code, 0)
32
+ self.assertIn(f"✅ AI project '{test_project_name}' created successfully!", result.output)
33
+ self.assertTrue(project_exists(test_project_name, PROJECT_STRUCTURE))
34
+
35
+ def test_create_existing_project(self):
36
+ os.makedirs(test_project_name, exist_ok=True)
37
+ result = self.runner.invoke(maya, ["create", test_project_name])
38
+ self.assertEqual(result.exit_code, 0)
39
+ self.assertIn(f"Error: Project '{test_project_name}' already exists.", result.output)
40
+
41
+ if __name__ == "__main__":
42
+ unittest.main()