Skip to content

Commit 638a9dd

Browse files
author
LittleCoinCoin
committed
style: apply ruff to template_generator.py
1 parent e911324 commit 638a9dd

File tree

1 file changed

+47
-49
lines changed

1 file changed

+47
-49
lines changed

hatch/template_generator.py

Lines changed: 47 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,29 @@
44
This module contains functions to generate template files for Hatch MCP server packages.
55
Each function generates a specific file for the package template.
66
"""
7+
78
import json
89
import logging
910
from pathlib import Path
1011

1112
logger = logging.getLogger("hatch.template_generator")
1213

13-
def generate_init_py():
14+
15+
def generate_init_py() -> str:
1416
"""Generate the __init__.py file content for a template package.
15-
17+
1618
Returns:
1719
str: Content for __init__.py file.
1820
"""
1921
return "# Hatch package initialization\n"
2022

21-
def generate_mcp_server_py(package_name: str):
23+
24+
def generate_mcp_server_py(package_name: str) -> str:
2225
"""Generate the mcp_server.py file content for a template package.
23-
26+
2427
Args:
2528
package_name (str): Name of the package.
26-
29+
2730
Returns:
2831
str: Content for mcp_server.py file.
2932
"""
@@ -34,10 +37,10 @@ def generate_mcp_server_py(package_name: str):
3437
@mcp.tool()
3538
def example_tool(param: str) -> str:
3639
\"\"\"Example tool function.
37-
40+
3841
Args:
3942
param (str): Example parameter.
40-
43+
4144
Returns:
4245
str: Example result.
4346
\"\"\"
@@ -47,12 +50,13 @@ def example_tool(param: str) -> str:
4750
mcp.run()
4851
"""
4952

50-
def generate_hatch_mcp_server_entry_py(package_name: str):
53+
54+
def generate_hatch_mcp_server_entry_py(package_name: str) -> str:
5155
"""Generate the hatch_mcp_server_entry.py file content for a template package.
52-
56+
5357
Args:
5458
package_name (str): Name of the package.
55-
59+
5660
Returns:
5761
str: Content for hatch_mcp_server_entry.py file.
5862
"""
@@ -68,13 +72,14 @@ def generate_hatch_mcp_server_entry_py(package_name: str):
6872
hatch_mcp.server.run()
6973
"""
7074

75+
7176
def generate_metadata_json(package_name: str, description: str = ""):
7277
"""Generate the metadata JSON content for a template package.
73-
78+
7479
Args:
7580
package_name (str): Name of the package.
7681
description (str, optional): Package description. Defaults to empty string.
77-
82+
7883
Returns:
7984
dict: Metadata dictionary.
8085
"""
@@ -84,37 +89,27 @@ def generate_metadata_json(package_name: str, description: str = ""):
8489
"version": "0.1.0",
8590
"description": description or f"A Hatch package for {package_name}",
8691
"tags": [],
87-
"author": {
88-
"name": "Hatch User",
89-
"email": ""
90-
},
91-
"license": {
92-
"name": "MIT"
93-
},
94-
"entry_point":
95-
{
92+
"author": {"name": "Hatch User", "email": ""},
93+
"license": {"name": "MIT"},
94+
"entry_point": {
9695
"mcp_server": "mcp_server.py",
97-
"hatch_mcp_server": "hatch_mcp_server_entry.py"
96+
"hatch_mcp_server": "hatch_mcp_server_entry.py",
9897
},
99-
"tools": [
100-
{
101-
"name": "example_tool",
102-
"description": "Example tool function"
103-
}
104-
],
98+
"tools": [{"name": "example_tool", "description": "Example tool function"}],
10599
"citations": {
106100
"origin": f"Origin citation for {package_name}",
107-
"mcp": f"MCP citation for {package_name}"
108-
}
101+
"mcp": f"MCP citation for {package_name}",
102+
},
109103
}
110104

111-
def generate_readme_md(package_name: str, description: str = ""):
105+
106+
def generate_readme_md(package_name: str, description: str = "") -> str:
112107
"""Generate the README.md file content for a template package.
113-
108+
114109
Args:
115110
package_name (str): Name of the package.
116111
description (str, optional): Package description. Defaults to empty string.
117-
112+
118113
Returns:
119114
str: Content for README.md file.
120115
"""
@@ -127,55 +122,58 @@ def generate_readme_md(package_name: str, description: str = ""):
127122
- **example_tool**: Example tool function
128123
"""
129124

130-
def create_package_template(target_dir: Path, package_name: str, description: str = "") -> Path:
125+
126+
def create_package_template(
127+
target_dir: Path, package_name: str, description: str = ""
128+
) -> Path:
131129
"""Create a package template directory with all necessary files.
132-
130+
133131
This function orchestrates the generation of a complete package structure by:
134132
1. Creating the package directory
135133
2. Generating and writing the __init__.py file
136134
3. Generating and writing the mcp_server.py file with example tools
137135
4. Generating and writing the hatch_mcp_server_entry.py file that wraps the MCP server
138136
5. Creating the hatch_metadata.json with package information
139137
6. Generating a README.md with basic documentation
140-
138+
141139
Args:
142140
target_dir (Path): Directory where the package should be created.
143141
package_name (str): Name of the package.
144142
description (str, optional): Package description. Defaults to empty string.
145-
143+
146144
Returns:
147145
Path: Path to the created package directory.
148146
"""
149147
logger.info(f"Creating package template for {package_name} in {target_dir}")
150-
148+
151149
# Create package directory
152150
package_dir = target_dir / package_name
153151
package_dir.mkdir(parents=True, exist_ok=True)
154-
152+
155153
# Create __init__.py
156154
init_content = generate_init_py()
157-
with open(package_dir / "__init__.py", 'w') as f:
155+
with open(package_dir / "__init__.py", "w") as f:
158156
f.write(init_content)
159-
157+
160158
# Create mcp_server.py
161159
mcp_server_content = generate_mcp_server_py(package_name)
162-
with open(package_dir / "mcp_server.py", 'w') as f:
160+
with open(package_dir / "mcp_server.py", "w") as f:
163161
f.write(mcp_server_content)
164-
162+
165163
# Create hatch_mcp_server_entry.py
166164
hatch_mcp_server_entry_content = generate_hatch_mcp_server_entry_py(package_name)
167-
with open(package_dir / "hatch_mcp_server_entry.py", 'w') as f:
165+
with open(package_dir / "hatch_mcp_server_entry.py", "w") as f:
168166
f.write(hatch_mcp_server_entry_content)
169-
167+
170168
# Create metadata.json
171169
metadata = generate_metadata_json(package_name, description)
172-
with open(package_dir / "hatch_metadata.json", 'w') as f:
170+
with open(package_dir / "hatch_metadata.json", "w") as f:
173171
json.dump(metadata, f, indent=2)
174-
172+
175173
# Create README.md
176174
readme_content = generate_readme_md(package_name, description)
177-
with open(package_dir / "README.md", 'w') as f:
175+
with open(package_dir / "README.md", "w") as f:
178176
f.write(readme_content)
179-
177+
180178
logger.info(f"Package template created successfully at {package_dir}")
181179
return package_dir

0 commit comments

Comments
 (0)