-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathcopier.yml
More file actions
176 lines (135 loc) · 5.38 KB
/
copier.yml
File metadata and controls
176 lines (135 loc) · 5.38 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
# Questions specific to this template
# Questions managed by upstream template
repo_name:
type: str
help: What is the name of the repository?
repo_org_name:
type: str
help: What's the organization or username that owns this repository (look in the URL)?
description:
type: str
help: What is the description of this repository?
install_claude_cli:
type: bool
help: Should the Claude CLI be installed in the devcontainer?
default: no
is_open_source:
type: bool
help: Is this library open source?
default: no
ssh_port_number:
type: int
help: What port should the devcontainer bind SSH to?
# Pick a random port, but ensure it's not in the excluded port range on Windows (powershell: `netsh int ipv4 show excludedportrange protocol=tcp`)
default: "{{ ( (range(49152, 49752) | list) + (range(49852, 50000) | list) + (range(50060, 50160) | list) + (range(50160, 50260) | list) + (range(50260, 50360) | list) + (range(50914, 51014) | list) + (range(51114, 51214) | list) + (range(51214, 51314) | list) + (range(51314, 51414) | list) + (range(51623, 51723) | list) + (range(51723, 51823) | list) + (range(65269, 65369) | list) + (range(65369, 65469) | list) ) | random }}"
pull_from_ecr:
type: bool
help: Will you need to pull images from a central AWS Elastic Container Registry?
default: no
use_windows_in_ci:
type: bool
help: Should CI in the instantiated template also use Windows runners?
default: no
install_aws_ssm_port_forwarding_plugin:
type: bool
help: Should the AWS SSM Port Forwarding Plugin be installed?
default: no
configure_vcrpy:
type: bool
help: Should VCRpy be configured for use during unit testing in Python?
default: no
configure_python_asyncio:
type: bool
help: Will python code be using asyncio?
default: no
python_version:
type: str
help: What version of Python is used for development?
default: "3.12.7"
python_package_registry:
type: str
help: What registry should Python Packgaes be installed from?
choices:
- PyPI
- AWS CodeArtifact
default: PyPI
python_ci_versions:
type: str
help: What versions should Python run CI on the instantiated template?
multiselect: true
choices:
- "3.12.7"
- "3.13.9"
- "3.14.0"
aws_identity_center_id:
type: str
help: What's the ID of your Organization's AWS Identity center, e.g. d-9145c20053?
when: "{{ python_package_registry == 'AWS CodeArtifact' or install_aws_ssm_port_forwarding_plugin or pull_from_ecr }}"
aws_org_home_region:
type: str
help: What is the home region of the AWS Organization (where all of the central infrastructure is deployed)?
default: us-east-1
when: "{{ python_package_registry == 'AWS CodeArtifact' or install_aws_ssm_port_forwarding_plugin or pull_from_ecr }}"
aws_central_infrastructure_account_id:
type: str
help: What's the ID of your Organization's AWS Account containing Central Infrastructure (e.g. CodeArtifact)?
when: "{{ python_package_registry == 'AWS CodeArtifact' or pull_from_ecr }}"
default: "000000000000"
core_infra_base_access_profile_name:
type: str
help: What's the AWS Identity Center Profile name for base access to the Central Infrastructure account (i.e. to read from CodeArtifact)?
when: "{{ python_package_registry == 'AWS CodeArtifact' or pull_from_ecr }}"
default: CoreInfraBaseAccess
# Questions specific to this template
package_name:
type: str
help: What is the (kebab-case) name that you want to call this package?
default: "{{ repo_name.replace('_', '-') }}"
primary_author:
type: str
help: Who is the primary author of this project?
full_repo_url:
type: str
help: Full URL, beginning with https but no trailing slash
create_docs:
type: bool
help: Do you want to create documentation for this project?
default: yes
is_frozen_executable:
type: bool
help: Is this project a frozen executable (instead of a PyPI-compatible library)?
default: no
use_windows_in_exe_ci:
type: bool
help: Should CI in the instantiated template also use Windows runners for building and testing the executable?
default: no
when: is_frozen_executable
use_codecov:
type: bool
help: Upload code coverage results to CodeCov?
default: no
_tasks:
- command: |
python3 '{{ _copier_conf.src_path }}/src/copier_tasks/remove_precommit_hooks.py' \
--hook-id-regex '^\s*-\s+id:\s+merge-claude-settings\s*$' \
--target-file .pre-commit-config.yaml
when: "{{ not install_claude_cli }}"
- command: |
if [ -f ruff.toml ]; then
echo "Updating ruff target-version from python_version..."
py_major_minor="$(printf '%s' '{{ python_version }}' | cut -d. -f1,2)"
py_tag="py$(printf '%s' "$py_major_minor" | tr -d '.')"
sed -i -E 's/^target-version = "py[0-9]+"/target-version = "'"$py_tag"'"/' ruff.toml
else
echo "ruff.toml not found; skipping Ruff target-version update."
fi
# Additional Settings
_min_copier_version: "9.7"
_subdirectory: template
_templates_suffix: .jinja
_exclude:
- "copier.yml"
# adapted from https://github.com/copier-org/copier-template-extensions#context-hook-extension
_jinja_extensions:
- copier_template_extensions.TemplateExtensionLoader
- extensions/context.py:ContextUpdater