Module psdi_data_conversion.converters.c2x.converter
@file psdi_data_conversion/converters/script_template/converter.py
c2x file converter
Classes
class C2xFileConverter (filename: str,
to_format: str,
from_format: str | None = None,
data: dict[str, typing.Any] | None = None,
abort_callback: Callable[[int], None] = <function abort_raise>,
use_envvars=False,
input_dir='./psdi_data_conversion/static/uploads',
output_dir='./psdi_data_conversion/static/downloads',
no_clobber=False,
max_file_size=None,
no_check=False,
log_file: str | None = None,
log_mode='full',
log_level: int | None = None,
refresh_local_log: bool = True,
delete_input=False)-
Expand source code
class C2xFileConverter(ScriptFileConverter): """File converter specialised to use c2x for conversions""" meta: FileConverterMeta = FileConverterMeta.load(__file__) script = "c2x.sh" required_bin = "c2x" has_in_format_flags_or_options = False has_out_format_flags_or_options = False allowed_flags = () allowed_options = () def _get_script_args(self): """Override the standard script arguments so we can set the different format names expected by c2x """ l_script_args = super()._get_script_args() # Update the output format to c2x style l_script_args[0] = "--" + self.to_format_name # TODO - check if the input file has an extension which will be accepted by c2x for its format, and handle if # not return l_script_args def _create_message(self) -> str: """Override method to create a log of options passed to the converter""" message = "" label_length = 19 for (label, key, multi) in (("Options:", "from_flags", False), ("Opts + args:", "read_flags_args", True)): val = self.data.get(key) if not val: message += f"{label:<{label_length}}none\n" continue if multi: l_items = val else: l_items = (val,) for i, item in enumerate(l_items): if i == 0: line_label = label else: line_label = "" message += f"{line_label:<{label_length}}{item}\n" return messageFile converter specialised to use c2x for conversions
Initialize the object, storing needed data and setting up loggers.
Parameters
filename:str- The filename of the input file to be converted, either relative to current directory or fully-qualified
to_format:str- The desired format to convert to, as the file extension (e.g. "cif")
from_format:str | None- The format to convert from, as the file extension (e.g. "pdb"). If None is provided (default), will be
determined from the extension of
filename data:dict[str | Any] | None- A dict of any other data needed by a converter or for extra logging information, default empty dict. See the
docstring of each converter for supported keys and values that can be passed to
datahere abort_callback:Callable[[int], None]- Function to be called if the conversion hits an error and must be aborted, default
abort_raise, which raises an appropriate exception use_envvars:bool- If set to True, environment variables will be checked for any that set options for this class and used, default False
input_dir:str- The location of input files relative to the current directory
output_dir:str- The location of output files relative to the current directory
max_file_size:float- The maximum allowed file size for input/output files, in MB. If 0, will be unlimited. Default 0 (unlimited)
no_check:bool- If False (default), will check at setup whether or not a conversion between the desired file formats is supported with the specified converter
log_file:str | None- If provided, all logging will go to a single file or stream. Otherwise, logs will be split up among multiple files for server-style logging.
log_mode:str- How logs should be stores. Allowed values are: - 'full' - Multi-file logging, only recommended when running as a public web app - 'full-force' - Multi-file logging, only recommended when running as a public web app, with the log file name forced to be used for the output log - 'simple' - Logs saved to one file - 'stdout' - Output logs and errors only to stdout - 'none' - Output only errors to stdout
log_level:int | None- The level to log output at. If None (default), the level will depend on the chosen
log_mode: - 'full', 'full-force', or 'simple': INFO - 'stdout' - INFO to stdout, no logging to file - 'none' - ERROR to stdout, no logging to file refresh_local_log:bool- If True, the local log generated from this run will be overwritten. If False it will be appended to. Default True
delete_input:bool- Whether or not to delete input files after conversion, default False
Ancestors
Class variables
var allowed_flags : tuple[tuple[str, dict, collections.abc.Callable], ...] | Nonevar allowed_options : tuple[tuple[str, dict, collections.abc.Callable], ...] | Nonevar has_in_format_flags_or_optionsvar has_out_format_flags_or_optionsvar meta : FileConverterMetavar required_bin : str | Nonevar script : str | None
class converter (filename: str,
to_format: str,
from_format: str | None = None,
data: dict[str, typing.Any] | None = None,
abort_callback: Callable[[int], None] = <function abort_raise>,
use_envvars=False,
input_dir='./psdi_data_conversion/static/uploads',
output_dir='./psdi_data_conversion/static/downloads',
no_clobber=False,
max_file_size=None,
no_check=False,
log_file: str | None = None,
log_mode='full',
log_level: int | None = None,
refresh_local_log: bool = True,
delete_input=False)-
Expand source code
class C2xFileConverter(ScriptFileConverter): """File converter specialised to use c2x for conversions""" meta: FileConverterMeta = FileConverterMeta.load(__file__) script = "c2x.sh" required_bin = "c2x" has_in_format_flags_or_options = False has_out_format_flags_or_options = False allowed_flags = () allowed_options = () def _get_script_args(self): """Override the standard script arguments so we can set the different format names expected by c2x """ l_script_args = super()._get_script_args() # Update the output format to c2x style l_script_args[0] = "--" + self.to_format_name # TODO - check if the input file has an extension which will be accepted by c2x for its format, and handle if # not return l_script_args def _create_message(self) -> str: """Override method to create a log of options passed to the converter""" message = "" label_length = 19 for (label, key, multi) in (("Options:", "from_flags", False), ("Opts + args:", "read_flags_args", True)): val = self.data.get(key) if not val: message += f"{label:<{label_length}}none\n" continue if multi: l_items = val else: l_items = (val,) for i, item in enumerate(l_items): if i == 0: line_label = label else: line_label = "" message += f"{line_label:<{label_length}}{item}\n" return messageFile converter specialised to use c2x for conversions
Initialize the object, storing needed data and setting up loggers.
Parameters
filename:str- The filename of the input file to be converted, either relative to current directory or fully-qualified
to_format:str- The desired format to convert to, as the file extension (e.g. "cif")
from_format:str | None- The format to convert from, as the file extension (e.g. "pdb"). If None is provided (default), will be
determined from the extension of
filename data:dict[str | Any] | None- A dict of any other data needed by a converter or for extra logging information, default empty dict. See the
docstring of each converter for supported keys and values that can be passed to
datahere abort_callback:Callable[[int], None]- Function to be called if the conversion hits an error and must be aborted, default
abort_raise, which raises an appropriate exception use_envvars:bool- If set to True, environment variables will be checked for any that set options for this class and used, default False
input_dir:str- The location of input files relative to the current directory
output_dir:str- The location of output files relative to the current directory
max_file_size:float- The maximum allowed file size for input/output files, in MB. If 0, will be unlimited. Default 0 (unlimited)
no_check:bool- If False (default), will check at setup whether or not a conversion between the desired file formats is supported with the specified converter
log_file:str | None- If provided, all logging will go to a single file or stream. Otherwise, logs will be split up among multiple files for server-style logging.
log_mode:str- How logs should be stores. Allowed values are: - 'full' - Multi-file logging, only recommended when running as a public web app - 'full-force' - Multi-file logging, only recommended when running as a public web app, with the log file name forced to be used for the output log - 'simple' - Logs saved to one file - 'stdout' - Output logs and errors only to stdout - 'none' - Output only errors to stdout
log_level:int | None- The level to log output at. If None (default), the level will depend on the chosen
log_mode: - 'full', 'full-force', or 'simple': INFO - 'stdout' - INFO to stdout, no logging to file - 'none' - ERROR to stdout, no logging to file refresh_local_log:bool- If True, the local log generated from this run will be overwritten. If False it will be appended to. Default True
delete_input:bool- Whether or not to delete input files after conversion, default False
Ancestors
Class variables
var has_in_format_flags_or_optionsvar has_out_format_flags_or_options
Inherited members