def _render_log(): """Totally tap into Towncrier internals to get an in-memory result. """ config = load_config(ROOT) definitions = config["types"] fragments, fragment_filenames = find_fragments( pathlib.Path(config["directory"]).absolute(), config["sections"], None, definitions, ) project_options = { "name": config["package"], "version": _read_text_version(), "date": datetime.date.today().isoformat(), } rendered = render_fragments( pathlib.Path(config["template"]).read_text(encoding="utf-8"), config["issue_format"], split_fragments(fragments, definitions), definitions, config["underlines"][1:], False, # Don't add newlines to wrapped text. project_options, ) return rendered
def get_tag_content(ctx): config = load_config(ctx.directory.as_posix()) definitions = config["types"] (fragments, fragment_filenames) = find_fragments( pathlib.Path(config["directory"]).absolute(), config["sections"], None, definitions, ) return render_fragments( pathlib.Path(config["template"]).read_text(encoding="utf-8"), config["issue_format"], split_fragments(fragments, definitions), definitions, config["underlines"][1:], False, # don't add newlines to wrapped text )
def _render_log(): """Totally tap into Towncrier internals to get an in-memory result. """ config = load_config(ROOT) definitions = config['types'] fragments, fragment_filenames = find_fragments( pathlib.Path(config['directory']).absolute(), config['sections'], None, definitions, ) rendered = render_fragments( pathlib.Path(config['template']).read_text(encoding='utf-8'), config['issue_format'], split_fragments(fragments, definitions), definitions, config['underlines'][1:], ) return rendered
def _render_log(): """Totally tap into Towncrier internals to get an in-memory result.""" config = load_config(ROOT) definitions = config["types"] fragments, fragment_filenames = find_fragments( pathlib.Path(config["directory"]).absolute(), config["sections"], None, definitions, ) rendered = render_fragments( pathlib.Path(config["template"]).read_text(encoding="utf-8"), config["issue_format"], split_fragments(fragments, definitions), definitions, config["underlines"][1:], False, # Don't add newlines to wrapped text. { "name": "requirementslib", "version": "1.6.7", "date": "2022-7-7", }, # towncrier==19.9.0 ) return rendered
def generate_changelog_for_docs(directory, skip_if_empty=True): """ The main entry point. """ directory = os.path.abspath(directory) config = load_config(directory) if config is None: raise ValueError( f"No vaild towncrier configuration could be found in the directory {directory}" ) curdir = os.getcwd() os.chdir(directory) print("Loading template...") if config["template"] is None: template = pkg_resources.resource_string( "towncrier", "templates/template.rst").decode("utf8") else: with open(config["template"], "rb") as tmpl: template = tmpl.read().decode("utf8") print("Finding news fragments...") definitions = config["types"] if config.get("directory"): base_directory = os.path.abspath(config["directory"]) fragment_directory = None else: base_directory = os.path.abspath( os.path.join(directory, config["package_dir"], config["package"])) fragment_directory = "newsfragments" fragments, fragment_filenames = find_fragments(base_directory, config["sections"], fragment_directory, definitions) if skip_if_empty and not fragment_filenames: return "" print("Rendering news fragments...") fragments = split_fragments(fragments, definitions) rendered = render_fragments( # The 0th underline is used for the top line template, config["issue_format"], fragments, definitions, config["underlines"][1:], config["wrap"], ) project_version = get_version( os.path.join(directory, config["package_dir"]), config["package"]) package = config.get("package") if package: project_name = get_project_name( os.path.abspath(os.path.join(directory, config["package_dir"])), package) else: # Can't determine a project_name, but maybe it is not needed. project_name = "" project_date = _get_date() top_line = config["title_format"].format(name=project_name, version=project_version, project_date=project_date) top_line += u"\n" + (config["underlines"][0] * len(top_line)) + u"\n" os.chdir(curdir) return top_line + rendered