Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ create_app create TEMPLATE_NAME --config-file=config.json
```


### Use a custom templates index
### Using a custom templates index

You or your organization may need to keep a separate index with your own templates.

Expand All @@ -94,6 +94,18 @@ create_app create TEMPLATE_NAME --index="https://www.somewhere.com/templates-ind
```


### Using create_app from Python

You can import create_app from Python too, which is great for scripting or creating multiple projects at once:

```python
from create_app.main import create_app

# Create from a template named "python_simple"
create_app("python_simple")
```


## Index of Available Templates

There's an [index of templates](/templates.json), from which you can get your project started:
Expand Down
7 changes: 6 additions & 1 deletion create_app/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,12 @@ def create(
use_defaults: bool,
config_file: str,
) -> None:
return create_app(template_name, index, use_defaults, config_file)
return create_app(
template_name,
index=index,
use_defaults=use_defaults,
config_file=config_file,
)


@main.command()
Expand Down
7 changes: 4 additions & 3 deletions create_app/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@
import click

from create_app.project import Project
from create_app.settings import TEMPLATES_FILE_URI
from create_app.templates import Template, TemplatesIndex


def create_app(
template_name: str,
index: str,
use_defaults: bool,
config_file: Optional[str],
index: str = TEMPLATES_FILE_URI,
use_defaults: bool = False,
config_file: Optional[str] = None,
) -> None:
click.echo("Fetching template...")
template: Template = _get_template(index, template_name)
Expand Down
6 changes: 3 additions & 3 deletions create_app/tests/cli_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,9 @@ def test_create(self, create_app_mock: MagicMock):

create_app_mock.assert_called_once_with(
template_name_mock,
index_mock,
use_defaults_mock,
config_file_mock,
index=index_mock,
use_defaults=use_defaults_mock,
config_file=config_file_mock,
)

@patch(f"{MODULE}.list_templates")
Expand Down
18 changes: 9 additions & 9 deletions create_app/tests/main_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,9 @@ def test_create_app_success(

create_app(
template_name_mock,
index_url_mock,
use_defaults_mock,
config_file_mock,
index=index_url_mock,
use_defaults=use_defaults_mock,
config_file=config_file_mock,
)

templates_index_class_mock.assert_called_once_with(index_url_mock)
Expand Down Expand Up @@ -69,9 +69,9 @@ def test_create_app_when_index_fails(
with self.assertRaises(ClickException):
create_app(
template_name_mock,
index_url_mock,
use_defaults_mock,
config_file_mock,
index=index_url_mock,
use_defaults=use_defaults_mock,
config_file=config_file_mock,
)

templates_index_class_mock.assert_called_once_with(index_url_mock)
Expand Down Expand Up @@ -104,9 +104,9 @@ def test_create_app_when_project_creation_fails(
with self.assertRaises(ClickException):
create_app(
template_name_mock,
index_url_mock,
use_defaults_mock,
config_file_mock,
index=index_url_mock,
use_defaults=use_defaults_mock,
config_file=config_file_mock,
)

templates_index_class_mock.assert_called_once_with(index_url_mock)
Expand Down