Source code for Encode.Encoding

#!/usr/bin/env python3
# Generated by "pythonizer -aM ../Encode/Encoding.pm" v1.025 run by SNOOPYJC on Fri Feb 10 11:17:27 2023
__author__ = """Joe Cool"""
__email__ = "snoopyjc@gmail.com"
__version__ = "1.025"
import builtins, os, perllib, re, types

_str = lambda s: "" if s is None else str(s)
import Encode.MIME.Name as _Encode_MIME_Name

perllib.init_package("Encode.Encoding", is_class=True)


[docs]def DESTROY(*_args): pass
Encode.Encoding.DESTROY = DESTROY
[docs]def decode(*_args): _args = list(_args) obj = _args.pop(0) if _args else None class_ = perllib.ref_scalar(obj) if perllib.ref_scalar(obj) else obj return perllib.croak(_str(class_) + "->encode() not defined!")
Encode.Encoding.decode = decode # # Needs to be overloaded or just croak #
[docs]def encode(*_args): _args = list(_args) obj = _args.pop(0) if _args else None class_ = perllib.ref_scalar(obj) if perllib.ref_scalar(obj) else obj return perllib.croak(_str(class_) + "->encode() not defined!")
Encode.Encoding.encode = encode
[docs]def fromUnicode(*_args): _args = list(_args) return (_args.pop(0) if _args else None).encode(*_args)
Encode.Encoding.fromUnicode = fromUnicode # (Temporary|legacy) methods
[docs]def toUnicode(*_args): _args = list(_args) return (_args.pop(0) if _args else None).decode(*_args)
Encode.Encoding.toUnicode = toUnicode
[docs]def perlio_ok(*_args): # SNOOPYJC return eval { require PerlIO::encoding } ? 1 : 0; return 1 # SNOOPYJC
Encode.Encoding.perlio_ok = perlio_ok
[docs]def needs_lines(*_args): return 0
Encode.Encoding.needs_lines = needs_lines
[docs]def renewed(*_args): return _args[0].get("renewed") or 0
Encode.Encoding.renewed = renewed
[docs]def renew(*_args): _args = list(_args) self = _args.pop(0) if _args else None clone = perllib.bless( (self if self is not None else perllib.Hash()).copy(), perllib.ref_scalar(self) ) clone["renewed"] = perllib.num(clone["renewed"]) + 1 # so the caller can see it # so the caller can see it if DEBUG: perllib.perl_print(clone.get("renewed")) return clone
Encode.Encoding.renew = types.MethodType(renew, Encode.Encoding)
[docs]def mime_name(*_args): _args = list(_args) return Encode.MIME.Name.get_mime_name(_args.pop(0) if _args else None)
Encode.Encoding.mime_name = mime_name
[docs]def name(*_args): _args = list(_args) return (_args.pop(0) if _args else None)["Name"]
Encode.Encoding.name = name
[docs]def Define(*_args): _args = list(_args) obj = _args.pop(0) if _args else None canonical = _args.pop(0) if _args else None if not perllib.ref_scalar(obj): obj = perllib.bless({"Name": canonical}, obj) # warn "$canonical => $obj\n"; return perllib.define_encoding(obj, _str(canonical), _args)
Encode.Encoding.Define = types.MethodType(Define, Encode.Encoding) def _f6(): r = perllib.Array((re.findall(re.compile(r"\d+"), "Revision: 2.8 "))) return perllib.format_("%d." + "%02d" * (len(r) - 1), r) builtins.__PACKAGE__ = "Encode.Encoding" # Base class for classes which implement encodings # SKIPPED: use strict; perllib.WARNING = 1 Encode.Encoding.VERSION_v = _f6() Encode.Encoding.CARP_NOT_a = "Encode Encode::Encoder".split() # SKIPPED: use Carp (); # SKIPPED: use Encode (); DEBUG = not not os.environ.get("PERL_ENCODE_DEBUG") Encode.Encoding.new_sequence = renew new_sequence = renew