Skip to content

Commit ea10c5d

Browse files
committed
copy default template
1 parent ead6e90 commit ea10c5d

File tree

12 files changed

+39
-36
lines changed

12 files changed

+39
-36
lines changed

bin/modelmaker

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import subprocess
1010
from importlib import import_module
1111
from modelmaker import folders_in_folder
1212
import shutil
13-
from jinja2 import Template
13+
from jinja2 import Template, Environment, PackageLoader, FileSystemLoader
1414

1515
module_folder = os.path.dirname(sys.modules['modelmaker'].__file__)
1616
current_folder = os.path.abspath(os.curdir)
@@ -32,40 +32,43 @@ args = parser.parse_args()
3232
############################################################################################
3333

3434
if args.subcommand == 'new':
35+
36+
template = 'default'
37+
template_folder = os.path.join(module_folder, 'resources', 'templates', template)
3538
project_path = os.path.join(current_folder, args.name)
39+
3640
print(f"Creating project in {project_path} ...")
3741

3842
# copy project template
3943
shutil.copytree(
40-
os.path.join(module_folder, 'resources', 'project_template'),
41-
project_path
44+
template_folder,
45+
project_path,
46+
ignore=shutil.ignore_patterns('*.pyc', '__pycache__')
4247
)
4348

4449
# rename package folder
4550
os.rename(
4651
os.path.join(project_path, 'package'),
47-
os.path.join(project_path, args.name),
52+
os.path.join(project_path, args.name)
4853
)
4954

50-
# template setup.py
51-
setup_file = os.path.join(project_path, 'setup.py')
52-
template = Template(open(setup_file).read())
53-
with open(setup_file, 'w') as f:
54-
print(f"Generating template {setup_file} ...")
55-
f.write(template.render(package_name=args.name))
55+
env = Environment(
56+
loader=FileSystemLoader(project_path)
57+
)
5658

57-
# template README.md
58-
readme_file = os.path.join(project_path, 'README.md')
59-
template = Template(open(readme_file).read())
60-
with open(readme_file, 'w') as f:
61-
print(f"Generating template {readme_file} ...")
62-
f.write(template.render(package_name=args.name))
59+
# replace template strings
60+
for file in glob(os.path.join(project_path, '**/*'), recursive=True):
61+
if os.path.isfile(file):
62+
template = env.get_template(os.path.relpath(file, start=project_path))
63+
with open(file, 'w') as f:
64+
print(f"Generating template {file} ...")
65+
f.write(template.render(package_name=args.name))
6366

6467
############################################################################################
6568
## list templates
6669
############################################################################################
6770

68-
if args.subcommand == 'templates':
71+
elif args.subcommand == 'templates':
6972
print("\nTemplates available:")
7073
for t in templates:
7174
print(f" {t}")

modelmaker/resources/project_template/README.md

Lines changed: 0 additions & 16 deletions
This file was deleted.

modelmaker/resources/templates/README.md

Whitespace-only changes.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# {{ package_name }}
2+
3+
## Install
4+
5+
```bash
6+
cd {{ package_name }}
7+
pip3 install ./
8+
```
9+
10+
## Using The Model
11+
12+
Import the python module
13+
14+
```python
15+
import {{ package_name }}
16+
```

modelmaker/resources/templates/default/__init__.py

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)