diff --git a/README.rst b/README.rst
index df549955..6475b81d 100644
--- a/README.rst
+++ b/README.rst
@@ -49,7 +49,7 @@ Features
`MTProto Mobile Protocol v2.0`_ and the mechanisms needed for establishing
a reliable connection.
-- **Updated**: Pyrogram makes use of the latest Telegram API version, currently `Layer 74`_.
+- **Updated**: Pyrogram makes use of the latest Telegram API version, currently `Layer 75`_.
- **Documented**: Pyrogram API public methods are documented and resemble the well
established Telegram Bot API, thus offering a familiar look to Bot developers.
@@ -148,7 +148,7 @@ License
.. _`MTProto Mobile Protocol v2.0`: https://core.telegram.org/mtproto
-.. _`Layer 74`: compiler/api/source/main_api.tl
+.. _`Layer 75`: compiler/api/source/main_api.tl
.. _`your own`: https://github.com/pyrogram/pyrogram/wiki/Getting-Started#api-keys
@@ -191,7 +191,7 @@ License
+ alt="Scheme Layer 75">
.
-__copyright__ = "Copyright (C) 2017-2018 Dan Tès "
+__copyright__ = "Copyright (C) 2017-2018 Dan Tès ".encode(errors="replace").decode()
__license__ = "GNU Lesser General Public License v3 or later (LGPLv3+)"
-__version__ = "0.4.0"
+__version__ = "0.4.2"
from .api.errors import Error
from .client import ChatAction
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 49d45be0..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,
@@ -604,10 +604,10 @@ class Client:
file=file,
ttl_seconds=ttl_seconds
),
- **self.markdown.parse(caption),
silent=disable_notification or None,
reply_to_msg_id=reply_to_message_id,
- random_id=self.rnd_id()
+ random_id=self.rnd_id(),
+ **self.markdown.parse(caption)
)
)
except FilePartMissing as e:
@@ -682,10 +682,10 @@ class Client:
types.DocumentAttributeFilename(os.path.basename(audio))
]
),
- **self.markdown.parse(caption),
silent=disable_notification or None,
reply_to_msg_id=reply_to_message_id,
- random_id=self.rnd_id()
+ random_id=self.rnd_id(),
+ **self.markdown.parse(caption)
)
)
except FilePartMissing as e:
@@ -741,10 +741,10 @@ class Client:
types.DocumentAttributeFilename(os.path.basename(document))
]
),
- **self.markdown.parse(caption),
silent=disable_notification or None,
reply_to_msg_id=reply_to_message_id,
- random_id=self.rnd_id()
+ random_id=self.rnd_id(),
+ **self.markdown.parse(caption)
)
)
except FilePartMissing as e:
@@ -816,10 +816,10 @@ class Client:
)
]
),
- **self.markdown.parse(caption),
silent=disable_notification or None,
reply_to_msg_id=reply_to_message_id,
- random_id=self.rnd_id()
+ random_id=self.rnd_id(),
+ **self.markdown.parse(caption)
)
)
except FilePartMissing as e:
@@ -882,10 +882,10 @@ class Client:
)
]
),
- **self.markdown.parse(caption),
silent=disable_notification or None,
reply_to_msg_id=reply_to_message_id,
- random_id=self.rnd_id()
+ random_id=self.rnd_id(),
+ **self.markdown.parse(caption)
)
)
except FilePartMissing as e:
diff --git a/setup.cfg b/setup.cfg
deleted file mode 100644
index bc330f79..00000000
--- a/setup.cfg
+++ /dev/null
@@ -1,31 +0,0 @@
-[metadata]
-name = Pyrogram
-version = attr: pyrogram.__version__
-description = Telegram MTProto API Client Library for Python
-url = https://github.com/pyrogram/pyrogram
-author = Dan Tès
-author_email = admin@pyrogram.ml
-license = LGPLv3+
-keywords = telegram mtproto api client library python
-classifiers =
- Development Status :: 3 - Alpha
- Intended Audience :: Developers
- License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)
- Operating System :: OS Independent
- Programming Language :: Python
- Programming Language :: Python :: 3
- Programming Language :: Python :: 3.3
- Programming Language :: Python :: 3.4
- Programming Language :: Python :: 3.5
- Programming Language :: Python :: 3.6
- Topic :: Internet
- Topic :: Communications :: Chat
- Topic :: Software Development :: Libraries
- Topic :: Software Development :: Libraries :: Python Modules
-
-[options]
-packages = find:
-zip_safe = False
-setup_requires = pyaes; pysocks
-install_requires = pyaes; pysocks
-include_package_data = True
\ No newline at end of file
diff --git a/setup.py b/setup.py
index 4aeea35e..9fd9e082 100644
--- a/setup.py
+++ b/setup.py
@@ -19,7 +19,7 @@
import re
from sys import argv
-from setuptools import setup
+from setuptools import setup, find_packages
from compiler.api import compiler as api_compiler
from compiler.error import compiler as error_compiler
@@ -31,9 +31,42 @@ if len(argv) > 1 and argv[1] != "sdist":
error_compiler.start()
# docs_compiler.start()
+with open("pyrogram/__init__.py", encoding="utf-8") as f:
+ version = re.findall(r"__version__ = \"(.+)\"", f.read())[0]
+
# PyPI doesn't like raw html
-with open("README.rst", encoding="UTF-8") as f:
+with open("README.rst", encoding="utf-8") as f:
readme = re.sub(r"\.\. \|.+\| raw:: html(?:\s{4}.+)+\n\n", "", f.read())
readme = re.sub(r"\|header\|", "|logo|\n\n|description|\n\n|scheme| |mtproto|", readme)
-setup(long_description=readme)
+setup(
+ name="Pyrogram",
+ version=version,
+ description="Telegram MTProto API Client Library for Python",
+ url="https://github.com/pyrogram/pyrogram",
+ author="Dan Tès",
+ author_email="admin@pyrogram.ml",
+ license="LGPLv3+",
+ keywords="telegram mtproto api client library python",
+ long_description=readme,
+ classifiers=[
+ "Development Status :: 3 - Alpha",
+ "Intended Audience :: Developers",
+ "License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)",
+ "Operating System :: OS Independent",
+ "Programming Language :: Python",
+ "Programming Language :: Python :: 3",
+ "Programming Language :: Python :: 3.3",
+ "Programming Language :: Python :: 3.4",
+ "Programming Language :: Python :: 3.5",
+ "Programming Language :: Python :: 3.6",
+ "Topic :: Internet",
+ "Topic :: Communications :: Chat",
+ "Topic :: Software Development :: Libraries",
+ "Topic :: Software Development :: Libraries :: Python Modules"
+ ],
+ packages=find_packages(),
+ zip_safe=False,
+ install_requires=["pyaes", "pysocks"],
+ include_package_data=True,
+)