コード例 #1
0
            def check_fn(obtained_filename: PathPlus,
                         expected_filename: PathLike):
                expected_filename = PathPlus(expected_filename)

                template = Template(
                    expected_filename.read_text(),
                    block_start_string="<%",
                    block_end_string="%>",
                    variable_start_string="<<",
                    variable_end_string=">>",
                    comment_start_string="<#",
                    comment_end_string="#>",
                )

                expected_filename.write_text(
                    template.render(
                        sphinx_version=sphinx.version_info,
                        python_version=sys.version_info,
                        docutils_version=docutils_version,
                        **jinja2_namespace or {},
                    ))

                return check_text_files(obtained_filename,
                                        expected_filename,
                                        encoding="UTF-8")
コード例 #2
0
	def bump_version_for_file(self, filename: PathLike, config: BumpversionFileConfig):
		"""
		Bumps the version for the given file.

		:param filename:
		:param config:
		"""

		filename = self.repo.target_repo / filename
		filename.write_text(filename.read_text().replace(config["search"], config["replace"]))
コード例 #3
0
def export_wordcloud(word_cloud: WordCloud, outfile: PathLike) -> None:
    """
	Export a wordcloud to a file.

	:param word_cloud:
	:param outfile: The file to export the wordcloud to.
	"""

    outfile = pathlib.Path(outfile)

    if outfile.suffix == ".svg":
        outfile.write_text(word_cloud.to_svg())
    else:
        word_cloud.to_file(str(outfile))
コード例 #4
0
def save_data(
    file_name: PathLike,
    data: Union[List[float], List[List[float]]],
    format_str: str = "%.6f",
    prepend: str = '',
    sep: str = ' ',
    compressed: bool = False,
):
    """
	Saves a list of numbers or a list of lists of numbers to a file with specific formatting.

	:param file_name: Name of a file
	:param data: A list of numbers, or a list of lists
	:param format_str: A format string for individual entries
	:param prepend: A string, printed before each row
	:param sep: A string, printed after each number
	:param compressed: If :py:obj:`True`, the output will be gzipped.

	:authors: Vladimir Likic, Dominic Davis-Foster (pathlib support)
	"""

    if not is_path(file_name):
        raise TypeError("'file_name' must be a string or a PathLike object")

    file_name = prepare_filepath(file_name)

    if not isinstance(data, _list_types):
        raise TypeError("'data' must be a list")

    if not isinstance(prepend, str):
        raise TypeError("'prepend' must be a string")

    if not isinstance(sep, str):
        raise TypeError("'sep' must be a string")

    buf = StringList()

    # decide whether data is a vector or matrix
    if is_number(data[0]):
        for item in data:
            if not is_number(item):
                raise TypeError("not all elements of the list are numbers")
        for x_value in data:
            buf.append(prepend + (format_str % x_value))

    else:
        for item in data:
            if not isinstance(item, _list_types):
                raise TypeError("not all elements of the list are lists")

        for x_value in cast(List[List[float]], data):
            line = [prepend]
            for jj, y_value in enumerate(x_value):
                if is_number(y_value):
                    line.append(format_str % y_value)
                    if jj < (len(x_value) - 1):
                        line.append(sep)
                else:
                    raise TypeError("'datum' must be a number")
            buf.append(''.join(line))

    if compressed:
        with gzip.open(file_name, "wt") as fp:
            fp.write(str(buf))
    else:
        file_name.write_text(str(buf), encoding="UTF-8")