in python/rpdk/python/codegen.py [0:0]
def init(self, project):
LOG.debug("Init started")
self._init_from_project(project)
self._init_settings(project)
project.runtime = self.RUNTIME
project.entrypoint = self.ENTRY_POINT.format(self.package_name)
project.test_entrypoint = project.entrypoint.replace(
".resource", ".test_entrypoint"
)
def _render_template(path, **kwargs):
LOG.debug("Writing '%s'", path)
template = self.env.get_template(path.name)
contents = template.render(**kwargs)
project.safewrite(path, contents)
def _copy_resource(path, resource_name=None):
LOG.debug("Writing '%s'", path)
if not resource_name:
resource_name = path.name
contents = resource_stream(__name__, f"data/{resource_name}").read()
project.safewrite(path, contents)
# handler Python package
handler_package_path = self.package_root / self.package_name
LOG.debug("Making folder '%s'", handler_package_path)
handler_package_path.mkdir(parents=True, exist_ok=True)
_copy_resource(handler_package_path / "__init__.py")
_render_template(
handler_package_path / "handlers.py",
support_lib_pkg=SUPPORT_LIB_PKG,
type_name=project.type_name,
)
# models.py produced by generate
# project support files
_copy_resource(project.root / ".gitignore", "Python.gitignore")
_render_template(
project.root / "requirements.txt", support_lib_name=SUPPORT_LIB_NAME
)
_render_template(
project.root / "README.md",
type_name=project.type_name,
schema_path=project.schema_path,
project_path=self.package_name,
executable=EXECUTABLE,
support_lib_pkg=SUPPORT_LIB_PKG,
)
# CloudFormation/SAM template for handler lambda
handler_params = {
"Handler": project.entrypoint,
"Runtime": project.runtime,
"CodeUri": self.CODE_URI,
}
_render_template(
project.root / "template.yml",
resource_type=project.type_name,
functions={
"TypeFunction": handler_params,
"TestEntrypoint": {
**handler_params,
"Handler": project.test_entrypoint,
},
},
)
LOG.debug("Init complete")