From 3c44a072bd3833c34fa6c15553cce0594247aa9d Mon Sep 17 00:00:00 2001 From: emkael Date: Tue, 13 Feb 2024 01:26:08 +0100 Subject: Input file encoding option back functioning --- pysquaredeal.py | 2 +- squaredeal/__init__.py | 15 ++++++++------- squaredeal/sqd.py | 4 +++- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/pysquaredeal.py b/pysquaredeal.py index 12e5dc6..bf24e43 100644 --- a/pysquaredeal.py +++ b/pysquaredeal.py @@ -44,5 +44,5 @@ arguments = argparser.parse_args() SquareDeal.BIGDEALX_PATH = arguments.bigdealx_path -sq = SquareDeal(arguments.sqd_file, sqk_file=arguments.sqk_file) +sq = SquareDeal(arguments.sqd_file, sqk_file=arguments.sqk_file, encoding=arguments.encoding) getattr(sq, arguments.command)(**vars(arguments)) diff --git a/squaredeal/__init__.py b/squaredeal/__init__.py index ee2b8c2..8ed571f 100644 --- a/squaredeal/__init__.py +++ b/squaredeal/__init__.py @@ -44,10 +44,11 @@ class SquareDeal(object): BIGDEALX_PATH = None - def __init__(self, sqd_file, sqk_file=None): + def __init__(self, sqd_file, sqk_file=None, encoding=None): self.sqd = SQD() self.sqd_file = sqd_file self.sqk_file = sqk_file + self.sqd_encoding = encoding def create(self, event_name=None, delayed_information=None, overwrite=False, **kwargs): self.sqd.name = event_name @@ -59,7 +60,7 @@ class SquareDeal(object): self.sqd.tofile(self.sqd_file) def set_name(self, event_name, **kwargs): - self.sqd.fromfile(self.sqd_file, sqkpath=self.sqk_file) + self.sqd.fromfile(self.sqd_file, sqkpath=self.sqk_file, encoding=self.sqd_encoding) if self.sqd.published: raise SquareDealError('Cannot change name: event already published') @@ -69,7 +70,7 @@ class SquareDeal(object): self.sqd.tofile(self.sqd_file) def set_di(self, delayed_information, **kwargs): - self.sqd.fromfile(self.sqd_file, sqkpath=self.sqk_file) + self.sqd.fromfile(self.sqd_file, sqkpath=self.sqk_file, encoding=self.sqd_encoding) if self.sqd.published: raise SquareDealError('Cannot change delayed information description: event already published') @@ -79,7 +80,7 @@ class SquareDeal(object): self.sqd.tofile(self.sqd_file) def add_phase(self, sessions, boards, prefix, description='', **kwargs): - self.sqd.fromfile(self.sqd_file, sqkpath=self.sqk_file) + self.sqd.fromfile(self.sqd_file, sqkpath=self.sqk_file, encoding=self.sqd_encoding) if self.sqd.published: raise SquareDealError('Cannot add phase: event already published') @@ -94,7 +95,7 @@ class SquareDeal(object): self.sqd.tofile(self.sqd_file) def publish(self, **kwargs): - self.sqd.fromfile(self.sqd_file, sqkpath=self.sqk_file) + self.sqd.fromfile(self.sqd_file, sqkpath=self.sqk_file, encoding=self.sqd_encoding) if self.sqd.published: raise SquareDealError('Cannot mark as published: event already published') @@ -112,7 +113,7 @@ class SquareDeal(object): self.sqd.tofile(self.sqd_file, sqkpath=self.sqk_file) def set_dv(self, delayed_information, **kwargs): - self.sqd.fromfile(self.sqd_file, sqkpath=self.sqk_file) + self.sqd.fromfile(self.sqd_file, sqkpath=self.sqk_file, encoding=self.sqd_encoding) if not self.sqd.published: raise SquareDealError('Cannot set delayed information value: event not published') @@ -125,7 +126,7 @@ class SquareDeal(object): if not SquareDeal.BIGDEALX_PATH: raise SquareDealError('Path to BigDeal is not set, initialize SquareDeal.BIGDEALX_PATH value') - self.sqd.fromfile(self.sqd_file, sqkpath=self.sqk_file) + self.sqd.fromfile(self.sqd_file, sqkpath=self.sqk_file, encoding=self.sqd_encoding) if not self.sqd.published: raise SquareDealError('Cannot generate PBN files: event info is not marked as published') diff --git a/squaredeal/sqd.py b/squaredeal/sqd.py index 3de3f34..60ef4a3 100644 --- a/squaredeal/sqd.py +++ b/squaredeal/sqd.py @@ -68,7 +68,9 @@ class SQD(object): self.published = False self.sqd_path = None - def fromfile(self, sqdpath, sqkpath=None, encoding='utf-8'): + def fromfile(self, sqdpath, sqkpath=None, encoding=None): + if not encoding: + encoding = 'utf-8' with open(sqdpath, encoding=encoding) as sqdfile: contents = [line.strip() for line in sqdfile.readlines()] self._init_values() -- cgit v1.2.3