bibble.io.writer

Type Aliases

Middleware

Classes

BibbleWriter

A Refactored bibtexparser writer

_Visitors_m

Module Contents

bibble.io.writer.Middleware: TypeAlias = API.Middleware_p | API.BidirectionalMiddleware_p
class bibble.io.writer.BibbleWriter(
stack,
*,
format=None,
logger=None,
active_blocks=None,
)[source]

A Refactored bibtexparser writer Uses visitor pattern

Note: visit method are responsible for new lines

Parameters:
  • stack (bibble.util.PairStack | list[Middleware])

  • format (jgdv.Maybe[bibtexparser.writer.BibtexFormat])

  • logger (jgdv.Maybe[logmod.Logger])

  • active_blocks (jgdv.Maybe[collections.abc.Iterable[type[bibtexparser.model.Block]]])

_align_key(key) <Unknown>[source]

take {key} and make {key}{padding}{sep}, Padding is from ‘_calculate_auto_value_align’, the largest key length. Sep is typically ‘=’.

eg: _align_key(‘blah’) -> ‘blah = ‘

Parameters:

key (str)

Return type:

str

_calculate_auto_value_align(library) <Unknown>[source]

Sets the separation between keys and the value separator. If its already set, does nothing. If the format specifies a value, uses that. Otherwise calulates it from the larges field key

Parameters:

library (bibtexparser.library.Library)

Return type:

None

make_body(library) <Unknown>[source]
Return type:

list[str]

Parameters:

file (None | pathlib.Path)

Return type:

list[str]

make_header(library, title) <Unknown>[source]
Parameters:

title (jgdv.Maybe[str])

Return type:

list[str]

make_lib(*, header, body, footer) <Unknown>[source]
Parameters:
Return type:

str

set_active(active) <Unknown>[source]
Parameters:

active (collections.abc.Iterable[type[bibtexparser.model.Block]])

Return type:

None

visit(block) <Unknown>[source]
Return type:

list[str]

write(
library,
*,
file=None,
append=None,
title=None,
) <Unknown>[source]

Write the library to a string, and possbly a file # TODO write failure reports to a separate file

Parameters:
  • library (bibtexparser.library.Library)

  • file (None | pathlib.Path)

  • append (jgdv.Maybe[list[Middleware]])

  • title (jgdv.Maybe[str])

Return type:

str

abstractmethod write_as_data(
library,
*,
file=None,
append=None,
title=None,
) <Unknown>[source]

Instead of writing the library out as a string, write it as data

eg: creating a docutils structure.

Parameters:
  • library (bibtexparser.library.Library)

  • file (None | pathlib.Path)

  • append (jgdv.Maybe[list[Middleware]])

  • title (jgdv.Maybe[str])

Return type:

Any

write_failures(
library,
*,
file=None,
append=False,
) <Unknown>[source]

Write failed blocks to a separate file

Parameters:
  • library (bibtexparser.library.Library)

  • file (jgdv.Maybe[pathlib.Path])

  • append (bool)

Return type:

str

_active_blocks: set[type[bibtexparser.model.Block]]
_join_char = ''
_logger
_middlewares: list[Middleware]
_value_column: jgdv.Maybe[int]
_value_sep: str
format: bibtexparser.writer.BibtexFormat
class bibble.io.writer._Visitors_m[source]
visit_entry(block) <Unknown>[source]
Parameters:

block (bibtexparser.model.Entry)

Return type:

list[str]

visit_expl_comment(block) <Unknown>[source]
Parameters:

block (bibtexparser.model.ExplicitComment)

Return type:

list[str]

visit_failed_block(block) <Unknown>[source]
Parameters:

block (bibble.model.FailedBlock)

Return type:

list[str]

visit_impl_comment(block) <Unknown>[source]
Parameters:

block (bibtexparser.model.ImplicitComment)

Return type:

list[str]

visit_metablock(block) <Unknown>[source]
Parameters:

block (bibble.model.MetaBlock)

Return type:

list[str]

visit_middleware_error_block(block) <Unknown>[source]
Parameters:

block (bibtexparser.model.MiddlewareErrorBlock)

Return type:

list[str]

visit_parsing_failed_block(block) <Unknown>[source]
Parameters:

block (bibtexparser.model.ParsingFailedBlock)

Return type:

list[str]

visit_preamble(block) <Unknown>[source]
Parameters:

block (bibtexparser.model.Preamble)

Return type:

list[str]

visit_string(block) <Unknown>[source]
Parameters:

block (bibtexparser.model.String)

Return type:

list[str]