Module psdi_data_conversion.converters.c2x
@file psdi_data_conversion/converters/c2x.py
Created 2025-01-23 by Bryan Gillis.
c2x FileConverter
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',
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 specialized to use c2x for conversions. This converter does not yet support any additional configuration options provided at class init to the `data` kwarg. """ name = CONVERTER_C2X script = "c2x.sh" required_bin = "c2x" info = ("c2x binaries compiled for 64-bit Linux and MacOS systems are distributed with this package. It may be " "registered on other systems by compiling it locally and adding the compiled 'c2x' binary (with this " "exact name - rename it or make a symbolic link to it if necessary) to your $PATH.\n" "\n" "c2x is licensed under GPLv3, the full text of which may be found at " "https://www.gnu.org/licenses/gpl-3.0.en.html. Its binaries are redistributed here under the terms of this " "license, and any further redistribution must also follow these terms. Its corresponding source code " "may be downloaded from https://www.c2x.org.uk/downloads/") supports_ambiguous_extensions = True 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_info.c2x_format # 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
File Converter specialized to use c2x for conversions.
This converter does not yet support any additional configuration options provided at class init to the
data
kwarg.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
data
here 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 info : str | None
var name : str | None
var required_bin : str | None
var script : str | None
var supports_ambiguous_extensions : bool
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',
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 specialized to use c2x for conversions. This converter does not yet support any additional configuration options provided at class init to the `data` kwarg. """ name = CONVERTER_C2X script = "c2x.sh" required_bin = "c2x" info = ("c2x binaries compiled for 64-bit Linux and MacOS systems are distributed with this package. It may be " "registered on other systems by compiling it locally and adding the compiled 'c2x' binary (with this " "exact name - rename it or make a symbolic link to it if necessary) to your $PATH.\n" "\n" "c2x is licensed under GPLv3, the full text of which may be found at " "https://www.gnu.org/licenses/gpl-3.0.en.html. Its binaries are redistributed here under the terms of this " "license, and any further redistribution must also follow these terms. Its corresponding source code " "may be downloaded from https://www.c2x.org.uk/downloads/") supports_ambiguous_extensions = True 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_info.c2x_format # 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
File Converter specialized to use c2x for conversions.
This converter does not yet support any additional configuration options provided at class init to the
data
kwarg.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
data
here 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
Inherited members