From c7d2de3ee98753afad218bc539d4134991d183f2 Mon Sep 17 00:00:00 2001 From: Dan <14043624+delivrance@users.noreply.github.com> Date: Sun, 21 Jan 2018 16:56:50 +0100 Subject: [PATCH] Force UTF-8 encoding when r/w'ing text files --- compiler/api/compiler.py | 20 ++++++++++---------- compiler/docs/compiler.py | 10 +++++----- compiler/error/compiler.py | 20 ++++++++++---------- pyrogram/api/errors/error.py | 2 +- pyrogram/client/client.py | 4 ++-- 5 files changed, 28 insertions(+), 28 deletions(-) diff --git a/compiler/api/compiler.py b/compiler/api/compiler.py index 1cfdb437..e1e95328 100644 --- a/compiler/api/compiler.py +++ b/compiler/api/compiler.py @@ -70,15 +70,15 @@ def start(): shutil.rmtree("{}/types".format(DESTINATION), ignore_errors=True) shutil.rmtree("{}/functions".format(DESTINATION), ignore_errors=True) - with open("{}/source/auth_key.tl".format(HOME)) as auth, \ - open("{}/source/sys_msgs.tl".format(HOME)) as system, \ - open("{}/source/main_api.tl".format(HOME)) as api: + with open("{}/source/auth_key.tl".format(HOME), encoding="utf-8") as auth, \ + open("{}/source/sys_msgs.tl".format(HOME), encoding="utf-8") as system, \ + open("{}/source/main_api.tl".format(HOME), encoding="utf-8") as api: schema = (auth.read() + system.read() + api.read()).splitlines() - with open("{}/template/class.txt".format(HOME)) as f: + with open("{}/template/class.txt".format(HOME), encoding="utf-8") as f: template = f.read() - with open(notice_path) as f: + with open(notice_path, encoding="utf-8") as f: notice = [] for line in f.readlines(): @@ -162,10 +162,10 @@ def start(): init = "{}/__init__.py".format(path) if not os.path.exists(init): - with open(init, "w") as f: + with open(init, "w", encoding="utf-8") as f: f.write(notice + "\n\n") - with open(init, "a") as f: + with open(init, "a", encoding="utf-8") as f: f.write("from .{} import {}\n".format(snek(c.name), capit(c.name))) sorted_args = sort_args(c.args) @@ -397,7 +397,7 @@ def start(): read_types += "\n " read_types += "{} = Object.read(b)\n ".format(arg_name) - with open("{}/{}.py".format(path, snek(c.name)), "w") as f: + with open("{}/{}.py".format(path, snek(c.name)), "w", encoding="utf-8") as f: f.write( template.format( notice=notice, @@ -414,7 +414,7 @@ def start(): ) ) - with open("{}/all.py".format(DESTINATION), "w") as f: + with open("{}/all.py".format(DESTINATION), "w", encoding="utf-8") as f: f.write(notice + "\n\n") f.write("layer = {}\n\n".format(layer)) f.write("objects = {") @@ -436,7 +436,7 @@ def start(): f.write("\n}\n") for k, v in namespaces.items(): - with open("{}/{}/__init__.py".format(DESTINATION, k), "a") as f: + with open("{}/{}/__init__.py".format(DESTINATION, k), "a", encoding="utf-8") as f: f.write("from . import {}\n".format(", ".join([i for i in v])) if v else "") diff --git a/compiler/docs/compiler.py b/compiler/docs/compiler.py index af9d1315..6a6345d1 100644 --- a/compiler/docs/compiler.py +++ b/compiler/docs/compiler.py @@ -44,7 +44,7 @@ def generate(source_path, base): if not i.startswith("__"): build("/".join([path, i]), level=level + 1) except NotADirectoryError: - with open(path + "/" + i) as f: + with open(path + "/" + i, encoding="utf-8") as f: p = ast.parse(f.read()) for node in ast.walk(p): @@ -59,7 +59,7 @@ def generate(source_path, base): os.makedirs(os.path.dirname(destination + "/" + full_path), exist_ok=True) - with open(destination + "/" + full_path, "w") as f: + with open(destination + "/" + full_path, "w", encoding="utf-8") as f: f.write( page_template.format( title=name, @@ -94,7 +94,7 @@ def generate(source_path, base): inner_path = base + "/index" + ".rst" module = "pyrogram.api.{}".format(base) - with open(destination + "/" + inner_path, "w") as f: + with open(destination + "/" + inner_path, "w", encoding="utf-8") as f: f.write( toctree.format( title=k.title(), @@ -111,10 +111,10 @@ def start(): global page_template global toctree - with open(home + "/template/page.txt") as f: + with open(home + "/template/page.txt", encoding="utf-8") as f: page_template = f.read() - with open(home + "/template/toctree.txt") as f: + with open(home + "/template/toctree.txt", encoding="utf-8") as f: toctree = f.read() generate(types_path, types_base) diff --git a/compiler/error/compiler.py b/compiler/error/compiler.py index 7b75647b..fee3be4d 100644 --- a/compiler/error/compiler.py +++ b/compiler/error/compiler.py @@ -43,7 +43,7 @@ def start(): files = [i for i in os.listdir("{}/source".format(home))] - with open(notice_path) as f: + with open(notice_path, encoding="utf-8") as f: notice = [] for line in f.readlines(): @@ -51,7 +51,7 @@ def start(): notice = "\n".join(notice) - with open("{}/all.py".format(dest), "w") as f_all: + with open("{}/all.py".format(dest), "w", encoding="utf-8") as f_all: f_all.write(notice + "\n\n") f_all.write("count = {count}\n\n") f_all.write("exceptions = {\n") @@ -66,14 +66,14 @@ def start(): init = "{}/__init__.py".format(dest) if not os.path.exists(init): - with open(init, "w") as f_init: + with open(init, "w", encoding="utf-8") as f_init: f_init.write(notice + "\n\n") - with open(init, "a") as f_init: + with open(init, "a", encoding="utf-8") as f_init: f_init.write("from .{}_{} import *\n".format(name.lower(), code)) - with open("{}/source/{}".format(home, i)) as f_csv, \ - open("{}/{}_{}.py".format(dest, name.lower(), code), "w") as f_class: + with open("{}/source/{}".format(home, i), encoding="utf-8") as f_csv, \ + open("{}/{}_{}.py".format(dest, name.lower(), code), "w", encoding="utf-8") as f_class: reader = csv.reader(f_csv, delimiter="\t") super_class = caml(name) @@ -98,10 +98,10 @@ def start(): sub_classes.append((sub_class, id, message)) - with open("{}/template/class.txt".format(home), "r") as f_class_template: + with open("{}/template/class.txt".format(home), "r", encoding="utf-8") as f_class_template: class_template = f_class_template.read() - with open("{}/template/sub_class.txt".format(home), "r") as f_sub_class_template: + with open("{}/template/sub_class.txt".format(home), "r", encoding="utf-8") as f_sub_class_template: sub_class_template = f_sub_class_template.read() class_template = class_template.format( @@ -123,10 +123,10 @@ def start(): f_all.write("}\n") - with open("{}/all.py".format(dest)) as f: + with open("{}/all.py".format(dest), encoding="utf-8") as f: content = f.read() - with open("{}/all.py".format(dest), "w") as f: + with open("{}/all.py".format(dest), "w", encoding="utf-8") as f: f.write(re.sub("{count}", str(count), content)) print("Compiling Errors: [100%]") diff --git a/pyrogram/api/errors/error.py b/pyrogram/api/errors/error.py index a861333d..aefbbca9 100644 --- a/pyrogram/api/errors/error.py +++ b/pyrogram/api/errors/error.py @@ -42,7 +42,7 @@ class Error(Exception): # TODO: Proper log unknown errors if self.CODE == 520: - with open("unknown_errors.txt", "a") as f: + with open("unknown_errors.txt", "a", encoding="utf-8") as f: f.write("{}\t{}\t{}\n".format(x.error_code, x.error_message, query_type)) @staticmethod diff --git a/pyrogram/client/client.py b/pyrogram/client/client.py index c8985896..131ce037 100644 --- a/pyrogram/client/client.py +++ b/pyrogram/client/client.py @@ -311,7 +311,7 @@ class Client: def load_session(self, session_name): try: - with open("{}.session".format(session_name)) as f: + with open("{}.session".format(session_name), encoding="utf-8") as f: s = json.load(f) except FileNotFoundError: self.dc_id = 1 @@ -326,7 +326,7 @@ class Client: auth_key = base64.b64encode(self.auth_key).decode() auth_key = [auth_key[i: i + 43] for i in range(0, len(auth_key), 43)] - with open("{}.session".format(self.session_name), "w") as f: + with open("{}.session".format(self.session_name), "w", encoding="utf-8") as f: json.dump( dict( dc_id=self.dc_id,