Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_database_signals_check_failure(self):
signal = cantools.database.can.Signal('S',
7,
33,
'big_endian')
message = cantools.database.can.Message(37,
'M',
4,
[signal],
strict=False)
with self.assertRaises(cantools.database.errors.Error) as cm:
cantools.database.can.Database([message])
self.assertEqual(str(cm.exception),
'The signal S does not fit in message M.')
for i in range(0, len(reversed_signal_bits), 8):
signal_bits = reversed_signal_bits[i:i + 8] + signal_bits
# Check that the signal fits in the message.
if len(signal_bits) > len(message_bits):
raise Error(
'The signal {} does not fit in message {}.'.format(
signal.name,
self.name))
# Check that the signal does not overlap with other
# signals.
for offset, signal_bit in enumerate(signal_bits):
if signal_bit is not None:
if message_bits[offset] is not None:
raise Error(
'The signals {} and {} are overlapping in message {}.'.format(
signal.name,
message_bits[offset],
self.name))
message_bits[offset] = signal.name
from ..errors import Error as _Error
class Error(_Error):
pass
class ParseError(Error):
pass
class EncodeError(Error):
pass
class DecodeError(Error):
pass
import os
from xml.etree import ElementTree
from .errors import ParseError
from .errors import Error
from ..compat import fopen
from . import can
from . import diagnostics
import textparser
import diskcache
# Remove once less users are using the old package structure.
from .can import *
class UnsupportedDatabaseFormatError(Error):
"""This exception is raised when
:func:`~cantools.database.load_file()`,
:func:`~cantools.database.load()` and
:func:`~cantools.database.load_string()` are unable to parse given
database file or string.
"""
def __init__(self, e_arxml, e_dbc, e_kcd, e_sym, e_cdd):
message = []
if e_arxml is not None:
message.append('ARXML: "{}"'.format(e_arxml))
if e_dbc is not None:
message.append('DBC: "{}"'.format(e_dbc))
from ..errors import Error as _Error
class Error(_Error):
pass
class ParseError(Error):
pass
class EncodeError(Error):
pass
class DecodeError(Error):
pass
signal_bits += signal.start * [None]
if len(signal_bits) < len(message_bits):
padding = (len(message_bits) - len(signal_bits)) * [None]
reversed_signal_bits = padding + signal_bits
else:
reversed_signal_bits = signal_bits
signal_bits = []
for i in range(0, len(reversed_signal_bits), 8):
signal_bits = reversed_signal_bits[i:i + 8] + signal_bits
# Check that the signal fits in the message.
if len(signal_bits) > len(message_bits):
raise Error(
'The signal {} does not fit in message {}.'.format(
signal.name,
self.name))
# Check that the signal does not overlap with other
# signals.
for offset, signal_bit in enumerate(signal_bits):
if signal_bit is not None:
if message_bits[offset] is not None:
raise Error(
'The signals {} and {} are overlapping in message {}.'.format(
signal.name,
message_bits[offset],
self.name))
message_bits[offset] = signal.name
"""
database_format, encoding = _resolve_database_format_and_encoding(
database_format,
encoding,
filename)
newline = None
if database_format == 'dbc':
output = database.as_dbc_string()
newline = ''
elif database_format == 'kcd':
output = database.as_kcd_string()
else:
raise Error(
"Unsupported output database format '{}'.".format(database_format))
with fopen(filename, 'w', encoding=encoding, newline=newline) as fout:
fout.write(output)
from ..errors import Error as _Error
class Error(_Error):
pass
class ParseError(Error):
pass
class EncodeError(Error):
pass
class DecodeError(Error):
pass