-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcopier.yaml
More file actions
205 lines (174 loc) · 4.28 KB
/
Copy pathcopier.yaml
File metadata and controls
205 lines (174 loc) · 4.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
---
_min_copier_version: "9.6.0"
_subdirectory: template
_template_suffix: .jinja
_envops:
autoescape: false
keep_trailing_newline: true
_jinja_extensions:
- copier_template_extensions.TemplateExtensionLoader
- extensions/git.py:GitExtension
- extensions/slugify.py:SlugifyExtension
- extensions/today.py:TodayExtension
- jinja2.ext.ExprStmtExtension
_skip_if_exists:
- CHANGELOG.md
_preserve_symlinks: true
_message_after_copy: |
{{ project_name }} has been created!
1. Change directory:
$ cd {{ _copier_conf.dst_path }}
2. Create an empty Git repository:
$ git init
$ git branch -M main
3. Add your GitHub repository to remotes:
$ git remote add origin {{ repository_url }}.git
4. Push your main branch to GitHub:
$ git add .
$ git commit -m "Initial commit"
$ git push -u origin main
project_name:
type: str
help: Your project name?
validator: >-
{% if project_name == '' %}
The name is required.
{% endif %}
distribution_name:
type: str
help: Your distribution name.
default: "{{ project_name | slugify }}"
when: false
package_name:
type: str
help: Your package name.
default: "{{ project_name | slugify('_') }}"
when: false
project_description:
type: str
help: Your project description?
user_name:
type: str
help: Your name?
default: "{{ git_user_name }}"
user_email:
type: str
help: Your email?
default: "{{ git_user_email }}"
github_user:
type: str
help: Your GitHub username?
default: leodevian
repository_path:
type: str
help: Your GitHub repository path.
default: "{{ github_user }}/{{ distribution_name }}"
when: false
repository_url:
type: str
help: Your GitHub repository URL.
default: "https://github.com/{{ repository_path }}"
when: false
documentation_url:
type: str
help: Your GitHub Pages URL.
default: "https://{{ github_user }}.github.io/{{ distribution_name }}"
when: false
copyright_owner:
type: str
help: The copyright owner.
default: "{{ user_name }}"
when: false
copyright_year:
type: str
help: The copyright year.
default: "{{ today.year }}"
when: false
license:
type: str
help: Which open-source license do you want to use?
default: MIT
choices:
Apache License 2.0: Apache-2.0
BSD 3-Clause "New" or "Revised" License: BSD-3-Clause
GNU General Public License v3.0 only: GPL-3.0-only
GNU Lesser General Public License v3.0 only: LGPL-3.0
MIT License: MIT
Mozilla Public License 2.0: MPL-2.0
backend:
type: str
help: Which build backend do you want to use?
default: uv
choices:
Hatchling: hatch
uv: uv
hatch_plugins:
type: str
help: Which Hatch plugins do you want to use?
multiselect: true
default: [hatch-vcs]
when: "{{ backend == 'hatch' }}"
choices:
hatch-vcs: hatch-vcs
dynamic_version:
type: bool
help: Whether the version is dynamic.
default: "{{ backend == 'hatch' and 'hatch-vcs' in hatch_plugins }}"
when: false
entry_points:
type: str
help: Which entry points do you want to add?
multiselect: true
choices:
Command-line interface: cli
cli:
type: str
help: Which CLI framework do you want to use?
when: "{{ 'cli' in entry_points }}"
choices:
argparse: argparse
Click: click
Typer: typer
Cyclopts: cyclopts
features:
type: str
help: Which features to you want to use?
multiselect: true
default: [tasks, docs]
choices:
Task automation: tasks
Documentation: docs
Test interactive Python examples: doctest
tasks:
type: str
help: Which task automation tool do you want to use?
when: "{{ 'tasks' in features }}"
choices:
tox: tox
Nox: nox
install:
type: str
help: How do you want to install dependencies when running tasks?
default: uv sync
when: "{{ tasks }}"
choices:
Install latest versions: uv pip
Install locked versions: uv sync
docs:
type: str
help: Which static site generator do you want to use?
when: "{{ 'docs' in features }}"
choices:
MkDocs: mkdocs
Zensical: zensical
doctest:
type: str
help: Which interactive Python examples do you want to test?
when: "{{ 'doctest' in features }}"
multiselect: true
choices:
Docstrings: docstrings
Documentation:
value: docs
validator: "{% if not docs %}requires documentation{% endif %}"
README: readme