Path: csiph.com!news.mixmin.net!news.unit0.net!fu-berlin.de!uni-berlin.de!not-for-mail From: Ahmed TAHRI Newsgroups: comp.lang.python.announce Subject: [ANN] charset-normalizer 1.3.0 like Chardet, encoding and language detection Date: Fri, 4 Oct 2019 09:50:42 +0200 Lines: 82 Approved: python-announce-list@python.org Message-ID: <157017654948.7312.python-announce-list@python.org> Reply-To: python-list@python.org Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Trace: news.uni-berlin.de QZzLBEJS0IMZbwAmthhniQlrGn2n1iD7ss+jgpGVBs/A== X-Spam-Status: OK 0.000 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'everyone,': 0.02; 'pip': 0.03; 'url:github': 0.03; 'default': 0.04; 'encoding': 0.05; 'git': 0.05; 'pypi': 0.05; 'subject:ANN': 0.05; '<>)': 0.07; 'inspired': 0.07; 'parameters': 0.07; 'result.': 0.07; 'subject:language': 0.07; 'url:pypi': 0.07; 'aliases': 0.09; 'exception.': 0.09; 'object.': 0.09; 'url-ip:104.208.221.96/32': 0.09; 'url-ip:104.208.221/24': 0.09; 'url-ip:104.208/16': 0.09; 'url-ip:192.30/16': 0.09; 'url:project': 0.09; 'url:unicode': 0.09; 'python': 0.13; 'values': 0.14; 'behaviour.': 0.16; 'boolean': 0.16; 'charset': 0.16; 'chunk_size': 0.16; 'codecs': 0.16; 'encoding.': 0.16; 'n/a': 0.16; 'parameter': 0.16; 'positional': 0.16; 'rewritten': 0.16; 'url:pull': 0.16; 'url:readthedocs': 0.16; 'library': 0.16; 'url:io': 0.16; 'class.': 0.19; '3.7': 0.20; 'url-ip:185.199.108/24': 0.20; 'url- ip:185.199.109/24': 0.20; 'url-ip:185.199.110/24': 0.20; 'url- ip:185.199.111/24': 0.20; 'url-ip:185.199/16': 0.20; 'import': 0.21; 'subject:] ': 0.21; 'install': 0.22; 'trying': 0.23; 'docs': 0.24; 'first.': 0.24; 'motivated': 0.24; 'url- ip:151.101.0.223/32': 0.25; 'url-ip:151.101.128.223/32': 0.25; 'url-ip:151.101.192.223/32': 0.25; 'url-ip:151.101.64.223/32': 0.25; 'issue': 0.27; 'language': 0.27; 'properties': 0.28; 'url- ip:151.101.192/24': 0.28; 'print': 0.29; 'url-ip:151.101.0/24': 0.29; 'url-ip:151.101.128/24': 0.29; 'url-ip:151.101.64/24': 0.29; 'all.': 0.29; 'to:addr:python-announce-list': 0.29; "i'm": 0.31; 'message-id:@mail.gmail.com': 0.32; 'url-ip:151.101/16': 0.32; 'url-ip:151/8': 0.32; 'enough': 0.33; 'subject:[': 0.34; 'testing': 0.34; 'received:google.com': 0.35; 'sequence': 0.36; 'list': 0.37; 'returning': 0.37; 'spoken': 0.37; 'url:latest': 0.37; 'using': 0.38; 'could': 0.38; 'url:icons': 0.38; 'output': 0.39; 'it,': 0.39; 'subject:-': 0.40; 'unknown': 0.40; 'chinese': 0.61; 'content.': 0.61; 'true.': 0.61; 'possibility': 0.61; 'provide': 0.62; 'free': 0.62; '&': 0.62; 'benefit': 0.63; 'steps': 0.63; 'produce': 0.64; 'url:png': 0.64; 'url:images': 0.66; 'improvement': 0.66; 'legacy': 0.66; 'url:14': 0.66; 'limit': 0.66; 'exact': 0.67; 'subject:, ': 0.71; 'fast': 0.72; 'search': 0.72; 'approach.': 0.74; 'reliable': 0.77; 'detection': 0.79; 'upgrade': 0.80; 'fitted': 0.84; 'readability.': 0.84; '*for': 0.93 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cloudnursery.dev; s=google; h=mime-version:from:date:message-id:subject:to; bh=5m4pfI4SoijBmXNTR6hfdM8p1ZwcFjrSDA2xNlF9CIg=; b=Atd/Fr0EjHm020+dg0zT2bxnWmEMs9W8NlTrrRfMobPTOIGttJGD8VKwiCEWycvkKH OrsZVOlsglbL6Kp2pPVxUpwvsO0cnxtaL0EKwy68J5Si9yZCPz2C43ASNUyfKNLHbHG1 emDRLf+qB9mWbj+aagg9LUxIvHfuK29VMWjcnNphjYNkjEWhiKqlyex+8ZHN3MfBThR1 xXpMoMoByTy2p6GzRCqNnUuWTgtXtP2GfYeEYNDLVpdzquEVpEjmsmeGN+vfvYNxSmp9 dWAH2/skY2TVpCEOdfwlZSSFpoqeyf0YtO+2d3b8E0oaBuUse7GkR+NDM6VzWQ8lDbYQ 2fZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=5m4pfI4SoijBmXNTR6hfdM8p1ZwcFjrSDA2xNlF9CIg=; b=SRbLYLdlD9kQft/3nCWjUMJdW4BEOYwI6hAcTDD6/yga0EurlttNE8RdHcuji4C8B3 eRoYCKmrxbdeH4h/aHa5o1+31tIjdbjES2QBiIX9TFPksfXcWjPzPMp2y51/fb3HWtpN cNAG9T8w5SDp2Zsf6pEBErerT8T5xvGRWdT9NvPvV/itHV9llq5w8ayATUulB3vSgnxo uF3mBhqcia4j67nxkjjiSFl03ChJ0C6eJDF0DBjqT7X/Abg9tHbRe+Qcc6BGkh1D/bXJ XlJbZM3LVKSkvdbEjqL7ExNwXMGXpTubjeLkRnmagp0NnGy0Is+wTGtDksWYS+45EvmF SVQw== X-Gm-Message-State: APjAAAXj/NxI3JNZH3Xls+E1zrfg36lMx87ZvlyvricFZDRF553j1e6W XCxtfouJw1MhOWmzJb+R4o6rJvAHm14R9cyNpqgu9tPul2M= X-Google-Smtp-Source: APXvYqwFJJlLV/+2s2Pz2m8x1Zt/hLvyPctrowAvbs9xV0D9kmJOKsSmEMkj/INejUxOkfaYcWnl0LIQyN1IhAdkT9w= X-Received: by 2002:a9d:6b19:: with SMTP id g25mr6554435otp.64.1570175453432; Fri, 04 Oct 2019 00:50:53 -0700 (PDT) X-MailFrom: ahmed.tahri@cloudnursery.dev X-Mailman-Rule-Hits: emergency X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved Message-ID-Hash: FH2DKFZB6IAVQDY4NQLNYUMIVUW5JYU5 X-Message-ID-Hash: FH2DKFZB6IAVQDY4NQLNYUMIVUW5JYU5 X-Mailman-Approved-At: Fri, 04 Oct 2019 04:09:03 -0400 X-Content-Filtered-By: Mailman/MimeDel 3.3.1 X-Mailman-Version: 3.3.1 Precedence: list List-Id: Announcement-only list for the Python programming language Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: Xref: csiph.com comp.lang.python.announce:3207 Hi everyone, git : https://github.com/Ousret/charset_normalizer pypi : https://pypi.org/project/charset-normalizer/ docs : https://charset-normalizer.readthedocs.io/en/latest/ *For remainder :* Library that help you read text from unknown charset encoding. Project motivated by chardet, I'm trying to resolve the issue by taking another approach. All IANA character set names for which the Python core library provides codecs are supported. *Changes :* - *Improvement :* Adjustement in frequencies.json about Chinese - *Feature :* Added the possibility to list encoding aliases for a match - *Feature :* Support submatch in match (list of submatch that produce the EXACT same output as a match) - *Bugfix :* Sequence having lenght bellow 10 chars was not checked by ProbeChaos at all. (#14 ) - *Bugfix :* Legacy detect method inspired by chardet was not returning intended result when having no result. (#14 ) - *Bugfix :* from_bytes parameters *steps* and *chunk_size* were not adapted to sequence len if provided values were not fitted to content. Therefore could lead to misdetection on small content. - *Feature :* import charset_normalizer is enough to provide additional help when you encounter UnicodeDecodeError exception. - *Feature :* You can limit the search to some encoding when looking for a match with parameter cp_isolation. List of str. for from_bytes from_path and from_fp. - *Feature :* You can exclude some encoding when searching for a match with parameter cp_exclusion. List of str. for from_bytes from_path and from_fp. - *Improvement :* Detection has been globally improved. - *Feature :* Added explain boolean positional parameter to print out what actually happen when searching for a match. - *Improvement :* best() method of CharsetNormalizerMatches has been rewritten for better readability. - *Feature :* Added has_submatch, percent_chaos and percent_coherence properties on single match object. - *Improvement :* Added aliases to CharsetNormalizerMatches class. CharsetDetector; EncodingDetector and CharsetDoctor. - *Feature :* Added preemptive behaviour. Looking for a declared encoding. Using positional parameter preemptive_behaviour. Default to True. Does not take declared encoding for it, testing it first. - *Feature :* Now support unicodedata2 backport. To benefit from it install using pip install charset-normalizer[UnicodeDataBackport]. Python 3.7 have UnicodeData v11. You could upgrade it to v12. Feature Chardet Charset Normalizer cChardet Fast [image: x] [image: white_check_mark] [image: white_check_mark] =E2=9A=A1 Universal** [image: x] [image: white_check_mark] [image: x] Reliable *without* distinguishable standards [image: x] [image: white_check_mark] [image: white_check_mark] Reliable *with* distinguishable standards [image: white_check_mark] [image: white_check_mark] [image: white_check_mark] Free & Open [image: white_check_mark] [image: white_check_mark] [image: white_check_mark] Native Python [image: white_check_mark] [image: white_check_mark] [image: x= ] Detect spoken language [image: x] [image: white_check_mark] N/A Supported Encoding 30 [image: tada] 90 40