forked from softpano/pythonizer
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathEncoding.py
More file actions
152 lines (89 loc) · 3.48 KB
/
Encoding.py
File metadata and controls
152 lines (89 loc) · 3.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
#!/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)
def DESTROY(*_args):
pass
Encode.Encoding.DESTROY = DESTROY
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
#
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
def fromUnicode(*_args):
_args = list(_args)
return (_args.pop(0) if _args else None).encode(*_args)
Encode.Encoding.fromUnicode = fromUnicode
# (Temporary|legacy) methods
def toUnicode(*_args):
_args = list(_args)
return (_args.pop(0) if _args else None).decode(*_args)
Encode.Encoding.toUnicode = toUnicode
def perlio_ok(*_args):
# SNOOPYJC return eval { require PerlIO::encoding } ? 1 : 0;
return 1 # SNOOPYJC
Encode.Encoding.perlio_ok = perlio_ok
def needs_lines(*_args):
return 0
Encode.Encoding.needs_lines = needs_lines
def renewed(*_args):
return _args[0].get("renewed") or 0
Encode.Encoding.renewed = renewed
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)
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
def name(*_args):
_args = list(_args)
return (_args.pop(0) if _args else None)["Name"]
Encode.Encoding.name = name
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